Skip to content

Instantly share code, notes, and snippets.

@samsalisbury
samsalisbury / extra-styles.css
Created July 11, 2023 19:26
fieldnotes.tech feather.io css
@media (min-width: 700px) {
:root {
--title-font-size: 6rem !important;
--logo-size: 8rem !important;
}
}
@media (max-width: 700px) {
:root {
--title-font-size: 4rem !important;
--logo-size: 6rem !important;
@samsalisbury
samsalisbury / centos-docker
Created November 29, 2022 11:00
docker-compose
FROM centos:7
RUN curl -o /etc/yum.repos.d/hashicorp repo http://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
RUN mkdir /var/linux-build-info/
RUN touch /var/linux-build-info/newfile.txt
COPY do-stuff /
CMD /do-stuff
#!/usr/bin/env bash
set -Eeuo pipefail
echo "==> Creating volume 'vol1'..."
docker volume create vol1
echo "==> Writing 'hi!'..."
docker run --rm -v vol1:/mounted busybox sh -c 'echo "hi!" > /mounted/hi.txt'

Keybase proof

I hereby claim:

  • I am samsalisbury on github.
  • I am samsalisbury (https://keybase.io/samsalisbury) on keybase.
  • I have a public key ASB9YPaXQaf3WTgYzmcXIFh2fs6Vo8Lqd-9dS6VYuD9XqQo

To claim this, I am signing this object:

@samsalisbury
samsalisbury / query.jq
Last active March 13, 2019 18:18
Generating spreadsheet of Sous manifests + owners
[
.[]
|
select(
.NumInstances != 0
and ( .SourceID.Location | startswith("github.com/sous") | not )
and ( .SourceID.Location | contains("hack") | not )
and ( .SourceID.Location | contains("demo") | not )
and ( .SourceID.Location | contains("sous") | not )
)
@samsalisbury
samsalisbury / vim-go-build-tags.vim
Created May 8, 2018 16:52
Getting vim-go and syntastic playing nicely with go build tags.
# First update vim-go and syntastic to latest versions.
# Then install/update go tools using :GoInstallBinaries and :GoUpdateBinaries
# Set default go build tags... Update ad-hoc with :GoBuildTags <new list>
let g:go_build_tags = "smoke integration"
# Get Syntastic to use build tags...
let g:syntastic_go_go_test_args = '-tags="smoke integration"'
let g:syntastic_go_go_build_args = '-tags="smoke integration"'
@samsalisbury
samsalisbury / connect
Last active January 19, 2016 12:00
connect: My SSH interactive session connection script
#!/bin/sh
# I keep scripts like this in $HOME/bin and add that dir to my
# path, so I can call e.g. `connect some.host.com` from anywhere.
[ -z "$1" ] && {
echo "usage: $0 <hostname>"; exit 3
}
REMOTE_TMUX_SESSION_NAME=Sam
@samsalisbury
samsalisbury / resize_mesos_stats_whisperdb.sh
Last active July 20, 2017 18:34
Resize graphite whisperdb mesos_stats output
#!/bin/sh
# This script can be executed on a graphite node to resize output from https://github.com/samsalisbury/mesos_stats
DIR=/opt/graphite/storage/whisper/mesos_stats
RULE="1m:14d 5m:60d 10m:120d 1h:2y"
# First set the retention for all, leaving the existing default aggregation (which in our config was avg, xfilesfactor=0.5)
find $DIR -name *.wsp | while read f; do whisper-resize.py $f $RULE; done
# Now override the aggregations for the following special cases that need summing (using xfilesfactor=0.1 as is common for summing in our config)
find $DIR -name *_time_secs.wsp -or -name failed.wsp -or -name lost.wsp -or -name finished.wsp | while read f; do
@samsalisbury
samsalisbury / si.go
Created March 4, 2014 17:55
Easier navigation of JSON unmarshalled to interface{}
package main
/*
Allows <d>easier</d> inelegant navigation of JSON unmarshalled to interface{}
*/
type si struct {
value interface{}
@samsalisbury
samsalisbury / UserInputAnonymiser.cs
Created December 19, 2013 17:29
Anonymise certain fields in a blob of JSON using Json.Net + JToken
using System.Linq;
using Newtonsoft.Json.Linq;
namespace ExternalApi.Logging
{
public static class UserInputAnonymiser
{
public static JToken Anonymise(JToken data)
{
foreach (var prop in data.Children<JProperty>())