ZendCon 09 – Update and Slides

October 22nd, 2009 by Ivo

In my previous post I collected rumours about the opening keynote. Turns out none of them were right. The announcements were a beta of Zend Studio 7.1 and the beta release of Zend Server 5.0. The latter does get a step further in the enterprise direction with the addition of a Job Queue feature. I personally wasn't too impressed, Job Queues were already available in Zend Platform a year ago, and has since been overtaken by Gearman adoption. The new 'code trace' feature, which adds a kind of 'flight recorder' to PHP apps, looks very promising. Where past versions were already able to pinpoint where the problems were, this version will also give you a complete trace of every function call and parameter up to the problem. According to Andi Gutmans it performs fast enough to do that even on a production environment. I'm definitely going to check that out.

Today I had my own talk, "PHP and the Cloud". I had a godo 45 people in my session, which means that I owe the PHPBenelux usergroup a beer, since they showed up with 63 people for my Try-out last week. :-)
Read the rest of this entry »

ZendCon 09 – The Rumours

October 20th, 2009 by Ivo

In about 15 minutes, Andi Gutmans is about to kick off ZendCon 09 with his opening keynote. Yesterday during the tutorial day and this morning over breakfast, I've been polling people to see what big announcements they expect this year. "Microsoft buys Zend" and other fun but improbable announcements aside, here's a selection of what people think might be announced today:

  • Zend Certification for PHP 5.3
  • Zend Framework 2.0
  • a Google AppEngine for PHP
  • Zend Studio Certification
  • Zend Server for OSX
  • Zend Server Enterprise Edition

If you follow me on Twitter, I'll probably mention any specific announcements there realtime.

In a few months they will start to build the largest tower in The Netherlands (with 262 meters not a stunning accomplishment on a global scale, but impressive for our little otherwise mostly flat country). This will be very near my home, so I think it will be a nice project to take a snapshot every week of its progress, so that once it's finished I can create a little documentary of the construction.

I'm trying to find out the proper position to take this weekly picture, to ensure that the complete tower will fit in the picture precisely when it's finished, so that I don't have to move back after a while and can remain in the right spot for the duration of the project, and I'm close enough to not waste much pixels.

My camera has a certain viewport, so plain old Pythagoras won't be sufficient; so I'm trying to figure out what the best position will be, and how I can determine this using nothing more than math, some experimentation and educated guesswork. I'm relatively lazy, so it has to be a simple practical method that doesn't take ages or enormous amounts of effort. Also, it has to be a verifiable method so I don't end up moving the position halfway through the project; they're only going to build this tower once.

The position of the tower will be:


View Larger Map

Ideas? I'll throw in a signed copy of my enterprise php book for the most creative or pragmatic approach, or an amazon gift certificate for those not into PHP.

Bonuspoints if you point out the spot on the map, taking into account buildings or other structures

More details (if relevant):

  • The camera will be this Canon Ixus 95
  • I am able to use a tripod
  • Most roads near the construction site are at the same level as the start of the tower (to my knowledge, anyway)
  • The A2 highway north of the tower has elevated soundproof walls, so anything on the other side of the A2 is not an option.
  • Details on the tower are here.

Have fun!

Update: I might actually use my Canon 450D for this project. Based on this blogpost, the construction company has contacted me that they are interested in the project and would like to cooperate.

Long time no blog

August 19th, 2009 by Ivo

Somebody just kindly reminded me that it's been over 3 months since I last posted on my blog. Oh my.

What kept me busy mostly the past months is my new home. I moved to Utrecht (which is more in the center of The Netherlands, so I can get around more easily) with Leoni, and as developers say, the house is "90% done". So it'll keep us busy for a few months. :)

Things at Ibuildings are hectic as always. Our UK office is growing like crazy and is nearly half the size of our NL operation already. And we're working hard to get our Italian office up and running. Behind the scenes we're already working on things there, so if you're looking for a cool PHP job in Italy, drop me an email (ivo at ibuildings dot com). (Actually Ibuildings NL and UK are looking for senior developers too, if you're interested). After a succesful DPC back in June, we're planning a few more events so keep an eye on the Ibuildings website for news on those.

