Skip to content

Instantly share code, notes, and snippets.

Constructing a binary search tree from a BST preorder traversel in linear time.
Paulus Schoutsen, Feb 16 2014
import sys
MAX_INT = sys.maxint
MIN_INT = -sys.maxint - 1
balloob /
Created Oct 22, 2015
The Things Network sensor for Home Assistant
Sensor platform for Home Assistant that fetches data from the Things network.
Home Assistant:
The Things Network:
To use:
Copy this file to <config>/custom_components/sensor/
Add to <config>/configuration.yaml:
balloob / github_branch_cleanup.js
Created Feb 11, 2016
Code to paste into console with GitHub open to remove branches whose PRs are merged, closed or are 0 commits ahead
View github_branch_cleanup.js'js-branch-row'))
.filter(el => el.getElementsByClassName('state-merged').length > 0 ||
el.getElementsByClassName('state-closed').length > 0 ||
el.getElementsByClassName('count-ahead')[0].innerHTML == '0')
.forEach(el => el.getElementsByClassName('branch-delete')[0].click())
balloob / nuclear-js-polymer-behavior-example.html
Last active Mar 1, 2016
Behavior to use Nuclear JS data in Polymer
View nuclear-js-polymer-behavior-example.html
Behavior to connect your NuclearJS app to Polymer.
Add key 'bindNuclear' to your property with as value a
valid NuclearJS getter.
Adapted from the NuclearJS ReactJS mix-in:
<dom-module id='nuclear-example'>
balloob / home-assistant.ipynb
Last active Jul 7, 2016
Jupyter Notebook connecting to Home Assistant
View home-assistant.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Keybase proof

I hereby claim:

  • I am balloob on github.
  • I am balloob ( on keybase.
  • I have a public key whose fingerprint is BBAD 245E 7174 B2E5 AD56 CBFB 322A D3E1 BB02 7C65

To claim this, I am signing this object:

balloob /
Created Sep 25, 2016
Stress test Home Assistant via the HTTP api
from multiprocessing.dummy import Pool
import sys
import time
from homeassistant import remote
# Docs: remote.API(host, [password], [port], [use_ssl])
api = remote.API('')
start_time = time.time()
balloob /
Last active Nov 13, 2016
Track spectacle bots in Home Assistant
Component to track where spectacles are being sold.
To install:
- Install Home Assistant (duh):
- Add this file as <config dir>/custom_components/sensor/
- Add to configuration.yaml:
platform: spectacles
balloob /
Last active Dec 1, 2016
Home Assistant light/ which turns on based on brightness being set.
Support for MQTT lights.
For more details about this platform, please refer to the documentation at
import logging
from functools import partial
import homeassistant.components.mqtt as mqtt
balloob /
Last active Dec 16, 2016
Async friendly logger
class AsyncFileHandler():
def __init__(self, loop, handler):
"""Initialize async logging file handle."""
self.handler = handler
self.loop = loop
self._queue = asyncio.Queue(loop=loop)
self._thread = threading.Thread(target=self._process)
def start_thread(self):
"""Start thread for processing."""