Skip to content

Instantly share code, notes, and snippets.

View blacktaxi's full-sized avatar
🇺🇦
russia is a terrorist state, russians are a terrorist nation

Serhii Yavnyi blacktaxi

🇺🇦
russia is a terrorist state, russians are a terrorist nation
View GitHub Profile
@blacktaxi
blacktaxi / enum_class.py
Created November 24, 2012 13:08
Class decorator for convenient creation of class attribute-based enumeration constants.
def enum_class(cls):
"""Decorates a class to set it's attributes to values of their
literal names. This is cool to use to make an 'enum' class and
have PyCharm also infer it's members.
Use it like so:
>>> @enum_class
... class KindOfFruit:
... Apple, Orange, Banana, Passionfruit = range(4)
...
@blacktaxi
blacktaxi / pictures.markdown
Created October 31, 2012 16:48 — forked from sent-hil/pictures.markdown
River (getriver.com): Keep a programming journal.

One of my favorite past times is to look at the notebooks of famous scientists. Da Vinci's notebook is well known, but there plenty others. Worshipping Da Vinci like no other, I bought a Think/Create/Record journal, used it mostly to keep jot down random thoughts and take notes. This was great in the beginning, but the conformity of lines drove me nuts. Only moleskines made blank notebooks, so I had to buy one.

At the same time I started a freelance project. The project itself is irrelevant, but suffice to say it was very complex and spanned several months. It seemed like a perfect opportunity to use the moleskine. Looking back, all my entries fell under few categories:

  • Todo
  • Question
  • Thought
  • Bug
  • Feature
$snapins = Get-PSSnapin -Registered
$snapins | Add-PSSnapin
Get-Module -ListAvailable | Import-Module
Get-PSSnapin | Format-Table -autosize PSVersion, Name
Get-Module | Format-Table -autosize ModuleType, Name
function ff ([string] $glob) { get-childitem -recurse -include $glob }
@blacktaxi
blacktaxi / nltk-pwd-gen.py
Created September 10, 2012 23:55
Modern password generation with NLTK
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import random
>>> random.seed()
>>> import nltk
>>> from nltk.corpus import wordnet as wn
>>> nouns, verbs, adjectives, adverbs = [list(wn.all_synsets(pos=POS)) for POS in [wn.NOUN, wn.VERB, wn.ADJ, wn.ADV]]
>>> def gen_phrase(*pattern): return [random.choice(i) for i in pattern]
@blacktaxi
blacktaxi / oop.lua
Created July 6, 2012 12:58
Another basic OOP in lua with inheritance and virtual methods.
-- creates a class table which has a "new" method to create object instances.
class = function (parentclass, classdef)
local cls = {
__classdef__ = classdef or {},
__parent__ = parentclass or {},
-- instance constructor
new = function(cls, ...)
local instance = {
super = cls.__parent__.__classdef__,
@blacktaxi
blacktaxi / random-ua.py
Created June 18, 2012 07:22
Statistically plausible random User-Agent string generation.
user_agents = [
(30.7, '''Mozilla/4.0 (compatible; MSIE 5.0; Windows NT;)
Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)
Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727)
Mozilla/4.0 (compatible; MSIE 5.0b1; Mac_PowerPC)
Mozilla/2.0 (compatible; MSIE 4.0; Windows 98)
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)
Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)
@blacktaxi
blacktaxi / donotuse.py
Created April 28, 2012 21:32 — forked from e000/donotuse.py
How to ALWAYS use lambdas.
##########################################################
# How to properly use Python. An efficient and yet educa-#
# tonal guide to the proper use of the lambda constru- #
# ct in Python 2.x. [DO USE THIS AT ALL TIMES] #
# by: e000 (13/6/11) #
##########################################################
## Part 1. Basic LAMBDA Introduction ##
# Well, it's worth diving straight into what lambdas are.
# Lambdas are pretty much anonymous "one line" functions
@blacktaxi
blacktaxi / tree.md
Created April 24, 2012 05:24 — forked from hrldcpr/tree.md
one-line tree in python

One-line Tree in Python

Using Python's built-in defaultdict we can easily define a tree data structure:

def tree(): return defaultdict(tree)

That's it!

@blacktaxi
blacktaxi / const-macros.clj
Created February 7, 2012 15:48
Macros for defining constants in Clojure
(defmacro defconst [const-name const-val]
`(def
~(with-meta const-name
(assoc (meta const-name) :const true))
~const-val))
(defmacro defconsts [bindings]
`(do
~@(map (fn [[const-name const-val]]
`(defconst ~const-name ~const-val))
(ns monad-explore.core
(:use clojure.algo.monads))
(defmacro let?
"Almost the same as let. If you add the :ensure keyword paired with
some predicate as a var in the let form, let? will not continue
unless the predicate evaluates to true. (The predicate will have
access to all bindings above.)"
[bindings & body]
(let [[bind [kwd pred & more]] (split-with (complement #{:ensure}) bindings)]