Title | Author | Theme | Link |
---|---|---|---|
TCP/IP Illustrated, Volume 1 | Kevin Fall & others | Systems/networking | |
Systems Performance: Enterprise and the Cloud | Brendan Gregg | Linux/systems | |
Linux Kernel Development | Robert Love | Linux/systems | |
Advanced Programming in the Unix Environment | Richard Stevens | ||
Introduction to Algorithms | Thomas Cormen | Compsci | |
Production Ready Microservices | Susan Fowler | Ops/infra | |
Seeking SRE | David Blank-Edelman | SRE | |
The Goal | Eliyahu Goldratt | Process/leadership |
// convert all wood to beams | |
function allWoodToBeams() { | |
document.getElementsByClassName('craftTable')[0].childNodes[2].childNodes[5].childNodes[0].click(); | |
} | |
// all minerals to slabs | |
function allMineralsToSlabs() { | |
document.getElementsByClassName('craftTable')[0].childNodes[3].childNodes[5].childNodes[0].click(); | |
} |
// convert all wood to beams | |
document.getElementsByClassName('craftTable')[0].childNodes[2].childNodes[5].childNodes[0].click(); | |
// all minerals to slabs | |
document.getElementsByClassName('craftTable')[0].childNodes[3].childNodes[5].childNodes[0].click(); | |
// all beams to scaffolds | |
document.getElementsByClassName('craftTable')[0].childNodes[10].childNodes[5].childNodes[0].click(); | |
// send all hunters |
#!/usr/bin/env bash | |
set -m | |
echo "starting runc" | |
runc & | |
echo "starting containerd" | |
containerd & |
#!/bin/bash | |
set -o errexit | |
main () { | |
local namespaces=$(list_namespaces) | |
for namespace in $namespaces; do | |
local tasks=$(list_tasks $namespace) | |
for task in $tasks; do |
package main | |
import ( | |
"context" | |
"fmt" | |
"math/rand" | |
"time" | |
) | |
func main() { |
# For sub/pub to NATS job running in bosh-lite director. | |
# | |
# Ruby won't be in the path by default. To fix, run: | |
# export PATH=$PATH:/var/vcap/packages/ruby-2.4-r5/bin | |
# | |
# Also will need to load nats gem into the machine's local gem cache: | |
# gem install nats | |
require 'nats/client' | |
require 'eventmachine' |
To generate a certificate with an expiration date that is controllable (eg. 20 minutes in the future) you can do the following steps:
This might be useful for debugging issues around expired/invalid certificates or recreating scenarios during the cert rotation track of work.
In the vendored config server code, you can modify the code to return a different expiration date:
Context:
When hijacking into Concourse containers, environment variables don't always stick around. We need these to run system tests end-to-end.
After running fly -t <org> hijack -j <pipeline>/<job>
, choose the build # and container. Then...
source git-tile-pipeline/scripts/common/helpers.sh
parse_locks git-tile-pipeline/scripts/common/ release-lock/metadata
add_ssh_key_from_var "$BOSH_INSTANCE_SSH_KEY"
Writing feedback is difficult, and we don't know what skills our colleagues are trying to work on. Can we come up with questions to target specific areas of improvement?
- Do I write descriptive, brief commit messages?
- Can I improve my command of the tools we use (anything from BOSH to vim)?
- Have I made good suggestions about shortcuts and other ways to more effectively use our tools?
- Are we following the "Boy Scout Rule" -- leaving things cleaner than we found them, including our scripts?
- Do I effectively identify the next step to take?