Skip to content

Instantly share code, notes, and snippets.

@mozz100
mozz100 / xbee.js
Last active April 16, 2016 21:48
Node.js, xbee and promises
var SerialPort = require('serialport').SerialPort;
var xbee_api = require('xbee-api');
var C = xbee_api.constants;
var Q = require('q');
// following settings work for me on my Raspberry pi, your config may differ!
var xbeeAPI = new xbee_api.XBeeAPI({
api_mode: 1
});
var serialport = new SerialPort("/dev/ttyAMA0", {
@mozz100
mozz100 / renamer.py
Created May 11, 2014 20:41
Rename files in order, move to a directory
#!/usr/bin/python
import sys, csv, os, shutil
pattern = "Vol09-%04d.jpg"
original_filename = sys.argv[1]
output_path = sys.argv[2]
output_csv = os.path.join(output_path, "original_filenames.csv")
next_index = 0
@mozz100
mozz100 / pdf_magic.js
Last active July 27, 2017 00:48
Zendesk embedded PDF viewer via Google Docs
// add this javascript to your Zendesk Help Center pages
(function($) {
$(function() {
// for all attachment links whose URLs end with .pdf (case sensitive)...
var pdfs = $('.attachments a[href$=".pdf"]');
var eleBody = $('div.article-body');
if (pdfs.length > 0) {
@mozz100
mozz100 / bookmarklet.js
Created June 26, 2014 09:20
Bookmarklet: Jump between envisage staging/production
javascript:(function(){var where=document.location.toString();if(where.indexOf('envisage-system.co.uk')>=0){document.location=where.replace('envisage-system.co.uk','envisage-staging.co.uk');}if(where.indexOf('envisage-staging.co.uk')>=0){document.location=where.replace('envisage-staging.co.uk','envisage-system.co.uk');}})()
@mozz100
mozz100 / python-package-update.sh
Last active August 29, 2015 14:05
Patch updates for pinned python packages
# Use sed to replace '==x.y' with '<x.y.999'
# and save results to a file
sed -r -e "s/==([0-9]+\.[0-9]+)(\..+)?/<\1.999/" requirements.txt > /tmp/requirements2.txt
# It works by transforming the file like this:
# Django==1.4.8 >> Django<1.4.999
# Jinja2==2.5 >> Jinja2<2.5.999
# M2Crypto==0.19.1 >> M2Crypto<0.19.999
# MySQL-python==1.2.5 >> MySQL-python<1.2.999
# Pillow==2.5.1 >> Pillow<2.5.999
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Owlstone - Chemical Detection and Chemical Sensing</title>
<link href="https://plus.google.com/103452364153605968626" rel="publisher" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="dns-prefetch" href="//www.owlstone.net" />
@mozz100
mozz100 / logging_webserver.py
Created October 7, 2014 20:37
Tiny python web server that just logs stuff
#!/usr/bin/env python
import tornado.ioloop
import tornado.web
import pprint
class MyDumpHandler(tornado.web.RequestHandler):
def post(self):
pprint.pprint("Request")
pprint.pprint(self.request)
@mozz100
mozz100 / runserver.py
Last active June 13, 2021 02:57
Change default port for django runserver
# Put this at <yourapp>/management/commands/runserver.py.
# Override the value of the constant coded into django...
import django.core.management.commands.runserver as runserver
runserver.DEFAULT_PORT="8197"
# ...and then just import its standard Command class.
# Then manage.py runserver behaves normally in all other regards.
from django.core.management.commands.runserver import Command
@mozz100
mozz100 / hosts
Created December 4, 2014 10:59
Ansible list syntax - apparently confusing behaviour
localhost ansible_connection=local
@mozz100
mozz100 / simple_web_server.py
Created February 2, 2015 11:00
Very simple web server
# A VERY simple (naive?) web server.
# Listens for requests (on a socket) and responds with HTML responses.
# There are some obvious problems with this (it's really very basic). For instance,
# it responds to ALL requests with 200 OK and HTML.
# Code based on http://code.activestate.com/recipes/576541-very-simple-http-web-server/
from socket import *
HOST = '' # Can put '127.0.0.1' - meaning the local host
PORT = 5000 # Arbitrary non-privileged port