tHog

DIARY 2014

(2013)

DECEMBER

NOVEMBER

AUGUST

JULY

JUNE

MAY

MARCH

FEBRUARY

2014

Sat, Jun 28

<14:15 EEST> I woke up this morning with the realization of being incredibly rich and lucky, but not enjoying it even half as much as I could. Some of this feeling undoubtedly arose from this Bitcoin article I came across yesterday, and its essential quote:

“Probably 10,000 of the best developers in the world are working on this project. Because they are not sitting in a building called Bitcoin Incorporated people seem to miss that point.”
Of course, to any open source / Free software enthusiast, this is preaching to the choir. It neatly summarizes the feelings I have had about open source for years: despite "working" alone at home, I am doing something incredibly social, collaborating with people all over the world on something that is both fun and contributes to a better future for everyone.

I have seen a few common arguments from the traditional working generation against what we are doing, such as these:

  1. If you are not getting paid for it, it is not work and not worth doing. (Payment here refers to something regular, such as a monthly wage — forget about the potential income via donations and investments.)
  2. If you are not going to a workplace for a set amount of time, it is not work. I guess any half-creative worker realizes what is wrong with this, but I'll get back to it for some subtleties later.
  3. If you want to excel in your field and do something important for the world, you need to get out into the big world, such as the USA, leading Central European cities, or perhaps the Far East or the developing world. This should be easily debunked by modern communications, at least when it comes to doing something intangible like mathematics or programming.
As for 1, what is "being worth" anyway? If you enjoy doing something, and you have enough money to live on, why not keep doing it? I guess some people assume something like programming is boring work, and cannot possibly be anyone's hobby.

Besides, in retrospect, I can see that working on Bitcoin has been worth quite a lot — for example the 3 BTC donations I got for my early FPGA code, are now worth a decent pay for the couple of weeks I spent on it. Sure, I could have got similar pay immediately at some low-level job, but that is hardly world-changing with a long term perspective.

(As I like to mention on Bitcoin forums, directly investing in Bitcoin is more lucrative than mining, and there is no obvious pay in open source programming. However, you tend to invest in what you know and believe in. Mining is a kind of investment, and the most obvious way of "working" for Bitcoin. As you work on your mining setup, and focus on the new and interesting coins, you often end up doing some kind of development.)

Point 2 is one of my pet peeves about traditional office work. If you are paid by the hour, then you end up just hanging about the office to get your hours, instead of doing what is worth something. It would be nice to be paid for what you actually get done, but measuring this can be quite tricky in the real world, especially with the more creative and groundbreaking fields. OTOH, this is one thing I like about teaching — one lesson is a measurable unit of accomplished work, and you can improve your efficiency by optimizing your background work.

I used to think that office hours have something to do with old-fashioned sense of control, but given how they are still being used in modern society, there must be something more to them. In something like R&D, it is hard to immediately evaluate the worth of a given innovation, so you keep a few developers around, and hope for a decent average return on investment. (A bit like the old music business, where a single success can easily cover the production costs for the rest of the artists.) I guess the shared workplace is also intended to maintain social incentives — not just a pressure to work harder, but also a positive buzz.

Unfortunately, not everyone gives their best at office hours in a social setting. So it is nice to see that the lone hackers whose creativity shines when the sun don't, are slowly gaining a little respect.

So why Bitcoin, why now? Linux has been around for over 20 years, and the Internet as we know it runs on open source — including monolithic companies like Facebook and Twitter. But these are not famous because of open source. They still exemplify old corporate virtues, even if the charismatic leader now wears a hoodie. Open source is just another tool for them, and not in any way a part of their image. Like IT in general, open source has not really changed the old ways of power.

Meanwhile, though, pervasive communication has enabled new kinds of collaboration for everyone, not just IT geeks. As the free flow of information becomes harder to dam, people are starting to take the ancient idea of democracy more seriously. This is aided by overall transparency, with the realization that those in power are humans too.

