Displaying posts in the This web site category.

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.

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. ;-)

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.

The web site has moved

I spent the last few hours copying everything from the old server to my new virtual machine. And a few minutes ago, I updated the DNS entry for the helvensteijn.com domain. It’ll take some time for the change to propagate across the internet, but soon, everybody should have this web site served by my new server. :)

If you see this post, that means that your DNS is up to date and you got this page from the new server.

And a new server as well

Just two days ago, I received my new iMac. And this night, my new virtual machine went online. It will be running this web site in the near not-too-distant future.

Right now, this site sits quite comfortably on a shared hosting account. However, shared hosting has its limits, and with a virtual machine (a so-called Virtual Private Server), I have root access so I can do with it whatever I want. And it comes with its own IP address, so I can finally set up secure (HTTPS) access to my web site with the certificate I already own.

I’ll be spending the next few weeks setting everything up to replace my existing hosting account. Apache, PHP and MySQL are all running but still need to be configured properly. Then, I will also need a mail and DNS server, neither of which I have experience with. So I’ll have to look into that as well.

My current hosting account won’t expire before April 2009, so I’m confident that I have everything set up by then. Somewhere between now and then, this web site will move to the new server.

The specs of the VM are more than enough to even run Windows XP smoothly. For a server however, that doesn’t seem like a very good idea to me. :P So just like my home server, it runs Debian Etch.

Some small tweaks

I’ve made a few small tweaks to my new design. There are always some things that don’t exactly work as planned, things still needing to be worked out, and things that simply came up along the way.

First of all, there was nothing to open full-size images in-page for thumbnails, they just behaved like normal links. I formerly used Lightbox for that, but was never really happy with it. Fiddled around somewhat with other implementations, and ended up using Shadowbox on this web site from now on.

Then, I recreated the Files section — which now makes use of Shadowbox for images and movies — and the font-size adjustment — which can now be found to the right of the main menu.

Also, since the fixes for Internet Explorer require JavaScript to be enabled anyway, I decided JavaScript could just as well handle the loading of said fixes. So I removed the conditional comment (nasty thing :twisted: ) from the HTML.

And lastly, I didn’t particularly like the gray background, but hadn’t decided yet what to do with it. As you can see, I have now.

Redesign

Yes, it’s finally finished (I think), so a few minutes ago, I took my new theme online, the third one in about 16 months. I call it TWAIN, or Theme Without An Interesting Name in full. If you own a scanner, you’ll probably know where I got my inspiration for that. ;)

So, besides the looks, what’s new? Well, if everything went as I hoped, nothing really. I already made the necessary changes two and a half weeks ago.

I have tested the design in Firefox 3, Opera 9.5, Safari 3 and Internet Explorer 7 and everything works there, except for some minor bugs with IE7 (complaining of JavaScript errors, but everything seems to work). Firefox 2, Opera 9.x and Safari 2 will probably work fine for the most part, but Internet Explorer 6 is explicitly not supported. If you’re still using that browser, you really, really ought to upgrade to at least IE7! Even better would be switching to a decent browser altogether — like one of those mentioned above. ;)

One more thing to mention is the width of the site, and thus the minimum required width of the browser window to prevent horizontal scroll bars. Until now, I always kept my designs confined to within 800 pixels, or I used a fluid design. But a fluid design is tougher to get right, especially in combination with rounded corners.

The statistics for this site tell me that practically nobody uses such low resolutions anymore. That might change a bit with these mini notebooks that are becoming increasingly popular lately, but still I decided to go a step further and based the layout on a browser window of at least 1024 pixels wide. That requirement is met by over 95% of the visitors to this site.

Well, I’d say try it out, and if you encounter any problems, you can leave a reply below, or contact me directly.

Clean WordPress installation

Last Monday, WordPress 2.6 was released. Because I grew more and more unhappy with my WordPress installation hanging together by plugins and hacks, I saw this release as a good moment to do a completely clean install.

I made a database dump and a WordPress export, dropped all tables in the database and removed all files in the WordPress directory after a backup of wp-content. Then, I made a fresh SVN checkout, imported the WordPress backup, and tweaked the settings.

So right now, this web site runs a bare naked WordPress installation, the only active plugin being Akismet.

I’ve decided not to use my old theme again for this installation (it also became quite hacky after a while). Statistics show a rapid decline in Internet Explorer 6 usage. Last month, its share was about 15.7%, this month up to yesterday that number has dropped to 13.0. So either this month or the next, I expect IE6’s share to tumble beneath 10%, at which point I no longer deem it important enough to warrant support.

Then, I can finally make some more complex designs for this web site without a large number of visitors being stuck with crippled pages. Think about some more advanced CSS2 (IE7 is not quite the yet, but at least a lot better than is predecessor) and alpha channel support in PNG images without resorting to nasty hacks. Until that time comes, I’ll just use the default WordPress theme. It is fairly decent, despite being massively overused.

There’s a few other things on my todo list. First one is installing the few plugins that I do want to use, second is moving this web site to a new webhost again, this time a virtual private server, so I have root access and can do whatever I want. It also comes with its own IP address, so I can take care of the third item on the list: mirror this website on a subdomain and secure it with my SSL/TLS certificate — impossible right now, because SSL/TLS and name based virtual hosting don’t mix (without a not widely supported extension).

I also took this opportunity to move my photos page elsewhere. While NextGEN is a very decent plugin, I wanted to keep this installation als lean and clean as possible. So I chose to move my photo albums to my MobileMe gallery. In my upcoming new theme, I will link there more visibly, right now there’s just a small link in the sidebar.

Another post, finally

So, what have I been up to lately?

Well, there’s a thing called real life that’s been keeping me busy. Obligations here, weekend trip there, you know how it goes… ;)

Then there’s the MetaD IRC network that I’ve set up with some other people. And I’ve been busy (well, sort of) with a new sort of web publishing software, called UniTextus. It’s still in the conceptual stage, no actual code has been written yet.

So, in all the fuzz, this web site has gotten little attention over the last few weeks. And I’m not sure how much time I’ll be able to put into it for the time to come. There’s one thing I have decided about this site: I want to get rid of WordPress. By now, this site hangs together by plugins and tweaks, which is not how I like to see it. I have yet to decide whether to wait for a reasonably stable version of UniTextus or to build something myself in the mean time. One thing is sure though: one of these days I’m going to drop support for my WordPress plugins. I do have an issue with one of them that I want to resolve before then, but don’t expect any more updates.

I’ll make an official announcement when the time comes. In the mean time, if you’re interested in taking over development for my plugins, go ahead and do so. They were released under a BSD license, so you may do with them as you please. ;)

Change font size

I’ve added a feature to this site for those with reduced visual acuity. One can now make the text on this site larger if so desired.

In the upper right corner, there are two A’s in a small box. Clicking on the larger one makes the text on this site larger. Clicking on the smaller one changes it back to normal. A decent browser with JavaScript support will even apply the change on the fly, without a page reload.

Of course, your preference will be remembered throughout this site, even across multiple visits. Your browser must accept cookies though.

Update (August 16th, 2008)

In the new theme, there’s a link to the right of the main menu which will increase or decrease the font size.