Rubber Ducking

One day after writing the previous post, I noticed two things:

  • I forgot to add the link for the term “rubber duck”, and
  • I never posted about “rubber ducking” before

I’ve fixed the first so it’s time to fix the second. Still finding it weird that I haven’t done it yet in the 2+ years this blog has been up, though…

Anyway, “rubber ducking” is a simple mind hack popularized by The Pragmatic Programmer. Instead of committing copyright infringement by copy-pasting what the book says about it (all 3 paragraphs), I’ll just go with Wiki Wiki’s take on the topic.

Place a rubber duck on your monitor and describe your problems to it. There’s something magical about stating your problems aloud that makes the solution more clear.

So yeah, my MO at hackathons is to either code something totally unexpected, or just float around “magically” solving problems by being a sounding board.

Code Retreat Baguio 2011

So after spending the entire day walking around doing stuff (and at one point get wrangled into MCing) for DevCon at DevOpsDays, me and a couple PhRUG guys got on a (red-eye?) bus to Baguio City for the non-official Philippine leg of the Global Day of Code Retreat.

This isn’t a full write-up of the event so I’ll keep this short and simple. The event was at Drei‘s place with just a bunch of Ruby, Python, and PHP guys from both Manila and Baguio hacking up random stuff instead of doing the whole Code Retreat thing.

after event

at the after event, aka “Yo dawg, I heard you like taking pictures so here’s a picture of people taking your picture so you can have a picture of you taking pictures of people taking pictures”

Being the slacker that I am, I didn’t have anything planned out beforehand. I thought I’d just go the same route as with Startup Weekend Manila and just be a rubber duck floating around groups. Fortunately, Buddy brought along his significant other Rizza with the intention of having her learn programming from the participants of the event.

I couldn’t resist this teaching challenge. So for the entire event, I went on to give an impromptu crash course on the fundamentals of software development.

I started off with basic imperative/procedural programming via pseudocode (to drill in the idea that software development is not about computers but about solving problems). As we progressed I moved on to Ruby for the more technical side of things (basic data types) up to Object Oriented basics.

first lesson

first programs – potato salad and quadratic formula

By mid-day, I had this little flash of insanity and began downloading >250MB of development stuff from a certain site.

That flash of insanity was to go back to the original Code Retreat exercise, Conway’s Game of Life, and build it in Java to teach software development: coding conventions, revision control, test automation, refactoring, etc.

Of course, I had to teach the most crucial concept in software development: how to wing it. And that was where Android came in.

So we had a base GoL class and a freshly installed Android SDK. A couple of Google searches later and a lot of guesswork, we were able to make the whole thing work as a Live Wallpaper in around 1.5 hours.

screenshot of wallpaper

Lack of sleep and preparation can turn a Ruby guy into a Java developer. LOL

Latest Trends in Open Source Web Technologies

Last talk for the year (barring a possible surprise talk at Code Retreat): a talk about current trends in web technologies at DevCon UPHSD. This time it’s a 20 minute talk that I had to drag out to 40+ minutes to cover for the missing speakers. Good thing I wasn’t pressured to deliver it in English.

So yeah, we had 2 missing speakers, leaving Alvin and I to handle everything.

But surprisingly, this DevCon event was far better than the one in DLSU (read: a more prestigious university) mainly because the students were really interested in what the two of us have to say. Sure, our talks may have been boring for most of the audience, but by the time we left the campus, we’ve fielded over a dozen questions, mostly from students who approached us after the event ended.

In comparison, AFAIK, only one student asked a question in DLSU.

Pride? Apathy? I really don’t know.

Anyway, here’s my talk and the slides.

What it takes to be a Web Developer

Did a lightning talk for DevCon DLSU last Wednesday. Not really liking the end result. My decision to deliver it in English is mainly to blame: I wrongly guessed that La Salle students would react better to English than Tagalog (the latter I prefer when giving talks), and all I got from it was having my lack of practice look more obvious.

I think the worst part about my talk was the way how the “sarcastic-whiny-tone” I use in my normal everyday Tagalog creeped into my usually more professional sounding English voice. I’ll probably have to do weeks of voice retraining to eliminate that. =/

Anyway, here is the video of the talk as well as the slides.

RailsFTW v0.9 released, now with Rails 3.1

Rails FTW

Thanks to a Battlefield 3 Beta losing streak that I blame on my sucky internet connection, I’ve decided to update my hack-job of a standalone Windows installer for Rails.

Now there are two separate installers, a Ruby 1.8.7 + Rails 3.0.10 installer and a Ruby 1.9.2 + Rails 3.1.0. Here’s a table to give a quick comparison between these two installers with RailsInstaller thrown into the mix:

  RailsInstaller 2 RailsFTW (Rails 3.1) RailsFTW (Rails 3.0)
Ruby version 1.9.2-p290 1.8.7-p352
Rails version 3.1.0 3.0.10
File Size ~55MB ~20MB ~10MB
DB Adapter Gems sqlite3, pg, tiny_tds (MS SQL Server) sqlite3, mysql2
Additional Features git, DevKit
Internet Connection Required? Yes No (Bundler will fail to connect to server but new apps will still work) No
Compiled by Some of the biggest names in the Ruby community Some random third world developer. LOL