I used to love Pipenv, but these
days with some uncertainty around the direction and upkeep of the
project my feelings are a little less clear. Nonetheless, I still
use Pipenv daily for a variety of production-ready services and
libraries. All of the tips in this list can be found if you dig deep
into the documentation, but with the regularity that they come up,
it can be handy to have a cheat sheet.
In this post, I summarize some accomplished engineer’s views on
error handling. There is a distinction between errors that are
caused by programmer neglecting bugs and those that represent true
error conditions. The granularity of error checking is also up for
debate: Per function? Per module? Jump to dialog handler in the main
message loop? Kill the process and restart?
Programmers that come to Go from Python often wonder "do I need
something like virtualenv
The short answer is NO; this post will provide some additional
While virtualenv in Python is useful in many situations, I think
it'd be fair to divide them into two broad scenarios: for execution
and for development. Let's see what Go offers for each of these
In the early evening I noticed that the Aphonopelma seemanni I keep
was entirely out of its burrow. I used a large pair of tweezers to
block the tarantula from bolting backwards into its burrow. Next, I
guided it carefully on my hand.
It was quite restless and got off my hand on the desk. Adam got down
to get my iPhone so I could take a photo while I kept an eye on the
large tarantula sitting on my desk.
It took a few attempts to get the tarantula back on my hand so I could
take a photo of it. Several times it made a short but very audible run
on my desk. After I had taken two photos of the large spider I
returned it back to its terrarium.
Note that I rarely handle the tarantulas I keep. The previous time for
this specimen was when I had just bought it the 7th of
on the above photos it has grown quite a bit.
An Intro to Compilers
A compiler is just a program that translates other
programs. Traditional compilers translate source code into
executable machine code that your computer understands. (Some
compilers translate source code into another programming
language. These compilers are called source-to-source translators or
transpilers.) LLVM is a widely used compiler
project, consisting of many modular compiler tools.
I recently had to write a letter to a government agency. With no
office suite installed, I took a look to my installed packages and
found pandoc . With pandoc you can transform
documents, with a variety of input and output formats.
Later in the evening I took a photo of the Aphonopelma seemanni I
keep in its terrarium as it was still in the open after I had returned
In the above photo its sitting on top of the cork tube underneath it
has dug its burrow. For more information on this terrarium see the
post I wrote earlier this month.
Chromatopelma cyaneopubescens molted
After midnight I noticed that the Chromatopelma cyaneopubescens
sling I keep was nearly upside down in its webbing; a sign it's about
to molt. When I got up, just over 8 hours later, I took a photo of the
freshly molted tarantula.
Now I have to wait about a week before I can feed the little spider;
it first has to harden out its fangs.
Linear types are merged in GHC
There will be linear types in GHC 8.12. But don’t expect a finished
product. This is our very first iteration, an
MVP as it
were. This is as minimal a set of features we think can be useful
for anybody. But it’s still very much aimed at early adopters and
Template Haskell (TH) is a powerful tool for specializing programs
and allows shifting some work from runtime to compile time. It can
be a bit intimidating to use for beginners. So I thought I would
write up how to use TH to turn certain kind runtime computations
into compile time computations.
In particular we will turn the initialization of a fully static data
structure into a compile time operation. This pattern works for many
data structures but we will look at IntSet in particular.
I’ve never worked as a professional frontend developer, so even
though I’ve been writing HTML/CSS/JS for 15 years for little side
projects, all of the projects have been pretty small, sometimes I
quite feel like I know what I’m doing.
Because most lattice theory assumes a strong background in algebra,
I think the results are not as well known as they should be. I hope
to give a sampling of some lattices here, and a hint of their power.
Comments are a topic of vibrant discussion. Ever since programmers
could leave some text in the program that was ignored by the machine
the debate started: “what’s a good comment, what’s a bad comment,
Perl v5.32 adds a way to turn off a Perl feature that you shouldn’t
use anyway. You can still use this feature, but now there’s a way to
take it away from you. We’re very close to the final release of
v5.32 and the first release candidate is already on
In the early afternoon while checking the tarantulas I keep I noticed
that the Psalmopoeus cambridgei had molted, probably the previous
I took the above photo using the macro lens and LED ring light I
I have been keeping this specimen since the first of May
2020 and this is the
first time it molted in my care.
A Conspiracy of Bones
It’s sweltering in Charlotte, North Carolina, and Temperance
Brennan, still recovering from neurosurgery following an aneurysm,
is battling nightmares, migraines, and what she thinks might be
hallucinations when she receives a series of mysterious text
messages, each containing a new picture of a corpse that is missing
its face and hands. Immediately, she’s anxious to know who the dead
man is, and why the images were sent to her.
In the evening I started in A Conspiracy of
A Temperance Brennan Novel Book 19, by Kathy Reichs. I've read all the
previous novels and enjoyed those a lot so I look really forward to
Multi lens set for smartphone
In the morning I bought a multi lens set for smartphones at the Action
store in Naaldwijk for €3.89. The set comes with a 10× macro lens,
which doubles as a 0.65× wide angle lens, a 185° fish eye, 2 lens
covers, 2 clips, a pouch, and an adjustable LED ring light with USB
In the early afternoon I took a few photos. In the above photo you can
see the smallest tarantula sling I keep, a Hapalopus sp. Colombia
"large". Also visible in the photo is the silk lining of its burrow.
I currently keep just one scorpion, a Chaerilus sp. "Java". It's
currently second instar, meaning it has molted once since it was
born. It also means it's very tiny, just a few mm.
It's unclear to me how much the macro lens actually magnifies but it
allows me to get closer to the subject while my phone, an iPhone 5,
is still able to focus.
The adjustable LED ring light works great; it has 3 brightness settings.
Adam petting a cat
On the way back from a short visit to my mother Adam and I encountered
a longhaired cat. We both stopped our bikes and petted the cat. I have
blogged about this cat the 1st of June, 2019 when I spotted
it resting in the
The Goodbye Man: good
In the afternoon I finished The Goodbye
a Colter Shaw Novel by Jeffery Deaver. This is the second Colter Shaw
book, and I liked it a lot. But, I liked the first one in the series; The Never
more. Still, I do recommend The Goodbye Man.
Mac on ARM – a few thoughts from the trenches
A lot of smart
are saying that Apple is going to announce its own CPUs at their
upcoming WWDC Developer
Conference. Having spent many
years working to build support for an ARM-based CPU, we want to
touch on the significance of this and look at what else this change
10 insanely useful git commands for common git tasks
Git commands aren’t always intuitive. If they were, we would have
these 10 commands at our disposal. They would be super useful for
accomplishing common tasks like creating or renaming a git branch,
removing files, and undoing changes.
For each git command in our wishlist, we’ll show you the commands
that actually exist and you can use to accomplish the same tasks. If
you’re still learning Git, this list reads like a tutorial and is
worth keeping as a cheatsheet.