Five weeks of no-caffeine

Five weeks ago, I’ve started on a “no-caffine month“, well, it wasn’t a month indeed after all. Yesterday was the end of my target, thus let’s see how things worked out!

I’m glad I have managed go all five weeks without caffeine – no coffee, no tea, no dark chocolate to be on the “safe” side… That’s all nice, but looking at the purpose of the decaf period, did it make any material difference? And was it any different compared to the previous two times when I did this? The result is not totally clear cut to me, it definitely was much clearer in previous times. No experiment running for five long weeks in real life can really just change one parameter (me with/without caffeine in this case), while keeping everything else the same. Thus changes or lack of change is harder to interpret.

Continue reading “Five weeks of no-caffeine”

First impressions of Filecoin

I’m an interested user of many novel technologies, some examples being cryptocurrencies and IPFS. One technology that I was keeping an eye on was at the intersection of that two: Filecoin (it’s using blockchain and built on IPFS by the people who made IPFS). It aims to be a decentralized storage network, where nodes are rewarded by storing users’ data, in a programmatic and secure way. After a long wait, the Filecoin repositories just opened up a few days ago (see also the relevant Hacker News discussion). This allowed everyone to give the newly deployed development chain (devnet) a spin, and try out one possible “future-of-storage”. Since the release, I’ve spent a decent handful of hours with Filecoin, and thus gathered a few first impressions.

These are very early stages for the technology, so take all my comments with that nurturing point of view. I’m glad they release stuff at their version 0.0.2 as it happened, even if a lot of things are in flux. Also, I’ve spent a bunch of time with IPFS, a lot of parts of the experience with Filecoin (or rather with the initial implementation of go-filecoin is not as surprising (more familar) to me than likely to someone for the first time a project made by this team. More on this later. Now, in hopefully somewhat logical order...

Getting started

The first thing is obviously getting and installing the binaries for the project. The initial implementation is go-filecoin, which is not totally surprising, one of the two main IPFS implementations is also go-ipfs (the other, for the curious, is js-ipfs, but filecoin does not have a Javascript implementation just yet). As there are no binary releases for go-filecoin just yet, we’ll need to install from source. The project relies on pretty recent Go (1.11.1 or 1.11.2, it’s not clear from the docs and the code…), as well as pretty recent Rust (1.31.0, which is about 2 months old). If the combination of the two is surprising, it’s because some of the heavy lifting libraries was implemented in Rust, for performance reasons (that I think used in the proving that a node actually stores the data that it said it did, without sending the whole data for inspection – aka, the secret sauce of Filecoin).

Continue reading “First impressions of Filecoin”

How not to start with machine learning

I’m a technical and scientific person. I’ve done some online courses on machine learning, read enough articles about different machine learning projects, I go through the discussions of those projects on Hacker News, and kept a bunch of ideas what would be cool for the machines to actually learn. I’m in the right place to actually do some project, right? Right? 🚨 Wrong, the Universe says no…

This is the story of how I’ve tried one particular project that seemed easy enough, but leading me to go back a few (a bunch of) steps, and rethink my whole approach.

I bet almost everyone in tech (and a lot of people beyond) heard of AlphaGo, Deepmind’s program to play the game of Go beyond what humans can do. That has evolved, and the current state of the art is Alpha Zero, which takes the approach of starting from scratch, just the rules of the game, and applying self-play, can master games like Go to an even higher level than the previous programmatic champion after relatively brief training (and beating AlphaGo and it’s successor AlphaGo Zero), but also apply to other games (such as chess and shogi). AlphaZero’s self-learning (and unsupervised learning in general) fascinates me, and I was excited to see that someone published their open source AlphaZero implementation: alpha-zero-general. That project applies a smaller version of AlphaZero to a number of games, such as Othello, Tic-tac-toe, Connect4, Gobang. My plan was to learn by adding some features and training some models for some of the games (learn by doing). That sounds much easier to say than to do, and unravelled pretty quickly (but probably not as quickly as it should have been).

Continue reading “How not to start with machine learning”

Starting on a no-caffeine month

This is the third time I’m embarking on a quest to decaf. It is usually triggered by observing the effect of all the coffee and tea that I’m drinking: jumpiness, difficulty getting up in the morning, generally being an arse… The signs are pretty unmistakable, that I’ve had a bit too much…

The first time it was a very special experience, many aspects really stayed with me. The most important memory I carry over is the expected way the caffeine withdrawal should play out, based on this first time. The first week is kinda easy. The second is harder. The third was really rough, I reverted to pretty much to be a manchild, (figuratively) banging on the table and shouting “I am a grownup, I can have coffee whenever I want!” Then the last week was very good, much better mood, much more balanced physical functions too. It was bliss. Was almost strange to stay in that state for only a week, and resuming having coffee .

Continue reading “Starting on a no-caffeine month”

Continuous integration testing of Arch User Repository packages

I maintain a couple of ArchLinux user-contributed packages on the Arch User Repository (AUR), and over time I’ve built out a bit of infrastructure around that to make that maintenance easier (and hopefully the results better). The core of it is automated building of packages in Continuous Integration, which catches a number of issues which otherwise would be more difficult.

This write-up will go through the entire packaging process to make it easily reproducible. Continue reading “Continuous integration testing of Arch User Repository packages”