I have listened to his lectures but found it hard to follow his train of thoughts and pace and I am sure I am in the minority :). What worked somewhat is listening to 2x speed.
My understanding of how it works is, with constant value, the compiler replaces (x) with the constant 0 and converts
(void *) into (int *) which makes the size equality to return true. But I am not entire sure :)
I miss this book. Beautifully written esp. the chapter on recursion - it introduced many new types of recursion schemes than I was aware of at that time. The only book where I did almost all the exercises!
Good eye! That was a typo. It should read as "colon notation". It is just a visual representation of 128 bits (16 bytes) with each byte separated by colon ":". I have updated the readme with an example. One place where you will see this notation visually is MAC addresses.
UUID RFC use <timestamp, sequence, node id> layout which is different from the layout of snowid scheme which is <timestamp, node id, sequence>. Also UUID RFC timestamp can only use up-to 60 bits whereas snowid has the full 64 bits to spare. They server different use-cases.