Just Shut Up And Do It!

As with all prudent website owners, I regularly check my analytics for my sites to see trends and the occasional weird referrer (e.g. just tonight my Wooga post was linked by some Korean guy on Facebook).

In addition to Google Analytics, I also use Piwik so that I could see the IP addresses of visitors without having to go and open the nginx logs. Unfortunately, Piwik’s somewhat unreliable with the IP lookup:

Piwik

When that happens, I turn to any one of the many Whois and IP lookup sites and see where these visitors come from.

One thing I noticed about this approach is that I sometimes search IP addresses which are similar to past searches. If I had a way to list down my previous searches, I might be able to reduce the amount of these repeat lookups.

Now the obvious first choice would be to build a Rails application with Geokit and call it a day. But that wouldn’t be fun, wouldn’t it?

So instead of doing that, I decided to take this opportunity to finally learn Backbone.js.

A couple of hours later…

Trac(k)er

Introducing Trac(k)er, a quick and dirty IP tracer/tracker built with Backbone.js, Backbone.localStorage, Zurb Foundation, Flag Sprites, geoPlugin, and Google Maps.

You might be wondering what’s the connection between introducing a simple web application and the title above. The answer’s related to a previous post where I ranted about people who wait until they get a certain tool before trying to learn something.

This time around, I’ll be taking aim at a superset to that set of people: people who talk about wanting to do something but never get around to do it.

When I want to learn a new technology, I do the following:

  1. I read up on the technology, maybe watch a few presentations about it, all just to see what it’s about.
  2. I find a current problem that I have that can be solved by that technology.
  3. I try solving that problem with that technology.

My 3-4 hour romp through building a mashup with Backbone and GeoIP is a perfect example of this approach. I’m nowhere near the level of even a competent Backbone developer, but at least I have a passing knowledge of the basics behind the technology.

Pretty much everything I learned on my own was like this. I learned how to setup and manage a LAMP stack to let me try out various PHP apps like WordPress and MediaWiki. I learned Rails to help out in building my friends’ inventory management system web app. I learned nginx because Apache was eating too much memory when I had a memory-intensive web app. The list goes on…

On the other hand, when they want to learn a technology, they go:

  1. They hear about the technology and get hyped.
  2. They talk about how they’re going to learn that technology.
  3. They realize it’s a lot harder than they expected and they start making excuses.
  4. They make a big excuse so that they can abandon the technology and move on to the next shiny thing.
  5. Lather, rinse, repeat.

So my suggestion to people who want to learn something new but don’t want to become like the latter:

Just shut up and do it!

And my suggestion to those who have “legitimate” excuses for not being able to push through with what they planned to do:

Just shut up the next time!

Building Wooga’s Pocket Island in Windows

Last week, social/mobile game developer Wooga released the code of one of their HTML5 games as open source.

Unfortunately for Windows users, the whole application was built in a Mac. Because of this, a lot of Unix-y stuff they put in won’t work even if you install minGW e.g. #! executables and egrep/printf.

Normally, I’d just suggest a Windows user to just install Linux on a virtual machine but that would be too easy.

Taking these problems instead as a challenge, I tried to get around them by playing around with the code. After tweaking tasks/build.rake for a bit, somehow things just worked. Yay!

So for those interested, here’s how to build the game on Windows 7 (haven’t tried it on XP but it should work):

  • Install Ruby + DevKit + msysgit. Or just get RailsInstaller to install all of that for you.
  • Install Node.js
  • Add msysgit’s minGW and Node.js to your PATH. e.g ;C:\RailsInstaller\Git\bin;C:\Program Files\nodejs\.
  • Clone my fork and use the win-kludge branch:

    git clone git://github.com/bryanbibat/Pocket-Island.git
    cd Pocket-Island
    git checkout win-kludge
    
    
  • Download and extract the images to the images folder.
  • Follow the installation normally.

    npm install -g less jslint
    gem install spritopia
    rake
    
    
  • (optional) Start the simple static server then open http://localhost:4567/ipad.html.

    gem install sinatra
    ruby -rubygems server.rb
    
    
  • (optional) Install Java and run the rake all.

    rake all
    cd build
    copy ..\server.rb .
    ruby -rubygems server.rb
    
    

LobangClub / WebGeek Developer Challenge Analysis

LobangClub/WebGeek Developer Challenge

There were a bunch of tech events yesterday and among them was the awarding for the WebGeek/LobangClub Developer Challenge.

new iPad

obligatory mirror pic

This whole post will not be about my solution to the challenge, but a run through of the different approaches we participants used and presented during the meetup. The scores were close anyway, and it only happened that I chose a combination of techniques from the list below that yielded the highest score.

A word of warning, though: if you aren’t into computer science, linguistics, and math, it may be of your best interest not to continue on to the analysis below. :D

Continue reading “LobangClub / WebGeek Developer Challenge Analysis”

Pangkaraniwang Developer – matuto ng Computer Science at Programming

“Turuan ang sinumang Pilipino na gustong matuto ng Programming o Computer Science.”

If there’s a tagline for my current project, Pangkaraniwang Developer, that would be it.

No need for a lengthy blog post, just head over to the About page and learn why I’m doing this.

Donations are always welcome. LOL

Surreal thing about Startup Weekend Manila

I didn’t get to tweet this but I think it deserves at least a short blog post.

Last Sunday, while waiting for the final pitches, I (an unemployed slacker, LOL) got to sit at the same table as John Arce of WebGeek, Jason Torres of Proudcloud and ArtisteConnect, Rico Sta. Cruz of (among other things) JS2Coffee and Sparkup, and Eric Su of PicLyf.

The surreal thing about this was not just the fact that I got to be with these big names in the local tech industry, but the fact that, contrary to what the tech media would lead you to believe, there was no “rockstar” thing going on in that table.

As it stood, we were just a bunch of people who build software talking about building software.

We need more of this in the tech industry: people collaborating and talking about great ideas, and less pissing matches and startup fan fiction.