Well it seems that someone else had a pretty similar idea and developed a more general drink calculator. And while theirs purports to work for any style of drink, their data is not crowd-sourced, and therefore inferior!
Tuesday, July 19, 2011
Tuesday, June 7, 2011
Probabilistic, Modular and Scalable Inference of Typestate Specifications
Today I presented my paper, Probabilistic, Modular and Scalable Inference of Typestate Specifications at PLDI 2011. This paper was joint work with Aditya Nori from Microsoft Research India. This was the second time I worked on a research project with Aditya, and as before our collaboration was extremely fruitful.
Our tool, Anek, infers them automatically, and does so using probabilistic constraints. This allows us to use various forms of evidence, some of which may conflict, in determining a final specification.
This paper is all about specification inference. The tool that I worked on for my thesis, Plural, checks that objects in a program are used according to their protocols. While the tool was quite powerful, it required a number of pre and post-conditions to verify that the protocol was being used correctly.
Our tool, Anek, infers them automatically, and does so using probabilistic constraints. This allows us to use various forms of evidence, some of which may conflict, in determining a final specification.
Anywho, the paper and presentation are now available online. Enjoy!
Monday, November 29, 2010
Thesis Defense: December 14th, 2010
In about two weeks I will be defending my Ph.D.! It will be on December 14th, 2010 at 9:30am in the Gates Building, room 4405. I would very much appreciate your attendance.
Friday, July 30, 2010
How to Sit at a Desk for Long Periods of Time
I just found a funny document on my computer, one that seems especially appropriate as my graduate career is winding down. It's a PDF that I made with LaTeX, way back when I first started graduate school (I can tell from the date). I had never used LaTeX before, but I had heard enough about it, and figured that I should probably learn it as soon as I got to graduate school. Here I am, five years later, and I'm still wresting with LaTeX, trying to write my thesis... Pretty funny stuff.
Anyway, without further ado, I present:
Sunday, June 6, 2010
Microchronograph!
In this period of intense travel, updates are few & far between. But dear readers I have music to present, and music say so much more than words themselves.
Microchrograph, is the latest Sick Ridiculous & the Sick Ridiculous tune to hit the market. Tom summarized it pretty well on his blog, but basically it's about academic dishonesty. You should definitely give it a listen, download it freely, and share it with your bros & lady friends.
Microchrograph, is the latest Sick Ridiculous & the Sick Ridiculous tune to hit the market. Tom summarized it pretty well on his blog, but basically it's about academic dishonesty. You should definitely give it a listen, download it freely, and share it with your bros & lady friends.
Tuesday, May 25, 2010
I think this qualifies as a 'gotcha'
I was writing some Java code today. I'm writing a plug-in for Eclipse that will actually insert some Java annotations (e.g., @Override) into your code automatically.
Unfortunately, every time I ran my plug-in, the annotations were being inserted without the @ sign (e.g., Override). I couldn't figure out what was going on, looking at the code that generates the text:
String annotation_text = ...
StringBuilder sb = new StringBuilder('@');
sb.append(annotation_text);
sb.append(newline);
Finally, I hovered over the StringBuilder constructor to figure out which constructor I was calling. Low and behold, I'm calling this one:
java.lang.StringBuilder.StringBuilder(int capacity)
In other words, by using single quotes, I am specifying the character '@' which is then implicitly cast to an int. Hmm... This doesn't seem so bad at first, but there's an asymmetry in the API. If I use this constructor:
new StringBuilder("@");
I get the behavior I expect, a string builder initialized to the at sign.
Moreover, there are append methods that take a single character:
sb.append('@');
Adds the single at sign character to the stream. So, knowing about this method, and the string constructor of the StringBuilder, I naturally assumed there was a character constructor as well... NOT SO FAST BECKMAN.
Unfortunately, every time I ran my plug-in, the annotations were being inserted without the @ sign (e.g., Override). I couldn't figure out what was going on, looking at the code that generates the text:
String annotation_text = ...
StringBuilder sb = new StringBuilder('@');
sb.append(annotation_text);
sb.append(newline);
Finally, I hovered over the StringBuilder constructor to figure out which constructor I was calling. Low and behold, I'm calling this one:
java.lang.StringBuilder.StringBuilder(int capacity)
In other words, by using single quotes, I am specifying the character '@' which is then implicitly cast to an int. Hmm... This doesn't seem so bad at first, but there's an asymmetry in the API. If I use this constructor:
new StringBuilder("@");
I get the behavior I expect, a string builder initialized to the at sign.
Moreover, there are append methods that take a single character:
sb.append('@');
Adds the single at sign character to the stream. So, knowing about this method, and the string constructor of the StringBuilder, I naturally assumed there was a character constructor as well... NOT SO FAST BECKMAN.
Tuesday, May 18, 2010
Trip to Agra
This past weekend I went to Agra! Agra is a city in India famous for the Taj Mahal, the landmark that Americans like me most identify with India. Since I'd never been, and this is my third trip to India (!!) I felt like I really should make the trip.
To cut to the chase, it was awesome. I was expecting a cool building that was kind of a tourist trap, but this was an amazing building that was kind of a tourist trap. Probably the most amazing piece of architecture I have ever seen. And as they say, pictures do not do it justice. It is much larger than I'd imagined, and thanks to its elevated location, it appears to be hovering in mid-air. The two hours that I spend at the Taj Mahal were more than worth the entire weekend trip.
And what a gnarly trip it was... It's not really that easy to get to from Bangalore. I flew to Delhi early Saturday morning, and then took a train to Agra. On Sunday, I hired a car from Agra to Delhi, and then flew back to Bangalore. It was stressful as hell. The train was hot because I wasn't in an A/C section because I didn't make reservations early enough. (Lesson: make train reservations early in India!) I took a car on the way back because the only trains still available were at like 6 in the morning. The trip, which was only 200km, took four hours. I spent almost the whole time alternating between worrying about dying (my driver was, um, aggressive) and worrying about missing my flight.
But some things went well. Even though my itinerary was crazy it all worked out. The hotel where I stayed (The Taj Plaza) was cheap, pretty nice, within walking distance of the Taj and full of helpful employees. Recommended. Also, on Sunday morning I went to the breakfast buffet at the Oberoi Amar Villas hotel. The hotel itself is unbelievably expensive, and the buffet was expensive by local standards, but the food was really good! Recommended.
To cut to the chase, it was awesome. I was expecting a cool building that was kind of a tourist trap, but this was an amazing building that was kind of a tourist trap. Probably the most amazing piece of architecture I have ever seen. And as they say, pictures do not do it justice. It is much larger than I'd imagined, and thanks to its elevated location, it appears to be hovering in mid-air. The two hours that I spend at the Taj Mahal were more than worth the entire weekend trip.
And what a gnarly trip it was... It's not really that easy to get to from Bangalore. I flew to Delhi early Saturday morning, and then took a train to Agra. On Sunday, I hired a car from Agra to Delhi, and then flew back to Bangalore. It was stressful as hell. The train was hot because I wasn't in an A/C section because I didn't make reservations early enough. (Lesson: make train reservations early in India!) I took a car on the way back because the only trains still available were at like 6 in the morning. The trip, which was only 200km, took four hours. I spent almost the whole time alternating between worrying about dying (my driver was, um, aggressive) and worrying about missing my flight.
But some things went well. Even though my itinerary was crazy it all worked out. The hotel where I stayed (The Taj Plaza) was cheap, pretty nice, within walking distance of the Taj and full of helpful employees. Recommended. Also, on Sunday morning I went to the breakfast buffet at the Oberoi Amar Villas hotel. The hotel itself is unbelievably expensive, and the buffet was expensive by local standards, but the food was really good! Recommended.
Subscribe to:
Posts (Atom)
