week 33, 2019

Highlights from Git 2.23

The open source Git project just released Git 2.23 with features and bug fixes from over 77 contributors, 26 of them new. Here’s our look at some of the most exciting features and changes introduced since Git 2.22.

Source: Highlights from Git 2.23,an overview by Taylor Blau.

Experimental alternatives for git checkout looks like something I am going to use in the future.

Parsing JSON is a Minefield

JSON is the de facto standard when it comes to (un)serialising and exchanging data in web and mobile programming. But how well do you really know JSON? We'll read the specifications and write test cases together. We'll test common JSON libraries against our test cases. I'll show that JSON is not the easy, idealised format as many do believe. Indeed, I did not find two libraries that exhibit the very same behaviour. Moreover, I found that edge cases and maliciously crafted payloads can cause bugs, crashes and denial of services, mainly because JSON libraries rely on specifications that have evolved over time and that left many details loosely specified or not specified at all.

Source: Parsing JSON is a Minefield by Nicolas Seriot.

A great overview, highly recommended if you maintain a JSON parser or plan to write one.

Flower Shopping

In the afternoon my mother wanted to buy some flowers for my brother Marco and his wife Ingrid. They were about to return from a vacation and my mom loves to leave some flowers in their house as a surprise.

Garden baskets with succulents
Garden baskets with succulents

At the first shop she didn't find something she liked. While waiting I took some photos of garden baskets with succulents.

Echinacea purpurea close-up
Echinacea purpurea close-up.

At the second shop she found some nice flowers to her liking. I took a photo of Echinacea purpurea flowering.

If I should optimize only one query, which one should it be ?

Answering this question is not easy. Like always, the best response is “it depends” !

But let’s try to give you all the necessary info the provide the most accurate answer. Also, may be fixing one single query is not enough and looking for that specific statement will lead in finding multiple problematic statements.

In the evening I read MySQL 8.0: if I should optimize only one query on my application, which one should it be ?.

The Thirst: an excellent story

In the evening I finished The Thirst by Jo Nesbø. At first the pace was a bit slow to me but it was well worth to keep going on as the speed picks up after a while. I loved the various plot twists and red herrings. An excellent read which ends with a cliffhanger.

The Daemoniac

Sherlock Holmes meets The X-Files in this acclaimed paranormal mystery series from the author of the Fourth Element Trilogy

In the evening I started in The Daemoniac, book 1 in the Gaslamp Gothic Dominion series by Kat Ross.

Getting a stack trace in Perl on die

In the afternoon I was debugging a Perl program that died in a function; I tried to call a method on an unblessed reference.

Because I wanted to know which part of the code had called this function I defined a sig handler for __DIE__ as follows:

use Carp;
$SIG{ __DIE__ } = sub {
    Carp::confess( @_ );

And I got a nice stack trace which made it possible to fix this bug within a few minutes.