Re: some 50 possible next topics to focus on for personal projects

Dave Long <[email protected]> Thu, 6 Jun 2013 12:23:18 +0200
Newsgroups gmane.culture.people.kragen.discuss
Message-ID <[email protected]>
gut reactions:

> * 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>.

As you mention (and as Bill Wadge's recent blog entries on Lucid  =

confirm) the biggest problem here seems to be cache eviction.
I've had some success in simplifying systems (which also seems to  =

have been the EE's approach to making systems faster than we software  =

people make them slower) by attempting to maintain clear phase  =

separations between stateful and stateless parts, minimizing the  =

former.  BCPL, the predecessor to C, had a VALOF/RESULTIS construct  =

that encapsulated stateful computation; this was thrown out in the  =

ruthless simplification towards C, but arguably AVRs are much closer  =

to what Thompson and Ritchie had to squeeze into than most modern  =

embedded environments, let alone phones.
Various database approaches may also be informative, as their basic  =

problem is computing with a cache that may be suddenly emptied at  =

inopportune moments.

> * free software is like owning your own home

=93Making the landlord and the tenant the same person has certain  =

advantages, as that the tenant pays no rent, while the landlord does  =

a little work.=94 - GK Chesterton

> * the user interface as a real-time program

Back in the day, we had "terminals" that ran independently of the  =

host; the difficulty here would seem to be providing a UI that is  =

*usefully* responsive when the underlying platform has gone into the  =

weeds.

> * a language for real-time programming

It seems reasonable that one can mechanically compile down an  =

algorithm written at a high level into a "machine" that does a fixed  =

amount of work/uses a fixed amount of space for each turn of the  =

crank.  Indeed, we do it all the time; the difficulty seems to be in  =

finding the boundary: targeting either the highest level machine that  =

sympathizes with the hardware, or the lowest level machine that  =

retains the advantages of software.  Matt Might looks like he's doing  =

work in this area.

> * natural language is a digital phenomenon

cf Hofstadter's "aperiodic crystal", which he seems to have nabbed  =

from Schr=F6dinger.
There's an abundance of work in the literature, mostly dealing with  =

the differences in the A2D between native- and acquired-language  =

speakers.

> * the colectivos app

One area where Switzerland's lower reliance on competition as a  =

unique regulatory force shines is the transit network.  When I toured  =

the supercomputer center in the italian part, they were computing a  =

schedule for the next year, subject to the constraints that it should  =

maximize smooth interconnection between the different companies, and  =

minimize changes that might disrupt the passengers' schedules.  As a  =

convenient side effect, I can send an SMS with two swiss addresses,  =

and get the next few connections between them.  In well-served areas,  =

this changes transit from something which needs to be planned to  =

something you can check shortly before leaving.

> * "pick activism tactics as if they might work"

Heh.  I'd say the most common failure for people attempting to deal  =

with horses is that they try to relate with them as if they were  =

common members of a high school clique, and not as members of not  =

only different cultures, but different species. Could it be that poor  =

activism is driven by people attempting to apply tactics that (seem  =

to) work in their personal lives, but don't scale (or even anti- =

scale) to broader contexts?

> * 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.

Certainly a low layer; arguably there could be layers even lower.
This is definitely on the lines of what I have been playing around  =

with recently; there's a nice duality between the world of  =

expressions (where we synthesize an unnamed value from a bunch of  =

named ones) and the world of patterns (where we analyze an unnamed  =

value into a bunch of named ones)
Even in the very early days of languages (say the METAII period) you  =

see that people were groping towards this duality: the widespread  =

introduction of short-circuit logical operators in boolean contexts  =

are an example of feeling the need without seeing the reason.  I  =

believe Wirth's books (at least with the benefit of hindsight) have  =

distinct chapters on compiling expressions versus patterns.
I'm not sure, and it's a little difficult to ask now, but one  =

possible rationale for Dijkstra's Guarded Commands is that they are  =

not only amenable to proof, but the nondeterminism means they're also  =

amenable to instantiation in either hardware or software. (cf  =

"language for real-time programming")
If one is interested in how early these ideas entered (and were  =

subsequently ignored in) the literature, cf Burstall, "Proving  =

properties of programs by structural induction", Computer Journal Vol. =

12 #1 (Feb. 1969) pp. 41-48

> * backtracking HTML templating

I've since had reason to fix the kludge in my reply to one of your  =

earlier HTML templating mails, albeit in a different context.  Let me  =

know if it'd be useful to dig up (and apply, as I don't have a  =

"parser generator with code reuse" :-) the fix.

> * radix-sorting rational numbers
>
>     Summary: write up my algorithm for representing rational numbers
>     so they can be radix-sorted

If this algorithm allowed one to radix-sort general quotient types  =

(unevaluated terms) with less computation than first reducing to  =

canonical terms, then sorting, it might be more valuable than you  =

think.  But that seems like a big "if".

HTH
-Dave

-- =

To unsubscribe: http://lists.canonical.org/mailman/listinfo/kragen-discuss