ClickAider
You are currently browsing the Bogle’s Blog weblog archives.

A failure of vision

In today’s world of infinite media choices, how many magazines do you suppose exist in large print editions? Surely some company has thought to fill any gap that might exist in the market?

There less than 6 general interest magazines in large print editions, starting with the excellent New York Times Weekly, followed by the some less than inspiring Readers Digest, and going downhill rapidly from there.

Well, yes, Philbo, but what’s your point here? My interest in the matter is both personal and societal. My grandmother has macular degeneration, which leads to progressive worsening of sharp vision but not total blindness. So do 10 million other Americans. (I’d like to give worldwide figures, but illness statistics tend to take a nationalistic bent and the worldwide figures are hard to come by.) Given genetic predispositions, I’ve been warned to take (most likely ineffectual) precautions myself.

That’s the personal angle. This brings us to the bigger question. Why is a marketplace of so many millions so poorly served? And what can we– the technologically advantaged– due to solve problems like these?

I think solutions are easily at hand, but it will require either unusual foresight on the part of a company or the guerilla philanthropy of geeks who are willing to stretch beyond their usual target audiences.

Maybe– just maybe– there just aren’t enough older folks with failing vision to justify printed editions catering to their interests. Odd but I don’t know enough about magazine publishing to say otherwise. It does say something sad about our society and free market that such total neglect comes to those who don’t constitute a critical mass of people or money.

Even supposing that dead trees are out the question, the large print question has technological solutions within easy graps today. Hundreds of high quality, ad supported periodicals make their content available for free on the web. In principle, cheap printers enable this content to be printed on demand in any desired font size.

But people like my grandmother can’t take advantage of web content– Computers are just too demanding and too unfamiliar for her.

But what is a fax machine if not a cheap and easy to use push channel for printed content? (You can get a plain paper fax machine for well under $100, cheaper than just about any computer.)

I would happily pay subscription fees to a media company that would fax her weekly or monthly periodicals in large print editions. A large print fax edition of a magazine could be distributed extremely cheaply and should be a winning business proposition.

But if companies aren’t smart enough to do this, what then? The obvious thing is to create a web service that does the formatting and pushing for them. *Slurp the openly available content from the web, reformat it in large print, and fax it away using one of the many internet to fax gateways.*

Relatives could quickly set up the subscriptions for their older relatives. It could be done using either desktop software (which would be virtually impossible to block) or a larger scale web service, which would probably require partnershps with the content providers.

Maybe there’s not a huge business to be had here, but the benefit to older people, the vision impaired, and their families would be immense.

If companies won’t take up the opportunity, it’s up for the open source and software philanthropist movements to shoulder the burden.

It’s an interesting challenge to create software whose ultimate audience consists of people who don’t use computers.

It’s one that I intend to pursue in my ever ample spare time, and I’m interested in joining forcing with anyone else who finds the cause worthwhile.

Berry 411 maps and driving directions improvements

Berry 411 driving directions and maps have been improved. Both are now better formatted and use Google Local rather than Mapquest. In addition, the details page in yellow pages now lets you learn more about the business using web links provided by Google Local.


JavaScript Shell

JavaScript Shell is an open source interactive interpreter for Javascript. It has some nice features you might not expect like property name autocompletion.

There’s nothing to install, you can use it from your browser, and it works in both Firefox and IE.

In particular, see the Firefox bookmarklets. One allows you to open an interactive shell on any web page. Others allow you edit the styles of the document and see the changes in real time, or lets you see the script generated source of the document as HTML; good for understanding dynamically generated pages.

AddToPath utility for the Windows Command Shell

It’s a big hassle to add a directory to the Windows system path using the control panel.

I finally got tired of this and wrote Addtopath, which allows you to easily add the current directory (or any other directory) to the system path from the command line.

More…

A better client and server platform for email based applications

I had an interesting conversation with Adam Doppelt about rich email based applications.

Why hasn’t anyone created a platform for rich email based applications that is as open, easy to use, and powerful as the web browser/web server combination? To do this right would involve greater simplicity on the server than any solution I am aware of, and greater richness and hookability in the client than currently exists.

By email based application, I mean an application which can be accessed by sending and replying to emails without clicking on a link to launch a separate web browser session. Email has some unique qualities that it the perfect transport for certain types of applications– for example, an email can spread virally, and the inbox metaphor allows the user to easily categorize and retrieve past interactions.

It’s harder and more constraining than it needs to be to build email based applications. I can write a script using CGI or another open standard that will do something in any web server anywhere, but there is no standard for email applications that is as simple or as ubiquitious. On the client, there is almost no control or hooks over what happens on the client, so it’s difficult to create applications that are easy to use or reliable.

There are interesting innovations that can happen on both the client and the server make this happen.

Consider evite as a very simple example. I shouldn’t have to leave my email client just to read and reply to the invitation. Building the server side of such an email application should be no more complicated than building a web page. The evite application, if trusted by the user, should be able to hook events like replying to or forwarding an evite and invoke appropriate applicaiton specific logic.

A key part of enabling email based application is a trust and security model. On the client, there should be a model for trusted applications that allows users to:

  • authenticate the identity of the sending application
  • allow the user to decide whether they trust a particular application to invoke scripts, load images ,etc.

