Hiatus 1

Posted by timgoh
on Sunday, December 02
I won't be posting any new articles for a while since I will be relocating over the next month. Also I won't be using Django at my new job, so I may not be blogging about Django as often. So this is me signing off for 2007.

Typo Powered 4

Posted by timgoh
on Friday, October 20

I use Python with the Django framework at work, and I enjoy working with them. Django really simplifies development, and has some excellent sites built using it: have a look at Naples News Online and Lawrence.com

So when it came to putting this blog up, the first thought that came to my mind was “Ok, I’ll spend a couple hours putting up something basic with Django, and I can then add to it as I go along.”

Yep, trust my first instinct to be the most lazy time-saving one.

Then I realized that this option was just too easy. Having built an entire CMS with Django recently, I would learn nothing new by doing a simple blog with it.

So I decided this was an excellent chance to learn Ruby and RoR. I’d be killing two birds with one stone: diversifying my knowledge portfolio within the area of web development, and sating my intellectual curiosity as to why Rails has exploded over the past year or so.

Seemed simple enough. Checked out the Pickaxe book from my company library, and got the seminal Rails book too. Went through the tutorial, and subsequently put together a bare-bones blog app (sans a decent template and styling) in around half an hour.

Yes, that’s not a typo. Neither am I exaggerating. Rails is simply that fast. Bear in mind we’re talking bare minimum here—all my app was at that point was a simple wrapper around a BlogEntry model with Title, Body, and CreatedAt fields. But I could perform basic CRUD on it and have the results immediately reflected live. A minimalist blog I suppose. Django would be slightly slower, because it eschews the script/generate “magic” of Rails1.

Alright, there’s enough praise and hyperbole about Rails out there. No point adding my voice to the choir.

Anyway, from that base I planned to slowly bake in basic features like comments, tags, etc.

That’s when Captain Obvious paid me a visit saying, “You do realize that what you’re doing is a classic example of NIH syndrome.” I then realized that I could learn about Rails faster by using one of the blog platforms out there built on Rails and contributing back to it, instead of reinventing the wheel as I originally planned.

In the end I went with Typo. Not because I find it hilarious to have a blog that is “Typo Powered2”. And I did this despite the fact that their Trac page was down (and is still down) due to spam issues. Despite the fact its developers go by the rather dubious name of Leetsoft3. Despite the fact that Steve Yegge crucified Typo for its lack of documentation and difficulty of installation. I did find it easy to set up though, thanks to an excellent tutorial I found.

I initially chose Typo because it seemed to be the blog of choice for people playing around with Rails. I’ve stayed with it because its been a blast to use so far, despite the occasional bug I run into (which I could help with or at least look up if their Trac was up!) Lacks the polish of Wordpress et al, but makes up for it with some very nice glitz.

Thus for now, this blog is Typo Powered. It took me a long time to settle on an option—I went from self-built Django to self-built Rails to Typo, but I’m glad I took my time making a decision.


1 I’ll cover ideological differences between Django and Rails in the future when I’m more familiar with the latter.

2 I do find it hilarious, but that’s definitely not the basis of my decision-making.

3 OMGWTFBBQpewpew j00 lam3rz, everyone knowz its spelled as “l33t”!!!111one

Knowledge Portfolio 1.0 0

Posted by timgoh
on Friday, October 13

One of the biggest ideas I got out of the Pragmatic Programmer book is the need to invest in one’s knowledge portfolio.

I was fascinated by this idea, given that I had managed my own personal financial portfolio during college1, and enjoyed the thought process that went behind choosing which companies to watch and when was the correct time to buy.

So upon finishing that section of the book, I immediately set out to do a quick short-term portfolio. There has to be a reasonably short-term bias when you’re talking about programming—a technology that is de rigeur 5 years from now may not even exist today, so how can you plan to go about learning it?

Fans of LTBH need not worry though. There are long-term investments that can be made in a knowledge portfolio. But these are investments in concepts rather than technologies. For example, knowing about regular expressions, the inner workings of compilers, etc. This is knowledge that will not erode with time.

I have put up a Knowledge Portfolio page on this blog (also available in static link on the sidebar). It marks what skills I currently have and what I plan to learn next. Subsequently I will be adding a book backlog as well

You will note that this is a rather sparse portfolio. This is because I haven’t invested much capital (time) into it—I am still in the first year of software developer career. Two years of compulsory military service and two years of project management mean that I’m very late on the scene. So I will have to make up for lost time. Fortunately, the concepts learned doing computer science at my alma mater have helped me get up to speed.

I have not mentioned the main focus of this blog so far. Essentially, it is a chronicle of my journey as I learn my chosen craft of software development. It is a voyage of at least ten years according to Peter Norvig.

Hope you enjoy reading about my journey as much as I enjoy experiencing it.

Prelude

Posted by timgoh
on Tuesday, October 10

First post!

mischief

Not like there was anyone to snatch it away from me. But allow me the cheap thrill.

I guess I’m supposed to do an introduction here (convention over configuration!) . So, without further ado:

Why ‘progressive programmer’?

  1. Progressive is a reference to the kind of music I love most – progressive metal and progressive rock. More on this later.
  2. At the same time it is a tribute and homage to the Pragmatic Programmer, which is a book that greatly inspired me (and which has led to an entire publishing company).

Why ‘ProgProg’?

Because progressiveprogrammer.com was already being domain-squatted. Okay, so I’m not as original as I think. Anyway I was lamenting this fact to a friend and he was like “What about ProgProg?” And thus a future star yet another inane blog clogging up the Intarweb’s tubes was born.

Interestingly, unbeknownst to me at the time I registered this domain, www.pragprog.com does direct to the Pragmatic Programmer website1.

So, what is a progressive programmer?

Prog metal and prog rock are best defined as genres where the musicians constantly push the boundaries of music, defying the “rules” of regular music so to speak. Be it through composition structure, executing a concept for an entire album, or sheer virtuosity and technical prowess2.

Now I’m not deluded enough to think that I can push the boundaries of programming or computer science. I’m content to challenge my own limitations, and improve myself at my chosen craft – software development – day-by-day.

Wait a minute, aren’t “progressive” people hippie tree-huggers?

Well, I suppose the politically correct term is “liberals”. In the same way conservatives => right-wing neo-cons, and libertarians => anarcho-capitalists. Now that’s one analogy question you’d never see on the SATs.

Unfortunately, the term “progressive” does often refer to a liberal-minded person, so I have to include this disclaimer that I am not a liberal. I’m a libertarian. Same prefix, world of difference in meaning. Hopefully that’s the first and last time I have to talk politics.

And that’s all for now.

Don’t expect future posts to follow this FAQ format—I just thought it make for a more concise introduction, given my tendency to ramble3.


1 Don’t you accuse me of trying to capture traffic from typos—you’d have to be pretty damn uncoordinated to mistype an ‘a’ for a ‘o’ (hint: look at your keyboard).

2 Because of this, many prog fans are total musical snobs, dismissing most other genres of music as unoriginal and lacking creativity. Think of them as the musical equivalent of LISP hackers.

3 Oooh foreshadowing. Now you’re just dying to read the next post, aren’t ya?