So I got a Google Wave developer sandbox account. If you don’t know what Google Wave is, you’ve probably been living under a rock, and you should go check out the aforementioned link. It has a nifty video demonstrating various parts of it. I’ve had time to play with it for a while now, and while it’s a pretty cool …
What is a null object, and when are they useful?
If you’ve written code, you’ve probably used the value null to indicate some variable is not set. This is perfectly good, but did you know there’s more to nulls than just the value null? There is also a null object, which doesn’t really have anything to do with the value null, but its purprose is similar. How many times have …
How to get free publicity by screwing up your friendly URL algorithm
Today I’ll share a fun story with you. Would you like to get free publicity? Go ahead and make a poor friendly URL implementation, like the Finnish Broadcasting Corporation, or YLE – the national broadcasting company of Finland – did. YLE had a very naive friendly URL algorithm on their web site. As you may guess, people found out about …
Improving code with peer reviews
Peer reviewing is the practice of looking at code written by others to find errors or ways to improve the code. Sometimes also called desktop reviewing, this approach can be useful for various reasons: If you have a coworker who is more experienced than you, you can learn from him/her It’s often helpful to have another set of eyes take …
What makes an abstraction good, and why should I care?
You probably know what abstraction means – making a complex process simpler – but do you know what makes an abstraction good, and why it’s important? If you are writing code for a project that lives a bit longer, or has multiple developers working on it, having a good abstraction matters. Lack of a good and consistent abstraction will reduce …
Reader challenge: Keep track of code errors
The book Code Complete suggests to keep track of common mistakes. This is so that you can see what mistakes you make most often, and so that you can have a checklist of things that you should check when debugging. I want to challenge you, dear reader, to keep track of your mistakes with me for the coming three weeks. …
Using canvas to do bitmap sprite animation in JavaScript
Have you ever thought about writing a game? If you have, you’ve probably wondered how to render animations for your game characters. In this post, I’ll show you how you can use JavaScript to do time-based sprite animations, drawing them on canvas – vital if you want to do a game. You can also apply the same techniques I’ll show …
Unit-testing essentials
Here’s some essential unit-testing posts I’ve written recently. While some of them have examples in PHP, they should still be useful in other languages as well. Unit testing PHP series Unit testing introduction Writing and running tests Writing tests for exsisting code Mock Objects and testing code which uses the database Test-driven development General testing topics Unit-testing JavaScript How to …
How to make your code testable
Image by Jim Frazier I’ve recently been working on a code-base which wasn’t designed with test-driven development methodologies, or with unit testing in mind. As I implemented unit-tests to this code, there were some modifications I had to do on the code. Some modifications popped up more than others. There were a few things that are more common than others …
The three types of programmers
The other day I was thinking of programmer types. In a way, I think there are three kinds of programmers when looking at a high level: The smart-and-gets-things-done programmer The smart programmer The “just a” programmer So how do you determine if a programmer goes into one of these categories?