Monday, November 29, 2010
Thesis Defense: December 14th, 2010
In about two weeks I will be defending my Ph.D.! It will be on December 14th, 2010 at 9:30am in the Gates Building, room 4405. I would very much appreciate your attendance.
Friday, July 30, 2010
How to Sit at a Desk for Long Periods of Time
I just found a funny document on my computer, one that seems especially appropriate as my graduate career is winding down. It's a PDF that I made with LaTeX, way back when I first started graduate school (I can tell from the date). I had never used LaTeX before, but I had heard enough about it, and figured that I should probably learn it as soon as I got to graduate school. Here I am, five years later, and I'm still wresting with LaTeX, trying to write my thesis... Pretty funny stuff.
Anyway, without further ado, I present:
Sunday, June 6, 2010
Microchronograph!
In this period of intense travel, updates are few & far between. But dear readers I have music to present, and music say so much more than words themselves.
Microchrograph, is the latest Sick Ridiculous & the Sick Ridiculous tune to hit the market. Tom summarized it pretty well on his blog, but basically it's about academic dishonesty. You should definitely give it a listen, download it freely, and share it with your bros & lady friends.
Microchrograph, is the latest Sick Ridiculous & the Sick Ridiculous tune to hit the market. Tom summarized it pretty well on his blog, but basically it's about academic dishonesty. You should definitely give it a listen, download it freely, and share it with your bros & lady friends.
Tuesday, May 25, 2010
I think this qualifies as a 'gotcha'
I was writing some Java code today. I'm writing a plug-in for Eclipse that will actually insert some Java annotations (e.g., @Override) into your code automatically.
Unfortunately, every time I ran my plug-in, the annotations were being inserted without the @ sign (e.g., Override). I couldn't figure out what was going on, looking at the code that generates the text:
String annotation_text = ...
StringBuilder sb = new StringBuilder('@');
sb.append(annotation_text);
sb.append(newline);
Finally, I hovered over the StringBuilder constructor to figure out which constructor I was calling. Low and behold, I'm calling this one:
java.lang.StringBuilder.StringBuilder(int capacity)
In other words, by using single quotes, I am specifying the character '@' which is then implicitly cast to an int. Hmm... This doesn't seem so bad at first, but there's an asymmetry in the API. If I use this constructor:
new StringBuilder("@");
I get the behavior I expect, a string builder initialized to the at sign.
Moreover, there are append methods that take a single character:
sb.append('@');
Adds the single at sign character to the stream. So, knowing about this method, and the string constructor of the StringBuilder, I naturally assumed there was a character constructor as well... NOT SO FAST BECKMAN.
Unfortunately, every time I ran my plug-in, the annotations were being inserted without the @ sign (e.g., Override). I couldn't figure out what was going on, looking at the code that generates the text:
String annotation_text = ...
StringBuilder sb = new StringBuilder('@');
sb.append(annotation_text);
sb.append(newline);
Finally, I hovered over the StringBuilder constructor to figure out which constructor I was calling. Low and behold, I'm calling this one:
java.lang.StringBuilder.StringBuilder(int capacity)
In other words, by using single quotes, I am specifying the character '@' which is then implicitly cast to an int. Hmm... This doesn't seem so bad at first, but there's an asymmetry in the API. If I use this constructor:
new StringBuilder("@");
I get the behavior I expect, a string builder initialized to the at sign.
Moreover, there are append methods that take a single character:
sb.append('@');
Adds the single at sign character to the stream. So, knowing about this method, and the string constructor of the StringBuilder, I naturally assumed there was a character constructor as well... NOT SO FAST BECKMAN.
Tuesday, May 18, 2010
Trip to Agra
This past weekend I went to Agra! Agra is a city in India famous for the Taj Mahal, the landmark that Americans like me most identify with India. Since I'd never been, and this is my third trip to India (!!) I felt like I really should make the trip.
To cut to the chase, it was awesome. I was expecting a cool building that was kind of a tourist trap, but this was an amazing building that was kind of a tourist trap. Probably the most amazing piece of architecture I have ever seen. And as they say, pictures do not do it justice. It is much larger than I'd imagined, and thanks to its elevated location, it appears to be hovering in mid-air. The two hours that I spend at the Taj Mahal were more than worth the entire weekend trip.
And what a gnarly trip it was... It's not really that easy to get to from Bangalore. I flew to Delhi early Saturday morning, and then took a train to Agra. On Sunday, I hired a car from Agra to Delhi, and then flew back to Bangalore. It was stressful as hell. The train was hot because I wasn't in an A/C section because I didn't make reservations early enough. (Lesson: make train reservations early in India!) I took a car on the way back because the only trains still available were at like 6 in the morning. The trip, which was only 200km, took four hours. I spent almost the whole time alternating between worrying about dying (my driver was, um, aggressive) and worrying about missing my flight.
But some things went well. Even though my itinerary was crazy it all worked out. The hotel where I stayed (The Taj Plaza) was cheap, pretty nice, within walking distance of the Taj and full of helpful employees. Recommended. Also, on Sunday morning I went to the breakfast buffet at the Oberoi Amar Villas hotel. The hotel itself is unbelievably expensive, and the buffet was expensive by local standards, but the food was really good! Recommended.
To cut to the chase, it was awesome. I was expecting a cool building that was kind of a tourist trap, but this was an amazing building that was kind of a tourist trap. Probably the most amazing piece of architecture I have ever seen. And as they say, pictures do not do it justice. It is much larger than I'd imagined, and thanks to its elevated location, it appears to be hovering in mid-air. The two hours that I spend at the Taj Mahal were more than worth the entire weekend trip.
And what a gnarly trip it was... It's not really that easy to get to from Bangalore. I flew to Delhi early Saturday morning, and then took a train to Agra. On Sunday, I hired a car from Agra to Delhi, and then flew back to Bangalore. It was stressful as hell. The train was hot because I wasn't in an A/C section because I didn't make reservations early enough. (Lesson: make train reservations early in India!) I took a car on the way back because the only trains still available were at like 6 in the morning. The trip, which was only 200km, took four hours. I spent almost the whole time alternating between worrying about dying (my driver was, um, aggressive) and worrying about missing my flight.
But some things went well. Even though my itinerary was crazy it all worked out. The hotel where I stayed (The Taj Plaza) was cheap, pretty nice, within walking distance of the Taj and full of helpful employees. Recommended. Also, on Sunday morning I went to the breakfast buffet at the Oberoi Amar Villas hotel. The hotel itself is unbelievably expensive, and the buffet was expensive by local standards, but the food was really good! Recommended.
Tuesday, May 11, 2010
Validating XML against a Schema
If you ever have to write XML, and you need that XML to validate against a schema (and by the way, if you ever had to do this, I'm so sorry...) it turns out that Visual Studio is a great environment for this. It will tell you where you're XML is wrong and more importantly WHY. So many of the online validators would just say you have a problem without giving you any suggestions on how to fix it.
For the record, I am using Visual Studio 2008 Professional.
For the record, I am using Visual Studio 2008 Professional.
Wednesday, May 5, 2010
Yes. I am in India.
I made it to Bangalore! The trip was extremely painful, mostly because it was long, but it did have a few highlights:
- In Charles de Gaulle airport there is a "resting" room that has lounge-style chairs that you can actually lie on and go to sleep, and it's free! What?! I took a lil' nap there in between my two nine hour flights.
- I saw five movies. Best one? Probably Crazy Heart. Worst one? Definitely Bride Wars.
At Microsoft things are about like I remember. TONS of paper work to go through on the first couple of days, but I actually managed to make some progress on my project. There are a few things about India that I forgot to remember:
- The mangoes are ridiccio! There's a snack area here at MSRI that has free stuff for us. They have mangoes, not the green kind but the yellow kind, and they are soooo good.
- The streets are unbelievably hectic. I'll spend the first week jumping at the sound of horns and fearful that I will be hit while walking on the edge of the street (because the sidewalks are not really navigable).
- People call you "boss." Really love that.
Thursday, April 29, 2010
Beginning of the Summer, Travel, etc.
Well folks, it's been and continues to be a very busy period in my life! The semester is ending. I traveled a whole lot this past year. I'm going to India, again! And the summer is beginning. So let me just bring you all up to date.
The short story is, I am going to Bangalore, India, and I am leaving tomorrow. I'm going to work on a project at Microsoft Research, India that's related to my thesis, but also related to work they do there, so it's a good match. Some of you may know that I was there back in 2007, and had an awesome time. Well I am pumped to be going back. I'll be working with the same person, Aditya Nori, and to a lesser extent with Sriram Rajamani, who is on my thesis committee. This is going to be a more concentrated research trip, since I'll only be there for May, and we have a project to start and finish, but I'll still have some time to be a tourist.
When I get back, I have a bunch of research to get to in my final push to be doctored on. I'll be glad to be back in Pittsburgh for an extended time. I love graduate school, and I love all the great travel opportunities it has provided me with, but I also love my friends in Pittsburgh, and it'll be nice to be here for the summer.
If this post seems a little frantic, it's because I am frantically getting ready! Am I packed? Of course not! But I'll figure something out...
The short story is, I am going to Bangalore, India, and I am leaving tomorrow. I'm going to work on a project at Microsoft Research, India that's related to my thesis, but also related to work they do there, so it's a good match. Some of you may know that I was there back in 2007, and had an awesome time. Well I am pumped to be going back. I'll be working with the same person, Aditya Nori, and to a lesser extent with Sriram Rajamani, who is on my thesis committee. This is going to be a more concentrated research trip, since I'll only be there for May, and we have a project to start and finish, but I'll still have some time to be a tourist.
When I get back, I have a bunch of research to get to in my final push to be doctored on. I'll be glad to be back in Pittsburgh for an extended time. I love graduate school, and I love all the great travel opportunities it has provided me with, but I also love my friends in Pittsburgh, and it'll be nice to be here for the summer.
If this post seems a little frantic, it's because I am frantically getting ready! Am I packed? Of course not! But I'll figure something out...
Wednesday, April 21, 2010
Nearest Neighbor
Hey. Just learned about a cool data structure for computational geometry called, KD-Trees. Yes, it's sort of embarrassing that I've just now learned about them, but what can I say? I still think they are cool. Anyway, KD-Trees are like binary trees but for points in space. They make it really easy (well, fast) to do things like search for the nearest point in a set to some given point.
SO, I quickly hacked up a nearest neighbor application. It generates a bunch of random points, and then when you click highlights the nearest point in red. Yay.
Click here to download the JAR if you want to run it. It's on of those runnable Jars... remember those? Ah, Java... I tried to make it an Applet, but that process was even more ridiculous.
SO, I quickly hacked up a nearest neighbor application. It generates a bunch of random points, and then when you click highlights the nearest point in red. Yay.
Click here to download the JAR if you want to run it. It's on of those runnable Jars... remember those? Ah, Java... I tried to make it an Applet, but that process was even more ridiculous.
Tuesday, April 13, 2010
Proof of Soundness for a Typestate Checker with Locks
Right now I am working on (what I hope will be) the last major theoretical effort of my thesis. I need to do another proof. Way back when I wrote this paper for OOPSLA in 2008, I did a proof of soundness for my language, a language that used atomic blocks for mutual exclusion. Right now, I'm doing the same thing but for a language that uses synchronized blocks. In other words, a language that is more Java-like.
Proofs are pretty painful for me, and the last one I did was really complicated, so rather than merely update the old proof to add locks, I am actually rewriting and simplifying (I think?) a whole bunch of stuff.
One of the biggest questions for me is a question that is important whenever you are doing a proof for a language with references; how will I define a well-typed heap? A well-typed heap means a runtime heap that is consistent with the type-checking facts that were known statically. In my system, every thread is an expression, and each one has its own type-checking context. They all much be consistent with the heap. Furthermore, in anticipation of my proof of preservation (where I have to show that after a step, the heap will still be well-typed) I think that my definition of a well-typed heap will have to include the following condition:
Proofs are pretty painful for me, and the last one I did was really complicated, so rather than merely update the old proof to add locks, I am actually rewriting and simplifying (I think?) a whole bunch of stuff.
One of the biggest questions for me is a question that is important whenever you are doing a proof for a language with references; how will I define a well-typed heap? A well-typed heap means a runtime heap that is consistent with the type-checking facts that were known statically. In my system, every thread is an expression, and each one has its own type-checking context. They all much be consistent with the heap. Furthermore, in anticipation of my proof of preservation (where I have to show that after a step, the heap will still be well-typed) I think that my definition of a well-typed heap will have to include the following condition:
At most one thread can know statically the exact state of an object.In my last proof I had a similar condition, but it was really unweildy to work with. I wonder how I can simplify this desire?
We're Live @ Blogger
Hey folks,
As you may have noticed, my blog is now hosted at Blogger.com. This is why a.) you see a fancy new layout and b.) if you normally get here by typing www.blogface.org into your browser, it's no longer a silly URL redirect, but rather you actually see blogface.org in your browser's address bar. Nice. There are a few reasons I switched over to Blogger, but mainly I just wanted to try something new. If you ever have the joy/pain of switching from one blog software to another, I highly recommend you check out the google-blog-converters project. You can run it on there app engine or on your own PC, and it even logs into your blog and grabs all the comments if you want it to.
Couple of things to keep in mind:
As you may have noticed, my blog is now hosted at Blogger.com. This is why a.) you see a fancy new layout and b.) if you normally get here by typing www.blogface.org into your browser, it's no longer a silly URL redirect, but rather you actually see blogface.org in your browser's address bar. Nice. There are a few reasons I switched over to Blogger, but mainly I just wanted to try something new. If you ever have the joy/pain of switching from one blog software to another, I highly recommend you check out the google-blog-converters project. You can run it on there app engine or on your own PC, and it even logs into your blog and grabs all the comments if you want it to.
Couple of things to keep in mind:
- If you want to follow over RSS, go to http://feed.blogface.org/
- While comments were moved from the old blog, I guess you have pretty much lost your ability to edit your comment if you made one.
- Lists should have three items.
Sunday, April 11, 2010
The Dissatisfactory Doily
The most recent incarnation of SIGBOVIK, the annual celebration of all that is computer science humor, occurred on April 1st. I didn't have much time to recap it earlier, but it went very well. With the exception of being just a tiny bit long, this may have been the best SIGBOVIK ever. If you're interested in a (free) electronic copy of the proceedings or a ($7) paper copy of the proceedings, go back and click those links!
But I mostly wanted to talk about my own paper, The Dissatisfactory Doily. The premise of the paper is this: You own a sports team. You are jealous of the Pittsburgh Steelers and their ability to sell $10 Terrible Towels. You's like to make your own, but you don't have a clever, alliterative name. Well look no further than the Dissatisfactory Doily, a random name generator for Terrible Towel knock-offs. It takes a list of adjectives (synonyms for terrible) and a list of nouns (cloth-related) and spits out your new product name. For a long list of examples, please see the paper, but some of my favorites are, The Wanton Wall-to-Wall Carpeting, The Abominable Afghan, and The Horrendous Hanky.
In further news, this was likely my last year as SIGBOVIK MC. It's been a lot of fun, but my jokes are getting stale. Time to pass the torch!
But I mostly wanted to talk about my own paper, The Dissatisfactory Doily. The premise of the paper is this: You own a sports team. You are jealous of the Pittsburgh Steelers and their ability to sell $10 Terrible Towels. You's like to make your own, but you don't have a clever, alliterative name. Well look no further than the Dissatisfactory Doily, a random name generator for Terrible Towel knock-offs. It takes a list of adjectives (synonyms for terrible) and a list of nouns (cloth-related) and spits out your new product name. For a long list of examples, please see the paper, but some of my favorites are, The Wanton Wall-to-Wall Carpeting, The Abominable Afghan, and The Horrendous Hanky.
In further news, this was likely my last year as SIGBOVIK MC. It's been a lot of fun, but my jokes are getting stale. Time to pass the torch!
Sunday, March 21, 2010
Bad Tatoos
There's something really, really funny about a really, really bad tattoo. This one is my favorite, and really, isn't all that bad since it shows a sense of humor. Found this on a bad tattoo blog.
Monday, March 15, 2010
Technical Report: Polymorphic Access Permissions
I've recently been working on an approach to add parametric polymorphism to our Access Permissions methodology. Access Permissions is a fraction-based means of reasoning about program aliases statically. It turns out in certain cases, it's really nice to have parametric polymorphism over permission specifications, for many of the same reasons that it's useful to have traditional parametric polymorphism (e.g., Java generics).
Our paper on the subject was recently rejected from ECOOP, but I think there are still some neat ideas in here. We've posted the paper as a technical report, and work on the subject will continue. You can find the technical report on the ISR page.
In other news, I've also started keeping track of the movies I've watched, mostly due to a recent binge.
Our paper on the subject was recently rejected from ECOOP, but I think there are still some neat ideas in here. We've posted the paper as a technical report, and work on the subject will continue. You can find the technical report on the ISR page.
In other news, I've also started keeping track of the movies I've watched, mostly due to a recent binge.
Sunday, March 7, 2010
Berlin Pictures, at Long Last
I finally posted some of my pictures from my most recent Berlin trip. I had a great time. Here are some highlights:
Awesome!
- We went to the German Resistance Museum
- I stayed in Kreuzberg
- We went to the Neues Museum, which has tons of cool Egyptian Art
- We went to the DDR museum
- We took plenty of public transportation
- We drank plenty of coffee
- We saw cool East German stuff
Awesome!
Saturday, March 6, 2010
Tempelhof
The last weekend I was in Berlin we went on a tour of Tempelhof airport. Tempelhof, now closed, was one of the oldest major airports in Europe. Orville Wright flew at the location in 1909. The later terminal building is a great example of architecture from between the wars, and is absolutely enormous. Some of the highlights of the tour were the basketball court, used by American servicemen, the large main terminal hall, and the underground bunkers. Click through for plenty more pictures.
Thursday, March 4, 2010
A380
Well, you may have heard this already... You see, I've been very excited. I got the chance to change my return flight from Berlin. Something went wrong with my original itinerary. When I was rebooking, I saw that the A380 was an option, and I was pumped. It didn't matter that I had to fly an extra leg to take it. I wanted to.
Okay, I know it's not that big of a deal, but this was the first time I had ever flown on the A380, and it was a lot sooner than I expected. For the moment, it's mostly being flown by Asian carriers which I never fly since I have never been. I remember seeing the A380 at the 2005 Le Bourget air show in Paris when it was still being tested, and now that I've flown it "only" five years later tells you something about the slow pace of airplane development.
The first thing I noticed when walking through terminal 2E was that its tail was so much larger than all the other planes in front of it. I couldn't see it, but I could see its tail. When I finally got near by, I took a couple of pictures. Other people were having their picture taken in front of it, which was kind of funny. I was on the top deck or "pont superior," so I got to go upstairs to the higher jet bridge. The A380 has two decks, but the upper deck is not merely for super rich people like on the 747. On top, the configuration is 2-4-2 (bottom 3-4-3) and I was sitting in the aisle, but in one of the pairs of seats near the window. 93-K was my seat, which I thought was pretty awesome.
Was it all that different? Well no. In fact, from the top deck, you feel strangely like you are on a 767 or something. It's a funny thing knowing that there are another 300 passengers sitting below you, our of site. But there were a few cool things about it. One is the personal entertainment system. It's common on most newer planes, but Delta's 767 don't have them, so that was worth changing my flight by itself. I watched Funny People and JFK. One cool addition is a messaging service that allows you to chat (like on AIM or something) with other passengers on the plane. The entertainment system does give you access to the three cameras mounted on the exterior, one facing forward from the nose, one from the tail, and another one facing straight down. That was very cool, and allowed me to see our gnarly off-axis landing (crosswinds, etc.).
It was definitely nice flying on Air France. We were given a menu for lunch, aperitifs beforehand, and they even set up a self-service bar that was accessible for the duration of the flight. I helped myself to some champagne.
The interior of the cabin is nice even back in coach. They have some kind of LED mood lighting that simulates the passing of the sunlight. The windows are larger than normal, and under each window there is a storage compartment, usable by the person sitting next to the window.
While overall the experience is pretty similar to any other new plane, it is a very large plane. Ours had 536 people, completely full. When walking through the jetbridge, it almost felt like I was boarding a cruise ship or something. And when the plane took off I got the impression that everyone around me was amazed; it just seems so improbable.
In summary, I would definitely recommend a ride. Airplane fanboyism is now complete!
Okay, I know it's not that big of a deal, but this was the first time I had ever flown on the A380, and it was a lot sooner than I expected. For the moment, it's mostly being flown by Asian carriers which I never fly since I have never been. I remember seeing the A380 at the 2005 Le Bourget air show in Paris when it was still being tested, and now that I've flown it "only" five years later tells you something about the slow pace of airplane development.
The first thing I noticed when walking through terminal 2E was that its tail was so much larger than all the other planes in front of it. I couldn't see it, but I could see its tail. When I finally got near by, I took a couple of pictures. Other people were having their picture taken in front of it, which was kind of funny. I was on the top deck or "pont superior," so I got to go upstairs to the higher jet bridge. The A380 has two decks, but the upper deck is not merely for super rich people like on the 747. On top, the configuration is 2-4-2 (bottom 3-4-3) and I was sitting in the aisle, but in one of the pairs of seats near the window. 93-K was my seat, which I thought was pretty awesome.
Was it all that different? Well no. In fact, from the top deck, you feel strangely like you are on a 767 or something. It's a funny thing knowing that there are another 300 passengers sitting below you, our of site. But there were a few cool things about it. One is the personal entertainment system. It's common on most newer planes, but Delta's 767 don't have them, so that was worth changing my flight by itself. I watched Funny People and JFK. One cool addition is a messaging service that allows you to chat (like on AIM or something) with other passengers on the plane. The entertainment system does give you access to the three cameras mounted on the exterior, one facing forward from the nose, one from the tail, and another one facing straight down. That was very cool, and allowed me to see our gnarly off-axis landing (crosswinds, etc.).
It was definitely nice flying on Air France. We were given a menu for lunch, aperitifs beforehand, and they even set up a self-service bar that was accessible for the duration of the flight. I helped myself to some champagne.
The interior of the cabin is nice even back in coach. They have some kind of LED mood lighting that simulates the passing of the sunlight. The windows are larger than normal, and under each window there is a storage compartment, usable by the person sitting next to the window.
While overall the experience is pretty similar to any other new plane, it is a very large plane. Ours had 536 people, completely full. When walking through the jetbridge, it almost felt like I was boarding a cruise ship or something. And when the plane took off I got the impression that everyone around me was amazed; it just seems so improbable.
In summary, I would definitely recommend a ride. Airplane fanboyism is now complete!
Thursday, February 18, 2010
Berlinale
I am lucky enough to be in Berlin during the Berlinale, the annual film festival. It turns out to be a pretty big deal, and while I was initially skeptical, I have bought into the whole thing, and we've bought tickets to see five different movies. So far, I've just seen two, but they were both pretty good:
Also, new Sick Ridiculous song Duckles Chuckles. Please check it out!
- Summer Wars is an anime about a boy who is paid to be the popular girl's boyfriend during a family reunion. During this reunion, hackers compromise the all-encompassing Google-like network called Oz, and wreck havoc. The nerdy main character has to rescue the world. I thought this movie was pretty good. I guess I like anime a lot more when it's not in the fantasy genre, my least favorite genre. Of course it contains its moments that are cringe-inducing in their cutsiness, but I think that's par for the course. Best part? The artificial intelligence behind the virus came out of "a Pittsburgh robotics laboratory." Wonder where that could be?!
- Sex & Drugs & Rock & Roll was a biopic about Ian Dury, the singer/songwriter for some punk/new wave bands like The Blockheads. Actually I thought I was going to see a documentary, but that idea was dispelled about fifteen seconds into the movie. Also, I didn't know anything about Ian Dury. I'd maybe heard the song Sex & Drugs & Rock & Roll once or twice in my life. But still, it turned out to be a pretty good movie. Ian had polio as a child, so a lot of the movie is kind of about his struggles as a kid, and the parallel struggles of his son's life, since he, you know, has a father who is largely absent. Best part? This movie contains the actors from The Office (U.K.) who play Gareth Keenan and Chris Finch!
Also, new Sick Ridiculous song Duckles Chuckles. Please check it out!
Saturday, February 13, 2010
Berlin, February 2010
Well folks, I am back in Berlin! I'm here for the next three weeks, and looking to see some neat stuff as well as continue some cool research projects I am working on. I've just been here since Wednesday, and most of that time has been spent either working on recovering from jet-lag, but there were a few highlights:
- In Pittsburgh, I showed up to the airport early and asked them to put me on an earlier flight. They did! And I credit this decision for my ability to actually get out ahead of the impending snowstorm. While NYC also had an impending snow storm, it was slightly less, um, impending, so my 8pm flight was just fine.
- In Berlin, it's cold! Much colder than it was in November, and just about as cold as Pittsburgh. Strangely enough, no one shovels their sidewalks here. It's a complete joke. There is a thick layer of ice everywhere. I sort of thought Pittsburgh was bad in this way, but by comparison to Berlin, Pittsburgh is awesome.
- Last night we went out for dinner at a burrito place! It was actually pretty good, believe it or not. It's rare to get good Mexican food in Europe (or say anywhere outside of Mexico and the southern United States) but this was pretty tasty. I had flautas!
- Also last night we went to a Ping Pong bar called, "Dr. Pong." At Dr. Pong there is only one table, but dozens of patrons, so what happens is, everyone gets a paddle and then walks around the ping pong table, hitting the ball back and forth. If you miss, or hit it out, you're eliminated, and then at the end the final two people play a game to five. The best part is when there are three people left, so they're really running around the table to keep the ball in play! Apparently these bars are pretty popular here, especially with hipsters, and I could see it catching on in the U.S. Gooski's anyone?
- Tomorrow I want to go to the Museum of the German Resistance. We'll see how that goes...
Sunday, February 7, 2010
The New Orleans Saints Win the NFL Superbowl
I am writing this now because I want to remember this moment. Tonight the Saints won the Superbowl. It was awesome. Here's what I remember:
- Every single pundit picking the Colts. That's okay, I don't hold it against them. But this is just for future reference. In the NFL, especially in the playoffs, you never know what is going to happen.
- What do you even say about the on-sides kick to start the half? Awesome. In fact, Sean Payton was back with the more aggressive calling that we expect from him, and that we sort of missed in the last game.
- Blitzing! As in, we didn't do nearly as much as last game. This turned out to be a great strategy. I thought we blitzed a little too much last game, so this game was perfect. Standard defense until the fourth quarter when we threw in some new ones. (We did run some 3/4 though.)
- The Colts started off hot, but from the second quarter on the Saints look great, like the regular season Saints!
- When Porter made the interception, I went buck wild. Amazing. Same reaction as the Favre interception * 100.
- Wish I were in New Orleans, getting wild with those bonkers Saints fans. Insane.
Saturday, February 6, 2010
Snotorious B.I.G.
Snow pictures up! These are all shots from my backyard.
Thanks Rob for the phrase, "Snotorious B.I.G."
Thanks Rob for the phrase, "Snotorious B.I.G."
Friday, February 5, 2010
Question about function... optimization?
Computer science people, I am looking to be pointed in the right direction. I am looking for a solution to a problem, and I think the answer might lie in an area of Computer Science/Statistics/O.R. that I know very little about. Here's the deal:
I have two mathematical functions, f_1 and f_2. Both functions intersect with the Y axis at exactly two points (and basically what happens below the Y axis can be ignored). f_1 is fixed; it's input. But f_2 is defined in terms of two parameters that I can tweak. Here's what I am trying to answer:
How can I pick the two parameters of f_2 so that the area under f_2 is as large as possible and yet still contained entirely within the area under f_1?
I have come up with sort of a brute-force algorithm that I think will solve the problem, but if there's a 'best' or well-known way to solve this class of problems I'd like to learn more about it. I have heard about topics like 'function optimization.' Is this relevant? Also, because what I am doing is sort of a surprise, I'd like to hide most of the details, but I can give more if that will help the quality of your responses.
I have two mathematical functions, f_1 and f_2. Both functions intersect with the Y axis at exactly two points (and basically what happens below the Y axis can be ignored). f_1 is fixed; it's input. But f_2 is defined in terms of two parameters that I can tweak. Here's what I am trying to answer:
How can I pick the two parameters of f_2 so that the area under f_2 is as large as possible and yet still contained entirely within the area under f_1?
I have come up with sort of a brute-force algorithm that I think will solve the problem, but if there's a 'best' or well-known way to solve this class of problems I'd like to learn more about it. I have heard about topics like 'function optimization.' Is this relevant? Also, because what I am doing is sort of a surprise, I'd like to hide most of the details, but I can give more if that will help the quality of your responses.
Tuesday, February 2, 2010
Top 10 Tweeted Links of 2009
2009 was a great year. In fact, it was the first year where I really started using Twitter. Oh I'd used it before 2009, but not seriously. (And come on, it's only been around since, what, like 2007?) Anywho, I went back through my 2009 Tweets. I took a look at all the videos and links I felt were worth sharing, took my ten favorite, and now present them to you, dear reader. So without further ado, my top ten tweeted links of 2009:
That's it everyone. Have a great twenty-ten.
- A Hastily Made Cleveland Tourism Video
- Preservation Hall Hot 4: Saint James Infirmary (King Britt Remix)
- Freedom Tray - So free it hurts
- This old Nextel commercial that I love
- Ben Folds Five reunites to play Reinhold Messner live
- 1300 Bad Words
- The Wikipedia Entry for M.A.S.K., the only cartoon besides TMNT that I remember really loving as a kid.
- The iPod is revolutionary
- These American Apparel leotards look ridiculous
- TWIPES!
That's it everyone. Have a great twenty-ten.
Sunday, January 17, 2010
Ramos Gin Fizz & Sazerac
Yesterday, in order to prepare for the Saints playoff game, I decided to try to make two classic New Orleans cocktails. They turned out pretty well!
The first was the Ramos Gin Fizz, pictured here. There are several different kinds of Gin Fizzes. The Ramos Gin Fizz is a milky, eggy contraption, said to be the favorite of Huey P. Long. I followed the recipe from this YouTube video on New Orleans cocktails. The funny thing here is really the combination of citrus (lemon & lime) and cream. As Brianne asked, YES, it did curdle when I first put them together. I guess that was a little off-putting, but once you shake the whole thing up, I guess it kind of beats the curdle into a more creamy mixture. Anyway, it doesn't matter matter, because it tasted pretty great. Creamy, sparkling and orange-y, thanks to the orange flower water, which I purchased at Salim's on Centre. Actually I think it was better than the only other one I've ever had, at the Carousel Bar in New Orleans, because that one had ice in it, which was kind of weird. Other changes: I used sugar instead of simple syrup, and light cream instead of heavy cream.
The next drink I made was a Sazerac. This again came from the New Orleans cocktails series on YouTube. The Sazerac is funny, because the drink itself is pretty simple, but the process is very complicated. I was smart enough to pick up some Peychaud's bitters last time I was in New Orleans, but I did not get Herbsaint, and I did not want to buy Absinthe, which is like $60 at the liquor store. Instead I used Pernod, and it was perfectly fine. My Sazerac was good, although not the best one I have had.
Oh yeah, and the Saints won, so I may have to continue this newly formed tradition next week. Feel free to play along at home.
The first was the Ramos Gin Fizz, pictured here. There are several different kinds of Gin Fizzes. The Ramos Gin Fizz is a milky, eggy contraption, said to be the favorite of Huey P. Long. I followed the recipe from this YouTube video on New Orleans cocktails. The funny thing here is really the combination of citrus (lemon & lime) and cream. As Brianne asked, YES, it did curdle when I first put them together. I guess that was a little off-putting, but once you shake the whole thing up, I guess it kind of beats the curdle into a more creamy mixture. Anyway, it doesn't matter matter, because it tasted pretty great. Creamy, sparkling and orange-y, thanks to the orange flower water, which I purchased at Salim's on Centre. Actually I think it was better than the only other one I've ever had, at the Carousel Bar in New Orleans, because that one had ice in it, which was kind of weird. Other changes: I used sugar instead of simple syrup, and light cream instead of heavy cream.
The next drink I made was a Sazerac. This again came from the New Orleans cocktails series on YouTube. The Sazerac is funny, because the drink itself is pretty simple, but the process is very complicated. I was smart enough to pick up some Peychaud's bitters last time I was in New Orleans, but I did not get Herbsaint, and I did not want to buy Absinthe, which is like $60 at the liquor store. Instead I used Pernod, and it was perfectly fine. My Sazerac was good, although not the best one I have had.
Oh yeah, and the Saints won, so I may have to continue this newly formed tradition next week. Feel free to play along at home.
Friday, January 15, 2010
Haiti
Really sad about the situation in Haiti. Seriously. I made a small donation to the American Red Cross, and I would recommend you do the same. Watching the news today, I started thinking about all of people who donated their time to come to New Orleans after Katrina to rebuild. I was always extremely impressed by those people. Wonder if Americans are going to be going to Haiti to volunteer in the near future. I know that the military and some doctors are already there...
Monday, January 11, 2010
Cannibal Resource
The song Cannibal Resource from the Dirty Projectors is highly recommended. The rest of the album, unfortunately, did not jump out at me in the same way.
Saturday, January 9, 2010
Book Review: Where Men Win Glory
Last night, I finished reading, Where Men Win Glory by Jon Krakauer. I highly recommend reading it. Where Men Win Glory is the story of Pat Tillman who left the NFL after his fourth season to join the Army Rangers, and who was later killed by friendly fire in Afghanistan. Pat, as it turns out, what an extremely interesting man. He was thoughtful, intelligent, curious and extremely loving. The book describes his life growing up in California, his struggles to make it to the NFL and then his decision to join the Army when, as he puts it, 9/11 makes his job as a football player seem kind of pointless. After he is killed in Afghanistan, his story is used by the Army and the government in a pretty disingenuous manner. From the numerous journal entries he wrote, we see that this clearly goes against his will, and it eventually takes a lot of prodding from his mother and family to uncover the true story.
Overall I liked this book for two reasons. First, it was a great recap for me of a number of details about the wars in Iraq and Afghanistan that I had either forgotten or never knew in the first place. While other readers seemed to get bogged down in this earlier part of the book, I did not. I found the writing style to be engaging and the topic to be very interesting. Second, Tillman was clearly an amazing man. He had a very well-developed moral code. He was not rushing into a war to kill, or even in the assumption that the wars were justified. The excerpts from his journal were far and away the most interesting part for me. By the time we get to his death and the quasi cover-up, I really felt disappointed, like we had lost a unique man.
It's not a short book, but it's a pretty quick read, and I finished it over the course of about three days.
Overall I liked this book for two reasons. First, it was a great recap for me of a number of details about the wars in Iraq and Afghanistan that I had either forgotten or never knew in the first place. While other readers seemed to get bogged down in this earlier part of the book, I did not. I found the writing style to be engaging and the topic to be very interesting. Second, Tillman was clearly an amazing man. He had a very well-developed moral code. He was not rushing into a war to kill, or even in the assumption that the wars were justified. The excerpts from his journal were far and away the most interesting part for me. By the time we get to his death and the quasi cover-up, I really felt disappointed, like we had lost a unique man.
It's not a short book, but it's a pretty quick read, and I finished it over the course of about three days.
Tuesday, January 5, 2010
Sick Cafe
Hey folks. I am alive!
After a much enjoyed, if not deserved, winter break in New Orleans and Pittsburgh, I am back to a somewhat normal life. This means I am coming in to school every day. Most people are here yet, though, so it's kind of boring.
Anywho, just before the New Year (actually New Year's Eve-Eve) Sick Ridiculous and the Sick Ridiculous played a show at Club Cafe, right here in Pittsburgh. If you've never been, Club Cafe is a great venue that hosts a number of smallish national acts, usually of the folk/singer-songwriter variety. I have seen a bunch of good bands there, and the sound is great. We had a awesome time opening for our friends in Slingshot Genius. We even busted out a soon-to-be-favorite, "Duckles Chuckles," which we wrote when our friends Stephen & Laura moved to Washington D.C.
Please enjoy some pictures by clicking though. Our friend Shafeeq also took some pro-style pictures. Thanks bro!
Also, peep this incredible poster that Tom made for the show.
After a much enjoyed, if not deserved, winter break in New Orleans and Pittsburgh, I am back to a somewhat normal life. This means I am coming in to school every day. Most people are here yet, though, so it's kind of boring.
Anywho, just before the New Year (actually New Year's Eve-Eve) Sick Ridiculous and the Sick Ridiculous played a show at Club Cafe, right here in Pittsburgh. If you've never been, Club Cafe is a great venue that hosts a number of smallish national acts, usually of the folk/singer-songwriter variety. I have seen a bunch of good bands there, and the sound is great. We had a awesome time opening for our friends in Slingshot Genius. We even busted out a soon-to-be-favorite, "Duckles Chuckles," which we wrote when our friends Stephen & Laura moved to Washington D.C.
Please enjoy some pictures by clicking though. Our friend Shafeeq also took some pro-style pictures. Thanks bro!
Also, peep this incredible poster that Tom made for the show.
Subscribe to:
Posts (Atom)