Thursday, November 19, 2009

Fritz Cola - Powerful Stuff


Fritz Cola - Powerful Stuff
Originally uploaded by DixiePistols.
Here's a shot of some fritz-kola, which I just finished enjoying. Good business.

Man, I'll be leaving Berlin this Monday. It's been fun, and I've even gotten some work done, which is really good because I have this deadline coming up in December... Anyway, what have we learned?

- I learned that autotuner has finally made it to Germany.
- Most German beer is very similar. That being said, Schultheiss was my favorite, and since you can't find it everywhere, Jever will do as well.
- Berlin is fun.
- Donner is delicious. But I already knew that.
- The "Wallpaper*" series of guide books is kind of pretentious and lacks good maps, but being able to fit the book in my pocket makes up for any shortcomings.

This week I went to an English bookstore called St. George's and got a few books for the way home. One, "Goodbye to Berlin," I have almost finished. It's pretty good. It was the basis (indirectly) for the musical Cabaret. The other one, "Berlin Alexanderplatz" I haven't started yet.

Tuesday, November 17, 2009

Flying Heavy Metal

Did you know that Bruce Dickinson, lead singer of Iron Maiden, is a commercial airline pilot? In fact, he hosts a show about airplanes on Discovery Channel called, "Flying Heavy Metal," and I've been watching it on YouTube. Awesome.

Monday, November 16, 2009

Spree


Reichstag People
Originally uploaded by DixiePistols.
Yesterday was a great day! The weather was sunny and perfect for site-seeing. We finally did some of the most touristy stuff in Berlin, and as a result, I got some pretty good pictures. Some of them are posted here! Most of them, however, are stuck on my stoopid memory card*.

So we started by taking a big walk down "The Spree," the main and most quaint river in Berlin. We saw people with letters. We saw architectural marvels. We also spent a ton of time waiting in line to see The Reichstag, the seat of the German government. This is possibly the most touristy thing you can do in Berlin, and appropriately we waiting in line for line an hour. But once we got up there, the views were great. There was even some kind of session going on inside, as you can see from the picture to the right.

We continued along to the Brandenburg Gate, the Holocaust memorial, and finally a trip to Prenzlauer Berg, a pretty cool neighborhood, for dinner (pizza!) and drinks. The drinks were at a very cool bar called Neue Odessa. I would highly recommend it for its Victorian wallpaper and delicious drinks. Singapore Sling... mmm...

*Every time I try to copy a bunch of pictures from my camera's memory card to my laptop, I get an annoying "Memory Parity Check Failure," blue screen of death. Arrrrrgh!

Monday, November 9, 2009

OOPSLA Student Research Competition: Results

I guess I never mentioned this because of how hectic things were the last two weeks, but I did participate in the OOPSLA 2009 Student Research Competition. The first day, I presented my poster in an all-conference poster session. Owing to the excellent position of my poster (Yay for alphabetically-early last names!) I talked to a ton of people, thus giving me the necessary confidence for when the actual judges came to talk to me. 

That night, I had a message in my hotel room that I had passed on to the final round, meaning I needed to give a short presentation explaining my work. Of course I didn't have one, so I wrote one there in the conference. The results, were pretty good. I think I gave a good talk. My slides were fine. I definitely could have answered the questions better. 

Nonetheless, I won third place, which amazingly means I will receive a plaque and a small monetary prize. Tudo Dumitraş, another CMU student from a different research group, won first prize. 

Therefore, from this point forward, I shall refer to my thesis work as award-winning research.

Saturday, November 7, 2009

Alexanderplatz

My first day of site-seeing in Berlin, and it was a doozy! We started off in Alexanderplatz*, which is sort of the center of East Berlin. They have they crazy TV Tower that looks like Sputnik on a pole. We walked around that whole area, which has a number of neat shops**, wide streets and was filled with people. The weather was sunny today, for the first time that I've been here, but it was still pretty cold.

We saw a couple neat art exhibitions. The first was Scorpio's Garden, which was just a sort of temporary gallery of contemporary art made by Berlin artists. The highlight was a video of a guy blowing up a raft with a tube connected to an accordian that he played.

Then we went to the German national museum for a retrospective on Berlin art during the Cold War. There was a bunch of stuff, some of it explicitly commenting on the division of Germany, and others more abstract. My favorite was the Literature Sausage made by an artist who would shred books by authors he disliked, add spices and wrap the pieces up on sausage casing. 

Finally we chilled out at this little coffee shop with a pig for a logo, where over the speaker a woman sang "Comfortably Numb" by Pink Floyd in German. All in all a good day. Pictures soon and more fun tomorrow!

*"I've platz-ed myself" and "I almost platz-ed myself" have become my go-to comedy phrases for the time-being.
**One of them had nutcrackers. I was delighted to learn that the German word is Nusseknocker, or Nußeknocker if you're feeling sassy.

Henne & Trendy Bar

Last night we went out of the house, pretty much for the first time since I've been here. We went to two places.

Henne - was a cozy restaurant where they primarily serve fried chicken. Sounds a little funny, but actually is was very classically German. The inside had a great looking bar area and lots of wood, kind of that winter lodge feeling. Apparently it's one of the older restaurants in Berlin, but it's casual. The Chicken was excellent! We each had a half chicken. And the potato salad was cold and delicious, filled with mayonnaise-y flavor. 

Some Trendy Bar - forgot the name of this place. Actually I never knew it because it was the kind of place that doesn't go out of its way to tell you what it's called. This trendy bar had cocktails and a cool decor inside. It was full of hipsters and easily could have been transported to the US without me noticing. Would recommend.

Wednesday, November 4, 2009

Berlin

I finally made it to Berlin yesterday. Today I am trying to work, but I am fighting jet-lag pretty hard. The period right after lunch, where I'm full of food and it's 6am or whatever in Pittsburgh is always the hardest part of my day. I planned that time to read a paper, but that may have been a mistake. I am having to fight very hard to stay awake. 

Lame parts: It's snowing here... and cold. So the weather is actually kind of worse than in Pittsburgh.

Cool parts: I was bumped off my flight and put on a business class ticket one day later. I think that was the first time I've ever flown business class across the ocean, when it actually matters. Definitely nice, but probably not worth ten times the cost of a normal ticket, which is what I believe it normally costs. Also, there are a bunch of cool little restaurants near-by with soups and things, and a bunch of neat coffee kaffee shops too.

Friday, October 30, 2009

Last Night's Concert

Man, it's been a busy freaking week! I'll begin at the end: Last night was the third club gig for Sick Ridiculous and the Sick Ridiculous, and our second at the Smiling Moose. There were good times all around. First off, gotta give props to those of you who made it out. We really appreciate it, and we don't take any of our fans for granted! Of course, we also don't expect all of our fans to come to every single show! But hopefully those who were there had a good time.

We had a couple surprises in store. First, we played with an electric guitar for the first time every. Tom & I passed the electric guitar back & forth for max rock, although some songs we stilled played with two acoustic guitars... Actually my guitar gets out of tune really easily because of my dumb Bigsby Tailpiece. (I am pretty sure I have complained about this before.) So there were a couple times where it went out of tune during a song, but for the most part it was all good. We also dressed up in a band uniform: White shirts, black ties and black pants. Some lady at the bar asked us where we worked. We told her, "we work in a band."

The other bands on balance were pretty good, but way too loud. My ears have been messed up all day today. But seriously, this band Stone Cold Killer is really great & hilarious. They are sort of like a new 70s-style metal band. You could probably compare them to Eagles of Death Metal, or maybe the Supersuckers. Definitely check them out.

