Skip to content

Instantly share code, notes, and snippets.

View germanviscuso's full-sized avatar
🏠
Working from home

German Viscuso germanviscuso

🏠
Working from home
View GitHub Profile
@germanviscuso
germanviscuso / autothread
Last active August 29, 2015 14:10
Quickly launch Java background task (works on Android)
(new Thread(new Runnable() {
public void run()
{
//CODE HERE RUNS IN BACKGROUND
}
})).start();
function update_trackers(params, context, done) {
// Available params are:
// params.thingID
// params.vendorThingID
// params.uri
// params.userID
// params.groupID
// params.values
// params.expected
/*
* ------------ [GP_019] - AQM with particle --------------
*
* Explanation: This is the basic code to manage and read CO, O3, SO2, NO2
* gas sensors and a prticle sensor. This gases are commonly meassured in
* air quality monitors. The concentration and the enviromental variables
* will be stored in a frame. Cycle time: 5 minutes.
*
* Copyright (C) 2015 Libelium Comunicaciones Distribuidas S.L.
* http://www.libelium.com
@germanviscuso
germanviscuso / sendInitialState.js
Last active May 17, 2016 11:25
Function for Kii server extension to send events to InitialState.com (Note: object must have flat properties, no nesting supported)
function sendInitialState(accessKey, bucketKey, kiiObject, workerCallback, doneCallback) {
var targetUrl = "https://groker.initialstate.com/api/events";
var customInfo;
$.each(kiiObject, function(key, val){
if(key == "_customInfo")
customInfo = val;
});
if (!customInfo) {
var error = "Error: can't retrieve thing custom data for visualization";
console.log(error);
@germanviscuso
germanviscuso / sendDweet.js
Last active May 17, 2016 11:25
Functions to send a dweet.io via a Kii server extension (useful for connecting to Freeboard)
function createDweetFromKiiObject(thingid, kiiObject, dweetKey, workerCallback, doneCallback) {
var string = null;
$.each(kiiObject, function(key, val){
if(key == "_customInfo")
string = JSON.stringify(val);
});
if (string == null){
console.log("Error: can't retrieve thing custom data for dweeting");
if(doneCallback) doneCallback("Dweet error");
}
@germanviscuso
germanviscuso / index.js
Created July 6, 2016 17:27
Parking sensor to Kii snippet (node.js)
const raspi = require('raspi'); // Raspberry Pi GPIO library
const Serial = require('raspi-serial').Serial; // Raspberry Pi UART library
const thingNode = require('thing-node'); // Kii node.js library
const dissolve = require("dissolve"); // binary stream parser
const appId = '<REPLACE_WITH_KII_APP_ID>';
const appKey = '<REPLACE_KII_APP_KEY>';
const appSite = 'US';
const vendorThingId = 'ParkingSensor_1';
const thingPassword = '<CHOOSE_PASSWORD_AND_REPLACE_HERE>';
@germanviscuso
germanviscuso / sync.sh
Last active November 18, 2021 22:15
Mirror/Sync Github Organization Repos locally
#!/bin/bash
# Clone all org repos (via ssh)
curl -s https://api.github.com/orgs/<organization>/repos?per_page=200 | python -c $'import json, sys, os\nfor repo in json.load(sys.stdin): os.system("git clone " + repo["ssh_url"])'
# Later pull from each repo
back=`pwd`; for d in `find . -type d -name .git` ; do cd "$d/.."; git pull origin; cd $back ; done
find . -name .git -type d \
| xargs -n1 -P4 -I% git --git-dir=% --work-tree=%/.. remote update -p
@germanviscuso
germanviscuso / templates.json
Last active October 1, 2018 16:05
Templates to clone Alexa skills via ASK-CLI with "ask new --template --url http://bit.ly/2zJExED"
{
"Number Guessing Game": {
"gitUrl": "https://github.com/germanviscuso/skill-sample-nodejs-numberguessinggame.git",
"description": "The number guessing game is a game where the player tries to guess the target number."
},
"My Calculator": {
"gitUrl": "https://github.com/germanviscuso/skill-sample-nodejs-mycalculator.git",
"description": "Basic calculator skill (es-ES)."
}
}
@germanviscuso
germanviscuso / en-US.json
Last active July 30, 2019 08:39
Alexa Skill Basics: Intent Confirmation in Dialogue Management
{
"interactionModel": {
"languageModel": {
"invocationName": "intent confirmation",
"intents": [
{
"name": "AMAZON.CancelIntent",
"samples": []
},
{