Skip to content

Instantly share code, notes, and snippets.

View marick's full-sized avatar

Brian Marick marick

View GitHub Profile

It’s notoriously hard to identify the boundaries of fascism¹, but the following quote strikes me as capturing something important:

Now it is not enough to learn how to shoot. In the name of historical justice, in the name of life’s instinct, in the name of truth—we must shoot.²

Self-actualization through violence.

I’m fond of Edith Hamilton’s summary of the classical Greeks' definition of happiness:

The exercise of vital powers, along lines of excellence, in a life affording them scope.

The brain does not like to work. It's a lot of work to have a true picture of the world live inside the brain. So the brain doesn't do that as much as you (it) thinks.

Some of the ways the brain avoids work may give help to people who show computers how to do the work computers do. Here are the ways I will talk about:

  • Have lots of little boxes of work. Each box looks for just one thing and knows how to do just one thing. It knows just enough to see the one thing and make the thing it knows how to do happen.

  • Many boxes are looking at the same time. The brain is always ready to do something else.

  • If two boxes both know the same thing or two, you can make another box to hold what's shared. But you only do that if it makes there be less work. Do that enough and you may get a true picture of part of the world. But most of the time you don't.

@marick
marick / flying-buttress.md
Last active August 27, 2023 21:23
How flying buttresses work

For a very long time, large structures were made of masonry: brick and stone and concrete. Masonry is strong when you’re squeezing it (putting it under compression). It is not strong under when it’s being pulled (placed under tension). This is a problem for building roofs. Consider a horizontal beam made out of masonry. Gravity is pulling down on the whole beam, but the ends are supported. So the tendency would be for the middle to droop down – which puts the masonry under tension.

The arch is the one weird trick to solve that problem. The shape of the arch means the higher bricks (say) push on the lower bricks – which is the kind of compression bricks can take. At the legs of the arch, all that weight producews a force pushing down and to the side. If the arch is fastened to the something big, like the earth, that force won’t have an effect, because the earth can push back just as hard.

The roof of a cathedral is essentially a bunch of arches resting on walls. Those walls have to resist the downward force

@marick
marick / about_those_lava_lamps.md
Last active June 22, 2022 21:08
About Those Lava Lamps

Around 2006-2007, it was a bit of a fashion to hook lava lamps up to the build server. Normally, the green lava lamp would be on, but if the build failed, it would turn off and the red lava lamp would turn on.

By coincidence, I've actually met, about that time, (probably) the first person to hook up a lava lamp to a build server. It was Alberto Savoia, who'd founded a testing tools company (that did some very interesting things around generative testing that have basically never been noticed). Alberto had noticed that people did not react with any urgency when the build broke. They'd check in broken code and go off to something else, only reacting to the breakage they'd caused when some other programmer pulled the change and had problems.

@marick
marick / pit.md
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
marick / help.md
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
marick / questions.md
Last active September 19, 2019 00:53

The Agile Manifesto (http://agilemanifesto.org) 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
marick / philosophers.md
Last active June 23, 2019 23:08
Process philosophers