Generating random reals

Posted by Michał ‘mina86’ Nazarewicz on 26th of December 2016

A well known way of generating random floating point numbers in the presence of a pseudo-random number generator (PRNG) is to divide output of the latter by one plus its maximum possible return value.

extern uint64_t random_uint64(void);

double random_double(void) {
	return random_uint64() / (UINT64_MAX + 1.0);

This method is simple, effective, inefficient and wrong on a few levels.

Gifting toys guide

Posted by Michał ‘mina86’ Nazarewicz on 25th of November 2016

Yes, it’s this time of the year again. If you want to be/remain the favourite aunt, uncle, sibling or parent, you’d better deliver! But with the vast selection of toys, how do you choose the right one?

I cannot pretend I have all the answers, but the diagram below should help with at least one aspect:

‘Is a toy for boys or girls?’ diagram


Posted by Michał ‘mina86’ Nazarewicz on 28th of September 2016

English version available on The Codeless Code.

Niedawno przyjęty do świątyni mnich zbliżył się do mistrza.

― Otrzymałem zadanie dodania kilku nowych funkcji do systemu obsługi zamówień Cesarskiego Szewca, ale nie jestem w stanie zrozumieć, jak on działa. Logika jest rozproszona pomiędzy wiele aplikacji zaimplementowanych przy użyciu najróżniejszych technologii. Zamiast stworzyć wspólne biblioteki, autorzy najzwyklej skopiowali fragmenty kodu pomiędzy różnymi miejscami, często wprowadzając subtelne rozbieżności. Zadania pracujące w tle wyszukują i modyfikują rekordy w bazie danych bez żadnego udokumentowanego powodu. Sama baza danych wydaje się spiskować przeciwko mnie: prosta modyfikacja jednej tabeli może wyzwolić kaskadę zmian w wielu innych.

Python tips and tricks

Posted by Michał ‘mina86’ Nazarewicz on 1st of September 2016

Python! My old nemesis, we meet again. Actually, we meet all the time, but despite that there are always things which I cannot quite remember how to do and need to look them up. To help with the searching, here there are collected in one post:

Website move

Posted by Michał ‘mina86’ Nazarewicz on 1st of April 2016

Photo of a truck on a road.

(photo Ikiwaner, CC-BY-SA)

Some regular visitors of the web site may be aware that the page used to run on platform. Some will also be aware that the service closes shop, an act which forced me to move to another hosting.

In moving the page, I’ve tried to keep old URLs work so even though canonical locations for posts have changed, the old links should result in a correct redirect.

This is also true for feeds but while Jogger provided customisation options (RSS and Atom, excerpts only, no HTML and posts count), currently only full-content HTML Atom feeds limited to newest ten entries are provided.

If anything broke for you, please do let me know at

I have not yet figured out what to do with comments which is why commenting is currently unavailable. Since I want my whole page to be completely static, I’m planning on using a third-party widget. So far I’ve narrowed the choice down to HTML Comment Box and the new hotness, Spot.IM. Any suggestions are also welcome.

Graph showing drop in response time from 300 ms to 60 ms

On the bright side, the page now loads five times faster! took its sweet time when generating responses. A static page and better optimised infrastructure of my current provider allows to drop response time from 300 to 60 ms.