Another thing that has kept me busy is one of my personal pet projects, Flackr, a twitter based breaking news aggregation site. It has fairly basic functionality at this point (we've been mainly working on the news aggregation and event detection algorithms), but will eventually grow into a 'newsroom 2.0' type application with pro features for journalists. Here's an example of how it tracks tweets related to the Hurricane Bill including pictures. Contrary to many twitter aggregators, it doesn't follow the masses, but trusted sources only.

Finally, I'm happy to announce that I've started work on a new book. Enterprise PHP sold very well and it's not outdated yet, but writing it was addictive and now I just feel like writing another one. The book will be about PHP and Cloud Computing. This time around I'm not working on it alone, I'm co-authoring it with Vito Chin, author of the GMagick PHP extension, among many other things. The expected publication date is early 2010.

That's it for now; I hope to pick up blogging with more actual content after summer.

Why I think Google needs Twitter

May 4th, 2009 by Ivo

More and more content on the internet is 'real time'. Twitter messages, news feeds, pictures, facebook, etc.. Where we used to browse the web for things that have mostly been written in the past, more and more of our internet minutes are spent watching things that 'just happened'.

I see this as a threat to Google, and it wouldn't surprise me if they finally manage to buy Twitter, because Twitter helps them become more 'real time'.

To give an example, I was just trying to update my profile picture on Twitter, and this didn't work. For some reason it refused my pic without an apparent error messsage. Possibly I'm uploading something wrong, so first I googled for 'twitter profile picture' and got this result:

picture-37

Then, I did the same search on Twitter Search and the result was this:

picture-38

As you can see, this tells me that in the past 22 minutes, multiple people had this problem. (Ironically you can also see from their avatars that it actually is a problem). The Google results on the other hand, have nothing that is relevant if you take into account the 'now' factor.

This is just an example. Searching for 'current content' is getting more and more relevant. Comments on a live show on tv or an address to the nation by the president; Google is useless in finding these things.

So it is my humble opinion that either a) Google will buy Twitter, Facebook or another 'real time' content site, or b) Google will release an updated Google Search that takes the whole 'now' into account in its search results.

I write quite a lot of command line utilities in PHP and luckily PDT makes it easy to debug command line scripts.

The thing with command line scripts is that often they require parameters passed on the command line, and PDT offers an easy way to pass them when you debug a script.

Assuming you already have debugging in Eclipse working (using either XDebug or Zend Debugger, both will work with this feature), here are the steps to debug a command line script using command line parameters:

  1. Right-click the script you want to debug and select 'Debug As...' and from the context menu that appears, select 'Debug Configurations...', like this:

    PDT context menu

  2. In the debug configurations screen that appears, select the 'PHP Script Arguements' tab. In the text box that appears, you can add fixed parameters (e.g. --key=value), but it's much more useful to use Eclipse's dynamic parameters, like this:

    picture-29

    In this case I entered --visitor=${string_prompt:Visitor} which means: pass --visitor= to the script when debugging, but ask me to enter a value named 'Visitor'.

  3. You can use the 'Variables' button to enter variables like this using a more visual wizard. There are many different prompts, string_prompt is just one example; you can prompt for folders and passwords as well, and you can inject certain system variables as a parameter using this wizard)
  4. After you've saved the Debug Configurations, again right-click the script you want to debug, and select 'Debug As...' and then 'PHP Script'.
  5. Eclipse now pops up the prompt, like this:

    picture-30

Voila, you can now debug your command line script by passing in dynamic parameters whenever you start the debug session.

P.S. This not only works in Eclipse PDT but also in Zend Studio for Eclipse and Aptana (in theory, haven't tried either yet).

P.P.S. No, I didn't create a script that allows me to track individual visitors, it's an archive processor for Flackr that uses the Visitor design pattern to make it easier to write multiple processors. I love Design Patterns.