Writings on Software

I have a number of writings that I've made about interesting aspects of various (existing) programs/systems/programming languages.


The typename keyword

I wrote a descritpion of the C++ typename keyword (why it's "needed", when you must/may/musn't use it); this gets a remarkable number of hits.

Version Control

An introduction to Version Control

My experience teaching the undergrad compilers course is that we do a woefully bad job at introducing students to version control: large proportions of both of my classes had not even heard of it. (This is not UW in particular either, from what I can tell.) Classes shouldn't focus on tools, but in my opinion not teaching version control is only a bit more absurd than having an intro programming class and never talking about what a compiler is, what it does, or how to run it.

Anyway, I wrote these notes to provide (1) a high-level description of what version control is and how the basic workflows go (including with multiple people, because CS536 has optionally-group projects) and (2) provide a description of the use of actual VCS tools. My aim was to present a unified view (at least as much as is possible) of Subversion, Git, and Mercurial.


c-mode (and c++-mode) indent styles

You can find (after a surprisingly difficult search it always seems) a list of styles that are supported by default in Emacs's c and c++-modes... but I've only been able to find one page with example uses, and that used Java style and didn't highlight some important (for me) differences.

This page is my version.


Some notes on Latexdiff

Written for people who hadn't used it before, gives some basic information, some caveats I've discovered, and there's some "how to run it in UW's environment.


SCons intro notes

These are notes that I wrote up for people in my research group who were new to SCons. It's mostly links to "important" sections of the SCons users guide that I selected; those selections are guided by what we're using in our projects, but if you need a whirlwind intro to SCons, they probably hit most of the highlights you'll need too.


OpenOffice Impress's PPTX import filter woes

I may have on occasion made assertions on various internet forums (e.g. Slashdot) that Impress's PPTX import filter "is barely alpha quality" or "is experimental at best". While they've improved it a little bit since 3.0, it is still true; these pages are my evidence that I put up when challenged on that claim.

This isn't so much to bash Impress (even if I may feel inclined to do that) as illuminate some very real shortcomings. If developers don't recognize that there are problems, they won't get fixed. More to the point, if I'm someone who doesn't want to think much about what software I use, someone says "Impress imports Office 10 files!" and this is what I get out, not only does that mean that I'm not going to be using OpenOffice right now for times when I need interoperability with PPTX, not only is it likely that my general impression of Impress will be sullied by the poor quality of this particular feature, but I'm not very likely to believe future claims that OpenOffice will suffice even after it becomes true.

(I really want Impress to be at the level where I can both use it myself and recommend it to others... but at least as of when I was evaluating it a couple years ago, it wasn't particularly close to either milestone. At that point, buying a student copy of Office 10 for PowerPoint was easily worth it. Being only a very light user of word processors, my impression is that the Writer/Word competition is a lot more favorable.)

HTML rendering differences based on DOCTYPE

On an online forum I once made the assertion that your browser will render documents differently depending on the DOCTYPE used (or its total lack) because you can put your browser into quirks mode or standards mode. (This phenomenon is called doctype switching.) Another poster challenged me for evidence, so I the best couple examples from another site, presented them differently, and created the pages above.

In the interest of transparency (and laziness) I left the directory open so you can see the Makefile I use to generate some of the HTML files.

An Aqsis mystery

I wanted to play with this program called Aqsis (it's a 3D modeling tool for people), but its installation program at the time messed up my %PATH$. Because I was bored and thought it was interesting, I wrote up what I found.

I don't like minesweeper

minesweeper board
     requiring a 50% guess

Yes, those are the only uncovered positions left. And yes, I think I did lose that game.