OOPSLA 2009 & Disney World


disney-oopsla-2009-20
Originally uploaded by DixiePistols.
I just posted a bunch of pictures from my trip to OOPSLA 2009, in Orlando. Really all of these pictures are from Monday, the day Josh & I went to the Magic Kingdom in Disney World. I am a huge sucker for the Disney parks, and I am willing to fork over huge amounts of $$$ in order to experience the child-like exuberance that they instill. Anyway, I had a great time. Most of the good pictures are from the ride "It's a Small World."

Thursday, October 22, 2009

Sick Ridiculous Closes Out Rocktober

Sick Ridiculous and the Sick Ridiculous has a show coming up next Thursday! It'll be our first club gig in quite a while, so you should definitely come check it out. We have a few surprises up our sleeves. Also, the headlining band will be Sound of Urchin (on their Rocktober Tour), a band that has been on the Late Late Show and that has opened up for Tenacious D. So, we'll be in good company. Here's the facts JACK:

When: Next Thursday, October 29th (Wear your Halloween costumes)
Where: Smiling Moose on the South Side (1306 E. Carson) This show is upstairs. If you saw us there last time, this is different.
How Much Bling: 9USD
With Whom: After the Fall, Stone Cold Killer and Sound of Urchin (We will go first)
At what time: Web site says 7:30

Wednesday, October 21, 2009

Scavenger Hunt Location: And the Winner Is...

This Saturday is the annual Urban Hike Scavenger Hunt. Feel free to join us. Should be a great time! Here's the official press release:


Although the competition was intense between the four locations that made it to the final round, the Urban Hike Committee agreed that Bloomfield's bid was the most compelling.

Join us there on Saturday October 24th for our annual Scavenger Hunt. We'll meet in Friendship Parklet (near the intersection of Friendship and Mathilda) at 1:00pm. Get ready to compete against teams from all around the world (well, all around the city, anyway) for bragging rights, and maybe even a few prizes (we might be just a little short on medals).

