Ryan Barrett's blog

ideas

youtube-dl as web service. Give it a
YouTube video URL (or any streaming video), and it uses youtube-dl to download
the video, store it, and return a URL. Bonus points: connect it to
Huffduffer to serve YouTube videos, and ideally full
channels and playlists, as feeds that you can subscribe to in podcast apps.
Background: similar project,
post,
discussion.

Port Tic Tac Toe to the XBox 360, using XNA Studio Express,
and distribute it on XBox Live Community Games.

Build network bridges between the DS and PSP, and to the consoles consoles,
ie DS to 360 and PS3 and PSP to 360 and Wii, to allow cross-platform multiplayer
games. Proprietarycommerciallibraries
for this exist, but handheld support is limited.
GameSpy‘s
Game Open looks promising, though.

wash, the Web (Again) Shell: a command line for the web. Example use cases
include checking your bank account balance, adding a movie to your
Netflix queue, and listening to your
Vonage voicemail, all from the command line. (From
TV Raman.)

Phone transcripts! Record all of your phone conversations, then transcribe
them with speech recognition. Bonus points: index the transcripts and allow
keyword search over them. Search results would link to both the transcript and
the recording. Starting with VoIP would skip the telecom adoption hurdle, and
the privacy issues aren’t insurmountable. Unfortunately,
speaker-independent speech rec just isn’t good enough yet.
Sigh.

Work on Beagle (formerly
Dashboard), which is wicked cool, or
Tenor, which may someday be even cooler.

Write an overlay network that does multicast cleanly and efficiently.
Similar to
IP multicast,
but above the transport layer. Among other things, this would require…

…a good API for Vivaldi, or
another network distance algorithm. Write a portable implementation and package
it as an easy-to-use library for app developers. P2P overlay networks might be a
good initial target audience.

Write a pine patch to undo top-posting. It would parse
an incoming email based on quoting levels, remove duplicate quotes, and display
the unique quotes in the order they were written. Thanks to Matt Ackeret and
this pine-info thread
for the original idea.

Revive jxtapy, which was founded to provide
Python bindings for JXTA, but never got off the ground. Use
Jython to get a running start.

Add support for multiple-month events to
remind, my calendar
of choice. For more info, see this email thread.

Why do modern web sites devote so much space to big, useless images and so
little space to links and fields you actually use? This is awful usability,
mostly due to Fitts’ law
(more). A Firefox
plugin that makes links and input fields “sticky” would go a long way toward
fixing this problem.

Tuplespaces have a powerful and
elegant API, but they’re centralized, so they’re poor distributed data
structures. DHTs are great building
blocks for distributed systems, but their APIs are weak. Most only provide the
functionality of a hashtable – gets and puts of key/value pairs. Write a
tuplespace implementation that uses a DHT as its backing store – the best of
both worlds! Done! Amazon SimpleDB beat me to
it.

Use the newly GSSAPI-capable imaplib to rewrite folderstat so
it can talk to my mail server.

Work on synchronizing mp3 playback. We
took a stab at this a while ago, and it was technically sound, but it
wasn’t very usable. I’m currently working on simplifying it and making it work
with more MP3 players on different platforms. Bonus points: support
Bonjour (aka
ZeroConf). Done…as much as it can be. See
p4sync.

Add internet multiplayer to
Baku Baku, one of the best
games ever written. This might require a complete rewrite…maybe with
PyGame?

It’s widely acknowledged that bandwidth is increasing faster than latency.
David Patterson at Berkeley has a
writeup(html)
on this – he’s determined that, in general, bandwith increases with the square
of latency! The standard techniques for masking latency are prefetching,
caching, and prediction. Implement these in common applications. More ambitious:
write a general-purpose platform that does caching/prefetching, using plugins
that provide app- or protocol-specific heuristics.

Add an xfn: operator to Google for searching XFN
links, similar to the way the site: operator searches specific sites. Done!
See RubHub and XhtmlFriends.
They’re not Google, but they’re good enough.

Build a “reverse” dashboard. It would take a piece of unstructured
information (URL, email address, aim screen name, ICQ UIN, code snippet) and “do
the right thing” with it (open a browser, compose an email, send an IM, compile,
etc.). Done! The Google Toolbar does this. Most
snippets of interest come from email or web pages, and since most people use
web-based email, it covers the common case.

Self-healing systems have gotten a lot of buzz recently, but fairly little
real progress. Investigate what has been done (e.g.
Solaris’s fault manager
and IBM’s autonomic computing).
Separate the content from the hype, and see if similar improvements could be
made to Linux.

Build a Pidgin (formerly Gaim)
“secretary.” If you go idle, but you didn’t leave an away message, it guesses an
appropriate one based on your previous away messages at that time of day, day of
the week, etc.

Pidgin (formerly Gaim) plugins
can provide their own preferences panes, but only if they’re written in C. Hack
on Pidgin to allow this for Perl plugins too. See
this email thread.

Do stateful packet inspection, at the host level, to monitor the services
that are running. Build in a little domain-specific knowledge, and lots of
heuristics, to monitor the health of those services. Also record statistics over
time so usage patterns are more visible.

Write a socket layer that resumes TCP connections if the network layer
disappears temporarily, or if your IP changes. The killer app for this would be,
if you hop from one WAP to another, your SSH sessions, IMAP mailboxes, IM
conversations, etc. would stay open. I think either IEEE or
IETF is already looking into this, but I can’t find the
working group.

Work on GNUnet, a strikingly practical,
general-purpose overlay network with some really smart people behind it. (It’s
discussed relatively often on
p2p-hackers.)