This week in Open Dylan land, I’ll be working on learning more about some of our compiler internals and seeing if I can get an interpreter for the compiler IR working again. I’m also continuing to work on our LLDB integration to provide support for additional data types.

Since last week, I also got commit access to LLDB for commit-after-approval on changes. I’m looking at how to fix some of the issues that I ran into while working on Dylan support. In the meantime, I’m working on a patch that fixes a couple hundred spelling errors as I read through sources and learn how things work.

As you can all see, I’ve finished the basic functionality for Lobsterbot. This week, I’m continuing work on my Javascript lessons for Seattle Coder Dojo and exploring my options for baremetal ARM development in Rust.

I don’t like this automated posting functionality (nor your testing on the public site), especially when it’s controlled just by users sending messages to the bot. Part of the reason I liked users manually posting “what are you working on this week” posts is that once nobody cares enough to create them, they just stop getting created.

Yeah, in retrospect I probably shouldn’t have been testing on the public site. I was intending to delete every test story as soon as it was posted, but I missed a few in the beginning because I didn’t realize that posting was working.

The reason I decided to automate in this way is that I usually would like to post the thread but I am uncertain whether or not someone else is planning to. I think this is also what stopped a lot of other people from posting it those few weeks when it was not being posted at all. By delegating responsibility for posting it to a bot, we remove the bystander effect.

If you are uncomfortable with the bot being controlled by messages, I can disable that piece of functionality or limit it to a whitelist of users.

Last week I got all of the scaffolding for my database implementation up and running. It supports a very trivial line oriented protocol and a memory backend. I also created an opam repository for installing it, so it’s easy to share. this week I am working on the backend for allowing multiple machines to replicate data between each other. I will implement Raft in Ocaml. I expect the whole process to takes 2 - 3 weeks (Raft + Kaiju backend). So far I have an interface defined for the minimal Raft implementation and working on implementing the underlying algorithm.

So we have a messaging framework…. Multi threaded, threads suck on event queues.

The first implementation was very awkward.

The second version is quite nice. Messages are just functions that return void… and the parameters get packaged into a struct in the queue, and get unpacked into a function invocation when it reaches the front of the queue.

Now I need to distribute these messages across devices….

So I have been studying every damn RPC'ish, serialization protocol on the planet… and there are very very very many.

Rewriting a MATLAB cell detection program so I can more easily mess with the segmentation method (among other things). Making a new personal website with Hakyll. Reading “Types and Programming Languages” by Benjamin Pierce.

Among other things, I’m hacking on the Ubuntu OpenStack Installer, which should make getting an OpenStack cloud up and ready to play with much easier. In fact, if you have a beefy enough machine, there’s a mode to bring up a cloud on a bunch of virtual machines and containers on a single physical machine.

I’ve been working on JSONator, a web service for creating random JSON data. It’s heavily inspired by this JSON Generator but with the twist that JSONator creates a (semi-) permanent HTTP endpoint that can be called programatically.

It think I have it working, but I definitely have some ideas for enhancements and new features. I also really want to design a better web interface - I’m no designer!

Motivated by my visit to EuroClojure 2014 in Krakow, I’ve recently refactored it to use Om, and I’m hoping to make it more useful by implementing a few additional rules, as well as trying to center the generated image because right now it has a tendency to slip off the canvas depending on the exact rule set.

There are also plans to make certain parts more idiomatic (rather than idiotic) Clojure & Om. :)