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.
[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.
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 database 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.
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
An Intuitive Explanation of the Information
Entropy of a Random Variable
Or: How to play Twenty Questions
8 October 2006
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
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
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
© Copyright 2002-2007 Daniel S. Wilkerson