A new design, at last

Oh yeah, it took some longer than I expected, but here it is: Helvensteijn.com v4!

As the version number suggests, this is the forth design of this web site since I started using WordPress almost three years ago. Personally, I think it looks somewhat more sophisticated than the previous ones. If you look at the screenshots below, you’ll see my point. ;)

I had the intention to redesign this site for a while already, when I stumbled upon an existing WordPress theme called Mystique. It has some nice touches, especially the checkerboard-over-rainbow thing. Obviously, my design is inspired by Mystique, but not based on it. I built it from the ground1 up, and gave my own swing on pretty much everything.

As I blogged about earlier, I no longer care about invalid CSS, so I didn’t hesitate to apply what I call progressive enhancements all over the place. Rounded corners, translucency, box and text shadows, that’s all CSS. That’s why this web site is best viewed in a modern browser, preferably one that’s not made by Microsoft. While I do support IE7 (which has some cosmetic issues I haven’t found a solution for yet) and IE8, the latest version of a more standards-compliant browser will give you the best experience. Folks using IE6 or even older are plain out of luck, they get served a very basic stylesheet, similar to what you would get if you were to print a page.

I also added some little extra’s for folks with JavaScript enabled. Not only the font size can be adjusted, you can pick a few different color schemes as well. It is also possible to turn off (and back on) animations2. Some people like them, others don’t, so I left the choice to you. These options can be found in the top right corner, no matter how far you’re scrolled down. Just hover your mouse over the little “preferences” box to bring them up. In addition, sidebar widgets are collapsible, which could be useful especially for the archives widget which is already quite long. All these preferences are saved in cookies.

I don’t think this design is complete or finished. My designs never are, especially when just launched. Numerous tweaks and enhancements will probably be added in the near future. Consider this design beta. :P

Last but not least, here are some screenshots of the previous designs to compare with:

a screen shot of the first design

First design

a screen shot of the second design

Second design

a screen shot of the third design

Third design

1. The ground being a “blank” theme made by Chris Coyier
2. Except for the lightbox animations; once initialized, they cannot be dynamically toggled

Color swap

I’m still thinking about a major redesign for this web site, but I just can’t seem to come up with the right idea. I’ve gone trough numerous mockups, but decided that it just wan’t good enough with each of them. I will think of something, eventually…

In the mean time, I totally had it with green. So I swapped it out for something dark reddish this time. Not really sure if I like it yet, so it might change to blue or some other exotic color in the near future.

Rekeningrijden: red onze privacy!

This post is in Dutch as it concerns Dutch law and politics.

In het bezit van een auto en gesteld op privacy? Lees voor de grap eens de informatie op redonzeprivacy.nl (en als je tijd en zin hebt, de achtergrondinformatie waar zij naar linken). Als je je daarna nog niet geroepen voelt om de petitie aldaar te ondertekenen, dan heb ik serieus met je te doen. Naïviteit is één ding, totaal blind zijn voor de potentiële gevaren van dit alles is iets heel anders.

Rekeningrijden: De overheid weet altijd waar u bent! Red onze privacy!

Kom op mensen, wordt het niet eens tijd dat de overheid gaat stoppen met die eindeloze verzamelwoede van ze? Dat de mogelijkheden tegenwoordig bestaan om alles van iedereen te weten en op te slaan, wil nog niet zeggen dat die ook daadwerkelijk gebruikt moeten worden. Ik kan ook vanavond nog met m’n auto bij de dichtstbijzijnde bank binnenrijden. Was het nochtans niet van plan.

GlimmerBlocker

Web ads, a controversial subject. While they’re useful for making things free (as in gratis) that would otherwise require payment, many people outright hate them. In general, I have nothing against them. Take Google AdSense for example, those things don’t bother me in the slightest (unless some page has them randomly and prominently littered throughout the main content). It’s these brightly colored, flashy, animated ads that do annoy me.

Until some time ago, I used Safari AdBlock to get rid of those annoying ads. But since Mac OS X Snow Leopard, Safari runs in 64 bits mode. Makes it a lot faster, and also more stable when a plugin crashes (Flash has that tendency sometimes). Safari AdBlock, however, only works when Safari is running in 32 bits mode. I’m not eager to make that sacrifice, so I went looking for something else.

