These are things I'd like to see done because I think they are important, useful or worthwhile. If you do them for me, I'll probably pay you (if not in cash then certainly in eternal gratitude) but you shouldn't do them to get paid.
The Dataplesh
Combining BitTorrent's cooperative downloads with Khashmir's decentralized lookup, the Dataplesh will make file sharing fast, simple and attack-resistant. A nice GUI will make it popular with the average user, while full source code availability and no business plan will limit hypocrisy. The client will take a politcal stance, emphasizing that sharing files is morally acceptable and highlighting attempts to stop the practice.
Subtasks
- Get BitTorrent to support multiple files.
- Integrate a BT tracker into the khashmir peer.
- Write a slick GUI.
Memesh
The Memesh is a simple UI for dealing with information clutter. It combines the flexibility of RDF, the convenience of incremental search and the beautiful look of Cocoa to ease the ever-growing problem of data management. Instead of having to classify everything in rigid hierarchies, you can instead stick to simple facts (this is about Bill) and use intersections to narrow down on what you're looking for.
Chandler looks like it will do everything this was supposed to do and more, so I'm working on it instead.
[Untitled] (Webesh?)
Every new dynamic website badly rebuilds the same stuff from the old ones (user registration, forms, database display). We'll collect the best practices for all of these in a single place. Furthermore, we'll have a Python library that will do the grunt-work of every database-backed website, but leave you free to tweak the resulting Python. The data is stored as RDF, making data model changes easy and support for Semantic Web Services trivial. We'll also use baking to keep things fast and long-lasting.
Subtasks
- Put together a site of Web UI best practices. (A first version is up.)
- Write PyWebMake.
Hyperliterate Programming
Good code is concise. Hyperliterate programming takes advantage of "the infinite screen" enabled by hypertext to allow one to drill down through a program by following links. At the same time, we'll build on literate programming by accompanying it with an explanation hypertext, that similarly allows a user-controllable level of detail. Start off with the high-level overview and then click on something that interests you to get the details.
The idea is that when your program should compile to a hypertext: the index is an outline of the program and you can drill down to learn the details it's born of my frustration at having great difficulty reading code: you can never see the bigger picture, and you're always jumping between definitions.
It's based on Knuth's Literate Programming, which said that software and documentation should be one, and should be written like a journal article. He had one program (tangle) that reorganized your article into a running program and another (weave) that formatted it as an article and added an index.
In the hypercode world, we'll want to be able to grab code from all sorts of places around the web (eikeon's been doing great work in this area) and also turn the code into a nice series of web pages.
Subtasks
- Write up the idea.
- Implement (in Python).
ucspi-http
The strong parallelism between the Unix pipe and HTTP is clear, but has been difficult to take advantage of. ucspi-http (the Unix Client-Server Protocol Interface to HTTP) fixes this by making powerful HTTP tools easily available from the command line. Now you can build web services in any language using STDIN and STDOUT and then pipe them together like any other program. And it all communicates using plain text, not XML.
psh
The UNIX shell is very powerful, but I'm tired of learning Yet-Another-Scripting-Language (bash). So I want to make shell scripting really easy from within Python, perhaps even giving it a nice shell-style calling system, ala Tcl.
I also want to make regexps really easy to use, and eventually port Perl6 regexps somehow... I want it all. Maybe I should just learn Perl (bleech!).
Subtasks
- Decent unix calling mechanism for Python.
- Fix read/write operations.
- Handle shell scripts decently.
- Decent interactive capabilities.
- Interactive shell.
Web Archiving Network
A decentralized Web archiving and distribution network, each user runs a small peer that listens in on Web traffic. It uses the downloaded pages when possible and feeds them into a peer-to-peer network. Then, other users can request the page (for example, if it's 404, overloaded, taken down or changed) and get copies from the cache.
Subtasks
- Write client proxy/grabber.
- Write system to output in w.a.o style.
- Write w.a.o reader.
- Hook up to DHT.
Assorted
RDF to plain text converter. Integrated multi-channel IRC logging and blogging (datum). TRAMP. RDF-based calendar overlap search engine (whowhere).
Writing
LogicError. RDF: Five Years of Failure. Warchalking history FAQ. urn:pgp. Superworms.
Note: I haven't done any of this yet, but I'm planning to.