Quote 36
Programming is like sex; make one mistake and support it for the rest of your life.
Programming is like sex; make one mistake and support it for the rest of your life.
In an earlier entry I talked about different character encodings and how Microsoft manages to break the rest of the world with theirs. Thanks to a chance reading of a SitePoint forum post, I have a little more information on the problem. At least now it has a proper name.
By far the most common idiom when using SQL from a web application (PHP or otherwise) is simply listing records. The standard logic looks something like this (give or take real templating):
<?php
$result = mysql_query("SELECT tid, name, size, color FROM things ORDER BY name, size");
print "<table>\n";
print "<tr><th>Name</th> <th>Size</th> <th>Color</th></tr>\n";
while ($record = mysql_fetch_object($result)) {
print "<tr>\n";
print "<td><a href='viewthing.php?tid={$record->tid}'>{$record->name}</a></td>\n";
print "<td>{$record->size}</td>\n";
print "<td>{$record->color}</td>\n";
print "</tr>\n";
}
print "</table>\n";
?>
That's all well and good, but in practice can be quite limiting. Why? Because you can't then group records, that is, display not one but several tables, one for each color. SQL, of course, offers a GROUP BY clause. That doesn't do what we want, however. GROUP BY is an aggregate clause, and is used for creating totals and summaries of records. We want to cluster records by a field that is not the ordering field, or a value that is calculated off of the record itself.
I've generally used two different methods for PHP-side grouping, one of them much cleaner and more flexible at the cost of a little performance.
So apparently I don't have an accent. The InterWeb said it, so it must be true!
A perennial problem for anyone in IT is the infernal beast known as "smart quotes". Smart quotes, also known as "curly quotes", refers to the angled apostrophe and quotation characters that are often used in print but are not found on any conventional keyboard. There's a number of problems with them. First of all, most people don't realize what they are. Then most people don't understand how they work. And finally, Microsoft broke them.
Any sufficiently advanced technology is indistinguishable from a rigged demo.
The great question of the day has been solved, and it is Emacs that wins.
Not that I use Emacs, mind you, but I've said for years that sooner or later, GNU/Linux would go away and be replaced by your choice of KDE/Linux (KDE having taken over so much functionality that all it needs is a kernel) and Emacs/Linux (Emacs already being almost an OS, except for missing a text editor). The only question was which would happen first.
I make no secret about the fact that I am a fan of Free and Open Source software. There are many reasons. The quality of the code tends to be better. I like to tinker with it and see how it works. It's usually gratis as well as [Free|Open]. But what really makes Open Source so attractive as both a user and a developer is talking to merlinofchaos.
Life would be so much easier if we just had the source code.
As a programmer, I find your faith in computers amusing.