Archive for July, 2007

Music for Coders: July 14

Saturday, July 14th, 2007

Wow! Lots of new music this week. Apparently, the week after the 4th of July is considered a good time for releasing.

New and Notable This Week

  • Spoon: Ga Ga Ga Ga Ga
    I’m a big fan. At first glance, this album seems to be a little more complex than the previous ones. It’s hard to compare them: Wilco and the Shins aren’t too far off but Spoon has some straight ahead rock/pop tendencies too.
  • Smashing Pumpkins: Zeitgeist
    A reunion album that doesn’t suck! It’s too early to say if they’ve captured the current zeitgeist, but after many years apart they’ve definitely recaptured their old sound without repeating themselves.
  • Crowded House: Time on Earth
    Another reunion album that doesn’t suck. It has “caught my ear” yet though.
  • Gogol Bordello: Super Taranta!
    The unique and incomparable Gogol Bordello. Gypsy-punk. I can appreciate that what they are doing is interesting, but I won’t be laying down money for the album. (My wife likes them more than me… Maybe she’ll buy it.)
  • Mark Ronson: Version
    A horn-heavy set of covers and remixes from the producer of hits by Christina Aguilera, Lily Allen, and Amy Winehouse. As nutty as it sounds, I’d describe the album as motown meets hip-hop on covers of alternative music. There are some really interesting song choices that make it worth a look.
  • Stars: In Our Bedroom After the War
    I liked the last album and I liked them in concert. Some tunes are catchy and stick with you; others seem a little to ethereal and just float past you. The jury’s still out on the new album though.
  • Nick Drake: Family Tree
    An album from before his records (early demos, home recordings, etc.)
  • Jesse Harris: Feel
    The guitarist and songerwriter behind Nora Jones’ “Come Away With Me” album. He’s talented on his own too.
  • Fion Regan: The End of History
    If you like Nick Drake and the whole singer/songwriter thing, you’ll want to check out this talented folk musician.
  • Interpol: Our Love to Admire

R.I.P. PHP 4

Friday, July 13th, 2007

R.I.P. PHP 4

Previously I wrote about the Go PHP 5 campaign and their attempt to get developers and hosts to publicly declare their intent to abandon PHP 4 on February 5, 2008.

Their campaign just got a big boost. It’s official—PHP 4 dies at the end of 2007. (This is where you should insert the nostalgic music and a montage of all those moments with PHP 4 we remember fondly.)

From PHP.net:

Today it is exactly three years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable & production-ready and as PHP 6 is on the way, PHP 4 will be discontinued.

The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5.

For documentation on migration for PHP 4 to PHP 5, we would like to point you to our migration guide. There is additional information available in the PHP 5.0 to PHP 5.1 and PHP 5.1 to PHP 5.2 migration guides as well.

I think this is the right move and that it should be enough time for everyone to adjust. I’ll be watching the transition with interest. It’s an interesting case study in how to migrate a massive installed base away from an entrenched version. But after three years of having PHP 5 available, I think we all agree someone’s got to cut the cord.

Web-Based Browser for Subversion

Wednesday, July 11th, 2007

Rick Olson posted an announcement on Riding Rails about the release of his new project Warehouse. It’s a web-based browser for your Subversion repositories, written in Ruby on Rails. It make it easy to browse directories, code and the activity log from any browser. Warehouse is $30 to purchase and download.

COLOURlovers

Monday, July 9th, 2007

COLOURlovers

I’m a developer, but I also have at least half the skills of a designer. Unfortunately, that also means that I am missing half the skills of a designer… For example, I know some color theory basics, but pulling together a color scheme for a whole website can be a challenge. Especially when I’d rather be coding instead of playing with color chips.

TechCrunch introduced me to a new color website this week: COLOURlovers. It looks interesting. There are user-submitted color combinations to browse. Colors are searchable and there is even a link to find iStockphotos with the same color in them. And I like how they watch and discuss color trends on magazine covers and websites. As for developing a palette you can use, they give you some great ideas or you can mix-and-match on your own.

