Skip to content

Instantly share code, notes, and snippets.

@sontek
sontek / gist:3697998
Created September 11, 2012 12:17
Example of how to manage embedded views with Backbone.js
Layout = Backbone.View.extend({
initialize: function() {
var me = this;
this.setViews(_.extend({}, this.views, this.options.views));
if (this.options.template) {
this.template = this.options.template;
}
@sontek
sontek / gist:3809010
Created October 1, 2012 01:48 — forked from goodwillcoding/gist:3808931
JSON Serializable SQLAlchemy Object
class JsonSerializableMixin(object):
"""
Converts all the properties of the object into a dict for use in json.
You can define the following as your class properties.
_json_eager_load :
list of which child classes need to be eagerly loaded. This applies
to one-to-many relationships defined in SQLAlchemy classes.
_base_blacklist :
import ctypes
import os
import sys
here = os.path.dirname(__file__)
cpath = os.path.abspath(os.path.join(here, "fib.so"))
fiblib = ctypes.CDLL(cpath)
def fib(n):
if n == 0:
@sontek
sontek / gist:4150023
Created November 26, 2012 19:17
Getting datanommer setup for Fedora
Things with $ at the beginning are commands you run
$ sudo yum install python-virtualenv openssl-devel zeromq-devel gcc
$ mkvirtualenv datanommer
$ cdvirtualenv
$ mkdir src
@sontek
sontek / gist:5660624
Created May 28, 2013 05:09
Small application using Pyramid, SQLAlchemy, and dogpile.cache
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
from pyramid.compat import text_type
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
@sontek
sontek / threadpool_requests.py
Created May 29, 2013 04:55
Hitting URLS with a threadpool
import threading
import requests
import logging
from threadpool import ThreadPool
from threadpool import makeRequests
pool = ThreadPool(4)
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
@sontek
sontek / threads_requests.py
Created May 29, 2013 04:56
Making requests without threadpool
import threading
import requests
import logging
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
@sontek
sontek / gist:5986226
Created July 12, 2013 17:33
autocomplete ssh via /etc/hosts and ssh_config
_complete_hosts () {
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
host_list=`{
for c in /etc/ssh_config /etc/ssh/ssh_config ~/.ssh/config
do [ -r $c ] && sed -n -e 's/^Host[[:space:]]//p' -e 's/^[[:space:]]*HostName[[:space:]]//p' $c
done
for k in /etc/ssh_known_hosts /etc/ssh/ssh_known_hosts ~/.ssh/known_hosts
do [ -r $k ] && egrep -v '^[#\[]' $k|cut -f 1 -d ' '|sed -e 's/[,:].*//g'
done
#!/usr/bin/env python
"""This is a demonstration of sharing file descriptors across processes.
It uses Tornado (need a recent post-2.0 version from github) and the
multiprocessing module (from python 2.6+). To run it, start one copy
of fdserver.py and one or more copies of testserver.py (in different
terminals, or backgrounded, etc). Fetch http://localhost:8000 and
you'll see the requests getting answered by different processes (it's
normal for several requests to go to the same process under light
load, but under heavier load it tends to even out).
from wsgiref.simple_server import make_server
from wsgiref.util import application_uri
import sys
import json
def home():
return 'hello world'