So, I moved.

Thanks to blogging hype on Hacker News, I decided I’m going to write something. Here it is. The new, shiny, WordPress.

Platform

Why WordPress? First of all, I had a look at what’s popular and what’s available.

Medium. For the advantages – great typography and general reading-friendly attitude. However, I’m not very fond of Medium’s practices of paywalling and constantly asking DOWNLOAD OUR APP! IT’S SO GREAT! Just no.

Blogger. Is it still alive?

Continue reading “So, I moved.”

fun fact about TCP

There’s one less-than-expected thing about TCP: even if you provide a small buffer to recv() and the other side sends exactly the same amount of data in the send() call, there’s no guarantee that the data is received in one call.

Take for example Python:

# sock is a socket.socket(), already connected
data = socket.recv(4)
length = struct.unpack('=l', data)[0]  # this might fail!

There are two ways to mitigate it:

  • really portable way: receive in a loop, until all data are received – but beware of recv() returning b'' – this means there’s an error in the communication
  • Linux/Unix way: use MSG_WAITALL flag to force recv() to block until whole buffer is filled