Here’s how they describe themselves: “COLOURlovers™ is a resource that monitors and influences color trends. COLOURlovers gives the people who use color - whether for ad campaigns, product design, or even in architectural specification - a place to check out a world of color, compare color palettes, submit news and comments, and read color related articles and interviews.”

Up until now I’ve been using Adobe’s kuler to find or create good color combinations. I still love kuler—it’s super fast and easy—but I am going to start visiting COLOURlovers too until I figure out which one is the better fit for me.

Music for Coders: July 7

Saturday, July 7th, 2007

New and Notable This Week

  • Velvet Revolver: Libertad
    I was disappointed. Doesn’t really cover any new ground and sounds overproduced.
  • Sara Bareilles: Little Voice
    A more mainstream Fiona Apple.
  • Tom Langford: The Rock Garden
    Wilco meets the Postal Service?
  • 24-7 Spyz: Face the Day
    I saw 24-7 Spyz once, I think they were opening up for The Mighty Mighty Bosstones. I liked them a lot more then, back when I was listening to Living Colour and Faith No More. My tastes have moved on, but I still think they are better than the teenage fake-pop-punk that is everywhere lately.
  • Bad Brains: Build a Nation
    They can only be described as punk-reggae, Bob Marley + Sex Pistols. They formed in 1979, split up in 1995, and got back together to put out this new album.
  • Andre 3000: Class of 3000: Music Volume One
    Brilliant. Andre 3000 from Outkast does original songs for kids. They are for the Cartoon Network show Class of 3000 (Think Fat Albert for 2007). The songs are whimsical, but actually very good.

PHP 6 Namespaces

Friday, July 6th, 2007

Speaking of the future of PHP, the PHP internals team has been talking about implementing namespaces in PHP 6. The problem they want to solve is this: how do you keep two class names (such as “Connection”) from interfering with each other? On a small web site, it’s easy, but once a site becomes complex or you start adding in third-party plug-ins and re-using old code, it gets much harder. Currently developers are using very long class names to help ensure their uniqueness, and no one likes that solution much.

The leading proposal at the moment was put forward by Dmitry Stogov on the PHP-Dev list. His idea is to declare the namespace at the beginning of the file and then all function names would be prefixed with the namespace name.

I like the idea, I like the “::” seperators, but I don’t like being restricted to declaring it at the top of the file. Why not just envelope the namespace anywhere (using curly-braces)? Then you don’t have to be at the top of the file and you can put more than one namespace in a file. It seems much more flexible than a single declaration in a required position.

1
2
3
4
5
6
7
namespace Zend::DB {
  class Connection {...}
  function connect() {...}
}
namespace AltZend::DB {
  class Connection {...}
}

You could even go further and allow namespaces to be inside other name spaces.

1
2
3
4
5
6
7
8
9
10
11
12
namespace PP {
  namespace DB {
    class Connecton {...}
    function connect() {...}
  }
  class Foo {...}
  function bar() {...}
}
$x = new PP::DB::Connection;
PP::DB::connect();
$y = new PP::Foo;
PP::bar();

Ruby gives this namespace behavior using Modules.

What do you think? They are looking or feedback and ideas.

PHP 4 Deathwatch: February 5, 2008

Friday, July 6th, 2007

GoPHP5

Back in May, I posted about the PHP developer community’s desire to kill off PHP 4 and why that’s not so simple. (“How to Kill PHP 4?”) PHP 5 has been out for years and PHP 6 is on its way. My view back then was that the best approach was just to set an end of life date and plan for it.

A lot of people agree with me. Go PHP 5 has set February 5, 2008 as the execution date. There’s even a countdown clock! Right now there are 213 days left before a long list of software projects (including Drupal, phpMyAdmin, Typo3 and Symfony) and a number of web hosts make PHP 5.2.0 their minimum requirement. News of the switch is spreading and generating buzz. The Go PHP 5 announcement has over 800 diggs.

