Hipster PDA

GTD advises those that practice it to empty their minds often. If you suddenly get a great idea or if just remembered something that you must do, you have to write it down somewhere as soon as that comes into your head. Not only will it be less likely to be forgotten, it will also free your mind to think about stuff that you actually enjoy thinking about.

The problem with this advice is that most of those ideas pop up when you’re on the go, and thus requires you to bring a portable note taking tool with you always. Ticklers or small notebooks are often too bulky to fit in your pocket, while PDAs and smartphones are often too expensive for such a simple task.

Enter the Hipster PDA.

Hipster PDA

The Hipster PDA (Parietal Disgorgement Aid) is a fully extensible system for coordinating incoming and outgoing data for any aspect of your life and work. It scales brilliantly, degrades gracefully, supports optional categories and “beaming,” and is configurable to an unlimited number of options. Best of all, the Hipster PDA fits into your hip pocket and costs practically nothing to purchase and maintain. Let’s make one together.

Continue reading “Hipster PDA”

Technical Debt

Technical debt is an important fundamental concept in the software engineering world, mainly because it pops up quite often in most real-world software projects. As much as I’d like to put the concept in my own words and sprinkle some personal experiences on it, Steve McConnell already wrote two good posts on the topic last year.

The term “technical debt” was coined by Ward Cunningham to describe the obligation that a software organization incurs when it chooses a design or construction approach that’s expedient in the short term but that increases complexity and is more costly in the long term.

Ward didn’t develop the metaphor in very much depth. The few other people who have discussed technical debt seem to use the metaphor mainly to communicate the concept to technical staff. I agree that it’s a useful metaphor for communicating with technical staff, but I’m more interested in the metaphor’s incredibly rich ability to explain a critical technical concept to non-technical project stakeholders.

Technical Debt and Technical Debt Decision Making [from 10x Software Development]

Technical Interviews and Regular Expressions

Some people, when confronted with a problem, think “I know, I’ll use regular expressions!” Now they have two problems.
– Jamie Zawinski

Some people, when confronted with a problem, think “I know, I’ll quote Jamie Zawinski!” Now they have two problems.
– anon

Just to show that I practice what I preach, I headed over to TopCoder a few hours ago to try my hand at some simple TCHS problems. By my surprise, the problem I opened was very similar to one of the technical interview questions in my previous company. I know this because as a technical interviewer, I’ve already given this problem to a couple of potential employees.

Now this isn’t surprising. Basic algorithm-related questions are good filters for weeding out so-called “developers” who never really had much programming practice in college, but there’s only a few types of questions you can ask at this level–go any higher and you’ll likely be stuck with Complicators instead of pragmatic programmers.

Anyway, what struck me with this problem is that it can also be solved with regular expressions. This has never occurred to me before, mainly because I didn’t expect even the top students from the top universities in the Philippines to approach the problem that way. From my experience, I would expect applicants to play around with loops instead.

This made me ask myself the question:

If you were a technical interviewer, how would you rate an applicant who used regular expressions in solving the problem?

Continue reading “Technical Interviews and Regular Expressions”

Quick Programming Challenges

As a guy with over a decade of programming experience and a good mathematical background, I occasionally want to throw all the other aspects of software engineering out of the window and just program stuff. Here are two sites I visit to get my quick programming fix.

Continue reading “Quick Programming Challenges”

C.A.R. Hoare on Computer Science and Software Engineering

C.A.R. Hoare

As a follow up to my post On Software Engineering, here’s a presentation by Sir Charles Antony Richard Hoare on the relationship between computer science and the engineering of software. It’s mostly basic stuff, but it might be useful for you guys who haven’t groked the relationship yet.

The Science of Computing and the Engineering of Software [via InfoQ]