Skip to content

Instantly share code, notes, and snippets.

pingcheck = hs.menubar.new()
function pingUpdate()
pingcheck:setTitle('⥌'..pingcheck:title())
local p = hs.network.ping('example.com', 3)
hs.timer.doAfter(4, function()
p:cancel()
local avg = p:summary():match('%/(%d+)%.%d+%/')
if avg == nil or avg == '0' then
pingcheck:setTitle('∞')
else
@apiarian
apiarian / README.md
Created September 3, 2022 03:49
SCRIPT-8
@apiarian
apiarian / Top Chicken.js
Last active August 1, 2022 14:17
a Scriptable (iOS) widget for chicken.photos
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: pink; icon-glyph: kiwi-bird;
const home = await (new Request("https://chicken.photos")).loadString()
const chickenLine = home.split("\n").filter(x=>x.match(/<a href="\/\d+">/))[0]
const m = chickenLine.match(/a href="([^"]+)"><img .*src="([^"]+)"/)
const chickenUrl = "https://chicken.photos" + m[1]
@apiarian
apiarian / citibike-widget.js
Last active January 3, 2022 14:47
CitiBike Status iOS Widget
function lat_lon(thing) {
return {
"lat": thing.lat || thing.latitude,
"lon": thing.lon || thing.longitude,
}
}
function distance(loc1, loc2) {
loc1 = lat_lon(loc1)
loc2 = lat_lon(loc2)
# update_timezones.py
# Aleksandr Pasechnik
#
# Goes through the Day One jounal and sets the Time Zone of each entry that
# doesn't already have one to the value of the *timezone* variable. Makes a
# backup copy of each entry it modified by adding a '.tzbak' to the filename.
# Ignores any entry that already has a '.tzbak' version.
#
# NOTE: base_dir may need to be adjusted to the correct Journal_dayone location
# NOTE: It is probably a good idea to have a full journal backup just in case
package main
import (
"math/rand"
"sort"
"testing"
)
func BenchmarkInsertSorted(b *testing.B) {
data := make([]int, b.N)
/*
go test -bench Map -run Map -benchmem -benchtime 10s
BenchmarkMapNestedPopulate-4 50000000 493 ns/op 72 B/op 1 allocs/op
BenchmarkMapNestedQuery-4 50000000 336 ns/op 1 B/op 1 allocs/op
BenchmarkMapCompoundPopulate-4 30000000 723 ns/op 209 B/op 0 allocs/op
BenchmarkMapCompoundQuery-4 50000000 387 ns/op 0 B/op 0 allocs/op
*/
func BenchmarkMapNestedPopulate(b *testing.B) {
m := make(map[string]map[int64]int64)
#!/usr/bin/env python3
# This script reads a journal located at the basedir in the following format:
# YYYY/MM/journal-entry.md (I usually have a YYYY-MM-DD HH-MM-SS Mon.md
# formatted entry name). It deletes the contents of the outputdir and replaces
# them with an HTML representation of the markdown files, complete with handy
# index pages and some keyboard navigation. Requires multimarkdown. Other files
# that might be in the basedir are copied to to the output directory structure
# alongside the generated HTML, so you can include things like images and even
# sounds in the markdown and they should "just work". Adjust as necessary. I

Keybase proof

I hereby claim:

  • I am apiarian on github.
  • I am apiarian (https://keybase.io/apiarian) on keybase.
  • I have a public key ASDql2jnKyQKDqepzcSb1x9Rxxw-PGFC0ajwDZsfzZPX3wo

To claim this, I am signing this object:

@apiarian
apiarian / Golang Channels Cheatsheet.md
Created March 26, 2017 13:11
because sometimes i forget

Golang Channels

  • send blocks forever
  • receive blocks forever
  • send blocks until received
  • receive blocks until sent