That’s when I found GlimmerBlocker. It’s an open source ad blocker that’s implemented as a local proxy. I’ve been using it for about two weeks now, and it does it’s job quite well. Other than its expected behavior, one hardly notices it’s there.

Apart from ad blocking, GlimmerBlocker offers some bonus features, like throwing unrecognized URL’s (such as a search phrase) entered into the address bar at Google to perform a search, or keyword expansion (i.e. typing “gi something” in the address bar could initiate a Google Image search), that sort of stuff. It also allows pages to be altered arbitrarily, including JavaScript to traverse the DOM, before they’re sent to the browser, and it allows requests to be altered before they’re sent out to the server. It contains multiple filters by default, from not so aggressive to extremely aggressive (potentially breaking sites).

A drawback is that ads that slipped through the filters cannot be blocked directly from within the browser. Filters and rules are maintained from a System Preferences pane. A major advantage is that it works systemwide, for all applications, and even across the local network. When I have my iPhone connected to the local WiFi network, it too can and does use GlimmerBlocker running on my iMac.

After resorting to user CSS files for ad blocking temporarily (which doesn’t work very well), I’m happy that I now have a decent ad blocker again, one that doesn’t oppose any restrictions on the software or device using it. If it can connect through a proxy (I’ve never seen a networked device that can’t) it works.

Just some word-spreading, as the GlimmerBlocker web site asked me to do. ;)

Update (January 12th, 2010)

I did find that GlimmerBlocker uses quite a large amount of memory for what is ultimately merely a proxy server. Consumes about 85 MiB here.

On valid XHTML and CSS

Until now, I always made sure that the XHTML and CSS for this web site would be 100% valid. Writing valid XHTML and CSS is an important step in ensuring consistent behaviour amongst different platforms. Even though every platform has its own quirks and bugs, making sure your code is valid is a good way to start. Fixing problems on different platforms is far easier with a solid foundation.

There is, however, one thing about valid code, especially CSS, that is rather unfortunate. Insisting on valid code makes using some modern techniques impossible, because some of those techniques haven’t made it to official specs yet, so they will not validate. A good example of this is the border-radius property. It is bound to be included in CSS3, but since CSS3 is not even draft-status yet, that doesn’t help today’s projects.

Many modern browsers (IE and Opera being the notable exceptions) are, in fact, already aware of the technique, and it is available for use in those browsers, be it that in all cases I’m aware of, support still experimental. Usually the browser doesn’t support the border-radius property per se, but has a similar property in a “namespace” specific to the rendering engine, like -webkit-border-radius or -moz-border-radius. There are also some syntax differences between different browsers, like -webkit-border-top-left-radius vs -moz-border-radius-topleft. The same goes for more of those techniques that haven’t made it to spec yet. It’s a minor downside of using them, but no more than that.

So, using these techniques is interesting, because they suddenly make a lot of things that used to be fairly problematic or complex to implement, as simple and straightforward as setting a background image. If you’ve ever attempted to create a box with rounded corners that is fluid both horizontally and vertically in pure valid CSS, and then examined the border-radius property, you know exactly what I mean. ;-) They also tend to degrade gracefully (being completely ignored) on browsers that don’t support them. But on the other hand, using them will inevitably mean invalid CSS. The CSS spec doesn’t know about engine-specific properties and values (nor should it), so neither does a validator.

Now there are of course all kinds of nasty hacks so one can use these techniques, and still have the site as a whole validate, simply by hiding the non-standard stuff from validators. For instance, on this website, a small CSS file that applies border radius to some elements, among other things, is loaded through JavaScript, so a CSS validator will never see it. But of course, in the end, you’re only fooling yourself when resorting to such tricks.

That’s why I have been thinking about this for the new design for this site that I’m working on. I’ve decided that perfectly valid code is no longer a requirement for my future designs, nor will I claim to use valid code in them (no more “valid XHTML” and “valid CSS” links in the footer). The reason is simple, validation is a means, not a purpose in and of itself. In my reconsidered opinion, there’s nothing wrong with invalid code, as long as you know why it’s invalid, that there’s no practical way to achieve the same while maintaining 100% validity, and your code remains semantically correct.

