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
<http://lists.canonical.org/pipermail/kragen-tol/2005-October/000796.html>,
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, which I implemented
<http://lists.canonical.org/pipermail/kragen-hacks/2005-October/000418.html>.
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
(<http://lists.canonical.org/pipermail/kragen-hacks/2006-August/000430.html>
and then
<http://lists.canonical.org/pipermail/kragen-hacks/2006-August/000432.html>)
to the "signed minimal perfect hash" full-text indices (from MG4J),
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"
<http://lists.canonical.org/pipermail/kragen-tol/2006-November/000841.html>
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
<http://lists.canonical.org/pipermail/kragen-tol/2012-August/000966.html>
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. <http://canonical.org/~kragen/binary-relations>
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 "femto-ML" minimalist programming
language
<http://lists.canonical.org/pipermail/kragen-tol/2012-June/000958.html>.
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.
--
To unsubscribe: http://lists.canonical.org/mailman/listinfo/kragen-tol