Skip to content

Instantly share code, notes, and snippets.

View joneskoo's full-sized avatar

Joonas Kuorilehto joneskoo

View GitHub Profile
@joneskoo
joneskoo / Makefile
Last active June 27, 2016 22:01
Fetch raw consumption data from www.energiatili.fi (curl)
all: data.json
clean:
rm -f data.json power.html
power.html:
./get-power-data.curl
data.json: power.html
cat $< | grep ' var model =' \
@joneskoo
joneskoo / .block
Last active May 4, 2016 16:10 — forked from mbostock/.block
Attempt to visualize LTE download speeds
license: gpl-3.0
@joneskoo
joneskoo / README.md
Last active April 2, 2016 17:06
acmetool reload script for kapsi.fi sites SNI

kapsi.fi kotisivujen TLS acmetool avulla

[acmetool] on [Let's Encryptin][le] ACME-protokollan toteuttava asiakasohjelma.

  1. Pyydä Kapsin ylläpidolta SSL-tuen lisäys omalle domainille.

SSL-tuki pitää pyytää omalle verkkosivulle Kapsin ylläpidolta sähköpostilla ennen kuin toimii. Näitä ohjeita voi sinänsä seurata myös ennen pyytämistä, mutta SSL/TLS aktivoituu vasta kun ylläpito lisää sen.

@joneskoo
joneskoo / doorbell_input.diff
Created February 28, 2016 16:33
Door bell glitch removal bugfix
void loop() {
int oldButtonState = digitalRead(buttonPin);
// Wait for button to be pressed
while (1) {
int buttonState = digitalRead(buttonPin);
// Button state changed
if (buttonState != oldButtonState) {
// glitch removal - wait GLITCH_US and if button state still
// changed, proceed
delayMicroseconds(GLITCH_US);
@joneskoo
joneskoo / keybase.md
Created January 30, 2016 15:50
Keybase proof

Keybase proof

I hereby claim:

  • I am joneskoo on github.
  • I am joneskoo (https://keybase.io/joneskoo) on keybase.
  • I have a public key ASCSvAnO76FQdlSaExHmzP_PsXvQ-jxne8Rua6pIvHoCPQo

To claim this, I am signing this object:

@joneskoo
joneskoo / parse-speeds.sql
Created November 29, 2015 10:15
SQlite3 as CSV aggregator
#!/bin/bash
sqlite3 <<_EOF_
.mode csv
create table wget (ts DATETIME, speed REAL);
.import "speeds.csv" wget
.header on
.mode column
--select min(speed)/1024, max(speed)/1024, avg(speed)/1024 from wget;
select AVG((t.speed - sub.a) * (t.speed - sub.a)) as var from wget AS t, (select AVG(speed) AS a FROM wget) AS sub;
@joneskoo
joneskoo / models.py
Last active April 24, 2018 09:10
Django: Reusable model filtering: Using QuerySet.as_manager() properly
# http://www.dabapps.com/blog/higher-level-query-api-django-orm/
# Converted to use Django 1.8 QuerySet.as_manager()
# We inherit custom QuerySet to define new methods
class TodoQuerySet(models.query.QuerySet):
def incomplete(self):
return self.filter(is_done=False)
def high_priority(self):
return self.filter(priority=1)
@joneskoo
joneskoo / table_to_sqlite3.py
Last active May 12, 2023 03:20
Parse HTML table to CSV
#!/usr/bin/env python3.4
import sys
import sqlite3
from html.parser import HTMLParser
class TableParser(HTMLParser):
def __init__(self):
@joneskoo
joneskoo / gist:7826d564a2b6d91e8e6f
Created December 21, 2014 10:47
Plot power consumption as a function of temperature
#!/usr/bin/env gnuplot
# sqlite3
# select cast(temp as integer), round(avg(1000*usage), 2) from power group by 1;
set terminal png
set output "data.png"
set datafile separator ","
set title "Power consumption as a function of temperature"
#cloud-config
apt_update: true
apt_upgrade: true
packages:
- augeas-tools
- screen
- curl
- wget
- build-essential
- git-core