Conclusion: In my upcoming designs, I’ll have no hesitation to use such engine-specific properties, or simply properties that haven’t made it to official spec yet (i.e. text-shadow). I will still run my stuff through a validator, but I will no longer care about errors or warnings merely caused by using these techniques. I know that they’re invalid, I just chose to use them anyway, secured with the knowledge that any browser that doesn’t understand any of it will simply ignore that piece.

P.S. This also means that when using a browser that doesn’t support a certain technique used for a minor aspect of the whole, you’ll be plain out of luck. :( As long as everything remains functional and only some visual niceties are lost, I won’t care. That’s something I decided a while ago, and is already visible in the current design of this web site. The rounded corners on the yellow notices, for instance, are accomplished using CSS, so IE and Opera will simply display them as plain rectangles. Firefox, Safari, Chrome or anything else Gecko or WebKit-based, though, will display a box with nicely rounded corners with a radius of 5 pixels.

I’m curious as to the opinion of other web developers on this topic. If you are one, please comment. ;-)

Looking for a new server distro

Since I acquired the Virtual Private Server (VPS) this web site is hosted by, it has run Debian Etch. I know that Lenny is available for over half a year now, but I never felt like upgrading. I do regularly update, though. Wouldn’t want to miss any security fixes. ;-)

So why didn’t I feel like upgrading? Well, ever since I got into managing my own servers, I always preferred Debian for its proven stability, especially in the “stable” branches. However, that stability comes with a price. More often than not, software packages are seriously outdated, especially in the older-than-current releases (Etch for instance). Upgrading to Lenny will probably upgrade most software to a somewhat more recent version, but it would probably still be lagging at least months behind in most cases.

Then, there’s the fact that I’ve become increasingly interested in using the newer features of software, especially those found in PHP 5.3. Playing with all that new stuff in my local testing environment is all fun and dandy, but soon or later, one might want to publish a creation or two. Having a server capable of running those creations helps. :-)

So, I’m currently looking for a new Linux distro, which is somewhat more up-to-date than Debian. Preferably something with a rolling release system. I want updates when they’re ready, not when a release schedule says it’s time. I also want a bare-bones base system and then add the desired packages myself. When installing Debian and selecting to install packages for a “web server”, it installs all sorts of stuff one would rarely need. Or simply tings one would rather choose a different program for. I just want a bare-bones system with only what’s needed to run and a package manager that handles dependencies for me.

I’ve been playing around with Arch Linux for some time, and I like it. It complies with all my wishes as mentioned above, it’s lean, it’s a rolling release system, and has an elegant package manager that does its job well. Configuration is a bit more labour intensive than Debian (less automated), but since setting up a server is mainly a one-time process, that’s not really a problem.

I’m not fixed on Arch. I’m also planning to try out some BSD variants, and perhaps some other Linux distros. Trying out and playing with new OS’s is a rather time consuming activity, though. Luckily, I have some more free time available lately. I’m not expecting to have this server running another OS in the next couple of weeks, but I should get around to it in the following month or three.

Then, as a final note, there’s also the new layout for this web site that I’m contemplating. I made a mockup recenly, but it only showed I had a lot of thinking things through ahead of me. :-P

Google Street View in my home town

This morning, I saw a Google Street View car driving around in my home town Oosterhout (map). I it was a black Ford Focus (if I’m not mistaking), and it had a German license plate from Hamburg (HH). Unfortunately, I was unable to take a photo of it. However, I might encounter it some more in the coming days, since I’m a taxi driver (so driving around a lot), and it’s perfect weather (dry, but not too sunny) for Street View photographing these few days. So I may get another chance.

I knew Google was busy in the Netherlands, they already have Street View for Amsterdam, Rotterdam and Groningen available. And they’re also photographing touristic attractions by bicycle right now. What I didn’t know is that they are actually photographing smaller municipalities. Oosterhout is relatively small, it has just over 50,000 inhabitants.

