listen to php conferences online

I stumbled upon a nice source of PHP information today (I’ve apparently been hiding under a rock) and think other PHP geeks will be interested. The audio version of the Zend Conference Talks are online, meaning, you may freely listen to them at your leisure. So go there now, download the talk slides, then press play and enjoy. Kudos to Zend for making these 2007 talks available! Their 2008 conference is coming up so hopefully this means more online talks here soon.

And now a mild rant. I’m bias against all conferences because they are expensive and geared towards small groups. People spend time writing talks for hundreds instead of, for example, writing documentation for millions. If you ever see me holding a sign that reads “We want docs, not talks!” outside of conferences, well, you now know why. ;) And slides by themselves are no substitute but each to their own…

Now back to the topic of this blog post. Go check out those talks and have a listen and who knows, maybe one day other conferences will follow Zend’s wonderful lead. Or maybe some already do and I’m just not aware. Also I wonder if there is software out there that can take the slides, some audio, and allow humans to easily sync the two for other humans…

A brief history of PHP logos

PHP Logos

Welcome to the [almost complete] history of PHP logos. There have been a few changes over the years, so let’s explore them now:

How this was created

PHP 4.0.0 added main/logo.h which contains the logos themselves (as text (a bunch of numbers (magic))) so I checked out every version of this file from CVS, parsed them to create the images, sorted by version/size, then wrote this blog post. Since this file (or logos) do not exist in PHP 3 sources, I scoured the web to find those. Well, the PHP CVS repository attic at least.

The PHP logo

Not a lot has changed here because PHP is still PHP, and the logo clearly shows this. From PHP versions 4.0.0 through 4.4.6 the size is 2962 bytes. However, PHP 5 altered the logo a few times. It went from 4644 bytes in versions 5.0.0 through 5.1.2 down to 2524 bytes from PHP 5.1.3 to today. So, these are officially the PHP logos from 22 May 2000 onward because as they say… the source never lies!

4_0_0 thru 4_4_6 5_0_0 thru 5_1_2 5_1_3 thru today

The other PHP logo

Good ‘ol Thies and his pencils or breadsticks or magic PHP wands or… do you remember this? If you do you’re old, like me. This logo was around from PHP 4.0.0 through 4.2.3. Then along came Stigs dog Nadia (4.3.0-4.3.10), Zeev’s dog Scotch (4.3.11-4.4.6), Sterlings rabbit Carmella (5.0.0-5.0.3), then Scotch reappeared (5.0.4 – 5.1.2), and now we see a trippy PHP logo. Oh what a long strange trip it’s been, right? Yes it has! You may see this logo at the end of March, or beginning of April, or intentionally using a secret function.

4_0_0 thru 4_2_3

4_3_0 thru 4_3_10

4_3_11 thru 4_4_6 and 5_0_4 thru 5_1_2

5_0_0 thru 5_0_3

5_1_3 thru today

Older logos, before PHP 4

Several other logos exist too, namely from PHP 3. Although these aren’t from the PHP sources, they exist and most were restored from the PHP CVS repository attic. PHP almost had a Web 2.0 look way back in 1997… almost. Others were found too, but not all are shown here. I could not locate PHP 1 or PHP 2 logos.

Old school PHP 3 from mid 90s

Old school PHP 3 from mid 90s

modern day PHP 3

LinuxTag 2001


Colin Viebrock created most of these PHP centric logos way back when. Colin is old school PHP at its finest. And Derick remembered Sterlings rabbits name Carmella.

The future

What’s next… an elephant? When will receive its next facelift? How many bytes will the next logo be? PHP is Open Source, so everyone in the world is capable of answering these questions.

About 8 reasons why you should write for the manual

In response to a recent post by Hannes Magnusson titled “8 reasons why you should *not* write for the manual“, I offer about 8 reasons why you should. Although at times subtle, Hannes shares good points regarding some of the frustration that comes with working on a successful (and old) Open Source project like PHP. How do we appropriately credit the kind souls who seemingly work anonymously within the CVS repository? Not sure, but here are about 8 reasons why you should write for the official PHP manual:

  • You’ll make your mother and friends proud
  • You’ll own a cool email address
  • You’ll get to see and use your own work online for later use, and allow others to help improve upon it
  • You’ll be happy to know that millions of developers benefit from your work daily
  • You’ll gain experience using DocBook and the related tools to create documentation
  • You’ll gain real karma by contributing to an Open Source project
  • You’ll make new friends
  • You’ll increase your Ohloh coolness factor
  • You’ll be able to say “I write documentation for PHP, the most popular web scripting language on the planet
  • You’ll end up learning PHP, especially the quirks and changes that it goes through. 5.3.0 has what again?
  • You’ll add the experience to your resume
  • You’ll have an excuse to tell people… “It sounds fun but I promised to document SPL tonight so can’t go
  • You’ll help make something better, something you use. It’s good to use things that get better, right?
  • And lastly, it’ll give you something else to blog about

