Category Archives: nerd

You have beautiful ize. [Weekly Head Voices #62]

I completely lack the genes that usually cause human males to have a thing for cars, but I do love Top Gear. This trailer for a fictional 60s detective show, made by Jeremy Clarkson, James May and Richard Hammond, encapsulates many of the reasons why:

Moustaches, guns, girls, cars and Hammond karate-chopping the porter at Playboy Club London for absolutely no reason whatsoever at 41 seconds can be nothing but 100% pure AWESOME.

It’s crazily busy at the moment, for a large part due to the extra load of having to teach and revamp, AT THE SAME TIME, the TU Delft’s postgraduate Data Visualization course. I’ve chucked out the written exam and the structured lab work, and exchanged it for paper reading, class discussion and four independent projects, inspired by positive experience with my Medical Visualization Ninja Training Course (third year in the running, Ninjas all over the place!), the postgraduate InfoVis course I gave at Stellenbosch and of course the teaching materials of esteemed colleagues at UBC, Harvard, Berkeley and Stanford. With a bit of luck, we will soon deliver a whole class of new-style DataVis Ninjas.

At a recent conference, I ran into an erudite half-British colleague from the far North, who in a few minutes almost managed to turn my world into rubble. You see, I’ve always proudly promoted the use of the -ise forms of certain words, such as visualise, realise, colonise and so forth, these being examples of British English. (Obviously, I adapt when American English is required.)

It turns out that, as is the case with life in general, it’s unfortunately not as simple as that.

It turns out that many of the -ise words are originally from the Greek or the Latin with “-ize” endings, and therefore the Oxford spelling prefers their use, although it accepts the “-ise” forms as well. On the other hand, the Cambridge University Press, as well as the mainstream media and most of the public in Britain and the former colonies, has a strong preference for the “-ise” forms. Certain other words like for example advertise, advise and surprise always take the “-ise” form in British English.

So now I’m faced with this conundrum. It would otherwise not have been such an issue, but the words “visualise” and “visualisation” come up quite often during my work day. Sticking to “-ise” is easier and still correct when in British English mode, but “-ize” for those few words of Greek  and Latin origin could perhaps be considered more correct, and has the great advantage of allowing me to standardise on “visualize” as the canonical form of that important term. However, then I would run the risk of confusing the “-ize” and the true “-ise” words in Oxford English, potentially leading to painful embarrassment at the many cocktail parties that I frequent.

So you see, the Universe is just full of mysteries. Another mystery that has plagued humankind for decades, is what would happen if Stephen Hawking and Albert Einstein got involved in a rap battle. Well humankind, wonder no more:

Ok kids, thank you for tuning in again. Have a great week, I hope to see you again soon!

New Samsung NP300V3A laptop is welcomed into the family!

It’s traditional around these parts that I write a post whenever I get to welcome a new computer into the family. In July of 2002 it was Dr. Evil, more a brick than a laptop, in May of 2004 it was my beloved 14″ HP NC6000 laptop, in July of 2006 I met my 15.4″ HP NC8430 (employer-supplied, thank you employer!), which in turn led to this Ubuntu-critical blog post of mine that attracted 50000 (yes, fifty thousand) readers over 2 days, in July of 2008 I splurged on a lovely quad core desktop machine, in September of 2009 I acquired an Asus 1005HA-H netbook, and in November of 2010 my employer got me a super-strong Dell Latitude E6410 laptop.

Today I welcomed the latest and probably prettiest laptop so far into the family:

Pretty Samsung NP300V3A-S01NL laptop!

Behold the Samsung NP300V3A-S01NL (Series 3). It has an absolutely gorgeous-to-type-on chiclet keyboard, a 13.3″ matte (!) display, NVIDIA GT520m graphics with Optimus, second-gen Core i5 2410m, 4G RAM and 500G disc, all for a terribly reasonable price, which is important, as this one is not employer-bought. A man needs a laptop like this for his top-secret personal biznizz, yes?

It’s running Windows Home Premium, so I have to use Truecrypt instead of EFS for encrypting my biznizz, which is stored mostly in my Dropbox pro account. The battery life is quite impressive probably due in part to Optimus switching. The drawback of this is that I probably won’t be putting Linux on here anytime soon. These days you can use both the graphics adapters in Linux, but both of them stay active all the time, so it kills the battery really quickly.

We learn at least two more things from this post:

  1. I do seem to exhibit a certain obsessive compulsive behaviour when it comes to keeping track of the arrival dates of the various computers in my life.
  2. When spring comes around, hide my credit card.

Schloss Dagstuhl: Computer Scientist Heaven

Somewhere in a remote but picturesque location in southern Germany, there’s a special castle called Schloss Dagstuhl. Every week, the castle fills up with a smallish group of Exceptionally Privileged Computer Scientists, who can only go there Because They Have Been Invited. Every week hosts a different field; In my case this was the Scientific Visualization seminar, one of the oldest participating groups. Everything has been setup just so to guarantee a perfect computer sciencey week for all guests. Because I’ve already been boring too many people with this story in person, I thought it prudent to write it up. Let’s hope it’s not a first (and second!) rule of Fight Club situation, in which case posting frequency over here might drop quite drastically.

Schloss Dagstuhl, picture courtesy of Wikipedia.

To begin with, the meals are exquisite, three times a day, every day. As we all know, the path to a computer scientist’s heart is through buying them new gadgets, but feeding them well is a great backup plan. Another very nice touch is the fact that seating is deliberately randomised, meaning that your introvert self is forced to sit at the table with a different group of guests during each lunch and dinner, in turn meaning that even if you try otherwise, you will probably get to have a good conversation with every one of the fifty attendees.

In the case of our seminar, the working day consists of presentations in blocks of three or four, followed by a longer block of discussion on all the preceding presentations, panel style. Attendees were all asked not just to give a standard scientific presentation, but to discuss open problems and future challenges in their respective sub-fields. I (and many others, judging by the aggregated post-meeting feedback) really enjoyed this format. The presentations made one think, and the discussion blocks were long enough to really get into the details. You can check out abstracts and slides on the seminar website.

After a full day of quite intensive discussion, there were breakout sessions during which four subgroups started working on the various chapters of a new Springer book that should appear sometime early in next year. The book will deal with multi-field, uncertainty, biomedical and scalable visualization, and it has the makings of being a keeper.

The other extremely important magic bit about this castle is the abundance of real coffee machines (ones that grind coffee beans for every cup), snack corners and, uhm, beer fridges. You can’t really go anywhere, as you’re in the middle of nowhere, so after dinner the conversations tend to continue till late in the night, conversant stamina enhanced by said coffee and beer facilities. Evil science plans were made, good old-fashioned deep conversations were had and the early next morning consequences were flatly ignored. I haven’t laughed quite so much in a long time, but that part of the programme prefers, and has the right, to remain completely silent.

If you ever get the invitation, don’t hesitate for a second to accept: You shall return an exhausted but terribly happy computer nerd.

I crushed the GSVideo problematic frame error!

Nerd warning: This post really belongs on my nerd blog VXLabs.com, but as this blog has a rich tradition of popular processing posts, I’m posting it here.

Debugging

GSVideo is a brilliant library that you can use in processing to capture live video, on Windows, Linux and OSX, and it’s a huge improvement over the built-in capturing support. Unfortunately, a number of us (including some of the 123 students we got to build augmented reality music instruments this September) have been running into a problematic frame error crash that meant captures didn’t last for very long before unceremoniously crashing the application. Error info and stack trace look something like the following (edited for brevity):

# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c342eee, pid=1564, tid=2052
#
# JRE version: 6.0_20-b02
# Java VM: Java HotSpot(TM) Client VM (16.3-b01 mixed mode windows-x86 )
# Problematic frame:
# C  [msvcr71.dll+0x2eee]
#
---------------  T H R E A D  ---------------

Current thread (0x18db7000):  JavaThread "Animation Thread" [_thread_in_native, id=2052, stack(0x1bfd0000,0x1c020000)]

Stack: [0x1bfd0000,0x1c020000],  sp=0x1c01f8a0,  free space=13e1c01f384k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [msvcr71.dll+0x2eee]
C  1
J  java.nio.Bits.copyToByteArray(JLjava/lang/Object;JJ)V
j  java.nio.DirectIntBufferU.get([III)Ljava/nio/IntBuffer;+126
j  java.nio.IntBuffer.get([I)Ljava/nio/IntBuffer;+5
j  codeanticode.gsvideo.GSCapture.read()V+24
j  CathetAR.draw()V+22

Read more about it on this forum thread.

In any case, today I spent some hours I don’t really have and finally managed to crush it. Turns out, and some of you will probably not be surprised, that it was a threading problem. The capture event handler invokeEvent() and the read() call were being interleaved, and the buffer they were using is also not thread-safe. Doh. Some synchronization here and there, and an extra capture buffer, now I can’t get it to crash anymore.

Get the patch here, and a patched GSVideo.jar here. Both of these are for the GSVideo 20110203 test version. If you can’t patch and build it yourself, just copy my GSVideo.jar over the GSVideo.jar in your unpacked GSVideo 20110203 plugin directory (sub-directory library). Update: See below, GSVideo 0.8 has been released and now contains my patch. Rather get the 0.8 download!

Leave me a comment if this helps!

Update on 2011-03-06

Andres Colubri, author of GSVideo, has refined and integrated my patch. The next GSVideo release (0.8 and newer) should have this fix.

Update on 2011-03-15

Andres has just released GSVideo 0.8, which integrates my fix and many other improvements. Go read his 0.8 release post!

Moar internets!

I hope to have time this weekend to report on significant and wonderful recent events, but until then, I wanted to share some less important but nonetheless good news with you. My house is more than 3km from the telephone exchange, so my ADSL connection could manage 5.4 Mbit/s down and 0.8 Mbit/s up on a good day, but during the evenings and on weekends, it would go completely wonky and generally unstable. Frustrating, to say the least.

Enter cable internet! I just linked up the shiny new cable modem today, and now finally feel like I’m really part of the information highway. Check it:

(that’s a ziggo all-in-1 plus package for those of you who’d like to know.)