Skip to content

Instantly share code, notes, and snippets.

Avatar

Kevin kevinl95

View GitHub Profile
View handler.js
exports.handler = function( event, context ) {
var http = require( 'http' );
var url = 'http://api.openweathermap.org/data/2.5/weather?zip=<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
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">
<div>
<img src="img/HUInigOUSSylDwF0M3qq_mrt.jpg" style="display: block; width: 100%; height: auto; margin-left: auto; margin-right: auto;">
</div>
<div>
<iframe width="0" height="0" border="0" name="dummyframe" id="dummyframe"></iframe>
<form action="https://api.particle.io/v1/devices/yourdevicehere/tone?access_token=yourtokengoeshere" method="POST" target="dummyframe">
<button class="button button-balanced button-block" name="17khz" value="17">Turn on the 17kHz Tone</button>
@kevinl95
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
kevinl95 / extract_pdf_attachments.py
Created Jul 8, 2018
Demonstration of how to extract attachments from PDF files using Python 3 and PyPDF2.
View extract_pdf_attachments.py
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
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 https://xkcd.com/936/
// 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 {
none
}
action-endpoints {
action-endpoint (generate) {
accepted-inputs (numWords)
local-endpoint ("generator.js")
}
}
View bixbyaction.bxb
action (generate) {
collect{
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.)