Plus is valid in e-mail addresses, dammit!

I hate sites that have absolutely broken validation of fields. Whether they require you to enter your credit card number without spaces (because stripping spaces is SO HARD!), expect dates in the brokenest format ever (MM/DD/YYYY, cue the angry Amurricans) without telling you, or disallow special characters in the password(!)… but my favorite would have to be those sites that throw an unfriendly “Your e-mail address is invalid” at you when you enter an address containing a + sign.

Dear site admins, validator programmers, and whatnot: In most cases, I don’t even want to register for your site in the first place, so if you’re going to force me, at least don’t make it harder than necessary! Read the damn RfC! If you block plus signs in e-mail addresses, that means that instead of just using one mailbox and any number of plussed aliased, I have to log in to my server, edit the virtusertable, rebuild it, and reload sendmail.

Unless your page is really valuable for me, chances are that I won’t bother.

Canon EOS 40D officially announced

Canon today announced the EOS 40D, successor to the EOS 30D. It features the new DIGIC III processor, 6.5 frames per second, a larger and brighter viewfinder, live view with autofocus(!), buffer for 75 JPEGs/17 RAWs, weather-proofing, 1D-style menus (with “My Menu”), a new AF system, dedicated AF button, automatic dust-removal and a 10.1 megapixel sensor. Also, the 40D doesn’t just shut down and lose all unsaved data when the card compartment is opened. The cam will come to the European market in October.

Maybe I’m just a little annoyed since my 30D is still rather new, but I think this cam is too good for this segment. Especially with weather-proofing and live view, this gets uncomfortably close to the 1D-line features. Comparing price tags and looking at the problems that still affect the 1DmkIII, this might be a convincing alternative for those now holding out or saving for a 1D.

On hating computers

Lately I found myself cussing at computers more than usual. Actually, not only computers, but almost all technology I encounter in my everyday life just annoys me very quickly now. Now, for a total geek like me, that’s a very strange thing to discover. I used to really like computers, programming, all the great things you could do with them… and now it seems more like a chore, something I have to do, but if I had a choice, wouldn’t. Even just using the computer, for example to sort through my photos is almost painful since it’s so slow and feels like everything is just getting in my way all the time.

Photography itself hasn’t grown stale or annoying yet. It’s a really stressful job at times, and it’s by far not as easy as it might seem, but it’s good stress. I like doing it, I believe I’m doing a good job with it, I’m getting to know people and people like my photos. It gives me a feeling of achievement.

On the other hand, programming has lately been either for myself (to fix stupid bugs or get missing features), or largely invisible and/or unsuccessful (work). It’s like continually running against a wall, without any personal gain or growth, or worse, just a whole lot of negativity wearing me down. I barely had any time to work on the chosen projects, which makes me feel even worse for kinda, sorta, abandoning them for so long.

Add to that the other blows in my personal life in the last few months, which I won’t detail here, and the result is not very pretty.

I need to reevalute my life.

All kind words and good tips are duly appreciated.

About Cake (Cakebakers, please read)

You may or may not know that I’m terribly busy at work at the moment, rewriting a large application that has its roots in PHP3 (oh yeah) and is a crazy mix of HTML and PHP. Things like ‘abstraction’, ‘layers’, or even just ‘separating code and presentation’ are completely alien concepts there.

So I decided to do the rewrite using one of the many PHP frameworks – CodeIgniter, CakePHP, Symfony, etc. – and decided on CakePHP (and, maybe more important, against Symfony). Doing the ‘reading’ parts of the app was simple enough, despite me being a complete newbie to CakePHP and using the 1.2 alpha versions which is mostly undocumented. But the actual data input and saving part, I hit a wall. Hard.

The problem I have is this (models are in bold):

To enter a Venue, you first select a Location. Then you add the Venue data, which is a lot of fields. Then, you add 0..n Images (which you upload just then). Then, 0..n Organs (as in music), either from a list of existing ones, or you can add one on the fly. Then, optionally, Ensembles (dito); and then you finally get to review your data and finalize the Transaction. All this should be on a wizard-like form, with multiple steps/pages.

Editing a venue is pretty much the same, except the data is already there. So the record and all associated records get copied as needed, with a reference to the original.

