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
balloob / thingsnetwork.py
Created October 22, 2015 07:14
The Things Network sensor for Home Assistant
"""
Sensor platform for Home Assistant that fetches data from the Things network.
Home Assistant: https://home-assistant.io
The Things Network: http://thethingsnetwork.org/
To use:
Copy this file to <config>/custom_components/sensor/thingsnetwork.py
Add to <config>/configuration.yaml:
@balloob
balloob / github_branch_cleanup.js
Created February 11, 2016 23:14
Code to paste into console with GitHub open to remove branches whose PRs are merged, closed or are 0 commits ahead
Array.prototype.slice.call(document.getElementsByClassName('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
balloob / nuclear-js-polymer-behavior-example.html
Last active March 1, 2016 05:30
Behavior to use Nuclear JS data in Polymer
<!--
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:
https://github.com/jordangarcia/nuclear-react-mixin
-->
<dom-module id='nuclear-example'>

Keybase proof

I hereby claim:

  • I am balloob on github.
  • I am balloob (https://keybase.io/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
balloob / release_the_kraken.py
Created September 25, 2016 19:33
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('127.0.0.1')
start_time = time.time()
@balloob
balloob / spectacles.py
Last active November 13, 2016 18:34
Track spectacle bots in Home Assistant https://home-assistant.io
"""
Component to track where spectacles are being sold.
To install:
- Install Home Assistant (duh): https://home-assistant.io
- Add this file as <config dir>/custom_components/sensor/spectacles.py
- Add to configuration.yaml:
sensor:
platform: spectacles
@balloob
balloob / mqtt.py
Last active December 1, 2016 18:35
Home Assistant light/mqtt.py which turns on based on brightness being set.
"""
Support for MQTT lights.
For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/light.mqtt/
"""
import logging
from functools import partial
import homeassistant.components.mqtt as mqtt
@balloob
balloob / async_logger.py
Last active December 16, 2016 07:39
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."""
@balloob
balloob / DocxToPdf.ps1
Created June 5, 2017 23:17 — forked from alexisnomine/DocxToPdf.ps1
Batch convert docx to pdf with powershell
Param(
[Parameter(Mandatory=$True)]
[string]$FilePath
)
$Files = Get-ChildItem "$FilePath\*.docx"
$Word = New-Object -ComObject Word.Application
Foreach ($File in $Files) {