a tumblelog
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.

SVG: The Good, the Bad and the Ugly

SVG, short for “scalable vector graphics” is a format for, well, scalable vector graphics. In this article I summarize my opinion of the format, what its problems are and suggest what could be done to improve things.

Source: SVG: The Good, the Bad and the Ugly, an article by Nicolas Lenz.

What is Kubernetes, technically?

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications according to but if we look at it closer under the hood let’s see what it is actually and technically :)

Source: What is Kubernetes, technically?, an article by Jon Goldman.

How to Man in the Middle HTTPS Using mitmproxy

Capturing and inspecting HTTPS traffic on MacOS, in the Docker daemon, on Windows, on Linux, and inside of running Docker containers.

Source: How to Man in the Middle HTTPS Using mitmproxy, an article by Adam Gordon Bell.

Some lesser-known vim tips from 8 years of use

I’ve been using vim pretty much exclusively as my editor for about 8 years now and I like to think I’ve amassed a few tricks along the way. Instead of the standard entry-level advice, here are some, as far as I can tell, lesser-known vim tips.

Source: Some lesser-known vim tips from 8 years of use, an article by Tom J. Watson.

What's an SPF Record?

A Sender Policy Framework (SPF) record is a piece of text that you can add to your Domain Name System (DNS). It tells email clients (such as Gmail or Outlook) who can send email from your domain, and those clients can check each email received against this record to see if it is likely to be spam or forged.

Source: What's an SPF Record? - Ultimate Guide to Email.

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.

An Introduction to Functional Programming Basics with Python

Python has several constructions that allow programmers to understand functional programming. To learn more about functional programming, see our notes on this topic.

Source: An Introduction to Functional Programming Basics with Python, an article by Priya Rathore.

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