A trusted application should be able to:

  • run client side scripts to support rich forms with behavior.
  • invoke custom client side logic when the user replies to or forwards a message. For example, it might prepopulate the reply to text or notify the server when a message is forwarded.

For example, when the user replies to a message, the application might prepopulate the reply with a form and restrict user edits to this form.

On the server side, defining a new email handler should be as easy dropping a file into a directory. The system should handle extracting the appropriate parameters from the request and dispatching it to the appropriate handler. I see this as exactly analogous to what happens with CGI scripts or Apache modules.

I realize that there a number of different Unix based email systems which support extensive customizability via scripts, but (to my knowledge) they are focused more on an administration and end user customization than rich applications, they tend to be tightly coupled a particular email server, and they are often difficult to use.

I believe there is room for an open solution that focuses on applications, simplicity, and ubiquitiousness across a range of platforms and email servers. The client side can be built as an extension to Thunderbird; the server side can be implemented independently of any particular email server using POP or IMAP and could probably be defined as a small set of additions to the CGI standard.

More Greasemonkey plugins

Here are two more Greasemonkey plugins I highly recommend:

Customize Google
: This plugin makes Google work better and adds links to other search engines.

Add Netflix links to IMDB: Links IMDB to Netflix

GreaseMonkey

Greasemonkey is a nifty Firefox plugin that can modify the behavior and appearance of web pages via easy to author plugins.

For example, Jon Udell has written LibraryLookup, a plugin that links Amazon to your library. As you browse Amazon, it adds links which tell you whether the book you are currently looking at are available at the library. If you add a book to your Amazon wish list, the plugin will automatically notify you when the book becomes availabel at the library.

As Jon notes:

Greasemonkey, though, does seem to open up uncharted territory. As I’ve mentioned before, a user of Gmail was able to add persistent search folders to the application. When search folders were added to Outlook, in version 11, everyone made a big deal about it, and rightly so. It’s a major feature. Now I use search folders in Gmail every day, the feature is indistinguishable from the core application, and it was created by a user!

This kind of customization makes the already attractive notion of software as a service even more compelling. Imagine that your company subscribes to a hosted web app, and it’s mostly great, but there are a couple of features you wish you could offer your people, and the vendor isn’t coughing them up in a timely way. In an AJAX world you might have a pretty good shot at doing it yourself.

Greasemonkey provides the ability for developers to shape the web to their will on behalf of users. You could write a search plugin that aggregates the results from a number of different search engines into a page of your own design, for example.

Unlike the standard XmlHttpRequest available in web pages, a Greasemonkey can make cross-domain HTTP requests.

Because the aggregation is done client side, and because the requests cannot be distinguished from regular browser requests, you don’t need a business agreement with the data providers to make this happen.

With great power comes great responsibility. It’s easy to create plugins that abuse the user or the site providers or both. There’s really not much of a security model to protect the user from malicious plugins; it’s only a matter time before we see a greasemonkey trojan horse. (This reminds me a bit of the Outlook scripting before Microsoft’s long series of security patches.)

Simon Willison has an interesting piece on Greasemonkey etiquette.

The amount of innovation going on in with Firefox is impressive. I was one of the original developers on Internet Explorer, so I have a regard for it that others might not, but I have to admit that Firefox represents a strong challenger.

XFN Graph

XFN Graph is an open source program by Geoff Holden for graph an XFN network out to four degrees. Java source is included.

Below is an example of my immediate network, click on it to expand the thumbnail.

Naturally there are missing links where people linked to colleagues but didn’t use XFN rel attributes.

I would like to experiment with modifying the program to use XFN where available, but to fall back on heuristics to identify other likely relationships links when XFN is not available. (For example, I might look for links containing first and last names based on a dictionary.)

Berry 411 searches for weather and directions to an address

Here are two new search features in Berry 411 based on direct end user request (the end user in this case being me.)
1. Get driving directions to a specific address by searching for the address in yellow pages (e.g. “206 1st Ave S, Seattle WA”).
2. Get local weather by searching Google for “weather”.

The following features have been around for a while but most people don’t know them.
3. Override the default location by adding a new location to the query string (e.g. “Pizza, New York”)
4. Search wikipedia by using the link at the top of Google results or by searching for “wk phrase”.

Interesting new Google Desktop Search Plug-ins

SearchEngineWatch notes a batch of new plugins for Google Desktop search.

It’s impressive that Google is turning desktop search into a real platform; its competitors are lagging in this respect.

Here are a few of the current batch of plugins that caught my eye:

Foldershare: Multiple computer search: Search all of your computers running GDS in parallel from any web browser.

Google Desktop Extreme: Google Desktop Extreme provides an interface to the Google Desktop Search Engine, which adds unique functionality to make your searches faster and more productive. Features include real-time feedback (searches as you type), auto-complete, sorting, grouping, and filtering of search results.

Java source plugin: This plugin allows Google Desktop Search to index JAVA and JAV files. Includes syntax coloring in the cache.

Mp3tag Audio Indexer: Mp3tag Audio Indexer is a freeware plugin for Google Desktop Search which indexes metadata of audio files. It supports the following audio formats: AAC, APE, APL, FLAC, MP4, M4A, M4B, MP+, MPC, OFR, OFS, OGG, SPX, TTA and WV.