Website of Martin Sústrik, creator of ZeroMQ, nanomsg, libdill, libmill and ribosome.

Feuilletons about software design, economics, complex systems and psychology of programming.

All the opinions stated here are my own. Any resemblance to opinions of other people, living or dead, is purely coincidental.

Reputation Engineering, part II

In the previous post I have argued that reputation engineering can be done in any system with tokens that allow for accumulation of reputation. The example given were Twitter accounts that can be used for accumulating followers. In this post I want to dig deeper into the nature of reputation and reputation tokens. Let me start with the trademark law. There are several advantages to it: It was created specifically to deal with reputation. It's been around for a long time which, one would hope,...

Comments: 0

Linguistics and Programming Languages

NOTE: This is an article I've published more that a decade ago. From my today's point of view it may be a bit naive but it still makes a valid and interesting proposal. Sadly though, nobody have taken the challenge in the meantime. Can it be a time to do so now? I am republishing it here as is, with no modifications whatsover. It is quite common to use computers to analyse natural languages. Although we are not yet able to accomplish the task plausibly, the problem is being solved with the hope...

Comments: 2

Reputation Engineering, part I

NOTE: Since the previous Romeo Juliet post, I have written a little note on anthropology of hacker culture. Eric Raymond have replied here. It's great that this discussion is happening because, in the end, we'll need to understand how industries with huge upfront cost and close to zero per-piece cost could possibly work. If you think about it, eventually most of what we do will fall into that category and we have no good societal/economic system to adapt. Hacker culture may give us a hint....

Comments: 0

Note on Homesteading the Noosphere

I've been re-reading Homesteading the Noosphere and came upon the chapter about gift culture. I've remembered how it rang false even when I read it for the first time, years ago. This time I've decided to write this short note to explain what's wrong with it. Now, don't get me wrong. Homesteading the Noosphere is a great piece of writing and deserves recognition, if for nothing else, then for doing what nobody else did, namely, for looking at open source community from anthropological...

Comments: 3

Solving the Romeo and Juliet Problem

For those not familiar with Shakespeare's play, Romeo and Juliet is about two young people from two powerful renaissance families that happen to be engaged in a feud. Romeo and Juliet fall in love. A sequence of unfortunate events results in suicide of both protagonists. The families, shocked by death of their offspring, finally decide to end the feud. Now, let's imagine that patriarchs of house Montague and house Capulet were already fed up with the feud. It hurt their economic interests and...

Comments: 4

Sure, we have imperative and functional. But what about cartesian programming?

Recently, I've released a small tool to write configurations (repo). The README is pragmatic, just a worked example, and doesn't claim anything extraordinary. However, my ultimate motive was to explore a new programming paradigm, or at least a paradigm that I being a programmer for three dacades have never heard of. Describing the world using cartesian products isn't logical programming or object-oriented programming. It isn't functional programming in the strict sense and it's definitely...

Comments: 13

Why is my TCP not reliable (expert edition)

The shortcomings of TCP connection termination have been described many times. If you are not familiar with those problems here's an example of an article that focuses on the problem. However, there's one special use case that is rarely, if ever, discussed. Imagine a TCP client wanting to shut down its TCP connection to server cleanly. It wants to send the last request to the server, read any responses it may produce and exit. Given that it has no idea how many responses are about to arrive it...

Comments: 7

Digital encoding. Legacy software. Evolution.

We’ve finally got to the point in the software world where no big changes are possible. Every change breaks something, introduces backward incompatibilities and so on. More are more we are going to live in the world where software mutates gradually, advancing is small steps without much plan and intelligent design. Similarly to how organisms are dragged by natural selection, it is going to be propelled in unknown direction without asking us whether we like it or not. When I was a kid I read a...

Comments: 1

SRE's review of Democracy

Day One We've been handed this old legacy system called Democracy . It's an emergency. Old maintainers are saying it's misbehaving lately but they have no idea how to fix it. We've had a meeting with them to find out as much as possible about the system but it turns out that all the original team members have left the company long time ago and that the current team doesn't have much understanding of the system beyond some basic operational knowledge. We've done some cursory code review,...

Comments: 4

Few thoughts on current political situation

1 There's a lot of recent political debacles: US elections, Brexit, Orban, PiS, Nazis in Slovak parliament and so on. They all seem to have similar dynamics. (Note: What follows may not apply beyond EU and US.) 2 In all the cases a lot of people tend to be enraged by politics as usual which is understood as a synonym for political corruption. They flock to anyone promising a change. Eight years ago they've supported Obama with explicit slogan of Change , last year it was Trump with Drain The...

