is online.

Lasse is glad to announce the completion of the latest version of In the following, he will discuss some of the design decisions …

Joy, Joy,

the relaunch of my website is done. I will present my works here. I think the website is pretty much self-explanatory, so I will focus more the not so obvious things.

I decided to let the archive be empty at the beginning. So, dont't be surprised. That's because I want to take some time to process the projects appropriately. The page will evolve in a natural manner. After all a designer identifies himself with the documentation of his works—thus his portfolio.

There will be no comment feature. But I'm always excited about your emails and if its inevitable I'll let myself be carried away to fix it. The concern here is the presentation of my work and not the discussion about it. As well I don't want to moderate, what would be unavoidable with comments.

teaser for numero uno, a bitmap font by


As a birthday present of, as next action I'll publish the pixel font of the graphicore logo alongside with the code that built it, that I built, under a free license. The font now has ca. 220 glyphs and covers our western languages. The code is rather for tinkerers. Coming back pays off!

What's under the hood?

I have to answer this here. Because I built the Content Management System myself. Those who aren't up for the technics may leave now.

Zend Framework LogoDojo Logo

doctrine LogoHTMLPurifier Logo

Markup validates here as XHTML 1.0 Strict. That's important to me. Granted, the content-type is text/html, but I have still the advantage of a strict syntax and its possible for me to use other XML tools on my output. An example in this case is the Atom-Feed.


Progressive enhancement: I insisted on using some of the new CSS3 properties. Including gradients, pseudo elements, and naturally @font-fontface. It was important to me that the display works even in browsers that don't support these features. The better the browser the better the display, quite simple.

With 1000px the page is rather wide relative to our screen technology. In addition all contents load among one another and are therefore visible at the same time and directly compareable to each other. To keep the coherency of the layout I set up both a layout grid as well as a baseline grid. The execution is rather primitive compared to the available CSS-Frameworks. But in exchange it fits into 130 generous lines and meets my requirements. The baselinegrid works in all modern browsers ;)

Here it is: the element of the baselinegrid the grid is a 24px high and 99px wide image that gets repeated over and over again. When I wrote the CSS I had the image occasionally in the background to check against it. click here to see it in action(JavaScript must be enabled).


I implemented the concept of unobtrusive JavaScript. That means the page works without JavaScript. However, if JavaScript is available the entertainment factor rises.

For the dynamic behavior of the website with JavaScript I used the Dojo Toolkit for the first time. The handling of Dojo is similarly sleek as the handling of jQuery. I'm very satisfied with Dojo.

graphicore cache

One thing I'm particularly proud of is my way of caching Ajax-Requests. A request gets always loaded in between the previous request and the main-menu. Before a request is made, if the result is loaded already, the page directly jumps to that location—the content is not loaded again.
If nobody made that before, I'd like to call it "graphicore cache" ;)


I will make it shorter than the denseness of topic propably demands. But this post must come to an end, too. I built the backend using Zend Framework, Doctrine ORM and HTMLPurifier. Besides that one and a half Libraries that I cobbled together are employed.


One reason for me to build the backend myself was the rather bad support of existing solutions for internationalization. It's possible for me to localize all areas of the website and so I did.

Monday, July 12, 2010 3:23:56 AM Europe/Berlin