Your team will need one digital camera, and a connector to upload photos to a laptop (we can't accept photos via e-mail). We also highly recommend you delete any non-Urban Hike photos from your camera prior to the event - this is mostly for speed and ease of scoring, but for your own embarrassment factor as well. ;-)

Form a team of up to 5 people, or come on your own and we'll put you on a team. RSVP's from teams would be much appreciated, and you can respond to info@urbanhike.org, or on Facebook (become a Facebook Fan of Urban Hike, if you haven't already!).

IMPAQT!!!

I just finished my application to CMU's IMPAQT project. This project attempts to better connect CMU's Pittsburgh campus with its other campus in Doha, Qatar. I think I made some good points in my application, but  I always have trouble with these things. I also tried to keep it light. Let's see how that works out.

Monday, October 12, 2009

BlogFace in the BlogSpot?

Hey folks. I have lately been thinking about moving this blog over to a different service, most likely Blogger. I wanted to see if anyone had any comments or suggestions. I know this will mean a few changes. Among other things, those of you who follow me as a friend on livejournal will no longer get my updates. Blogface.org, which now resolves to this blog would naturally be updated to resolve to my new blog. This could mean a change to those of you who subscribe to my livejournal RSS feed. I have thought about that. In order to future-proof yourself, you could change that subscription to instead point to feed.blogface.org, which as of today will always point to the current RSS feed.

The main reason I am contemplating a switch is flexibility. Livejournal just isn't that flexible. Its methods for creating blog entries can also be somewhat painful. I can't post cool gadgets like a Last.fm most-recently played songs widget. There are only a limited number of templates. I cannot install Google Analytics. Other things. 

So what do you think. Is this a bad idea? Would you be adversely affected?

Saturday, October 10, 2009

An Evening With Mike Doughty


An Evening With Mike Doughty
Originally uploaded by DixiePistols.
On Thursday I saw Mike Doughty at Club Cafe in Pittsburgh. He was touring in support of his new CD, "Happy Man, Sad Man," which I just purchased today and already enjoy. The concert was pretty much everything I could ask for in a concert-going experience.

So first off, as you might be able to tell from the ticket, this was AN EVENING with Mike Doughty. This is industry code for, "there are no other bands playing." This was, frankly, awesome. Yes, I know it is important for bands to have opening bands, to increase exposure for up-and-coming bands (which, by the way, is why you should come see Sick Ridiculous & the Sick Ridiculous October 29th at The Smiling Moose!) but sometimes you want to show up at 7pm, rock for the next hour and leave. This is exactly what happened.

Moreover, the sound at Club Cafe was great, and we had a table with a great view. See normally Mike Doughty plays at Mr. Small's-sized venues, but this time he decided to play three shows at Club Cafe instead. In this case smaller is definitely better! This is now the third time at least I have seen Mike Doughty in some form, the second time where it was just him, and acoustic guitar and his boy Scrap Livingston on the cello.

As a nice bonus, Mike put out a jar for questions from the audience. He answered the mostly-funny questions over the course of the evening, and I think through this we gotta a pretty good sense of his personality. Also, he like me, does not like when people in the back are talking and yelling things during the show. So he boldly (if somewhat confrontationally) told those people to shut up.

Um, and that was about it. He played most of my favorites, so it was a good time. His voice sounds great, low and gravelly. Also, they recorded the show and offered it for sale immediately afterwards, which I thought was pretty cool, although I didn't have any money so I didn't actually buy it.

Wednesday, October 7, 2009

Boom

This song is unbelievably funky:

"You Dropped a Bomb on Me," by the Gap Band 

Sunday, October 4, 2009

Technical Challenge: SML

Success! I finally got SMLNJ and the MLton optimizing compiler to work with Windows. I am very happy about this, as I had been trying for quite a while and ran into various annoying compilation and DLL problems. (Really mlton was the difficult one.) Here's how I did it.:
  • Download Sun's VirtualBox VM software.
  • Install Ubuntu.
  • Use apt-get to install smlnj and mlton.
Seriously. I really think this is the way to do it and I am perfectly happy to launch Linux every time I want to program, it's just so much easier in Linux land. I like cygwin generally, but I have found that if you want to install some software and there's not already a distribution for it, it can make your life miserable. Ubuntu, on the other hand, has like 9 million packages, and even includes obscure stuff like sml. Problem solved!

Thursday, October 1, 2009

Friday, September 25, 2009

Separating Java: Objects

Now, what about objects? Certainly Java, as an object-oriented language, provides many features for creating an using objects. Many of those those features, unfortunately, seem to obfuscate the essence of objects. In some ways the most important features of objects are that they implement an interface, and that we can treat them as merely their interface. Here is an interface, and means of constructing objects that implement it. Notes to follow.

public interface IntSet2 {
  public IntSet2 add(int i);
  public boolean contains(int i);
}

final public class IntSet2s {
  private static IntSet2 append(final int i, final IntSet2 set) {
    return new IntSet2() {
 
      public IntSet2 add(int i) {
        return append(i, this);
      }
 
      public boolean contains(int j) {
        return i == j || set.contains(j);
      }  
    };
  }
  public IntSet2 singleItemIntSet(final int i) {
    return new IntSet2() {
      public IntSet2 add(int i) {
        return append(i, this);
      }
 
      public boolean contains(int j) {
        return i == j;
      }
    };
  }
  public IntSet2 evenIntSet() {
        return new IntSet2() {
      public IntSet2 add(int i) {
        return append(i, this);
      }
 
      public boolean contains(int i) {
        return i % 2 == 0;
      }
    };
  }
  public IntSet2 emptyIntSet() {
    return new IntSet2(){
      public IntSet2 add(int i) {
        return singleItemIntSet(i);
      }
 
      public boolean contains(int i) {
        return false;
      }
    };
  }
}
 
Notes
  • All the objects created in this program are anonymous instances of the IntSet2 interface. Any code that want to can implement this interface! 
  • We have completely side-stepped classes. We use constructor functions to create instances of IntSet2.
  • Code cannot use an instanceof test to tell which implementation of the IntSet2 is being used. In fact, it has no way of telling the difference between the different implementations other than by observing their behavior through the interface.
  • Each implementation of interface can have a completely different representation, and it is impossible, even for instances of the same interface, to see the representation of an IntSet2.
  • Benefits: Programming to interfaces can give great flexibility by allowing any piece of code to implement it, so long as the implementation conforms to the documented behavior. 
  • Caveats: It can sometimes be hard to implement efficient code in some cases where this pure object style is used.
     

Separating Java: ADTs

In Java, Abstract Data Types and Objects are rather intertwined, often to the detriment of programmers. In this post and the next, I'll try to separate the two concepts as best as I understand. Note that most of these ideas, and the Set example specifically, come to me from William Cook's recent essay. The ideas are also well-covered in TAPL, without the Java code.

Here, I will use a subset of Java's features to express an ADT, such as one would have in a language like ML or Ada. It's a (not very efficient) set. Notes follow.

final public class IntSet {
 
  private int[] members;
  private IntSet() {
    this.members = new int[0];  
  }
  public static IntSet empty() {
    return new IntSet();
  }
  public static IntSet add(IntSet set, int i) {
    if( Arrays.binarySearch(set.members, i) != -1 ) {
      return set;
    }
    else {
      IntSet result = new IntSet();
      int old_length = set.members.length;
      result.members = Arrays.copyOf(set.members, old_length + 1);
      result.members[old_length] = i;
      Arrays.sort(result.members);
      return result;
    }
  }
  public static boolean contains(IntSet set, int i) {
    return Arrays.binarySearch(set.members, i) != -1;
  }

  public static IntSet union(IntSet s1, IntSet s2) { /* Performs merge sort. */ }
}

Notes:
  • The class Set is the abstract data type. It has been declared final, which tells the programmer that the representation is fixed and known completely inside of the class.
  • The members field is private to hide the representation. 
  • The constructor is private so that new Sets must be created through one of the existing introduction means, namely empty().
  • All methods are static. No dynamic dispatch is being used here. We do not want to send messages to objects that can handle that message in an arbitrary way, rather we want to perform some operation on a hidden representation by functions inside of the abstraction that are allowed to view the hidden representation.
  • Benefits: Functions inside the Set class can operate on sets with complete knowledge of a set's representation. This can occasionally be beneficial, particularly in cases where performance is important. Knowing that all sets are implemented as sorted arrays of ints can sometimes allow me to write better performing methods. (Binary methods in particular, but other methods as well.) For instance, in the union method above which is incomplete, can perform its task using merge sort if that is more efficient. Still, the representation is hidden from the rest of the program, so we can change things internally without affecting code as long as we don't change the public methods.
  • Caveats: No one else can define a Set that is compatible with this Set! If a certain method expects an IntSet of the sort we've just defined, then the IntSet can only be created through this class, and not through any other means. The representation for all IntSets is fixed (but hidden).

Tuesday, September 22, 2009

Talk: Concurrent Object Protocols Experience Report

Yesterday in SSSG (that class I have to take every semester until I graduate) I gave a talk entitled, "Case Studies in Concurrent Object Protocols." It was really an experience report describing the use of my approach on some open source programs. I used my tool Sync-or-Swim to verify some open source programs, and I encountered a couple of neat patterns which I describe. If you're intrested, check out the slides. I'm afraid you need something that can read PPTX, but if you're interested and you can't read that, let me know and I'll put it up in a different format. 

Thursday, September 17, 2009

Simply Typed Lambda Calculus vs. Untyped

Today I learned something new! At first it was startling, but in hindsight it makes perfect sense: The Simply Typed Lambda Calculus is not Turing complete. Any well-typed program will eventually terminate, and the intuition here is that your program can only have a finite number of arrow types, and evaluation will always reduce the number of arrow-typed things that you have around. The Untyped Lambda Calculus, however, allows programs that never terminiate. I guess the Y-combinator is a pretty good example here. I once learned that the Untyped Lambda Calculus can be embedded inside the Typed Lambda Calculus by having essentially one type, the everything type. So I guess this makes sense, since there are no arrow types that can decrease monotonically...

Now I have more questions: 
Does this mean the untyped lambda calculus is Turing complete?
How does the encoding of the untyped lambda calculus into the lambda calculus work? I mean, don't functions always have to have function type? Or is the everything type some kind of function type?

Wednesday, September 16, 2009

Urban Hike this weekend in Verona

There's going to be an Urban Hike this weekend in Verona, PA. I'll be there and I think it will be fun. Hope you can make it out. Full details below: 

Fall is coming, and Urban Hike is heading to fair Verona on Saturday September 19th at 10:30am. We'll meander along the river, get some aerobic exercise in search of great views, and we might even end the hike with some group "hugs." Alongthe way we'll learn about Celoron (no, not the vegetable, but an important part of Pittsburgh history). As usual there will be a local dinning option for those who want to stick around after the 3 hour (more or less) hike.

We'll meet at the parking area on E. Railroad Ave. between South Ave. and James St.

Wednesday, September 9, 2009

Chief's

highly recommend reading the Google Maps review of Chief's Bar. (You know, the one on Craig & Center with the fire helmet on the sign.) WOW. Sounds like a rough place...

Southwest

Remember when the old Southwest planes had face-to-face seats? I used to try to convince my mom that we should sit back there, because I thought it was so cool, and since Southwest never had assigned seats. Today I can't imagine a more horrible airline experience...

Sunday, August 30, 2009

Cool Place: Round Corner Cantina

Hey guys. Last night I went to a cool bar called the Round Corner Cantina. It in Lawrenceville, approximately here, and if you've been to the up-and-coming hip part of Butler street then you've probably even been really nearby.  Anyway, the point is that you should check it out. It's pretty hip. The inside bar has great ambience, & a cool bartending staff. The backyard area is big & fun & absolutely perfect with the weather last night. And finally they have a reasonably cool selection of drinks at decent prices. For e.g., I had the Tijuana Sling, a Taquilla-based drink with ginger ale & some other fruity stuff. Highly recommended.

Thursday, August 27, 2009

Lausanne... Jealous?

Last night Sick Ridiculous and the Sick Ridiculous recorded a hot new track. This one's called, "Lausanne... Jealous?" It's more custom party music from Donna's PhD defense party, and it's mainly an homage to her and her work in the field of OOP research. Also, she's moving to Switzerland, hence the title and the 100+ of Swiss references.

Download this track free now, like immediately.

Also, by this point we have almost ten custom party songs! I'd like to remind you to check them all out, and that all our songs can be downloaded from Last.fm and elsewhere.

Tuesday, August 25, 2009

Sweet Camping City

This past weekend I went camping! Camping is definitely not something I do very often, so it's a big deal when I go. Overall result? Great time. Mild sunburn.

This particular camping trip was to Assateague Island in Maryland. I still have no idea how the name is pronounced, but the island is off the eastern shore of Maryland and it has amazing beaches. This was a lot different from any camping I've done before. Those trips have always been in the woods, and even when my friends told me about the island I still basically assumed we were going to be in the woods. That's just what "camping" means to me. Camping on the beach is a whole new kind of dirty. Going to the beach? Gets you dirty. Camping? Gets you dirty. Camping on the beach? Super dirty. I had sand in every single crevace. But for the views and swimming it was worth it.

Rants & Raves:
  • There was a little rain & gnarly waves courtesy of our friend Hurricane Bill, but we are tough.
  • I think I may have figured out the perfect food for camping: Pre-smoked sausages from Hillshire farms. They are way more satisfying than hot dogs but just about as easy to cook. Just wrap them in some foil and throw them in the campfire.
  • Peaches are delicious. I got a bunch from the market in Philly where we had spent the previous night.
  • Foam camping pads are terrible. They provide absolutely no padding. Get some kind of blow-up pad ASAP. I borrowed this from a friend.
  • You will never eat as many granola bars as you bring.
  • Maryland really is a beautiful state. I was thouroughly impressed with the scenery as we drove back to Pittsburgh. Also, dig that bay bridge! It's no Causeway, but it's still pretty serious.

Saturday, August 1, 2009

Girl Talk!

Last night I saw Girl Talk in concert and had a great time! The concert was held at the Station Square amphitheater which is conveniently right next to Sation Square, but which has these amazing views of downtown, since it's right across the Mon. The scenery was definitely amazing, since we got there at about 7:15, and watched the city slowly get darker as the sun went down.

There were at least four good bands: Grand Buffet was tight as always. I liked seeing this band Donora, who had this Shhh! indie rock chick thing going. Then there was Wiz Khalifa, a more serious rapper, who was pretty good and had at least one song I already knew ("Say Yeah") from Girl Talk.

And of course there was Girl Talk. I really do love Girl Talk. He has achieved something that is really way beyond any other mashup artist which is, I guess, to make me actually like a mashup artist. Many of his songs, while maybe not better than the original, certainly have more energy. He has a pretty standard formula of Rap + Pop Hook, but the songs really come at you pretty fast & furious. I think he probably does a better job at picking the backing songs than many rappers themselves do. Maybe he should be a producer? Here's one example of that.

The concert itself was definitely fun. Dancing was the order of the day, and despite the fact that this was a big outdoor music festival, people were really dancing and having a good time. The vibe was like 90% positive I would say. If I had one complaint I guess I would say that his songs tend to drag just a bit more live than they do on the albums, but I figure that's because he's doing a little bit more in person and therefore needs more time to think. Anyway, highly recommend

Sunday, July 19, 2009

You're the Best

 Remember that time I won the Stanley Cup?

Thursday, July 16, 2009

Italy & ECOOP


Italy-2009-3
Originally uploaded by DixiePistols.
Well I'm back! Last night I returned from Italy on a Milan-Atlanta-Pittsburgh flight. Overall, the trip was great! Here's how it went down:

First off, I took the Pittsburgh to Paris flight. It was really great to fly direct to Europe and even thought it was a relatively small plane (757) they had those awesome TVs where you get to choose your own movie, TV & music, which made the flight fly by.

Genoa is a cool city. At first it looks pretty grungy, but the old city, with its tiny alleyways and the port on the Medditerranean were wonderful and made up for any other low points. We took full advantage of the Italian tradition of pre-dinner drinks, and I met a bunch of cool people from the conference.

The conference itself was also interesting. My workshop paper was fine, and ECOOP had more papers that I actually want to read than any conference I've ever been to before. I would say that 10 of 25 papers were interesting, when compared with the normal 3 or 4. Also Simon Peyton Jones gave a keynote, and I finally understand Haskell's Type Classes!

After Genoa I met up with Amy, a friend studying in Italy. We went to Milan for one day, which was fine, and then we moved along to Domodossola, a small city on the Swiss border in the Alps. I didn't really know what to expect, but we had an amazing time. There were two big highlights. First, we went to an Italian/Mountain folk festival where we ate ribs, sausage and listened to Italian folk music which was kind of like polka. The sausage was definitely the best I have ever had in my life! The next day we went to Lago Maggiore, the biggest lake in Italy. While it was full of European tourists, the scenery was awesome, so I didn't care. There were three tiny islands that we visited with palaces & gardens. The whole thing had the feeling of a Greek village. Definitely awesome.

Italy's great, and sometimes I sort of forget that. I definitely prefer the smaller places we went to over, say, Rome which is hot & crowded (but still great). It's great to be back!

Sunday, July 5, 2009

Made it to Genoa

So I am in Genoa!

Haven't done much so far, but I guess I found the hotel's wireless. The flight was really neat. I really enjoyed taking Delta from Pittsburgh to Paris, and the flight was mostly full, so I guess that's a good sign for Pittsburgh. We also had on-demand video in the seats, which makes all the difference.

Here in Genoa the weather is nice & sunny but humid I guess. I've been stuck in this organizational meeting for the student volunteers at ECOOP, and frankly it's not quite the streamlined operation I'd hoped it'd be, but whatever I guess I can't complain since it looks like I won't have too much work to do.

More when I do it! 

Thursday, July 2, 2009

More Sick Hits! Trip to Italy

This is going to be a short entry, because I am just to about to go to a group meeting, and my parents are in town, so I'm running around like a crazy person. But I need to make you aware of some important facts!

Number 1! Sick Ridiculous and the Sick Ridiculous have released two new mega-hits! You may have already heard over on Tom's blog-o-sphere, but have recorded two recently custom party songs (because, as you know, we write a new song for every party where we play!). The first song, Come With Me Iff You Want to Live, is about how in the future, man is at war with robots, and how a universal health care plan is man's last line of defense. We wrote it for a party at Gabe's house. The next song, Hurricane Dan (2006), is about a Hurricane. Specifically Hurricane Daniel, which hit Hawaii. We wrote it for Katrina's graduation party. It rocks, if I do say so myself!

Also, I am leaving for Italy on Saturday. I am super jazzed. I am going to Genoa for a conference (ECOOP, where I have a workshop paper, and another paper that I co-authored). Should be a blast. I am also going to travel around just a little bit after the conference is over, so wish me fun. I'll tell you all about it when I get back!

Friday, June 26, 2009

Scala + Eclipse: Still Not Quite Right

 I like Scala, and I am excited about it. But for some reason, every time I try to use it I encounter some minor annoying issue that sort of turns me off and prevents me from making more use of it. Not something significant mind you (type system, performance) but rather something simply annoying.

This time: I just read about improvements to the Eclipse IDE which would make it easy to create mixed Java/Scala projects, which would be great for Plural. So I downloaded it, installed it, and what do you know, I can't even create an object without a syntax error! This is definitely a bug, since I created an object using the wizards, but when I do it I get a syntax error, "Syntax Error: Delete these tokens" on my object declaration. This bug has been reported, but not fixed, and makes the plugin entirely unusable for me. Boo!

Tuesday, June 23, 2009

Creating an Eclipse Update Site with Source Code

This is going to be a rather technical post. Sorry, but I couldn't find information about this anywhere online, or at least I was misunderstanding what information was available online. What I am going to try to explain is something that I just figured out. Let's say you are creating an Eclipse plugin, and part of the functionality provided by your plugin is some classes that will be usable by other programmers who are using your plugin. How can you make it so that the update site for your plugin includes the source code for your plugin, so that users can hover over class names, see the Java docs, etc.?

A good example of this type of plugin would be Crystal, a static analysis framework for Java that I have spent a lof of time working on. See the problem is that just using the regular update site functionality is not good enough. So let's discuss:

Symptom: You create an update site for your plugin, but when you do it does not include source code for your plugin, or alternatively you'd like to but haven't figured out how. The most frustrating thing that I encountered was that, while a regular "Export"-style plugin deployment would work (wherein you right-click on your project, select "Export," go to "Deployable Plug-ins and Fragments" and then be sure to check "Include Source Code", image 1) the JAR file that was getting created for the purposes of the Update Site would not include any source. This was verified by examining the JAR files produced by each mechanism with WinZip.

Solution: The most important thing to realize, I guess, is that the options offered to you in the standard "Update Site Build" screen (image 2) are not everything that is available. Here's how I made this work: 
  1. First, I am assuming you have three projects, your plugin project, your feature project, and your update site project.
  2.  In the Feature project, the only thing that seemed important was that I had to uncheck "Unpack the plug-in archive after the installation" on the "Plug-ins" tab. It did not work with this tab checked. (You do have to set up the feature normally, but I am omiting those details, since they are standard.)
  3. In the Update Site project, add a category and add your feature, as shown in image 2, and as you'd expect to do. However, don't bother hitting "Build" or "Build All." They will only get you a source-free plugin.
  4. Right-click on your feature project, select "Export..." and then select "Deployable Features." Now here are all the options we are looking for! (Image 3)
  5. You need to select a place for all this stuff to go, but choosing the directory export option, and choosing your update site project seems to be the best bet.
  6. Choose "Include Source Code," and also you want to package as individual JARs and include metadata. This will generate the archive.xml and contents.xml files we need for the update site!
  7. I also saved an ANT file, so I could automate this in the future, for when I am ready to make my next release.
  8. It will do a bunch of building stuff, but basically you're done!
So yeah, I found this whole process to be pretty easy once I figured it out, but very poorly documented! Now programmers who write static analyses that extend the Crystal framework can see the source and the documentation for the files they are using. Awesome!













 

Wednesday, June 10, 2009

Computer Problems Fixed & Terrible Visions

I fixed my computer! I'd been having the same problem for about 2 weeks, which rendered my computer more or less useless. After 10 minutes it would freeze, and then each time I would restart after that, it would basically freeze immediately. The problem? My video card! I figured out that that was the problem when the screen was frozen on the Windows error recovery prompt (You know, the one that says, "Windows did not shut down properly, would you like to start in safe mode, etc., etc.), but continued to start up and eventually played the Windows login sound. I tried using my computer's built-in video card, which still has DVI output, and everything is now grand. During the whole process I remembered vaguely that when I bought this video card it needed at  least a 300Watt power supply but recommend 350 (or something like that) and I only had the bare minimum. I'll chaulk it up to that and move on.

I had a less pleasant experience this past week. Kevin, Maja and I have been attempting to pass the Enless Setlist 2, on Rock Band 2. That's where you play every song in the game (84) without saving or anything. You can pause it though, so we were definitely taking breaks. Anyway, we were doing fine, ripping through every song without dying until song #82, a catchy little number called "Visions," by Abnormality. Suffice to say that, a.) even though I was playing on hard, when I normally play on expert b.) Kevin & Maja were both playing on medium c.) we called over Tom VII, our designated RB ringer, we still could not beat this crappy song, and we gave up. It was so hard and completely a-rhythmic. Compounding this was some kind of synchronization issue with their TV, but it wasn't a problem at all before then. Harmonix, I hate you. I may be done with Rock Band. Here's video of a guy actually beating the song on hard.

Monday, June 8, 2009

D.C. for like 36 hours

This weekend I went to Washington D.C.! But not for very long...

You see a certain special lady found a super sweet deal on a flight to Europe, and that flight was leaving from Washington D.C. Because of her copious friends in that city, we decided to turn in into a mini vacation, one that started on Friday morning driving to D.C., and ended up with me driving back Saturday night by myself.

The trip was fun. We basically did no real touristy stuff. We mostly hung out with friends. For example, on Friday night we went to a Korean BBQ restaurant, which was amazing, and then to Asian style Karaoke, where I sang many songs over the course of four hours. Best song? Escape (The Pina Colada Song). Worst song? Land of Confusion, by Genesis. It's not so much a bad song as it didn't go over very well. No one else knew it, and the Karaoke video was full of wierd imagry (e.g., Adolph Hitler).

Saturday we went to a crepe place called Crepes A-Go-Go. Also very cool.

Sunday, May 24, 2009

My Guild Starfire III


Starfire-III-2
Originally uploaded by DixiePistols.

These days I mostly play my acoustic guitar. In fact, I last played one of my electric guitars on a regular basis back in high school. But, I do have two electric guitars, a Les Paul Delux from the 70s and a Guild Starfire III that I bought new, circa-1997, and pictured to the right. Guild is a funny company. They're mostly known for acoustics, not electrics. They got bought by Fender in 1995 or something, and since 2005 when they were merged in with Tacoma Guitars, they haven't made any electrics. Still, I always liked the Starfire, and I remember it playing well and sounding good.

Recently though I've been a lot more excited about electric guitar. I chaulk this up to some massive Guitar Hero sessions. Unfortunately, while my guitar still looks good, it's got some, uh, serious tuning issues since returning from its prolonged vacation. For one thing, it won't stay in tune for more than a couple of songs, even after I replaced the strings. Partially I attribute this to the Bigsby tailpiece. (Seriously, why did I ever get this? Did I think I was going to be in a Rockabilly band or something? The Starfire IV is basically the same guitar but with a regular tail. That's what I should have gotten.) But mainly I attribute it to the floating bar bridge, which I am only now coming to understand. Which brings me to my next issue.

The intonation of the guitar was also totally F-ed. For those of you out of the loop, when a guitar's intonation sucks, a string could be perfectly in tune when you strike the open note, but then flat or sharp when you strike a higher note. In my case, about 1/2 a step flat (!!!) when hitting the 12th fret.

See here's the deal: Basically for a very long time I did not understand intonation. I am only just beginning to understand how it works and how to fix it. On most guitars it's not too bad. Take this Epiphone Casino for instance. It's got a Bigsby, but it's also got a bridge that's screwed into the body, and a tune-o-matic bridge. With this guitar you can easily adjust the intonation by using a screwdriver and moving the little bridge piece for each string forward or backward.

Now check out my bridge. First, and more obviously, it's not no tune-o-matic. This is called a bar brige (I think) and it means that you cannot individually adjust the intonation for each string. That's not so bad. But if you look closely you will see that my bridge is NOT screwed into the guitar's body. Only the tension of the strings keeps it in place, so to adjust the intonation you just push it back and forth, which honestly feels really wrong. I wouldn't have done it if this forum I found hadn't confirmed that this was "best practice."

Anyway, the result is that it's much better, and I'm glad I know how to fix it, but it still needs a little work. My tastes in guitars has changed over time. At this point in my life, the only thing I care about at all is whether or not the guitar stays in tune. That's it! (Okay, this is not entirely true, but it's close enough.) My Acoustic, for instance (a Taylor 814ce) basically never goes out of tune, and always sounds great. I love it. My Guild still looks cool, and is sounding better, but still needs some TLC. Kids, get yourself a guitar that will stay in tune.

