Category Archives: Miscellaneous

A Guide for Session Chairs

I just sent this message as a guide to the program committee members who will be chairing sessions for PLDI 2016 (I figure it’s the first time for some of them). A few people suggested I post it, so here it is (lightly edited). Additions or other suggestions welcome.

  • Find your speakers before the session begins. You will have to talk to them about some stuff – see below.
  • Find out how to pronounce their names properly.
  • Find out if they are on the market next year – sometimes people like the advertisement that they will be graduating soon.
  • Have them check their equipment (particularly if they are using Linux…). To be on the safe side, carry a spare Mac VGI dongle – speakers forget this shockingly often. You should consider writing your name on it in Sharpie (or do what one of my students does – cover it in bright pink fingernail polish). This greatly increases the odds you will get your dongle back after the session.
  • Before each session, introduce the entire session (as in, “I am So-and-So, from Wherever University; welcome to the session on drone-based programming languages.”
  • Before each talk, introduce each speaker. I personally recommend not reading their title, since lots of speakers are on autopilot and will just repeat everything you said. You can instead say something like “This is Foo Bar, who will be talking about verifying clown car drivers.” In fact, come to think of it, you could just say that for every talk.
  • Keep track of time. For PLDI this year, speakers get 25 minutes, and then there are 5 minutes for questions. If you have an iPad, there’s an app I have used to display time to speakers (big giant numbers, you can set it to change colors when you hit 5 min or 1 min till the end). You can of course always go old school and hold up a sheet of paper indicating when time is drawing near. I recommend doing this when there are 5 minutes left and 1 minute left. Let the speakers know you will be doing this.
  • When the speaker is done, if it hasn’t happened already, make sure everyone applauds by saying “Let’s thank our speaker” and start applauding. Then open the floor to questions.
  • COME PREPARED WITH A QUESTION. The worst thing ever is when the talk is a disaster does not go well and no one has any questions for the speaker, and then: <crickets>. Read over each paper so you have at least a couple of questions planned for this eventuality. Hopefully it won’t come to this and someone will ask something, but it happens sometimes, and it’s great if you can save the day. It’s still a good idea to ask a question or two in case there are very few questions from the audience.
  • Make sure people who ask questions use the mic and state their name and affiliation.
  • You may also have to clarify the question for the speaker, repeat the question, etc. Understanding questioners can occasionally be a challenge for non-native English speakers: it’s a stressful time, and the questioners may have unfamiliar accents, etc. Be prepared to give the speaker a helping hand.
  • Be prepared to cut off a questioner. YOU ARE IN CHARGE OF THE SESSION. If a questioner won’t give up the mic and keeps asking questions and is burning time, rambling, etc., you are empowered to move on to the next questioner (e.g., by suggesting “how about we take this off-line”).
  • Hopefully this won’t be an issue you will have to deal with, but questioners who are belligerent or insulting must not be tolerated. Cut them off and report them to the program chair (me) or the general chair. I sincerely hope and expect that this will not happen, but I want you to realize you are empowered to take action immediately. You can read over SIGPLAN’s non-harassment policy here, which is based on ACM’s:
  • To make sure things run smoothly, have the next speaker on deck with their laptop a minute or so before question times end. Ideally, they will be setting up while the current speaker is wrapping up questions.
  • Finally, when questions are over, say “Let’s thank our speaker again” and applaud.
  • At the end of the session, tell everyone what’s next (e.g., “next is lunch, and talks will resume at 1:30pm”).

And thanks again to all the session chairs for volunteering!



Coz: Finding code that counts with causal profiling

Nice summary of Coz.

the morning paper

Coz: Finding code that counts with causal profiling – Curtsinger & Berger 2015

update: fixed typo in paper title

Sticking to the theme of ‘understanding what our systems are doing,’ but focusing on a single process, Coz is a causal profiler. In essence, it makes the output of a profiler much more useful to you by showing you where optimisations would genuinely have a beneficial effect (which doesn’t always equate with the places programs spend the most time). Interestingly, it can also show you places where locally optimising performance will actually slow down the overall system. That might sound counter-intuitive: the Universal Scalability Law gives us some clues as to why this might be. The understanding gained from finding such locations is also very useful in optimising the application overall.

Conventional profilers rank code by its contribution to total execution time. Prominent examples include oprofile, perf, and gprof. Unfortunately, even…

View original post 1,647 more words

Washington Post, Take Down This Article!


The Washington Post just published an article from a kid claiming he graduated at the top of his class at Penn State in Computer Science but couldn’t find a job. But his description of Computer Science classes is completely disconnected from reality. Turns out, he graduated with a degree in Management Information Systems (a business degree) and not from the Penn State any reasonable person would assume, but rather a satellite campus. All this info is right on the dude’s own LinkedIn page and a previous version of the article from Sept. 2013. Washington Post, Take Down This Article!

[This was initially publicly posted on Facebook here:]

Update – I wrote a Letter to the Editor of the Washington Post. They did not choose to print it, though they did partially correct the article.


Dear Editor:

A recent op-ed article by Casey Ark (“I studied computer science, not English. I still can’t find a job.”, August 31) is deceptive and misleading. Ark says he graduated at the top of his class at Penn State in Computer Science but found himself unable to find a job. All of these claims are false. An accurate headline would read “I studied business, not English. I had job opportunities, but I turned them down.”

Ark’s descriptions of his class experiences — non-rigorous, memorization-based, and non-technical — sound nothing like a Computer Science degree, and here’s why. A visit to his LinkedIn page ( shows that he graduated with a degree in Management Information Systems, a non-technical business degree that has little to do with Computer Science and is decidedly not a STEM (Science, Technology, Engineering, and Math) field.

Ark also fails to mention that he attended a satellite campus rather than the more prestigious flagship University Park campus of Penn State, a fact included in an earlier version of this article that appeared on PennLive in September 2013
( Regardless of its quality, leaving out the location leads readers to believe he graduated from the main campus.

In this earlier article, Ark describes having chosen to not take two entry-level job options, but instead deciding to become an entrepreneur.

I am surprised and chagrined that this op-ed made it through whatever fact-checking mechanisms exist at Washington Post, when a few moments with Google sufficed to discredit the central claims of the article.

Professor Emery Berger
School of Computer Science
University of Massachusetts Amherst


Professor Stephen A. Edwards
Department of Computer Science
Columbia University in the City of New York

Asst. Professor Brandon Lucia
Department of Electrical and Computer Engineering
Carnegie Mellon University

Associate Professor Daniel A. Jiménez
Department of Computer Science & Engineering
Texas A&M University

Assistant Professor David Van Horn
Department of Computer Science
University of Maryland, College Park

Assistant Professor Santosh Nagarakatte
Department of Computer Science
Rutgers, The State University of New Jersey, New Brunswick

Assistant Professor Swarat Chaudhuri
Department of Computer Science
Rice University

Associate Professor Dan Grossman
Department of Computer Science & Engineering
University of Washington

Professor Michael Hicks (B.S. Computer Science, Penn State ‘93)
Department of Computer Science
University of Maryland

Associate Professor Matthew Hertz
Department of Computer Science
Canisius College

Associate Professor Landon Cox
Department of Computer Science
Duke University

Associate Professor Benjamin Liblit (B.S. Computer Science, Penn State ‘93)
Department of Computer Sciences
University of Wisconsin–Madison

Associate Professor John Regehr
School of Computing
University of Utah

Professor Jeff Foster
Department of Computer Science
University of Maryland, College Park

Kaushik Veeraraghavan

Some comments from the Facebook thread posted by my fellow Computer Science colleagues:

Daniel Ángel Jiménez This kind of garbage causes lots of confusion. At my last job, almost all of the complaints from local industry about our CS graduates turned out to actually be about morons from the business school.

Shriram Krishnamurthi “Correction: An earlier version of this story’s headline misidentified what the author studied. It has been corrected.” They changed “engineering” to “computer science”. Thanks, WaPo!

Rob Ennals It seems that whenever I read a media article about something I actually know about, there is something fundamentally wrong with their understanding of the situation. This makes me worry about the accuracy of the information I’m getting about things I’m not knowledgable about.

Emery Berger He laments “they’re looking for employees who can actually do things – like build iPhone apps…. I wish I’d been taught how to do those things in school, but my college had something different in mind.”

PSU offers CMPSC 475, WHICH TEACHES iOS PROGRAMMING.…/courses/C/CMPSC/475/201314SP

Tao Xie Another very important piece of information (from the original earlier post:…/heres_why_why_more_and_more…), “When I graduated from PSU’s Harrisburg campus in May, ….” This kid graduated from PSU Harrisburg Campus, **NOT** the State College campus!! There are 24 campuses of PSU ( Note that the Washington Post article (carefully?) “rephrased” the above quoted sentence to be “When I graduated from Penn State a year ago, …” smh..

Stephen A. Edwards Breathtaking naivete on display in this column. I have no idea what he was studying: any CS graduate shouldn’t have any idea about the difference between advertising and marketing. His lament about all the programming languages and tools I learned were years out of date is also laughable. Of course they’re out of date: everything in CS is more-or-less instantly. The thing is to make sure you understand the basic concepts so you can learn the new stuff faster. But I really got a chuckle about his suggestion that we be more lax about academic standards and hire better businesspeople. Absolutely that will improve the quality of your education, no question.

CS Slogans for the Rally to Restore Sanity and/or Fear

Sadly, I am not going to attend the Rally to Restore Sanity and/or Fear in DC tomorrow. I have seen some pretty good sign ideas: here are some CS-themed ones I came up with. Keep your eyes peeled: you might see one of my colleagues holding one of these up.

  • P and NP: Equality Now!
  • Hello World Peace!\n
  • Repeal Moore’s Law!
  • (or) Renew Moore’s Law!
  • End Race Conditions!
  • Free malloc!

Buffering Now Means Pausing Intermittently, Other CS Terms Redefined For Your Convenience

Netflix-bufferingSeveral video players, when filling their video buffers, report this fact to the user directly, as in, “Video buffering.” I have so far been unable to find any non-computer scientist who actually knows what the term “buffering” means. Googling for “video buffering” reveals two things:

  1. “Video buffering” does not mean “the video is being buffered” but rather, “the video is itself buffering.”
  2. Which is baffling until you read more web postings and learn that “to buffer” means “to start and stop intermittently” (as in, “I totally hate it when the video buffers.” Me too.)

What it actually means (for the non-CS crowd) is best explained by analogy. When you first go to use a garden hose, it takes some time for the water to start flowing out. From then on, as long as the water is on, it flows out of the hose at a constant rate. The garden hose is the buffer. Data is flowing into your computer, but until there’s enough of a flow to provide smooth video, you have to wait for the buffer to fill up. For more info, see Wikipedia. Still, the video player shouldn’t actually use the word “buffering.”

This led me to wonder what people think about other CS jargon words that have leaked out into userland, like “caching” or “logging.” A number of websites say that you should periodically clear your web caches in order to speed up your browser, as in, “clearing your cache can significantly improve the speed and performance of your browser”. Really!?!

(Non-CS folks: That’s exactly backwards. Caching is what speeds up your browser by keeping recently-used images, etc., on disk – in a “cache” – rather than having to fetch them across the network. It’s like having recently checked-out books at home rather than in the library. Clearing the cache – returning all the books to the library – will definitely make reading those books slower.)

Any other CS jargon terms you’ve seen in “the real world”? (And Emacs screeching to a halt and announcing that it’s “garbage collecting” does not count. Emacs is not the real world.)