Skip to content

Instantly share code, notes, and snippets.

View theacodes's full-sized avatar
🎛️
Bleep bloop

Stargirl Flowers theacodes

🎛️
Bleep bloop
View GitHub Profile
Write our robot code in Python on the Raspberry Pi.
We'll use the Arduino as a daughterboard. It'll handle I/O.
Use a serial protocol to communicate between the 2.
Raspberry Pi (Python) <-> USB Serial <-> Arduino (Firmware)
How do we get there?
1. Write a Arduino sketch to act as our firmware. This will receive serial commands and send back data.
@theacodes
theacodes / echo.py
Created September 6, 2014 17:58
Non-blocking gevent stdin read
#!/usr/bin/env python
from gevent import monkey
monkey.patch_all()
monkey.patch_sys(stdin=True, stdout=False, stderr=False)
import gevent
from gevent.queue import Queue
import sys
import signal
#!/usr/bin/env python
#
# Copyright 2007 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@theacodes
theacodes / custom_service.py
Created January 14, 2015 17:43
Ferris 3 example with custom properties
import ferris3
import endpoints
import protopigeon
from protorpc import messages
from google.appengine.ext import ndb
class ExampleProperty(ndb.StringProperty):
def _to_base_type(self, value):
return "---" + str(value) + "---"
@theacodes
theacodes / nox.py
Created August 30, 2016 23:49
nox for gcloud-python
def session_test(session):
session.interpreter = 'python2.7'
session.install('-e', '.[grpc]')
session.install('pytest')
session.run('pytest', '-x', 'google')
# Copyright 2015 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
@theacodes
theacodes / Dockerfile
Created February 24, 2016 18:41
scipy on MVMs
FROM gcr.io/google_appengine/python-compat-multicore
# Install scipy dependences
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python-scipy
# Add app code
ADD . /app/
@theacodes
theacodes / gist:6753923
Created September 29, 2013 16:17
Memory profiling WSGI middleware
from collections import defaultdict
import gc
class MemoryProfilingMiddleware(object):
def __init__(self, app):
self.app = app
#gc.set_debug(gc.DEBUG_LEAK)
self.last_count = 0
@theacodes
theacodes / safe_format_and_mount.sh
Created January 30, 2015 16:20
Safe format and mount from GCE
#! /bin/bash
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
@theacodes
theacodes / example.py
Created January 23, 2015 15:48
Simple search and delete task
from google.appengine.ext import ndb
def reaping_task():
search_string = "spam"
# Disable all caching, this prevents out of memory errors as we
# go through the whole dataset. If we don't do this, ndb will
# try to keep a copy of every entity we look at.
ndb.get_context().set_cache_policy(lambda key: False)