Homepage of Daniel S. Wilkerson

my public key

For four and a half years I was a Programmer-Analyst III at the University of California at Berkeley. I worked for Alex Aiken and David Wagner. I continue to work on research and software in the areas of programming languages and security.

On the right is a picture of my hero, Ben Franklin! I have made printable versions of excerpts from his Autobiography on Virtue and Humility to carry with me; you may want to as well.

It is certainly of more consequence to a man, that he has learnt to govern his passions in spite of temptation, to be just in his dealings, to be temperate in his pleasures, to support himself with fortitude under his misfortunes, to behave with prudence in all his affairs and every circumstance of life; I say, it is of much more real advantage to him to be thus qualified, than to be a master of all the arts and sciences in the world beside. Virtue alone is sufficient to make a man great, glorious, and happy. -- Benjamin Franklin

Some paintings by my mom, such as the one below, are at http://carolynhocker.com/. She paints portraits and other subjects for hire; contact me if you are interested.


Software

[After going on for 7 paragaraphs about the best methods of sweeping the streets of Philadelphia] Some may think these trifling matters not worth minding or relating; but when they consider that tho' dust blown into the eyes of a single person, or into a single shop on a windy day, is but of small importance, yet the great number of the instances in a populous city, and its frequent repetitions give it weight and consequence, perhaps they will not censure very severely those who bestow some attention to affairs of this seemingly low nature. Human felicity is produc'd not so much by great pieces of good fortune that seldom happen, as by little advantages that occur every day. -- Benjamin Franklin

Trend Profiler (trend-prof) aims at finding performance surprises (super-linearities) in C / C++ code based on trends in the runs of the program on small to medium inputs. That is, we predict which parts of the code will not scale well to larger inputs. For each basic block (more or less a line of source code), trend-prof constructs a model that predicts how many times that basic block is executed as a function of input size. The current trend-prof tool works on C / C++ compiled with gcc. A collaboration with Simon Goldsmith.

Oink is a collection of composable backends for the Elsa C and C++ frontend. Oink computes both 1) expression-level and type-level dataflow, and 2) statement-level intra-procedural controlflow [by delegating to Elsa]. Oink also comes with a client of the dataflow analysis that does type qualifier inference: Cqual++, a C/C++ frontend for Cqual. Whole-program analyses may be attempted using the linker imitator.

Compound Init is a small package for implementing the semantics of Compound Initializer syntax as described in the C99 standard, section 6.7.8, including Designated Initializers and the gcc Range Initializer extension to the syntax. It is released under the BSD license and is designed for maximum ease of inclusion into an existing compiler. Compound Init is now a subdirectory of the Oink project which is why the link above points to Oink.

Build Interceptor captures the .i files of any project while it is built from source using the gcc toolchain without *any* modification to the build process of the project you are trying to capture. Includes "Simple Build-Process Interceptor" which used to be posted here.

Delta assists you in minimizing "interesting" files subject to a test of their interestingness. A common such situation is when attempting to isolate a small failure-inducing substring of a large input that causes your program to exhibit a bug. Our implementation is based on the algorithm of the Delta Debugging project at Saarland University. Delta is a collaboration with Scott McPeak. You have Microsoft to thank for asking that Delta be released as Open Source; see the Delta page for more.

Black Tackle is a collection of utilities by Karl Chen and me. It includes this software by me:

Simple IP Chains Workstation Firewall is now gone as it is very out of date.

Contributions of software must say "I put this email, including any attachments, into the public domain."; contributions by corporations or major contributions require that you sign a one page Public Domain Dedication in saying in one page what the previous quotation says in one sentence, but hey, that's the law for you; email me for the Dedication. This arrangement prevents copyright difficulties. New features in contributed software should be accompanied by tests.


Articles

I think that 'innovation' is a four-letter word in the industry. It should never be used in polite company. ... It was Edison who said '1% inspiration, 99% perspiration'. That may have been true a hundred years ago. These days it's '0.01% inspiration, 99.99% perspiration', and the inspiration is the easy part. As a project manager, I have never had trouble finding people with crazy ideas. I have trouble finding people who can execute. ... So no, I don't think people need more innovation. I'd rather see more people sell their product on some plain old-fashioned 'being good'. -- Linus Torvalds

I am proud of this paper as it is a simple solution to a practical problem; it also demonstrates the elegance and wide applicability of power-laws and has a neat use of trigonometry. Alex Aiken proposed the problem of empirically determining the time complexity of a program, which, just as with the Winnowing problem below, is so simple that I was sure if it were possible at all someone would have done it already; yet he was right there was definitely something there. My contributions include that I conjectured power-laws as a low-dimensional way to model the number of executions of a line of code in a program. Simon and I had a lot of fun wrestling with Perl and stat.

