30. August, 2007

Fun with PHP form processing

Filed under: Web Authoring — frightanic @ 23:18

This blog now resides at It will be discontinued here…

While debugging a PHP script tonight I came across an extremely annoying PHP “feature”: it does not allow HTML input field names to contain dots and spaces.

So, if you had a HTML form with an input field “” <input name="" id="" type="text" /> and were to process this form with PHP, PHP would report a field named “do_it”. A field named “do it” would also be converted to “do_it”. While the behavior for the second case is totally sensible and in accordance with W3C’s HTML specification (space is not allowed in name/id fields), the first is just plain annoying.

The ‘.’ character is very special in PHP, so it cannot be used for variable scoping like in VB or Java. The PHP engine will automaticly translate any ‘.’ into a ‘_’ to make it PHP-safe. Why did the ‘.’ become such a special character in PHP? Heaven knows… I hate it. Or have you ever come across a developer who thinks it’s intuitive to concatenate strings with ‘.’s? That’s just awful.


28. August, 2007

Outlook, IMAP, and winmail.dat

Filed under: Computers — frightanic @ 22:55

This blog now resides at It will be discontinued here…

I’m probably the 100 millionth Microsoft Outlook user who ran into the dreaded winmail.dat-issue while switching from POP3 to IMAP. I posted to the microsoft.public.outlook newsgroup for help, but got none.

In the meantime I found a rather straight forward solution to move all my Outlook email from a .pst/.ost file to the IMAP server. You just have to leave the Microsoft world:

  1. Install Mozilla Thunderbird
  2. Tell it to import the email from your current Outlook installation
  3. Create a new IMAP account in Thunderbird
  4. Move all the imported email to the IMAP server with Thunderbird
  5. I case you still want to switch back to Outlook – chances are that you won’t, since Outlook is a real bitch when it comes to IMAP support:
    1. Uninstall Thunderbird
    2. Create a new IMAP account in Outlook
    3. Delete your old POP3 account

iPod nano crashed

Filed under: Apple & Mac — frightanic @ 22:33

This blog now resides at It will be discontinued here…

This morning my iPod nano crashed when I selected ‘Shuffle songs’. Well, it didn’t crash as in “something collapses”, but it rather froze. None of the buttons were responsive and the display stayed fully lit. I read somewhere that this should help:

  1. Check that the hold switch is in the off position
  2. Hold down both the menu and then the middle button (in that order), for about 10 secs, this should reboot the iPod.

In my case, however, it didn’t take long until the battery was empty (display always on). Once I hooked it up again with my MacBook and the iPod finally had some power again it came back to life. Draining the battery completely does of course reset the device as well 😉

2. August, 2007

First steps with IBM/Rational Jazz

Filed under: Software Development — frightanic @ 01:43

This blog now resides at It will be discontinued here…

Erich Gamma gave a keynote at Jazoon ’07 presenting IBM/Rational Jazz (beta 1 Version). Jazz blew me away in an instant! Erich presented a platform with all the features I ever wanted for efficient, agile development.

In short, Jazz is like Eclipse with integrated repository, task planning, build engine. The first question of course is: why did they reinvent the wheel? Why does Jazz come with its own repository, task planner, build engine when there are good tools already available for that? Seems that true seamless integration was only possible if they started from scratch. Usually I’m allergic to vendor lock-in, but Jazz will make me throw my own principles over board.

So, I signed up for an account at, downloaded and installed Jazz, and started with the tutorial. Here’s my first impression:

  • server setup is peanuts, runs out of the box, platform support for Windows XP (???) and Red Hat Enterprise Linux, very good installation instruction
  • no setup needed at all for client, runs out of the box, Jabber setup seems dead easy (issue with Jazz/Jabber user mapping), very good installation instruction
  • I read the technical overview which starts with a nice motivation why one would/should use Jazz i.e. what its aims are
    • other IDEs (certainly Eclipse) can connect to the Jazz server and repository
    • server runs its services as WS with SOAP
    • there’s a client library that abstracts communication with server
    • server runs separate set of services for Web UI calls (AJAX!?)
    • a “Jazz Component” usually consist of two sets of plugins – one for the server and one for the client
    • Figure 4 showing platform components: yeah, yeah, yeah EXACTLY what I need
    • … stopped reading and went for the tutorial
  • wonderful integration of (iteration/milestone) planning and work items
    •   integration really is terrific, more powerful than for example Jira plugin for Eclipse
    •   BUT planning features not (yet) as powerful as Jira, which is just perfect for task planning and bug tracking
  • SCM (source control management) is totally new
    • private repository workspace per user!
    • if you check-in, the artifacts are only copied from the workspace to your private repository
    • only if you “deliver” to the stream (trunk or branch) they are made available to other team members
    • updating is called “accepting” change-sets from a stream
    • you also accept change-sets from other private repositories
    • this allows for light-weight collaboration of a group of developers without interfering with the rest of the team (general repository)
    • indirection might proove cumbersome in daily life…no, because check-in to your own repository can be configured to automatic
  • might take a while until folks will get used to all the new terms and their relationships: streams, components, workspaces; on the other hand, we’ve been dealing with that for years but in a more implict manner.
  • is the success of working with Jazz dependant on the “quality” of the people working with it? The tutorial guides you through all the basic steps and shows you how to do things right. What if you don’t associate a change set with a work item before delivering it to a stream? If you forget such steps, will you have to pay the price in that your setup becomes a mess after a while since you have many loose ends?
  • I see a danger of getting lost in the various views for pending changes, change-sets, work items, repository, etc. Each developer will have to find out which view he really needs, as you basically navigate from one to the other anyway.
  • the web UI is wonderful! It’s not just that it holds the same information as you would see in your Jazz client (i.e. Jazz Eclipse), but the information is presented with the same layout, fonts, colors, etc.
  • integrated build system
    • can be run locally from within Jazz if desired
    • nice wizard-based setup that generates Ant-script and properties
    • instant local test engine to run a build locally before having it run on the remote/shared Jazz build engine for the team
    • no predefined Maven(2) build setup provided, but hand-made templates can be used with the Jazz server
    • Jazz Ant tasks for repository communication (check-out, build artifact check-in)
    • it’s a big advantage when the build report can be linked with other editors in Eclipse. So, if there’s a stacktrace in build log, it is linked with the actual sources as if you’d see the stacktrace in own Eclipse console; same with JUnit tests
    • didn’t find information yet where the build reports can be found through the Jazz web interface

I want Jazz – for all my Java projects!

Blog at