Thursday, May 21, 2009

My First HD Video

Today I made a screen capture demo of Sync-or-Swim, the static analysis program that I created with Kevin Bierhoff as part of my thesis research. You should definitely watch it now, even if you don't know anything about computers. If you want to actually be able to read the text, you should watch in HD, fullscreen.

Sync-or-Swim Video

The creation of the video was a little annoying. I needed it to be HD so that the text was actually readable. Here's how I did it:
  1. Downloaded CamStudio, a great and free screen capture program.
  2. Downloaded their lossless video codec.
  3. Important: If you watch Vimeo to recognize your video as HD, it cannot have a 4:3 aspect ratio! To fix this I changed my screen resolution to 1280x768. I told Windows not to stretch the screen so that I saw black bars at the top and bottom.
  4. Record and upload to Vimeo. Sweet!

Also, if you've been wondering why my rate of posting has dropped a bit, it's probably because I am putting more of the pointless stuff up on Twitter. If you want to follow me, do, but you'll have to request my friendship (nolacoaster). I still can't decide if I should be open or if I want the protection to post #juicytweets.

Sunday, May 10, 2009

Owen's Wedding


Movie Stars Cut Cake
Originally uploaded by DixiePistols.
This weekend I drove to Columbus, OH for Owen's wedding. This is like the third one actually. There was one in Taiwan, one in Vegas (visa-related, I think...) and now one in Columbus where Owen's family lives. It was great. The food at the reception was particularly good. It was at a Chinese restaurant there. Highlights include a giant whole fish that was super moist and a big mound of lobster pieces. As you can see from the pictures, there were a ton of camera and A/V people getting in the way of my pictures. ;-)

