Friday, December 26, 2008

Action Jackson in Action

Hornets Game 014
Originally uploaded by DixiePistols.
As promised, I took my mom's camera to tonight's Hornets game versus the Rockets. Again they showed Tom's font, Action Jackson, and this time I got pictures. (There are about 14, ranging greatly in quality.)

You be the judge. Does it match this?

Wednesday, December 24, 2008

Hornets Lakers

Last night I went with my parents to the New Orleans Arena to watch the Hornets play those jerks from L.A., the Lakers. Going to sporting events with my family is one of my favorite things to do when home! Unfortunately, the Hornets lost. In fact, the game was a little painful to watch because, even though the Hornets are pretty good, they played a bad game last night and were never seriously contending. It was pretty frustrating to watch the Hornets run no offense whatsoever. When you run no offense and you shooting is cold, as was the Hornets' last night, it's pretty hard to make a game out of it.

On the bright side (?), last night did solidify my dislike of Kobe Bryant! I still think he's an annoying primadona who gets every single call from the NBA refs and doesn't try very hard unless he thinks he's going to score.

Something else amazing happened at the game. As you may know, at most NBA games they play a lot of annoying, distracting music during play. Such was the case last night when the folks at the stadium began to play that, "Clap Your Hands" song that used to be in the McDonalds comercial. Well, the first time they played it, I looked up at the jumbo-tron to see an amazing site: Tom 7's font, "Action Jackson" and the words "Clap Your Hands." Here's a fascimile:

Clap Your Hands

Needless to say, I was in shock. I am about 95% sure it was his font, so I texted him and he knew nothing about it. I'm going again this Friday and I'm going to try to sneak in a camera so I can take a picture. Wild!

Sunday, December 21, 2008


I'm in New Orleans for the holidays! I'll be back to Hittsburgh right before New Year's, and looking for something to do, but for now, I am taking it super, super easy. TV? Yes. Food? Yes. Book? Possibly.

In Hillary Clinton news, I can't really understand why a U.S. Senator would want to be the Secretary of State. It just doesn't seem like much of an upgrade to me. I mean being a senator in this country is more or less a life-long position, unless you really screw it up. It seems unlikely now, but it's always possible that she could be looking for a new job in four years, or even less. Moreover, a senator has actual, constitutionally-granted legal powers. Hmm...

In more political news, Good Ole' Louisiana became the first state to elect a Vietnamese-American to congress! Take that, so-called progressive states.

Okay, so I know I'm an idiot. The link I posted lead to William Jefferson, who is a representative, not a senator. For examples of senators who "really screwed it up," how about this guy? or perhaps you perfer him?

Wednesday, December 17, 2008

News x2

 I've got two items of good news that I've kind of been sitting on for a bit, mostly because I didn't want to jinx them. But today they both fell into place!

Today I Scheduled My Proposal!
Today I scheduled my thesis proposal. It will be early next semester, January 27th at 9am. It will be at 9am. I am so sorry for the early time, but my external member is in India which is 10:30 hours ahead during the winter. It should be a rad time. Full details are forthcoming, since I don't have a location yet, but other than that, all of my committee members have committed to a time, and I have written my proposal document. Sweet!

Today I Signed a Lease!
I am moving to Bloomfield! My apartment is basically here. I am very excited to be moving to Bloomfield, where I can still get to school via bus or bike, but where I have a little more variety in terms of restaurants and bars. I looked around for a while and didn't find much, but the last apartment I looked at was very nice. It's also very reasonably priced and has parking. Hard to lose. Stay tuned for the obligatory "new apartment" pictures and the housewarming party. I can pretty much move in today, although I'm waiting until I get back from New Orleans.

Tuesday, December 16, 2008

Sick Riduculous Presents: Gig Ridiculous

party time excellent
Originally uploaded by oatmeal2000.
Sick Ridiculous and The Sick Ridiculous has its (their? our?) first gig! Mark your calendars this instant:

Tuesday January 13th, 2009
The Rex Theatre (1602 E Carson)

We are participating in a "Local Artist Showcase," which means basically that it's a Tuesday night and you don't have to pay any money to get in. We also will most likely play two separate sets, which should be fun too. If you need more details, let me know!

Monday, December 15, 2008

Reading about OO Verification

I've been going back to read up on OO verification, and I found a very well-written paper entitled, Modular Invariants for Layered Object Structures. Peter Muller and Gary Leavens are co-authors, which comes as no surprise.

The thing is, this was a very easy to read paper that covers a lot of things about Ownership and OO Verification that I had sort of picked up along the way, but had never seen described in a comprehensive way. I guess that's partially due to the fact that it's a journal article, although frankly kind of a crazy journal. This paper uses Universe types, an extension of Ownership types, to prove class invariants. It's very similar to the Boogie methodology, or any of the papers on JML and verification, but this one actually takes the time to explain "classical" OO verification, which motivates the use of ownership.

I should have definitely read this a while ago considering this is basically what my own work is based on, but I guess I had been avoiding Ownership types for a while.

If you are at CMU and you want to check it out, our library has electronic access: here.

Wednesday, December 10, 2008

Course Cast


This course at Waterloo is reading a paper that I co-authored while at Microsoft last summer.

Friday, December 5, 2008

Adventures in Apartment Hunting

 I am currently searching for an apartment. It's hard work.

One thing I've noticed is that every single apartment is filled with "professionals," or at least that's what the landlord always says. There sure are a lot of professionals in Pittsburgh. Of course I prefer degenerates...

Today I actually saw a great apartment. It was in Friendship. It was huge, and not too expensive. I got really excited. Then, just by chance, I saw the name of the management company on a sign before I left. I looked them up on Good idea. The reviews are horrific. The phrases "slum lord" and "lawyer" are used far too often. You should really take a look at all of them yourself, but I found this phrase to be both representative and humorous:

"I literally cry at least once a month because of how awful it is to live under Lobos."


Monday, November 24, 2008

The Atomic Nugget Design Pattern: Part II

The Atomic Nugget design pattern is a way of encapsulating some action that a client wants to perform atomically with respect to a provider class. The idea is that the client will write a "first-class function," in the form of an anonymous inner class, and then give that action to the provider, who will then internally acquire and release the necessary synchronization. In order to make this work, we will need an interface for our first-class functions:

