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:
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…
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:
- I read up on the technology, maybe watch a few presentations about it, all just to see what it’s about.
- I find a current problem that I have that can be solved by that technology.
- 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:
- They hear about the technology and get hyped.
- They talk about how they’re going to learn that technology.
- They realize it’s a lot harder than they expected and they start making excuses.
- They make a big excuse so that they can abandon the technology and move on to the next shiny thing.
- 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!