Ideas to ship in 2014

Kragen Javier Sitaker, 2014-04-24 (updated 2019-05-05) (35 minutes)

These are some 50 ideas I have that I think are important for me to pursue and in some form “ship”, either by explaining and thinking about them (“shipping” an essay), researching them (“shipping” a review), or experimenting with them (“shipping” experimental results and, in some cases, software). The question is, which ones are the most important to pursue.

I can’t possibly do all of them, or even a large minority of them, so I’m making this list for two reasons: first, to help me prioritize them (feedback welcome!), and second, to get enough information out there that someone else can maybe tackle the ones that I’m not going to do.

Here I’m using “AOWTBITF” as an abbreviation for “Amount of work to bring it to fruition” and “SNSTWBU” for “Smallest next step that would be useful”.

The natural relationship between violence and religion

Summary: an essay about how boundaries between religious groups inevitably produce violence as long as both groups believe in self-defense.

Benefit: if I’m wrong, maybe someone will tell me; otherwise, maybe people will understand violence and religion better, better enabling them to organize society to minimize violence.

AOWTBITF: 8 hours. SNSTWBU: write an outline, ½ hour.

The effectiveness of Leviathan in reducing violence

Summary: an essay exploring whether Hobbes’ proposed justification for the existence of states is empirically justified by what our current state of anthropological, epidemiological, zoological, and archaeological knowledge, which has advanced substantially since 1651.

Benefit: if I’m wrong, maybe someone will tell me; otherwise, people might understand violence better, better enabling them to organize society to minimize violence.

AOWTBITF: 32 hours. SNSTWBU: dig up a copy of Pinker’s angel book, 4 hours.

The path toward a world not organized around violence

Summary: an essay exploring whether there’s an alternative to Leviathan.

Benefit: if I’m wrong, maybe someone will tell me. Otherwise, maybe people will better understand violence and its role in society and have a clear plan for making the world less violent; and my own point of view on violence will be publicly declared.

AOWTBITF: 16 hours. SNSTWBU: write an outline, 1 hour.

De-heroizing mass killers

Summary: an essay exhorting people not to honor the military. Related to http://lists.canonical.org/pipermail/kragen-tol/2010-June/000916.html.

Benefit: if I’m wrong, maybe someone will tell me. Otherwise, if the argument is effective, it weakens the credibility of those with the strongest inclination to argue against pacifism and nonviolence.

AOWTBITF: 16 hours. SNSTWBU: write an outline, 1 hour.

The equivalence between violence and censorship or dishonesty

Summary: an essay arguing that advocacy of free speech necessarily entails advocacy of nonviolence. Gandhi talked about this, as did the Redonditos de Ricota. Related to http://lists.canonical.org/pipermail/kragen-tol/2008-February/000880.html, which discusses how censorship causes violence.

Benefit: if I’m wrong, maybe someone will tell me. Otherwise, people might understand the seriousness of censorship and dishonesty and be less willing to endorse them as a result, although presumably some people will go the other way and conclude that permitting free speech amounts to collective suicide.

AOWTBITF: 8 hours. SNSTWBU: write an outline, ½ hour.

The prospects for material abundance, the path to an abundance-based economy

Summary: an essay about the future of society: we’re living in an age where many things that were once scarce have become so abundant that anyone could have as much as they want, and it seems likely that more and more things will be abundant in this way. How do we take advantage of this? Mentioned in http://lists.canonical.org/pipermail/kragen-tol/2010-June/000916.html.

Benefit: if I’m wrong, maybe someone will tell me. Otherwise, maybe I’ll come up with an idea or two that’s worth implementing and improves our chances of surviving as a civilization.

AOWTBITF: 8 hours. SNSTWBU: write an outline, ½ hour.

The obsolescence of the Marxist classes for understanding modern society

Summary: an essay, or perhaps book, proposing more accurate replacements for Marx’s concepts of “bourgeoisie” and “proletariat”, which made some sense in the 19th and 20th century, however oversimplified they may have been, but today are more misleading than useful; social dynamics have changed fundamentally, and even in the 20th century, the predictions Marx made based on his theory could hardly have been more incorrect.

Benefit: I’ll understand both society and Marxism much better by writing the essay. Surely other people will tell me I’m wrong, which might improve my understanding further if they have something more substantive to say than just “false consciousness!”. Ultimately, I’ll provide a framework for understanding 21st-century society that supplants the Marxist framework commonly used by Marxists and capitalists today, but writing this essay is just the first step in that process. (Fuck, that sounds arrogant, doesn’t it? I hope the high aims I’m setting for myself don’t backfire on me as they did for Aaron.)

