Skip to content

Instantly share code, notes, and snippets.

View devth's full-sized avatar
Deep Work

Trevor Hartman devth

Deep Work
View GitHub Profile
@devth
devth / coffee.md
Created February 5, 2014 15:43
Be a B+ Coffee Snob
  1. Boil some water in a kettle.
  2. Measure out 34.5 grams of beans on a kitchen scale, and grind them finely in a conical burr grinder.
  3. Put a No. 4 filter (I use Melitta) in a dripper sitting over a server.
  4. When the water comes to a boil, pour a little into the dripper to wet the filter, then discard the water that collects in the server. (Keep the kettle boiling.) Replace the dripper, and add the ground beans to the filter.
  5. Pour less than ½ cup of just-off-the-boil water over the coffee. Don’t pour so fast that the grounds start rising up the sides of the filter. (The idea is to let the water “wet” the grounds, unlocking flavors, in preparation for the bigger hot-water hit to come.) About 30 seconds later, pour in enough water to let the grounds rise three-quarters of the way up the filter, while breaking up any visible clumps of coffee on the surface by shaking the kettle a little. About 45 seconds later, repeat, letting the grounds rise up no higher than they did on the first pour.
  6. When the cof
I like LYAH as a reference and cheat-sheet but I found it a little slow for
learning Haskell.
Here's my recommended order for just learning Haskell:
http://yannesposito.com/Scratch/en/blog/Haskell-the-Hard-Way/ 80% completion
here is fine if you feel your attention waning, the next thing will address
hammering in things like functors and monads via typeclasses.
https://github.com/NICTA/course/ this will hammer in the lessons in a very
#include <TinkerKit.h>
TKMosFet mos(O0);
// TKPotentiometer pot(I0);
int val = 10;
void setup() {
}
@devth
devth / sunset
Created September 23, 2013 18:25
trevorhartman at host-174-45-234-173 in ~/work/sunset on master!
± ./deploy.sh
DEPLOY SUNSET
|
\ / _\/_
.-'-. //o\ _\/_
-- / \ -- | /o\
~^~^~^~^~^~^~^~^~^~^-=======-~^~^~^~~^~^~^~|~~^~^|^~
THANKS FOR ALL THE FISH |
(def bal
(insta/parser
"expr = group
<cmd> = word (space word)*
sub-expr = <dollar> <lparen> group <rparen>
<group> = lparen cmd rparen | cmd
<word> = sub-expr | group | #'[^ ()]*'
space = <' '>+
<dollar> = '$'
<lparen> = '('
@devth
devth / weird.scala
Last active December 19, 2015 20:48
"abc/xyz.lol" split("/").reduceLeft((a, b) => b) // => Array[String] = Array(abc, xyz.lol)
"abc/xyz.lol" split("/") reduceLeft((a, b) => b) // => String = xyz.lol
"abc/xyz.lol".split("/").reduceLeft((a, b) => b) // => String = xyz.lol
// Why does the first line result in the full Array?
Caused by: clojure.lang.ExceptionInfo: :peer/timeout Transaction timed out. {:db/error :peer/timeout}
at clojure.core$ex_info.invoke(core.clj:4227)
at datomic.error$raise.invoke(error.clj:24)
at datomic.error$raise.invoke(error.clj:20)
at datomic.peer$await_tx_result.invoke(peer.clj:75)
at datomic.peer.Connection.transact(peer.clj:125)
at datomic.api$transact.invoke(api.clj:64)
at datomico.db$transact.invoke(db.clj:55)
at datomico.db$transact_BANG_.invoke(db.clj:61)
at datomico.db$load_schemas.invoke(db.clj:67)
-- find the elements of two 3-element sets whose cartesian products, when multiplied
-- form a 5-element set
setMembers = head [[a, b, c, d, e, f] | a <- [1..10], b <- [2..14], c <- [4..20], d <- [6..24],
e <- [7..25], f <- [6..30],
length [a, b, c, d, e, f] == length (nub [a, b, c, d, e, f]),
length (nub [x*y | x <- [a, b, c], y <- [d, e, f]]) == 5]
@devth
devth / change.hs
Last active December 18, 2015 19:29
Given an amount of money (in cents), determine all the ways to make change given a list of denominations.
change :: Int -> [Int] -> [[Int]]
change amt [] = [[]]
change amt [d] = [replicate (quot amt d) d]
change amt (d:denoms) =
if d <= amt then
reverse [0..(quot amt d)] >>= \x ->
[(replicate x d) ++ c | c <- (change (amt - (x*d)) denoms)]
else
change amt denoms
object BT {
case class BNode(v: Int, l: Option[BNode], r: Option[BNode])
val bt = BNode(5,
Some(BNode(4, Some(BNode(3, None, None)), None)),
Some(BNode(10, None,
Some(BNode(15, None, None)))))
def bt2Sorted(bt: BNode, l: List[Int] = List[Int]()): List[Int] = {
bt match {