Skip to content

Instantly share code, notes, and snippets.

@ericmoritz
ericmoritz / demo.py
Created July 21, 2011 19:09
Fun with crossbreeding.
from guard import Guard
import webob
from webob import Request
import webob.exc
def method(*method_list):
def inner(request, *args, **kwargs):
return request.method in method_list
@ericmoritz
ericmoritz / riakmap.py
Created July 30, 2011 17:05
riak mapping interface
from collections import Mapping
def force_str(str_or_unicode):
if type(str_or_unicode) is unicode:
return str_or_unicode.encode("utf-8")
else:
return str_or_unicode
class RiakMapping(Mapping):
@ericmoritz
ericmoritz / tvservice.py
Created September 26, 2011 15:23
tv service
from webob.dec import wsgify
from webob import Response
import roaf
from roaf.micro import App, Data
from roaf.data.dictcollection import DictCollection
from roaf.resources.collections import CollectionResource
from roaf.middleware.default import DefaultMiddleware
from roaf.serializers import jsoncodec as json
from formencode import Schema, validators
from pyquery import PyQuery
@ericmoritz
ericmoritz / chunk.py
Created September 28, 2011 17:15
List chunker
def chunk(l, size):
chunk_l = []
for x in l:
if len(chunk_l) == size:
yield chunk_l
chunk_l = [x]
else:
chunk_l.append(x)
for x in chunk(range(10), 2):
@ericmoritz
ericmoritz / README.md
Created September 28, 2011 19:41
A collection of CRDTs
@ericmoritz
ericmoritz / output.txt
Created October 3, 2011 20:44
LWWSet test
(env)Erics-MacBook-Pro:crdt eric$ python /tmp/millionkeys.py
Add:
0.573606014252
Serialize:
0.552729129791
Sort, Slice:
0.511281967163
Deserialize:
0.156991004944
@ericmoritz
ericmoritz / itertoolsplus.py
Created October 19, 2011 20:16
itertools plus
def ichunk(s, size):
return (s[i: i+size] for i in xrange(0, len(s), size))
def ichain(iterable):
"""Better than itertools.chain because it does not use *args"""
for inner in iterable:
for item in inner:
yield item
(->> collection
(map expr)
sort
flatten
unique)
(def collection [1 2 [3 4] [4 5] 6 7 [7 8]])
(println
(->> collection
flatten
(map #(* % 2)) ; this could use the #(* % 2) lambda shorthand
distinct
sort))
; => (2 4 6 8 10 12 14 16)
*.class
*.jar
countby