About my blog

I am multithreaded, and sometimes the threads get tangled.


a Studiolab production.


food design course at TUDelft
I blog in Italian
I have a LinkedIn profile
my lab is Studiolab!
I love Jasper van Kuijk's product usability weblog

the wind I am enjoying


De meningen ge-uit door medewerkers en studenten van de TU Delft en de commentaren die zijn gegeven reflecteren niet perse de mening(en) van de TU Delft. De TU Delft is dan ook niet verantwoordelijk voor de inhoud van hetgeen op de TU Delft weblogs zichtbaar is. Wel vindt de TU Delft het belangrijk - en ook waarde toevoegend - dat medewerkers en studenten op deze, door de TU Delft gefaciliteerde, omgeving hun mening kunnen geven.

Posted in 2010

“Surrogates” (2009) – on neophobia and rooting for the bad guys

Surrogates is a 2009 movie featuring Bruce Willis, Rosamund Pike, Ving Rhames and James Cromwell, one of my favourite actors that specializes in truly evil, creepy bad guys in position of power. Surrogates is set in a slightly science fiction future where robot bodies are common. The robots are actually telerobots controlled by teleoperators from their homes.


Bruce Willis does not like the future, so he is going to mess it up for everybody.


So all these robot bodies, some very beautiful, some very utilitiarian and machine-like, roam the streets and do stuff, like working at a beauty saloon or fighting wars. And their operators meanwhile are in vaguely creepy, red-lit couches with scary devices on their eyes, managing the remote body. Some people work from home, others from giant offices.Our protagonist is a cop, a profession in which the use of a surrogate body is really a good idea. The protagonist being Bruce Willis, you can bet that his surrogate looks exactly like him plus a stupid blond wig.

The movie has a plot, in the way a sea cucumber has a nervous system. It is tiny and underdeveloped, but it is good enough to manage the sea cucumber’s affair in a pretty decent way. Nobody has ever complained, at any rate. I will not hypothetically spoil the tiny plot for you, although you will be able to deduce all of it about 10 minutes into the movie.


At the beginning of the movie we are told that surrogates have dropped the crime rate by 99% and that basically the world has turned into the land of milk and honey. You would say dude, this is great, we have a good economy, no crime, go surrogates go! But no, this would place you in the Bad Guys camp.

Bruce Willis has some sort of growing objection to the whole surrogate idea. It has mostly to do with him feeling estranged from his wife, and she refusing to let him see her "real" body, because she thinks that with time she has become hideous. And you know what? She is quite right. Her surrogate looks like Rosamund Pike in full battle paint. In the first scene where the real woman is visible, she looks like she has been sleeping wrapped in her own hair under a sofa for ten years. If I were in that state, I would not want to meet mr. mature male hotness Bruce Willis.


this is what Madame Willis looks like, every day, all day. Would you have any complaints with it? I mean, seriously. And her friends are all good looking too. 


Bruce Willis (ignore his character’s name in the movie: you will think of him all the time as Bruce Willis anyway) does what he does in every movie, that is he gets hurt in the face, bleeds, sweats and gets smeared with one thousand different kinds of dirt, most of them greasy and black. His surrogate gets destroyed by hairy, Mad Max like people who reject surrogates because they have no souls and are an abomination unto God. The Mad Maxers live in scary reservations made mostly of ripped-up containers and run their parallel economy, based on holding demonstrations and trading tomatoes among themselves. Their personal igene also leaves something to be desired, as does their fashion sense.

I was not able to find anywere in the Bible any prohibition about teleoperated robots, or any claim that teleloperated robots are supposed to have souls.

At any rate, Bruce has a sort of a very subtle conflict there (this movie is all about extreme subtlety, shades of motion, delicately calibrated grays and Bruce Willis blowing shit up with cool gadgets) because as a cop and a surrogate user he is supposed to be against the hairy and scary Mad Max people, but as a guy that hates surrogates because he would like to get sweaty and greasy with the real body of his wife, indeed he is slightly in favor of the Mad Maxers and their weird, hairy prophet (Ving Rhames, but I don’t need to say that to you). So we have a conflicted protagonist, something that already goes beyond a sea cucumber understanding.


The wig is supposed to make the Willis’ body much younger and fresher. Instead it makes him look like an extra in a Swedish tv serial. A low budget one. On the other hand, iceblock tough cop Radha Mitchell wears her surrogate like a Chanel.


The movie ends up with a crazy nutjob trying to destroy all the robots and their operators. This is partially prevented by The Willis, who manages to save the human operators but lets a crazy powerful virus thing spread around the network and permanently fry all the robots. The world comes to a standstill, as all the robots picturesquely flop to the ground, and the real people emerge from thir houses looking like shit (I hope I am allowed to use the word shit in a TUDelft blog post). So here they are, in the street, wearing dressing gowns and slippers, smelling the air and looking at the sky and each other, and probably having great street community parties (but this is only implied).

