Skip to content

Instantly share code, notes, and snippets.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDTWC0gUpIVksiKaWpJYY8LQJCSwN/x0rZm6nvk/lybV1b9PhHvo4z2293CsPTZYrYhaiQU37992hxY4dzVl8XZ9sposa91CyYjMSnZQEbriReP/63iyMOYHA9c3Dx07z1DHrnBnuKIoAWvpjoD1c6uKJdeZsuVjVvWB5dW7GDYmThkxcYWR1ZErJ0CjNcAZbrmkHHGARFB1D/vxRg5y0x28x0TPICBgh156B5v1EBGO96qwjXFhk2rJBUVJumXyOWvLDc28mAHUpJE5TiJ66Qs5KyB1rqTQN1Yjkw8e4KoGy2MwBNGNm7hq6EVP4eMkItQBrM7H56MSpDvPKkwcEq1Eq82OarxvP1hR/sOwo4OQN/uXh+Y7X2valMRZiZEnjAdN3NBdHoqoqttBr+LlSdr7/wH4la/gGLrGzw5awm/LoCvBx8KNkOnkOPd27NNwmoVVsfEcvaPFupkwEHpaxk5lXKrz8Ngd0/dxUaDZYtct65vPb46hSFoiUQf28XJggc= thomas@moon.localdomain
@sarfata
sarfata / iamalive.sh
Created September 16, 2020 19:49
Script to run from crontab to debug CPU lockup issues on a Raspberry Pi
#!/bin/sh │
LOG=/home/pi/iamalive.log │
date >> $LOG │
uptime >> $LOG │
ping -c 1 192.168.1.1 |grep 'transmitted\|rtt' >> $LOG │
echo >> $LOG
@sarfata
sarfata / esp32-crashdecoder.py
Created December 28, 2019 01:02
A Python version of the esp32 exception decoder
#!/usr/bin/env python
import argparse
import re
import os
import subprocess
import sys
class ESP32CrashParser(object):
@sarfata
sarfata / pebble_fonts.h
Created September 7, 2014 21:49
Pebble fonts
#define FONT_KEY_FONT_FALLBACK "RESOURCE_ID_FONT_FALLBACK"
#define FONT_KEY_GOTHIC_14 "RESOURCE_ID_GOTHIC_14"
#define FONT_KEY_GOTHIC_14_BOLD "RESOURCE_ID_GOTHIC_14_BOLD"
#define FONT_KEY_GOTHIC_18 "RESOURCE_ID_GOTHIC_18"
#define FONT_KEY_GOTHIC_18_BOLD "RESOURCE_ID_GOTHIC_18_BOLD"
#define FONT_KEY_GOTHIC_24 "RESOURCE_ID_GOTHIC_24"
#define FONT_KEY_GOTHIC_24_BOLD "RESOURCE_ID_GOTHIC_24_BOLD"
#define FONT_KEY_GOTHIC_28 "RESOURCE_ID_GOTHIC_28"
#define FONT_KEY_GOTHIC_28_BOLD "RESOURCE_ID_GOTHIC_28_BOLD"
#define FONT_KEY_BITHAM_30_BLACK "RESOURCE_ID_BITHAM_30_BLACK"
@sarfata
sarfata / app.js
Created June 6, 2014 02:13
AA Hackathon - Example pebblejs app
/*
* Example provided by Pebble for the American Airlines - Gogo in flight - Wearable World Hackathon
*
* To use this project, please go to cloudpebble.net and create a new Pebble.js project.
* Copy and paste this gist in the app.js file.
*
* You will need to update the gogoStatusURL to point to a valid Gogo Inflight test server.
* An example JSON file is provided too.
*/
@sarfata
sarfata / gist:df39171bebee7766b816
Created May 29, 2014 03:25
JSConf'14 Scavenger Hunt app
var card = new Pebble.UI.Card({ title: "JSConf 2014", subtitle: "Scavenger Hunt", scrollable: true });
card.show();
var msg = "Contacting NSA to get your current position ";
var timer = setInterval(function() {
card.body(msg);
msg += ".";
}, 800);
function distanceBetweenCoordinates(pos1, pos2) {
@sarfata
sarfata / gist:10574031
Created April 13, 2014 08:03
Pebble: How to override the back button when you are using a menu layer
/* Add those lines somewhere in your file */
// Define what you want to do when the back button is pressed
void back_button_handler(ClickRecognizerRef recognizer, void *context) {
APP_LOG(APP_LOG_LEVEL_DEBUG, "back clicked");
}
// We need to save a reference to the ClickConfigProvider originally set by the menu layer
ClickConfigProvider previous_ccp;
@sarfata
sarfata / hello_world.c
Created March 29, 2014 01:21
Pebble Videos - Introduction to Pebble Development
#include <pebble.h>
Window *window;
TextLayer *text_layer;
void handle_init(void) {
// Create a window and text layer
window = window_create();
text_layer = text_layer_create(GRect(0, 0, 144, 154));
@sarfata
sarfata / hello_world.c
Created March 29, 2014 01:18
Pebble Videos - Build a Watchface
#include <pebble.h>
Window *window;
TextLayer *text_layer;
TextLayer *date_layer;
InverterLayer *inverter_layer;
void handle_timechanges(struct tm *tick_time, TimeUnits units_changed) {
static char time_buffer[10];
static char date_buffer[10];
@sarfata
sarfata / gist:9200708
Created February 25, 2014 01:15
SimplyJS: Setting text
simply.text({
title: "Hello",
subtitle: "World",
body: "The real sense of life..."
});