Measuring Empirical Computational Complexity.
SEC/FSE'07: The 6th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering,
Simon F. Goldsmith, Alex S. Aiken, Daniel S. Wilkerson.

Principled solutions to practical problems. -- Hao Chen

Now this is a cool paper. It is theoretically cool, but more importantly it actually made a real string-matching index 8 times smaller and 3 times faster on the same queries. I am now only interested in this kind of practical stuff.

Winnowing: Local Algorithms for Document Fingerprinting.
SIGMOD 2003: ACM Special Interest Group on Management of Data,
Saul Schleimer, Daniel S. Wilkerson, Alex Aiken.
Please note that the code in the article has some bugs.
Please beware that unfortunately the Winnowing Algorithm is patented: United States Patent 6,757,675.

Theory is gray, but the golden tree of life is green. -- Goethe

I worked on the theory part of this paper and the relevance of that part to reality is pretty questionable. The implementation side done by Alan and Brent is pretty cool, but I didn't work on that.

System Area Network Mapping.
SPAA 1997: ACM Symposium on Parallel Algorithms and Architectures,
A. Mainwaring, B. Chun, S. Schleimer, D. Wilkerson.

The papers below are useless theoretical junk, but you have to put something on your resume. I no longer do this kind of stuff.

Thomas Godfrey, a self-taught mathematician, great in his way, and afterward inventor of what is now called Hadley's Quadrant. But he knew little out of his way, and was not a pleasing companion; as, like most great mathematicians I have met with, he expected universal precision in everything said, or was for ever denying or distinguishing upon trifles, to the disturbance of all conversation. He soon left us. -- Benjamin Franklin

Faster Computation on Directed Networks of Automata.
PODC 95: ACM Symposium on Principles of Distributed Computing,
R. Ostrovsky, D. Wilkerson.

Nearly Tight Bounds for Wormhole Routing.
FOCS 94: IEEE Symposium on Foundations of Computer Science,
A. Ranade, S. Schleimer, D. Wilkerson.

Optimal Leapfrogging.
The Mathematics Magazine, 1994,
J. Auslander, A. Benjamin, D. Wilkerson.


Essays

A little retrospection shows that although many fine, useful software systems have been designed by committees and built as part of multipart projects, those software systems that have excited passionate fans are those that are the products of one or a few designing minds, great designers. -- Fred Brooks

A Proposal for A Book of Piano Grooves
originally written 20 September 2009, posted 16 January 2010

A Proposal for Proquints: Identifiers that are Readable, Spellable, and Pronounceable
An Open Source implementation: http://github.com/dsw/proquint.
26 January 2009

Effective Management: Want Things, Acknowledge People, Maintain Integrity
18 January 2009

An Intuitive Explanation of the Information Entropy of a Random Variable
Or: How to Play Twenty Questions
8 and 15 October 2006, 26 January 2009

Windows NT crashed.
I am the Blue Screen of Death.
No one hears your screams. -- Peter Rothman

Outline Proposal for Strongly Type-Checked Make and Shell
2 May 2006, edited 4 October 2006

On the Aesthetic of Programming:
Towards Academics and Engineers Talking Usefully About Programming Languages
19 Oct 2005 and 7-8 June 2006

Proposal for an Exercise-Pedia:
A Collaboratively-Maintained Set of Exercises Teaching Fluency in the Whole of Practical Programming and Computer Science
30 August 2005

A crash reduces
your expensive computer
to a simple stone. -- James Lopez

Proposal for an SQL Database Editor
24 August 2005

On the Hammer of Modernism and the Cleaning of Toilets
25 April 2005 and 8 June 2006

Why the '+1' in Two's Complement Arithmetic?
22 June 2004


Non-fiction

If you would not be forgotten
as soon as you are dead and rotten
write things with the reading
or do things worth the writing.
-- Benjamin Franklin

Groundhog Day
Approximately 5:20 pm, Thursday, 2 February 2006, Berkeley, California

Buxom Red Girl in the Bookstore
Approximately 4:00 pm, Sunday, 6 June 2004, Berkeley, California

Vote Early and Often
Approximately 11:30 am, Tuesday, 2 March 2004, Berkeley, California

A Walk In Berkeley
Approximately 7 pm, Saturday, 16 June 2001, Berkeley, California Official NaNoWriMo 2006 Winner


Fiction

I am an Official NaNoWriMo 2006 Winner. (Note: Everyone who finishes "wins".)


© Copyright 2002-2007 Daniel S. Wilkerson