Wed Apr 12 07:47:04 EDT 2017 Slept from ten-thirty to seven. Woke briefly around four. High of fifty-nine today. Cloudy in the morning, and sunny in the afternoon. Work: - Patch Wednesday Done. - Think about gateways Done. Twenty-five minute walk at lunch. Pretty nice weather, but cool enough that I should have worn a jacket. Got into a discussion with Jim about the etymology of "move at a good clip". We speculated that the idiom might be nautical (i.e. clipper ship). However, the Wikipedia page for "Clipper" points to the general usage of "clip" as an English verb meaning to move swiftly. Strangely, this sense is not included in my favorite source, etymonline.com, but is used in John Dryden's 1667 poem "Annus Mirabilis": Have you not seen when, whistled from the fist, Some falcon stoops at what her eye designed, And with her eagerness, the quarry missed, Straight flies at check, and clips it down the wind: The dastard crow, that to the wood made wing, And sees the groves no shelter can afford, With her loud caws her craven kind does bring, Who safe in numbers cuff the noble bird. Hmm. See OpenBSD iked.conf(5). VTI on EdgeRouter: https://help.ubnt.com/hc/en-us/articles/205204100-EdgeRouter-VTI-Example-on-EdgeRouter Home: - Golang study Done. https://gobyexample.com/interfaces https://golang.org/doc/effective_go.html#interfaces http://go-book.appspot.com/interfaces.html Is the value of interfaces this: we can write **a function that works on various _different_ types**, so long as those types implement the interface our function expects? The Go by Example geometry-rectangle-circle-area-perimeter-measure example shows this clearly. This is similar to saying a variable declared as an interface type can store any value that happens to implement the interface. The second part of this is (as TGPL says): > interfaces are satisfied implicitly. [...] In other words, there’s no need to declare all the interfaces that a given concrete type satisfies; simply possessing the necessary methods is enough. This design lets you create new interfaces that are satisfied by existing concrete types without changing the existing types, which is particularly useful for types defined in packages that you don’t control. Another twenty-five minute walk after work. Saw a cardinal and a small woodpecker. Hear a morning dove. Breakfast: carrots, yogurt, spinach, coffee Lunch: nuts Dinner: pizza