Thursday, 31 October 2013

Finding good employees is hard

We’ve been in a very busy hiring phase lately, looking for someone to work at our web development department. We got a lot of applications, a few good guys and many real weird ones. My favorite is the one who claims:
"…by learning several programming languages like HTML and CSS it is possible for me to work on a large spectrum of challenges and to fulfill them."
Another one was a constructor of metal planes who likes to work on our website. Well, what about building our own plane? Maybe that could speed up our deliveries to oversea… The third candidate was an artist (painter), worked as electrician, with cnc machines, than as a painter, technical drawer, studied architecture, worked at a gas station and in fact did also an educational training as an IT guy. We’re still hiring, if you know why HTML and CSS are no programming languages, you actually have a web background and ideally love to play and hear music, we want to talk to you! PS: Bring toilet paper.

Wednesday, 30 October 2013

how to kill internet explorer by using css

When we started our re-design process earlier in March 2013, we decided to change a few wordings on our webpage (e.g. changing "Thomann Cyberstore" to "Musikhaus Thomann" n stuff). To bypass our quite complicated deploy process for different language files, some developers in our team came to the great idea to transform the first letter of buttons to uppercase using css (which was a requested behaviour by our UX-designer). Later that day we had customers reporting crashes of their browser (Internet Explorer, obviously) and so we started investigating.

To cut a long story:
Using a CSS selector with the pseudo-class :first-letter and assigning the text-transform: uppercase; property really isn't a good idea, unless you care for, at least, a minor useable site for IE users (You can see an explanation/demo here). It somehow crashes all the lonely and unloved Internet Explorer's below and including version 9.

Fun fact: IE10 was the only version the responsible developer tested before going live. Success!

We also reported this bug to Microsoft, but I guess they're right; it has a limited impact, because transforming a first letter to uppercase by using CSS is simply a bad idea. Period.

memcached key limitations

We’ve had observed weird cache behaviour on our website, resulting in old or uncached page modules. Our page consists of different parts which are cached separately and it looked like some of them couldn’t write into our memcached cluster. This problem was not reproducible for a single page module, but appeared randomly on the whole page.

Our default behaviour for cache writing, is to disable the whole cache for the rest of the page if something went wrong. 

Memcached has some constraints about its key and the data saved inside.
Some of them are:

  • Keys are limited to max. 250 characters
  • Serialized data can’t exceed 1 MB 

After adding more and more debug messages, which produced gigabytes of log files, we found another (for us) new, relevant memcached key constraint:

  • You can’t use spaces in your cachename

That’s even specified in the memcached protocol document

But what’s not specified in the document is, that memcached keys can only contain ASCII characters

After fixing these issues our cache hit rate went up again.