It’ll probably be a couple of months before the pictures are online, but it’d be nice to be able to see my home with Street View, or show it to others. I may even find myself (or my taxi anyway) in one of those pictures. :P

Update (November 12, 2009)

Apparently, Google hasn’t really done my home town, just the freeways and a couple of local streets. Either that, or they still have to process the photos. In any case, Breda, the nearest larger city, is now extensively covered in Street View. You can use the link above and zoom out a bit to see what’s covered in my neighborhood (drag out the little orange figure above the zoom bar; covered streets get a blue outline).

Update (March 12, 2010)

Google has been busy again. Pretty much whole of the Netherlands is now covered, including my home town. I can now virtually visit my own home. :)

Minor tweaks

I’ve made some minor tweaks to this site during the last few weeks.

The displaying of comments has improved, most notably the comment time, as opposed to only the date. I didn’t go as far as to implement threaded comments in my theme, because as they are now, with a fixed width, I don’t really see a viable way to clearly distinguish between levels. That will be something for an upcoming theme.

Notices and warnings now have a uniform appearance, with nicely rounded corners in browsers that support the CSS3 border-radius property. Same goes for form buttons, which had the default browser appearance until recently.

Other than that, there have been numerous small, less notable, improvements all over the place. As for the upcoming theme I mentioned above: don’t expect something anytime soon. It is currently no more than some vague ideas and sketches.

iPhone OS 3.0: internet tethering met Vodafone

This post is in Dutch as it concerns enabling iPhone internet tethering on the Dutch Vodafone network.

iPhone OS 3.0 is gisteren dan eindelijk losgelaten. Van de vele nieuwe functies, vind ik persoonlijk internet tethering één van de meest interessante. In Nederland staat T-Mobile dat niet toe op hun netwerk, maar Vodafone, waar ik een abonnement heb, wel. Dat wil zeggen, zolang je je aan de FUP houdt, zullen ze er niet moeilijk om doen. Je moet er alleen geen support op verwachten.

Nu is het wel zo dat tethering standaard is uitgeschakeld op de iPhone, en dus ook niet beschikbaar is in het menu. Dat is echter op te lossen door met Safari op de iPhone naar www.smartersoft.nl/tether/ te surfen (zakelijke abonnees: zie de toevoeging hieronder). Tik daar op Vodafone NL, dan wordt er een instellingenprofiel gedownload. Installeer die, en negeer daarbij de opmerking over het niet kunnen verifiëren. Laat de iPhone vervolgens opnieuw opstarten, en internet tethering is dan als het goed is beschikbaar onder Instellingen -> Algemeen -> Netwerk, en werkt ook naar behoren.

En, in tegenstelling tot vergelijkbare hacks bij T-Mobile, werkt MMS ook nog steeds na deze ingreep. Niet dat ik het gebruik (behalve om te testen of het nog werkte :P ) maar het is toch fijn om te weten. Nu nog visual voicemail, maar daarvoor moet Vodafone dat eerst eens gaan ondersteunen op hun netwerk.

Voor diegenen die nog op zoek zijn naar de netwerkinstellingen voor Vodafone, dit zijn ze voor mobiele data:

  • APN: live.vodafone.com (voor zakelijke abonnees: office.vodafone.nl)
  • Gebruikersnaam: vodafone
  • Wachtwoord: vodafone

En voor MMS zijn dit ze:

  • APN: live.vodafone.com (voor zakelijke abonnees: office.vodafone.nl)
  • Gebruikersnaam: vodafone
  • Wachtwoord: vodafone
  • MMSC: mmsc.mms.vodafone.nl:80
  • Mms-Proxy: 192.168.251.150:8799
  • Maximale mms-grootte: 300000
  • MMS UA Prof URL: leeg laten

Tot slot voor diegenen die de melding krijgen dat visual voicemail niet werkt als ze op de voicemail knop drukken: bel naar *5005*86*+31654501233# (er lijkt dan niets te gebeuren) en de knop zal voortaan gewoon voicemail bellen. Da’s beter dan die foutmelding die niks meedeelt dat we niet al wisten. ;)

