2011-12-07
Minibloq: a visual programming editor for the Arduino
very lazily, just a quick link to this very exciting environment
Minibloq project and download page: http://blog.minibloq.org/
Forum: http://minibloq.net/forum
The interface lets you put together a program by dragging colorful blocks (a bit like Scratch). Blocks roughly correspond to lines of code or fragments of expressions.

The blocks are converted in real time into C code for the Arduino. I think that all variables are assumed to be float. You can see the code (that you cannot edit) on screen as it is being generated. If anything in your block diagram is red, this means that something is missing in your program and the code will not compile.

The code is then compiled and uploaded to the Arduino. The environment includes a serial terminal (that in Arduinoland people like to call a serial monitor). There is also a console window underneath, where you can see the usual Arduino spouting of mad and mysterious gibberish that would make a lot of sense, if only years ago you had decided to become an embedded computing nerd.
If you want to see the whole interface in its glory, here it is in its 1920 pixel wide splendor.
I am certainly going to point ITD students to this. I am not sure if this can be used "seriously" for prototypes or if it is more of a training wheel for the first weeks of getting acquainted with Arduino. My perplexities are based on:
- very direct mapping from C to blocks (no abstraction)
- heavy use of screen space (as you can see, even in this small example the visual program is longer than the C program), which in turn will make bigger programs very hard
- does not solve the trickyness with variables having action at a distance
but these are common issues with visual programming environments
2011-05-18
Lights in the sky
Being a nerd is all about seeing things in a different light. And about absorbing vast amounts of knowledge about all sorts of things, and being able to apply it (or at least regurgitate it) when it is necessary. Or also when it is not necessary at all, but you just think it is neat. In this spirit, I once read through the Atmospheric Optics site to satisfy my curiosity about some strange colored spot I had seen in the sky.
It turns out that, of course, there are people that do whole PhDs on this type of thing. Without further ado, here is one photograph.

This was taken in Brussels, shooting directly towards the sun with a fisheye lens. I am holding the lens cap in front of the sun in order to reduce light ghosts and flares. If you look in the upper portion of the picture, close to the flue on the left, you can discern something like a rainbow. A bit lower, right above the sun, there is another slight spray of color like a smiling mouth. These are not artifices from the lens: they were visible then and there. To help you see them, I have increased contrast and saturation along a top to bottom gradient.

In the enhanced picture, you can see the upper arc, the lower upturned arc (very weak) and two curious spots of color on either side of the sun. The one on the right appears just behind that irritating tree, the one on the left is barely visible. I have added outlines to the pictures, so you know what I am talking about.

OK, but what are these things? you are asking yourself. They are optical atmospheric phenomena produced by the interaction of sunrays and tiny ice crystals in the high atmosphere - contrast that with the rainbow, that is produced by interaction with tiny drops of water. The ice cristals can take on various shapes and orientation, giving rise to various phenomena. The best place to see them is not Bruxelles, but rather the South Pole. You can find more detailed information at the Atmospheric Optics website.
My best identification is as follows; the lower two twin splotches of light are sundogs also known as parhelia (always at 22 degrees from the sun!), a useful word for casual conversation. The weak one in the center is an upper tangent arc, and the big one on top looks to me like part of a supralateral arc. From this information, you can deduce many cheerful facts about the state of the high atmosphere over Bruxelles.
2011-04-29
LikeMeat, MSc graduation project
LikeMeat

update 23-6-2011: this assignment has already found its student. I am keeping this announcement here for historical purposes only.
This assignment is for a DFI student, preferably one that has followed the Food, Design and Culture class. If prototyping, concept development at the fuzzy front end, new food products, creativity workshops and early user involvement (e.g. contextmapping) tickle your interest, this may be for you.
LikeMeat is an European project (partners from Germany, the Netherlands, Austria, Czech Republic, Spain, Slovenia and Belgium) which aims at developing a meat-like meat substitute / protein source which meets the requirements of the consumers of such products. The consortium consists of three research partners (WUR-FBR Wageningen, Fraunhofer Germany, BOKU Austria) and ten companies (mostly SMEs). WUR-FBR (department Consumer Science and Intelligent Systems) is in charge of the consumer research of the project. Fraunhofer develops a meat alternative (LikeMeat) and BOKU is mostly involved in the microbiological safety of the product. The SME’s are the clients of this project and commission the research institutes with the project. LikeMeat is also the name of the meat substitute.

