...composed of an indefinite, perhaps infinite number of hexagonal galleries...

© 1994-2017. David Sklar. All rights reserved.

New Job!

I’ve taken a full-time job as a Software Architect with 24 Hour Laundry.

Since winding down Student.Com and TVGrid.Com in 2001, I’ve been keeping quite busy as a freelance consultant – writing a few books, giving lots of conference presentations, writing code and offering advice to many different clients.

I’m stepping off the consulting merry-go-round, however, for a full-time job with a company chock full of great ideas and smart, friendly people. My job involves a lot of things I know how to do well and also learning a lot of new stuff: an ideal situation. I’ll have more to say in the coming weeks and months about specifics of what I’m working on.

A current focus is hiring. So if you get great satisfaction from making the digital trains run on time, let me know. We’re looking for a Director of Operations.

(Also, I should point out, that anything I say here on this blog is just my opinion, doesn’t necessarily officially represent 24HL (unless it’s a brilliant eternal truth that all humanity aspires to), etc. etc. etc.)

Coming up for air

So, believe it or not, I’m still here. (Is beginning a blog post with a comment about how long it’s been since one’s last blog post the most common blog post opening, or is it beginning a blog post with a question about whether or not the most common blog post opening is a comment about how long it’s been since one’s last blog post?)

Anyway, further proof of my still-here-ness: At OSCON in August, I’m doing a Learning PHP tutorial and a talk with Michael about calendaring. The Learning PHP tutorial is all new, covering PHP 5 with lots of tips and tricks. The calendaring talk has the special zing that only discussing timezones and summer time can provide.

I’ll also be doing a tutorial on “Setting Up PHP” at the Zend/PHP Conference in October. It’ll be a cross-platform what-the-heck-does-that-php.ini-setting-do bonanza!

Remix and be Remixed

Why do folks who want the freedom to remix content as they see fit get their digital dander up when other people remix their own content?<p>Gmail’s introduction was accompanied by a barrage of complaints that the automated scanning-of-messages to display ads was involuntarily subjecting those who correspond with Gmail users to a privacy invading examination and modification of their message.</p><p>Now, the introduction of a version of Google Toolbar that annotates addresses, ISBNs and similar data with links to maps and has provoked a similar storm of outrage. The complaint goes something like "I am a virtuous content publisher whose brilliant web pages are being chewed up by the Evil Google Content Manipulation Borg without my consent! Foul! Foul!"</p><p>What these complaints conveniently elide, however, is that it is individual users who are making the choice to have their web pages modified. These users must install the Toolbar and then click on the appropriate button in the Toolbar to follow the additional link. Nothing sneaky is going on behind the scenes.</p><p>Objecting to users modifying web pages before, as, or after they view them is a dead end. Tools and add-ons such as popup blockers, custom style sheets, screen readers, auto-form-field-filler-outers are precisely those sorts of content modifiers. And surely no one suggests that those be banished to preserve the sanctity of the web browsing experience, right? What would be next? Preventing me from putting squibs of black electrical tape over the annoying LEDs that glow all night from various devices in my home? Should I expect a nastygram from Uniden because my application of tape has prevented me from enjoying the experience of the "Charge" light on my cordless phone as they intended?</p><p>What applies to the MPAA and the RIAA applies just as strongly to Joe Homepage. If you’ve got thoughts/words/songs so brilliant that you can’t bare to have them disparaged by content-modifying Philistines (hint: nestled at the bottom of this particular slippery slope is "The EULA for this sonata requires you to listen to it on speakers that are at least THIS good to properly receive the artist’s message.") then keep that brilliance to yourself. If you require the ego gratification/financial compensation/curiosity satisfaction that comes from transmitting your message to other humans then you absolutely, positively must accept the idea that you lose some control over what happens to your baby.</p><p>A related important point that Cory Doctorow makes in his swell pro-Toolbar commentary is:</p><blockquote>This shows how an authors’ association like the Science Fiction Writers of America could collect its members’ ISBNs and affiliate IDs for their favorite web-stores and provide plugins that would rewrite every single instance of my ISBNs on pages viewed through the plugin with a link to my affiliate account on Amazon, making me some serious coin. Wanna support an author? Install her plugin and help her feed her kids. Wanna support a charity? Install its plugin and have all the affiliate links rewritten to its benefit. Wanna support youself? Install the plugin that rewrites every ISBN with your own affiliate ID.</blockquote><p>The framework of configurable end-user content modification provides a powerful engine for consumer choice. This goes beyond tossing affiliate commissions for your purchases into whichever non-profit bucket you value (although that’s a fine idea). This extends to content ratings, corporate business practice review, editorial commentary, and many other areas.</p><p>Once the framework is in place, users can choose to have recomendations on whether a particular site is appropriate flow into their browser from the Christian Coalition or from MoveOn. As you shop for refrigerators, you choose whether you want annotated information about the refrigerator makers from Greenpeace, the Cato Institute, or Consumer Reports.</p><p>The annotation and modification of arbitrary content, with end user consent, is a golden opportunity to build a world of informed readers and consumers.</p><p>All that said, the Toolbar isn’t perfect (and it is, after all a beta). For example, you can choose your map provider, but not your bookseller. The primacy of end-user choice would certainly be reinforced if all the various link destinations were configurable.</p><p>I don’t mean to be an apologist for Google. I like some things about the company and its products, I dislike other things about the company and its products. The most important issue here is not the specifics of the toolbar. The most important issue is recognizing that we all have to give up the control over our content that many of us demand of Big Media Corporations.</p>