There are plenty more reasons but eightish is a good number. It’s worth noting that Hannes does an incredible amount of work for PHP as a webmaster, documentation geek, and php-src guy. See also the Documentation HOWTO for how to contribute.

How the PHP acronym was reborn

While reminiscing what PHP was like back in the early early years, I stumbled upon a little historical nugget from the old website. Do you know what the acronym PHP stands for? Many of us do, or think we do, but just in case take a guess from:

  • PHP: Hypertext Preprocessor
  • PHP: Hypermedia Preprocessor
  • PHP: HTML Preprocessor
  • Professional Home Pages

But how was the definition chosen? For fun, here’s a look back at the official vote that determined this new meaning way back in 1998. It might be worth mentioning that Rasmus, the father of PHP, did not vote for the eventual winner. Oh, you gotta love Open Source! :-)

A couple notable quotes that could be taken out of context:

  • *: “… I think I would prefer to just call it PHP and leave it up to the users to assign a meaning to the acronym. People Hate Programming, People Hate Perl, Please Hold Parties, Pretty HTML Programs, Perfect HTML Pages, Putrid Hateful Puke… whatever.” ~ Rasmus, 1998
  • *: “… Now, if some animal whose name started with ‘P’ were to be mysteriously associated with PHP we could have something like a Piranha HTML Preprocessor. What other P animals are there? Penguin, Platypus, Polar Bear, Porcupine, Puffin…” ~ Rasmus, 1998

And a few other notes:

  • Back in late 1997, the name temporarily and unceremoniously changed from the earlier ‘Personal Home Pages / Forms Interpreter’ to ‘Professional Home Pages’ and this was noted within RC releases of PHP 3. People were not content, and wanted more, so later this was changed after the vote and before PHP 3.0.0 was officially released.
  • This thread started the idea of really changing the name, which eventually lead to keeping the PHP name, then to using a geeky GNU type recursive acronym. Other thoughts like keeping PHP but with no meaning, or a monthly meaning, were entertained but did not happen.
  • These official viewpoints compared the two leading candidates by pitting “PHP: HTML Preprocessor” against “PHP: Hypertext Preprocessor” with each side providing detailed arguments for why they should be the definition behind PHP. Note the arguments were written when the Internet was relatively young, which might explain the XML replacing HTML hype… :-)
  • Official meaning for PHP is: PHP: Hypertext Preprocessor

Needless to say, this is now history. PHP is still PHP and we love it all the same.

20 possible reasons why PHP function names and parameters are weird

Here are 20 possible reasons why PHP functions lack consistent names and parameters. Learning the definition for every PHP function is truly an amazing feat and I doubt this has been attempted or accomplished by anyone. At least, by any sane human. And references are named references because they are designed to be referenced, right?

The List:

  • PHP glues APIs and humans together, and sometimes this gets messy
  • PHP documenters pull strings to force a dedicated audience
  • PHP is gearing up for a massive quiz on every function signature to rival all pi (π) competitions
  • PHP likes BC
  • PHP thrives on making your life difficult… because it’s fun
  • PHP is working on a time machine so really none of this matters
  • PHP gladly and openly steals ideas and usage from other languages
  • PHP says all your namespace are belong to us
  • PHP functions have been developed under many circumstances, sometimes drunk
  • PHP is a recursive acronym
  • PHP anarchy says rules? we don’t need no stinkin’ rules!
  • PHP function naming algorithm still remains a secret and cannot be cracked
  • PHP chose to give people something fun to complain/blog/laugh about
  • PHP function aliases are for the weak
  • PHP functions created in the 90’s (and some later) directly used prototypes from low-level APIs
  • PHP isn’t designed to win a beauty contest
  • PHP has other problems to solve
  • PHP needed a way to explain having an elephant for a logo
  • PHP encourages text editors to be intelligent => code insight
  • + Ads = $$$

Related Resources:

Related Quiz Questions:

  • Write the prototype for: in_array, isset, empty, strpos, strstr, subtr, implode
  • Find the aliases: die, exit, echo, print, mysql, strchr, strstr, implode
  • Locate the functions: die, echo, print, include, isset, unset, array, rtfm, str_parse, implode
  • Define these PHP terms: Deprecated, Minor release, Major release, PECL, TSRM, Open Source, Rules