|
30 April 200430 April 2004
Brady Anderson's mDnsResponder
was released this week. This is a full open source rendezvous
implementation in C#.
13 April 200413 April 2004
I'm in Toronto for Real World
Linux. And this has to be the weirdest hotel room I've ever
stayed in.
12 April 200412 April 2004
The other day Miguel and I met David Vaskevitch, Microsoft's CTO.

We've got him surrounded!
7 April 20047 April 2004
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.
4 April 20044 April 2004

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.
We did that.
|
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:
- Split out the dashboard indexer into its own project
- Take the raw indexing and file format code from a project like nLucene and plug
that into the dashboard. This gives you a really great raw indexing
engine, incremental reindexing, and an efficient data store.
- Build a daemon around the indexer that regularly scans your home
directory and installed applications, and updates its indexes
- Add some sort of IPC interface to the indexer so that applications
can ask it to index their objects, even if they're not indexable files
on the filesystem. This would be for things like mails, web pages you
visit, etc.
Bonus work:
- Redo the indexer's metadata system to allow storing arbitrary
metadata about indexed objects. Make it so that it can pull metadata
from ext3 extended attributes.
- Hook this all up to iFolder
so that any objects that get dumped into an iFolder trigger the
indexe.
- Check out SAMBA and make it so that it maps ext3 extended
attributes to SMB file properties, so that these things get
transferred to Windows systems.
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:
- A blogging tool that publishes to the web by triggering a sync.
- An iFolder backend for F-Spot could share and publish image galleries. For inspiration, see ShareALot.
- If Evolution could store mail, addressbooks and calendars in
iFolders, then you could share these things with other people
peer-to-peer.
Graphical Browser History
Peter Teichman recently showed me
Trailblazer.
I think this is brilliant, and would love to see it show up in Firefox.
. . .
|
2001
|
2002
|
2003
|
2004
|
2005
|
2006
|
top
contact
This is a personal web page. Things said here do not represent the position of my employer.
|