Your project can make the switch too and be part of their growing list. Of if you don’t have a big name project, you can encourage your web host to commit to the date, or pick a new web host who will. It’s simple: vote with your feet. Web hosts will go where their customers go.

You hear that PHP 4?… That is the sound of inevitability… It is the sound of your death…

PHP with MySQL Essential Training

Tuesday, July 3rd, 2007

PHP with MySQL Essential Training

I’m happy to announce PHP with MySQL Essential Training has been released on the lynda.com Online Training Library. It’s almost 11 hours of video training on PHP. I start with the basics of the PHP language and work up to dynamic web pages with a MySQL backend by demonstrating how to build a content management system.

Some of the topics it covers include: installation, PHP language fundamentals (variables, arrays, loops, functions, etc.), blueprinting an application, building dynamic pages, structuring and interacting with databases, how to build, validate and process forms, and regulating user access with passwords. I also provide practical advice, give best practices examples, and demonstrate refactoring techniques to improve existing code.

PHP with MySQL Essential Training is available online as streaming video to subscribers of the lynda.com Online Training Library ($25/month, $250/year, $375/year with exercise files included). It is will also be available as a CD-ROM soon both through Lynda.com and Amazon.com.

I also recorded Ruby on Rails Essential Training for the lynda.com Online Training Library which is available online to lynda.com OTL subscribers and on CD-ROM, both through lynda.com and Amazon.com, for $99.95.

If you try any of them and find that they are helpful, be sure to let me know!

Rails Hackfest: Out with June, In with July

Tuesday, July 3rd, 2007

The June Rails Hackfest, produced by Working With Rails, is complete and the winners have been announced. Congratulations to Josh Peek who won by a sizeable margin.

The July Rails Hackfest is already underway, with more prizes. Can Josh Peek be unseated as the champion? (He’s at #11 as I write this…)

Monday Link Dump

Monday, July 2nd, 2007

Apparently the blogosphere was holding it’s breath for the iPhone. Today, suddenly, there are dozens more posts than usual. Plus, I was on the road last week, so there’s a lot to catch up on. Here are some highlights.

PHP news

  • Zend Framework 1.0 has been released. Zend Founder and PHP godfather Andi Gutmans has the announcement. It will be very interesting to observe how it fares against the extremely popular Ruby on Rails framework. Leap ahead? Too little, too late? My personal hope is that both will compete to make each other stronger.
  • PHPUnit 3.1.0 has been released.
  • PHPDeveloper posted a primer to using AIR (Adobe Integrated Runtime) with PHP.
  • Manning released the eBook of PHP in Action by Dagfinn Reiersøl with Marcus Baker and Chris Shiflett. The print version should hit bookshelves any day now.

Ruby on Rails news

  • Award on Rails: a million yen for the best Rails application developed between June 10 and September 25, 2007. Judged by Matz himself. ($1M ¥ = US $8,300)
  • Ryan Bates at Railscasts is holding a contest too: submit a documentation patch to Rails and on July 27 he’ll pick eight random winners for prizes including a Nintendo DS Lite, iPod Shuffle, Peepcode subscriptions and Pragmatic Programmer books. Railscast #50 will show you how to submit a doc patch. (I recently reported on the Rails community’s push for better documentation.)
  • Remember when I talked about pagination and how it’s moving to a plug-in? Railscast #51 shows you how to get started with the plug-in will_paginate as an alternative to classic pagination.
  • Chris Wanstrath announced Sake (pronounced like the drink) which allows Rake tasks (pronounced like the garden tool) to be called system-wide.
  • Jamis Buck announced the release of Net::SSH 1.1.2, an update to the pure-Ruby implementation of the SSH2 client protocol.

Other news