Going to DrupalCon

Submitted by Larry on 17 February 2007 - 5:57pm

Well, it's official. After being around Drupaldom for a year and a half now, I'll finally be making it to a DrupalCon. Yay! More specifically, the Open Source-CMS Summit, hosted by Yahoo (employer of such people as Rasmus Lerdorf), which will include DrupalCon. Drupal folks, I'll see you there (hopefully)!

Web 2.0 in Web 2.0

Submitted by Larry on 13 February 2007 - 11:11pm

I normally don't post random "hey this is cool" posts, but this one really is that cool. The second video isn't all that great, giving more of a business talk, but the first one is slick, cool, insightful, and elegant. (About 5 minutes each.) Web 2.0 explained using Web 2.0. Nice!

Sweet 16

Submitted by Larry on 14 January 2007 - 5:41pm

When is Unicode not Unicode? When it's UTF-16 instead of UTF-8. Both are properly Unicode character sets, but for reasons that escape me they are not fully compatible. In today's installment of "Fix Microsoft's bugs", we'll look at how to deal with that little problem.

Quote 39

You do not herd cats. Cats, you put them in the general area of the mice and let them do what they are good at. Micromanagement of cats is a losing proposition.

MVC vs. PAC

Submitted by Larry on 31 December 2006 - 4:42pm

One of the most common mistakes I see people make when talking about web architecture is with regards to MVC. Generally it comes down to a statement such as this:

It's a web app, so we have to use MVC. That way we separate the logic and presentation, which means keeping PHP out of our display layer. All the important projects do it that way.

Of course, such a statement is false. It demonstrates a lack of understanding about MVC, about web applications, about "important projects", and about software architecture in general. Let's try to clarify, with a little help from Wikipedia.

Project of the Month

Submitted by Larry on 28 December 2006 - 5:24pm

There are two things that tend to happen at the end of the year: Predictions about what the new year will hold that never come true, and new years resolutions that last until Martin Luther King Jr.'s Birthday. I'm not going to spend time on the first (at least this year), and I'm not going to be so lame and predictable as to call this a resolution so I avoid the curse of the second. That said, though, I am going to do something for the new year, and ask others to join me.

Announcing the Open Source Project of the Month!

PHP Group By with Arrays

Submitted by Larry on 2 December 2006 - 4:57pm

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.