As Google Blogoscoped informs us, a new terrain button has been added to Google Maps. Looks very impressive, at least in the Vancouver area (not in Montreal unfortunately).
New Google Maps Terrain Button
Eric | November 27, 2007New TR: Static Analysis Techniques for Evaluating Runtime Monitoring Properties Ahead-of-Time
Eric | November 23, 2007Today I am proud to present our brand new Technical Report in which Patrick Lam, Laurie Hendren and me present how you can use static analysis to evaluate runtime monitoring properties ahead-of-time, i.e. at compile time opposed to at runtime.
We have been working on this topic for about a year now, with different approaches and it actually took us until some weeks ago to get it actually all worked out. The coolest thing is that the approach we found in the end is really surprisingly simple, yet very effective. All it needs is a good static abstraction and super-precise pointer analysis. That’s it. The problem that we had before was that we were tying to make things more complicated than they were.
Java and generics: handle with care – part 2
Eric | November 23, 2007This is a follow-up to my earlier posting in which I was ranting about Java generics. Subject of the post were these two pieces of Java code:
Set<String> stringSet = new HashSet<String>(); Set<String> otherStringSet = new HashSet<String>(); otherStringSet.add((String) stringSet);
Set<List> listSet = new HashSet<List>(); Set<List> otherListSet = new HashSet<List>(); otherListSet.add((List) listSet);
The first one gives a static type error in line 3 because obviously one cannot cast a Set to a String. What confused me was that the second piece of code is (statically) well-typed. You will get a runtime error on the cast (List) listSet, but no compile time error. Why is that?
Protected: Von Astronauten, Tasern und armen Leuten
Eric | November 20, 20072820.63 spam mails a day
Eric | November 20, 2007Today I was stunned to notice that my GMail spam folder had risen up to 84619 spam mails! Because GMail automatically deletes spam mails within 30 days this means I had been receiving around 2820 spam mails daily, almost two spam mails per minute! This is really gross. I really hope new anti-spam technology will arrive soon. Many thanks to GMail though for having such a fantastic filter! I think I never had any false positive and right now maybe maximally 10 spam mails get through to me every day. If that’s 10 out of 2820 I can live with it.
How relational aspects could have helped Princeton win the DARPA challenge
Eric | November 18, 2007Bryan Cattle recently explained why their autonomous car developed for the DARPA urban challenge did not make it: They simply had a memory leak in their C# code, filling up their entire heap space after about 28 minutes which made the computer crash. It’s important to note that this is not at all any flaw in C#. As C# is now, it was the programmers’ fault: In their code they kept around a list of obstacles which the car passed by. Obstacles that came out of sight were deleted… but not quite. Because the obstacles were registered as event listeners somewhere else in the code they were reachable and hence could not be garbage collected. Too bad, but how could such a problem have been avoided?
False Friends
Eric | November 16, 2007As I learned today, Beamer is not an English word. It must be one of those “germified” pseudo-English expressions like Handy. Believe it or not, we Germans say “Handy” if we mean a mobile phone! Now that I think about it: Why the hell? Ok, you can hold it in your hand but you can do that with a lot of things… Weird.
A Beamer (in German) is nothing else but a projector. I was actually had already convinced of the fact that Beamer is an English word because Beamer-latex is a latex package for slide presentations, to be shown on a projector. Well, turns out that it was written by another German 😉 There you go.
False friends are really hard to get rid of. I think it took me more than a year to get rid of the false correspondence between actually and “aktuell” (German for currently).
What’s your funniest or most annoying false friend?
Using Windows Live Writer with WordPress
Eric | November 16, 2007This blog is powered by WordPress, probably one of the finest pieces of blog software I ever saw. And the best: Since recently there’s a new Microsoft Software called Windows Live Writer which allows you to edit posts offline, in a neat little Windows client. And I am not talking about some of those cheap clients that might be around and only support half of the necessary features. No, it fully integrates with WordPress, so perfectly that I am really astonished and positively surprised about Microsoft. The software automagically…
- downloads my style sheet so that I can edit my posts 100% WYSIWYG
- downloads all my tags and categories
- lets me download, edit and republish existing blog entries and pages
- lets me draft new posts and pages online and publish them whenever I like
- lets me insert and automagically upload pictures to my blog
- allows for extensions to gazillions of plugins which I have not even tried!
So all in all great Job Microsoft! Sometimes I really appreciate the offline nature of MS applications (e.g. in contrast to Google Apps).
How delegates impose contracts on their wrappers
Eric | November 15, 2007This week I was working a lot on our new PLDI submission, which we just submitted (more about that later). During this work I came around an interesting subtlety with respect to delegates and Design By Contract (DBC) . We wanted to validate the fulfillment of a contract for the Iterator interface: When using an iterator i you are only allowed to call i.next() if before that you have checked whether i.hasNext() holds. For PLDI we developed a static analysis approach (using tracematches) that allows you to flag potential violations of this contract. Here is one that we found in Jython, a Python implementation for the Java Virtual Machine and part of the DaCapo benchmark suite:
100 dollar laptops available – for 200 dollars
Eric | November 12, 2007The "One Laptop Per Child" program has been in the news since more than a year. Since today, first laptops are available to people in North America in a "Get one, give one" action: You pay $399.- and get two laptops, one for yourself and one is donated to a child in a developing country. – Hold on! Two 100 dollar laptops for $399.- ?? Well, I guess that’s just the basic laws of economy 😉