Recently there was an opportunity to remember the right way to handle closure of streams.
-
-
-
try {
-
// do something with inputStream which could throw an Exception
-
}
-
finally {
-
inputStream.close();
-
}
-
}
If we wouldn’t want the method to throw exceptions we needed to nest another try/catch block inside the finally, as also the InputStrem.close method can throw an IOException. But this should only happen in really bad cases, when closing definitely fails, so it might be a very bad idea to simply swallow it. Moreover it complicates the code especially when handling more then one stream. >> more…
Recently out interaction designers Maria and Franzi told us about paper prototypes and how to use them when finding out what customers will like and what they won’t understand. The idea behind it is, that customers (or whoever gives you feedback) are more willing to criticize when they can guess that not too much work already went into development. On top of that, it saves the time to create “real” prototypes.
I already liked the paper prototypes very much, because there’s always one in the team acting as the computer (that means, he scrolls the paper when you tell him, lays a new “screen” in front of you when you pretend to click somewhere etc.). I actually never saw it, but I imagine it to be pretty amusing. >> more…
For a new feature recently added to conjectPM we needed to extract information like original sender, send date and subject from the “header” that is generated by mail clients for forwarded emails as shown below.
From: Susan Sunshine
Sent: Friday, November 04, 2009 6:13 PM
To: Daisy Daffodil
Subject: Flowers
And because conjectPM supports 18 languages, we needed to make this work with all of them. Therefore Maria compiled a list of all keywords found in Gmail, Outlook and Apple Mail. The basic idea is simple: write a regex that (for each language) matches the part before the colon, e.g. ^(Sent|Date): (.*)$ and take the captured value in the brackets to analyze it further. But as we are dealing with the real world here which has lots of exceptions, the task turned out to be trickier than we thought, especially for dates. Good that conject employs people from many different countries, so we had native speakers for almost all languages at hand. (Is there anyone from Japan looking for a job..?) >> more…
Since years I wanted to make a Flash game again, and when Alex from marketing came with this “we want something from you” look in his eyes I was only too happy to help them build a little Christmas game for our customers. After half an hour the very first prototype was finished and evolved within three weeks (with the help of Helga, who drew all those cute trees and mushrooms!) to a real game with multiple levels, sound effects and even a step-by-step instruction.
>> more…