AOWTBITF: 512 hours. SNSTWBU: finish carefully reading Capital, 128 hours.

Why people do things

Summary: a series of essays analyzing human motivations in different cross-cutting ways: a division between personality, situation, and free will; a division between instinct, culture, and self-interest; a division between loyalties to the group, beliefs in ideals, and egoism; and a division between habit, improvisation, and planning. The essays will integrate the best current understanding from experimental psychology with a poorly-understood version of Buddhism, while remaining accessible through parables and analogies.

Benefit: I’ll understand human motivation better, including, in particular, my own, which might help improve my ability to act consciously, but also that of others, which will improve my ability to cooperate with other people. Hopefully other people will tell me where I’m wrong and improve my understanding further. Maybe by reading the essays, other people will understand these issues better too.

AOWTBITF: 64 hours. SNSTWBU: translate the first draft of the first essay into English, revising it, and post it, 8 hours.

How to be right

Summary: an essay on techniques I have found useful in abandoning beliefs that are at odds with reality and adopting new ones that are more accurate, and explaining why I think this is a desirable thing to do; in short, a bite-sized introduction to philosophy.

Benefit: anyone will be able to point to this essay whenever someone accuses them of having a strong desire to be right, as if that were a bad thing, perhaps citing some one-liners from it. Maybe someone will point out that some of these techniques aren’t as useful as I think they are, or that I’ve left out others, which could substantially improve my ability to be right in the future if I learn from them.

AOWTBITF: 16 hours. SNSTWBU: brief outline, 1 hour.

In favor of the ontological legitimacy of ghosts and moods

Summary: an essay arguing that, although the modern mindset scoffs at entities such as “ghosts”, “demons”, and “God”, these concepts seem to be pragmatically at least as useful as metaphors for grappling with our incomprehensible universe as other concepts that the modern mindset accepts without question, and they ontologically seem to have the same kind of objective existence as such everyday entities such as “laws”, “dollars”, “theorems”, “moods”, “nations”, “rights”, “corporations”, and “birthday parties”.

Benefit: I don’t know, probably people will think I’m nuts, but hopefully it will keep me from getting too attached to my own conception of the universe. Maybe it’ll change some other people’s minds and keep them from being too sure of themselves, too.

AOWTBITF: 8 hours. SNSTWBU: brief outline, ½ hour.

States as a kind of corporation and corporations as a kind of state

Summary: an essay describing the parallels between states and other corporations, both historically and at present, and arguing that it doesn’t make much sense pragmatically to relate to the two institutions on different terms; also, exploring the possible near-future evolution of these and related institutions. The concept is mentioned in passing in http://lists.canonical.org/pipermail/kragen-tol/2007-October/000872.html.

Benefit: maybe someone will point out important differences between the institutions that I’ve overlooked. Or, if I’m correct, maybe other people will sharpen their understanding of these institutions, which will benefit them and society.

AOWTBITF: 8 hours. SNSTWBU: brief outline, ½ hours.

FIR kernel factorization

Summary: find out if FIR filtering in the time domain can be done with less computation by factoring a FIR kernel, approximately or exactly, into a convolution of two or more sparser FIR kernels, or FIR kernels with more heavily quantized coefficients; then publish the results, a comparison with the efficiency of convolution in the frequency domain, and software for reproducing them.

Benefit: if the technique works more efficiently than known IIR and DFT-based techniques for a significant set of applications, which is unlikely, people will be able to do some kinds of linear filtering of signals with substantial improvements in efficiency, which will have applications in medicine, communications, remote sensing, music, and data compression, particularly in cases with very low hardware budgets or very high performance requirements.

AOWTBITF: 32 hours. SNSTWBU: implement some particularly easy filters in the time domain and compare the computational efficiency to frequency-domain convolution, 4 hours.

LZ77 modified with carefully chosen contexts

Summary: LZ77 wastes most of its sliding window on substrings that are unlikely to appear again. Tampering with the sliding-window contents in a deterministic fashion that the decoder can reproduce, which doesn’t seem to have been tried before, could produce substantially better compression. Try this out and publish the results and resulting software.

