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

Reply via email to