On a side note, this relates to one of two general misconceptions about software. One seems to be that good software can only come from a big corporation, as if there were something magical about people working there and writing the software. Closed source may help keep up the mystique, and one can hope that more people learn to code themselves to see through the corporate facade.

The other misconception is really just the opposite, that Linux is an equal choice among Windows and Mac OS. People say it is a matter of personal preference, of the look and feel. In a way you wish it were true, but at the same time it is sad to see people miss the point of open source completely. When you use a closed OS, you are a consumer at the mercy of some faceless corporation. But when you use an open source OS, you are a worthy member of a community. Notably, a lot of important work in such a community is not about writing software. Or to put it more succintly, open source has no need to separate users from developers.

So what about Bitcoin? It seems that with the general "opening up of things" in the sense of citizen democracy, sharing economy and the like, the time is ripe for open source to strike at the deep end of power — money. Even though Bitcoin experts highlight its function as infrastructure, like the Internet of the early 1990s with most of its exciting innovations yet to come, I think we are really witnessing the democratization of money. The reactions of governments and banks in the civilized world have been surprisingly mild; think a few decades back, and this sort of technology would have been banned outright. Not so with the current state of things. Meanwhile, old money is busy buying into this new money, so perhaps the world order will not be overturned quite yet, but at least the process will be more open.

This would be a great point to finish on, if it weren't for the somewhat sad overtones of the beginning. I am basically stuck without a passionate project to work on, after some frustrating time on Bitcoin forums. It would be fun to continue my recent foray into OpenCL, but all I see is a race to get new GPU miners out, and given the messy state of current code and specs, it does not look like a fun exercise. Of course, there are loads of other things to do with OpenCL, but with the monetary interest looming around, there is a kind of obsession on what to do with GPUs.

Much related to this kind of heterogeneous multiprocessing is Parallella, with my board having arrived about a month ago. With the current free time and the OpenCL stint, it would be ideal to start learning on, but the platform is not quite there yet for stable operation. Admittedly, it is a complex beast, and it will probably be a while until the development environment is close to the current GPU landscape. I guess this is one of the frustrating parts of being an early opensource adopter, especially as I'm just interested in writing my own code for the Epiphany accelerator, rather than working on the messy details underneath.

While there are some music and theatre related projects in the horizon, I guess I just need to grab a good book, forget about Bitcoin for a while, and enjoy the freedom. In fact, I just finished a book on the Poincare conjecture by Donal O'Shea, which was especially nice now that I have actually studied some of the necessary math. One fun aspect with many popular science books is to consider how well the layman analogies work, knowing the real deal, and here was a particularly nice example of explaining compactness with the pages of a world atlas. The various connections to physics were also interesting, not just as concrete examples of the math, but also for the rather profound implications for our world view. I think our math education should use a lot more of them, and not be afraid of losing the abstract and exact nature to a little tangible clarity.

Wed, Jun 25

<21:05 EEST> A day late and a dollar short. I do not recall even using that phrase, until today, as I missed a 10 BTC (over 4000 EUR) coding bounty by a single day.

I had already written the requisite GPU code, and released it for another project last week. It had been a fun exercise in hacking OpenCL without prior knowledge, and succesful after a couple of days of frustration. As the coin in question was more or less dead, I have been looking for others that might use the same JH-256 proof of work; as one of the SHA-3 finalists, there were bound to be others. Keyword searches were somewhat messy, as JH is often used in a chain of other hashes, most notably in X11 (Yo dawg, I heard you like X11, so I put the X11 algo in your GPU that runs under the X11 display server). Nevertheless, another coin turned up with some unclear combination of hashes — but the actual C code was essentially JH-256. After a little testing and a tiny fix for pools, my GPU miner was again succesful. Late for the bounty, but I guess a little publicity never hurts.

Looking back, I could have released the first miner sooner. I was mining for almost a week before the forum announcement, trying to create some underground buzz with my pool appearances and spiking the difficulty with my way-over-51% hashrate, as well as checking if anyone follows my Github before the forum. Not much has happened, so I'm back to the opensource adage "release early, release often" which I have generally followed with my projects.


Risto A. Paju