Free! JavaScript! Literature!

Back in the days, one of my profs at the University always had some cool quotes at hand. One of his favourites was “There is no such thing as a free lunch”. While I basically agree (at least what food is concerned), you often find free gems in the internet, like a series of JavaScript related books:

They are available for free on github, however the author also sells them as e-book or even printed versions. I’m not sure if I would pay $17 for a 98 pages e-book which I can read for free, though… that sounds a bit too expensive in my opinion.

Microsoft drops support for ancient IE versions (finally)

I was very pleased, happy, yes – almost euphoric when I read that Microsoft plans to drop support for older IE versions:

While Windows Vista users will still get support for IE 9 (are there any Vista users out there anyway?), on Windows 7 only IE 11 will be supported. Aren’t that good news? After wasting billions of hours of webworkers precious livetime all over the world, Microsoft finally understood. A bit. I guess.

Debug shell scripts (well, kind of)

I have to look up this one frequently, because it is really helpful.

If you want to see what lines of a shell script are actually executed, place this line in your code:

set -x 

I usually do that after the funny thing called Shebang (#!/bin/bash – I can also never remember this one correctly), but surely you can place it right before the section where you expect the problem. If you have an idea where the problem might be, that is. If not, just start from the beginning.

Cool thing: the variables are replaced in the output, or as the man page puts it:

Print a trace of simple commands and their arguments after they are expanded and before they are executed

Expand your Windows Taskbar: Dual Monitor Taskbar

If you use multiple monitors with Windows, and ever wanted to have the $%#ยง! taskbar spread across all monitors, here’s your cure:

It can also be set up to let the Windows only appear on the taskbar of the actual screen. This is very handy.

It’s free, but it hasn’t been updated for a while. Better get your copy now.

Typo3 Extbase: Object not saved

Recently I stumbled upon a nasty problem with Typo3′s Extbase. The instance of an object was not updated, but as usual (for Flow/Extbase, that is) there were no exceptions, no log entries, no hints… Extbase just silently refused to save the object. Great!

After debugging through the code once more (my number 1 source of information regarding Extbase nowadays), I found that 1 of 80 columns of the related table was missing in the TCA array! How dare it! After adding it, everything was working as expected.

The core problem: when fetching the object from the repository, Extbase only populates those class members that are configured in the TCA (which in Extbase will be the DataMap later on). This also means that the class member I forgot in the TCA was missing! Then I used a Setter to set a the mentioned missing value, which added the class member.

Extbase uses spl_object_hash() to keep track of the objects during a request. Of course, due to the missing member, the existing object and the to be updated object had different hashes … got it? Yeah…

I really wished Extbase would communicate more with the developer. Just silently refusing to do stuff is not ok, in my opinion.