Notice that we are doing this in collaboration with Wageningen University, a strong leader in food-related science and technology. The student working on the project will come into contact with companies and people that operate in the highly innovative new food world - a very good networking opportunity for future work and research.
Assignment
Develop a novel product or meal concept that includes LikeMeat and targets flexible vegetarians. This can be a product concept (ready food or ingredient), or a whole meal concept including recipes and context. Small specialized tools can also be designed as part of the concept, if necessary.
Deliverables
The project will run from May/June 2011 to October 2011.
Creative workshop with LikeMeat project participants – end of May 2011
Report on product and menu/recipe concepts – end of Aug 2011
Report on concepts for marketing the product, like packaging and communication – Oct 2011
Report on methods for food product development – Oct 2011
Contact
You can contact me at w.aprile@tudelft.nl - but you can also just show up at Studiolab, I am there Tuesday to Friday. Do take a look at the complete call for a graduation student and decide if it is OK for you.
You may also want to read a handy guide I wrote: How to be my graduation student.
for non-Delfters: a graduation student is a student who is doing his final MSc project.
(this project has also been announced through the usual channels - this is just extra exposure)
2011-03-20
sustainability rant stuff
I am collecting stuff for a rant about sustainability. Since Firefox is creaking under the weight of a bazillion open tabs, here are some of the links. Somebody else may find them interesting or provocative.
When energy efficiency sullies the environment, John Tierney, NYT 7/3/2011
The Sins of Syn Bio, how synthetic biology will bring us cheaper plastics by ruining the poorest nations on Earth, Jim Thomas, Slate, 2/2/2011
Ugandan scientists grow GM banana as disease threatens country's staple food. Ban on GM crops waived after bacterial disease causes annual banana crop losses of $500m, Xan Rice in Galamba, The Guardian, 9/3/2011
Disease v. culture: Botulism in the Arctic, Maryn McKenna, WIRED, 5/2/2011
Sinistra divisa sui «fagiolini equi» della Coop. Il Prc attacca un progetto che coinvolge la Toscana: danneggia i nostri contadini e quelli del Burkina. La replica: sciocchezze, Sergio Rizzo, Corriere della Sera, 25/3/2007
Birkeland, J. and E. Corporation (2002). Design for sustainability: a sourcebook of integrated, eco-logical solutions, CSIRO.
Sherren, K. (2007). "Is there a sustainability canon?" The Environmentalist 27(3): 341-347.
I wouldn't want to leave you hanging - the point I would like to make is that sustainability is a bad design driver because it is anti-historical, impossible to verify a posteriori and useless as a heuristic a priori. The much less grand efficiency, on the other hand, is a good design driver. In other words, if you do design for sustainability I really don't understand what you are doing (or how you can do it).
2011-01-28
Apple users are masochists
I have just realized what is so amazing about the iPhone: its users. It is not the interface, or the battery or the OS or even the interaction design. It is the users. The iPhone users are primed to accept anything that comes out of Apple as the greatest thing ever invented. And they are ready to believe that it was invented by Apple. This is an important part of why You Can't Innovate Like Apple (and if you want to discuss Apple as a designer in the future you really need to read that article) - your users are not like their users. Or rather, they may be the very same users but they have a different relationship with you, if you are not Apple.
The best part is that Apple users are happy to pay for everything, or at least to wait for it.
Tethering? You mean, actually using your phone as a modem for a PC? Something I used to do with my stodgy Nokia 5120 rubberphone what, eight years ago?
but perhaps the best example is the amazing Find My iPhone, an exciting app with the following features (cut and paste from the Apple site)
| Find myIphone | Alternative |
| Locate your iPhone or iPad on a map | Google Latitude has been out for a while. |
| Display a message and optionally play a sound for two minutes at full volume (even if your device is set to silent) | SMS Flash messages plus making silent mode expire after a few hours (many phones can do this). Flash SMS have been around for ages. |
| Remotely set a passcode lock on your device, or lock it using your existing passcode | Nokia phones do this but in a different way. |
| Remotely wipe your device to permanently erase all of your personal data | This is probably a bad idea. I am waiting for the first exciting exploit, and the following global wail of despair. |
the big news is that now Apple made the software free. The cognitive peculiarity of the Apple user is that, instead of being irritated at the company for making him pay previously, he is delighted because now it is free!
Other excellent examples would be cut-and-paste and multitasking. What good is a device like the iPhone when it does only one thing at a time - making you choose between e.g. running some IM program OR browsing the web OR running Skype OR checking your calendar? It beats me. But I am not an Apple user. So I cannot join in the delighted cheer for the multitasking in IOS4: I am still too flabbergasted by the absence of multitasking in IOSx, with x<4. Of course, all the update goodness does not distribute evenly across iPhone models: slightly older ones get little or no loving. But the Apple user does not care! Because now he can convince himself that he desperately needs multitasking, the same feature that he had previously rationalized away as Android nuttiness only good for techies: which means that he can make one more happy trip to the Apple store, preferably with a queue that starts at 4AM.
And he can have one more unboxing experience, which, as we know, is an important part of the Apple product experience.
But again, I am not a boxophiliac iPhone user. I have the privilege of knowing many, though. I can see how hugely insincere they are when they complain because the display of their phone broke: actually they are delighted because they can give another lump of money to Apple. And I am ever amazed by their inner strength. This is from gizmodo:
In previous versions of the iPhone OS, if you are working on email and there's a link to a web page, clicking on that link will open Safari and close Mail. Then, once you were done watching that web page, you close Safari, get back to the main iPhone menu, click on the Mail icon, and go back to your mail. (from Gizmodo, How Multitasking Works in the New iPhone OS 4.0 published on 4/4/2010, dowloaded today)
The amount of fortitude required to engage in something like this is, I am afraid, beyond me. I have been spoiled in my youth, and I can't put up with this amount of crap any more. Of course, I have used computers that do not multitask and don't even switch tasks, but it was in the Eighties (home computers: Commodore and Sinclair). Then I found out about UNIX, that has been multitasking since 1969 (when it was created to run on computers whose memory was measured in kilobytes). To say the least, you could call multitasking a pretty well established idea in the field. I am too much of a wuss now for single-tasking computers, with the exception of the Arduino.
The condition of the Apple user is similar to somebody who is in thrall to a demanding, expensive, prostitute. You buy her affection with money (or you imagine that you are buying it), and she stingily doles out her favors, turning every little element of life into a theatrical show where you have to pay and pay. She can do everything for you, provided it is what she wants to do. And you pay, you watch the streaming video shows where the Wizard sells you whatever he feels is right and you read the fawning press. And of course, you import the phone from faraway countries where you can get it unlocked (imagine that!), jailbreak it in complex and dangerous ways, terrified that your wife might find out... it is all there inside Venus in Furs. I am indeed going to pay a high compliment to the Apple user, by comparing him to the Baron de Charlus in À la recherche du temps perdu and his passion for being whipped.
In short, his desire to be chained and beaten betrayed, in its ugliness, a dream just as poetic as other men's desire to go to Venice or to keep a mistress.
Or, as it were, to be Apple users.
Now putting on my assistant-professorial hat (it looks just like a professorial hat, only it is smaller, less furry and the sequins are silver) I will point you to a an enlightening post about the iPad ecosystem and how you would need to create one if you wanted to make very succesful tablets, and to an old post about the chicken-and-egg problem by Joel Spolski, a very sharp software guy. BTW, chicken and egg is another way of saying "you need the whole ecosystem, otherwise you are just a hardware pusher putting lipstick on a sow".Slightly less techy but still on the ball you can read an NYT article, "The power of the platform".
2010-12-07
"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.

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.

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 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.

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!
2010-10-20
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)
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.
2010-10-06
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.
2010-09-02
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.
2010-06-28
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)
else
return fib(i-1) + fib(i-2)
end
end
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
- 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.
- this language does not care about whitespace.
- 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.
- the unary = operator is used for printing a value. Bizarre, but still within the limits of reason.
- 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
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)
z=1
b=x*2
end
this is what happens in the interpreter:
> =z
variable 'z' is not declared
> foo(3)
> = z,b
1
6
> =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.
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



Calendar