This leaves a gigantic plothole that manages to make Bruce Willis’ character look much worse than the baddies. If the whole world is mostly operated by surrogates, and all these surrogates suddenly… cease to be, I think that there will be a bit more problems than a few low-speed car crashes. Like ships colliding with each other, airplanes falling out of the sky, power stations and factories blowing up… Flash Forward got this quite right: disasters and devastation with just a few minutes of blackout. So there would be quite a few dead instantly, and then I can predict a few million indirect deaths as the world’s economy first crashes and then slowly picks up again while all the slug people come out of their houses and get, I don’t know, terrible sunburn. 

And all this why? The only reason is that Bruce Willis has a problem with his wife. So he decides to cause quite a lot of disaster and devastation to a world that -clearly- has decided that they actually like using surrogates. But once the Willis has decided, there is no turning back or offering alternate views.

The true cherry on the cake is the Ving Rhames character, the Prophet. The Prophet characterization was not, shall we say, very light handed.


I thought this gesture was reserved for Mafia dons when they say "come to me, my son". No hairspray has been spared to achieve this level of dreadness. Check out the rings too.


A perfect example of the trope called the Magical Negro, Rhames prophetically surrounds himself with large, gun-happy idiotic bodyguards. He dies at some time, but his valiant sacrifice fails to provide the "Wow, dude!" plot reversal moment that the writer was probably hoping for.

The problem with this movie is that we are never really told what drives this whole chain of events, and what exactly is so terrible and inhuman and overall super-unbearably-BAD about using surrogates. It is not like they are planning to take over or develop autonomy. Moreover, the fact that the anti-surrogate point of view is championed by fundamentalist technophobic muddy idiots does not help to make it more respectable or attractive (actual plot line, crazy fully human lady with shotgun: "You are an abomination! KABOOM."). We even get a batty old scientist that fails to make a point about why surrogates are so dehumanizing. They just are.

Basically, it is a neophobic movie where the new is bad because it is bad. Perhaps this is entirely appropriate for our neophobic years, were anything can happen and anything can be done, as long as it is done in a virtual world or online.  This is why when watching this movie I was rooting hard for the bad guys. I also found the scene where all the perfect robod bodies fall to the ground never to rise again unbelievably sad. It’s back to the old meatbag for you all! Bruce Willis has decided for you!


Arduino pointers and WoOz




Just a few pointers to useful posts and pages about Arduino activities that my students could find interesting:

  • Arduino and the I2C bus, an easy tutorial from Littlebirdelectronics. Make your Arduino talk with other Arduinos and thousands of electronic parts over this simple two-wires bus. Slower than serial but much lighter.
  • First steps into Arduino, from an experimenter called Will Eatherton
  • Reading a gas meter with Arduino, interesting and adaptable to reading other types of meters (electricity, for example) or measuring the movement of moving parts in genera. Uses also the Ethernet shield.
  • Building an Arduino based laser game, from the IBM developerWorks. Superbly detailed and clear, explains how to transmit small pieces of data over a laser beam (and it would also work with visible light).
  • Using interrupts to measure time, to go beyond what pulseIn can do for you (this is an Arduino board discussion thread, read and use with caution)

In other news, we got a fine example of the Wizard of Oz technique at the Interactive Environments minor:

The MindHive team was busy controlling two interactive blocks with RGB leds. Two team members manipulate three sliders each, and another team mate does the talking and demoing. Click on the picture to get it in full resolution (3.5 Megs). Read all about it in their blog post.

Pointers for photography

Today I gave a little presentation inside the Computer Visualization class, run by Daniel Saakes. During the talk, I mentioned a few websites with very useful material. Here they are:

  • photo.net is my standard pointer for introduction to photo technique. A very large site with a vibrant community and many useful tutorials
  • Computational Camera and Photography MIT Opencourseware site centered on the near future of digital photography. Unusual techniques to make you rethink photography.
  • Digital Photography from the School of Computer Science at Stanford. Includes applets to simulate photographic phenomena like depth of field. Very good in depth explanations of colorspaces and the gamma function.
  • dpreview.com Technical reviews of photographic equipment. If you want to see diffraction demonstrated, take a look at any of their lens tests and watch what happens when you stop down the lens.
  • Strobist will teach you how to use strobes and, more generally, how to think about light in photography. If you are thinking "I hate strobes", this is the site for you. If you love existing light photography, this is the site for you. 