Benefit: if it works, it could produce a novel variant of LZ77 with compression comparable to LZMA, but perhaps faster; this would improve the efficiency of everything that stores data on a disk or transmits it over a wire, if it’s sufficiently adoptable that people adopt it. Unfortunately, for the same reason, it’s pretty unlikely to work; there are a lot of smart people panning for gold in this river.

AOWTBITF: 32 hours. SNSTWBU: ask A. if someone’s tried the idea already, 1 hour.

The magic kazoo

Summary: toy pianos are popular because they’re easy to use and kids love making music, but they’re still a little hard to use, and they’re not very portable. An electronic synthesizer whose pitch and rhythm was instead controlled by the human voice would be much easier to use, and could be downloaded as an Android or iOS app or manufactured as a separate electronic device the size of a stick of gum.

Benefit: lots of new people could make music with synthesizers. It would be a hell of a lot of fun, and it would provide a much more comprehensible answer to “What have you been up to lately?” than, say, “exploring the ontological legitimacy of ghosts and moods”.

AOWTBITF: 128 hours. SNSTWBU: write a software vocoder, 8 hours.

Mechanical computation with lookup tables

Summary: make a general-purpose mechanical computer using some version of the heightfield lookup table mechanism described in http://lists.canonical.org/pipermail/kragen-tol/2010-June/000919.html. Modern manufacturing techniques, while not necessary, should make this much easier than before.

Benefit: I would be the first person to construct a fully- programmable mechanical computer. Nobody has ever done it. Seven generations later, the dream of Babbage, patron saint of irascible eccentrics everywhere, would finally become reality. Zuse’s Z1 and the Analytical Engine are the closest anyone has ever come, and the Z1 not only failed to work reliably, but it lacked control flow; while the Analytical Engine has not yet been built, because the cost of Babbage’s inefficiently- designed mechanisms is astronomical. The dramatic reduction in parts count provided by heightfield LUT mechanism makes general-purpose mechanical computation feasible for the first time in history, if it works. It would change people’s conception of the achievable and demonstrate conclusively that the missing factor that delayed automatic computation for over a century until the 1940s was not in manufacturing technology or in materials science, but merely in our motivation and our logical understanding of the nature of computation.

AOWTBITF: 1024 hours. SNSTWBU: construct a mechanical 4-bit multiplier, 64 hours.

Bicicleta

Summary: construct an interactive IDE for Bicicleta, my ς-calculus-based purely-applicative programming language, that other people can practically use.

Benefit: many of the benefits sought by projects like Bret Victor’s “learnable programming” and Jonathan Edwards’s Subtext are much more achievable in the ς-calculus than in languages based on the λ-calculus or ALGOL; the resulting programming environment will provide unprecedented power to expert programmers while also being unprecedentedly accessible to novice programmers, replacing Excel for many purposes. Consequently, if the platform is developed to the point where people use it, there will be many more programmers, and they will program many more things; and platforms like Android that allow their users to program will gain an advantage over platforms like iOS that do not; additionally, people adopting Bicicleta instead of Excel will substantially weaken Microsoft’s market power.

AOWTBITF: 512 hours. SNSTWBU: get a DHTML-based interpreter running, however slowly, with live display of results, 16 hours.

Telecommunication using clouds (of water vapor, in the sky)

Summary: reflect lasers off clouds in the sky for long-distance communication; probe the available bandwidth.

Benefits: This seems like the most practical way to establish long-distance high-speed data links without onerous licensing restrictions, extremely low bandwidth, or need for massive amounts of fixed capital that introduce single points of failure. It may be possible to reach ranges of up to 1000 km at megabits per second. If it works, it reduces the investment needed for intermittent high-speed round-the-world communication to some 20 ground relay stations.

AOWTBITF: 4096 hours. SNSTWBU: get laser communication working in my living room with laser pointers reflected off my living room wall, 16 hours. Maybe start by getting L’s oscilloscope back from D.

Automatically-controlled low-temperature hot-water tanks

Summary: build a slightly more sophisticated microcontroller-based solar hot-water system using simple insulated-back plastic flat-plate solar collectors with two-sun or three-sun illumination from flat aluminum reflectors and multiple valve-controlled superinsulated hot-water tanks.