Then, the admin can either approve your Transaction and merge your changes into the DB, or deny it and delete the Transaction and all associated rows.

The problems start with getting everything wizard-like. There is a FormWizard component, but that seems to randomly overwrite or clear $this->data. I don’t know what to do with my data when I hit the ‘add 0..n images’ step, or when adding organs or ensembles. I have no clue what “the Cake way” would be here, since all examples I can find are rather simplistic with only a few fields, all on one page, and at most one relation (which always fits a select box).

Can any cake baker out there help me get back on track before I lose my mind?

Tablet PC/Convertible Laptop/Notebook?

Dear Lazyweb,

I need a new Laptop, preferably a Convertible or Tablet PC. Minimum requirements are:

  • long battery time (4h+, ideally ~8h (with additional battery if neccessary))
  • >= 1GB RAM
  • >= 80GB harddisk, 120GB preferred (or if the laptop is cheap, I’ll just upgrade it myself)
  • display > XGA (1024×768), old-school, not one of those mirrors (ew)

I’m thinking these things should not cost more than €1200, but the real world is strongly disagreeing. I will not pay more than €2000, and would prefer a price of €1500 or less. It’s a laptop with a display you can turn, fer chrissakes!

Do you have recommendations?

Wir können alles außer Internet

oder “Die Medienkompetenz der Universität des Saarlandes”.

Früher war alles besser. Die Universitäten waren Vorreiter bei der Vernetzung, Studenten wollten die Welt verändern, und Spam kam in Briefform.

Heute versendet die Universität Massenmails mit Links auf PDF-Dokumente.

Noch davor benannte sich die Universität Saarbrücken in die Universität des Saarlandes um, und entsprechend musste man dann auch den Domainnamen uni-sb.de durch uni-saarland.de ersetzen. Jetzt möchte man als erfahrener Systemadministrator denken – kein Problem, mod_rewrite rein, R=301 auf die neue URL, alte Domain behalten (wegen alter Links), alles wunderbar. Alle alten Links funktionieren, die Suchmaschinen updaten ihre Einträge, und wer schreibfaul ist, kann sb statt saarland schreiben. Die Universität Saarbrücken des Saarlandes hingegen, nun ja. Bis vor kurzem bekam man bei jedem Zugriff über uni-sb.de eine Seite gezeigt, die dem Besucher sagte, dass die Domain nun uni-saarland.de laute, und man doch bitte die URL ändern möge oder sich auf der neuen Domain durchklicken. (Mittlerweile wird jeder Zugriff auf uni-sb.de strikt auf uni-saarland.de/ umgeleitet.)

Und heute fällt mir auf, dass man die Webseiten der Universitas Saraviensis nur erreichen kann, wenn man schön das unnötige, veraltete, unsinnige ‘www.’ mit eingibt, denn:

uni-saarland.de.        86400   IN      A       134.96.7.4
www.uni-saarland.de.    86400   IN      CNAME   webhost00.rz.uni-saarland.de.
webhost00.rz.uni-saarland.de. 86400 IN  A       134.96.7.73

Freu ich mich jetzt, dass die Uni überhaupt sowas wie Internet hat?

Google Summer of Code 2007

I will be participating in this year’s Summer of Code, working on WordPress internationalization. You can read my full proposal online. Of over 6,000 applications, about 900 were accepted. WordPress could only accept 10 out of about 90 applications. It’s bound to be an interesting summer with working on WordPress and Habari at the same time, plus $work, photography, and ‘real’ life.

The frenzy officially starts on May 28th, but I’ll likely start working on things earlier — as soon as I have some time at $work, that is — since the task is not quite as easy as it might appear. A big part of the trouble stems from the fact that WordPress uses third-party components which are maintained by their respective project groups, and, in the case of TinyMCE, aren’t even PHP, but JavaScript. The other problem is translating basically static texts like the README file, but also plugin and theme descriptions. Obviously, we can’t expect every plugin and theme author to speak several languages, and since metadata is stored in a plaintext blob, we can’t use gettext or similar tools (aside from the fact that we can hardly ship a giant gettext mo containing all translations for all known plugins).

And I haven’t even begun to talk about cultural localization…

THE ALGORITHM KILLED JEEVES