Skip to content

Instantly share code, notes, and snippets.

View lsbardel's full-sized avatar
☀️
magic

Luca Sbardella lsbardel

☀️
magic
View GitHub Profile
'''
Script for setting up python-django environment in ubuntu
'''
import os
packages = lambda name: 'apt-get install %s' % name
sysinstall = 'apache2 libapache2-mod-wsgi postgresql python-psycopg2 python-setuptools python-imaging'
@lsbardel
lsbardel / Ordered Hash Table
Created February 2, 2010 13:40
Ordered hash table. The order is given by the order of key-value insertion.
template<typename K, typename V>
struct key2value {
typedef K argument_type;
typedef V mapped_type;
typedef boost::unordered_map<K,V> hash_type;
typedef typename hash_type::value_type result_type;
typedef boost::shared_ptr<hash_type> hash_ptr;
key2value(const hash_ptr& h):hash_(h) {
}
def sortlist(views, func):
def comp(a,b):
if func(a) > func(b):
return 1
else:
return -1
views.sort(comp)
return views
@lsbardel
lsbardel / Iterating on zipped list slices
Created November 14, 2010 13:21
Test the three algorithms for iterating on a zipped sliced lists
import timeit
from itertools import izip, islice
data = range(0,100000)
def loop1():
return zip(data[::2],data[1::2])
def loop2():
return izip(data[::2],data[1::2])
@lsbardel
lsbardel / jsoncls.py
Created November 26, 2010 07:53
A Json encoder/decoder for Python 2.6 or above
import time
from datetime import date, datetime
from decimal import Decimal
import json
def totimestamp(dte):
return time.mktime(dte.timetuple())
def totimestamp2(dte):
def _getnone():
return None
class NonePickler(object):
def __reduce__(self):
return (_getnone,())
@lsbardel
lsbardel / strings.py
Created November 25, 2011 22:05
python string benchmarking
import sys
import timeit
if sys.version_info < (3,0):
range = xrange
GSTR = 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
def string_global():
for x in range(0,10000):
@lsbardel
lsbardel / humanbytes.py
Created February 9, 2012 09:44
Convert a number of bytes into a human readable memory usage
memory_symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
memory_size = dict(((s,1 << (i+1)*10) for i,s in enumerate(memory_symbols)))
def convert_bytes(b):
'''Convert a number of bytes into a human readable memory usage'''
if b is None:
return '#NA'
for s in reversed(memory_symbols):
if b >= memory_size[s]:
value = float(b) / memory_size[s]
@lsbardel
lsbardel / Socket options
Created February 10, 2012 10:28
Print a list of available socket options
import socket
solist = [x for x in dir(socket) if x.startswith('SO_')]
solist.sort()
for x in solist:
print(x)
@lsbardel
lsbardel / skiplist.py
Created February 10, 2012 16:24
Skiplist
import sys
from random import random
from math import log
ispy3k = int(sys.version[0]) >= 3
if not ispy3k:
range = xrange