100 days of code
January 24, 2017
Each year for the last few years I've undertaken what I've come to call my January project, with the aim of doing something new & different.
- 2014 - I started this blog (in November 2013)
- 2015 - I looked into Node, & built the JavaScript Jekyll replacement I've used up until now
- 2016 - I started learning Elixir, and built a robot (those are unrelated things)
This year my January project's going to roll on for three months - I'm going to take part in Alexander Kallaway's 100 days of code challenge. A little late to start for a New Year's resolution, but better late than never. 100 nights of continuous coding that you can see the progress of in a couple of spots:
- I'm tweeting about it daily, as well as
keeping a log on GitHub, and[UPDATED January 27: I moved the progress logs to the projects]- on
GitHubCodeberg, Zine being my first project, and - blogging about it here, probably weekly.
Update November 2023: I've taken my code off Github, this code's no longer available there; but is now on Codeberg instead.
The theme for my hundred days is going to be consolidation: I'm going to take a few ideas, some of which I've already half started, and see how far I can take them. I have five projects in mind, each taking something like 20 nights.
First up, I'm going back to Ruby and back to this blog. I'm going to write the slimmed down Jekyll replacement I thought about writing before going with JavaScript. Zine, the first project even has a name already, Zine. I could have written it in Elixir I suppose, but I just don't feel the language is up to it yet. So Ruby, for a few reasons.
Ruby because it'll be easier for me to maintain, both because it's easier for me to read & because it'll be more fun for me to tinker with. Last week I moved the Node version to use SSL connections only & I changed the layout very slightly, and that wasn't as fun as it might have been. Fun is important in a side project. Ruby too because I realised that in all these years I've never published a gem, and giving something back however small would be nice. But Ruby because I wanted to get stuff done, & quickly, & there's no better language to do that in.
Setting up my development environment & the gem, and then getting the thing to do some useful things was all pretty straightforward, and very quick. I got further tonight in an hour than I've got in days in some other languages, and once working output's being generated the refactoring & other fun can kick off.
I had to cheat a fair bit on night one, Googling the stuff I couldn't quite remember, and while the examples were plentiful I was a little saddened to see how many of them were from 5 or even 10 years ago. All of comp sci is a trade-off. With Ruby some execution speed's traded away for other things, and it's worth remembering how important some of those things are: speed of development, ease of maintenance, an emphasis on testing, as well as being part of Ruby's unique community, they're worth it for me… monkey patching there's still no excuse for, but you can't have everything.
Onward, for 100 days.