Skip to content

Instantly share code, notes, and snippets.

View erichiggins's full-sized avatar

Eric Higgins erichiggins

View GitHub Profile
@erichiggins
erichiggins / basic_scale_class.py
Created June 28, 2022 07:49
Boilerplate scale class for the Open Trickler. Fill out the sections labeled with TODOs.
class BasicScale:
"""Class for controlling a basic scale scale."""
# TODO(you): Update the default values, such as baudrate, to match your scale.
def __init__(self, memcache, port='/dev/ttyUSB0', baudrate=19200, timeout=0.1, _version=1, **kwargs):
"""Controller."""
self._memcache = memcache
self._serial = serial.Serial(port=port, baudrate=baudrate, timeout=timeout, **kwargs)
# Set default values, which should be overwritten quickly.
self.raw = b''

Keybase proof

I hereby claim:

  • I am erichiggins on github.
  • I am erichiggins (https://keybase.io/erichiggins) on keybase.
  • I have a public key ASDQ1plERE4G6ef8c_KV640t0DUHHeD6FJFO1DbYX9X8xwo

To claim this, I am signing this object:

@erichiggins
erichiggins / zipimportify.py
Last active December 10, 2016 10:02
Converts a directory of Python packages installed by pip into importable zip files for use on Google App Engine.
#!/usr/bin/env python
"""
Convert a directory of pip-installed libraries into zip-imports for use on GAE.
Usage:
pip install -U <library_name>
pip freeze > requirements_dev.txt
pip install -U --egg --target <path_to_zips> -r requirements_dev.txt
python zipimportify.py <path_to_zips>
@erichiggins
erichiggins / datastore_fetch_all.py
Last active November 25, 2020 17:31
Efficiently page over a Query to fetch all entities from the Google App Engine Datastore.
#!/usr/bin/python
"""
Functions are provided for both the DB and NDB Datastore APIs.
References:
* https://cloud.google.com/appengine/docs/python/datastore/queries
* https://cloud.google.com/appengine/docs/python/ndb/queries
"""
def db_fetch_all(query, limit=100, cursor=None):
@erichiggins
erichiggins / docker_passthru.bash.inc
Last active December 4, 2015 03:31
Enables command deligation to Docker images for a specific repo or directory.
# https://gist.github.com/erichiggins/a8bcd07295597d91dea7/
# version: 0.1.0
# author: Eric Higgins <[email protected]>
#
# Installation:
#
# 1) Copy this file into your repo's directory.
# cp docker_passthru.bash.inc ~/src/myrepo/
# 2) Add the following to your ~/.bash_profile to include this script.
# source ~/src/myrepo/docker_passthru.bash.inc
@erichiggins
erichiggins / bootstrap.py
Last active January 2, 2017 00:36
Adding Google App Engine SDK to Python virtualenv
#!/usr/bin/env python
"""
Setup a virtualenv with the Google App Engine SDK.
References:
http://virtualenv.readthedocs.org/en/latest/virtualenv.html#creating-your-own-bootstrap-scripts
http://mindtrove.info/virtualenv-bootstrapping/
"""
import hashlib
import os
@erichiggins
erichiggins / search_models.py
Created April 29, 2014 19:26
GAE Search-augmented NDB Models: Keep a searchable index up-to-date with the latest information in your datastore Models.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Search-augmented NDB Models for Google App Engine.
Usage:
import search_models
# Define an index for the document type.
@erichiggins
erichiggins / gae_ndb_revisions
Last active August 29, 2015 14:00
GAE NDB Revisions: Create automatic versions of your datastore models, allowing you to undo changes!
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Create automatic versions of your App Engine Datastore Models, allowing you to undo changes!
Usage:
import gae_ndb_revisions
# Add two properties to your Model(s).
@erichiggins
erichiggins / jsbin.bavel.css
Last active August 29, 2015 13:57
Simple box-and-whisker graph created from Magnetospeed data (in JSON format) using D3.js. http://jsbin.com/bavel/2/ based on http://bl.ocks.org/mbostock/4061502
.box {
font: 10px sans-serif;
}
.box line,
.box rect,
.box circle {
fill: #fff;
stroke: #000;
stroke-width: 1.5px;
@erichiggins
erichiggins / jsbin.bahijuve.css
Created March 16, 2014 18:19
Quick trajectory chart using D3.js. http://jsbin.com/bahijuve/
.line {
fill: none;
stroke: lightblue;
stroke-width: 1.5px;
stroke-linecap: butt;
shape-rendering: geometricPrecision ;
}
.axis--x text {
}