Essential PHP Tools review/interview

LinuxWorld Magazine interviewed me as part of a review of my book Essential PHP Tools. Read the interview at

11 Cool Things You Can Do With PHP

Yesterday I gave a talk called “11 Cool Things You Can Do With PHP” as part of Princeton University’s OIT Lunch ‘n’ Learn series. The slides from the talk are online at

My goal was to focus on things PHP can do other than basic RDBMS/HTML form glue. If you think there are cool things I missed out on, let me know so I can incorporate them into a future version of the talk!

Get that OSCON talk proposal in!

Just a few days left to submit a talk proposal for the 2005 Open Source Convention.

I’m particularly interested to see talks on ways that PHP is growing beyond its traditional “glue between HTML forms and a relational DB” role. Things like:

- integration with client side scripting

- real world web services usage

- generating content types other than text/html

- integration with things that aren’t web browsers: IM, e-mail, etc.

Submit your talks here:


See you in Portland!

Writing PHP Books With Docbook

Last November, I wrote an article for ONLamp.Com called Writing “Learning PHP 5” about the tools and PHP scripts I used to manage the Docbook XML source of my book Learning PHP 5.

Sebastian Bergmann then wrote about how he used PHP and DocBook for his book Professionelle Softwareentwicklung mit PHP 5.

There are plenty of similarities between what Sebastian and I did, but he has a few nice touches that I will adopt for next DocBook project, such as using XIncludes for code examples (makes building an archive of all the examples in the book a snap) and a snazzy build script that does things like syntax highlighting.

I use Learning PHP 5 as a textbook for some PHP classes and training sessions, so being able to move back and forth between DocBook and the XML that Pres2 understands is helpful. (I’m actually using a modified, PHP 5-only version of Pres2 (that I’ve named “Pres5”) for the presentations, which I’ll package up and release one day when (familiar refrain ahead) I make the code less embarassing.)

Robots that Smell

I was recently doing some training at a company that had a MailMobile to do internal mail delivery. It toots around the building, making predefined stops so cube dwellers can grab their mail from various slots and buckets on the robot.

As I learned from the MailMobile web site, though, the way that the MailMobile follows the path originally set up for it is by following an invisible (to humans) chemical path painted on the floor.

Construire son premier site web interactif

The nice folks at Éditions O’Reilly sent me a copy of Introduction à PHP 5, the French translation of Learning PHP 5.

The translation is very thorough. I’m excited to look through it since the food-based examples in the English edition (which were mostly Chinese food) have been updated to delicious French foods.

Learning PHP 5 on Slashdot

Learning PHP 5 was reviewed on Slashdot yesterday. I’m pleased because it was a positive review. I’m also pleased that some of the comments were actually about the book instead of being entirely “PHP is better than Perl is better than Python is better than J2EE is better than Eiffel is better than PHP …”.

I am, however, concerned about this guy and anyone who might want to take his brain-eating advice. Please, just hire me for a training class instead!