I’ve been working with Go at my day job for internal services for a
few years - and have noticed some common themes from various success
stories, incident post-mortems, and conversations with other
engineers. This post inspired
me to write some of these experiences down.
AWK is a multi purpose software tool mainly used as a filter, that
is a program to read input and produce output. Input is readed in
lines and every line is split into fields. After reading and
splitting each line into fields, AWK can take some action
e.g. print, count etc, according to patterns matched by the line
Around noon we went by bike to the town of Monster. Close to the beach
I led my family on a detour into the dunes; I wanted to show Adam and
Alice where as a child I had been looking for fossils together with my
As I have found trilobite fossils in those rocks the fossils found
must be between 521 and 251.9 millions of years old!
After exploring for a while we went to the beach. But when we arrived
we all were hungry and thirsty so we went first for a snack and
returned to the beach refreshed a little later.
Harry Potter and the Philosopher's Stone (2001)
An orphaned boy enrolls in a school of wizardry, where he learns the
truth about himself, his family and the terrible evil that haunts
the magical world.
In the early afternoon I listened to two (!) new tracks by System of a
Down: Protect The Land,
Humanoidz. Both tracks
have a clear System of a Down sound, and I like the first one the
Real World Haskell
A lot of people think day-to-day tasks like running a web app are
difficult or impossible in Haskell! But of course this isn't true!
In our Real World Haskell series, we'll take you through a whole
slew of libraries that allow you to write a web backend. These
libraries use Haskell's features to approach things like database
queries and API building in unique ways.
Arm Looks To Laptops: Cortex-A78C Processor for PCs Announced
Arm has been addressing devices above and beyond portables for a
while now. Today the company has offerings for autonomous vehicles,
communications, edge computing, and all kinds of smartphones and
tablets. Yet, the company left the emerging market of Windows on Arm
laptops to Qualcomm's Snapdragon. Not for long though as this week
its own processor for laptops, the Cortex-A78C.
CSVs are a relatively popular data format, it seems particularly
common as a format for providing exports of medium-sized
datasets. My day job involves processing lots of these types of data
sets, and so I’ve developed a set of strong opinions on CSVs, which
are documented here.
One feature of CSVs that is often considered a big advantage is that
it’s an incredibly simple file format. However, this can be
Despite his devotion to his hometown of Salem (and its Halloween
celebration), Hubie Dubois is a figure of mockery for kids and
adults alike. But this year, something is going bump in the night,
and it's up to Hubie to save Halloween.
In the evening we watched Hubie
Halloween on Netflix. I
didn't like the movie much. I give it a 5 out of 10.
Poetry vs. Docker caching: Fight!
Docker packaging is an exercise in shoving square pegs into round
holes, over and over and over again.
Consider the Poetry packaging tool for
Python. One of Poetry’s features can make Docker rebuilds slower, by
breaking Docker’s caching.
And it’s not a bad feature, there’s nothing really wrong with it, it
Let’s see what the problem is, go over some workarounds—which have
their own problems, obviously—and then briefly consider why
everything about Docker packaging is always slightly broken.
It’s been a journey, but it’s finally here, and I can talk about the
secret Raspberry Pi 400 project! I’ll also try to cover some of the
questions you asked following Eben’s announcement of Raspberry Pi
If you’re trying to gain a rapid understanding of a new area, one
of the most important things you can do is to identify common
mistakes people make, then avoid them. Here are some of the most
predictable errors we tend to make when thinking about statistics.
HTTP Strict Transport
(HSTS) is a standard HTTP response header for sites to tell the
client that for a specified period of time into the future, that
host is not to be accessed with plain HTTP but only using
HTTPS. Documented in RFC 6797
The idea is of course to reduce the risk for man-in-the-middle
attacks when the server resources might be accessible via both HTTP
and HTTPS, perhaps due to legacy or just as an upgrade path. Every
access to the HTTP version is then a risk that you get back tampered
Consider whether this story applies to you. You went through college
and made it past linear algebra and multivariable calculus, and then
began your training for deep learning. To your surprise, much of
what they taught you in the previous courses is not very useful to
the current subject matter.
And this is fine. Mathematics is useful in its own right. You can
expect a lot of stuff isn't going to show up on the deep learning
final, but it's also quite useful for understanding higher
However, what isn't fine is that a lot of important stuff that you
do need to know was omitted. In particular, the deep learning course
requires you to know matrix
specialized form of writing multivariable calculus (mostly
differential calculus). So now you slog through the notation,
getting confused, and only learning as much as you need to know in
order to do the backpropagation on the final exam.
Securing containers is a complex task. The problem space is broad,
vendors are on fire, there are tons of checklists and best practices
and it’s hard to prioritize solutions. So if you had to implement a
container security strategy where would you start?
I suggest to start from the basics: understanding what container
security is about and build a model to navigate risks.
Raspberry Pi has always been a PC company. Inspired by the home
computers of the 1980s, our mission is to put affordable,
high-performance, programmable computers into the hands of people
all over the world. And inspired by these classic PCs, here is
Raspberry Pi 400: a complete personal computer, built into a compact
Haskell programmers spend a lot of time talking about type
safety. The Haskell school of program construction advocates
“capturing invariants in the type system” and “making illegal states
unrepresentable,” both of which sound like compelling goals, but are
rather vague on the techniques used to achieve them. Almost exactly
one year ago, I published Parse, Don’t
as an initial stab towards bridging that gap.
There’s debugging and there’s debugging. This is a story of the
latter. Before we get into this jaunt I’d like to add that I’ve
written this piece to mimic how we actually got to the
conclusion. If you’re experienced in strange stuff you might see a
faster route or use a different tool. There’s more than one way to
do most of this and this was what I had at hand when I needed it.