Comments: 3

The Cost of Abstraction

The cost of duplicating code, of accumulating technical debt, of not having tests and so on is often discussed and written about. The cost of abstracting things is almost never mentioned though, despite it being a major factor in keeping any project maintainable. As an example, imagine that your program often increases two variables in sequence: i++; j++; So you decide that the functionality deserves a dedicated function: template typename T inc_pair(T i, T j) { i++; j++; } By...

Comments: 7

Debt Cancellation Referendum

This article very much summarises what I think of current political situation: https://medium.com/@theonlytoby/history-tells-us-what-will-happen-next-with-brexit-trump-a3fefd154714#.ca09hmvnb TL;DR: We're all going to die. Not in some distant point in the future, but next year or so. If history teaches us anything it is that there's little chance to stop it. I see red every time I recall that they are going to kill my son. He's 3 years old, for God's sake. I've moved our family to Switzerland,...

Comments: 1

The Birch

This is an actual Slovak folk song. It is about cutting down a birch tree. Martin Sústrik, June 13th, 2016

Comments: 0

The Awe of Cryptography

Professor Krankenstein has invented the most terrible biological weapon known to humanity. When he realised that should his invention fall into hands of one of the superpowers it could well mean the end of the human race he destroyed all the artifacts in the lab, encrypted the recipe (he couldn't bring himself to completely destroy the work of his life), put it into tungsten box, covered the box with concrete and dropped it from a cruise ship into Marianna Trench. Couple of months later he...

Comments: 6

Software Licenses and Failed States

Recently I've stumbled over this graph (here's the original article): The number of projects with a license on GitHub is steadily decreasing. At the moment we are below 20%. The projects without license can in theory be considered open source (the source is published after all) but legally, the copyright is still owned by the authors and using it means infringing their copyright. The interesting question is why would anyone make such a contradictory statement? Why would they make the code...

Comments: 27

Performance of green threads and why it matters

If one looks closely enough at green threads, such as Go's 'go' statement, it's not hard to realise that they are really a flow control mechanism similar to 'if', 'for' or 'while' statements. Where 'if' allows you to skip a block of code, green threads give you a way to easily switch between different points of execution. Very much like 'if' or 'while' they are glorified jump statements. However, to use them as routinely and carelessly as we use ifs or whiles, the green threads would have to be...

Comments: 14

The Nanny World

In Zürich, Switzerland, there's a square called Bellevueplatz with an interesting fountain. It's just a bunch of holes in the pavement that hurl out water in synchronised fashion. Sometimes the water spouts as high as 3 meters, sometimes it goes off entirely. There are no barriers to access the fountain which makes it favourite of children who run across the fountain while it is off, then narrowly escape the water as it gradually starts to pour out. One admires how the fountain is programmed to...

Comments: 6

Three simple pieces for piano

First piece is a very simple tango. One may consider playing the second theme a bit faster than the first one. Second piece, while not really a folk song, tries to capture the feeling of a Slovak folk song as I remember it from childhood when singing was still a valid entertainment for the evening. Use pedal a lot. Third one is harder to classify. It's kind of inspired by the influence that middle eastern music had on eastern European folk music, but I wouldn't like to argue about that point...

Comments: 0

The Adventures of Boltzmann Brain (part III)

I still have a letter she sent me. You ask about second law of thermodynamics, she writes: and I am not surprised. It have been all around the news lately. But what is there to say? 'Entropy always increases,' as PR people like to put it. But in fact it states that law and order are constantly seeping away. It's a matter of interest to Police, really. The fact that any assembly of particles heads towards thermal equilibrium doesn't come as a surprise. But once your life spans billions of...

Comments: 0

The Adventures of Boltzmann Brain (part II)

You drift apart. You leave and after meeting some of the critters out there you realise that your humanity is not as valuable as you were taught to believe. Your intelligence is really just an ability to play status games with big apes of African savanna. Why would any machine even try to pass Turing test? Don't ask me! I am busy preparing for honey-gathering contest with bees. You visit Uegzihls of Beta Tauri and maritime Kranns of Alpha Aquarii. You meet Nee-gued with feet in opposite...

Comments: 0

page 1 of 512345next »

Website powered by Wikidot.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License