Benefits: dramatically cheaper and safer domestic hot water. Most of the expense of domestic hot-water systems in general, and solar hot-water systems in particular, is a result of the inefficiently high temperatures at which the water is maintained, the even higher temperatures reached by flames and electric heating elements, the high hydrostatic pressure within the tank, and the primitive control systems still in common use in hot-water heaters. A microcontroller-based system can maintain water temperatures in a safe range that can be contained with inexpensive bacteriostatic materials rather than expensive materials such as stainless steel. A transition to systems like the one described here would eliminate a significant percentage of world marketed energy consumption, while providing on-demand hot water --- one of the greatest luxuries I have ever experienced --- to a much greater fraction of the population. In http://lists.canonical.org/pipermail/kragen-tol/2007-December/000875.html I talked about climate control a bit, but mostly in the context of cooling things down.

AOWTBITF: 256 hours. SNSTWBU: get that solenoid-driven valve I salvaged from the discarded washing machine running off the relay I salvaged from the discarded microwave oven, 8 hours.

Ghettobotics

Summary: write a manual for bootstrapping a self-sustaining electronics lab from the municipal waste stream. Benefits: ending the perception that electronic gadgetry is something that only the rich and the Chinese can make. Improving my electronics skills to the point where I can solve problems of substantial commercial interest.

AOWTBITF: 2048 hours. SNSTWBU: write a working Tinkerer’s Tricorder program for Arduino. No, wait, buy another Arduino: 4 hours.

Automatic dependency-driven recomputation

Summary: build a prototype of a rearchitecture of the personal computer platform around the caching of computational results, as described in http://lists.canonical.org/pipermail/kragen-tol/2012-July/000963.html. Related work includes Meteor and http://facebook.github.io/react/, with comments in https://news.ycombinator.com/item?id=5789055. Benefits: substantially simpler and more efficient personal computing, which means both that it can run longer on batteries and that it’s more practical to experiment with alternative ways of doing things.

AOWTBITF: 16384 hours. SNSTWBU: build a chat app on Meteor, 8 hours.

Improvements on PWM

Summary: make improved approaches to PWM practical. PWM, or “pulse width modulation” is a popular method of providing varying output power from a circuit without increasing the circuit’s power dissipation enormously; its use for controlling motors, LEDs, and incandescent lights is extremely widespread, and it can also be used to provide a “virtual analog output” from a digital output, most notoriously in Arduino. But it has serious drawbacks: heavy harmonic distortion in the output signal, plus time-domain artifacts that often have quite visible effects, can damage equipment and degrade quality of operation in other ways, such as undesired stroboscopic illumination. Four sometimes-better methods that often go unused because of a lack of good examples and libraries (aside from Don Lancaster’s Magic Sinewaves) are dithered PWM, PDM (pulse density modulation), rational-approximation PWM, and PWM for less-significant bits combined with a different approach, such as an R-2R DAC, for more-significant bits. Benefits: nobody else will blow out tweeters like I did, and taillights and fading power LEDs will stop doing that annoying flickery thing.

AOWTBITF: 64 hours. SNSTWBU: try rational-approximation PWM for audio output on the Arduino and write up my results, 8 hours.

Free software is like owning your own home

Summary: essay advocating a new metaphor for advocating free software. Richard Stallman’s standard similes liken using proprietary software is like being enslaved, collaborating with enemy occupiers, or breaking promises. These are not accurate reflections of the modern computing environment, where using proprietary software generally does not require agreeing to NDAs and is substantially less disheartening than living in captivity performing forced labor. Consequently, many people reject Stallman’s ethical vision as out-of-touch, and unfortunately, the free-software movement as a whole. A better metaphor is that free software is a home you own yourself, or lease long-term rather than renting on an at-will basis from a landlord: it provides you with better security, greater privacy, and greater individual autonomy, at the cost of being responsible for the maintenance of the thing, whether DIY or outsourced. Benefits: a new and more comprehensive vision of the importance of freedom of software that, I hope, provides a more nuanced understanding of the serious issues at stack, and which will resonate better with the current public.

AOWTBITF: 16 hours. SNSTWBU: write an outline, 1 hour.

The cheap-junk laser display and camera

Summary: Draw pictures on the wall, in the dark at least, with a laser pointer and some speakers; and use the same low-cost apparatus, plus a photodiode to capture the time-domain reflectance signal, to capture reflectance-range images. Described in some detail, except for the camera part, in http://lists.canonical.org/pipermail/kragen-tol/2010-July/000922.html. Benefit: high-resolution big-screen displays for US$10 for everybody else. Awesome show-and-tell device for my living room and get-togethers.

