On the Quest for Better Screencasts

disabled speaker
I can't hear you


A few weeks ago someone complained about screencasts being (ab)used as replacement for documentation. I think I saw it somewhere over at reddit or dzone. Well, that rant wasn't all that interesting, really. However, it did point out two real issues: they are useless to the deaf and you lose the advantages of text (searchable, quick scanning etc.). I can't agree more with those bits - it's something that bothered me for ages.

The former can be addressed with subtitles. The latter, however, is more complicated than that. Solving that problem would also solve the issue that screencasts don't really reveal much of their content to search engines. If you put countless hours of work into your screencasts it would be pretty sad if your audience is unable to find them.

Interestingly subtitles are also the solution to this problem. Once they are written (or copy/pasted from the script) you have a complete transcript together with the timing information. With those two pieces (text and time) you can create a transcript where each line can be clicked to seek over to that position.

inkscapec.exe - A Command Line Wrapper for Win32

Inkscape 0.46 is finally out of the door and there are builds for all platforms (well, the important ones) available. Unfortunately I wasn't able to get this little executable into the Win32 builds. If you've read my previous posts you might have an idea what it's all about.

In a nutshell it's a tiny console application, which spawns Inkscape (with the specified arguments) and captures its stdout (default output) and stderr (default error output) streams and redirects it to this console. It also does the same with stdin for good measure. It's sole purpose is direct command line interaction (and determining which actions trigger GTK warnings). If you want to spawn Inkscape from other programs/scripts use inkscape.exe instead.

So, with this little application we get something that behaves like a console build of Inkscape, which means that we actually get some feedback if we're using some command line switches. All that for a mere 21kb. For comparison: a separate Inkscape build would have added another 12.5mb.


Just finished upgrading this site. The upgrade went well on my test server and fortunately it also went well here. There was some odd issue with phpMyAdmin's backup though. Everything is UTF-8, nevertheless the dump started with the following line:


Swedish? Well, "latin1" was already totally off, but that? Uhm.

Well, it was good for a laugh. Fortunately the dump itself was still UTF-8 encoded and everything was fine - after getting rid of that really weird line, that is.

UI-Patterns.com - Web User Interfaces Done Right

Whenever you're creating some user interfaces you'll often have to recreate/reinvent some concepts. Things you've seen a zillion times. Usually this isn't much of a problem, but sometimes you forget specific usability details, which can degenerate the user experience quite a bit.

Anders Toxboe's website UI-Patterns.com fills the gap by providing dozens of examples for common UI crafting tasks. Each one is illustrated and explained in detail. Additionally, everything is categorized which makes it easy to find related patterns.

Firefox: Control + Mouse Wheel is the Wrong Way Around (and how to fix it)

It's not that difficult, is it?

The diagram on the right illustrates how things everywhere are. Everywhere except Firefox, that is. For reasons unknown to me Firefox does the exact opposite of what would have been intuitive. I.e. increase the font size with up and decrease it with down. Firefox, however, does it the other way around.

I'm using Firefox for years and I still mix that up over and over again. Today was the first day I became aware of that though. After failing to increase the font size I stopped reading, looked at the mouse wheel, and wondered why it didn't increase the font size. I moved the mouse wheel up, didn't I?

StringBuilder vs StringBuffer vs String.concat - done right

How long is a piece of String?


Concatenation of Strings is very easy in Java - all you need is a '+'. It can't get any easier than that, right? Unfortunately there are a few pitfalls. One thing you should remember from your first Java lessons is a small albeit important detail: String objects are immutable. Once constructed they cannot be changed anymore.

Whenever you "change" the value of a String you create a new object and make that variable reference this new object. Appending a String to another existing one is the same kind of deal: a new String containing the stuff from both is created and the old one is dropped.

You might wonder why Strings are immutable in first place. There are two very compelling reasons for it:

  1. Immutable basic types makes things easier. If you pass a String to a function you can be sure that its value won't change.
  2. Security. With mutable Strings one could bypass security checks by changing the value right after the check. (Same thing as the first point, really.)

Live.com's Referrer Spam Has Left Me In Despair!

Sums It Up, Really

Back Then

A few months ago I noticed odd hits coming from live.com - hits from searches for very common words such as "about", "content", or "example". My initial thoughts were that live.com is just a bad search engine (and no one should ever use it). Searches for this kind of vague terms shouldn't yield a hit among the first 1000 result pages. It really shouldn't. Well, I decided to ignore it for the time being.

Some weeks later the number of hits from live.com increased - again with the same kind of nonsense queries. After a quick log check I knew they were all coming from the same IP range (65.55.165.*), which resolves to "livebot-65-55-165-*.search.live.com".

Sun's Da Vinci Machine Gains Traction

Sun's MLVM aka "The Da Vinci Machine" caters for the needs of many compiled and interpreted languages. Since Sun already gathered a lot of expertise with the JVM it's going to be a sure hit. Reliability and performance will be equally excellent without a doubt. And of course it will also run Java.

Yesterday during his keynote at Sun Tech Days James Gosling announced that they hired Ted Leung (a long-time Python developer from OSAF) and Frank Wierzbicki (the lead implementer of the Jython project). Both are going to work full-time on Jython - an implementation of Python written in 100% pure Java.

IE8 Won't Behave Like IE7 By Default

Holy sanity, Batman! They really did it.

Now we won't have to opt-out (out of the IE7 mode) and still get the most standards compliant rendering IE is capable of. Having things the way they used to be (or rather supposed to be) is a big relief for me. I'm really glad they didn't went ahead with their insane plan to ruin the web.

They kept the targeting mechanism tho. I still think it's stupid, but that's their problem not mine. ;)

GNU Source-highlight 2.9

Lorenzo Bettini just released version 2.9 of GNU Source-highlight. New in this version is the improved handling of C and highlighting of properties, KDE desktop and ini files, lsm, rpm spec, and haXe. Check out the news over at his blog for more details and some examples.

There are various other highlighting tools, which are based on GNU Source-highlight. SHJS is one of 'em and it's the one I'm using over here (via SHJSFilter). That's why I wrote the language definition for haXe. Lorenzo Bettini was very helpful and responsive in the process. If one of your favorite languages is missing, give it a try - it's actually quite easy to do.

Syndicate content