This makes two weekends in a row that I am taking and posting pictures! I must be getting back into photography...

Friday, May 8, 2009

Stress Test Results: Banks Named!

Since it's been rather difficult to find a listing of all the banks that were stress tested, and whether or not they passed, I thought I'd post this information. The data comes from this government document (thanks  ). See how your bank stacks up! Note that in reality there are different degrees of fail, and each bank that fails will have to raise different amounts of capital for reserve purposes.

American ExpressPass
Bank of AmericaFail
BB&TPass
BNY MellonPass
CapitalOnePass
CitigroupFail
Fifth ThirdFail
GMACFail
Goldman SachsPass
JPMorgan ChasePass
KeyFail
MetLifePass
Morgan StanleyFail
PNC*Fail
RegionsFail
State StreetPass
SunTrustFail
U.S. BancorpPass
Wells FargoFail

*My Bank


Update:
Okay, I finally found someone else's posting with details!

Thursday, May 7, 2009

Art All Morning


15
Originally uploaded by Sgt. Pepperedjane.
Just in case that you doubt we played Art All Night at 10:30am, now there are pictures to prove it. Thanks!

Tuesday, May 5, 2009

Stat Boy

Whoa, flickr now has statistics for user accounts, and they're pretty fun to investigate.

Check out the post-marathon bump that I got. 

