Skip to content

Instantly share code, notes, and snippets.

View dkarchmer's full-sized avatar

David Karchmer dkarchmer

View GitHub Profile
@dkarchmer
dkarchmer / docker-rpi3-image-setup
Created July 17, 2016 00:24
Steps to create a docker based RPi3 image
# Download latest image from http://blog.hypriot.com/downloads/. Assuming v0.8.0.
unzip hypriotos-rpi-v0.8.0.img.zip
# And identify SSD disk
diskutil list
# Unmount disk. Assuming we identified /dev/disk2 in previous step
diskutil unmountdisk /dev/disk2
# Flash SD card. May take up to 5min with no feedback
@dkarchmer
dkarchmer / rds-cache-tasks.py
Last active April 30, 2018 19:31
Invoke Tasks to create RDS and ElasticCache instances
import os
import sys
import time
import boto3
import botocore
import pprint
from invoke import run, task
DB_CONFIG = {
# SecurityGroup='sg-name" with ingress on port 5432 and source from itself
var getCookie = function (cname) { // eslint-disable-line no-unused-vars
var name = cname + '=';
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') { c = c.substring(1); }
if (c.indexOf(name) === 0) { return c.substring(name.length, c.length); }
}
return '';
};
AWSIID=$(aws ec2 run-instances --image-id ami-8da458e6 --count 1 --instance-type t2.micro \
--key-name myKeys --security-group-ids sg-XXXXXXXX \
| json -aH Instances | json -aH InstanceId); time aws ec2 wait instance-running
aws ecs register-task-definition --cli-input-json file://elasticsearch.json --region us-east-1
aws ecs register-task-definition --cli-input-json file://redis.json --region us-east-1
aws ecs list-task-definitions --region us-east-1
aws ecs run-task --task-definition foobar-elasticsearch:1 --count 1 --region us-east-1
@dkarchmer
dkarchmer / drf-nested-views.py
Last active December 21, 2023 19:47
Example of a Django Rest Framework ViewSet with nested views
# ViewSets define the view behavior.
class FooViewSet(viewsets.ModelViewSet):
lookup_field = 'slug'
queryset = Foo.objects.all()
serializer_class = FooSerializer
def get_queryset(self):
"""
This view should return a list of all records
"""
@dkarchmer
dkarchmer / codeship-setup
Created December 1, 2016 22:40
Setup to run django-aws-template on codeship
if [ -d "${HOME}/cache/python3_env" ]; then echo "venv exists"; else virtualenv -p $(which python3) "${HOME}/cache/python3_env";fi
source "${HOME}/cache/python3_env/bin/activate"
pip install -r server/requirements/development.txt
nvm install 5
npm install -g gulp bower
cd webapp
bower install
npm install
cd ..
@dkarchmer
dkarchmer / returnObservableWithNestedForkJoin.ts
Created February 19, 2017 17:50
Example of Angular2/TypeScript function returning an Observable after executing two nested forkJoin
public fetchABunchOfData (rootObj: RootObj): Observable<Project> {
// Returned original RootObj as an Observer when nested resource is fetched
let returnedData = new ReplaySubject(1);
let firstObservable = Observable.forkJoin(
this._cloud.getSomeRestData(rootObj.id),
this._cloud.getOtherRestData(rootObj.id)
);
// Execute first two Rest calls (someData and OtherData)
@dkarchmer
dkarchmer / python-script-template.py
Created June 10, 2017 19:04
Python Script Template with logging and arguments
import sys
import os
import argparse
import getpass
import logging
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logger = logging.getLogger('upload_bom')
if __name__ == '__main__':
@dkarchmer
dkarchmer / serverless_get_s3_file.py
Created September 7, 2017 17:19
Serverless function snippet to return an S3 file
def get(event, context):
response = _get_error_responce('Incorrect URL format: Use /foobar/<a>/<b>/?type=<url/file>')
if 'queryStringParameters' in event and 'pathParameters' in event:
if event['pathParameters'] and 'a' in event['pathParameters'] and 'b' in event['pathParameters']:
a = event['pathParameters']['a']
b = event['pathParameters']['b']
@dkarchmer
dkarchmer / iotile_coretools_tutorial.md
Last active January 31, 2019 18:59
IOTile Core Tools Tutorial

IOTile Core Tools

Basics

The public facing documentation for the IOTile Core Tools is https://coretools.readthedocs.io/en/latest/introduction.html, but things change a little when you have access to a real device.

With a BLED112 dongle, and access to the proper packages, you can communicate with a real device.

After installation, the iotile operations can be run from the OS command-line, or by using the IOTile Shell.