Skip to content

Instantly share code, notes, and snippets.

Alex Bowe alexbowe

Block or report user

Report or block alexbowe

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
alexbowe /
Created Mar 28, 2010
Python function for adding an instance method to an object
def add_method(obj, f, fname):
"""Adds the instance method from function f to the object obj, callable by fname (i.e. obj.fname())
def func(self):
print 'test'
add_method(myObject, func, 'newmethodname')
# Extracting nounphrase chunks from a parse tree
# from
# for each noun phrase sub tree in the parse tree
for subtree in tree.subtrees(filter=lambda t: t.node == 'NP'):
# print the noun phrase as a list of part-of-speech tagged words
print subtree.leaves()
alexbowe / num_to_bin_string.rb
Created Nov 22, 2010
Method to convert a number to a binary string
View num_to_bin_string.rb
class Fixnum
def to_bin_s
return '0' if self == 0
s = ''
n = self
while n > 0
s = (n % 2).to_s << s
n = n >> 1
alexbowe / three_test.rb
Created Nov 23, 2010
Tests a regular expression for recognising binary numbers that are divisible by 3.
View three_test.rb
your_re = // # <= YOUR REGEX GOES BETWEEN THESE SLASHES*************************
#Example: /.*/
# This wraps your regex so the whole binary string has to match it
@re = /^(#{your_re})$/
# Helper code to convert numbers to binary strings
class Fixnum
def to_bin_s
return '0' if self == 0
s = ''
alexbowe /
Created Mar 21, 2011
Demonstration of extracting key phrases with NLTK in Python
import nltk
text = """The Buddha, the Godhead, resides quite as comfortably in the circuits of a digital
computer or the gears of a cycle transmission as he does at the top of a mountain
or in the petals of a flower. To think otherwise is to demean the Buddha...which is
to demean oneself."""
# Used when tokenizing words
sentence_re = r'''(?x) # set flag to allow verbose regexps
([A-Z])(\.[A-Z])+\.? # abbreviations, e.g. U.S.A.
alexbowe / my_binary.erl
Created Apr 2, 2011
Provides some idiomatic tools to help when programming using Erlang's Binary primitive type.
View my_binary.erl
break(Blocksize, Bin) ->
<<Head:Blocksize/bits, Rest/bits>> = Bin,
{Head, Rest}.
foreach(_, _, <<>>) -> ok;
foreach(F, Blocksize, Bin) ->
alexbowe / popcount_table.erl
Created Apr 4, 2011
Generates a tuple of popcounts.
View popcount_table.erl
gen_table(Bits) -> gen_table(1, 2 bsl (Bits - 1), {0}).
gen_table(Stop, Stop, Table) -> Table;
gen_table(Value, Stop, Table) ->
New = (Value band 1) + erlang:element((Value bsr 1) + 1, Table),
NewTable = erlang:append_element(Table, New),
gen_table(Value + 1, Stop, NewTable).
alexbowe / popcount.erl
Created Apr 4, 2011
Popcount table generated at compile-time using ct_expand. See
View popcount.erl
-compile({parse_transform, ct_expand}).
-export([popcount16/1, popcount32/1]).
-define(TABLE(B), ct_expand:term( popcount_table:gen_table(B) )).
-define(TABLE16, ct_expand:term( ?TABLE(16) )).
popcount16(V) -> erlang:element(V+1, ?TABLE16).
popcount32(V) -> popcount16( V band 16#ffff )
alexbowe / gist:907073
Created Apr 7, 2011
15bit popcount from Hacker's Delight, p. 72
View gist:907073
//Special for 15-bit values on 64bit processors
//with fast multiplication
//From Hacker's Delight, p. 72
inline uint32_t popcount15(uint32_t x)
uint64_t y;
y = x * 0x0002000400080010;
y = y & 0x1111111111111111;
y = y * 0x1111111111111111;
y = y >> 60;
alexbowe /
Created Apr 23, 2011
Lazy functional style streams for Python
null_stream = (None, None)
def map(f, stream):
if stream is null_stream: return null_stream
return (f(head(stream)), lambda: map(f, tail(stream)))
def reduce(f, result, stream):
if stream is null_stream: return result
return reduce(f, f(result, head(stream)), tail(stream))
You can’t perform that action at this time.