I’m happy to announce that I’ve accepted an offer to intern at Microsoft Research this summer, from June 1 through August 21, in Redmond, Washington. I’ll be working under the direction of Rob DeLine, Principal Researcher and Group Manager of Human Interactions in Programming (HIP).
The abstract of the paper follows:
Developers who use version control are expected to produce systematic commit histories that show well-defined steps with logical forward progress. Existing version control tools assume that developers also write code systematically. Unfortunately, the process by which developers write source code is often evolutionary, or as-needed, rather than systematic. Our contribution is a fragment-oriented concept called Commit Bubbles that will allow developers to construct systematic commit histories that adhere to version control best practices with less cognitive effort, and in a way that integrates with their as-needed coding workflows.
In other words, Commit Bubbles aims to alleviate the “tangled commit” and “non-descriptive commit message” dilemmas that developers routinely encounter when constructing version control commit histories:
The official release of Apache Hadoop 2.6.0 does not include the required binaries (e.g.,
winutils.exe) necessary to run hadoop. In order to use Hadoop on Windows, it must be compiled from source. This takes a bit of effort, so I’ve provided a pre-compiled, unofficial distribution below:
I compiled the source using:
- Apache Maven 3.2.5
- CMake 3.1.0
- MinGW: Minimalist GNU for Windows, specifically with
- Oracle Java 7u71. Note that the newer Java 8 will not work out of the box due to doclint errors.
- Google Protocol Buffers 2.5.0. The
pomfile is hard-coded to use 2.5.0.
- Microsoft Windows SDK for Windows 7 and .NET Framework. Alternatively, you may use Visual Studio 2010 Professional. Visual Studio 2012 and later will not work without modification of the build scripts.
Then, using the Windows SDK 7.1 Command Prompt or Visual Studio Command Prompt (2010):
set JAVA_HOME=C:\PROGRA~1\Java\jdk1.7.0_71 set Platform=x64
The build system requires that you use the 8.3 short filename for
JAVA_HOME (no spaces!). The environment variables (
Platform) are also case sensitive. Finally:
mvn package -Pdist -DskipTests -Dtar
The binaries will be available in
On a clean install of Windows 8 or 8.1 on a Dell Vostro 3500, you may notice an
Unknown device listed under
Other devices in Device Manager:
Under Driver Details, you should also see (
This unknown device is actually the ST Microelectronics Free Fall Sensor. While the last supported operating system for this machine is Windows 7, you can install a generic version of the driver from the Dell KB article: Sudden Motion Sensor drivers are not installed in Windows 8 and Windows 8.1.
Our paper, How Developers Visualize Compiler Messages: A Foundational Approach to Notification Construction, has been accepted to the 2nd IEEE Working Conference on Software Visualization (VISSOFT 2014).
- Materials from the formative study used in the paper are available at go.barik.net/errviz.
- Download the VISSOFT 2014 Conference Proceedings.
The abstract of the paper follows:
Self-explanation is one cognitive strategy through which developers comprehend error notifications. Self-explanation, when left solely to developers, can result in a significant loss of productivity because humans are imperfect and bounded in their cognitive abilities. We argue that modern IDEs offer limited visual affordances for aiding developers with self-explanation, because compilers do not reveal their reasoning about the causes of errors to the developer.
The contribution of our paper is a foundational set of visual annotations that aid developers in better comprehending error messages when compilers expose their internal reasoning. We demonstrate through a user study of 28 undergraduate Software Engineering students that our annotations align with the way in which developers self-explain error notifications. We show that these annotations allow developers to give significantly better self-explanations when compared against today’s dominant visualization paradigm, and that better self-explanations yield better mental models of notifications.
The results of our work suggest that the diagrammatic techniques developers use to explain problems can serve as an effective foundation for how IDEs should visually communicate to developers.
This week I’ll be at VISSOFT 2014, co-located with the 30th Internal Conference on Software Maintenance and Evolulution. I’ll be presenting my talk on How Developers Visualize Compiler Messages: A Foundational Approach to Notification Construction.
See also: How Developers Visualize Compiler Messages.
My graduate consortium submission, Improving Error Notification Comprehension through Visual Overlays in IDEs has been accepted to the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) in Melbourne, Australia. The abstract of the paper follows:
Error notifications, as presented by modern integrated development environments, are cryptic and confusing to developers. My dissertation research will demonstrate that modifying production compilers to expose detailed semantics about compilation errors is feasible, and that these semantics can be leveraged through diagrammatic representations using visual overlays on the source code to significantly improve compiler error notification comprehension.