The simplicity of organic code growth has a flip side: it becomes
too hard to maintain. The proliferation of dicts as primary data
structures is a clear signal of tech debt in your code. Fortunately,
modern Python provides many viable alternatives to plain dicts.
Early in the afternoon Esme, some friends, and I went to see the
Westland Boat Parade. The boats are decorated with flowers, fruits,
and vegetables.
Later, when I got up, Esme spotted a tiny rodent. It ran towards her,
she was still sitting, and nestled itself against her upper
leg. Carefully I picked up the little animal and Esme took a few
photos. I guess it's a common vole, Microtus arvalis. I moved the
tiny animal to a safe spot in the shadow of a tree.
Git is hard: messing up is easy, and figuring out how to fix your
mistakes is impossible. Git documentation has this chicken and egg
problem where you can't search for how to get yourself out of a
mess, unless you already know the name of the thing you need to
know about in order to fix your problem.
Source: Dangit, Git!?!, an article by
Katie Sylor-Miller et al.
In Python as in other programming languages, this grand principle
encourages software architects to escape from Object Orientation and
enjoy the simpler practices of Object Based programming instead.
A docile family man slowly reveals his true character after his
house gets burgled by two petty thieves, which, coincidentally,
leads him into a bloody war with a Russian crime boss.
In the evening Esme and I watched
Nobody. I liked the movie, it
reminded me a bit of the John Wick movies, and give it an 8 out of 10.
I decided to build a remote SQLite management GUI that does not
require running any service in the remote VM and only needs an SSH
connection between you and the remote machine.
From visionary director Robert Eggers comes The Northman, an
action-filled epic that follows a young Viking prince on his quest
to avenge his father's murder.
In the evening I watched The
Northman. I liked the movie
and give it a 7 out of 10.
Hurl is a command line tool that runs HTTP requests defined in a
simple plain text format.
It can perform requests, capture values and evaluate queries on
headers and body response. Hurl is very versatile: it can be used
for both fetching data and testing HTTP sessions.
In this post, I want to share a small little pattern that I’ve found
to have a surprisingly high quality-of-life improvement, and I call
it the list of monoids pattern.
The idea is that whenever we have a monoidal value - a type that is
an instance of the Monoid type class - we can sometimes produce a
more ergonomic API if we change our functions to instead to a list
of these monoidal values.
This book is for anyone who is interested in computing, and wants to
learn more about the exciting, but sometimes daunting world of The
Shell. The shell is simple interface for working with computers and
programs and learning some of its features can enormously increase
your productivity as any computer user - whether a home user or
hobbyist, programmer, data scientist, writer, administrator or other
professional.
The some and any keywords are not new in Swift. The some
keyword was introduced in Swift 5.1 whereas the any keyword was
introduced in Swift 5.6. In Swift 5.7, Apple makes another great
improvement on both of these keywords. We can now use both of these
keywords in the function’s parameter position!
I start a lot of projects. A lot! Django is my go-to framework for
spinning up a quick personal project, and while it's a fantastic
framework, a big part of the reason I love Django is that it feels
familiar.
I have a lot of muscle memory for starting a new project. Here are
six things that I do after I run django-admin startproject.
Go’s paradox is that error handling is core to the language yet the
language doesn’t prescribe how to handle errors. Community efforts
have been made to improve and standardize error handling but many
miss the centrality of errors within our application’s domain. That
is, your errors are as important as your Customer and Order
types.
One of the promises of Docker is reproducibility: you can build an
image on a different machine, and assuming you’ve done the
appropriate
setup,
get the same result. So it can be a little confusing when you try to
build your Python-based Dockerfile on a new Mac, and everything
starts failing. What used to work before—on an older Mac, or on a
Linux machine—fails in completely unexpected ways.
I’ve been writing more and more Haskell lately, as part of a side
project involving GraphQL. As part of working with the language,
I’ve had to work with its compile errors. The Haskell compiler gives
you errors that are extremely informative—if you know the
language. If you don’t know the language very well, the compiler
errors can occasionally be opaque and unhelpful.
I’ve very much enjoyed using Haskell, and I figure the best way for
me to give back to the community is to make this situation a little
better. In order to do this, we’re going to take a fun dive into
Haskell errors, why they’re confusing, and how they might be
improved.
This article is an introduction to QUIC and its potential for
censorship resistance, as well as a survey of current QUIC blocking
in various countries. The presented findings reveal QUIC censorship
in China, India, Russia and Uganda.
This post is an informal walk through bootstrap setup of
nixpkgs. It’s quite long and has many facets we look at here. If
you don’t understand some bits of it don’t worry: it’s both a
complicated topic and I did a bad job at explaining it.
The mobile-first design methodology is great—it focuses on what
really matters to the user, it’s well-practiced, and it’s been a
common design pattern for years. So developing your CSS mobile-first
should also be great, too…right?