public interface Lambda<T1, T2> {
public T2 eval(T1 t);

This interface is the type of first-class functions that take one argument and return one argument. The next thing we'll need is an interface that signifies the fact that my provider class is an atomic nugget, which will allow client's code to be run atomically. As I previously mentioned, and like the lock/unlock solution, this requires some forsight from the developer.

public interface AtomicNugget<T> {
public <S> S atomic(Lambda<T,S> operation);

This interface allows the implementer to take a client operation, in the form of a lambda from elements of 'this' type to elements of some other type, and execute that operation atomically. Here's how it might look in some kind of thread-safe stack:

public class AtomicStack<T> implements AtomicNugget<AtomicStack<T>> {
private final Deque<T> stack = new LinkedList<T>();
public synchronized T pop() {
return stack.pop();
public synchronized void push(T e) {
public synchronized boolean isEmpty() {
return stack.isEmpty();
public synchronized <S> S atomic(Lambda<AtomicStack<T>, S> operation) {
return operation.eval(this);
This particular case is pretty simple. Note how AtomicStack<T> implements AtomicNugget<AtomicStack<T>>. This will ensure that the first argument of the lambda is the stack itself. The client is free to return any type they want from their atomic operation, which we allow by parameterizing the atomic method. Every public method of the AtomicStack is synchronized, including atomic, so that when a client calls atomic, everything that is executed inside of the operation will be done in the confines of that synchronized block. Here's a client side use:

AtomicStack<Integer> stack = new AtomicStack<Integer>();
Integer got =
stack.atomic(new Lambda<AtomicStack<Integer>,Integer>() {
public Integer eval(AtomicStack<Integer> t) {
if( !t.isEmpty() ) return t.pop();
else return null;

In this example, the client creates an anonymous inner class, the "first-class function," which consists of an isEmpty check and a call to pop. This new object is then passed as an argument to the atomic method of the newly created stack. The "lambda" returns the dequed item to the outer context. This is a pretty straightforward example. Here's something a little more interesting. There is a classic problem in concurrency relating to bank accounts. How can I, as a client, using two thread-shared bank accounts withdraw money from one and deposit the money to the other all in one atomic operation? Deadlock is an important concern in this sort of example. Well, we can solve it using AtomicNugget2, which takes two elements of the same type. Internally we are free to synchronize on both object according to our deadlock prevention scheme (in this example, I use the hash code as an ID to determine ordering of lock acquire). First, here is AtomicNugget2:

public interface AtomicNugget2<T> {
public <S> S atomic(Lambda2<T,T,S> operation, T withRespectTo);

Pretty similar to AtomicNugget. Now, here is our bank account, which implements the interface:
public class BankAccount implements AtomicNugget2<BankAccount> {
private long amount;
public synchronized void withdraw(long amt) {
amount -= amt;
public synchronized void deposit(long amt) {
amount += amt;
public <S> S atomic(Lambda2<BankAccount, BankAccount, S> operation,
BankAccount withRespectTo) {
// We acquire locks in order of hash code
if( System.identityHashCode(this) < System.identityHashCode(withRespectTo)) {
synchronized( this ) {
synchronized( withRespectTo ) {
return operation.eval(this, withRespectTo);
else {
synchronized( withRespectTo ) {
synchronized( this ) {
return operation.eval(this, withRespectTo);

Note how we reverse the order of the synchonized blocks depending on the hash ids of the bank accounts. However, we still pass the two bank accounts as arguments to the lambda in the same order. This is crucial for clients who need to know, for example, which is the deposit account and which is the withdrawal account. Finally, here's a client:

BankAccount b1 = //...
BankAccount b2 = // ...
b1.atomic(new Lambda2<BankAccount,BankAccount,VOID>(){
public VOID eval(BankAccount t1, BankAccount t2) {
return VOID.instance;
}}, b2);

The atomic nugget has some problems. Notably, the provider has to be aware that the client's calls will almost certainly be reentrant. If you are using semaphores or some kind of non-reentrant locks, this could be a problem. There are others. Nonetheless, I think in many cases this is a good way to go, and if you are already programming Java in a functional style (a good, if verbose way of doing things) it will seem very natual.

The Atomic Nugget Design Pattern: Part I

I've been telling people about the Atomic Nugget design pattern for a while, but I have not yet described it in detail anywhere. Atomic Nugget is a design pattern of my own creation that allows for better encapsulation with respect to synchronization in Java and similar languages. And yes, I mostly just like it because of the name, but I do happen to think it's legitamately useful. In this post, I'll just briefly talk about why Atomic Nugget is useful. In the next post, I'll give the code.

In Java, there are simple ways to protect the integrity of your objects with respect to multi-threading if you are the class implementer; you can make all of your public methods synchronized. This will ensure that access from multiple threads to an object instance are effectively serialized. (Of course, it's not always as simple as that, but to a first approximation, this strategy works.) However, what if you are implementing a class that depends on other thread-shared classes? For example, the following worker thread references a thread-shared work queue that is internally synchronized. 

class WorkerThread { 
  private Deque workQueue = // ...
  public void run() { while(true) { if( !this.workQueue.isEmpty() ) doWork( this.workQueue.pop() ) }  }

Please ignore the fact that this worker class has many problems. I'm trying to keep the examples short. There is one problem I would like you to focus on, however. The problem is the race condition. If another thread removes the last item from the work queue in between the time this thread calls isEmpty, and the time it calls pop, an exception will be thrown on the call to pop. This is a symptom of a more general problem. The designer of the queue has delineated certain critical sections when they wrote the methods of the queue class. However, as a client, I want to enlarge those critical sections, but in order to do so, I need access to the locks or synchronization primitives that are used internally to the queue. How do people solve this problem now?
  1. I could try to make this work by synchronizing on workQueue. However, this is very brittle and violates encapsulation. It requires me to look inside the implementation of the work queue, and ensure that the methods I want to call are synchronized on the work queue object itself, and not some other private member object. Also, if the implementation of the work queue ever changes, to use a different synchronization strategy, my code will be broken.
  2. The implementer can provide "lock" and "unlock" methods. This requires class implementers to think ahead to imagine how their classes might be used in the future. (My solution will require this too, as you will see.) But it also painfully requires clients to remember to call the unlock method, which in the simple case might not be to much additional work, but in reality requires clients to use a "finally" block, so that exceptions will not cause locks to be held on to indefinitely. And in general, it's just not nice to have to put your synchronization into the hands of your client.
Enter the Atomic Nugget.

Saturday, November 22, 2008

TRANSACT Submission Submitted

Why, oh why does the 'backspace' key go 'back' to the previous page in all browsers? This is a bug, not something helpful. I just lost the entire entry that I was composing. This is worse than the 'insert' key.

Last night we finally submitted the paper that I have been spending all my time on for the past 3 weeks. We submitted to TRANSACT 2009, a workshop on transactional memory. Our paper was on an optimization of STM using the static aliasing annotations that we have been working on in our group.

Honestly, the process was pretty painful. We had to do benchmarks, which is not something I am used to, and we had a couple fall through at the very last moment, because we could not explain why we were seeing the results we were seeing. I now have a lot more repsect for people who work in systems.

Anyway, tonight I am rewarding myself by going to the Girl Talk concert. I've never seen him live, but his last two albums are in super heavy rotation at home and at work. (Seriously, check the stats.) Also, Grand Buffet is opening, and they are sweet.

Monday, November 17, 2008

Vargo V. Vargomaxx

 In honor of my not posting in two weeks (seriously, I have a paper deadline this Friday!) I would like to alert you to the following LOLs:

Generalized Super Mario Bros. is NP-Complete

This was a presentation from SIGBOVIK 2007, and I thought it was hilarious at the time, but never remembered to post it. (Also it wasn't online.) It's kind of nerdy, but hilarious.

Monday, November 3, 2008

Paper Poster

Okay, they finally posted my OOPSLA paper on the ACM web site. The official address is:
"Verifying Correct Usage of Atomic Blocks and Typestate"

Friday, October 24, 2008

Return to the 'Burgh, OOPSLA

So after the whole wedding thing, I went to Nashville, TN for OOPSLA 2008. I didn't get to spend a whole lot of time exploring the city, which is really too bad. It actually reminded me a lot of Austin, TX. They have a big street there called Broadway where every single bar has free live music every night, and even during the day. Not only that, but it was mostly older-style country music, which really sounds cool. We only heard one band, but it was great! I also ate plenty of BBQ.

But of course I was really there for the conference. I gave a talk at the doctoral symposium, where I present a mini proposal talk to a bunch of researchers who are not my advisor. I got some really good feedback which I even incorporated into my research talk. That was on Wednesday. I was pretty nervous leading up to my real talk, but I practiced a lot (a lot!) of times. When it came time to give it, I wasn't really nervous at all. I even got some questions that weren't too hard to answer, and a bunch of people came up to tell me that they liked it. That was good! I put my slides up on my presentations page. The full paper should be up on the ACM portal soon, but isn't yet.

Finally, there were a ton of people from my research group there, along with George who flew in from CO. It was great to be there with everyone and it kind of felt like our research group was taking over, in a way. Three people in my group won awards at the conference! Congratulations dudes! Now I'm back home, and trying to figure out what to do about this whole research thing... Gotta get cracking.

Return to the 'Burgh, Wedding

I am back! I feel like I've been gone forever, when really I was just out for a week. I hate to blog dump, but I did a ton of stuff last week, and because I had no computer, I'm going to have to post on all of it today! Don't worry, I'll keep it short and break it down for you guys.

Last Thursday I went to New Orleans for my sister's wedding. It was really an amazing time and an amazing wedding. There were a lot of friends and family from out of town, and I did do a lot of meeting/greeting while I was there. But mostly it was just fun. The rehearsal dinner was great. It was at Antoine's, so the food was fantastic, and there were tons of people there, mostly his family from Tennessee. (My extended family is actually pretty small.) It was so big, it felt like it could have been the wedding reception!

The next day, the wedding was really nice. The church was packed. The wedding party was big. I think there were about 15 groomsmen and 15 bridemaids. There was a little SNAFU where someone in a wheelchair got stuck on the access lift at the church, and we started a bit late, but other than that, everything went off without a hitch. The reception was at the art museum, and it was really nice to be able to sit down in the gallery right next to the artwork. The band was also very cool, and the night ended with an official "second-line" dance party.

All and all, definitely the way to go. Congratulations to my sister and Chip! I am so happy for them!

Wednesday, October 15, 2008

Business Jerk

Hey! I've got my own business cards! Make sure to ask me for one next time you see me. 

Monday, October 13, 2008


 I've been working on a pretty simple program for my dad. It was my present to him for his 65th birthday. It's a program that converts documents written in WordPerfect v.4.2, an old DOS word processor that my dad still uses, into some more modern formats.

Right now, it's pretty basic, and it only outputs to HTML, but I've got a Google Code site set up, and a Java Web Start application, so you can actually run it all pretty easily, assuming you have a JRE installed!

Doing all this was not extremely easy, because to have a webstart application that can read and write files, it has to be signed. Here is a pretty good tutorial explaining how to do it.

Then, for some reason, Google Code does not serve .jnlp files (Java webstart files) with the proper MIME type. Here is a post explaining how you can fix it through svn. (Scroll down to the bottom.)

All this is necessary to make a Java program that can be run by my dad. He's okay with computers, but he's no Bill Jobs.

The Googs: The Phone

Google and T-Mobile have finally released their Android phone! Check it out here. I saw this from an add in my gmail. I think I want one. I played around with one recently and I have to say I am excited about the QWERTY, the Android, and the touch-screen. Sweet. Pros are that I already have T-Mobile and the phone is relatively cheap. Cons are, well it's not an iPhone and the service may cost more. I haven't looked into that...

Wednesday, October 8, 2008

Verified Program: Thread Shared and Back

 As you may or may not know, my research work has to do with the verification of object oriented programs, in particular those that are concurrent and use or implement object protocols. The name of my tool is NIMBY, and it's a part of PLURAL which is Kevin's single-threaded verification tool.

I recently was able to mostly verify the implementation of a program that creates an object, shares the object between two threads, and then permanently reacquires thread-local permission to the object. This is sort of a litmus test for many concurrent analyses, and I was quite happy at how naturally it fit into our analysis framework. You can take a look at the verified code here. Other verified programs I tend to post here.

Sports Talk with Nels & Nels in the Morning

  • Is there anything more pointless than pre-season NBA basketball? Please. The NBA regular season is already quaisi pointless and at least prolonged, given that it lasts forever and just about half of the NBA teams get into the post-season. Is there really a demand for this?
  • Sports "journalists," can you please stop calling the Dallas Cowboys, "America's Team." I've lived in three states and I still don't know a single Cowboy's fan. And my girlfriend is from Dallas!
  • A friend of a friend just got picked up by the New Orleans Saints! He is a defensive end, and his name is Jeff Charleston.
  • This weekend I won my first fantasy football game of the season. 

Tuesday, October 7, 2008

While the Tom is Away, the Nels Will Play

Tom is out of town. So, acting in a completely unauthorized manner, I posted some songs that we recently recorded, for free, on You can hear "Custom Party Music," which is what I'm calling the collection of all the songs that we wrote for a specific occasion, and you can download all of the songs.

Highlights include, "Birthday Control," and "Unfairbanks," which is about the sad economic state in which we find our country and my friend George Fairbanks leaving Pittsburgh. "Sick Day," isn't really custom party music, and in fact is just a demo.

Saturday, October 4, 2008

Room mates? Apartments for Rent?

Hey guys. I am looking for your help. I need one of the following:

Roommates! Are you or cool people you know currently looking for a place to live? Preferably starting January 1, but many arrangements could be made. My landlord/friend Chris is extremely flexible, but he is moving so he is looking to replace himself and one of our outgoing roommates.

- or -

An Apartment! If that whole above thing doesn't work out, I will be looking for an apartment starting January 1. I would really love to keep living in Shadyside, so I would be looking for a place to live, and I would certainly appreciate living with you or your cool friends.

Let me know here or via email, and I can give you the full details about either the apartment or what I am looking for in an apartment!

Tuesday, September 30, 2008


 Last night at a Steeler's Game Watching Party/Free Concert/Free Hot Dog Festival, I saw two bands.

Nik and the Central Plains: I know Nik from the open mic nights. His music is great. It's like super weird folk music, but is very catchy.

Aloud: Aloud was your more straightforwad modern rock band, but they were pretty good. The were from Boston, MA, and had a good "wall of sound" thing going.

Monday, September 29, 2008

No Phone I Just Want to be Alone

 Heads up friends:
I have used all my cellular telephone minutes for the month of September. I will be tearfully ignoring your calls until October 2nd! I will, however, happily accept text messages!

Saturday, September 27, 2008

SR&tSR Gig Log #3

Last night Pittsburgh's own, Sick Ridiculous and the Sick Ridiculous played at Brianne's birthday party. We had a great time, and debuted a few (3?) new songs. We ended up playing three separate times during the night, including as late as 2am. This happened because people kept showing up, and getting upset that they had missed the music. Thank-you guys for feeding our large egos! Also, the first set was a little sub-par, due to some string-related issues. 

With any luck, we'll record a few of the new ones tomorrow, so you can hear that.

The party itself was pretty rad too!

Thursday, September 25, 2008

Stop the XML Insanity!

Um, did you know that some browsers actually give you newline and whitespace characters when they parse XML? What is that all about? It seems to me like one of the two benefits of using XML in the first place is that its easy to parse! So why are you giving me back junk Mozilla? Double-You-Tee-Eff!

Beam Team!

 Wow, I just saw a sign saying that today on campus they are having a "beam-signing ceremony" over at the new Hillman-Gates-Computer-Science-Future-Technologies center. I wonder if Steely McBeam is going to be there...

Sunday, September 21, 2008

Urban Hike Scavenger Hunt 2008: Downtown!

Every year Urban Hike holds their anual scavenger hunt. This year is no different! But what is different is the location (downtown) and the fact that we're doing it at night, concurrently with the quarterly gallery crawl. It's a little different, but I think it will be fun. Here's the full "press release."

We are in the process of planning our annual scavenger hunt, which typically rounds our hike season. Please mark your calendars for Friday, October 3rd. The scavenger hunt will run 6-8 pm, with our awards ceremony following from 8 till around 9. We will start at a yet-to-be-determined spot in Market Square downtown. Start assembling your team (3-6 people) and we'll fill you in on more details soon!

Saturday, September 20, 2008

Flask Drive

Did you guys know there is an external harddrive that looks like a flask? Love the pics of the model as well. Very well-acted. 


Yesterday we had a TG (a happy hour basically) sponsored by Facebook. It was pretty fun. There were some highlights, including facebook dog tags (?!) that give you $5 in free facebook gifts, turkey wraps, and dogfishhead 60min.

A group of us decided that the best possible thing you can do with a Zune is to use its radio function to tune in an iPod connected to a radio adapter. Yes, I know that making fun of the Zune is passe, but the mental image of a Zune being used to tune in an iPod was too much for me to ignore.

In other news, I am really getting upset with the American Auto Industry. Foreign car companies make most of their cars here already, hiring American workers! Why are we beholden to these companies? Why do both major candidates support giving them more money?

Saturday, September 13, 2008

Karaoke Duperstar

 Last night did some karaoke singing at Cappy's weekly, "Cappyoke." Great fun was had by all. Sang two songs:
  • Just Can't Get Enough, Depeche Mode. A great song, it's pretty easy to sing, and fairly recognizable without being over-done. I think people appreciated it. It is a little long though. Towards the end, you are really saying, "Just Can't Get Enough" a lot.
  • Shout, The Isley Bros. This was actually Chris' idea, and had I known what he has selected, I would not have gone up there with him (he pulled me up at the last second). That being said, it was a real crowd pleaser, and people were singing and dancing along. Great success!

Thursday, September 11, 2008

Car Towing

For those of you waiting in suspense to find out what happened to my car, here the issues:

Yes. My car was towed. Not only did I have to pay the tow pound $100+, I had to pay the city police just about as much. You see I was towed, but I was also cited! Not the good kind of citation, as in publish or perish, but rather the bad kind. So why was I towed? Well the answer to that question was sort of a mystery to me. The technical reason was known: variance posted. But what does that mean?

Well on Tuesday, I tried to find out. First I called the Pittsburgh Parking Authority. Mistake. As it turns out, two both the Pittsburgh Police and the Pittsburgh Parking Authority have the power to issue parking tickets in this city. If you call one, asking about problems for the other, they will yell at you. How can you tell? Just remember this helpful little rhyme: "Ticket is Pink? PPA's the link! Ticket is Yellow? Tell a policeman, fellow!"

So I called the Municipal Parking Court. Not only did they have no idea which variance was posted, they didn't know who I should call. They told me to call 311, Mayor Luke Ravenstahl's Response Line. That was better. They told me to call the Zone 4 Pittsburgh Police Non-Emergency line. There, a slightly angry man told me that there was a parking variance for three spots on Howe street so that someone could move. In other words, they had the exclusive right to park in those spaces that day. Okay, I can deal with that. (And indeed I did; I ended up paying the fine.)

But I did want to know how many days in advance they were obligated to post the sign! I saw nothing on Monday night, and I was towed on Thursday. Turns out, the Pittsburgh City Code says nothing about the concept of parking variances. Neither does any other official Pittsburgh city web site. Boo this man! If anyone can find out the real skinny, please, let me know!

Saturday, September 6, 2008

My Car Was Towed!

I can't believe this! My car was towed!  Okay, so on the bright side, at least it wasn't stolen and it's not going to be that expensive to pick it up (still more than I think is reasonable). But I seriously don't think I was parked illegally. (I haven't yet been told why it was towed.) The problem with having your car towed is that you no longer have any evidence of your own innocence. They should take pictures of the cars that they tow so that they can shove it in my face. As it is, I'll probably always believe I was parked legally...

Friday, September 5, 2008

Street Walkin'

 Whoa! Since when does New Orleans have Google Street View? Note the humourous number of trees, which renders the street-view somewhat pointless!


Friday, August 29, 2008

NYC Plus Me Makes Three

This weekend I am going to New York City! It will be the perfect way to observe the laborious holiday. Should be a lot of fun.

However, I just learned that my sister is evacuating New Orleans, because of Gustav, the may-or-may-not-hit-New-Orleans hurricaine. It's still a few days away and has not yet warranted a mandatory evacuation, but it's still a bummer. Hopefully things will work out for my peeps down south.

Friday, August 22, 2008

Last Day at Sun

Today was my last day at Sun. It was somewhat bittersweet, as I had a great summer and really enjoyed working on Fortress. I didn't get quite as much done as I wanted, but maybe I'll keep working a bit when I get home...

To celebrate, I went with some other Sun employees, both non-Americans, to a shooting range, where we discharged some handguns. Being non-Americans, they were both quite excited about this prospect, as it seemed to them, very American. While I have used a handgun once before, it definitely, uh, takes some getting used to. It's loud, and I was a little nervous at first. Oh and the last time I used a gun, I had to get stitches...

Going back to school Monday! All in all, a great summer.

Monday, August 18, 2008


Two new books! I'm afraid these may be the last for a while, as summer comes to a tragic close.

Sunday, August 17, 2008

More Fever: Malaria Edition

I am watching Women's Indoor Volleyball right now. We just beat Poland!

It's fun to watch Nicole Davis: I used to cheer for her in college!
It's fun to watch Logan Tom: I used to boo her relentlessly in college!

Olympic Fever

One of the neat things about the Olympics is that it is the one time every four years where you can actually see women's sports on TV. Not just women's sports, but crazy women's sports. For example, just this weekend I have watched women participate in:

Beach Volleyball
Badminton and


Friday, August 15, 2008

Lance Armstrong: So Thirsty!

I just read on the front page of the Austin American Statesman, that local resident Lance Armstrong used more water than anyone else in the city of Austin during the month of June. You see, since it's so dry here, wasting water is a big no-no. (They even have sweet jingles on the radio telling you so.)

Well it appears that Mr. Armstrong in the month of June used over 220,000 gallons of water! For comparison, the average residence here uses about 8,000 gallons of water. What could Lance possibly be doing with all that water? I'm sure it's something boring like watering his lawn every day, but I prefer to imagine the 7-time Tour de France winner walking around his lavish estate with every single faucet turned on for no reason at all. He's probably thinking to himself, "first Sheryl Crow, and now more water than I know what to do with?! This is living!"

Thursday, August 14, 2008

Java You Weirdo!

The following Java is legal. What does it even mean?

public class WeirdAssign {
static int foo() {
int a = a = 1; //Strange line
return a;
public static void main(String[] args) {
System.out.println("a is: " + foo());

The output of this test is, "A is: 1".

Monday, August 4, 2008

Paper Done!

I finally submitted the camera-ready version of our OOPSLA paper! It feels great to have it out of my hands, and I've been pretty much working on it every day after work the past two weeks and several other weeks this summer.

Wednesday, July 23, 2008


ISSTA is fun, and Seattle is very nice. There is so much grunge music here, it's amazing! Okay, maybe not, but here is a neat thing:

I have my first ever paper in the ACM Digital Library. It's right here. I have used this resource so much, it feels nice to be one of the people in it.

I presented my work at the doctoral symposium, and the talk went pretty well. I got some good feedback, and didn't make any major mistakes. I didn't present the work described in the above paper, however. Aditya, my former mentor in India, presented it, and I think he did a good job. Finally, there is some poster session today, so I'll have to stand by my ugly poster and try and grab anyone around, forcing them to listen to my research ideas. Should be grand!

Monday, July 21, 2008

HPC Wire!

Check out this interview of my advisor, Eric Allen, on the topic of the Fortress programming language:
HPC Wire

Sunday, July 20, 2008


After a rad birthday weekend in which we tubed, ate BBQ, and ate Mexican food, I am now in Seattle for ISSTA!

This is only my second time in Seattle, but this time is already way better. The weather is amazing, and I am in a swank hotel downtown (also where the conference is).

I know everyone I know has been to Seattle, so what should I do? I've done some obvious stuff like walking the boardwalk, pike market, space needle and the experience music project.

What do you think? Seattle Mariners? Something else?

Friday, July 18, 2008

Obligatory Birthday Post!

Brianne is in Austin this weekend! We are going tubing, and to this BBQ restaurant out in the middle of nowhere.

For my birthday I got a sweet breakout box for my computer which will allow me to record music on my computer. (I need a better mic though.) I also got a book of pictures from New Orleans in 1960. It looks like a cool place, and I recognize a bunch of the buildings, although many of them are now in bad shape.

Then, Sunday, I am going to Seattle for a conference where I am a co-author on a paper and will be participating in a doctoral symposium. Should be radical.

Saturday, July 5, 2008

So Hip!

Oh snap, check out how hip Pittsburgh is now! We are in the New York times! ( New York Post, watch out! You're next!

You Got a Good Thing Going: II

But now! I'm in New Orleans, for the holiday weekend. It has now gotten to the point where I really don't know anyone who is still here. Or at least I don't have their numbers or can't think of their names when I feel like going out, so my time in New Orleans is actually quite mellow. I spend a lot of time with my parents, which frankly I really enjoy. We go out to eat. We go to art exhibits (Fernando Botero at the New Orleans Museum of Art! Go see it! I work a little at CC's. I go to church. I go grocery shopping. Very mellow.

Tonight we went to Big Al's, a new seafood place, and I stuffed my face with boiled shrimp. I used to be very lukewarm on boiled (as opposed to fried) shrimp, but it's making a huge comeback.

I'm also reading big-time, and these long weekends are great for that. Last weekend it was "No Country for Old Men," and "Do Androids Dream of Electric Sheep?" This weekend it's "Moneyball" and "The Right Stuff." Summer is the best.

You Got a Good Thing Going: I

I haven't posted in so long, this is going to be a two part-er!

I went to Pittsburgh last weekend, and did some radical stuff. I saw about as many friends as possible during the 48 hours I was there. I saw Wall-E. It is good. You should see it. Go early in the day, so you are surrounded by screaming kids, as we were. We also went to the Carnegie International Exhibit, "Life on Mars." They tell me this is a big deal in the world of contempo art, and it was in fact pretty rad. "Cave Man Man," while weird, is probably one of the most unique pieces of art I have ever seen. You owe it to yourself to check it out ( Yeah, I don't know why but livejournal won't accept my links... so you'll have to copy and paste that stuff old school (or CTRL-C, CTRL-V for you power users).

In Austin I've been sort of working for two masters, doing my job at Sun during the day, but then school stuff at night. I am working on the camera-ready version of the OOPSLA paper, and I applied to the OOPSLA doctoral symposium on Wednesday. I have found that this isn't so bad, if I just do enough each night. I've found that the best way to do this is to set a timer (1 hour exactly!) and work on my school stuff until it goes off. Then I am free to read and watch "Lost" until bed time. It's a whirlwind life!

Monday, June 23, 2008

Status Report: 5 Weeks

Well I realized that I've been here for five weeks. Seems like it's been a lot longer, but I finally have some impressions of Austin and of my project.

The first part is the project: I have to say I'm really enjoying it so far. I'm not actually doing exactly what I thought I'd be doing, but that's not a big deal. You see Fortress doesn't actually have a type-checker, and well they kind of need one a lot. So while I sort of thought I was going to be working on, like, type-based optimizations of software transactional memory, I'm really going to be implementing the typechecker and type inference. Now things were started before we got here, so there's a chance we'll get to see it finished before I leave. And, as I've said before, the project is totally open-source, so you can see the code I write here (not that I'd recommend it) and follow my progress here.

Austin is good too, but it's not like being in Pittsburgh. Here's what I mean: You see, in Pittsburgh I know lots of people. Here I don't know many people. Most of the people at work, while very cool and very nice, have families and aren't necessarily interested in hanging out. When I've had people come to visit, I get a better feel for the cool stuff that is going on in Austin: great restaurants, bars and stuff to do outdoors, but a lot of those things are hard to take advantage of by yourself.

So far I've spent of lot of time sitting in my apartment, going to the gym and watching Lost episodes. (My aunt got me Netflix for the 3 months I am here, and I decided to go back to season 1 and see if I can understand this crazy show.)

Anyway, I'm going out tonight for a bit to meet some friends, so that should be rad. Oh, and I'll be back in Pittsburgh for next weekend just to say "hello." Holla at your boy.

Sunday, June 22, 2008

When We Left Earth

I guess I've been talking about Discovery TV shows a lot recently, but...

I'm watching "When We Left Earth" right now, about the history of NASA. It's a multipart series, and tonight is the last one. It's incredible, mostly because the pictures are so amazing. They did a lot of restoration of the old pictures and movies, and they look great. The part about Challenger makes me sad, but other than that I give it big thumbs up.

Sunday, June 15, 2008


Wow, how did I waste entire Sundays before "Deadliest Catch" marathons on Discovery?


I went tubing on the Guadalupe river this weekend with my friend Greg! This is like a classic Texas activity. I went once with my family when I was like ten or something, but this was a totally new experience. (If you don't know, this kind of tubing involves sitting in a rubber tube and floating down a river for one to three hours.)

We had to drive like an hour to New Braunfels where all this madness goes on. Then we went to this tube rental place where there were hundreds of people. We rented a tube for me, Greg and for a cooler which we also rented. We brought along some ice and a few adult beverages. Now, it might seem like tubing is a horrible idea because a.) about 100 degrees and really sunny, b.) the water is absolutely freezing and c.) there are thousands of people on the river, but it turns out that all of that is inconsequential! All the people really aren't so bad since you're just floating down, and, well I got sunburned a little but I think I put on enough sunscreen to avoid any major cancerous lesions. And the cold water? You mostly get used to it, although every now and then there's a little wave that gets your dry parts wet and is not really all that fun.

Verdict: Highly Recommended!

Sunday, June 8, 2008

Family Weekend

This weekend was great! My family was visiting and it gave me a chance to go to some of the cool stuff that all my friends here have been telling me to do but that I would feel too lame doing by myself.

We went to some good restaurants:
  • Fonda San Miguel
  • TX Chilli Parlour
  • Some Brazillian Restaurant
  • Jaime's Mexican Restaurant
  • Shady Grove
We saw some interesting things:
  • TX State History Museum
  • The State Capital
And we went out and actually did some activities:
  • Swimming at Barton Springs
  • Canoing on Lake Austin
  • Bar-hoping
In other words, it was a much more fun weekend than usual! I've got the sunburned arms to prove it...

Wednesday, June 4, 2008

Pnet Phlicks

My aunt got me Netflix for the three months that I am here. It is pretty sweet. These were my first free movies:
  • Himalaya: Good
  • Crash: Not so good. I met some racists in LA, but everyone in this movie is humorously obsessed with race.
  • Dewey Cox: Awesome! Why wasn't this movie bigger?

Sunday, June 1, 2008

Summer Books

In my recent boredom I have finished two pretty good books, Dreaming in Code, a non-fiction book about an open-source software project, and I Love You, Beth Cooper, a teen/graduation comedy. I put up some quasi-reviews on my books page.

Friday, May 30, 2008

McDonald's Proof

Finished my first real week of work. It was pretty good actually. We're basically just slogging though cases in the typechecker, if you know what that means.

What is up with these commercials for McDonald's new Southern Style Chicken sandwich? They make it seem like they are out to change the world or something. It's an obvious attempt to copy Chick-Fil-A's delicious chicken sandwich which cannot be topped. The commercials are so humorously over the top that I think it's an Army commercial until they mention chicken.

Saw Indiana Jones last night at the Alamo Drafthouse. As far as I can tell everyone in Austin knows and loves the Alamo Drafthouse because everyone I have met here has told me about it. They serve full meals to your seat, and have a great selection of beer. It was unsurprisingly great! If the same thing existed in Los Angeles, the dinner would cost seventy dollars.

Wednesday, May 28, 2008

I'm Going Mobile!

Finally got my car today! It was two days and then three hours late, and covered in hydraulic fluid, but at this point I am totally happy to have it.

I was actually wondering how they were going to transport it. Well it turns out they used one of those 8 car trucks that you usually see rolling down the highway with brand new Chevys. It was kind of funny to see my busted car up there with all these other nice and new-looking cars. Also, my car was all the way up at the front, so the guy had to spend like 10 minutes moving the different levels up and out of the way so that my car could be driven out. The whole thing was rocking back and forth from side to side which made me reconsider the part of the sidewalk I was standing on. Finally he drove it off, at which point, because it was facing backwards on the truck, I had to drive it the wrong way down the street for like 100 yards or something. Lol.

Monday, May 26, 2008

Life Update

One of the most disturbing developments in my life recently has been a recurring "Terminator" dream. In this dream, Terminators are constantly being sent back in time to kill me. The problem with terminators from the future is that no matter how many of them you destroy (and of course, destroying them is really, really hard), there are always more being sent from the future, as machines in the future have the benefit of 20/20 hindsight.

This of course leads to a dream that can potentially run on until I wake up, and is very disturbing. Damn you Terminators.

Sunday, May 25, 2008


Well I never really talked much about my trip to Massachusetts, and I don't think I will now, except to say that I am back. I went to Burlington (like 30 minutes away from Boston) for three days of introductory project meetings. There were lots of talks about Fortress, the language, and I even reported my first bug. Awesome.

Also fun was today's trip to Six Flags. It's down in San Antonio, so I drove with two other interns for like an hour and a half to get there. It was absolutely ridiculously hot, but I've passed that stage in my life where I am too cool for sunscreen, so I think I basically made it out okay.

I'm still pretty funny at theme parks, even at 25. I am constantly walking excitedly in front of the rest of the group, leading us to the next ride. I feel the need to "get my money's worth," by riding as many rides as possible without much down time, but I am starting to realize how unnecessary that attitude is. Today without trying too hard, we rode 10 rides, and we were there from 11 to 7. That sounds okay right? I think I was basically just happy to be outside...

Monday, May 19, 2008

First Day!

Whoa! It was my first day!

Except for getting up really freaking early to rent a car, today was great. We had some teleconferences with the folks in Boston, and then there was a bunch of paperwork, but it was also pretty neat setting up my computer, installing Fortress and getting my new computer.

Tomorrow I'm going to Boston!

Saturday, May 17, 2008

Austin City Litmus

So I'm in Austin! I got here this morning at about 10:30am.

If you didn't know, I'm going to be working in Austin, TX this summer on Project Fortress. Fortress is a programming language designed to be a sort of successor to Fortran, but really it's more like a cool general purpose language that happens to be good for high performance computing applications. I'm going to be doing some optimizations (I think?) to help them get their compiler stuff up and off the ground. I'm working for Sun, and so far even though I haven't started working there yet, they've been extremely nice to me.

I am currently in my new corporate apartment. The downside is, it's not really all that close to downtown, but that's about it. Everything else is really nice. I'm close to where I'll be working. There's a nice kitchen, bedroom, TV and working space, so I really think it's been great of them.

Oh, one more nice thing about the project: Fortress is an open-source project, so presumably I'll actually be able to tell you a lot about what I'm doing on a day-to-day basis (at least, as much as is interesting). Moreover, I'll probably be encouraging you to download tools and other neat things I find out about.

Okay, more when I get to it! Today I'm kind of stuck in my apartment since I don't have my car yet, but tomorrow I'll be visiting some family, and Monday is the first day!

Friday, May 16, 2008

Last Minute Rock Announcement

Tonight Sick Ridiculous and the Sick Ridiculous will be playing at George's graduation party. I won't give out the information here, but email/text/message me for the infos. 9pm start, 10pm rock.

Thursday, May 15, 2008

Austria Recap

Originally uploaded by DixiePistols.
I thought I'd give a little recap on my trip to Austria, complete with pictures. Overall the trip was great. I just got back last night, and everything went pretty well except for this cold I got a earlier this week.

Vienna is know for a couple neat things, like the Hapsburgs, Coffee, Cakes, and music. We spent a lot of time checking out palaces and museums in the city. Vienna is also known for an old-style Ferris Wheel, known as the Riesenrad which Kevin called, "the most romantic location in Europe," or something like that.

We also went to Salzburg for a day on Saturday. Salzburg is a little bit more touristy than Vienna, but smaller so the effect is more pronounced. Salzburg literally means "Salt Town," because there was a big salt mine there. Pretty rad huh? It was also the birthplace of Mozart.

Monday, May 12, 2008

Curious Non-Postings

Strangely, I haven't posted in a while. This is mainly strange because I have tons of things going on right now, each one of which might make an excellent blog-o-story. I am currently sitting in an apartment in Vienna, where I have traveled to meet Brianne. Vienna is amazing. Details and pictures, as always to follow. I have a new program, Adobe Photoshop Lightroom, and I am using it to make my pictures (hopefully) much rad-er. I am also now extremely interested in a.) The Hapsburgs b.) Kaiser Franz Joseph c.) World War I and d.) Currywurst.

I also had a paper accepted to a major conference, and that makes me super jazzed. The conference is called OOPSLA, The Conference on Object Oriented Programming Languages, Systems, and Applications. It will be in Nashville this fall. It was on my research work, but was done jointly with Kevin and Jonathan. I don't really have a copy up on the web yet, but I will put one up soon. Seriously. It was called, Verifying Correct Usage of Atomic Blocks with Typestate.

I've also finished reading a great book called A Nervous Splenor: Vienna 1888-1889. It's all about two amazing years in the history of Vienna,  culminating in the suicide of Rudolph, the crown prince. It's history, but reads more like a novel.

Um, more to come... It's dinner time.

Friday, May 2, 2008

The Surprising Performance Implications of .iterator()

This week I discovered a "gotcha" in the Java language that goes into the 'performance' pile, rather than the 'unusual behavior' pile. It has to do with iterators.

See I've been working on this implementation of Software Transactional Memory in Java, and the performance was pretty slow. Now I'm not really a run-time guy, so this fact normally wouldn't bother me, but it was slow enough that a static optimization that I developed was getting lost in the noise. So I busted out the old profiler to see what was slowing things down. I immediately discovered that our code was spending a lot of time iterating over sets, or at least that's how I first interpreted the results. And this made since to me. The run-time uses tons of sets; read sets, write sets, undo sets. And every time a transaction aborts or commits, we're iterating over lots of them, like so:

for( TxnRecord txn_rec : writeSet ) {
  // do something

Seems normal enough. So I replace the HashSet implementation with a LinkedHashSet, which should improve iteration performance. I was a little surprised when this improved the performance not one bit. Then I looked at the profiler results again and realized the following: It wasn't "next()" or "hasNext()" taking all the time, which would indicate slow iteration, it was the actual call to the "iterator()" method, which Java5's enhanced for loops call behind the scenes.

After investigating the implementation of LinkedHashSet I realized something surprising. For empty sets, a call to the "iterator()" method allocates at least two new objects, one for the new keySet of the underlying HashMap, and one for the iterator object itself. All this for an empty set. It turns out that my code was absolutely full of empty sets, since most objects aren't modified in a transaction and their write and undo sets are empty. If you have enough empty sets, this allocation adds up over time. By replacing the above code with:

if( !writeSet.isEmpty ) {
  for( TxnRecord txn_rec : writeSet ) {
    // do something

The overall running time of the benchmark went from ~11secs to ~7secs!

This is bad, because iterating over empty collections should essentially have no run-time cost. Looking at the Java implementation, it would be easy to have some kind of singleton, "empty iterator" object that the HashSet's iterator would return if the set were empty. For example:

iterator() {
  if( size() == 0 ) return Collections.<Iterator<T>>emptyIterator();
  else return map.keySet().iterator(); // This is what it currently says.

This singleton iterator could then always return false when "hasNext" is called. The only reason why this might not be acceptable is if there is some rule about iterators needing to reflect subsequent "add" operations to their underlying collection, but honestly that would seem a little strange of a requirement. At the very least, the singleton iterator could hold a pointer to the original collection and continue to call size() after its creation...

Josh Block, are you listening?

Tuesday, April 29, 2008


Not niceThe Hornets won their first playoff series in New Orleans, beating the Mavericks of Dallas! Too bad I'm stuck in my office working... Anyway, this is awesome. I'll be there (meaning watching on TV from Pittsburgh) for Round 2.

Kings of Leon

Kings for a dayWell I know I'm like 5 years behind the times here, but the Kings of Leon album, Youth and Young Manhood is really good. You should give it a listen.

Monday, April 28, 2008


I can't hear out of my left ear at all, and I'm pretty sure it's because of ear wax... Ew... Q-Tips seems to help not at all. Does anyone know the name of that chemical you put in your ear that causes the ear wax to come out? I'm dying here.

Saturday, April 26, 2008

Government Coupon

As one of the eight people in America who actually uses bunny ears to get my TV, I am somewhat interested in the transition to digital broadcast television for 2009. I had seen all those commercials, and decided to fill out the form to get a coupon. Well on Friday, my government coupon arrived (right top), entitling me to $40 off a digital converter box (right bottom).

A couple of things are actually nicer about watching digital tv. For one thing, because there are extra digital bits, you actually get program information along with the signal, so I know what's coming up next. The signal seems to be clearer, and I even get some 'bonus' channels, like a 24-hour-a-day Pittsburgh weather channel. Sweet dudes. I'm ready for the digital revolution.

I also have an extra coupon, if anyone is interested.

Ciera's Wedding!

Originally uploaded by DixiePistols.
I finally posted some pictures from Ciera and Saul's wedding!

Click for more...

Wednesday, April 23, 2008

Fortress of Multitude

Whoa, guys! Check out this video:

It's about the Fortress programming language, the language I will be working on this summer in Austin, TX. Even cooler? That guy on the right, Eric Allen, is going to be my boss!

Update! Livejournal Sucks!
Try clicking on this link if you can't see anything above, as I cannot...

Monday, April 21, 2008

Three Rivers, CA

This weekend I was in California (Three Rivers, near Fresno) for the wedding of my colleague Ciera. The wedding was incredible, and we even got to spend a little bit of time at the Sequoia National Park, also amazing. We had no cell phone reception whatsoever, so I apologize to those of you who tried to contact me over the weekend.

Pictures coming soon.

Thursday, April 17, 2008

Urbanhike: Crafton, PA on April 26th

Just wanted to let you guys know that next weekend (not this weekend) we'll be hiking around Crafton, PA. Here's the info!

Join us for the inaugural Urban Hike of 2008!

We're starting the season in Crafton, the boyhood home of Bill Cowher and the current home of a 24-hour donut shop and much more. Spend a few hours exploring the area with us on Saturday, April 26th beginning at 1:30 pm. We'll park at the Sharp Edge Creekhouse, 288 W. Steuben Street. Check out their web site to see a map and get a taste for what we'll be tasting after the hike.

Our hike will last 2-3 hours. As always, we recommend that you wear comfortable shoes, and bring water, sunscreen, and a sunny disposition. If you haven't hiked with us before, no RSVP needed-but if you have any questions, feel free to e-mail us at See you there!

Tuesday, April 15, 2008

Java Type Inference Sucks

Why doesn't this work?! Boo Java.
Variable unpacked_var =
(this_copy.unpackedVar == other.unpackedVar ?
this_copy.unpackedVar :
throw new IllegalStateException("Unhandled casee"));

Monday, April 14, 2008

Goth Guys

Goth guys adOh man! Gmail ads are the best!

Home Slice!

On Friday night, I saw John Vanderslice at the Andy Warhol museum, an incredible experience. I heard about him through Tom, basically the only person I know who listens to him, and therefore Tom gets bonus points for introducing me. The concert was great. The band was incredibly tight. The sound was great, and John had plenty of neat old analog equipment, for which he is pretty well know. (This is partially the reason for my renewed interest in the electric guitar.) He was really funny, and seemed to be genuinely enjoying himself. The selection of songs was good too, mostly songs I knew from Emerald City and The Life & Death of an American Four-Tracker, the only two albums I have, but also some ones I had never heard.

The highlight was the end, when he and his band-members went out into the gallery area for some acoustic songs. It sounded even cooler with the natural reverb of the room.

Go to his web site. You can listen to his entire new album, and I'd be surprised if you were disappointed.

Thursday, April 10, 2008

Vienna Sausages

It's official: I'm going to Vienna in May! 

Sucks more than CMUsual

I just today received a letter, sent through the USPS, sent to me on March 5th from New Jersey! How crazy is that?! It's been bouncing around the in CMU mail system for a month. One of my biggest pet peeves about having an office at CMU is how there is no consistency between the USPS deliveries and the package deliveries. An address that will work if given to the UPS folks will utterly fail if given to the USPS folks...

Wednesday, April 9, 2008

New Song!

Hey guys,

It seems like clockwork, but Sick Ridiculous and The Sick Ridiculous (that's now the official capitalization) has a new song. It's called, The Giving 43 Billion Dollars to Charity "Blues," and as always it can be downloaded from our MySpace page. Hope you enjoys.

Tuesday, April 8, 2008

Pizza! Time

My best friend from high school, Rand, is now in a band out in LA. They used to have a somewhat ludacris name, but now that they've gotten some interest from actual music people, they are known as "Pizza!"

Anyway, they just released an album and it's available for free on their web site. Their music is somewhat avant-garde, but they are extremely tight musically, and have some clever songs. My favorite so far is bird-dreams.

Monday, April 7, 2008

SIGBOVIK 2008 Conference Report

Sunday afternoon was SIGBOVIK 2008! This year I had a great time wearing three different hats. As Guy Fantastic, I was the MC for the day, introducing the speakers and (more importantly) stalling with the dumb A/V equipment was giving them trouble. As Nels E. Beckman, I presented my work on Relentless Parallelism! You can read the full paper (both pages!) by going to my publications page, and you can see the slides from my talk here. I thought it went pretty well. Finally, as lead singer/lead guitarist of Sick Ridiculous and the Sick Ridiculous, I performed a rousing rendition of The Theme from SIGBOVIK along with Tom.

The highlights? Well Tom's Tom VII Entertainment System Hero, was pretty rad, although right at the moment when he was to give his presentation things stopped working. He made a parody version of the Guitar Hero games that takes his MIDI files and converts them into a musical score that can then be played just like in Guitar Hero. And because the XBOX 360 GH controller is USB, you can really play the game!

Otherwise, the phrase "The Majestic Stopcock" sticks out. I'll be laughing about that one for a while.

Wednesday, April 2, 2008


By now you've probably already heard, either from Wired or Rolling Stone magazine. But just to be safe, Sick Ridiculous and the Sick Ridiculous have a new song. It's the Theme from SIGBOVIK, and you can listen and download from our myspace page.

A couple people said they couldn't download the songs because they weren't on myspace. We understand. We plan to upload our songs somewhere else real soon.

Tuesday, April 1, 2008

Phone Jerk

Well I said I'd never do it. Turns out I lied. After having phone envy for entirely too long, I finally broke down and got a fancier phone.

I am now the proud owner of a Blackberry Pearl phone. It's pretty small and has Quasi-QWERTY capabilities. Boo ya. Send me a text so I feel special.

Monday, March 31, 2008


I've just been reading through Anheurser-Busch's beer fact sheets and find them to be an amazingly frank description of their beers. I think maybe these descriptions are for stock-holders and not beer drinkers?
Introduced in 1955, Busch has a smooth, light taste. The brand is the country's largest-selling subpremium-priced beer in all major demographics.

I mean, who calls their own beer subpremium?

In other news, the Pirates just blew a five run lead in the ninth inning on opening day. All is normal in the universe.

Sunday, March 30, 2008

Yeah Bro!

So we did in fact end up playing the SIGBOVIK pre-party last night. I have to say I enjoyed myself. One of the great things (in my own, unbiased, opinion) about Sick Ridiculous is that our songs are all pretty short, so you don't have to invest too much to watch us play. If we happen to suck, well then it's not really going to be all that long until you get to go back to the party.

I was a little bummed when we forgot the melody of the chorus of our brand new song, Theme From SIGBOVIK, but later on we remembered it and had a special encore for those who were still loitering in the basement. Which reminds me; we plan to record and release an MP3 of Theme From SIGBOVIK some time this week so that you can begin to get pumped up.

In other news, I'm currently reading a pretty interesting book about the history of beer in America entitled, Ambitious Brew: The Story of American Beer. Definitely a read for all you self-identifying beer snobs out there. One of the most interesting parts of the book thus far has been reading about German immigrants to the US. It's particularly amazing how WWI and the German-American's association with beer was used by the temperance movement to further their goals. Here's a quote:
A Methodist* Bishop denounced beer as, "the most brutalizing" drink available. " The unthinkable barbarism of the German armies in this present war," he wrote, "is, in all reasonableness, to be accounted for largely by their centuries of beer drinking, which has deadened their moral sense and coarsened their moral fiber."

Wild, huh?

(*Also interesting to me because, given our tendency to use grape juice to this day at communion, I had long suspected the Methodists played some role in the temperance movement.)

Saturday, March 29, 2008

Ridiculous de Sick

There is a definite possibility that Sick Ridiculous and the Sick Ridiculous will be playing at the SIGBOVIK party tonight, FYI.    

Monday, March 24, 2008

This Weekend in Music

This weekend there were some fun music developments:

Friday Night Cappy-oke:
Friday night I joined Marcus et al. at Cappy's for their weekly karaoke extravaganza. I sang two songs. Neither of them actually went all that well:
Graceland, Paul Simon. I had been looking for this song at Karaoke for a while now. Finally found it. Sang it. Great song, but doesn't work too well for me for karaoke. First off, it's a little too low. Second, it's a little too long, and there are too many parts where I don't sing.

California, Phantom Planet. I sang this song with Marcus, and we were both convinced it was going to kill. It did not. Again, this song was too low, but this time way too low. Considering how slow the song was playing, I suspect we had some version of the song that was actually lowered in key. I remember singing this song in my car, and it went a lot better than this attempt. Oh well...

Monday Night Sick Ridiculous and the Sick Ridiculous:
Tonight, my band Sick Ridiculous and the Sick Ridiculous went to open mic night at the Rex Theater on the south side. It was fun. We played two songs, 737 and Two Mellow Bros. (or whatever we call it). For our first time ever playing live, we both thought it went pretty well, and we even had a few people tell us that they enjoyed it. If you're pissed because we didn't tell you, don't worry. We're just trying to get a little bit more comfortable with ourselves and our live persona.

Friday, March 21, 2008

Did you know about this?What about this?Why didn'...

Did you know about this?

What about this?

Why didn't you tell me?! This is huge!!

In unrelated news, I will never finish my PhD.

Wednesday, March 19, 2008

In Deference to XKCD...

My Hobby:
Editing wikipedia articles to change references from "The Bay Area" to "The San Fransisco Bay Area."

No Soap?

I am so happy that there is a wikipedia entry for the No Soap Radio joke. I like how they call it "anti-humor" and a "sociological experiment."

Rand, this one's for you.

Wednesday, March 12, 2008


I've struggled in the past to explain to people why Florida is not often considered to be "part of The South."

(My dad, somewhat hilariously, refers to people from Florida as Yankees. I think this was where I inherited the idea from.)

But I think the diagram accompanying this wikipedia article explains it all. They don't talk like us!

Monday, March 10, 2008


Okay, took a little longer than I hoped, but it's worth waiting for...

Check out the first two Completely Authorized Sick Ridiculous and the Sick Ridiculous demos: 737, and Muse... You can get then on our SICK myspace site. They are just demos, but they give you a little taste of what we're up to.


Sunday, March 9, 2008

Nels and TomFunkel

Nels and TomFunkel
Originally uploaded by oatmeal2000.
Check out some promo shots for Sick Ridiculous and the Sick Ridiculous. Print them out and make your own 8x10 glossies.

Thanks to Mike for the brilliant camera work. Demos coming real soon. Seriously. Like in hours.

Friday, March 7, 2008

Movie Time!

In the past two days, I've seen two movies! Let's break 'em down:

Be Kind, Rewind
Reasons why you should like this movie: It's got Jack Black and Mos Def recreating all the movies from their video store after a freak incident with some magnetic fields with hilarious results. In fact, the movie doesn't really hit its stride until the movie-making, or "Sweding" begins. (Check out the Sweded version of the movie trailer.) Jack Black plays, well, the same character he always plays, which is a plus for me. Mos Def plays a surprisingly interesting character who is neither sarcastic nor wise-cracking. And as we all know, white people love Mos Def. This movie is also big on the community/racial harmony tip, which is subtle and sweet.

Reasons why you might not like this movie: Well no one has seen it, so there might not be anyone else in the theater laughing with you (there were 4 other people when we went). Also, the aforementioned Jack Black; some people don't like him! Finally, the end is a little bit over-the-top (although in my opinion, not as bad as I was expecting, given the lead up). If you can handle a little sentimentality, this won't be a big deal.

Easy Rider
I had never seen this supposed classic so I was very excited.
Reasons why you should see it: Peter Fonda is a bad-ass in this movie! It's got New Orleans/Mardi Gras as its Zion, which I appreciate. There are some cool scenes of New Orleans. According to what I've read, the French Quarter was a pretty rough place in the 60s. Lots of sailors coming out of bars and beating people up, etc. This movie has great music, and I thought, many well-conceived parts. Even the acid trip at the end, a cause for laughter in most movies, was well-done. Seeing Denis Hopper and Jack Nicolson as young dudes is worth the entire experience!

Reasons why you might not like it: While at the time, the idea that tension between normal people and hippies would obviously turn into violence, it seems a little unreasonable from a modern perspective. You kind of have to see the movie to know what I'm talking about here... This movie can be slowwwwww at times. It doesn't have much of a plot, I guess.

Tuesday, March 4, 2008

Relentlessly Parallel!

As part of my contribution to this year's SIGBOVIK, I have invented a brand new concept in computer science, Relentless Parallelism. Full details to follow. However, I do want you to know that those who cannot wait can already download the Eclipse plugin, which will effectively make your Java code Relentlessly Parallel, from my web site here.

Currently, if you Google(R) Brand Web Search the terms Relentless Parallelism and Relentlessly Parallel, you get a bunch of random links about literature, Japanese and otherwise. My goal is to become the number one hit for either (or both!) of these terms. Wish me luck! (Of course, links from your site wouldn't hurt either...)

Thursday, February 28, 2008

SIGBOVIK and First PC Meeting

SIGBOVIK is fast approaching! In fact, it's April 6th. We know the way these things work, though. You're thinking, "Blogface, I have a paper idea, but just not any time to work on it. Besides, who wants to write a funny paper all alone in their condemned apartment?" Great point.

That's why this Saturday you should join us for the first PC meeting. We use the PC meeting as an opportunity to write papers, and then immediately accept them for publication. There's lots of people there. Last year it was fun, and this year it should be too. Here are the details, I command you to come:

SIGBOVIK: First Paper Writing Party
Saturday, March 1st
10am - 6pm (Come for any amount of time you desire. Usually we order some food at some point.)
NSH 3001

Wednesday, February 27, 2008

Complicated Pleasures

Today a small miracle occurred:
I got my first practicum passed! In our department, practicums fulfill the roll of one course, and basically are a description of some work experience that we've had and a real problem that we encountered. We have to do two of them.

It took about a year and a half in total, but I can't really say that I've been working on it most of that time. Most of the time was waiting one comments and that sort of thing. It wasn't too painful, but I'm definitely glad to be done!

Friday, February 22, 2008

The Piano Lesson

Last night I saw CMU's production of The Piano Lesson. It's going to playing until March 1st, and I really recommend that you go see it if you can.

The Piano Lesson is the story of a family living in The Hill District in Pittsburgh in the 1930s, and you ought to see it if only because its author, August Wilson, is one of the few nationally known writers to live and work in Pittsburgh. (Two of his works including The Piano Lesson won the Pulitzer Prize.) But an even better reason to see it is because it is terrifically acted by a really talented group of CMU students. Even on the first night (and you could tell a few of the lines were not yet solidified) the characters were all extremely powerful, and funny too!

You should check it out, and I'll leave it at that.

Wednesday, February 20, 2008

HTML Monkey

Hello fellow nerds!

Question: If you had a bunch of HTML data, in a semi-regular format (exhibit a: Software Engineering Dissertations) and you wanted to jam all that information into a SQL database which has already been created, how would you most efficiently create the INSERT statements to avoid any mind-numbing work?

I've done things like this in the past with Java/Perl/Awk regexps, but they've never really worked perfectly due to the irregular structure. Any better ideas?

Tuesday, February 19, 2008


I've been watching some of the TV show Lost, recently, because of their sweet online episodes. I also saw a little bit back in college because my roommate liked to watch it. I gotta say, that's a pretty frustrating show to watch. While it's very engaging, you definitely get the idea that you're never really going to learn "what it's all about." In the past three episodes I don't feel like I've learned anything new about the state of the world.

How do you guys do it? What happens if the show gets canceled before you learn what's going? Seems unlikely now, but at the pace they're going, you never know...

Saturday, February 16, 2008


A few weeks ago I read a book called, Showstopper!  which described the making of Windows NT. I wrote a little mini-review on my home page. I would recommend it to people (like me) who are interested in the history of CS and big software projects. In a similar vein, a long time ago I read two books about Xerox Parc, Fumbling the Future, and some other one. I would definitely recommend both of the books, mostly because the story of Parc, and Xerox's failure to capitalize on their own invention of the PC, is so interesting.

Wednesday, February 13, 2008

Thinking about getting me a gift this Valentine's Day, but don't quite know what to get for the man who has everything?

Simple, animal shirts.

Sunday, February 10, 2008

Beatles and Battles

The absence of any posts this week has little to do with a lack of interesting goings-on. Instead, it's due to a particularly nasty sickness that I contracted. I'm going to go ahead and call it, "The Flu." It had me pretty much useless from Wednesday until Saturday morning, and even now I am still experiencing reverberating aftershocks.

What would I have said?

Well, I meant to mention my heartfelt congratulations to Eli Manning, who was busy winning the Super Bowl(tm) this time last week. Those of you who saw the game know how amazing it was, there is little need to say more, except that now I will have to push myself that much harder if I wish to be Most Famous-est Graduate of Isidore Newman School.

In movie news, I went to see Across the Universe, with my lovely lady friend. This movie is great, and was exactly what I was hoping for, although if you don't like musicals, and in particular hate them for their over-the-top-ness (Tom, I'm looking in your direction), you might positively hate this movie. Across the Universe could be described as Moulin Rouge, except with only Beatles songs. There's a great cameo by Bono, that got I Am the Walrus stuck in my head all the next day. The choreography was sweet, something I don't normally care about, and for only the second time I can remember, the chattiness of our audience actually hightened my enjoyment of a film. There was clapping, and chanting, and it was all good.

Today was band practice. Guys, you are going to have to start looking out for Sick Ridiculous. We just might have an impact.

Tuesday, February 5, 2008

Ash Wednesday

Originally uploaded by DixiePistols.
Here are some pictures from my trip to New Orleans for some kind of annual festival.

Wednesday, January 30, 2008


Haulin' Ass, Gettin' PaidIf you're around Pittsburgh this weekend you should definitely go check out the Mike Judge movie, Idiocracy showing at CMU. It's got more than its share of dumb moments, but I think that on the whole it's a pretty funny movie. Some of the jokes are even somewhat subtle, like that in the year 2500 everyone wears Crocks.

Also, saw Atonement last night, I agree with Patrick that it's a great movie. The two actresses that play Briney, both as a little girl and then as a girl in her late teens, are wonderful, and my favorite part of the movie. Unlike Patrick, however, I did not like There Will Be Blood, even though I fully expected too... I felt that it only really had two real characters (the son was left undeveloped) and neither of them was at all worthy of my sympathy. Does that necessarily make for a bad movie? No, and I would certainly not call this a bad movie, however at the end of it all I just wasn't interested...

Monday, January 28, 2008


List of Concurrent Java Programs:
Just wanted to let you all know officially that I have started a page on my site where I list a bunch of concurrent programs written in Java. The idea is that they may be useful for my own research, and so far it has been hard finding large lists of concurrent programs so that I could pick out one actually relevant for my work. Hopefully this can help change that problem, except that there are only three entries so far... Dig the gnar-gnar CSS while you're at it!

While I'm on the subject of Java concurrency, something came up twice on Friday that I wanted to bring up again; wait/notify. As you may know, Java provides monitors as its built-in all-purpose synchronization primitive. These monitors provide both locking, for mutual exclusion, and wait/notify, for thread synchronization. Other than busy-waiting and thread join, the only means by which one can cause a thread to hold in Java is to call wait and then wait around for another thread to call notify on that same object. Both a research colleague and a paper written by my advisor claimed that wait/notify are rarely used in Java programs. While this certainly may be true, does this imply that most concurrent code written in Java only needs mutual exclusion primitives? What about things like thread barriers, and other thread-ordering devices? Don't people need monitors for those sorts of things?

Performance Tension:
One strange sensation I encountered occurred while attempting to write a concurrent dataflow analysis for the Crystal analysis framework, a Java analysis framework written in Java. There was a point where I found an obvious performance problem, but didn't want to fix it, deciding instead to wait until the program itself actually showed poor performance. This action itself caused me some pause. This action was undoubtedly caused by the phrase that has been ingrained in my subconscious, "premature optimization is the root of all evil." But of course I was busy implementing a concurrent library class whose whole point (ostensibly) was to increase analysis performance. It at least made me realize that there is some tension between what we are always taught about optimization, that it is a discussion best saved until the end of the day, and concurrency, which often permeates the architecture of the program itself. In fact the changes necessitated some global restructuring of the program. "Interesting," is all I could really conclude.

Weekend Out

Last night joined George-y boy and the Pittsburgh UVA Alumni association for some UVA-Georgia Tech basketball action. It was a small group, but heavy on fun.

Brianne and I also cooked dinner for Maja and Kevin on Saturday night. We had lasagna for the main course and I must say it was pretty delicious. Also, if you are drinking red wine, you probably ought to be drinking Malbec. It is deliciously dry, thick, and never too expensive.

Found out that my advisor meeting was moved to today, and now am scrambling to do some work (and, of course, posting to my blog). But I think I have something interesting to work with, so maybe it wont be so bad.

Last night I caught the buy bug, and decided that really my laptop was not cutting it anymore for anything other than Powerpoint presentations. My new plan is to buy a crappy desktop to work on at home, and keep using my laptop but in a more limited role.