Skip to content

Instantly share code, notes, and snippets.

View tlwr's full-sized avatar
🇳🇱
all day i think about shareholder value

toby lorne tlwr

🇳🇱
all day i think about shareholder value
View GitHub Profile
@tlwr
tlwr / xmonad.hs
Created April 21, 2015 20:45
Thinkpad x220 XMonad Volume Buttons
xF86XK_AudioMicMute :: KeySym
xF86XK_AudioMicMute = 269025202
main = do
xmonad $ defaultConfig {} `additionalKeys`
[ ((0, xF86XK_AudioLowerVolume), spawn "amixer set Master 5%-")
, ((0, xF86XK_AudioRaiseVolume), spawn "amixer set Master 5%+")
, ((0, xF86XK_AudioMute), spawn "amixer set Master toggle")
, ((0, xF86XK_AudioMicMute), spawn "amixer set Capture toggle")
]

Keybase proof

I hereby claim:

  • I am tlwr on github.
  • I am tlwr (https://keybase.io/tlwr) on keybase.
  • I have a public key whose fingerprint is C761 113C A2C6 CE36 683A 2029 CC4D 282B 7EF9 F598

To claim this, I am signing this object:

@tlwr
tlwr / Gemfile
Last active June 23, 2022 11:55
PaaS service discovery example
source 'https://rubygems.org'
gem 'http'
gem 'sinatra'
@tlwr
tlwr / INSTRUCTIONS.md
Last active April 10, 2019 17:17
Horrible local Concourse
# you may have to run this a couple of times to get things to start up nicely
docker-compose up
# in a separate window run this
fly -t local login -c http://localhost:8080 -b
fly -t local set-pipeline -p horrible -c pipeline.yml
fly -t local unpause-pipeline -p horrible
@tlwr
tlwr / pipeline.yml
Last active April 25, 2019 21:56
Hijackable pipeline for adding secrets to Concourse
---
resource_types:
- name: meta
type: docker-image
source:
repository: swce/metadata-resource
resources:
- name: job-metadata
type: meta
@tlwr
tlwr / manifest.yml
Created May 17, 2019 15:47
Alertmanager on CF
---
alertmanager_config: &alertmanager_config
docker:
image: prom/alertmanager:v0.17.0
command: |
sh -euc '
echo "${ALERTMANAGER_CONFIG}" > /etc/alertmanager/alertmanager.yml ;
cat /etc/alertmanager/alertmanager.yml ;
/bin/alertmanager \
@tlwr
tlwr / CloudFront Field Level Encryption
Last active November 26, 2019 14:18
CloudFront form field encryption
See index.js
@tlwr
tlwr / main.go
Last active March 2, 2020 14:37
Stupidly simple Go application instrumented with prometheus
package main
import (
"log"
"net/http"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
@tlwr
tlwr / xff.rb
Created June 10, 2020 11:00
X-Forwarded-For validation
require 'ipaddr'
def validate(xff_header, allowed_ips, trusted_ips)
request_path = xff_header.split(',').map(&:strip).map { |ip| IPAddr.new ip }
allowed_ranges = allowed_ips.map { |ip| IPAddr.new ip }
trusted_ranges = trusted_ips.map { |ip| IPAddr.new ip }
loop do
return :deny if request_path.empty?
@tlwr
tlwr / README.md
Created August 18, 2020 14:47
grind_url