week 06, 2021

(Very) Basic Intro to Elliptic Curve Cryptography

Elliptic curve cryptography is a modern public-key encryption technique based on mathematical elliptic curves and is well-known for creating smaller, faster, and more efficient cryptographic keys. For example, Bitcoin uses ECC as its asymmetric cryptosystem because of its lightweight nature.

In this introduction to ECC, I want to focus on the high-level ideas that make ECC work. For the purposes of keeping this article easier to digest, I’ll omit implementation details and mathematical proofs, we can save those for another time.

Source: (Very) Basic Intro to Elliptic Curve Cryptography, an article by Lane Wagner.

How To Speed up Docker on MacOS by 100% or more

Docker on MacOS will always be slower than on Linux (well, unless Apple Silicon ends up panning out, which it looks like it might!), but it doesn't have to be as infuriatingly slow as it is by default. In fact, you can get it pretty close to native speed and it's not even all that difficult. It turns out that developing with Docker on MacOS can actually be a really enjoyable experience, not just a compromise you make in order to have a portable development environment.

Source: How To Speed up Docker on MacOS by 100% or more, an article by Dan Hulton.

curl supports rustls

curl is an internet transfer engine. A rather modular one too. Parts of curl’s functionality is provided by selectable alternative implementations that we call backends. You select what backends to enable at build-time and in many cases the backends are enabled and powered by different 3rd party libraries.

Source: curl supports rustls, an article by Daniel Stenberg.

Extracting data from mysql

I recently had the need to extract some data from a MySQL database running in production and while some methods are brutally simple and some a little more involved, all of them come with a few caveats.

Source: Extracting data from mysql, an article by Victor Parmar.

Python Microservices With gRPC

Microservices are a way to organize complex software systems. Instead of putting all your code into one app, you break your app into microservices that are deployed independently and communicate with each other. This tutorial teaches you how to get up and running with Python microservices using gRPC, one of the most popular frameworks.

Source: Python Microservices With gRPC, an article by Dan Hipschman.

Igloo day 2

In the afternoon Esme and the children continued with the igloo project. Later in the afternoon I helped out as well.

Alice and Esme working on the igloo
Alice and Esme working on the igloo.

In the evening we managed to close the roof which was not an easy task. Luckily I had found a large piece of frozen snow that we could use as a kind of support for four more bricks. After that we filled up the holes with powdery snow.

Haskell: The Bad Parts, part 1

Haskell is, in my opinion, a far more well designed and coherent language than JavaScript. However, it's also an old language with some historical baggage. In many ways, it's a bleeding edge research language that sometimes includes...half-baked features. Due to an inconsistent set of rules around backwards compatibility, it will sometimes break code every six months, and sometimes keep strange decisions around for decades.

Source: Haskell: The Bad Parts, part 1, an article by Michael Snoyman.

There is also a part 2 and a part 3.


In the afternoon Esme and the children worked on an igloo in our garden.

The first three rows of the igloo
The first three rows of the igloo.

Haskell Programming from First Principles

In the afternoon I started with the first chapter of Haskell Programming from First Principles: All You Need is Lambda. I bought the PDF of this book years ago but back then I got stopped after the first chapter, can't recall why. I had also some hard time with the exercises. This time I managed to do all the exercises correctly but the very last one, which I will try again tomorrow.

Cover of Haskell Programming from First Principles
Cover of Haskell Programming from First Principles.

In the evening I installed stack, a requirement for chapter 2, via Mac Ports using:

sudo port install stack