Brady Anderson’s mDnsResponder was released this week. This is a full open source rendezvous implementation in C#.
I’m in Toronto for Real World Linux. And this has to be the weirdest hotel room I’ve ever stayed in.
The other day Miguel and I met David Vaskevitch, Microsoft’s CTO.
We’ve got him surrounded!
We need a feature in Evolution that warns you if you try to send a message whose body implies there is an attachment, but with nothing attached.

In the software world, some things I’m particularly interested in these days, some real and some hopeful:
Project Utopia
Robert Love and Joe Shaw’s umbrella project to improve hardware interaction in Linux desktops is pretty promising. Project Utopia spans a number of components, including the kernel, udev, hotplug, d-bus, HAL, and the graphical/user interaction components in the desktop. The goals of Project Utopia go way beyond what people are doing with hotplug today; the basic premise is to tie the whole interaction together, from the silicon to the screen.
Robert and Joe are building Project Utopia with use cases as opposed to a functional spec. This is an interesting way of designing software that is a lot more natural and gives you a lot more freedom than drawing a rigid functional specification. So Project Utopia’s spec consists of statements like:
When the user plugs in a printer, autoconfigure it and ask him if he wants to make it his default printer.When an ethernet cable is plugged in, try to obtain an IP address on the ethernet interface automatically, and make it the default route.
Then it’s up to the hackers to make sure that whatever they build, the user’s experience matches the target use cases. This is especially good in a situation where the architecture is complex enough that it’s easy to lose sight of what the user wants. I hope Robert and Joe will post their full set of use cases on a Project Utopia web page of some sort.
Desktop Search
If you’ve ever used a PalmPilot — even one running a very early version of PalmOS — you will remember that it had a pretty nice search function that aggregated search results from your addressbook, calendar, mail, notes, files and applications.
So you’d search for “Miguel de Icaza” and find Miguel’s addressbook card, the last couple of mails he sent you, and your appointment with him tomorrow. These are all displayed in a single view, and you only have to perform the search one time to query all of your interesting data.
From PalmPilot: The Ultimate Guide by David Pogue
This feature is simple and undeniably useful, and yet we still don’t have it on the Linux desktop. Unbelievably, Windows does not yet have a unified search mechanism either. People who have used Sherlock on a Macintosh miss that tool when they move to Windows or Linux.
Both GNOME and KDE have simple ‘find files’ search dialogs, but we don’t yet have an integrated search tool. A quick tool could be easily assembled using the Evolution Data Server as a backend for PIM information, and using the locate backend for your files.
A great way to build this would be to build off the backends and renderers in the dashboard. You might be able to reuse some of the dashboard backends to build such a tool, and then you’d be able to aggregate results from places like Google and Amazon in a single view. All you’d need to do is to build a slightly different UI; the facilities are even already in the dashboard engine for doing generic keyword-based searches. One thing to consider is whether or not you’d want to disable cluechaining.
But this tool is not the same as the dashboard, whose job is to automatically show you things that are relevant to what you’re doing. Dashboard requires instrumenting all your existing applications to provide information about what the user is doing; a simple desktop search tool does not.
I think this application would be a great candidate for someone who wanted to try building something in Mono for the first time. Absent an indexer, you could just search file names and wait for someone else to plug in the indexing service and an indexer backend.
Speaking of which…
Desktop Indexer
We desperately need a standard indexing service on the desktop that allows you to search the contents of your files. A good indexing service could also be used by applications to index non-file objects, like IM logs and web pages that you bookmark or visit. Then, the user would be able to search his entire personal information space with a single tool.
Most existing open source indexer projects — like Lucene and htdig and all the others — are designed to index HTML and text files on web servers so that webmasters can put a Search form on their sites. The desktop indexing services that exist — Medusa, the Dashboard indexer, libremem, and others — are all incomplete, hard to extend, or both.
The indexer is one of those projects that could easily become a great example of open source at its best, because of the parallelizability of filter, stemmer and backend development. If I were to build an indexer right now here’s what I would do:
Bonus work:
Social Networking
The other day Miguel and I and Erik Dasque had dinner with Tim O’Reilly. Tim was talking about friendster and orkut, and social networking. He riffed at length about the idea of mining your mailbox, addressbook and buddy list to create real social network models, instead of these other, separate networks that we have to create manually.
This makes a lot of sense to me. If AOL wanted, they could trivially turn buddy lists into an instant social network. It could also be done in your email: Microsoft Research’s Social Computing Group has an interesting project that scans your mailbox and produces a flash visualization of the people you email with.
I thought maybe Yahoo or Hotmail or GMail could do this too. And of course, we could put social networking into our own groupware tools.
Document Comparison
Not many people know this, but OpenOffice today can compare one document to another. Sort of like wdiff for the modern era. Go to Edit -> Compare Document....
Sidebar
The Scoop mockups caused a minor stir a couple months ago. I think the right way to implement this is to add a new sidebar mode to the panel. That way you can reuse all the existing applet embedding interfaces
iFolder
iFolder’s synchronization functionality makes for some interesting ideas:
Graphical Browser History
Peter Teichman recently showed me Trailblazer. I think this is brilliant, and would love to see it show up in Firefox.