And here are my most viewed pictures of all time.

Update:
Okay, so apparently the stats are private. Boo. What I can tell you is that this picture of a henna tatoo is the most popular, and it's been viewed 4787 times.

Monday, May 4, 2009

Pittsburgh Marathon 09


Jonathan
Originally uploaded by DixiePistols.
Yesterday was the Pittsburgh Marathon! It was a lot of fun to watch, although I can't say much about how fun it was to run. I took a bunch of pictures. Most people I know who would care have probably seen all of these, but for completeness sake I'll tell you who I saw!

My hardcore friends who run marathons include:
Jeff
Noam
Jonathan
Gabe S.
Emily
Gabe Z.
Stacey
Tom
Carsten
Mary
Thomas
Patrick

You guys rule! You make me want to start running again, so pencil me in... Great Race 2009. No, I am not doing any marathons, and even if I do one some day, I am not dumb enough to commit to one now, considering I haven't run since last summer. But it was really fun to watch, and I got excited by the prospect of running again.

In other news, I am trying to grow banana peppers in my back yard! If only I lived in a city with 6+ hours of sunshine a day, as the seedling suggests banana peppers require.

Thursday, April 30, 2009

Synchronized Statement and Nested Classes in Java

I just encountered something in Java that I thought was worth mentioning. It's not exactly a gotcha, but it's good to be aware of.

If you have a nested instance class, synchronizing on this in the inner class is not the same as synchronizing on this in the outer class. This may seem obvious, but it is worth noting because the inner class can refer to methods of either the inner or the outer class in a seemingly ambiguous manner (without explicit qualification). Here's an example program, and its output:

public class WhatIsSyncQualThis {
 
class IJustDriftedAway {
void superFoo() {
synchronized(IJustDriftedAway.this) {
if( Thread.holdsLock(WhatIsSyncQualThis.this) )
System.out.println("1 - held");
}
synchronized(this) {
if( Thread.holdsLock(WhatIsSyncQualThis.this) )
System.out.println("2 - held");
}
synchronized(WhatIsSyncQualThis.this) {
if( Thread.holdsLock(this) )
System.out.println("3 - held");
}
synchronized(this) {
if( Thread.holdsLock(this) )
System.out.println("4 - held");
}
}
}
void fooIt() {
(new IJustDriftedAway()).superFoo();
}
public static void main(String[] args) {
System.out.println("Running");
(new WhatIsSyncQualThis()).fooIt();
System.out.println("Done");
}
}

Output:
Running
4 - held
Done

If you know how nested instance classes are implemented, this is not at all surprising. A separate class is created that takes as a constructor argument a reference to an instance of the outer class. So there are two separate instances upon which we are synchronizing.


Tuesday, April 28, 2009

Sick Party


IMG_8095
Originally uploaded by Genug.
Some pictures were posted from Cortney's party, where we played on Saturday!

Monday, April 27, 2009

I'm Eating Hummus

Make sure to check out the Hummus rap.

Sunday, April 26, 2009

Hectic, Fun Weekend

Oh man, this weekend was really busy, but really fun. Those of you around Pittsburgh know that the weather was unbearably nice, and everyone was outside with their dogs and gardens and iced coffees and whathaveyous.

Friday night I joined some Pitt students who were celebrating the end of their semester. Thanks to the weather, a normal party turned into a porch party, which was quite a bit of fun. Only problem? I didn't get home until like two, even though...

The next morning I woke up at 9 or so for the 11am Urban Hike. It was the first one of the season! We were in the Mt. Oliver/Allentown area. That's sort of in between the south side slopes and Mt. Washington. It was really nice mostly due to the weather, but there was a good crowd, a couple people brought their dogs, and we even discovered a new park, Grandview Park, with great elevated views of downtown.

Than night, a Sick Ridiculous concert! We played at a party for our friend Cortney's birthday. The sound was really good for a party, and the fact that we had an extremely audience resulted in a large amount of fun being had by me and Tom. Thanks to those of you who were there. We wrote a new song about universal heath care and time traveling robots called, "Come with me if you want to live."

Today, we had another Sick Ridiculous show, this time at Lawrenceville's Art All Night. While the crowd wasn't quite what I heard it was the night before, it was surprisingly good for 10:30am. I did think our playing suffered a bit. I think we need more warmup or something, but it took about 15 minutes before we were clicking and sounding decent. Thanks DOUBLE if you made it out this am.

Then, lunch of Dim Sum, afternoon backyard sitting and dinner at the Grand Concourse in Station Square. I will go pass out now!

Friday, April 24, 2009

Kevin's Defense & Bite of Brecht

Man, it seems like everyone is defending or proposing these days!

