Prototype wrapup #10

This week was an incremental improvement from last week's fairly unimpressive effort. I committed to one every day this time around, but I only got 3 done:

Monday

I've been meaning to try out Elm for a while, so I thought I'd try to make a clone of EveryTimeZone. I got a bit thrown by Elm's effect model, which was so pure I had to go to some extra effort to get it to use the current time. Figured it out eventually, but it meant the app was basically a single input field and a label with the time in it. Elm seems cool though.

Tuesday

I figured I'd take another look at Rust, which I tried out in a previous prototype. I wanted to build a crappy CouchDB-like web api for a database. This time I used a higher-level web framework called Iron, which saved a lot of messing around with the lower-level http library. I even got the database library working, but didn't manage to figure out how to concurrently access the database from different requests.

Wednesday

This was a pretty fun idea: a Big-O estimator. If you give it a function and a way to call that function with increasingly large inputs, it figures out what the complexity of that function is. I originally tried to write this in PureScript, but its build situation has gotten even worse(!) than the last time I used it, so I just did it in CoffeeScript. Right now it doesn't really distinguish between the complexity classes clearly, but I think if I learned a bit about regressions I could make it neater.

My hypothesis last week was that missing my goal was a one-off issue, but I'm beginning to think that actually the success the week before may have been the one-off. I was still pretty busy during the week, and the main culprit was just simply running out of time. For next week, my plan is to keep better track of that time. I've been off the timetabling bandwagon for a while but I'm starting it up again in the hope that it'll let me keep on top of things better.

With this in mind, I'm going to commit to the same again for next week. If that doesn't work, I'll look at scaling it down to a lower frequency and see if I can build back up from there.