Friday, August 10, 2012

My PLDI Experience

PLDI was a great experience for me this year.  The location was great -- it's not often you get a chance to visit one of the most historic cities in the world (and meet CS people from all over the world!).  Aside from the great things I saw in Beijing itself, a few things stuck with me.

Aaron Turon's work with "reagents" is pretty cool.  As a person who does a lot of parallel programming, I know how difficult it can be to write synchronization code.  Reagents allow you to express complex synchronization patterns in a way that's concise and understandable -- many of the canonical examples (used in textbooks, for example) can be clearly written using reagents in a way that is much closer to a plain-English description of how they're supposed to work.  The great part about them is that not only are they easy to use, but they can also give you performance that's competitive with hand-tuned libraries (e.g. java.util.concurrent).  Very nice work.

I also wanted to note that my experience student-volunteering was much better than I anticipated.  I admit I didn't expect to get anything more out of the conference as a volunteer than I would as a regular attendee, but I ended up working in a session with a very small number of people.  This actually turned into a great networking opportunity for me -- and the people there even asked me to stand up at the end of the session and demo my own work.  You never know when you'll be given a chance to show your stuff to others in the community!

James Swaine

Wednesday, August 8, 2012

Some post-PLDI thoughts...

This was my first time attending an academic conference of this size, so it was a very eye-opening experience.  I think that for me it was especially valuable because there aren't that many of us doing programming languages related research at Northwestern (only three, actually) so I really benefitted from being able to hear about the broader world of PL research.  It's important to see what's happening currently and think about how what you are doing relates.  Specifically, right now I'm finishing up some work on PLT Redex, an executable DSL for modeling reduction semantics, so I was excited to see possibilities for putting a tool like that to work.

This was also a great opportunity to see China.  (And possibly the only one I'll get...unless there's another conference there that I have a good reason to attend!)  Although the conference kept me fairly busy while it was going on, I did get in a few days of sight-seeing around Beijing.  I have some nice memories of seeing the Summer Palace and the Great Wall, and attempting to explore some of Beijing's lesser known areas.

It's expensive to travel to China so I know most of us that went wouldn't have been able to do so without some help.  Thanks to everyone who did the work to make it possible.

Burke

Monday, August 6, 2012

Thoughts on PLDI


I am sincerely grateful for the opportunity to attend PLDI.  I plan to graduate next semester, so I felt particularly lucky to have this opportunity to learn about the most current research first hand.  I met several people doing research very similar to my own and learned how our ideas interacted.  Observing the conference, the student presentations, and the participants helped solidify my future plans with respect to computing.

In addition to the conference, I greatly appreciated the opportunity to visit China.  The Great Wall, in particular, was one of the most impressive things I have seen.  I would visit those mountains just to hike with the gorgeous scenery.  The awesome wall atop even the most ragged peaks made it incredible.

Given the location of this conference it was particularly difficult for graduate students from the US to attend without financial support, so I would like to extend a sincere thank you to those who helped make it possible.

Best,
Katie

Friday, August 3, 2012

PLDI in China, or, Making the Most of a Top-Tier Academic CS Conference

PLDI in China was a blast! The whirlwind tour varied from an interview on Wired and winning 2nd place in the research competition, to brainstorming with many amazing researchers, and, of course, to site seeing and local eats. In the spirit of Philip's new memoir The Ph.D. Grind, I thought I'd write about how, as a young researcher, this trip became such a rewarding experience.

If you are a seasoned researcher  or perhaps some sort of social superman, this post should be old hat. However, if you're not, and especially if you're new to the conference scene, hopefully some of what I did in China will resonate. Mostly, it revolves around how I approached meeting new people, joining cool conversations, and navigating around some local social customs.

Tip #1: In China, using your fingers to demonstrate crucial details such as how many hot buns are desired is done with only one hand for the numbers 1 through 10.

