Two years with Ruby
Tonight I realized that its now been two years since I first started working with Ruby. Back in February of 2008, I’d posted about my first experiments with Rails. Lo and behold, its now been two years. I do say two years with Ruby though, not Rails. I’ve been using Merb for about the past year and a half. Although I have started messing around with Rails 3 and really like what I see so far.
So in the past two years, what have I done? Sadly, a lot of it is sorely behind and out dated, but take a bit of a trip down memory lane…
- The SkitchDav I originally blogged about, but now no longer use
- DM-DBSlayer. I was using it in a personal app, but the app didn't need scale, so eventually removed it.
- DM-Paperclip. I really need to dust this off, it needs some TLC.
- Some hacking on Warehouse, which eventually led to my ideas for Trunks.
- Branches, which was basically a ruby port of Gitosis. I wrote it anticipating using it for Trunks so I could interact with the DB in Ruby. I did in the first incarnation of trunks, but am now on "Branches 2.0" which was done from scratch and super simplified so it is Trunks-only and structured to do both Git and Mercurial. Would actually be nice to pull it out of Trunks and release it. Damn, another project for my list.
- Tigger. Really bad name. When I first wrote Trunks but was unsure about launching it, tried to redo the interface as a better read-only web interface to git repos. The app should still work... was on Merb 1.0.
- And of course, Trunks. Merb 1.1-pre.
And I’ve also had several apps that haven’t seen the light of day and were more for my personal use or tinkering.
- For a while I was into EVE Online and wrote an app to parse and process item reports from Eve Central. It allowed me to locate items that were selling under market rate quickly, compare prices across markets, and I could somewhat defer what items were selling most at different market hubs. Really geeky. Probably put several months into it. Merb app.
- Also wrote an app to track my sales by location, by item, and comparing sales volumes based on price as I played with prices. Merb app.
- And another for EVE Online... came up with the "Jita Mineral Index" which tracked mineral prices in the main market hub in the game. I left it up for several months after I stopped playing, until I found that the app that processed the emails from Eve Central broke and had like 200k+ unprocessed messages in its inbox. Merb app.
- Some time ago, was playing with different virtualization APIs and wrote an app that would provision and deploy virtual servers in KVM and in XenServer. I'm probably too much of a nut about virtualization. Mixture of stuff... Ruby, Nanite, Merb.
- A really basic Sinatra app to handle my domains that just have static pages. Rather than having multiple sites, I have just one and it determines which template to render based on the host header. Was my first Sinatra app.
And I have some that will likely be coming soon:
- This, which I'll likely blog about once I get a name for it and a domain. And update the incorrect launch date in the News part, oops.
- Was actually thinking of dusting off my original SkitchDav as a Sinatra app. What triggered me to write this.
- Also thinking of dusting off an app I prototyped a while ago involving Rack and Solr.
- Always got ideas brewing in my head... just a matter of parsing out which are really worth my free time.
All this Ruby has also helped me to grow so much more as a .NET developer.
- More languages you know the better.
- Exposure to new methodologies and mindsets, new more progressive community.
- Exposure to testing. Testing is far easier in dynamic languages, and grasping the concepts in a dynamic language makes it easier to apply to a static language.
- MVC. Thank god for MVC. Unlearned all the webforms crap and re-learned plain and simple HTTP and a logical structure for your app.
- Making programming fun again. Its nothing against .NET, but sometimes you need to break out from the familiar and learn something new to remind you why you love programming. Before Ruby, I was stuck in what I knew and don't really think I was coding for fun much.