Functional programming is a style of programming and modern
languages support this style to a greater or lesser extent. In this
article I want to explain how programming in a functional style
provides you with powerful abstractions to make your code cleaner. I
will illustrate this with examples in Raku and Python, which as we
will see are both excellent languages for functional programming.
With thousands of apps created with the CLI so far and glowing
feedback from Forge developers, here are our 10 principles for
designing successful CLIs. If you’re building a CLI to support your
service, resource, or platform, we hope that you might use these
terms, destructuring allows you to break down a complex structure
(like an array or an object) into simpler parts, though there’s a
bit more to it than that.
A quick find-grep from within Emacs showed that I had made the same
mistake in all Sass source files, files ending with the scss
extension, for the tumblelog project. This project is the SSG
(static site generator) that generates this blog.
I also noticed that those files had a copyright 2019, to which I
added 2020. And all those SCSS files still had the old "same terms as
Perl itself" license, which I removed as the entire project is now
available under the MIT
After those fixes I bumped the version number of the project to 4.0.5
and pushed the new version to
I used the molt of a Brachypelma smithi that molted the
25th of June,
2020. The exuviae used
in the tutorial is show in the above photo. To get an impression of
the size of the molt, each square on the paper is 5mm by 5mm
and the black line near the bottom is 25mm or about 1 inch.
Explaining RNNs without neural networks
Vanilla recurrent neural networks (RNNs) form the basis of more
sophisticated models, such as LSTMs and GRUs. There are lots of
great articles, books, and videos that describe the functionality,
mathematics, and behavior of RNNs so, don't worry, this isn't yet
another rehash. (See below for a list of resources.) My goal is to
present an explanation that avoids the neural network metaphor,
stripping it down to its essence—a series of vector transformations
that result in embeddings for variable-length input vectors.
Setting Up Haskell Development Environment: The Basics
This post differs from most posts around setting up a Haskell
development environment in the sense that it does not directly jump
into Cabal or Stack. Instead, it first provides some background
information that makes it possible to understand the basics of the
development environment in Haskell, the different moving parts, and
how those come together in turning Haskell source code into an
executable which can then be run.
I've been exposed to docker on and off and every time I see it, I
seem to need a refresher. In this article we will go through
everything you need to know about Docker in order to either jump
into an existing project or get started with it.
Having a function implement an interface can be really useful when
testing or programming Go code. Being able to do this allows you to
have a data structure such as a map or an array hold both functions
and structs that implement the interface.
dynamically generate and better organise your application’s CSS. The
concept has gained traction over the years due to the popularity of
UI frameworks / libraries such as React, Angular and Vue. This post
attempts to convince you that CSS-in-JS is an approach worth
investigating in the struggle to keep your codebase’s CSS in check.
To check if a program is doing what it should, you can inspect the
output from a given input. But as the system grows, you also need
logging to help you understand what is happening. Good log messages
are crucial when troubleshooting problems. However, many developers
don’t log enough information in the right places.
In order to add tumblelog, the SSG (static site generator) I wrote
to create this blog, to StaticGen; a
list of static site generators, I had to add a single clear
For version 4.0.3 of tumblelog and earlier the license for the Perl
This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
and for the Python version:
This program is free software; you can redistribute it and/or modify
it under the same terms as Python itself.
In the afternoon I decided to bring all files belonging to the
tumblelog project under the MIT
license, added a LICENSE file
to the project and bumped the version to 4.0.4 😜.
I also added a project description for both the Perl and Python
version of tumblelog to a fork of staticgen and did a pull
request. If I did all
correctly, hopefully in the near future tumblelog will appear on the
The tumblelog project is available via
GitHub. Feedback is
Fun With Simulated Typestate in Python 3.8
Typestate is an augmentation to a type system which lets us model
objects which have defined states, with certain operations only
available in given states, and where operations may alter the state
of the object in a defined way. “True” typestate support is quite
uncommon in programming languages, but we can use the techniques
we’ll illustrate shortly to simulate typestate by turning each state
into a distinct type, avoiding duplication by making use of
polymorphic (“generic”) types.
Setting up a Linux Workstation for Software Development
Still, as with any other operating system, optimizing a Linux
workstation for software development requires some configuration. In
this post, I will present tools and concepts that I think are very
helpful, but overlooked by many. I will try to show only things that
are not specific to my workflows, but rather useful for almost any
software engineer, DevOps specialist, or just regular productivity
enthusiast. Naturally, many of the configuration options and tools
covered in this post are subjective. Nevertheless, I am confident
that my suggestions are a good place to start. They have served me
well over the years and I continually try to optimize my
setup. Hence, I very much appreciate any improvement you might
Near the end of the afternoon I played a bit with Brick
Planet. Both are
made with Unity personal edition by Oskar
Stålberg. The former demo has been turned into a full-blown game
available on Steam:
Webscraping is often a pain. Researching, finding, and installing
the libraries you need can be time consuming. Finding the content
you need in the HTML can take time. Getting everything to work can
be finicky.🙁 In this article, I'll show you how to use the Python
pandas library to scrape HTML tables with single line of code! It
doesn't work in all cases, but when you have HTML tables on a
website it can make your life much easier.
Regular Expressions could be very tricky and hard to comprehend in
the beginning, but in this article we'll discuss the major things to
get you up-to-speed with creating and working with Regular
Time and time again I come across fantastic blogs that I want to
subscribe to but can’t find a feed for. First I try putting the site
into my RSS reader (Miniflux is my tool of
choice) but it often can’t find anything. Then I search around the
site for the little RSS icon or a link but come up blank. As a last
resort I start sticking common paths on the domain and with some
luck I might finally find a feed on /feed.xml or /rss/. RSS
feeds aren’t dead,
there isn’t a reason for it to be this hard.
Near the end of the afternoon I finished A Measure of Darkness,
Clay Edison Book 2, by Jonathan Kellerman and his son Jesse
Kellerman. I really start to like this series.
They burned her home.
They stole her brother and sister.
But vengeance is following.
Shy South hoped to bury her bloody past and ride away smiling, but
she'll have to sharpen up some bad old ways to get her family back,
and she's not a woman to flinch from what needs doing. She sets off
in pursuit with only a pair of oxen and her cowardly old step father
Lamb for company. But it turns out Lamb's buried a bloody past of
his own. And out in the lawless Far Country the past never stays
In the evening I started in Red
book 3 in the World of the First Law series by Joe Abercrombie.