Monthly Archives: February 2009

Optimizing Software From 20,000 Feet

The First Rule of Program Optimization: Don’t do it.
The Second Rule of Program Optimization (for experts only!): Don’t do it yet.”
- Michael A. Jackson
If you spend much time with people who have any involvement with software development, you’re going to run across a conversation about optimizing software. Either the program is too big or [...]

Email Address Validation

In Validation Vexation, I wrote a bit about ways that validation rules for user-entered data can go awry by being too narrowly-defined. This post adds three more principles for dealing with data validation which are primarily focused on the results of the validation rather than the rules used to do it. The examples [...]

Validation Vexation

Be liberal in what you accept, and conservative in what you send.
- Postel’s Prescription
Previous posts here have discussed reducing the burden of data entry on your application’s users by cutting down on the number of items that they are required to provide and, even if something is required, allowing it to remain incomplete for as [...]

Open Source or No?

Free/Open Source Software (FOSS) has taken the world by storm. Startups everywhere have built their businesses upon a foundation of FOSS products, with the LAMP (Linux-Apache-MySQL-Perl/PHP/Python) platform being the best-known among them, and some have gone beyond using FOSS to producing it. Even some of the more traditional, established companies are contributing to [...]

Looking Beyond the Obvious

Near its end, the CyberPenguin case study mentions the discovery of “some small accounting inaccuracies”. To be exact, users were occasionally being double-charged for sessions.
If you’ve done much software development, that statement alone should be enough to have you thinking “concurrency issue” or, more specifically, “race condition”. Given that the application involved both [...]