We Are a Distributed People, Let's Build Distributed Systems
Hi. My name is Dave. There are too many Daves in the world, so call me wilkie. I write code. Here is my cv. Feel free to follow me on twitter or rstat.us. This is a place for me to write about systems, programming, diversity, and technology. Particularly how it affects society and how society affects what we build. Here is the collection of my writing by topic.
My research interest lies in systems and operating system design. I maintain a small kernel designed, much like the exokernel before it, on the principle of only exposing interfaces and never abstracting. I have the opinion, albeit heretical, that systems research has run askew of designing systems that function to a meaningless pursuit of benchmarks and that performance doesn't matter.
Furthermore, I assert that an operating system can be designed in such a way that it adapts and learns from its environment. It can grow, alter, and change over time. Essentially, it can cooperate with software it finds and collects from others. Combined with a content-centric network, code and thus information can be freely and widely available as a result. I am developing such an adaptable system in the public domain.
Tied in to my belief in the freedom of computation, I am greatly interested and active in developing for the federated web. That is, the notion that the network you participate in and create content within is designed in the open and distributed such that you control your content and even the means to propagate that content. To that end, I am one of the founders of the federated microblogging software rstat.us. I have founded and am heavily contributing to the development of a whole range of applications and libraries to produce a framework called lotus for easily building and deploying federated applications.
The overall narrative of my work is that the most important facet of computation is that it should be available to all people. I do not believe that we, as a society, are allowing the correct amount of diversity it terms of gender, sex, race, ethnicity, and other heavily socially constructed attributes. That is, we are allowing these otherwise insignificant features to bias access to technology. As such, I am also very interested in gender, queer, and race studies so that I can better understand how to develop an adaptable system that can overcome this adversity and truly reach all of humanity.
I will write on topics such as software design, copyright and other legal issues that pertain to software, gender and diversity issues, information freedom, and perhaps random things I find neat.
Projects and Teaching
- OurCS: A workshop that promotes research to undergraduate women where I led a team through a intriguing distributed systems problem.
- Reuleaux Selectors: Discussion of gender/sexuality and research into a new form of human interface for specifying each.
- Open Source Game Coding Competition: An annual, social programming experience I run that teams up experienced programmers with students to make games in 24 hours.
- Conference Diversity: A mathematical take on conference speaker line-ups and how to determine if a conference is being gender-biased.
- Kernels Without Abstractions: A look at a history of OS design and how older, monolithic designs hinder social collaboration.
- Kaashoek's Law: We've been evaluating systems in only a single dimension; here I explain why this approach is wrong and how we could compare systems more completely.
- Learning from Doom Masters: Making mistakes is part of the process. Here I look at code and highlight bugs in the game Doom and why they make the game better not worse.
Selected Published Writing
XOmB: an Exokernel for Modern 64-bit Multicore Hardware - WSO 2013: Describes the system architecture, technical merit, and novelty of a new kernel built without the legacy of prior abstractions.
Balancing Performance, Accuracy, and Precision for Secure Cloud Transactions - IEEE TPDS: Proposes new database consistency algorithms for emerging distributed data solutions to account for finer-grained privacy control within an eventually consistent environment.
Studying Speedrunners - Game Developer Magazine: A look at the bugs in the popular game DOOM that have been discovered over the years by enthusiast players. I examine the released source code to explain why certain tricks work and discuss why having bugs in your games can be part of its appeal, not a drawback or mistake.