Skip to content

Instantly share code, notes, and snippets.

View niallo's full-sized avatar

Niall O'Higgins niallo

View GitHub Profile
apres.getDataParamsFromElem = function(elem, paramKeys, prefix) {
var paramPrefix = prefix || "data-widget-";
var params = {};
for (var paramName in paramKeys) {
params[paramName] = elem.attr(paramPrefix + paramName);
}
return params;
}
@niallo
niallo / s3-backups-init.pp
Created March 19, 2012 00:43
Automated, encrypted backups via Puppet, Duplicity and GnuPG
class s3-backups {
package { "duplicity":
ensure => "installed"
}
package { "python-boto":
ensure => "installed"
}
@niallo
niallo / ubuntu-lucid-python-2.7
Created March 8, 2012 22:59
Puppet module to install & set default Python to 2.7 on Ubuntu 10.04 LTS / Lucid
class python27 {
Package { ensure => "installed" }
$apt-base = "/etc/apt/sources.list.d/fkrull-"
Exec { require => Package["python-software-properties"] }
exec { "python-repo" :
command => "/usr/bin/add-apt-repository ppa:fkrull/deadsnakes",
creates => "${apt-base}deadsnakes-lucid.list",
@niallo
niallo / puppet-mongodb-10gen-ubuntu-10.04-lucid
Created March 8, 2012 22:11
Puppet module to run 10gen's MongoDB package on Ubuntu 10.04 LTS / Lucid
class mongodb {
$add-key = "/usr/bin/apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10"
$mongodb-repo = "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen"
Exec { require => Package["python-software-properties"] }
exec { "add-10gen-key":
command => $add-key,
onlyif => "/usr/bin/apt-key list | /usr/bin/awk '$0 ~ /10gen/ { exit 1 }' /etc/apt/sources.list"
@niallo
niallo / ubuntu-lucid-node-zeromq
Created March 8, 2012 21:02
Puppet class recipe to install Node.JS & ZeroMQ on Ubuntu 10.04 LTS / Lucid
class nodejs {
Package { ensure => "installed" }
$pkglist = [ "python-software-properties" ]
package { $pkglist: }
$apt-base = "/etc/sources.list.d/chris-lea"
Exec { require => package["python-software-properties"] }
(pyrenv)Niall-OHigginss-MacBook-Pro:pyrenv nialljohiggins$ paster create -t akhet
Selected and implied templates:
Akhet#akhet A Pylons-like Pyramid project
Enter project name: foobar
Variables:
egg: foobar
package: foobar
project: foobar
Enter sqlalchemy (Include SQLAlchemy configuration? (y/n)) [True]: n
@niallo
niallo / ctypes-test.py
Created May 14, 2011 21:02
ctypes circular definition work around
from ctypes import *
class NANNY_TIMER(Structure):
_fields_ = [("when", c_long),
("data", c_void_p),
("f", POINTER(NANNY_TIMER_CB))
]
# XXX is there a way around this hack for circular definition?
class NANNY_TIMED_T(Structure):
def sub_get(d, key, default=0):
''' sub_get({ 'foo' : { 'bar' : 1 }}, 'foo.bar') returns 1 '''
if '.' not in key:
return d.get(key, default)
parts = key.split('.')
r = d
for p in parts:
r = r.get(p, default)
return r
niallo@aztarac:~$ cat /etc/udev/rules.d/70-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", SYMLINK+="android_adb", MODE="0666", OWNER="niallo", GROUP="niallo"
_xml_escapes = (tuple([('%c' % z, '\\u%04X' % z)
for z in range(20) if z not in (0x9, 0xA, 0xD)]))
def escape_low_xml(value):
''' Escape every ASCII character with a value less than 20 except for
certain codes allowed by XML v1.0 spec '''
for bad, good in _xml_escapes:
value = value.replace(bad, good)
return value