As Blooki now has nightly builds, I'm one step closer to getting tolerable score on The Joel Test:

  1. Do you use source control? yes
  2. Can you make a build in one step? yes (now)
  3. Do you make daily builds? yes (now)
  4. Do you have a bug database? yes/no (I know, I know, it's either yes or no; it's not publicly available, but it exists ;))
  5. Do you fix bugs before writing new code? yes
  6. Do you have an up-to-date schedule? no (only plans)
  7. Do you have a spec? no (not written at least)
  8. Do programmers have quiet working conditions? yes
  9. Do you use the best tools money can buy? yes
  10. Do you have testers? yes, one tester and one developer
  11. Do new candidates write code during their interview? n/a (we are not hiring ;))
  12. Do you do hallway usability testing? yes

Nightly builds are available here.

As Ian Hickson explained, Sending XHTML as text/html considered harmful, but it's fine "send XHTML as application/xhtml+xml to UAs that support it, and as text/html to legacy UAs."

To implement this I've extended the content-type parameter in template, so that instead of text/html it is now possible to write application/xhtml+xml,text/html. Server will then use Accept header to identify what content type should be served; it will serve application/xhtml+xml to Firefox and text/html to InternetExplorer. It also applies to RSS content types: Atom template has application/atom+xml,application/xml as the content type.

All this is done by the following lines of code (thanks to Gisle Aas for his HTTP::Negotiate):

 my @types = split /,/, $template->content_type;
 my $pos = 0; # ::Negotiate sorts results by quality and then by size (asc)
 my $variants = [map {[$_, 1, $_, (undef) x 3, ++$pos]} reverse @types];
 my $headers = new HTTP::Headers Accept => $request->cgi->http('accept');
 my $type = HTTP::Negotiate::choose($variants, $headers) || pop @types;

Calendar

<< Sep | October 2004
SunMonTueWedThuFriSat
     12
3456789
10111213141516
17181920212223
24252627282930
31

Recent Entries

Syndication