More seriously, only a bit of planning went a long way. Getting your paper accepted, or a pretext like a research competition, poster session, or a workshop, is the entry ticket to a much greater feast. Some key experiences included out-of-conference outings, hallway sessions, conference and workshop talks, meals, and online social networking. I'll write about why you should look forward to these and explicitly call out a few tips for each.


Scenario 1: Great Outings

Even before the conference started, I met up with Patrick Lam, who had been visiting Berkeley the previous semester. He, in turn, was meeting up with collaborators on the multi-university SOOT project and some old MIT buddies. We spent the weekend getting lost in Hutongs and stumbling into restaurants that caught our eye. Chances are, for a good conference, you'll know someone going, so schedule to meet up beforehand!

Particularly memorable was a tour to the Great Wall on the Sunday before the conference. The conference organizer Jan Vitek, the local expert Sean McDirmid, and others helped arrange tours via a Google Spreadsheet. All we had to do was put our name down the night before.

Tip #2: Google Apps are censored in China, so prepare for cultural differences beforehand. Wikitravel is your friend.

Fortuitously, our group was merged into another one that included Greg Morrissett and Umut Acar. I've always enjoyed Greg's papers and have done research in Umut's area for years, so meeting them was fun. It's a small world: two others that we joined with are collaborators with Manu Sridharan, an alum from my research group.

Epic views, delicious food, and 1-on-1 discussions with one of the few experts in the world on a research topic you care about -- and all before badging in. For after the conference, Sean sold me on visiting Yangshuo in the South West (bamboo rafting alongside karst hills!) and even arranged a visit to the MSR China lab. Making time for these opportunities and then making sure they happened was important.

Tip #3: Arrange to meet at least a couple of people beforehand and have some idea of fun things you can arrange to do together when you get there. 

I generally find group tours to be lame, but as a research conference attendees, it was great. I got to engage with new scientists while someone else figured out the details. My time in China was limited, so I also appreciated that the tour guides and hired drivers cut down on our transit times, steered us towards the cool spots and unique food, and I generally never thought about the little things.

Tip #4: Consider coming early or staying late to visit nearby researchers. Feel it out beforehand -- worst case scenario, you get a few free days to explore a new place.


Scenario 2: Hallway Sessions

Upon entering the conference area, I badged in and navigated a maze of people in search of some water and the day's talk lineup. This process repeated most mornings and breaks. Warning: if you make through the crowd in less than 5 minutes, you're doing it wrong.

Tip #5: Meet as many people as you can! Remember the face, name, university, and research area. 

At such a big conference, I never knew who I'd bump into. If someone I knew was talking to someone I didn't -- great! In these hallway sessions, I learned what talks were really about, what has happened in the 1-2 years since the presented research was performed, and whatever new stuff they're chasing now that we'll only see in print in a year or two. Sometimes, I missed actual talks because of them. Attending  hallway sessions can easily be better than going to actual talks.

Tip #6: Prepare an elevator pitch of 1-2 enticing lead-in sentences. For when that goes well, prepare a 1-3 minute story. People have varying interests and needs, so take care to punctuate your tale with choose-your-own-adventure opportunities and escape hatches. 

Tip #7: Help people remember you. Be fun, memorable, and searchable. For example, I get away with being just "Leo from Berkeley in Ras Bodik 's group" because my name is rare in my field and combinations of those are searchable terms. Similarly easy to remember and search-friendly are "I build parallel browsers and, for fun, have been examining the sociology of programming languages." 

The road to getting into a good conference is brutal -- nights hacking in the lab, dealing with reviewers who ought to consider a new line of work, etc.  In these hallway sessions, I got to connect and reconnect with an otherwise geographically spread out community of amazing nerds, each with their own cool and unique interests. They're awesome and this was a chance to talk to them without the usual slow, contorted, and low-bandwidth channel of peer review bungling it.


Scenario 3: The Actual Conference Talks

Some talks, like the Dilligs' on using abduction to solicit targeted programmer guidance for an interactive program analysis, will stay in my memory. Others, like on how to get programs to automatically use bad parallel algorithms, or on cool ideas presented by monotones and non-native speakers, were good stopping points for checking my mail and skimming papers. Picking talks takes a bit of care.