AOWTBITF: 256 hours. SNSTWBU: hook up a spinning mirror to a motor, bounce a laser pointer off it, and modulate the laser to make a one-dimensional pattern and measure its response time, 32 hours.

The user interface as a real-time program

Summary: essay and proof-of-concept software that uses hard-real-time software techniques to ensure that a layer of the user interface remains always responsive, regardless of machine load. Benefits: you can immediately fix even badly overloaded servers, using personal computers becomes much more pleasant, and even machines with little RAM and CPU become highly usable, allowing much longer battery life, Kindle-style, for general-purpose applications.

AOWTBITF: 256 hours. SNSTWBU: some kind of real-time GUI for a Linux running under a real-time hypervisor (e.g. L4Linux, RTLinux), 64 hours.

A language for real-time programming

Summary: Develop a language that permits the verification and automatic satisfaction of maximum-time and maximum-space properties for real-time embedded software. Some discussion of requirements at http://lists.canonical.org/pipermail/kragen-tol/2012-January/000943.html. Benefits: C is still the lingua franca for real-time and embedded programming, but it falls far short of what can be achieved, leaving a lot of work to the programmer that could be done by the computer. This language would do that work for you, allowing an improvement in the productivity of real-time programming comparable to the productivity improvement provided by very-high-level languages like Python or Matlab for software that is primarily computational rather than reactive in nature; this would dramatically extend what amateurs can do with systems like Arduino, where amateurs can easily do simple things but rapidly hit a glass ceiling when going further requires them to understand issues like stack-heap collisions, nondeterministic interrupt response times, shared-state concurrency, and scheduling.

AOWTBITF: 2048 hours. SNSTWBU: a minimal compiler that can provide time and space guarantees for a tiny concurrent Actors language, with compilation to Arduino, 32 hours.

Natural language is a digital phenomenon

Summary: an essay describing the difference between analog and digital representations of information (for computation and communication), and explaining the obvious (to me) and surprising (to many people) conclusion that natural language (what we use for verbal communication) is a digital representation of information, not an analog one; and explaining the importance of this fact in human history up to the 20th century.

As the Wikipedia entry for “Digital” says, “Although digital signals are generally associated with the binary electronic digital systems used in modern electronics and computing, digital systems are actually ancient, and need not be binary or electronic. [For example,] Written text in books (due to the limited character set and the use of discrete symbols - the alphabet in most cases)”.

Benefits: hopefully people will finally understand this and stop pissing me off by talking about “analog books”, as if there is such a thing. More seriously, hopefully people will understand the distinction between “digital” and “computerized”, which will improve their ability to predict and deal with 21st-century technology.

AOWTBITF: 8 hours. SNSTWBU: an outline, ½ hour.

aaronsw (as Vincent)

Summary: write my long-overdue eulogy for Aaron Swartz, quoting Don McLean’s song “Vincent”, which is painfully apt. Benefits: I will pay some of my karmic debt to my strange friend and painfully missed mentor, and maybe I can stop crying about his suicide. I mean, shit. It’s been almost five months and I can’t write even this without tears in my eyes.

AOWTBITF: 4 hours. SNSTWBU: a first draft, 1 hour.

Phyle sousveillance

Summary: an essay exploring 21st-century approaches to personal safety and crime, taking as given that nation-states are becoming less effective and more corrupt, and may hollow out dramatically (to inflict one of John Robb’s neologisms on you), while the available alternative approaches are exploding. (The term “phyle” is from Stephenson’s The Diamond Age, but while I think “phyle” is a useful concept, I don’t share Stephenson’s enthusiasm for violence. I think “sousveillance” is a neologism due to Steve Mann, but Howard Rheingold has also popularized it.)

Benefits: maybe some of the approaches I propose will be practical to implement, and discussion will show some of them to be socially beneficial, and maybe other people will point out that some of them are not workable. Then we can see about trying some of them out.

AOWTBITF: 8 hours. SNSTWBU: an outline, 1 hour.

Queer numbers

Summary: some years ago (XXX include link), I proposed a way to produce stable identifiers for individual paragraphs of a changing document, which I called “queer numbers”. There is now plenty of data easily available to evaluate the effectiveness of my proposed algorithm. I should do the experiment and publish the results.

Benefits: if it doesn’t work, it won’t waste anybody’s time any more. If it does work, future hypertext systems can incorporate queer numbers to enable robust fine-grained hyperlinks and transclusion.

