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.

Walter Aprile's pochedespès

my professional blog at TUDelft

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

Lampan 92 is on show now!

If you have recently visited the Industrial Design building in TUDelft, you may have noticed certain disturbances in the main entrance. And if you were there today you have certainly noticed a large almost spherical lamp suspended above your head, close to the security desk.

Does it look familiar? This is the Lampan92 lamp whose building I have discussed in a previous post. And now it has entered reality, which is both exciting and terrifying. This has been a low intensity projects, slowly advancing for over one year. Here is another shot with more context:


Apologies for the bad photograph: better ones will follow. What will also follow is that the lamp will get its own network connections, which in turn will allow us to control from anywhere on the Internet! The installation is powered by Python + Linux + Arduino + Google + cron and wget.

Involved people: the fundamental Aadjan, the helpful Aditya, the faraway Daniel, the very cute Sterre and of course Saint Rob Luxen.

And yes, we knew that it would look smaller once it was up there. At the same time, visual impact is a function of the surface, which is linearly proportional to the number of lamps, and we were not going to build one with 184 lamps – already this one was a nightmare of cabling

emptying the buffer before Christmas

terribly interesting: How to explain UX research to normal people

I have made a Flickr account for myself. The pictures will occasionally be relevant to design or TUDelft activities.

…and I went to the First Nordic Conference on Service Design, where I met many interesting people and did a workshop about SERPE (paper here,in very good company).

I have started obsessing about the coolness of Nodebox2, a programming-for-designers tool made by the cool dudes of the Sint Lucas School of Arts in Antwerp. It looks like a dataflow, boxes-and-arrows language, in reality it is kind of functional. It is immediately useful if you are in 2D graphic, and conceptually very interesting if you like to think about different models of programming.

The Food Design pilot class is over, and in 2010 we (Annemiek van Boeijen and I) will do a full blown elective for 25 lucky students.



We celebrated the end of 2009 with (of course) a Surprise Dinner, where all the dishes had to be surprising. Without going into detail, I can tell you that finding silver Christmas tree balls (decorated with messages) into the salad was surprising indeed. In the photograph, Puck is juggling the message balls with absolute concentration.


The Interactive Architecture Minor is going strong, just today Aadjan and I visited them and we were awed by the massive, scarily mobile structures the kiddies are building. This is the view that greets you when you enter the Minor zone at the Delft Science Center.


ITD Jukebox project goes to Salone – 2


Interaction Design Lab nicely made a Flickr page with a selection of their shots of the exhibition.

the catalog of the exhibition came out very nice! This is the cover

More about Jukebox!

unfortunately it is in Italian, but you can read an English langauge early version of my text about the Jukebox project . it is published by Postmediabooks. I have personally  added it to Anobii

© 2011 TU Delft