Spotting great talks like that of the Dilligs is hard. I've learned to look forward to certain speakers, but still don't know many. An easy alternative approach is to crowdsource. As a conversation starter, I'd bring up a talk I'm looking forward to and ask if anything else cool is happening beyond, of course, the upcoming presentation by whoever was my esteemed conversation partner at that time. Attending talks on your research area are no brainer.  Even with all this, weeding out non-experts and minimal-publishable-unit types is tricky, and, unfortunately, seeing these talks is discouraging. Some talks can be surprising gems.  For example, I often like dry-sounding talks that are heavy on data analysis and new or domain specific problems. These may motivate new research and, at a minimum, should be surprising.


Tip #8: Plan what talks you go to by matching the program and what people say about it to your interests. Think both short-term and long-term. 


Tip #9:  If a speaker is incomprehensible, find another talk. Big conferences may hold evening rump sessions or morning preview sessions where speakers advertise their talks: 20 minutes here each day is worth it for a long conference.

Listening to talks is hard work. PLDI was colocated with ECOOP and many workshops, so focusing on every session is a grueling process that most people I know didn't go through. It's also unnecessary! Most talks can be more effectively understood in a 5 minute hallway session where you can ask questions. For talks I did attend, I made sure that I understood it at least to the extent of being able to say what the short-term and long-term problems were, what the solution was, and why the solution was technically good or bad and, in terms of innovation, memorable or boring.

Finally, I tried to ask questions and track down the speaker for talks in areas I could see myself working on. I didn't expect a good response on the spot -- and rarely got one -- but the author and interested people now had someone to continue the conversation with. Likewise, as I'm no Professor Hotshot from Bigname University (and even then!), I phrased my questions constructively rather than critically. A compliment sandwich is a weak approach; instead of suggesting something is a problem, ask how to deal with it. David Wagner is a true artist in finding critical security flaws in a friendly way.



Scenario 4: Workshops

Keep an eye out for co-located workshops!  I didn't realize a synthesis workshop was going on until I got there, but one my  favorite talks was Armando's on rewriting web app code into SQL queries. 


Workshops are small, friendly, and  interactive. Some of the talks I saw were very specialized or incremental, but others were simply early stage and even more creative than most full conference papers. Basically, authors didn't need quantifiables like big jumps on a graph or successfully pushing their idea through a theorem prover. (A senior member of the community has renamed Best Paper awards as Least Controversial paper awards.) While the lead grad student generally presents at a conference, the advisor may present again later at a workshop: even for old work, you can get a new perspective. Finally, good conference talks were aimed at wide audiences and the QA was short and at the end: workshop presentations were about the dirty details and interrupting questions were the sign of a good talk. Go to workshops for the best discussions!

Tip #10: While workshop papers "don't count" as publications, they will greatly improve your conference experience and help you engage on more controversial topics than traditional peer review allows. Think about submitting to one as soon as you know you'll be at a particular conference, though don't spend too much time on it. Beyond being a lot of fun, workshop interactions may gain you better visibility than actual conference talks. 


Step 5: Eating Right

Maybe more so than workshops, meals may be the most important time in a conference. This is true for all types of researchers. Everyone finally get to talk to each other! When eating with a group and you don't know someone there, make sure to introduce yourself -- either when your group is first gathering or right after you sat down. Only do a one-liner introduction at that point. Name, school, advisor, and research topic ("multicore browsers and sociology of languages") were always enough. There'd be lulls when I picked the coolest person or my mysteriously quiet neighbor and ask for their full elevator pitch. Either they'd talk, or they'd recall that said something cool and asked me about it: as long as I was careful about who I sat next to, it was a win-win situation.

