<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;CkEDRHc8fSp7ImA9WhVTEkQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754</id><updated>2012-02-26T16:11:15.975-05:00</updated><category term="pirates" /><category term="jokes" /><category term="2009" /><category term="haiti" /><category term="marathon" /><category term="movies" /><category term="books" /><category term="latex" /><category term="hornets" /><category term="wedding" /><category term="tempelhof" /><category term="robot" /><category term="mozart" /><category term="done" /><category term="rome" /><category term="mardi" /><category term="urbanhike" /><category term="cup" /><category term="awk" /><category term="xkcd" /><category term="italy" /><category term="spam" /><category term="airports" /><category term="video" /><category term="karaoke" /><category term="grand buffet" /><category term="myspace" /><category term="c++" /><category term="work" /><category term="rant" /><category term="weather" /><category term="baseball" /><category term="halloween" /><category term="a380" /><category term="creeps" /><category term="snakes" /><category term="java" /><category term="airbus" /><category term="injury" /><category term="joy" /><category term="concurrency" /><category term="urban hike" /><category term="pldi" /><category term="cold" /><category term="club cafe" /><category term="flickr" /><category term="hike" /><category term="nola" /><category term="ecoop" /><category term="gsa" /><category term="sick" /><category term="ta" /><category term="tatoo" /><category term="nyc" /><category term="gotcha" /><category term="berlin" /><category term="google" /><category term="sick ridiculous and the sick ridiculous" /><category term="thesis" /><category term="resolutions" /><category term="road trip" /><category term="saints" /><category term="new orleans" /><category term="geeks" /><category term="wine" /><category term="grad school" /><category term="police" /><category term="text messaging" /><category term="olympics" /><category term="rum" /><category term="spring break" /><category term="guild" /><category term="carousing" /><category term="dumb" /><category term="presents" /><category term="planes" /><category term="computer" /><category term="fruit juice" /><category term="ben folds" /><category term="harris grill" /><category term="new york" /><category term="guns" /><category term="pointless rant" /><category term="icra" /><category term="paper" /><category term="oopsla 2009" /><category term="austin" /><category term="taj mahal" /><category term="photography" /><category term="dtv" /><category term="scavenger hunt" /><category term="music" /><category term="issta" /><category term="ml" /><category term="fashion" /><category term="freaks" /><category term="montreal" /><category term="things i hate" /><category term="wikipedia" /><category term="blackberry" /><category term="qatar" /><category term="badami" /><category term="hockey" /><category term="coffee" /><category term="hot" /><category term="washington" /><category term="run" /><category term="gmail" /><category term="calculator" /><category term="guitar hero" /><category term="pictures" /><category term="plans" /><category term="beer" /><category term="finance" /><category term="ads" /><category term="thanksgiving" /><category term="domain names" /><category term="garden" /><category term="oopsla 2008" /><category term="art" /><category term="rock band" /><category term="bagel" /><category term="cmu" /><category term="bike" /><category term="travel" /><category term="soulcialism" /><category term="oopsla 2007" /><category term="rock climbing" /><category term="aim" /><category term="family" /><category term="drink" /><category term="sports" /><category term="sun" /><category term="concert" /><category term="nerds" /><category term="eclipse" /><category term="tv" /><category term="guitar" /><category term="cocktails" /><category term="fortress" /><category term="future" /><category term="story" /><category term="xml" /><category term="girl talk" /><category term="sigbovik" /><category term="business" /><category term="penguins" /><category term="scala" /><category term="video games" /><category term="rock" /><category term="lol" /><category term="dogs" /><category term="college" /><category term="camping" /><category term="robots" /><category term="stress test" /><category term="school" /><category term="india" /><category term="apartment" /><category term="los angeles" /><category term="portmanteau" /><category term="popl" /><category term="dinner party" /><category term="housing" /><category term="ithaca" /><category term="bar" /><category term="hummus" /><category term="software" /><category term="plane" /><category term="tasting" /><category term="fun" /><category term="rap" /><category term="media" /><category term="javascript" /><category term="hip-hop" /><category term="comics" /><category term="visit" /><category term="gentrification" /><category term="sdl" /><category term="conference" /><category term="photos" /><category term="crazy" /><category term="genoa" /><category term="maryland" /><category term="nfl" /><category term="rum party" /><category term="bank" /><category term="picture" /><category term="dancing" /><category term="analysis" /><category term="chicago" /><category term="internet" /><category term="class" /><category term="airplanes" /><category term="agra" /><category term="sick boy" /><category term="football" /><category term="highschool" /><category term="sister" /><category term="gross" /><category term="car" /><category term="friends" /><category term="linux" /><category term="office" /><category term="turbulence" /><category term="research" /><category term="cygwin" /><category term="None" /><category term="politics" /><category term="programming" /><category term="bars" /><category term="random" /><category term="party" /><category term="chili" /><category term="pittsburgh" /><category term="theater" /><category term="weekend" /><category term="blog" /><category term="life" /><category term="running" /><category term="cleavland" /><category term="blah" /><category term="oo" /><category term="food" /><category term="waffle" /><category term="sssg" /><category term="functional programming" /><category term="seattle" /><category term="ocaml" /><category term="vote" /><category term="failure" /><category term="snow" /><category term="mike doughty" /><category term="gras" /><category term="money" /><title>Blogface.org</title><subtitle type="html">Free Whitepapers!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.blogface.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.blogface.org/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>512</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogface" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="blogface" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CkEDRHczfyp7ImA9WhVTEkQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-7865413443184808217</id><published>2012-02-26T15:28:00.002-05:00</published><updated>2012-02-26T16:11:15.987-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-26T16:11:15.987-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="latex" /><category scheme="http://www.blogger.com/atom/ns#" term="awk" /><category scheme="http://www.blogger.com/atom/ns#" term="wedding" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Weddings with Awk, Latex and Google Docs</title><content type="html">Hey guys, I'm getting married! Pretty sweet, right?&lt;div style="font-style: normal; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: normal; "&gt;Like any good software developer, I am always trying to save myself boring work with scripts and tools. Sure it may end up taking more time, but it's more fun.&lt;/div&gt;&lt;div style="font-style: normal; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: normal; "&gt;Anyway, I thought I'd share a little bit of our wedding workflow, since I think it has been pretty effective. It all starts off with a few Google docs. These documents are all shared, so both my fiance and I can update them at any point during the day. Those documents include a text file with ideas and tasks to be completed, along with a spreadsheet of the gifts we've received, who gave them and whether or not we'd sent them a thank-you. We don't want to forget anyone, nor forget what they gave!&lt;/div&gt;&lt;div style="font-style: normal; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But the most useful document has been a spreadsheet containing the guest list. In the row for each name we filled in their addresses as we received them along with a Y/N column indicating whether or not that person would have a 'plus one.' We were careful to put each piece of the address (street, city, state, ...) into its own column, which is helpful for the script I wrote later. We also had two Y/N columns indicating whether that person had been sent a save-the-date and an invitation. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Putting the addresses in a spreadsheet, as opposed to a Word document, is a great idea, because then it can be exported in CSV format, and I can write scripts over them. After exporting the guest list to CSV format, I wrote an Awk script that would go through the file and output a LaTeX file so that I could generate address labels. I used the "&lt;a href="http://www.ctan.org/tex-archive/macros/latex/contrib/envlab"&gt;envlab&lt;/a&gt;" LaTeX package for  generating the labels, and because I had saved each part of the address as its own column, it was easy to play around with alignments (e.g., "should the apartment number go on its own line or after the street?"). Also, I made the outputting of an address label conditional on the Y/N value in the column recording whether or not that person had already received an invitation. This was really useful, since we wanted to send out save-the-dates as soon as possible, even before we had addresses for everyone. So we could effectively run the script any time we wanted without having to worry about generating the same label twice. Finally, we printed the labels onto those standard &lt;a href="http://www.avery.com/avery/en_us/Products/Labels/Addressing-Labels/Easy-Peel-White-Address-Labels_05160.htm"&gt;Avery 5160&lt;/a&gt; inkjet labels (or at least a compatible label). I happen to think that the &lt;a href="http://www.officedepot.com/a/products/252415/3M-Clear-Inkjet-Address-Labels-1/"&gt;clear labels&lt;/a&gt; look really good, and professional. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So that's it. Nothing particularly clever, but I kind of wanted to share my experiences. I think that overall we've saved a ton of time generating the labels this way. Certainly vs. writing them by hand, but even vs. using Word to create the labels. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-7865413443184808217?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/7865413443184808217/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2012/02/weddings-with-awk-latex-and-google-docs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7865413443184808217?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7865413443184808217?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2012/02/weddings-with-awk-latex-and-google-docs.html" title="Weddings with Awk, Latex and Google Docs" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUMBSX06fCp7ImA9WhdSEUw.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-4027930594780209202</id><published>2011-07-19T18:08:00.002-04:00</published><updated>2011-07-19T18:10:58.314-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-19T18:10:58.314-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="beer" /><category scheme="http://www.blogger.com/atom/ns#" term="calculator" /><title>Beer Calculators</title><content type="html">As you may know, I have developed a beer calculator, &lt;a href="http://www.howmuchbeer.com"&gt;howmuchbeer.com&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well it seems that someone else had a pretty similar idea and developed a more general &lt;a href="http://www.celebrations.com/drinkcalculator"&gt;drink calculator&lt;/a&gt;. And while theirs purports to work for any style of drink, their data is not crowd-sourced, and therefore &lt;i&gt;inferior!&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-4027930594780209202?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/4027930594780209202/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2011/07/beer-calculators.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/4027930594780209202?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/4027930594780209202?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2011/07/beer-calculators.html" title="Beer Calculators" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUAERnc8eCp7ImA9WhZUFU0.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-6784437310080387535</id><published>2011-06-07T23:22:00.002-04:00</published><updated>2011-06-07T23:28:27.970-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-07T23:28:27.970-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="nerds" /><category scheme="http://www.blogger.com/atom/ns#" term="pldi" /><title>Probabilistic, Modular and Scalable Inference of Typestate Specifications</title><content type="html">Today I presented my paper, Probabilistic, Modular and Scalable Inference of Typestate Specifications at PLDI 2011. This paper was joint work with Aditya Nori from Microsoft Research India. This was the second time I worked on a research project with Aditya, and as before our collaboration was extremely fruitful. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This paper is all about specification inference. The tool that I worked on for my thesis, Plural, checks that objects in a program are used according to their protocols. While the tool was quite powerful, it required a number of pre and post-conditions to verify that the protocol was being used correctly. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;Our tool, Anek, infers them automatically, and does so using probabilistic constraints. This allows us to use various forms of evidence, some of which may conflict, in determining a final specification.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anywho, the &lt;a href="http://www.nelsbeckman.com/nbeckman_pldi2011.pdf"&gt;paper&lt;/a&gt; and &lt;a href="http://www.nelsbeckman.com/presentations/Anek_Presentation.pdf"&gt;presentation&lt;/a&gt; are now available online. Enjoy!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-6784437310080387535?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/6784437310080387535/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2011/06/probabilistic-modular-and-scalable.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/6784437310080387535?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/6784437310080387535?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2011/06/probabilistic-modular-and-scalable.html" title="Probabilistic, Modular and Scalable Inference of Typestate Specifications" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEAHQn0_eSp7ImA9Wx9SEEk.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-8948060758157693853</id><published>2010-11-29T11:02:00.002-05:00</published><updated>2010-11-29T11:05:33.341-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-29T11:05:33.341-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="thesis" /><title>Thesis Defense: December 14th, 2010</title><content type="html">In about two weeks I will be defending my Ph.D.! It will be on &lt;b&gt;December 14th, 2010 at 9:30am in the Gates Building, room 4405&lt;/b&gt;. I would very much appreciate your attendance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-8948060758157693853?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/8948060758157693853/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/11/thesis-defense-december-14th-2010.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/8948060758157693853?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/8948060758157693853?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/11/thesis-defense-december-14th-2010.html" title="Thesis Defense: December 14th, 2010" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C08FRno_fip7ImA9Wx5TFU0.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-8009921570541055497</id><published>2010-07-30T10:52:00.003-04:00</published><updated>2010-07-30T10:56:57.446-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-30T10:56:57.446-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cmu" /><category scheme="http://www.blogger.com/atom/ns#" term="latex" /><category scheme="http://www.blogger.com/atom/ns#" term="thesis" /><title>How to Sit at a Desk for Long Periods of Time</title><content type="html">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.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, without further ado, I present:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.nelsbeckman.com/simple.pdf"&gt;How to Sit at a Desk for Long Periods of Time&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-8009921570541055497?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/8009921570541055497/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/07/how-to-sit-at-desk-for-long-periods-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/8009921570541055497?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/8009921570541055497?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/07/how-to-sit-at-desk-for-long-periods-of.html" title="How to Sit at a Desk for Long Periods of Time" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkEFR3YzcSp7ImA9WxFWGEg.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-4839616969017800699</id><published>2010-06-06T15:59:00.002-04:00</published><updated>2010-06-06T16:03:36.889-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-06T16:03:36.889-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="music" /><category scheme="http://www.blogger.com/atom/ns#" term="sick ridiculous and the sick ridiculous" /><title>Microchronograph!</title><content type="html">In this period of intense travel, updates are few &amp;amp; far between. But dear readers I have music to present, and music say so much more than words themselves.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mp3.tom7.org/sickridiculous/microchronograph.mp3"&gt;Microchrograph&lt;/a&gt;, is the latest Sick Ridiculous &amp;amp; the Sick Ridiculous tune to hit the market. Tom summarized it pretty well &lt;a href="http://radar.spacebar.org/f/a/weblog/comment/1/1047"&gt;on his blog&lt;/a&gt;, but basically it's about academic dishonesty. You should definitely give it a listen, download it freely, and share it with your bros &amp;amp; lady friends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-4839616969017800699?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/4839616969017800699/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/06/microchronograph.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/4839616969017800699?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/4839616969017800699?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/06/microchronograph.html" title="Microchronograph!" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;DkQMRHc8eSp7ImA9WxFXF0Q.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-7746467493018432515</id><published>2010-05-25T09:24:00.002-04:00</published><updated>2010-05-25T09:33:05.971-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-25T09:33:05.971-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="gotcha" /><category scheme="http://www.blogger.com/atom/ns#" term="nerds" /><title>I think this qualifies as a 'gotcha'</title><content type="html">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.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;String annotation_text = ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;StringBuilder sb = new StringBuilder('@');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sb.append(annotation_text);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sb.append(newline);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, I hovered over the StringBuilder constructor to figure out which constructor I was calling. Low and behold, I'm calling this one:&lt;br /&gt;java.lang.StringBuilder.StringBuilder(int  capacity)&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-style: italic;"&gt;so&lt;/span&gt; bad at first, but there's an asymmetry in the API. If I use this constructor:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;new StringBuilder("@");&lt;/span&gt;&lt;br /&gt;I get the behavior I expect, a string builder initialized to the at sign.&lt;br /&gt;&lt;br /&gt;Moreover, there are append methods that take a single character:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;sb.append('@');&lt;/span&gt;&lt;br /&gt;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... &lt;span style="font-weight: bold;"&gt;NOT SO FAST BECKMAN&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-7746467493018432515?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/7746467493018432515/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/05/i-think-this-qualifies-as-gotcha.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7746467493018432515?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7746467493018432515?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/05/i-think-this-qualifies-as-gotcha.html" title="I think this qualifies as a 'gotcha'" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUcGSH44cCp7ImA9WxFXEUQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-1050951660578279051</id><published>2010-05-18T11:34:00.002-04:00</published><updated>2010-05-18T11:37:09.038-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-18T11:37:09.038-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="india" /><category scheme="http://www.blogger.com/atom/ns#" term="taj mahal" /><category scheme="http://www.blogger.com/atom/ns#" term="agra" /><title>Trip to Agra</title><content type="html">&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/dixiepistols/4615432299/" title="photo sharing"&gt;&lt;img src="http://farm5.static.flickr.com/4047/4615432299_65fe6155a8_m.jpg" alt="" style="border: 2px solid rgb(0, 0, 0);" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="margin-top: 0px;font-size:0.9em;" &gt;&lt;a href="http://www.flickr.com/photos/dixiepistols/4615432299/"&gt;Classic Taj&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/dixiepistols/"&gt;DixiePistols&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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: &lt;span style="font-weight: bold;"&gt;make train reservations early in India!&lt;/span&gt;) 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.&lt;br /&gt;&lt;br /&gt;But some things went well. Even though my itinerary was crazy it all worked out. The hotel where I stayed (&lt;a href="http://hoteltajplaza.com/"&gt;The Taj Plaza&lt;/a&gt;) was cheap, pretty nice, within walking distance of the Taj and full of helpful employees. &lt;span style="font-weight: bold;"&gt;Recommended&lt;/span&gt;. 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! &lt;span style="font-weight: bold;"&gt;Recommended&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-1050951660578279051?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/1050951660578279051/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/05/trip-to-agra.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/1050951660578279051?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/1050951660578279051?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/05/trip-to-agra.html" title="Trip to Agra" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm5.static.flickr.com/4047/4615432299_65fe6155a8_t.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkUERn09fCp7ImA9WxFQFUo.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-683772687538160886</id><published>2010-05-11T05:27:00.002-04:00</published><updated>2010-05-11T05:30:07.364-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-11T05:30:07.364-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xml" /><category scheme="http://www.blogger.com/atom/ns#" term="nerds" /><title>Validating XML against a Schema</title><content type="html">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.&lt;br /&gt;&lt;br /&gt;For the record, I am using Visual Studio 2008 Professional.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-683772687538160886?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/683772687538160886/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/05/validating-xml-against-schema.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/683772687538160886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/683772687538160886?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/05/validating-xml-against-schema.html" title="Validating XML against a Schema" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkMCQXo8fyp7ImA9WxFQEEs.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-7706197272697674972</id><published>2010-05-05T08:50:00.005-04:00</published><updated>2010-05-05T09:01:00.477-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-05T09:01:00.477-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="india" /><title>Yes. I am in India.</title><content type="html">&lt;blockquote&gt;&lt;/blockquote&gt;I made it to Bangalore! The trip was extremely painful, mostly because it was long, but it did have a few highlights:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;In &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Charles&lt;/span&gt; &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;de&lt;/span&gt; &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;Gaulle&lt;/span&gt; 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 &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;lil&lt;/span&gt;' nap there in between my two nine hour flights.&lt;/li&gt;&lt;li&gt;I saw five movies. Best one? Probably Crazy Heart. Worst one? Definitely Bride Wars.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;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:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-corrected"&gt;mangoes&lt;/span&gt; are &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;ridiccio&lt;/span&gt;! There's a snack area here at &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;MSRI&lt;/span&gt; that has free stuff for us. They have &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-corrected"&gt;mangoes&lt;/span&gt;, not the green kind but the yellow kind, and they are &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;soooo&lt;/span&gt; good.&lt;/li&gt;&lt;li&gt;The &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;streets&lt;/span&gt; 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).&lt;/li&gt;&lt;li&gt;People call you "boss." Really love that.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-7706197272697674972?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/7706197272697674972/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/05/yes-i-am-in-india.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7706197272697674972?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7706197272697674972?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/05/yes-i-am-in-india.html" title="Yes. I am in India." /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkUFRHc5cSp7ImA9WxFRFUU.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-1162885114360756703</id><published>2010-04-29T18:24:00.003-04:00</published><updated>2010-04-29T18:30:15.929-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-29T18:30:15.929-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="india" /><title>Beginning of the Summer, Travel, etc.</title><content type="html">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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-1162885114360756703?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/1162885114360756703/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/04/beginning-of-summer-travel-etc.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/1162885114360756703?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/1162885114360756703?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/04/beginning-of-summer-travel-etc.html" title="Beginning of the Summer, Travel, etc." /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CUcHR3o_fSp7ImA9WxFSGU0.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-393108929996184818</id><published>2010-04-21T22:14:00.003-04:00</published><updated>2010-04-21T22:23:56.445-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-21T22:23:56.445-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="nerds" /><title>Nearest Neighbor</title><content type="html">Hey. Just learned about a cool data structure for computational geometry called, &lt;a href="http://en.wikipedia.org/wiki/Kd-tree"&gt;KD-Trees&lt;/a&gt;. Yes, it's sort of embarrassing that I've just now learned about them, but what can I say? I &lt;span style="font-style: italic;"&gt;still&lt;/span&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nelsbeckman.com/pictures/nearest.png"&gt;&lt;img style="cursor: pointer; width: 300px; height: 300px;" src="http://www.nelsbeckman.com/pictures/nearest.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nelsbeckman.com/software/nearest.jar"&gt;Click here to download the JAR&lt;/a&gt; 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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-393108929996184818?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/393108929996184818/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/04/nearest-neighbor.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/393108929996184818?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/393108929996184818?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/04/nearest-neighbor.html" title="Nearest Neighbor" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUIASH88eSp7ImA9WxFSEUo.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-1074833131378916920</id><published>2010-04-13T11:36:00.003-04:00</published><updated>2010-04-13T11:45:49.171-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-13T11:45:49.171-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="thesis" /><category scheme="http://www.blogger.com/atom/ns#" term="nerds" /><title>Proof of Soundness for a Typestate Checker with Locks</title><content type="html">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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-style: italic;"&gt;still&lt;/span&gt; be well-typed) I think that my definition of a well-typed heap will have to include the following condition:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;blockquote style="font-style: italic;"&gt;At most one thread can know statically the exact state of an object.&lt;/blockquote&gt;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?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-1074833131378916920?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/1074833131378916920/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/04/proof-of-soundness-for-typestate.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/1074833131378916920?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/1074833131378916920?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/04/proof-of-soundness-for-typestate.html" title="Proof of Soundness for a Typestate Checker with Locks" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;DkUCRnk8cCp7ImA9WxFSEUs.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-6180152731290942421</id><published>2010-04-13T08:59:00.000-04:00</published><updated>2010-04-13T09:11:07.778-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-13T09:11:07.778-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nerds" /><title>We're Live @ Blogger</title><content type="html">Hey folks,&lt;br /&gt;&lt;br /&gt;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 &lt;span style="font-style: italic;"&gt;highly &lt;/span&gt;recommend you check out the &lt;a href="https://livejournal2blogger.appspot.com/"&gt;google-blog-converters&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;Couple of things to keep in mind:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you want to follow over RSS, go to &lt;a href="http://feed.blogface.org"&gt;http://feed.blogface.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Lists should have three items.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-6180152731290942421?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/6180152731290942421/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/04/were-live-blogger.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/6180152731290942421?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/6180152731290942421?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/04/were-live-blogger.html" title="We're Live @ Blogger" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs_fyp7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-7508350442556600858</id><published>2010-04-11T08:24:00.000-04:00</published><updated>2010-04-12T14:06:18.547-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.547-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sigbovik" /><category scheme="http://www.blogger.com/atom/ns#" term="nerds" /><title>The Dissatisfactory Doily</title><content type="html">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)&amp;nbsp;&lt;a href="http://sigbovik.org/2010/proceedings.pdf"&gt;electronic copy&lt;/a&gt; of the proceedings or a ($7)&amp;nbsp;&lt;a href="http://www.lulu.com/product/paperback/sigbovik-2010/6527029"&gt;paper copy&lt;/a&gt; of the proceedings, go back and click those links! &lt;br /&gt;&lt;br /&gt;But I&amp;nbsp;mostly wanted to talk about my own paper, &lt;em&gt;The Dissatisfactory Doily.&lt;/em&gt; The premise of the paper is this:&amp;nbsp;You own a sports team. You are jealous of the Pittsburgh Steelers and their ability to sell $10 &lt;a href="http://en.wikipedia.org/wiki/Terrible_towel"&gt;Terrible Towels&lt;/a&gt;. 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 &lt;em&gt;terrible&lt;/em&gt;)&amp;nbsp;and a list of nouns (cloth-related) and spits out your new product name. For a &lt;strong&gt;long&lt;/strong&gt; list of examples, please &lt;a href="http://www.nelsbeckman.com/papers/sigbovik10_submission_21.pdf"&gt;see the paper&lt;/a&gt;, but some of my favorites are, &lt;strong&gt;The Wanton Wall-to-Wall Carpeting, The Abominable Afghan, &lt;/strong&gt;and&lt;strong&gt; The&lt;/strong&gt; &lt;strong&gt;Horrendous Hanky.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In further news, this was likely my last year as SIGBOVIK&amp;nbsp;MC. It's been a lot of fun, but my jokes are getting stale. Time to pass the torch!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-7508350442556600858?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/7508350442556600858/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/04/dissatisfactory-doily.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7508350442556600858?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7508350442556600858?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/04/dissatisfactory-doily.html" title="The Dissatisfactory Doily" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs-eCp7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-2881851484301659431</id><published>2010-03-21T20:03:00.000-04:00</published><updated>2010-04-12T14:06:18.550-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.550-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tatoo" /><title>Bad Tatoos</title><content type="html">&lt;img align="right" src="http://www.jwschwarz.com/wp-content/uploads/2009/05/hotdog.jpg" alt="Guilty of Being Delicious" /&gt;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 &lt;a href="http://www.jwschwarz.com/?cat=92"&gt;bad tattoo blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-2881851484301659431?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/2881851484301659431/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/03/bad-tatoos.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/2881851484301659431?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/2881851484301659431?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/03/bad-tatoos.html" title="Bad Tatoos" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs-eip7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-7941539243713913889</id><published>2010-03-15T18:21:00.000-04:00</published><updated>2010-04-12T14:06:18.552-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.552-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tv" /><title>Separated at Birth?!</title><content type="html">&lt;img height="300" width="449" src="http://www.cs.cmu.edu/~nbeckman/pictures/barneybeck.jpg" alt="Glenn Beck and fat Barney" /&gt;&lt;br /&gt;&lt;br /&gt;Glenn&amp;nbsp;Beck and Fat Barney, from How I&amp;nbsp;Met Your Mother.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-7941539243713913889?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/7941539243713913889/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/03/separated-at-birth.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7941539243713913889?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/7941539243713913889?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/03/separated-at-birth.html" title="Separated at Birth?!" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs-eyp7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-1572297224301220027</id><published>2010-03-15T14:31:00.000-04:00</published><updated>2010-04-12T14:06:18.553-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.553-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="movies" /><category scheme="http://www.blogger.com/atom/ns#" term="nerds" /><title>Technical Report: Polymorphic Access Permissions</title><content type="html">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).&lt;br /&gt;&lt;br /&gt;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. &lt;a href="http://reports-archive.adm.cs.cmu.edu/anon/isr2010/abstracts/10-109.html"&gt;You can find the technical report on the ISR page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In other news, I've also started keeping track of &lt;a href="http://www.cs.cmu.edu/~nbeckman/movies.html"&gt;the movies I've watched&lt;/a&gt;, mostly due to a recent binge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-1572297224301220027?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/1572297224301220027/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/03/technical-report-polymorphic-access.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/1572297224301220027?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/1572297224301220027?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/03/technical-report-polymorphic-access.html" title="Technical Report: Polymorphic Access Permissions" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs-fSp7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-201089056089803746</id><published>2010-03-07T13:11:00.000-05:00</published><updated>2010-04-12T14:06:18.555-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.555-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="photography" /><category scheme="http://www.blogger.com/atom/ns#" term="berlin" /><title>Berlin Pictures, at Long Last</title><content type="html">&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a title="photo sharing" href="http://www.flickr.com/photos/dixiepistols/4415697856/"&gt;&lt;img style="border: 2px solid rgb(0, 0, 0);" alt="" src="http://farm3.static.flickr.com/2792/4415697856_a16db227cd_m.jpg" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/dixiepistols/4415697856/"&gt;berlin-2010-7&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/dixiepistols/"&gt;DixiePistols&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;I finally posted some of my pictures from my most recent Berlin trip. I had a great time. Here are some highlights:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We went to the &lt;a href="http://www.flickr.com/photos/dixiepistols/4414896643/"&gt;German Resistance Museum&lt;/a&gt;&lt;/li&gt;&lt;li&gt;I stayed in &lt;a href="http://www.flickr.com/photos/dixiepistols/4414925321/"&gt;Kreuzberg&lt;/a&gt;&lt;/li&gt;&lt;li&gt;We went to the&lt;a href="http://www.flickr.com/photos/dixiepistols/4414985931/"&gt; Neues Museum&lt;/a&gt;, which has tons of cool &lt;a href="http://www.flickr.com/photos/dixiepistols/4415719964/"&gt;Egyptian Art&lt;/a&gt;&lt;/li&gt;&lt;li&gt;We went to the&lt;a href="http://www.flickr.com/photos/dixiepistols/4415789878/"&gt; DDR museum&lt;/a&gt;&lt;/li&gt;&lt;li&gt;We took plenty of &lt;a href="http://www.flickr.com/photos/dixiepistols/4415811810/"&gt;public transportation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;We drank plenty of &lt;a href="http://www.flickr.com/photos/dixiepistols/4415049865/"&gt;coffee&lt;/a&gt;&lt;/li&gt;&lt;li&gt;We saw cool &lt;a href="http://www.flickr.com/photos/dixiepistols/4415059587/"&gt;East German stuff&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Awesome!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-201089056089803746?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/201089056089803746/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/03/berlin-pictures-at-long-last.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/201089056089803746?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/201089056089803746?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/03/berlin-pictures-at-long-last.html" title="Berlin Pictures, at Long Last" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2792/4415697856_a16db227cd_t.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs-fyp7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-2855494201918173396</id><published>2010-03-06T09:40:00.000-05:00</published><updated>2010-04-12T14:06:18.557-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.557-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="airports" /><category scheme="http://www.blogger.com/atom/ns#" term="berlin" /><category scheme="http://www.blogger.com/atom/ns#" term="tempelhof" /><title>Tempelhof</title><content type="html">&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a title="photo sharing" href="http://www.flickr.com/photos/dixiepistols/4411864952/"&gt;&lt;img style="border: 2px solid rgb(0, 0, 0);" alt="" src="http://farm3.static.flickr.com/2745/4411864952_06589deb8f_m.jpg" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/dixiepistols/4411864952/"&gt;tempelhof-4&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/dixiepistols/"&gt;DixiePistols&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;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 &lt;a href="http://www.flickr.com/photos/dixiepistols/4411203051/in/set-72157622692801547/"&gt;basketball court&lt;/a&gt;, used by American servicemen, the&lt;a href="http://www.flickr.com/photos/dixiepistols/4411869216/in/set-72157622692801547/"&gt; large main terminal hall&lt;/a&gt;, and the &lt;a href="http://www.flickr.com/photos/dixiepistols/4411154557/in/set-72157622692801547/"&gt;underground bunkers&lt;/a&gt;. Click through for plenty more pictures.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-2855494201918173396?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/2855494201918173396/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/03/tempelhof.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/2855494201918173396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/2855494201918173396?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/03/tempelhof.html" title="Tempelhof" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2745/4411864952_06589deb8f_t.jpg" height="72" width="72" /><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs9eCp7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-5434990437995575827</id><published>2010-03-04T12:48:00.000-05:00</published><updated>2010-04-12T14:06:18.560-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.560-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="airbus" /><category scheme="http://www.blogger.com/atom/ns#" term="airplanes" /><category scheme="http://www.blogger.com/atom/ns#" term="a380" /><title>A380</title><content type="html">&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a title="photo sharing" href="http://www.flickr.com/photos/dixiepistols/4407811832/"&gt;&lt;img style="border: 2px solid rgb(0, 0, 0);" alt="" src="http://farm3.static.flickr.com/2726/4407811832_acd8c587c2_m.jpg" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/dixiepistols/4407811832/"&gt;The Beast&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/dixiepistols/"&gt;DixiePistols&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;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.&lt;br /&gt;&lt;br /&gt;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 &amp;quot;only&amp;quot; five years later tells you something about the slow pace of airplane development.&lt;br /&gt;&lt;br /&gt;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 &amp;quot;&lt;a href="http://www.flickr.com/photos/dixiepistols/4407829074/in/photostream/"&gt;pont superior,&lt;/a&gt;&amp;quot; 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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://www.flickr.com/photos/dixiepistols/4407829050/"&gt;entertainment system&lt;/a&gt; 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.). &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;In summary, I would definitely recommend a ride. Airplane fanboyism is now complete!&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-5434990437995575827?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/5434990437995575827/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/03/a380.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/5434990437995575827?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/5434990437995575827?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/03/a380.html" title="A380" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2726/4407811832_acd8c587c2_t.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs9fip7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-8737307275189630328</id><published>2010-02-18T08:27:00.000-05:00</published><updated>2010-04-12T14:06:18.566-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.566-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="movies" /><category scheme="http://www.blogger.com/atom/ns#" term="berlin" /><category scheme="http://www.blogger.com/atom/ns#" term="sick ridiculous and the sick ridiculous" /><title>Berlinale</title><content type="html">I am lucky enough to be in Berlin during the &lt;a href="http://www.berlinale.de/en/HomePage.html"&gt;Berlinale&lt;/a&gt;, 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:&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Summer Wars&lt;/strong&gt; 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 &amp;quot;a Pittsburgh robotics laboratory.&amp;quot; Wonder where that could be?!&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Sex &amp;amp; Drugs &amp;amp; Rock &amp;amp; Roll&lt;/strong&gt; 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 &lt;a href="http://en.wikipedia.org/wiki/Ian_Dury"&gt;Ian Dury&lt;/a&gt;. I'd maybe heard the song Sex &amp;amp; Drugs &amp;amp; Rock &amp;amp; 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 &lt;em&gt;and&lt;/em&gt; Chris Finch!&lt;/li&gt;&lt;/ul&gt;All that, and three more movies to see by Sunday. I'm pretty pumped. The only funny thing is that the Berlinale has some of the worst lines I have ever seen in my life. They are both long and completely disorganized. Like any true American, I love and respect lines. I guess when the line philosophies of dozens of nations come together in one city, it's pretty much a recipe for disaster. People love complaining about roped-off lines and how they make you feel like cattle, &lt;em&gt;but at least you know where you stand&lt;/em&gt;, to use a pun.&lt;br /&gt;&lt;br /&gt;Also, new Sick Ridiculous song &lt;a href="http://radar.spacebar.org/f/a/weblog/comment/1/1041"&gt;Duckles Chuckles&lt;/a&gt;. Please check it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-8737307275189630328?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/8737307275189630328/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/02/berlinale.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/8737307275189630328?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/8737307275189630328?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/02/berlinale.html" title="Berlinale" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs9cCp7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-345892878531274508</id><published>2010-02-13T12:41:00.000-05:00</published><updated>2010-04-12T14:06:18.568-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.568-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="berlin" /><title>Berlin, February 2010</title><content type="html">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&amp;nbsp;jet-lag, but there were a few highlights:&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;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!&lt;/li&gt;&lt;li&gt;Also last night we went to a Ping Pong bar called, &amp;quot;Dr. Pong.&amp;quot; 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?&lt;/li&gt;&lt;li&gt;Tomorrow I want to go to the Museum of the German Resistance. We'll see how that goes...&lt;/li&gt;&lt;/ul&gt;Okay, I guess that's about it. I sure do love bullet points... They really help me organize my thoughts...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-345892878531274508?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/345892878531274508/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/02/berlin-february-2010.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/345892878531274508?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/345892878531274508?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/02/berlin-february-2010.html" title="Berlin, February 2010" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs8eCp7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-2162048533525623415</id><published>2010-02-07T19:01:00.000-05:00</published><updated>2010-04-12T14:06:18.570-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.570-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="new orleans" /><category scheme="http://www.blogger.com/atom/ns#" term="saints" /><title>The New Orleans Saints Win the NFL Superbowl</title><content type="html">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:&lt;ul&gt;&lt;li&gt;Every single pundit picking the Colts. That's okay, I don't hold it against them.&amp;nbsp;But this is just for future reference. In the NFL, especially in the playoffs, you never know what is going to happen.&lt;/li&gt;&lt;li&gt;What do you even say about the on-sides kick to start the half?&amp;nbsp;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.&lt;/li&gt;&lt;li&gt;Blitzing!&amp;nbsp;As in, we didn't do nearly as much as last game. This turned out to be a great strategy. I&amp;nbsp;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.)&lt;/li&gt;&lt;li&gt;The Colts started off hot, but from the second quarter on the Saints look great, like the regular season Saints!&lt;/li&gt;&lt;li&gt;When Porter made the interception, I went buck wild. Amazing. Same reaction as the Favre interception *&amp;nbsp;100.&lt;/li&gt;&lt;li&gt;Wish I&amp;nbsp;were in New Orleans, getting wild with those bonkers Saints fans. Insane.&lt;/li&gt;&lt;/ul&gt;Dream big kids. One day it could happen to you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-2162048533525623415?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/2162048533525623415/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/02/new-orleans-saints-win-nfl-superbowl.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/2162048533525623415?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/2162048533525623415?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/02/new-orleans-saints-win-nfl-superbowl.html" title="The New Orleans Saints Win the NFL Superbowl" /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;D0IDSXs8eip7ImA9WxFSEEQ.&quot;"><id>tag:blogger.com,1999:blog-5382571416341492754.post-9066532030919506210</id><published>2010-02-06T04:51:00.000-05:00</published><updated>2010-04-12T14:06:18.572-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-12T14:06:18.572-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="None" /><title>Snotorious B.I.G.</title><content type="html">&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/dixiepistols/4335284970/" title="photo sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2804/4335284970_3b56765ca5_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/dixiepistols/4335284970/"&gt;Snowpocalypse2010 (3 of 10)&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/dixiepistols/"&gt;DixiePistols&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Snow pictures up! These are all shots from my backyard.&lt;br /&gt;&lt;br /&gt;Thanks Rob for the phrase, "Snotorious B.I.G."&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5382571416341492754-9066532030919506210?l=www.blogface.org' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogface.org/feeds/9066532030919506210/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogface.org/2010/02/snotorious-big.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/9066532030919506210?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5382571416341492754/posts/default/9066532030919506210?v=2" /><link rel="alternate" type="text/html" href="http://www.blogface.org/2010/02/snotorious-big.html" title="Snotorious B.I.G." /><author><name>Nels</name><uri>http://www.blogger.com/profile/07085287093689227850</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2804/4335284970_3b56765ca5_t.jpg" height="72" width="72" /><thr:total>4</thr:total></entry></feed>