Yesterday I went to Kevin Bierhoff's thesis defense. Since my work is based on his and also he is my friend, I thought it'd be a good idea to check it out. The defense was great. There was a huge turnout. He passed. The talk went well, if a little light on the technical details, but it was great for a general CS audience. Later that night we went to Bites & Brews to celebrate. Congratulations Kevin!

I also went to see Bite of Brecht, a play on campus that focused on the poetry of Bertolt Brecht. Among other things, it included the song Mack the Knife, which he wrote for the Threepenny Opera. I was expecting some avant-garde garbage based on the lukewarm review in the City Paper, but I actually found it to be quite entertaining. The music was good. The acting was good. There were some funny parts. It did seem to drag a bit at the end, but that was my only complaint. Check it out.

Saturday, April 18, 2009

Scala + SDL


Gradients RuleAfter spending a lot of time doing pointless things, I finally got SDL to work with Scala. Actually, there was nothing tricky about the fact that I was using Scala, that was just part of my original goal. You could equally well say I couldn't get SDL to work with Java. It was pretty obvious that I needed to download SDL.dll and the bindings for Java (both a jar file and some more DLLs), but even then things still weren't working. I was getting the dreaded java.land.UnsatisfiedLinkError. 

Turned out I needed to do three things...
- Add -Djava.library.path= as a VM argument, giving it there folders where both the SDL DLLs and the sdljava DLLs were located.
- Add System.loadLibrary("XXX") for each of the required DLLs into the code itself. This is difficult because it's kind of hard to figure out which DLLs are required! I used this tool to figure it out. 
- Lastly, the biggest problem was that I needed a DLL that I didn't have, SDL_image.dll. The tutorial I was using needed it, but I guess it didn't say or I didn't see where I needed to download it separately. You can get it here.

Thursday, April 16, 2009

Waffleweb

Check out the Waffle Shop web site right now to see the cool dudes who are on the front. Then go to the "About" section to see yourself (at least if you went to the show). 

Tuesday, April 14, 2009

Waffle Shop Pictures


The Dance.
Originally uploaded by drxiv.
Check out some pictures from the Waffle Shop Show! Someone who works there took some (that's drxiv) and Tom took some too.

Update:
Hey! Turns out drxiv doesn't actually work at the Waffle Shop, but is rather a CMU grad student just like me! Still, thanks!

Monday, April 13, 2009

Portmeanteau-yeah!

After several similar conversations with Tom, I have decided to start keeping track of portmanteaus that I personally discovered. (Portmanteau fans believe that all portmanteaus already exist in nature.) The list is pretty small now, while I try to remember some of my back catalogue...

Portmanteau

Sunday, April 12, 2009

Waffle Shop! Waffle Shop!

Last night's show at the Waffle Shop went really well! Thanks to those of you who made it out, we hope you had a great time. And as always, no guilt to those of you who didn't make it. Our bylaws explicitly prohibit the guilt-tripping of our own friends!

Technically, the show went okay. We thought it sounded pretty good, and definitely better now that Tom has a new guitar with a built-in pickup. However nothing beats professionally managed sound, like that that we received at the Lava Lounge. When we're doing the sound ourselves, it kind of hard to tell about the overall volume, mix, etc.

But fun-wise, the show was great. I think the Waffle Shop is a great place to play, we got interviewed, we got to debut our own custom waffle, Twix Ridiculous and the Sick Bisquik-ulous, a waffle with baked-in Twix candy bars, and there was a great turn-out. I think this may have been the most people they ever had at the Waffle Shop, based on the way that the people working there were taking pictures. Actually, that would make plenty of sense since normally people won't come in if all the tables are occupied (they were) but they will come in if there is a band playing, even if there is no more available room (they did)!

Pretty soon we should have some pictures up, and a little bit later we may even have a link to our interview. You see the Waffle Shop is some kind of reality TV show on the Internet, and as part of our performance there was a bandatory interview. WAFFLE SHOP!

Friday, April 10, 2009

Hockey is Lif

Last night I went to a Penguins hockey game, only the second that I've been to since living in Pittsburgh. It was great! Our tickets were partially subsidized, but since the face value was $100, they still were a little bit of money. No bother. They were great seats, the game was fun, Pittsburgh won 6 to 1 and we even managed to get a bus back home.

Now as you may know, Penguins hockey games take place in Mellon Arena which is soon to be replaced by a new arena of unspecified corporate sponsorship. Mellon Arena (aka Civic Arena, aka The Igloo) is described as an outmoded facility, which I have to say is probably true. Inside it has kind of a dingy feel, and some of the sigh lines are absolutely atrocious, ones you'd never see in a modern arena. If anything I'd have to say it felt a little like the L.A. Sports Arena, which I think is of a similar vintage, although the Sports Arena didn't have any sight lines as bad as some of the ones in Mellon. (One seat had a pole right in front of it, Fenway Park style. And for the only other Penguins game I've been to, we were "sitting" in standing-room "seats" on the periphery with an overhang in front of us that made it impossible to see the other side of the rink.)

One nice thing was that Mellon is pretty small. Even the highest seats still have a great view of the action, which is something you can say about other Pittsburgh sporting facilities (PNC Park, Mustard Palace) but not more modern facilities in L.A. (For example, the Staples Center is an absolute beast of an arena. The highest seat there are really, really high.)

Go Penguins.

Thursday, April 9, 2009

You Want a Waffle With That?


Waffle Shop Poster Let's say this weekend you're walking around East Liberty, minding your own business when all of a sudden you realize, "Man, I am so hungry right now. I sure could use some sugar and startch!" And let's say that you also happen to like music of a, let's say, Business Casual variety. Well it would be to your advantage to walk into the Waffle Shop at 11:15 for a Sick Ridiculous & the Sick Ridiculous show, wherein you will also be served waffles by the friendly patrons.

It's Saturday night, we are the only band, and it's free, save for the money you spend on a waffle. But considering the one time I went there I spent like two bucks on a waffle and another dollar on my hot chocolate, I think you will leave satisfied. 

Special things: We may have a custom waffle. We will have a new song.

Monday, April 6, 2009

SIGBOVIK 2009 Recap, Featuring Arkan∞id

As SIGBOVIK 2009 comes to its glorious conclusion, it's time for me to reflect somewhat.

This year's events was quite successful, for a number of reasons. First, we were in Scaife Hall 125, this amazing conference room which is perfect for the event. I hope we continue to have it there. There were a number of great presentations. The proceedings (which can be purchased or viewed for free here) look amazing. But what's more, there was a great turn-out, and the days events proceeded very smoothly, with the one exception of my maybe having too much coffee. 

There were also a bunch of "real" projects that people spent their time on. For example, check out:And of course, there was my own work! I made a game called, Arkan∞id, the infinite brick-breaking game. (In the spirit of Breakout and Arkanoid.) You see, it's like a normal brick-breaking game, but it goes on forever! Some semi-clever engineering makes it so. Plus, it's a Blackberry game, so you can leave it running all the time! So, here's what you should do:Oh, and one more thing: This research work is award winning! My paper won the 2009 award for "Most Pixels," which really I think I deserved. The award itself was a flash animation, which you can see here, and which itself won the people's choice award for best presentation!

Friday, April 3, 2009

PlayStation

Why is it that whenever it's raining really hard in Pittsburgh the 8:45 and 9:00 54Cs don't show up? Let's get on that.

