Skip to content

Instantly share code, notes, and snippets.

View patio11's full-sized avatar

Patrick McKenzie patio11

View GitHub Profile
cd /tmp
curl -o git-2.2.1.tar.gz "https://www.kernel.org/pub/software/scm/git/git-2.2.1.tar.gz"
curl -o git-2.2.1.tar.sign "https://www.kernel.org/pub/software/scm/git/git-2.2.1.tar.sign"
# if you want to verify the tar signature
gpg --keyserver hkp://keys.gnupg.net --recv-keys 96AFE6CB
gunzip git-2.2.1.tar.gz
gpg --verify git-2.2.1.tar.sign
@patio11
patio11 / gist:efc421680aa2fd49c761
Created May 29, 2015 17:29
A comparison of golang and Ruby regular expression use
#In Golang
package main
import (
"fmt"
"regexp"
)
func main() {
@patio11
patio11 / gist:fe0abc1c18d09149e6c9
Created June 17, 2015 01:39
Quick sample of Golang and Ruby for string manipulation
#The task is replacing the port number in the URL string
//in golang
import "fmt"
import "strings"
func main() {
url := "http://localhost:8080/foo/bar"
fmt.Println(strings.Replace(url, "8080", "8181", -1))
}
@patio11
patio11 / example.go
Created June 22, 2015 08:21
An easy way to shoot yourself in the foot with go
// The wrong way to do things:
for {
switch {
case <- channelA:
doSomething()
case <- channelB:
doSomethingElse()
default:
// Do nothing.
@patio11
patio11 / react-flummox-reduce-boilerplate.js
Created June 26, 2015 13:39
Got tired of all the boilerplate with hooking up Stores/Actions so...
// When I was working on our React/Flummox app I got to the point where, per the docs, I had ~100 lines of code
// which were substantially predictable boilerplate, so I used some JS metaprogramming to condense them by 80%.
// Flummox docs: http://acdlite.github.io/flummox
// I use underscore.js below for utility but you can also just do a for loop.
class AppFlux extends Flux {
constructor() {
@patio11
patio11 / ansible-snippet.yaml
Created July 9, 2015 02:44
Create an account on every box using the list of employees; initialize with their Github SSH keys
vars:
starfighters:
- username: patrick
github: patio11
name: "Patrick McKenzie"
- username: thomas
github: tqbf
name: "Thomas Ptacek"
- username: erin
github: boboTjones
@patio11
patio11 / untrusted-lvl13-solution.js
Last active August 29, 2015 14:25 — forked from anonymous/untrusted-lvl13-solution.js
Patio11's solution to level 13 in Untrusted: http://alex.nisnevich.com/untrusted/
/*
* robotMaze.js
*
* The blue key is inside a labyrinth, and extracting
* it will not be easy.
*
* It's a good thing that you're a AI expert, or
* we would have to leave empty-handed.
*/
@patio11
patio11 / samples.js
Last active October 30, 2015 20:14
Starfighter REST API request and response JSON samples
//JSON to POST to /venues/FOOEX/stocks/BAR/orders
{
“symbol”: “BAR”,
“venue”: “FOOEX”,
“direction”: “buy”,
“qty”: 20,
“price”: 5100,
“type”: “limit”,
“account” : “OGB12345”, // your trading account (game gives you this)
@patio11
patio11 / borked.html
Created November 23, 2015 15:56
Minimal repro case of stylesheets not loading on Firefox with wrong MIME specified
<!DOCTYPE html>
<html lang='en'>
<head>
<link rel="stylesheet" type="css/text" href="https://dwpnibhogf8y5.cloudfront.net/static/css/bootstrap.min-f04b517b.css" />
<body>
<div class="alert alert-danger">This text should be styled.</div>
</body>
</html>
@patio11
patio11 / app_controllers_slack_controller.rb
Created November 26, 2015 09:01
Implementing a /healthcheck endpoint in Slack to read out consul status in a human-readable fashion
class SlackController < ApplicationController
skip_before_action :verify_authenticity_token
@@slack_security_tokens =
["copy-paste-the-token-you-get-from-Slack-when-configuring-the-integration-here"]
before_filter :bounce_access_not_from_slack
def healthcheck
services = SystemStatus.list_services