Skip to content

Instantly share code, notes, and snippets.

View mdwhatcott's full-sized avatar

Michael Whatcott mdwhatcott

View GitHub Profile
@mdwhatcott
mdwhatcott / tcr.sh
Last active October 5, 2019 15:25
test && commit || revert (a la Kent Beck)
#!/usr/bin/env bash
# TCR: test && commit || revert
# codified by Kent Beck
# https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864
function test() {
echo
cd `git rev-parse --show-toplevel`
go test ./...
@mdwhatcott
mdwhatcott / path.py
Created March 31, 2018 17:35
Dynamic attribute resolution to mimic a directory tree on a file system (either real or contrived).
class Path(object):
"""
This nifty class uses dynamic attribute resolution to mimic a directory
tree on a file system (either real or contrived).
"""
def __init__(self, root, enforce_real_paths=False):
self.root___ = str(root)
self.navigation___ = []
self.enforce___ = enforce_real_paths
if self.enforce___ and not os.path.exists(self.root___):
@mdwhatcott
mdwhatcott / Preferences.sublime-settings
Created November 29, 2016 16:36
sublime preferences
{
"close_windows_when_empty": true,
"color_scheme": "Packages/Dayle Rees Color Schemes/sublime/darkside.tmTheme",
"draw_white_space": "all",
"font_face": "Source Code Pro",
"font_size": 19,
"ignored_packages":
[
"Vintage"
],
@mdwhatcott
mdwhatcott / Default (OSX).sublime-keymap
Created November 29, 2016 16:35
sublime keyboard shortcuts
[
{ "keys": ["super+k", "super+w"], "command": "toggle_setting", "args": {"setting": "word_wrap"}},
{ "keys": ["super+k", "super+m"], "command": "toggle_minimap" },
{ "keys": ["super+k", "super+t"], "command": "delete_trailing_spaces" }
]
Tweaks to Intellij:
Load Golang SDK
Mark Golang SDK as default
---
Keyboard Shortcuts:
Go to end of file
@mdwhatcott
mdwhatcott / validate_struct.go
Last active November 4, 2015 23:05
One way to validate struct fields that are strings, and that have a struct tag with a regex.
package web
import (
"bytes"
"reflect"
"regexp"
"fmt"
"errors"
"strings"
)
@mdwhatcott
mdwhatcott / echo_server.go
Created September 21, 2015 21:44
HTTP server that dumps the over-the-wire HTTP request it serves.
package main
import (
"fmt"
"log"
"net/http"
"net/http/httputil"
)
func main() {
@mdwhatcott
mdwhatcott / testing.go
Created August 13, 2015 17:29
golang testing package improvements
package something
import "testing"
type MyFixture struct {
*testing.T
sut Something // stuff under test
}
@mdwhatcott
mdwhatcott / traverse.go
Created July 29, 2015 21:06
Recursively find a value in a JSON object that can contain fields and values, as long as all values are only JSON objects with similarly defined objects with fields and values.
// traverse recursively finds a value in a JSON object that can contain fields and values,
// as long as all values are only JSON objects with similarly defined objects with fields and values.
// This works with structures like the US and International Street APIs.
// example: traverse(d, "components", "primary_number) // will return the primary number of the candidate)
func traverse(i interface{}, keys ...string) interface{} {
var (
found bool
object map[string]interface{}
)
object, found = i.(map[string]interface{})
@mdwhatcott
mdwhatcott / custom_json.go
Created July 29, 2015 17:15
Example of implementing MarshalJSON and UnmarshalJSON to serialize and deserialize custom types to JSON in Go. Playground: http://play.golang.org/p/7nk5ZEbVLw
package main
import (
"bytes"
"encoding/json"
"fmt"
"strconv"
)
func main() {