Walk the Talk

Ba b747-400 g-bnle arp

This post is primarily targeted at the Computer Science research communities that surround the ACM and the IEEE, but it applies to all tech communities that gravitate around conferences. I believe that an overwhelming majority of people in these communities is concerned about the effect that global warming is having on the Earth’s climate; many of us also know the urgency of the necessary measures. The question is: are we ready to act on what most of us believe, and reduce the amount of air travel we do for conferences? Or are we going to continue to live as if it doesn’t matter?

This post makes a radical proposal: let’s reduce and limit the number of physical conferences  organized by the ACM and the IEEE down to a reasonable number. Something like one physical conference per SIG per year. Read on.

Continue reading

Posted in computer scientists, conferences | 10 Comments

Divide by Zero! and Other Propaganda

I’ve been trying to wrap my head around this incredible moment in history. In trying to wrap my head around it, I’m turning to what I know best: programs, programming, and software-intensive systems. And their flaws. This is a mini-essay on how the line between software systems and social systems is completely blurred, and how what we know of software can inform, or explain, the hyper-connected, information-rich world we live in.

Continue reading

Posted in commentary, life, social software systems | Comments Off on Divide by Zero! and Other Propaganda

Laws of Performant Software

Learning how to write performant code is hard. Here are a few simple laws that I hope will convey the core of the matter. I’m calling them…

Continue reading

Posted in advice, engineering, research | Tagged | 17 Comments

The Art, Science, and Engineering of Programming

I’ve been relatively low key about something that I’m very excited about, so, after several months of planning, and a first, somewhat quiet, submission deadline, it’s time to release my enthusiasm. A group of us have started a new conference called <Programming>  associated with a new open-access journal called The Art, Science and Engineering of Programming. Here are some FAQs about this initiative. Continue reading

Posted in academia, conferences, research | 3 Comments


Google's Lexus RX 450h Self-Driving Car

As a computer scientist specializing in programming, the social consequences of software-for-business-efficiency are worrying me more and more. Here at home, we’ve been having a conversation about what post-capitalism would look like in the face of quasi-universal automation, in the best case scenario. It’s really hard to tie all the loose ends of such a vision. It’s sort of like Communism, but where people don’t need to work in order to have a decent life; the machines do all the work for us. There would be no money. All basic needs would be available free of charge. Food? Free. Transportation? Free. Housing? Free. Health care? Free. Education? Free. Justice? Free. Law and order? Free. No need to work, other than voluntarily. Everything would be provided by an automated production system powered by intelligent software.

Continue reading

Posted in commentary, fiction, life, social software systems | 3 Comments


This post comes from an email conversation going on related to programming languages vs. libraries. The story goes that these days, the major productivity gains come not from new languages but from the existence of libraries that already do almost everything for you. That is unquestionable. These days people don’t choose programming languages as much as they choose libraries and frameworks that already do most of the work for them, and that happen to be written in some programming language or another. One can argue that these powerful libraries and frameworks stand in the shoulders of a lot of work in programming languages that became invisible by design. But that work has already been done, to the point that these powerful libraries are already out there.

So where does this leave programming languages? Are we done yet?

Continue reading

Posted in research | 10 Comments

Distributed Systems Testing: The Lost World

After failing to find good papers about distributed systems testing for many months, yesterday I asked a question in Twitter:

This got many retweets and some interesting replies, so I’m going to summarize them here. Then I’ll explain a bit more about why I’m interested in this topic.

Continue reading

Posted in research | Tagged , | Comments Off on Distributed Systems Testing: The Lost World

Architectures for Massively Multi-User Environments

See my post at the IEEE Software Blog.

Posted in research, simulation, virtual reality | Comments Off on Architectures for Massively Multi-User Environments

Sexual Conflict

The recent scandal at UC Berkeley’s Astronomy department regarding a star Professor being accused of sexual harassment and consequently resigning from his position, has, once again, had me thinking about how institutions and organizations deal with sexual harassment. There are a few problems with how sexual harassment policies, and their enforcement, are handled, and I think we could do much better. We don’t have to reinvent the wheel to see how this could be done better: just look over the policies and procedures for conflict of interest. Let me argue here that there’s something missing in current sexual harassment policy designs — the concept of “sexual conflict.” Once that concept is spelled out, it’s easy to see how to handle these situations much better, and, better yet, to avoid horrible, not-good-for-anyone, full-blown sexual harassment situations, as what happened with Berkeley’s star astronomer.

Continue reading

Posted in academia, ethics | Comments Off on Sexual Conflict

Lab Cloudet: IT at Lab Scale

I’ve been a Professor for almost 13 years. During these 13 years, I have seen investment in routine academic IT infrastructures decrease steadily, while at the same time being encouraged/pushed to use commercial infrastructures. Academic administrators seem to be mostly preoccupied with the 1% of academic work that requires high performance computing, large clusters and super high speed networks, and don’t pay much attention to the everyday needs of the other 99% of academic work. This puts research integrity at risk, but hey! — it’s hard to attract money for a vanilla storage system that is used for everyday computing, and for the sys admin that goes with it, especially when so many commercial cloud providers give things for free to Universities; you need to add bells and whistles and throw in a few buzz words like “cloud” and “big data” to get people impressed. Fair enough.

I finally got fed up with commercial solutions, for reasons that I explain later, and decided to set up my own IT infrastructure that fits exactly my needs and those of my group. I thought I’d write down my take on this. I suspect lots of colleagues have the same struggles. Continue reading

Posted in academia, research | Tagged , | 6 Comments