Wednesday, May 2, 2012

$15/MB

Pretty soon I will be traveling for Korea for two weeks. I'm pretty stoked about this!

What I was also pretty stoked about was using the Google Translate Android app for the Korean language. It allows two people who speak different languages to alternatively talk, then it uses voice recognition & translation to allow them to communicate. It's pretty cool.

What is less cool is my cell phone provider. I am generally very favorable towards T-Mobile. Their customer service has been excellent and I have been a happy subscriber for almost ten years. But I want to use my cell phone in Korea on a data network so I can take advantage of Google Translate and other fine apps. But guess what?

International data roaming is $15/MB. Fifteen dollars per megabyte!!! 


That is insane. A quick browse of my phone's "Data usage" app reveals that I use anywhere from 80MB to 1.1GB in a two week period. In other words $1200-$16,500 at these rates. Other providers have plans that you can upgrade to if you know you are going to be using lots of international data roaming, but not T-Mobile. (My friend Jeff told me he pays $20 a month extra for unlimited international data roaming!) This is also insane because South Korea is one of the most mobile-friendly countries on Earth. Please T-Mobile, get with the program here.


Sunday, February 26, 2012

Weddings with Awk, Latex and Google Docs

Hey guys, I'm getting married! Pretty sweet, right?

Like any good software developer, I am always trying to save myself boring work with scripts and tools. Sure it may end up taking more time, but it's more fun.

Anyway, I thought I'd share a little bit of our wedding workflow, since I think it has been pretty effective. It all starts off with a few Google docs. These documents are all shared, so both my fiance and I can update them at any point during the day. Those documents include a text file with ideas and tasks to be completed, along with a spreadsheet of the gifts we've received, who gave them and whether or not we'd sent them a thank-you. We don't want to forget anyone, nor forget what they gave!

But the most useful document has been a spreadsheet containing the guest list. In the row for each name we filled in their addresses as we received them along with a Y/N column indicating whether or not that person would have a 'plus one.' We were careful to put each piece of the address (street, city, state, ...) into its own column, which is helpful for the script I wrote later. We also had two Y/N columns indicating whether that person had been sent a save-the-date and an invitation.

Putting the addresses in a spreadsheet, as opposed to a Word document, is a great idea, because then it can be exported in CSV format, and I can write scripts over them. After exporting the guest list to CSV format, I wrote an Awk script that would go through the file and output a LaTeX file so that I could generate address labels. I used the "envlab" LaTeX package for generating the labels, and because I had saved each part of the address as its own column, it was easy to play around with alignments (e.g., "should the apartment number go on its own line or after the street?"). Also, I made the outputting of an address label conditional on the Y/N value in the column recording whether or not that person had already received an invitation. This was really useful, since we wanted to send out save-the-dates as soon as possible, even before we had addresses for everyone. So we could effectively run the script any time we wanted without having to worry about generating the same label twice. Finally, we printed the labels onto those standard Avery 5160 inkjet labels (or at least a compatible label). I happen to think that the clear labels look really good, and professional.

So that's it. Nothing particularly clever, but I kind of wanted to share my experiences. I think that overall we've saved a ton of time generating the labels this way. Certainly vs. writing them by hand, but even vs. using Word to create the labels.

Tuesday, July 19, 2011

Beer Calculators

As you may know, I have developed a beer calculator, howmuchbeer.com.

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

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.