This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 | |
# |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) + "---" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def session_test(session): | |
session.interpreter = 'python2.7' | |
session.install('-e', '.[grpc]') | |
session.install('pytest') | |
session.run('pytest', '-x', 'google') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |