Skip to content

Instantly share code, notes, and snippets.

View jnrbsn's full-sized avatar

Jonathan Robson jnrbsn

View GitHub Profile
@jnrbsn
jnrbsn / redis_pubsub.py
Created June 18, 2014 17:03
Re-establish a redis pubsub connection after losing it
import time
from redis import StrictRedis, ConnectionError
channels = ['test']
redis = StrictRedis()
pubsub = redis.pubsub()
pubsub.subscribe(channels)
while True:
try:
for item in pubsub.listen():
def degrees_to_direction(degrees):
"""Convert degrees to a compass direction."""
directions = [
'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW',
]
return directions[int(round(float(degrees) / 22.5)) % 16]
@jnrbsn
jnrbsn / markets.json
Last active August 29, 2015 14:19 — forked from sshirokov/markets.json
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@jnrbsn
jnrbsn / whereivebeen.geojson
Last active August 29, 2015 14:19
This is everywhere I've ever checked in or tagged on Foursquare, Facebook, and/or Instagram.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@jnrbsn
jnrbsn / plus_business_hours.php
Created September 14, 2010 19:46
Adds a specified number of business hours to a unix timestamp.
<?php
/**
* Adds a specified number of business hours to a unix timestamp.
*
* @param int $time_start The timestamp at which to start
* @param int $plus_hours The number of business hours to add
*
* @return int The resulting timestamp
*/
function plus_business_hours($time_start, $plus_hours)
@jnrbsn
jnrbsn / MIT_License.md
Created January 30, 2011 01:17
The MIT License

THE MIT LICENSE

Copyright © <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is

-- MySQL procedure for converting all MyISAM tables in a database to InnoDB.
--
-- Example usage:
--
-- $ mysql -N example_database < convert_innodb.sql
--
-- @author Jonathan Robson <jnrbsn@gmail.com>
-- @copyright 2011 Jonathan Robson
-- @license http://gist.github.com/802399 MIT License
-- @link http://gist.github.com/1144336
@jnrbsn
jnrbsn / httpserver.py
Created April 25, 2012 23:51
Serves up the current directory to localhost via an instant HTTP server.
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
try:
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
if sys.argv[1:]:
@jnrbsn
jnrbsn / jquery-mobile-test.html
Created June 6, 2012 18:56
Demonstration of jQuery Mobile issue for Stack Overflow question: http://stackoverflow.com/questions/10920495
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery Mobile Test</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css">
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script>
@jnrbsn
jnrbsn / gist:3966886
Created October 27, 2012 23:43
Read a file line by line in Node.js
var fs = require('fs'),
EventEmitter = require('events').EventEmitter;
var createLineReader = function (filename) {
var stream = fs.createReadStream(filename),
em = new EventEmitter(),
buffer = '';
stream.on('error', function (error) {
throw error;