Skip to content

Instantly share code, notes, and snippets.

View hannestyden's full-sized avatar

Hannes Tydén hannestyden

  • Stockholm, Sweden
View GitHub Profile
@hannestyden
hannestyden / sorted_cmp.py
Last active December 26, 2023 06:06
Python POGS - Principle of greatest surprise
import sys
from functools import cmp_to_key
def p(data, label=None):
if label:
print(label, end=": ", file=sys.stderr)
print(data, file=sys.stderr)
return data
@hannestyden
hannestyden / Makefile
Last active May 3, 2021 09:48
Significant trailing whitespace in GNU Make
# GNU Make 4.1
# the next line has no trailing whitespace
A=a
B=a# no whitespace before the comment
C=a # some whitespace before the comment
# the next line has some trailing whitespace
D=a
default:
@hannestyden
hannestyden / Beither.scala
Last active December 4, 2018 12:18
Beither
abstract class Beither[+A, +B] {
// From German "beide" and English "either" => "beither".
// Preferably pronounced as German "Beißer".
def left = Beither.LeftProjection(this)
def right = Beither.RightProjection(this)
def both = Beither.BothProjection(this)
}
@hannestyden
hannestyden / open-mysql-docker-service-in-sequel-pro.sh
Last active May 26, 2018 04:59 — forked from helderco/db-open
Script to open a mysql database in Sequel Pro from a service in docker-compose.
#!/bin/bash
# Original: https://gist.github.com/helderco/e9d8d072a362ad818f6a
set -e
show_help() {
cat << EOF
Usage: ${0##*/} [-s SERV] [-u USER] [-p PASS] [-P PORT] [-H HOST] [DATABASE]
${0##*/} -h
@hannestyden
hannestyden / Gemfile
Last active April 8, 2018 01:47
Destroy All Software downloader
source 'https://rubygems.org' do
gem 'mechanize'
end
@hannestyden
hannestyden / x2j.zsh
Last active April 8, 2018 02:48
XML to JSON
# Convert XML to JSON
#
# Usage:
# x2j source_path [xsltjson parameters](https://github.com/bramstein/xsltjson#parameters)
#
# Reads from standard in if `source_path` set to `-`.
x2j() {
local base
base=src/github.com/bramstein/xsltjson
lprompt() {
r=$?
[ $r -eq 0 ] && echo "?" || echo "!"
}
@hannestyden
hannestyden / animal.rb
Last active April 8, 2018 02:48
Inheritence, mix-ins, composotion
# Composition
class Eat
def do_it
puts 'Nom, nom ...'
end
end
class Say
def do_it
@hannestyden
hannestyden / whatIsMyName.scala
Last active April 8, 2018 02:48
What is my name?
scala> def whatIsMyName[A,B](map: Map[A, Seq[B]]): List[(A, B)] =
| map.map { case (k, v) => v.map(k -> _) }.flatten.toList
whatIsMyName: [A, B](map: Map[A,Seq[B]])List[(A, B)]
scala> whatIsMyName(Map('a -> Seq(1,2), 'b -> Seq(3,4)))
res0: List[(Symbol, Int)] = List(('a,1), ('a,2), ('b,3), ('b,4))
@hannestyden
hannestyden / git-lye.sh
Last active April 8, 2018 02:48 — forked from grobie/git-lye.sh
# git lye
# An attempt to make rebasing easy, by draining unnessarcy commit noise.
# No warranty, use at own risk.
# Author Hannes Tydén <[email protected]>
# Contributor Tobias Schmidt <[email protected]>
# TODO
# - Don't sign off all commits are by current user.