Yesterday I bought a Playstation2 second-hand from a friend. I've got the first three Guitar Hero games and I'm planning on buying a few more, specifically Katamari and Amplitude. Does anyone else have any PS2 recommendations? I don't have much time to play video games, so I would only be looking for earth-shatteringly awesome video games. Actually, this is one benefit of buying a system after everyone else has played it. It's already pretty well known what the best games for the platform are.

Tuesday, March 31, 2009

SIGBOVIK 2009

SIGBOVIK Poster 
This Sunday is SIGBOVIK 2009! Be there! I will be formally presenting Arkan∞id, whatever that could possibly be!

Monday, March 30, 2009

Lava Lounge Recap

This might be a good time to mention (over a week after the fact!) that our Lava Lounge show went really well. We were a little concerned about turn-out, but of course as it TURNED OUT, we had no reason to be. Our friends came out in droves, and for that we thank them. The place sounded really good, and we were pretty happy with our performance.

I just got back from Boston. I was there over the weekend for a conference of Brianne's. Boston is fun to visit, but so different from Pittsburgh. I am glad to be back.

This week, Aditya, my mentor from Microsoft Research India, is going to be in town. He'll be speaking and we'll be meeting and trying to get some "research" together. Should be fun!

Saturday, March 21, 2009

The Smartest Guys in the Room

Just finished reading, The Smartest Guys in the Room: The Amazing Rise and Scandalous Fall of Enron. This is a good book, and I highly recommend you read it. It basically tells the story of Enron. It seems funny to think about Enron now, since the scandal was such a big deal at the time. Given the current collapse of some of America's larges financial companies, it seems a little quaint in a way. But it definitely serves as a lesson about the dangers of following the crowd in a bull market.

Enron's biggest problem was basically that they didn't have a lot of cash. They were constantly making "deals" that they would immediately book as profit, using mark-to-market accounting, but then those deals often wouldn't pay any actual money for years. They spent tons of money on losing ventures, but were terrified of listing any debt on their balance sheet, so they created all kind of shady, Special Purpose Entities; nominally independent investment partnerships that would take on Enron's debt, with a wink & handshake agreement that they would never lose money. When it became obvious how much debt Enron really had (something like $40 billion) and how little cash was coming in the door, everyone ran for the exits.

I did come away with new new-found respect for short-sellers. Far from the vultures they are often presented as, short-sellers do a valuable job of uncovering the hidden realities buried in quarterly reports. These are often the realities that a stock's "cheerleaders" are entirely unmotivated to find. In this case, it was the short-sellers who started asking the tough questions.

Wednesday, March 18, 2009

Tomorrow Sick Ridiculous plays the Lava Lounge

Sick Ridiculous PosterDon't forget (if you ever knew in the first place) that tomorrow, Sick Ridiculous and the Sick Ridiculous will be playing at the Lava Lounge which is on the south side. It should be rad. Here's the full recap, and more details can be found here, here and here.

Date: Thursday March 19th 2009
Sick Ridiculous, 
Big Hurry and the Central Plains (In that order)
Doors: 9pm
Sick Ridicuous: 10pm
Cost: Less than or equal to 5USD
Locale: The
Lava Lounge, 2204 East Carson

Wednesday, March 11, 2009

We Know Something

Watch this music video from Jurrasic Five and DJ Format!
http://www.vimeo.com/361491

Tuesday, March 10, 2009

American Lion & Team of Rivals

 First reading of the emancipation proclamationI just recently finished reading the second of two history books that I received over Christmas. The first, American Lion, was about Andrew Jackson. The second, Team of Rivals, described Lincoln and his cabinet. Both were told through extensive use of primary sources, mainly personal correspondence. Both were long, but e the end very good, and this comes from someone who doesn't read much history.

Lincoln is especially fun to read about since, as you may have noticed, he is sort of a super hero/mythological character in American society. It's hard to know how much of this praise is warranted. Team of Rivals, gave me a great impression of Lincoln, but what seemed to be an honest one. He was definitely a politician, but an excellent one in that he succeeded uniting very different groups within the Republican party. He was the kind of guy that everyone liked once they met, but was often made fun of. It was especially funny to hear him referred to as the "prarrie lawyer," since at the time being from Illinois not exactly a mark a sophistication.

Okay, in short I would highly recommend both books if you have a fair amount of time on your hands!
http://www.cs.cmu.edu/~nbeckman/books.html

Monday, March 9, 2009

SIGBOVIK 2009

Just wanted to remind you all of your constitutional obligation to submit to SIGBOVIK 2009, CMU's preeminent fake conference in computer science. This year we've got an EasyChair submission site, just like a real conference. I am currently working on a (secret) project that will be the basis of my submission. It's sucking up all my free Spring Break time, but is pretty fun. I'm not actually sure that this will be at all funny, but it certainly will be strange and something that could not otherwise be submitted at a real conference.

On Saturday night I went to a heroes/villians costume party as The Shoveler, from the movie Mystery Men. Not too many people recognized my character. I guess that movie wasn't as popular as I remembered. If you have thefacebook, here's a picture.

Friday, March 6, 2009

Spring Break Woo & More

Today marks the beginning of Spring Break 2009, which means it's extremely quiet around the halls of Wean, um, Hall. That's okay. I'm in a relatively good mood.

Yesterday I found out that a paper that I co-authored was accepted at ECOOP 2009. It's called "Practical API Protocol Checking with Access Permissions," and it describes a case study in using the protocol checker Plural to find bugs in real programs. Actually this is mostly Kevin's work. He is the primary author, and this paper comes in large part from his thesis which he is diligently working on. But he doesn't have a blog, now does he? So that means I get to bask in the Internet glory. Um, and you can check out the submitted version of the paper here. (Also congrats to Ciera whose paper was also accepted!)

But the acceptance of this paper definitely has consequences for me, since I was planning to resubmit my failed TRANSACT submission to an ECOOP workshop. Now I'll really have to get on that since I might actually be able to go. (It's in Genova, Italy. How very swank.) I've never yet been to ECOOP, which has a slightly more theoretical and I guess European feel to it than, say, OOPSLA where I have been a couple of times.

In other news, I finally saw "Frost / Nixon," or as I like to call it, "Frosted Nixons." Good movie. As you've no doubt already heard, Frank Langella does an amazing job of portraying Nixon. 

Monday, March 2, 2009

Separation Logic

Today was the last day of "Introduction to Separation Logic," a mini-course that I am taking from the creator of Separation Logic himself, John C. Reynolds. It was a good course. Even though I found it difficult, I actually got a quite a good deal out of the course because I decided to take it for credit and therefore I actually did the homework. This will come as no surprise to many of you, but if you actually do the assignments in a course that is centered around proofs you get so much more out of it than if you kind of just take the theorems as already having been proved by someone else.

The weird thing about separation logic (for me) is how different it is from other logics that I have learned which were based upon "hypothetical reasoning." Hypothetical reasoning, I am lead to believe, it pretty much the latest, greatest way of presenting a logic. You get this context of assumptions and then you can do your reasoning from there, using facts from your context whenever necessary. 

Proofs in Separation Logic had a much different feel. In it, you have a whole bunch of rules that are implications. There also aren't really introduction and ellimination rules, just more rules. Every single proof that I did was like this:
I want to prove 
P => D

Therefore, I start with the rule
P => P

Then I find things that P implies that are slighly closer to D...
P => P'

and I have to use the rule, "P=>Q and Q => R means P => R" at every step along the way... Not sure if that makes sense, but it was new for me.

If you're interested, and outside of CMU, you can get the lecture notes for the entire course from John's web site. This is a great way to learn separation logic which has recently become kind of a big deal.