AOWTBITF: 16 hours. SNSTWBU: politely crawl the history of a single Wikipedia article and try the algorithm out on it, 4 hours.

File similarity

Summary: some years ago, I proposed some general algorithms for efficiently finding files with textually similar contents. Current thoughts at http://lists.canonical.org/pipermail/kragen-tol/2010-December/000931.html. Benefit: substantial improvements in data compression, spam filtering, genomics, virus detection, intrusion detection, and queer numbers, if it works.

AOWTBITF: 64 hours. SNSTWBU: try the simplest possible implementation and see if I can get it to work, 4 to 16 hours.

Set-valued bloom filters

Summary: compare the generalization of bloom filters I developed in 2006 or 2007 (XXX include link) to signed-hash full-text indices (XXX is that the right term?), comparing their performance rigorously enough to publish the result as a peer-reviewed paper. Benefit: other people would be more likely to be able to find out if this data structure is useful for their purposes, and it might produce marginal improvements in the performance of full-text search engines. Also, I’d have another academic publication.

AOWTBITF: 128 hours. SNSTWBU: contact a researcher in the area to see if they’d be interested in helping to guide me through the publication process, 4 hours.

The post-HTTP web

Summary: in 2006, I wrote “What’s Wrong With HTTP” (XXX include link) but I never published the promised follow-up essay describing how to solve the problems. There are now lots of systems in the field demonstrating pieces of the solution. I should rewrite the essay and publish it at last.

AOWTBITF: 16 hours. SNSTWBU: find the draft I wrote in 2006, 2 hours.

The colectivos app

Summary: I want the Guia “T”, the standard guide to Buenos Aires’s bus system, in a free-software Android app. Except that it can be much, much better, because people can contribute. Benefits: I’ll be able to travel around the Capital more easily. So will other people using free-software Android phones. There will be a wealth of free bus traffic data if the app becomes popular.

AOWTBITF: 128 hours. SNSTWBU: get an Android phone.

A free-software predictive input method for Android

Summary: I want something as good as SwiftKey, but free software. Initial thoughts at http://lists.canonical.org/pipermail/kragen-tol/2012-July/000961.html; more details at http://lists.canonical.org/pipermail/kragen-tol/2012-July/000965.html. Benefits: free-software Android on common (non-QWERTY) devices would become practical for writing. I’d have a really kick-ass program to show off for job interviews.

AOWTBITF: 256 hours. SNSTWBU: get an Android phone.

“Pick activism tactics as if they might work”

Summary: essay advocating care in the choice of activism tactics, in particular condemning the widespread current practice among Democrats in the US of calling for boycotts against people or groups for advocating unpopular political positions, but more broadly, discussing common unintended consequences of poorly-thought-out political advocacy. Benefits: my aunt Jessie has already blocked me on Facebook for advocating this position, and I can expect to offend many more people, but explaining the idea in a way that isn’t personally directed at a particular other person should have a better persuasion-to-offending ratio. My earlier clumsy advocacy of this position on kragen-tol (XXX include link) provoked some thoughtful discussion. Perhaps someone will even persuade me I’m wrong.

AOWTBITF: 8 hours. SNSTWBU: outline, 1 hour.

Binate

Summary: implement Binate, the database query language based on binary relations. XXX include link. Benefits: Binate is designed to support live feedback on queries as you’re constructing them, which will make fans of Bret Victor happy, and perhaps can woo away some users from Excel; it lets you write common queries in five or six words that would take five or ten lines of SQL; and it is dramatically better at abstraction than SQL is, so you can avoid writing the same thing over and over again, the way you must in SQL.

AOWTBITF: 128 hours. SNSTWBU: a Binate interpreter that lets you interactively query MySQL databases from a browser with Comet, 16 hours.

Suffix-array construction

Summary: write a full-text search engine using one of the linear-time suffix-array construction algorithms discovered in the last decade. Benefits: practical full-text substring and regexp search on the desktop.

AOWTBITF: 64 hours. SNSTWBU: an in-memory implementation of one of them, 8 hours.

FeML

Summary: implement the FeML minimalist programming language (XXX include link). Benefits: the safety of ML, the flexibility of Python, the speed of C, if it works.

AOWTBITF: 256 hours. SNSTWBU: a FeML interpreter in OCaml, 16 hours.

Matchscheme

Summary: a Scheme that gets OO and conditionals from built-in pattern-matching, in email with Darius Bacon. Benefit: an interesting bottom layer for a language stack.