The easiest meal is lunch. You can't meet people at talks, and they might run off between sessions. However, almost everyone gathers around for lunch. One trick is to go to lunch with one person you know because you'll meet their friends. This is good up to a point. Another trick to branching out is, right before lunch, to track down someone semi-new such as a speaker you liked from an earlier talk. If the conversation is interesting, you'll build a group and off you go; everyone is happy. I was late once, in which case I had to choose between sitting at the one table with an empty seat, which is a natural invitation but chancey people-wise, and even better, pull that chair to a cool nearby table and invite myself in by saying it was crowded elsewhere.

Breakfast is a bit harder. People are jet-lagged, blurry-eyed, and things are quiet. However, breakfast is also a good chance to find someone you wanted meet without feeling like you're barging in. I actually skipped breakfasts at this one, but ended up repeatedly talking to folks at a nearby Starbucks over coffee.

Tip #11: Getting to lunch on time increases the chance of finding a table with both a person you know AND an empty seat. Going late is fine if you go late with someone you want to talk to. Don't go early to find people; instead, talk to people at the end of the previous session. 

Most important of all meals is dinner. It is tougher than lunch, but the pay-off is higher as well. Lunch is short and at the hotel, while dinner can be arbitrarily long and therefore led to some of my best conversations.

Earlier in the day, you can politely slide into a conversation, "do you know if anyone is going to a cool restaurant/part of town?" Also, while there was always a gap between the last talk and when people would go to dinner, most of our plans were generally formed right after the last talk. So, be there. If that fails, there are always bands of researchers in the same boat. Every night, I saw groups forming in the hotel lobby, and joined them myself a couple of times. I finally met Andrew Myers this way, though I probably made my worst impression there :) Likewise, there were always grad students getting together, who are also worth meeting.

A sensitive issue for dinners is price. Basically, don't worry. If it's fancy and you look like a grad student, someone senior or in industry should realize what's going on and pay for you. In China, it never came up: it takes effort to find a restaurant that exceeds a grad student's stipend. 

Finally, I like to go out to bars at least once or twice. I treat these like any night out -- more than 1-2 drinks is a bad idea (unless I'm with systems people), I don't expect anyone to cover my tab, and alcohol isn't an excuse for being a jerk. These nights are generally awesome; tongues seem looser and the premise is that people should relax. Late night beers on the patio across the hotel with folks from the JS Tools was a great finish to the day.



Tip #12: Beers in China generally suck. However, imported German beers were surprisingly frequent, and gastropubs that brew their own are popping up.


Tip #13: Check if the conference hotel has a gym, pool, hot tub, or sauna. Some of the best times I've had at Berkeley retreat workshops were in an outdoor hot tub talking to hardware architects.


Scenario 6: Twitterati

After I got home, I uploaded my photos and tried to recover from some sort of food-borne virus. More importantly, I became friends with people on Facebook and already got pulled into a couple of G+ conversations about my work. I don't personally partake in Twitter, but there is a big contingent there. Throughout the conference, people told me, "oh, you're the guy doing the sociology stuff!", for which I have to give a lot of  credit to the Twitterati. Once you're in, get involved and stay involved!  By the time the next conference rolls around, you'll have a bunch of real friends that you'll be eager to talk to in person again.

Tip #14: "Friend" people and actually comment on their feeds when they discuss technical things. This is your community!

I'll end with a final tip:

Tip #15: If all this sounded good, the POPL deadline is coming, and PPoPP 2013 will also be in China! :)

PLDI was eye-opening

This was my first time attending PLDI and it was wonderful.  It was amazing to be able to talk with so many researchers in the language implementation field, exchange ideas, and make friends.  It was also very valuable to get feedback on my own work!  The poster session was especially good for this.  And finally, Beijing was an incredible place to have the conference.

What a great time!

I had a wonderful time at PLDI'12.  It was good to see friends and collaborators who are no longer at Princeton.  Additionally, it was really good to meet new researchers from around the world, and to discuss the state of the art in our field.  It was also very nice that Microsoft Research invited us over one evening.

Beijing was an interesting city.  The Summer Palace, Tsingua University and Houhai were my favorite places.

I definitely plan on submitting in November so I can go to PLDI'13 too!

Nick