Why not include the two extreme examples I showed today? So, extreme depth of field and extremely shallow depth of field:


This was shot in Overschie this morning with a 10.5mm lens stopped down at f5.6, which guarantees that pretty much everything you see is in focus.

this, on the other hand, was shot with a 100mm lens at f2.8 from about one meter of distance. The Depth of Field applet you can find on the Stanford site lets you compute that the DOF was just a few centimeters. You can tell by the fact that the eyebrows are sharp but the eyeglasses frames are not, nor is the ear.

If you click on the photographs, you can download a higher-but-still-reasonable resolution version where the DOF difference will be even more apparent. Many thanks to super-photographer Bruko for reminding me of Strobist.

DfI Thursday

It was great fun to get the Interaction Photosafari in motion at the DfI Thursday. The Photosafari is a part of a week of introduction that we will be doing every six months, to introduce new students to the wonders of DfI and make sure that the different "generation" of students know each others.

Participants here were asked to proudly show their cameras and take a photograph of what they were seeing. Of course, I couldn’t resist photographing back… You can also download a higher resolution version

Lua, a programming language that could be your new friend.

The programming language Lua (moon, in Portuguese) looks very interesting. It is small, contemporary and could be the complete solution for interactive prototyping, since it runs on single board computers, PC (Win, Mac, Linux) and servers. It can be a scripting language for Apache,  but it also hides inside Adobe Lightroom and vlc, the best videoplayer in the universe. In sort, it is interesting to people like me. If you find Lua interesting too, perhaps you are people like me, which means that we should never meet it or we risk boring each other to death.

At any rate, here is a small taste of Lua as a quick and dirty Fibonacci function:

function fib(i)
 if (i==1 or i==0)
  then return (i)
  return fib(i-1) + fib(i-2)

Of course, one would use a smarter form of recursion in order not to kill your computer as soon as you try printing fib(100). As you can tell from this brief snippet, Lua is dynamically typed and the end of a block is indicated by the keyword end, not by curly brackets (as in C) or fancy indentation (as in Python). The sprinkling of ends feels a bit Pascal-like.

The name of nothing

Amusingly, when you access an undefined variable you don’t get an error but the value nil. In the following code you find some educational language bits: text prefixed with a > sign was typed at the interactive interpreter.

 this very brief chat with Lua tells us that

  1. accessing an undefined variable produces a value of nil. Your program does not die instantly, but you do get a warning. This sort of implicit nil looks like a good thing, but it is probably a veritable quarry of trouble the moment you start playing around with it. And I kind of like the difference between a never-declared variable (perhaps because of a typo) and a variable that has been declared and happens to contain nil (or the local equivalent in the language at hand). But this is just me.
  2. this language does not care about whitespace.
  3. first-class functions, again typical of dynamic languages. You can also get them in Python and LISP. The moment you understand that a function is nothing magical but just another data type, you feel the light of understanding shine on your brow. No, C programmer: your pointers to functions are not first-class functions. Go back to scratching your silicon.
  4. the unary = operator is used for printing a value. Bizarre, but still within the limits of reason.
  5. even if I declared the function to take no arguments, I can call it with arguments and nothing happens.

 so many little details! Lua also has iterators, which is nice, and some really strange constructs for managing return values from function. Functions can return lists of values, which do not correspond to any other data type, which means that you need special syntax for converting them to reasonable value. For example, if foo returns a list of value, but you want only the first value returned by foo(4), you call (foo(4)). Or if you want to convert a list-of-return-variables into a table, you call {foo(4)}. Python too has not-so-wonderful syntax (I find it difficult to remember) around argument lists. 

Different, not equal

If you are a Pythonista or a C programmer, you are going to hate this. The symbol for "different" is ~= (tilde equal), not != (bang equal). Notice that if you fall into this very easy mistake, Lua outputs a useless error message. Be on the lookout.


Scope is where you go whoo, this is wacky. All variables declared inside a function are global. If you are a C programmer, your head just exploded, and what is left of your visual system is trying to turn that global into local. But no. So, supposing you have defined this trivial function:

function foo(x)

this is what happens in the interpreter:

> =z
variable ‘z’ is not declared
> foo(3)
> = z,b
> =x
variable ‘x’ is not declared

at least we don’t get x! The formal paramaters of a function do not count as variables declared inside it. There is still something sacred in the world. Notice that there is also a local keyword, and that local variable access goes faster than global variable access.

Nice stuff

We get coroutines. A classic computer science concept that can be used to write generators, a classic computer science concept that can be used to write better programs. 

We get metamethods, stored inside metatables (a word that looks funnier and funnier as you stare at it), and they are a bit like operator overloading. They can also be used to build some object oriented machinery, like classes and inheritiance. Lua also has lexical scoping, which will get all the computer science weenies excited since it is the road to closures.

