Skip to content

Instantly share code, notes, and snippets.

View SamWhited's full-sized avatar

Sam Whited SamWhited

View GitHub Profile
@SamWhited
SamWhited / go.mod
Last active June 27, 2021 11:50
XEP Deps
module mellium.im/xepdeps
go 1.17
@SamWhited
SamWhited / precisTests.go
Last active August 12, 2019 19:52
Run the test vectors from the Python version of Precis against the Go version
// Command precisTests opens test/golden.json from the python version of Precis
// and attempts to run them against the Go version.
//
// Right now Python 3.7.4 appears to use Unicode Version 11.
// This means this program should be run with Go 1.13 to use the same version.
// This is gotip as of this gist.
//
// To install gotip try something like this:
//
// go get golang.org/dl/gotip
@SamWhited
SamWhited / transactions.go
Last active August 20, 2022 11:41
Example of wrapping up database transactions with a closure.
package transaction
import (
"context"
"database/sql"
)
// Exec creates a transaction and calls f.
// When it is finished, it cleans up the transaction. If an error occured it
// attempts to rollback, if not it commits.
@SamWhited
SamWhited / fake_enums.md
Last active December 21, 2020 12:21
Experience report about attempting to ensure compile time correctness of values using the type system

Faking Enumeration Types with Consts and Unexported Types

What I Wanted to Do

While working on an implementation of the wire protocol from a network standard, I needed to implement an error response. These errors may come in one of several flavors which is encoded and sent along with the error:

  • Cancel
@SamWhited
SamWhited / .gitignore
Last active August 31, 2016 15:22
Jitsi Meet mod_token_auth ASAP test server
testtoken
main
*.sw[op]
@SamWhited
SamWhited / .block
Last active April 25, 2016 19:54
Go bcrypt benchmarks
license: gpl-3.0
@SamWhited
SamWhited / keybase.md
Created June 28, 2015 02:52
Keybase verification

Keybase proof

I hereby claim:

  • I am SamWhited on github.
  • I am samwhited (https://keybase.io/samwhited) on keybase.
  • I have a public key whose fingerprint is 9761 51DE E472 01CE 4A85 9F70 5408 3AE1 04EA 7AD3

To claim this, I am signing this object:

@SamWhited
SamWhited / Makefile
Last active August 29, 2015 14:22
Print all cameras supported by the currently linked version of libraw
.PHONY: build
all: cameras
cameras: cameras.c
gcc -I/usr/include/libraw $< -o $@ -lraw
@SamWhited
SamWhited / thinklight.go
Created May 30, 2015 22:38
Turn on or off the ThinkLight (or keyboard backlight) on various ThinkPad laptops
package main
import (
"flag"
"log"
"os"
)
func btoi(n bool) byte {
if n {
@SamWhited
SamWhited / ciphers.md
Created February 2, 2015 13:43
Ciphers supported in Android (Conversations prefered order first, then system ciphers)

Android 4.4:

02-02 08:40:53.293    2514-2530/eu.siacs.conversations D/conversations﹕ Using
ciphers: [TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA,
SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA,
TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA,
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,