Toevoeging voor zakelijke abonnees (21 juni 2009)

Voor zakelijke abonnees werkt bovenstaande niet, aangezien voor zakelijke abonnementen een ander toegangspunt (APN) wordt gebruikt. Ik heb daarom het instellingenprofiel zoals dat via bovenstaande link is te downloaden aangepast, zodat het nu gebruik maakt van het zakelijke APN. Het is te downloaden door op de iPhone naar tinyurl.com/voda-tether te surfen en op Vodafone NL (zakelijk) te tikken.

Met dank aan Chris voor het bevestigen dat dit werkt.

Update m.b.t. iPhone OS 3.1 (10 september 2009)

Helaas, met iPhone OS 3.1 is bovenstaande volkomen waardeloos geworden. Apple heeft bedacht om een digitale handtekening in het instellingenprofiel te verlangen alvorens tethering te activeren. :-( Als het belangrijk voor je is, raad ik aan om nog even te wachten met updaten. Vandaag of morgen vindt er ongetwijfeld wel weer iemand een manier om de boel aan de praat te krijgen. ;-)

Update m.b.t. iPhone OS 3.1.3 (3 februari 2010)

En nu werkt het ineens weer wel. Althans voor sommigen, ik hoor ook verhalen van mensen bij wie het niet werkt. Bij mij in ieder geval wel, ik moest alleen nog even aparte Internet Tethering instellingen opgeven in Instellingen -> Algemeen -> Netwerk -> Mobiele datanetwerk. Die instellingen zijn hetzelfde als voor Mobiele Data. Daarna verscheen de tethering optie weer op z’n oude plek.

Mocht het bij jou niet werken, dan schijnt het te helpen om het instellingenprofiel weer te verwijderen mocht die nog op je iPhone staan. Kan dat niet verifiëren, maar ik heb her en der gelezen dat het soms soelaas biedt.

Web site responsible for Google summary

Well, in the Netherlands, that is. This is what happened.

Klup.nl is a Dutch web site for people looking for a house. It apparently once posted some text about a car dealer named Zwartepoorte, and somewhere on the same page, another text about the bankruptcy of a totally different company. The two texts had nothing to do with each other, nor did it appear that way on the web site.

Google, in their everlasting effort to index everything, crawled the page with the mentioned texts, and generated an unfortunate summary for the page that suggested that the car dealer was bankrupt. This summary was shown when searching for “Zwartepoorte failliet” (failliet meaning bankrupt in Dutch). It appeared beneath the link to to said page on Klup.nl in the search results (you know, those grey summaries we all see every day). The summary goes as follows:

volledige naam: Zwartepoorte specialiteit BMW…Dit bedrijf is failliet verklaard, het is overgenomen door het motorhuis (…)

Literally translated: “full name: Zwartepoorte specialty BMW…This company has been declared bankrupt, it has been acquired by the motor house (…)”.

So far, there’s nothing wrong. Until John Zwartepoorte, CEO of the car dealer, used the query mentioned above on Google, and found the summary suggesting his company was bankrupt. So he sued Klup.nl, the site that originally posted both texts.

Weird, you think? Well, not according to the judge. He made a consideration between the right of free speech (don’t ask me what free speech has to do with Google botching up some text) and the interests of Zwartepoorte, and ruled 1 that Klup.nl was indeed responsible for Google’s summary.

That’s not all, though. Free speech is a constitutional right in the Netherlands, and it has always been very liberal, there weren’t many things one couldn’t say. Discrimination and slander are some of the few things that do not fall under free speech. This judge now added to that, than whenever Google pulls things out of context, the original text must be adjusted. Rather futile, I might add, because there’s no knowing what kind of summary Google will generate for the new text on its next crawl.

Well, luckily there’s the possibility of appeal, which the owner of Klup.nl is of course pursuing. But as it is, until the appeal has been treated in court, this verdict stands. Let’s just hope Google doesn’t generate any “unfortunate” summaries of my site… ;)

1. This page is in Dutch, here’s a translation by Google.

Preferences