Finally, we also get the bizarrely called function: if you call a function that does not exist on a table, lua looks for the function in the table’s metatable and calls it. In other words: we can build really reliable code that protects itself against programming mistakes. And we can really go crazy with metaprogramming. Examples here.


YouTube Preview Image


As you can see, there is a lot of emotion riding on programming languages, it is not just me.


PS: apologies for having to write with a tiny little picture, but I am not able to turn off the autoformatter, and lines and lines of underlined text might turn off even the most motivated reader.

on wondering what you are doing there

This is from Claude Lévi-Strauss "Tristes tropiques", p. 450 of the 1955 Plon edition. The translation and the bold text are mine:

One wonders, more than anything: what did I come here to do? With what hope? To what end? What is, after all, an etnographic research? Is it perhaps the normal activity of a profession like all others, with the one difference that the office or the lab are separated from the home by some thousand kilometers? Or is it the consequence of a more radical choice, implying a questioning of the system in which one was born and grew up? I had left France five years before, I had neglected my university career, whose steps my wiser classmates had been busily climbing; the ones that, like I used to have, had an inclination towards politics had by now been made members of the parlament, and soon probably they would be ministers. I, meanwhile, running around in deserts, pursuing the rubbish of humanity. Who or what, then, had pushed me to scramble the normal flow of my life? Was it a trick, a smart detour that would allow me to re-enter my career with superior, and recognized, abilities and advantages? Or did my decision express a deep incompatibility towards my own social group, a group from which, in any case, I had decided to live more and more apart.

I like this piece of Lévi-Strauss (among many others: it is a great book) because it comes to symbolize for me the moment of deep culture shock that awaits most (all?) visitors to other lands. At first it is all fun and fascinating strangeness, then routine sets in and then, when you think that you had it all tied down, contradiction explodes in your face.


You realize that, no, we cannot all get along, not without cultural compromise. You realise that the Indians (the Dutch, the Koreans, the truck drivers, the cops, the expectant mothers, the Italians…) are not actors in costume, cleverly playing at being part of a strange culture: they are really like that. They really think and act differently from you. And you are not going to change them, certainly not through frontal attack. This is when you have to fall back on your own strength, and when you have to remind yourself of the fondamental fact that you went to visit them, they did not come to visit you. They have a right to be exactly as they want to be, you have the duty to be compatible with them. 

The photograph shown above is from the Malinowski
archives at the London School of
Economics. You can see it

and many more at high resolution there. They also want me to say
that it is (c) London School of Economics and Political Science 2005.


Braun Lectron system

This is of particular interest to the ITD groups working on the Studiolab brief, but everybody might want to take a look at the Braun Lectron system as it will be featured in the Talk to Me exhibition (longer juicy article here). 


(picture grabbed without permission from the Talk to Me site)

Designed by the great Dieter Rams and Jurgen Greubel as an education tool for basic electronics. Every block contains an electronic component, and the blocks connect with magnets. The user was supposed to use the paper patterns as a guide. Of course, all analog electronics. Why don’t we have something like this today? Good looking and effective. 




Petri Nets, some tools

Petri nets are a graphical formal tool to model systems that can be described in terms of activity steps: like legal procedures, industrial processes, recipes and algorithms. State machines and UML can be described as subsets of Petri nets. Industrial designers could use them, because they are general enough for most problems and they provide a blueprint for programming. A good place to start for general information is the Petri Nets World page.


a generic example of a Petri net

This silly net says that, if you are a human being with a BA, you can enroll in a master program: then you can either go through the graduation process and graduate, or change your mind and become a rock star. Your activities are also fed into a big database somewhere. The model can be made fancier by annotating it with time, for example: so that you can have estimates of how long it takes to graduate etc. or whether it is possible to get stuck somewhere in the process. By the way, this network is also a state machine, something that makes computer scientists very happy.


I recenty looked up a few tools for working with Petri nets. I walked my way down this convenient list page from Petri Nets World, ignored things that looked dead, costed money or would not run on Windows. I was interested in tools that can also deal with time. Here are my notes:

Renew is a big Java application that seems able to do many things. I really don’t like Java, so I installed it with great reluctance. It worked nicely, but then it steadily refused to save anything. This is a bit of a drawback, so I uninstalled it and cursed Java for the hundredth time.

Snakes is a super cool Python library for doing Petri Nets. I was very tempted to start playing with it, just because I like programming in Python, but I decided to be a responsible person for once. It looks very Linuxy.