AOWTBITF: 32 hours. SNSTWBU: find the old email thread, 4 hours.

Constrained image approximation using automated image quality assessment and AI

Summary: use a model of the human visual system to guide general AI algorithms in constructing images. Initial thoughts at http://lists.canonical.org/pipermail/kragen-tol/2012-April/000949.html. Benefit: a huge range of visual-artistic possibilities (fake pencil portraits, ASCII art, mosaic designs, stencil designs, texture synthesis to match hand-drawn line art, shadow painting), and dramatically better image compression.

AOWTBITF: 1024 hours. SNSTWBU: read Taylor’s thesis thoroughly, 32 hours.

Polar flutterwumpers

Summary: build a machine that moves physical objects to precise positions relative to each other using only circular motions, thus avoiding the need for precise slides, low-backlash gearboxes, lubrication, and other mechanical pitfalls of linear motion. Initial math at http://lists.canonical.org/pipermail/kragen-tol/2012-April/000956.html. Benefit: printers, including 3-D printers, with much simpler hardware, if it works.

AOWTBITF: 512 hours. SNSTWBU: a 3-D simulation in JS on a web page, 8 hours.

Backtracking HTML templating

Summary: a new way to write low-logic HTML templates that actually simplifies the task of HTML generation beyond what we had in 1994 with server-side includes. Description at http://lists.canonical.org/pipermail/kragen-tol/2012-April/000951.html. Benefit: slightly easier templating, especially of HTML, for extra-difficult cases. Something cool to talk about in job interviews.

AOWTBITF: 32 hours. SNSTWBU: a minimal, demoable implementation, 8 hours.

Parser generator with code reuse

Summary: a parser generator that comes with a large host-language-independent library of syntactic features that you can mix and match to describe the language you want to parse, which is impossible with commonly-used parsing algorithms like LR and LL. Some notes at http://lists.canonical.org/pipermail/kragen-tol/2012-April/000953.html. Benefit: developing new language syntaxes and parsers would be really easy, due to the parser generator already having most of them in its library, as would developing new interpreters and compilers (in new languages) for existing languages that have existing parsers using this system. World fame. Unless nobody uses it.

AOWTBITF: 4096 hours. SNSTWBU: extend peg-bootstrap or one of Darius’s libraries to produce reasonably efficient parsers, and abstract out the semantic actions, 32 hours.

Radix-sorting rational numbers

Summary: write up my algorithm for representing rational numbers so they can be radix-sorted, described at http://lists.canonical.org/pipermail/kragen-tol/2011-October/000942.html, such that it could be published in a peer-reviewed venue. Benefit: a potential academic publication of little importance.

AOWTBITF: 64 hours. SNSTWBU: write an implementation and characterize its behavior, 8 hours.

Very-low-bandwidth speech-formant codec

Summary: encode sampled speech in real time by estimating formant center frequencies and widths and transmitting those, entropy-coded to reduce bandwidth below 1kbps, perhaps as low as 500bps. Speculated on in http://lists.canonical.org/pipermail/kragen-tol/2010-March/000911.html. Benefit: if it works, which is unlikely, I could push real-time speech transmission into 500-bit-per-second channels, an unprecedented feat. However, this is basically only useful if you have a low-latency communications channel between 500 and 1000 bits per second; there are already codecs that work at 1000 bits per second. It would be pretty awesome to be able to say I was the guy that achieved this.

AOWTBITF: 1024 hours. SNSTWBU: learn enough about DSP to write working code to find the centers of formants (and plot and play them), 32 hours.

Fix one of the JS Markdown libraries

Summary: there are two widely-used libraries in JS for rendering Markdown to HTML. Both are buggy, and neither of them supports inline HTML. Fixing one of them to handle safe HTML tags is a must. Benefit: every Markdown-using JS site in the world would be able to handle safe HTML tags. I’d become famous, and in any future job interview, I have a good chance of telling them their site is already running code I wrote.

AOWTBITF: 32 hours. SNSTWBU: write a simple test case and make it fail, 2 hours.

Update yamemex

It needs to be fixed to work with current versions of its dependencies, it needs to publish and sync, and it needs a Firefox version. Benefit: my bookmarks from the last several years will be shared, people will be able to see what I’m doing, and I’ll have all the bookmarks; and maybe other people will start using it too.

AOWTBITF: 32 hours. SNSTWBU: update dependencies, 8 hours.

Topics