This blog hasn't seen much action lately, because I've been coding. Rather than wait for writing time to open up here's a brief round up of the last few months:
MirageOS Hackathon, Marrakech
Back in March I spent a few days hacking on MirageOS and OCaml. It was probably the best code-related activity/event that I've attended, ever. Conferences, workshops and courses generally leave me cold. The difference here was the lack of "salesmanship". Hackers showed up, opened laptops, hacked, chatted, ate, drank... If I wanted to know something about OCaml or MirageOS I could ask an expert, they were right there. The agenda was: breakfast, hack/chat, lunch, hack/chat/souk, diner, hack/drink/chat.
Despite being a novice, I felt welcome, made some friends and gained a fresh perspective on how tech-projects can be formed (outside the bubble of commerce and business/career interests). Valuing intellectual curiosity, creativity and the potential to improve the applications of computing - rather than how these technologies can be bought and sold.
I mucked about running a MirageOS Unikernel on a Raspberry Pi. Improved my OCaml. And was given a good idea for a project by Hannes, the result being a MirageOS Dashboard (giving an overview of the packages and tools developers will find useful when working on MirageOS).
There's a load more to say about this, luckily others have taken the time to write it up in more detail  .
My OCaml skills are improving and I feel reasonably productive. I'm now comfortable with the basic concepts (modules, functors, async/lwt etc...) but still have quite a few things I'd like to master (error handling, parsing, s-expressions, the compiler etc...).
Following on from a previous post I shrank my inPath binary from 14MB to 1MB, simply by removing Core. I doubt that it makes a significant difference to anything, other than size in memory/disk, but eradicating Core is necessary when working with MirageOS (and this is an interesting point to note having followed the Real World OCaml learning curve).
The hackathon reminded me that there are subjects within computing that grab my interest and yet I've never taken the time to thoroughly investigate. A deeper knowledge would also allow me to contribute to the formation of tools like MirageOS in ways that I currently cannot. These are the topics and books I'd like to get into:
- Networks and protocols (Computer Networking: A Top-Down Approach and Computer Networks);
- Compilers and languages (Structure and Interpretation of Computer Programs);
- Processors and assembly language (Feynman: Lectures on Computation and Programming from the Ground Up).
Tackling any of these would be at the expense of time spent on OCaml, MirageOS and the MirageOS Dashboard. So that's the current dilemma, advice welcome.