Tina is the TIme Petri Nets Analyzer. A collection of tools for editing and analyzing and doing very fancy things with Petri Nets. Looks very tasty, maybe will play with it in the future.  Explicitly available for Mac, Win and Linux.

Yasper is an entry level tool for playing around with Nets. It is very easy to use and it comes with a manual that also introduces some general modelling concepts. And it is a Dutch product, written in dot net at the TU Eindhoven. I am using it currently, mostly because it is easy to install and kind of friendly.

CPNTools looked very promising, but they want you to obtain a license. The license is free, but I will put up with the tedium only if other tools are not enough.

StpnPlay also looked very promising, but their project page appears to work only with Internet Explorer. Gamestopper for this guy.

Snoopy is also rather friendly and easy to install. I am playing with it currently, and it looks more general that Yasper but still reasonable.

(added on July 21st 2011WoPeD is visually pleasing, and it seems oriented to colored Petri Nets with fancy extensions like AND transitions.

(added on July 21st 2011) There are also tools that work as plugins of Eclipse. Eclipse is a way of life, a religion, and I am not sure I want to inflict it on myself or my students. Of course writing an Eclipse plugin makes perfect sense to computer scientists, becaus they are already running Eclipse anyway.

After looking at the big list of Petri Nets software I have come to a realization: whenever a computer scientist does not know what to do, he gets together
with a gang of other bigger and smaller computer scientists, some with
PhDs and some not. First they agree on which of the thousand flavors of Petri Nets they like best; then they write a Petri Net tool, or
at least a Petri Net library that understands some subset of PNML. Then they refactor it, add colors, add
extensions, add importers, add exporters and generally speaking add a
kazillion other things to the original beautiful idea. Then they get
bored or finish their PhD, and do something else that nobody has ever
done before, like a raytracing engine or a compiler that can compile all
the compilers that cannot compile themselves. 

Hacking the bread machine – 1

 I realize that, if I wait until all is done before writing it up here, it will simply never happen. Also, the motto of this blog means "a little and frequently" in my hometown dialect: I should heed my own advice.

 I have more or less succeeded in subverting the bread machine for my purposes, and I have added temperature control via a PID controller running on an Arduino (I am using the arduino-pid-library). It works, after a fashion, although

  • I have not calibrated the NTCR (aka thermistor), so I have no clue about real temperature, only very arbitrary units: room temperature is around 90.
  • this thing is sluggish. It takes several seconds before you see any effect from the 500W heater.
  • the bread machine has a built-in thermal safety that will melt and cut the power when the vessel overheats. But I have no clue at what temperature this happens, so I feel very nervous whenever it gets a bit hot.

The idea behind this activity is that, ultimately, a bread machine is just a pot surround by a vessel with a heater, plus a stirring device. If you ignore the bread aspect of it, you could do many things with such hardware, ranging from pasta sauces to desserts to rice. But, all the bread machines I know of are not programmable. They have a number of pre-programmed sequences of stirring, heating and cooling, and you are limited to them – I became acutely aware of the issue when playing around with sourdough bread and very long raising times.

Just for fun, here is the temperature graph with the current parameters:

  Tick marks on the X axis are at 250 seconds divisions, and the setpoint is at 400. The Y axis is, as I said before, in arbitrary units where 400 is probably around 100 degrees and 1000 is even brandweer bellen (call the fire brigade, please). The PID controller is running with a 1 second duty cycle, and the parameters are

P = 10.0

I = 0

D = 2.0

 In the graph above you can see a little overshoot at the beginning, moderate oscillations, a sag at the 4th division when I opened the machine and then recovery. The noise on the pink line is due to sensor noise being amplified by the derivative term – I think. Since I am just driving a heater, the noise is not a reason for concern. You can also see that the temperature never quite reaches the setpoint: this is as expected, because the integral term is zero. I tried to give the integral term a non-zero value, but this gave me big scary overshoots, even with ridiculously small values (I went as low as 10-17 before I gave up.) This is relatively easy to fix by adding a little bias to the setpoint. Since everybody likes graphs, I am including another one with a longer run. Here I am changing the setpoint, as indicated by the orange line.


this is a graph, it must be science!


  Tick marks are again at 250 second intervals. The orange line is the setpoint. Somewhere around the 10th division I had to go to teach in Food, Design and Culture (that I keep mixing up with a journal called Food, Culture and Society). Since I don’t trust my hardware or software at all, I cut the power to the heater, but did not stop the PID, who tried desperately to do its job without any control authority. The temperature decays beautifully along what looks very much like an exponential. I am not publishing any pictures of the hardware because it both very simple and very messy. Just wires and loose components, not even a breadboard.

(I realize that any Industrial Design Engineering bachelor student can build and tune PID controllers in his sleep, but I did not study at TUDelft. Heck, I did not even know about the very existence of control theory until five years ago).

 The temperature "program" here was just a switch statement inside an Arduino program, but in the future I will make it much more generic.

 The next steps are: building a programming interface, so I can load my own sequences of activities and doing a workshop with food-obsessed people here in Delft. I trust that they will provide me with brilliant ideas on what to do with my toy. Publish the design (HW/SW) so that other people can play with it. And write a brilliant paper about it all. Maybe I will claim that it is action research, who knows.

 In other news, ITD is going strong, and so are UTAR and Food, Design and Culture. Two papers are making their way through the review process, I am trying to get funding, together with Aadjan et al., for a startup  (this sounds unnecessarily grand), there may be an exhibition project happening in Qatar this summer and of course my lovely and wonderful graduations students are progressing. Some of them will even graduate soon! There is indeed light at the end of the tunnel. I am also wondering if Petri Nets are an appropriate representation for recipes – this makes it difficult for me not to start playing around with a wonderful Python library for doing all things Petri. It is called, appropriately Snakes.

 In other other news, I am currently in Romania on vacation. Will be back in Delft next week, right on time for the flavorful, exciting ending of Food, Design and Culture. I will be bringing back a typical Romanian product called ţuica: it is colorless, it smells good and it can knock you under the table with no effort at all.


How to be my graduation student

It is relatively easy. I am more than willing to follow graduation projects (that in normal English would be called final MSc projects or something like that) on topics related to food and interactive prototyping/sketching, and also other topics if they tickle my fancy.




The people in the picture above are all swimming in a sea of white balloons, inside a giant balloon, and they are happy. They were also, at that moment, my students. To make ours a happy six months+ relationship, there are just a few details to take into account, and I will set them down as convenient bullet lists. 


  • Your graduation project is the center of your life for six months. You eat, drink and breathe the project. You are 100% on it.  On the other hand, you are one of n (for n ~= 6) graduation students I follow, in addition to doing various teaching and research activities. I am more or less 2% on your project. This means that you occasionally have to remind me of things.
  • I want to be proud of your work, otherwise I would not be working with you
  • If everything goes well, your graduation project is not the last thing we do together, but rather one of the first ones, and probably not the most important. Think long term, think networking.
  • Some companies are very experienced at hosting graduation projects, others are very green. The experienced companies may become quite stiff in their attitude to students, the unexperienced companies may be clueless and waste your time. Be aware of the risks and remain master of your work.
  • Use me for what I am good at.


  • Read a lot. Cite properly. Use a reference manager like Endnote (we have a site license), and the scholarly part of your life will improve enormously. Endnote, though, is useful only if you use it from the beginning of your writing activities.
  • A good trick for writing is to lay down first all the skeleton of your report: chapters, headings and subheadings. Then start adding flesh.
  • Start writing early. Don’t say I will just do a four week Big Bang writing marathon at the end – those would be four miserable weeks. If you keep delaying writing, it will become a very painful process (this is advice I should follow myself).
  • Set reasonable deadlines for yourself and for myself. For example, if you deliver a chapter for reading one week before a meeting, I will love reading it and you will get meaningful feedback. And finishing a chapter is a more manageable deadline than finishing the whole report.
  • Keep a consistent tone. Make sure you know the meaning of the words you are using. Be afraid of words like to facilitate, to afford, to enable, to imply, to elicit and to inform. They are both fancy (not easily understood by everybody) and slippery words, and the writer should ask himself if he would not be better served e.g by to find out insted of to elicit. I don’t mean that those are "bad" words, only that they should be used when necessary, not out of habit.
  • The verb to sport, despite the opinions of 16 million Netherlanders, does not mean to do sports, neither to train, nor to engage in physical activity. It means something else.
  • In the same vein, the adjective cynical does not mean sarcastic, ironic or dry. If I tell you that your graduation report is the best report I have read today, I am being sarcastic. If I claim that your housemates are nice to you only because they want you to help them with Rhino, I am being cynical. If I tell you that your report is quite good, considering your obvious dyslexia and ADHD, I am being sarcastic; but if you actually have dyslexia and/or ADHD, that means I am being a cynical bastard – quite different.
  • isn’t don’t shouldn’t won’t "a lot" "lots of" "kind of" are all informal English. Your graduation report is a formal text, and these contracted forms do not fit so well. (*)
  • Be aware that healthy and unhealthy are not adverbs in English; they are adjectives. You cannot "eat healthy", but you can "eat healthy food" or "eat in a healthy way" or -even if it sounds funny- "eat healthily". The source of confusion is the word gezond that, in Dutch, works both as an adjective ("een gezonde maaltijd" ) but also as an adverb ("Gezond leven is belangrijk" ).
  • Perfect spelling is mandatory. Run a spell checker. Then run your eyeballs over your text, because the spell checker does not catch everything.
  • Despite being an amazingly stupid piece of software,  the grammar and style checker in Word has its occasional moments of usefulness.
  • Make sure to avoid typical Dutch-into-English language errors like
    • wrong plurals: video’s instead of videos (typical Dutch mistake: see Dunglish)
    • wrong plurals of acronyms. The plural of CD is CDs, not CD’s. Never. I do not care what others say or want, this is the way I like it. (*)
    • joining words that should not be joined: it is "use cue" not usecue. On the other hand, it is "headphones" not head phones.
    • words that the spell checker will not catch, like cleaver and expatiation for cleverand expectation.
    • internet for Internet (if you really mean "the" Internet and not some piddly internet you built in your spare time). (*)
    • if is different from when in English. "If you graduate in ID…" doubts that you will eventually do, "When you graduate in ID…" expresses faith that you will indeed graduate.
    • very long and complex passive constructions that make comprehension of your cherished premises, brilliant conclusions and cogent logic should be avoided, no matter how much you love them in your native tongue, shouldn’t they?
    • But: choppy sequences are not good. They are bad. Bad means unreadable. Unreadable is a consequence of choppyness. Which is bad. Have I already said that? Yes, I have. This sentence is like sucking gravel through a straw. It is bad.
    • beamer, despite all you have heard, is not an English word. It is German and Dutch, but English it ain’t. In English that thing is called a video projector
  • Cite only when necessary, and cite relevant material. Don’t use a marketing studies source to justify your views on visual perception. And don’t cite Tony Buzan to convince me that mindmaps are good. Of course he thinks they are good, as his income depends critically on them.
  • Be aware that sources have different levels of authority. Random websites don’t have any.
  • Wikipedia is a very good jumping off point for background research, but it is not a scholarly source. Quote it only when you have no other source. Hint: some Wikipedia articles do quote their sources of information: what about following those references?
  • When quoting any website (not just Wikipedia) make sure to specify the time and date: web pages change all the time. Quote URLs in full: http is all the rage today, who knows about tomorrow? Be nice to the people and the machines that will read you work.
  • Don’t cut and paste unattributed chunks of text from the WWW or other sources. I will notice and say nasty things. If I don’t notice, someone else may, and your embarassment will know no bounds.
  • Design your report: you are a designer! If you are unable to, imitate somebody else’s layout. I have some fine examples in my archive.
  • If you are not a good graphic designer, keep it simple. Visually boring is better than visually painful. Don’t be afraid to ask for help to someone.
  • Margins are good. Space between the lines is also good. Screaming masses of clustered text tightly packed with graphics are not good.
  • You have to choose fonts properly. Read the nice guides at the FontShop.
  • Earnest, non-ironic use of the following fonts will not be tolerated (examples follow):
    • Comic Sans
    • Papyrus
    • Cooper Black
    • Copperplate Gothic (Bold)
    • any other font that I don’t like
  • Fonts that I like: boring fonts with high readability. Helvetica, Caslon, Gill Sans, Akzidenz Grotesk (love it). You may use Bodoni, but only because I am from Parma, and because once Franco Maria Ricci used it to set a whole collection of wonderful little books (chosen by J.L. Borges, no less).
  • You are lost and you don’t understand anything at all about typography, fonts, characters, glyphs, kerning… read The Elements of Typographic Style. It is a beautiful and useful book.
  • Don’t get confused between your subject domain and the design of your report. Your target users may e.g. be children, but your report does not need to look like a children’s book, because children are not going to read it. On the other hand, I am going to read it…
  • Even if you speak English as a first language, try to have your text checked by a native and highly literate speaker of English.
    • Do this even if you think that your report is perfect. Really, give it a shot.
    • For typical Dutch students: remember that you have learnt your English from TV and films, while I have learnt (or learned, both forms are correct) it from books. This means that I write better than I speak, while you typically speak better than you write. 
  • the semicolon and the colon: two different punctuation marks. Perhaps they also mean two different things! (this is sarcasm, not cynicism)
  • I am unable to ignore poor writing in reports. This means that I am practically unable to give you useful higher level feedback on your ideas until your report is at least OK language-wise. Unfortunate, isn’t it?


  • It is sometimes advised to say everything three times: first warn the audience that you are going to say "A", then say "A", then remind the audience you have just said "A" and explore the implications. I don’t agree with this advice, because it tends to produce deadly, boring presentations.
  • In presentations, please avoid the Dutch wet blanket. This is a common presentation trick in Delft, and consists of closing a presentation with the words "…and this was my presentation" or "…and this was my project", in a falling tone and with a distinctive lack of enthusiasm, usually followed by looking at the audience with a confused expression. This kills the presentation and turns anything you showed or said before into nothingness. If you are doing a presentation, you are doing a show. No showman says "…and this was my show" at the end of whatever show he is doing. Not unless he is trying for a pathetic tone. Are you?
  • Since you are a designer, don’t use horrible graphics in your slides. No stock photography with visible watermarks, either.
  • Obvious, but rarely practiced: do a dry run of your presentation, preferably the day before.
  • Make sure that everything you need works. This includes the video projector, whatever way you choose to play audio and hardware and software that you want to demonstrate.
  • This is the most important advice about presentations, so it is in red: if something does not work, SHUT UP. There is nothing worse than someone saying "Oooh, here there would be a really lovely video, but it does not play, strange how it always happens". Did someone ask you for the video? No. Does someone know that you are going to play it? No. So, just SHUT UP and go on with the next thing you have ready. There is a good chance nobody will notice anything.


  • If I tell you that an idea is bad, you don’t need to pursue it any more. If you can smell that a parrot is dead and rotting, you don’t need to take its pulse and check its pressure: it is a dead parrot. Find another one to play with.
  • We are what we eat, even intellectually. What have you been reading recently? 
  • Contextmapping is a set of techniques plus an attitude that aim at fostering your understanding of the user and of its context. It is not an Arts and Crafts revival event, centering on making A5 booklets with timelines and stickers. contextmapping is always written as a single word, because Froukje Sleeswijkvisser writes it like that.
  • Process is important, but it is not a guarantee. If your ideas are bad, VIP will not save you. SWOT analysis will not save you. N. Roozenburg and J. Eekels will not save you, either. You need better ideas.
  • I am not your manager, you are. I am, in part, your consultant. This means that I will not pester you about deadlines and signed documents – not because these things are not important, but because they are your (managerial) problem more than mine. Also, I suck at deadlines and documents.
  • If I am your chair, I guarantee, in front of the faculty, that your graduation project fits the faculty’s standards. This is a responsability I take seriously.
  • Ask me before you sign contracts with the company you are working with. A poorly written contract can limit what future work you can do. Remember that you (or I) cannot commit the TU to anything – you need the Dean to do that.
  • When you have a meeting, you should come with an agenda and an idea of what you want to have at the end of the meeting.
  • Greenlight meetings are held when:
    • your graduation report is 80% complete (which includes layout)
    • DFI: you have a final design, not just a final concept
    • DFI: you have a plan for a final user test or something similar
    • SPD: you have one or more finely crafted and very clear design briefs
    • I am convinced that you can wrap it all up in six weeks

Thanks to PJ Stappers, P Desmet and A Peeters for tips. Purdue University has an extensive and very friendly online guide to writing. It covers everything, from adjectives to plagiarism.

Visual Postfaction

Here are the reasons why you should not use certain fonts

Overused, falsely friendly, just say no. Not even for lettering in comics. Yes, it is that bad.

Very loud and tiresome. Overused in the attempt to be hip and friendly and wide-eyed and wonderful.

It combines corporate boredom and lack of professionalism, like a box of new, dried up blue Bic Crystal pens. Particularly devastating in bold. There is a whole site about it.

Very good if you are designing a church flyer and you have the secret purpose of encouraging atheism. Also good for high school reports on Egypt and menus of vegetarian restaurants. Avoid in all other cases, othewise you will end up in the Papyrus watch blog.


Here is an obsolete picture of my high tech graduation student multimedia management system. More recent students benefit from the presence of a DYMO label printer and an occasional streak of obsessive neatness. Here is a fragment of a poem from one of greatest poets in the English language:

Trying to use words, and every attempt
Is a wholly new start, and a different kind of failure
Because one has only learnt to get the better of words
For the thing one no longer has to say, or the way in which
One is no longer disposed to say it. And so each venture
Is a new beginning, a raid on the inarticulate
With shabby equipment always deteriorating
In the general mess of imprecision of feeling,
Undisciplined squads of emotion. And what there is to conquer
By strength and submission, has already been discovered
Once or twice, or several times, by men whom one cannot hope
To emulate—but there is no competition—
There is only the fight to recover what has been lost
And found and lost again and again: and now, under conditions
That seem unpropitious. But perhaps neither gain nor loss.
For us, there is only the trying. The rest is not our business.

(T.S. Eliot, East Coker, the second of the Four Quartets)

 (*) opinions on this point differ, and I will freely admit that what I am writing down here is just the way I like it

© 2011 TU Delft