Skip to content

Instantly share code, notes, and snippets.


Brian Marick marick

View GitHub Profile
marick /
Last active February 24, 2021 04:47
The Pit of Unbearable Stench

For linsen:

  1. Rinse 1 bag lentils. Cover lentils with water in pot and boil for 30 minutes. Add water if needed.
  2. Cook several strips of bacon. Save a little of the grease. Put bacon on paper towels until cooled, then crumble it.
  3. Chop 1 onion and cook it in the bacon grease. Add a Tablespoon or so of flour, stir it in and cook about 30 seconds.
  4. Add onions and bacon to the lentils.
  5. Cut up 1 lb of hot dogs and add to pot. (This is excessive, but some hot dogs are traditional.)
  6. Add about 1 Tablespoon of salt, a capful of white vinegar, and about a half teaspoon of pepper.
  7. Cook til correct consistency. (Mushy)

For spaetzle:


Writing Elixir tests for greater long-term value: tricks and tools

Short summary: There are "tricks of the trade" for writing readable, maintainable tests that help produce a more coherent system. This talk shows some of them, with an emphasis on code you can use or copy today.

Longer description:

marick /
Last active February 27, 2020 23:58

I see tweets like this:

 "The coronavirus outbreak has me thinking back to when I was a server 
 and worked a week straight while I was really sick and it turns out I had 
 the swine flu and was probably spreading it to everyone because I couldn’t 
 take off work and I’m sure that will happen with this"

I'd like to somehow help out people for whom medical care is too expensive, who don't get paid sick leave, who might get fired if they don't tough it out:

  • You’ve talked a lot in the past about releasing regularly and constantly having a shippable product. At the same time, companies like Google and Facebook have the “single branch” approach where everyone commits to the master branch, so anyone can break anything at any given time. When you’re operating at the scale of these companies, with thousands of developers, do you think the approach of continuous deployment to one branch is flawed?

  • You mentioned in your lightning talk about being naive in the face of expertise that you had assumed it was an immutable fact that developers would never like writing tests. As students, much of our work is graded by an autograder where other people take the time to write the tests, and we generally only have to worry about writing the code. Do you think teaching computer science in this way reinforces the idea that developers should not be worrying about testing? And how do you think CS education should change to adapt a test-first approach?

  • I know that Agile scrum

marick /
Last active September 19, 2019 00:53

The Agile Manifesto ( is important, including the second principles page, which people hardly ever read.

Here are some things of mine they could look at. I’d be happy to receive email that might help a pair of us decide on better questions.

For those inclined to look at videos, they could randomly pick one of these:

marick /
Last active June 23, 2019 23:08
Process philosophers

A proposal to improve the speed at which reliable knowledge about software development is created

Extracted from a talk at NewCrafts Paris 2019, titled "Learning From How Science and Philosophy Progress".


  • Interaction rituals, the scene, and scenius
  • Science and reliable knowledge
  • Software and reliable knowledge
  • Scenes have places
View npm.txt
1393 $ /usr/local/lib/node_modules/node/bin/node[82126]: ../src/ node::PlatformExit(): Assertion `(err) != (-1)' failed.
1: /usr/local/lib/node_modules/node/bin/node[82125]: ../src/ node::PlatformExit(): Assertion `(err) != (-1)' failed.
1: /usr/local/lib/node_modules/node/bin/node[82122]: ../src/ node::PlatformExit(): Assertion `(err) != (-1)' failed.
1: /usr/local/lib/node_modules/node/bin/node[82123]: ../src/ node::PlatformExit(): Assertion `(err) != (-1)' failed.
1: /usr/local/lib/node_modules/node/bin/node[82127]: ../src/ node::PlatformExit(): Assertion `(err) != (-1)' failed.
1: /usr/local/lib/node_modules/node/bin/node[82120]: ../src/ node::PlatformExit(): Assertion `(err) != (-1)' failed.
1: /node::Abort()usr/local/lib/node_modules/node/bin/node[82121]: ../src/ node::PlatformExit(): Assertion `(err) != (-1)' failed.
node::Abort() [/usr/local/lib/node_modules/node/bin/node] [/usr
marick /
Last active September 26, 2018 16:14
Language descriptions from Bordeaux talk


  • Clojure excels at transforming streams of data. It’s great at taking data flooding in from a network, changing it, and storing it into a database.

  • Clojure code is interoperable with Java programs because it’s compiled to run on the Java Virtual Machine. For Java shops, that means it’s easy to adopt gradually. (It’s just one more JAR!)

  • There is a mostly-compatible implementation, ClojureScript, that runs on the JavaScript Virtual Machine (that is, in-browser). Many open source libraries work in both implementations, and you can write your own libraries to work that way.

  • There is a lot of emphasis on performance. The underlying data structures are tuned to work fast. For many many execution profiles, you can expect performance not too different from Java’s.

View reverse.txt
> To show the use of `map` and `andThen`, let me define a function
> `headButLast` that takes the `head` of a `List String` and removes its last
> character:
> {lang=elm}
> ~~~~~~~~~~~~~~
> > headButLast ["Dawn"]
> Just "Daw" : Maybe.Maybe String
> ~~~~~~~~~~~~~~