Skip to content

Instantly share code, notes, and snippets.


Kevin kevinl95

View GitHub Profile
View handler.js
exports.handler = function( event, context ) {
var http = require( 'http' );
var url = '<YOURZIPCODEHERE>,us&units=imperial&APPID=<YOURAPIKEYHERE>';
http.get( url, function( response ) {
var data = '';
View output.js
function output( text, context ) {
var response = {
outputSpeech: {
type: "PlainText",
text: text
card: {
type: "Simple",
title: "Thornton Windchill",
kevinl95 / skeeter.html
Created May 26, 2017
HTML for making the HTTP requests that drive Skeeter
View skeeter.html
<ion-view title="Skeeter" id="page1" style="background-color:#036D70;">
<ion-content padding="true" class="has-header">
<img src="img/HUInigOUSSylDwF0M3qq_mrt.jpg" style="display: block; width: 100%; height: auto; margin-left: auto; margin-right: auto;">
<iframe width="0" height="0" border="0" name="dummyframe" id="dummyframe"></iframe>
<form action="" method="POST" target="dummyframe">
<button class="button button-balanced button-block" name="17khz" value="17">Turn on the 17kHz Tone</button>
kevinl95 / photon_christmas_tree.ino
Last active Dec 6, 2017
johngineer's Oscilloscope Christmas Tree code adjusted for the Particle Photon
View photon_christmas_tree.ino
#define TRACE_DELAY 15000 // trace delay in uS. making this longer will
// result in a straighter drawing, but slower
// refresh rate. making it too short will result
// in an angular blob.
#define NUM_POINTS 19 // our tree is defined by 19 x/y coord. pairs
#define X D0 // attach scope channel 1 (X)
#define Y D1 // attach scope channel 2 (y)
kevinl95 /
Created Jul 8, 2018
Demonstration of how to extract attachments from PDF files using Python 3 and PyPDF2.
import PyPDF2
def getAttachments(reader):
Retrieves the file attachments of the PDF as a dictionary of file names
and the file data as a bytestring.
:return: dictionary of filenames and bytestrings
catalog = reader.trailer["/Root"]
kevinl95 / generator.js
Created Nov 8, 2018
The generator for my Bixby tutorial.
View generator.js
// Correct Horse Battery Staple
// An implementation of the XKCD password algorithm
// The idea behind this generator is that randomized passwords are easy to guess
// and difficult to remember, while a password composed of four english words is
// both easy to remember and difficult to guess. This capsule adds the ability
// to generate such passwords to Bixby.
// Main entry point
function generate(numWords) {
View bixbyendpoints.bxb
endpoints {
authorization {
action-endpoints {
action-endpoint (generate) {
accepted-inputs (numWords)
local-endpoint ("generator.js")
View bixbyaction.bxb
action (generate) {
input (numWords) {
type (NumWords)
min (Required)
max (One)
// add a default value of four words, like the comic
default-init {
intent {
goal {NumWords}
View numWords.bxb
integer (NumWords) {
description (The number of number of words to use in the password.)
View PasswordResult.model.bxb
structure (PasswordResult) {
description (The resulting password from the generate action.)
property (Password) {
description (The resulting password string from the generator.)
type (Password)
min (Required)
max (One)
property (length) {
description (The number of words used.)