The saga of Accumulo bug 4379

Not too long ago, I was setting up an installation of the Accumulo distributed database. At some point in the process, I ran Accumulo’s bin/ script, which printed out the following:

HADOOP_PREFIX not set cannot automatically configure LD_LIBRARY_PATH
Please remember to compile the native libraries using the bin/ script and to set the LD_LIBRARY_PATH variable in the /home/zk/accumulo/conf/ script if needed.

Publicity chair tip: use ruby-gmail to send bulk emails via Gmail

I’m currently serving a three-year term as the publicity chair for ICFP. Like many conferences, we use a Gmail account for sending publicity emails. If you’ve seen any messages on mailing lists from, those came from me (or David Van Horn before me, or Wouter Swierstra before him, or Matthew Fluet before him).

Getting into a Ph.D. program without previous research experience

Several weeks ago, I got this email from a reader of my blog:

I’ve read your blog a lot.

I have one question though. How did you get into a PhD program without previous undergrad research experience?

I’m in Nigeria studying CS and my school has virtually zero undergrad research opportunities, at least not in my area of interest – Compilers and Programming Languages.

I want to become a researcher in Programming Languages. I’m in my second year (undergrad) and I’m working through SICP and writing a compiler for JavaScript in Python.

I need your advice desperately about what I should be doing now to would help my chances of landing an admission into grad school.

Thank you.

I don’t necessarily feel obligated to respond to every cold email I get, but this one grabbed me. I’ve been obsessing for weeks about how to answer this question effectively. This post is what I’ve come up with so far. I recognize that my advice on this topic may not be helpful to everyone, and I’m interested in hearing other researchers’ answers to the question.


It’s been nearly half a year since it happened, so it’s probably about time I mentioned it: the group I originally joined at Intel Labs, the Programming Systems Lab or PSL, has been absorbed into a larger group, the Parallel Computing Lab, or PCL. I was a proud member of the PSL, and it was a little sad to lose our old lab’s unique identity. However, joining the PCL has been a good thing for me and for us. Our old projects continue; in particular, the PCL is now home to the High Performance Scripting project, which ParallelAccelerator is a part of. Some of our PCL colleagues had been involved with Julia already, so it makes sense that we’re now in the same lab and can more easily coordinate our efforts.

The first ten minutes of my JuliaCon talk

Last week, I presented a talk at JuliaCon 2016 about ParallelAccelerator.jl. Thanks to everyone at JuliaCon for being a great audience for this talk!

Everything in the latter twenty minutes of my talk is already pretty well covered in my blog post from March that introduced the ParallelAccelerator package, so in this post, I’ll focus on just the first ten minutes or so.

Do ‘all Java type checkers have bugs’?

Update (February 2017): I’ve written a follow-up to this post!

A few days ago, my friend Stephen Tu pointed me in the direction of “Java Generics are Turing Complete”, a “short note” that Radu Grigore recently posted on arXiv. In it, Grigore shows that in Java, subtyping is undecidable (his “Theorem 1”) and that therefore, type checking is undecidable. He then remarks:

For Java, Theorem 1 implies that there cannot exist a formally verified type checker: All Java type checkers have bugs.

Stephen wanted to know what exactly the claim of “all Java type checkers have bugs” meant. To understand what this means, let’s take a closer look at Grigore’s result.