Sunday, May 24, 2009

Photo Tips: Managing/organizing your images

After you get your digital camera, you will quickly find a growing proliferation of image file bits scattered and, while not lost, not findable. Hopefully this can help you get your images under control before they get too far out of control. I have the quick list, right here, and the longer explanation below.
  1. Software: Get some software to help you out. My Pick is Google’s Picasa desktop software; it’s free, it works on Mac, Windows, and Linux(!), and it has strong ties to online PicasaWeb albums (as well as uploading to other sites). Oh, and did I say it’s free?
  2. Folder organization: Prefix the folder names where you put your images by its date in year, month, and optionally date order (e.g., “2009-05” or “2009-05-24” or “200905”). This allows you to easily sort your folders chronologically by name.
  3. Image filenames: Use generic filenames for the images, usually the sequential number assigned by the camera.
  4. Tag your images: Most software allows you to “tag” your images with keywords that make searching for images quicker and easier, later. Be as liberal and prolific as you can, in adding tags so that you can search for the images, later.

On the middle two points, a new digital photographer will have a strong temptation to name folders and images by subject. The problem is that the subject might be subjective; so, not only does it take longer to “handle” your pictures, it could make it more difficult to find them, later, when you are in a different frame of mind. As you accumulate more and more images, it will be difficult to locate images by name only. It may help to suffix the name of folder or image with a descriptive name so that you can recognize it visually in your desktop’s file browser. Using tags can also help you find your images.

Software

My HP machine came with some image management software, but since you will want to have access to your images for a longer period of time than you are likely to have your computer, you will want to pick a more popular solution. I already mentioned that I strongly recommend using Picasa. The following mentions some other photo management solutions that you may have heard of.

There are dozens, if not hundreds, of entry level programs. Picasa is targeted at the lay-person and is suited, not only to beginners, but reasonably advanced users. If you have confidence in Google’s commitment to maintain its desktop software, then this should be sufficient. I will give tips on using Picasa in a future blog entry.

Apple’s iPhoto is targeted at the same user audience as Picasa and shares most of the same features. It does have a slightly better user interface that makes more efficient use of the screen. However, it has a few problems:

  • It runs on Macs-only.
  • It sucks in and hides the original images so they are not readily accessible to other applications or file browsing.
  • It is difficult (impossible?) to move a subset your growing set of images to another drive while still being accessible by the program.

Adobe includes their Bridge product along with their expensive professional image creation and editing tools such as PhotoShop and Illustrator. Bridge is a great tool for viewing and sorting through large batches of photos, although it does not remember the images, so it can be slow to bring up its initial view of a set of images. And, unfortunately, Adobe does not sell Bridge by itself.

Expert Software

Where there are numerable solutions for most people, there are only a couple of commonly used solutions for expert users, the Adobe solutions and the Apple solutions. I won’t dwell on these programs since they are for far more serious photographers.

Besides Apple’s iPhoto software, Apple has Aperture 2 for advanced and professional photographers. It provides file management, “workflow,” and advanced photo editing functions.

Adobe, produces several expert/professional level products that include Bridge which allows very powerful image management, tagging, and searching features. Adobe also sells Lightroom for advanced file management, workflow, and common editing functions, targeted at professional photographers. Adobe products are all available for both Mac and Windows.

Again, I will cover Picasa usage tips in more detail in a later post.

Update, May 29 — Deleted photo editing info and added comments about Adobe Bridge.

[Link to this post]

Tuesday, May 12, 2009

Tech Project: Create a Bootable Software Utility CD

Floppies are no longer ubiquitous and a floppy is not big enough to hold a useful amount of content anyway, so now I need to create an alternative to floppies that contains my essential software in a single medium.

The goal is to create a software utility configuration with the following properties:
  • Bootable CD (that would also work as a bootable USB, thumb, or flash drive)
  • Contains primary disk management utilities:
  • Contains installable “essential utilities”
  • If installed on a writable medium (especially if not on CD), then allow “portable app” support when possible.
Most of the published information on the internet is quite old. While still factually correct, they use old or obsolete information in their examples. This article provides a more contemporary look at the same issues.

This is a work in progress, come back to see my progress.

Preparing a Bootable CD: Concepts

Enabling a bootable CD is a bit of a hack; there is no direct support for booting from optical media. Instead the optical disk emulates more traditional media, floppy or hard disks.

Originally, creating a bootable CD meant creating a bootable master hard drive with the exact content and layout which is imaged to the CD. Today, it is difficult to find a hard drive small enough for this purpose. Alternatively, a smaller image can be created from a diskette drive. This startup image can load CD-ROM that allow the subsequent operation to access the remaining content of the disk.

The directly bootable portion (the disk or floppy image) is not visible when not booted from the CD drive, so it is advisable to keep all the generally viewable files separate from the boot image.
  1. Prepare bootable image that boots in real-mode and loads CD-ROM drivers that allows access to the bulk of the disk's content. This startup also may allow the user to select what functionality they want to run in bootable operation.
  2. Layout the remaining disk content that will be accessible once the CD-ROM drivers have loaded.
  3. Create ISO image.
  4. Burn to disk.

Build Tools

Tools for creating the bootable CD.
  • Prepackaged command-line tools and diskette images: clean20.zip
  • Make ISO filesystem, mkisofs -- opensource Unix, Linux, and DOS command-line utility.
  • FreeDos -- opensource DOS implementation.

Some details to be integrated...


DescriptionWhat systems support it?
Single boot image configurationAll
Multiple boot image configurationSome
Boot record volume descriptorAll
Validation entryAll
Boot Indicator 88 "Bootable"All
Boot Indicator 00 "Not bootable"None
Boot media type 0 "No emulation"All *1
Boot media type 1,2,3 "Floppy emulation"All
Boot media type 4 "Harddisk emulation"All
Sector countMany *2
Load RBAAll
Header indicatorAll
Platform IDMany *3
ID stringSome *4
Section entry extensionsI've never used it
Int 13 function 4A - Initiate disk emulationNone *5
Int 13 function 4B - Terminate disk emulationAll
Int 13 function 4C - Initiate disk emulation and bootNone *5
Int 13 function 4D - Return boot catalogSome

*1Adaptec aha2940 supports no emulation mode from firmware revision 1.25
*2Some systems do not support reading more than 1 sector
*3Some systems do not check the platform ID
*4I've only seen adaptec SCSI adapters support this
*5This one hurts, I wanted to use this function badly

Future projects

  • Support for DVD.
  • Support for solid state storage (USB/thumb or flash memory).
  • Support for boot on a Mac.
  • Support for multi-boot. Rather than driving the selection of the configuration via a Dos menu, multiple boot configurations can be stored on disk and selected directly.

Bibliograpy

  1. Microsoft. “KB167685: How to Create an El Torito Bootable CD-ROM.” [Online] Available http://support.microsoft.com/kb/167685, April 12, 2004. Details one detailed approach to creating a bootable CD/DVD.
  2. “Bart’s way to create bootable CD-Roms (for Windows/Dos).” [Online] Available http://www.nu2.nu/bootcd/, June 6, 2005.
  3. IBM and Phoenix. “‘El Torito’ Bootable CD-ROM Format Specification.” [Online] Available http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf, January 25, 1995.
  4. Wikipedia. “ISO 9660.” [Online] Available http://en.wikipedia.org/wiki/ISO_9660, April 19, 2009

Tuesday, November 11, 2008

Modern Television

There are some amazing things happening in the world of “television.” Traditional television viewership and viewing are changing rapidly and many products are pushing these changes with interesting and powerful new solutions. The tension between the big powers of content production and distribution continue to wage... for now, there are opportunities for new challenges to the old-guard. The following is a brief snapshot of some of the notable activities changing the “television” landscape.

The “big 4” are no longer the de facto standard that they used to be, viewership of individual channels is lower, and the lines between when, where and how people watch TV is blurring rapidly. As with many old-school industries, they have desperately tried cling to their old business models and stifle innovation, only to succumb and participate in the change. The change to digital broadcasts will further degrade the dominance of the big broadcasters as more “free” TV watchers move to cable (or satelite); this will begin to seal the dominance of power wielded by cable companies like Comcast, Time Warner, and AT&T. We can now wait and observe how they fare; so far, this has not put a damper on the quality of the best content available for television.

But the more interesting battleground is in the slow crumbling of the divide between watching TV on a television and watching “television” on a computer driven device. This is the new turf where new combatants can slug it out equally with the big boys as well as other up and comers. There there are a variety of products that are bridging this gap and catering to new ways of watching TV content.

On the hardware side, televisions are becoming more powerful; notably, there are full-blown computers hidden inside many of them and an increasing number of models are including Internet connections and the ability to act as computer displays. There are products that are bringing TV content to the Internet and products that bring Internet content to the TV. Already, “new television” has matured enough that most of these products have recently expanded their features and are beginning to fight it out in these new feature territories.

If you are on the road a lot, then there are a great deal of options available to you that coincides with the growing ubiquity of broadband availability.

NETFLIX

Netflix revolutionized the movie rental space by making it easier and, arguably, more convenient to manage and rent movies while eliminating the hassle of worrying about rental fees through a subscription rental service. In addition to the unrivaled multitude of DVD titles that they have available, they have been slowly building a sub-catalog of content that subscribers can stream and play directly on their computer. Then, several months ago, they worked with Roku to develop a dedicated box that streams their content directly to a TV (without a computer). Within the last couple of months, they have extended this idea to bring Netflix content to LG and Samsung Blueray players, the Xbox360, and TiVo Series 3 and HD models. With many of the best TV serials available on DVD and streaming, some viewers are eschewing real-time broadcasts in favor of Netflix content. Netflix has adapted well to the changing world of video and may prove to be a winner in this war.

TIVO

Speaking of TiVo... a lot of the the current TV revolution can be traced to the advent of the TiVo. This may not have been the first “digital video recorder” (DVR or PVR, “programmable video recorder”), but it is the most usable and it is so well known that it has become a verb. Its user interface was so well designed that it survives essentially unchanged from its introduction.

Starting as a glorified VCR (video tape recorder), they have expanded beyond broadcast recording through partnerships with Internet content providers to build a palette of offerings that can be streamed or saved from the Internet for playback on a TV. They are bringing the immediacy of high quality movie downloads to the living room as well via Amazon's “Video on Demand” (née “Unboxed”) and, soon, Netflix. There is a deliberate goal of bringing the power of Internet connectivity to the traditional television form-factor.

I would like to take a moment to commend TiVo for their commitment to their customers by staving obsolescence of their older products through continuous feature additions through software upgrades. Such a rare demonstration of commitment to their products and customers in this day and age offsets the perceived high price of their service subscription. Sadly, they are not updating Series 2 models with the Netflix feature.

TiVo has now jumped to the other side of the TV-Computer chasm by teaming with Nero (of CD and DVD ripping, burning, and playing fame) to bring TiVo capabilities directly to a Windows-based PC. with the included hardware, all of the features of the TiVo are now directly available on the PC.

SLINGBOX

Another game changer, Sling Media introduced the Slingbox as a way to put traditional television onto the Internet to allow a person to watch their video device from anywhere there is a decent Internet connection on any kind of connected device, be it a computer or a mobile device. This may not be for everyone, but for those that travel a lot and miss their local broadcasts or don’t want to let their TiVo content build up before they get back home this is a beautiful solution.

With the broadening variety of compelling content on the web, Sling Media introduced Sling Catcher to bring that content to the television, overlapping some of TiVo’s more selective approach for bringing The Net to TV.

I should be interesting to exciting is their yet to be released sling.com web site that will allow streaming content from a variety of sources, including your Slingbox direct to a browser.

Summary

There is a lot going on in the world of television—I didn’t even address mobile video solutions or media specific computers. For the TV addict, they will have the flexibility to watch TV from your couch as always, but with a lot more content options. Traditional content providers are making much of their content available on the Web; there are now solutions to allow you to choose whether you want to watch from your computer screen or on your couch... or, indeed, from anywhere in the world.

Note: I own and am a big fan of TiVo, Slingbox, and Netflix. I have no financial interest in them, but I am cheering their success.

Wednesday, August 13, 2008

Is the iPhone a phone, or isn’t it?

The iPhone has its critics. I am probably one of them, but I’m one of the ones that use it as my
regular phone, so how critical am I, really?
  • It cannot send phone or contact information via Bluetooth.
  • It does not show call forwarding status in the statusbar.
  • It cannot add custom sounds to text msg reception.

It is clear that the iPhone is really a portable computer that happens to be able to
make phone calls rather than a phone that can do a bunch of other things. Oh, I wish Palm OS were still evolving.

Friday, November 30, 2007

Standardizing on Gmail IMAP

Web based access to email allows access to email anywhere where you have an Internet connection. Many web-based email services now offer a lot of space to archive your mail. With Google’s addition of IMAP support in their Gmail service, we can now leverage the advantages of web-based and “local” mail handling.

If you access your email on different machines or web sites, trying to keep all your email activities can be quite a chore. Another difficulty is keeping email organization in sync across computers (i.e., not wasting time rereading and resorting email on each different machine). At the same time, it is often preferable to use your favorite email reader to view and/or compose email, particularly if you need to access your mail while offline.

This article interlaces howto steps for using Gmail as your primary email server while maintaining a separate email address and allowing use other email readers along with a bit of history. If you have any comments or experience for other email clients’ access to Gmail, feel free to comment to this entry and I will try to verify and incorporate your experience here.

Old School e-Mail Access — POP3

Most people (whether they know it or not) have been accessing their mail via POP3 (Post Office Protocol). This simple protocol describes how mail is transferred from a mail server to the e-mail client—the e-mail reader. Generally, this assumes that the mail will sit on a mail server until the e-mail moves the mail from that server. Such mail servers are not generally intended to save mail long periods of time. Most e-mail programs, by default, will delete the mail from the mail server. When this happens, the mail cannot be accessed from anywhere else—any other e-mail program or web site—because the mail is no longer on the server to be retrieved.

It is possible to configure most e-mail programs not to delete e-mail from the POP3 server. This allows access to the same e-mail from several readers. But most POP3 servers are not really designed to save e-mail long term—it is not very efficient for them to store such mail, among other things. Also, it leads to a lot of wasted time, having to re-organize e-mail at each location where you access your mail. I won’t go into much detail about this because I want to focus using Gmail’s IMAP.

Any modern operating system comes with its own e-mail program Outlook Express for Windows (before Vista), Windows Mail for Vista, Apple Mail for OS X, and a whole variety of open source options that run on Linux and other operating systems. Many companies have made a living on email programs; Eurdora, Lotus Notes, Outlook, etc. See Wikipedia Comparison of e-mail clients for a longer list of options.

Untethered Freedom—Web Access to Mail

Web access to e-mail has provided a big step in freeing one’s self from the machine where their email program and, more importantly, their email is. There are two approaches to web access:

  1. E-mail viewer
  2. E-mail reader client
  3. Dedicated e-mail systems

An e-mail viewer is a very simple client that simply views whatever e-mails are on the server. It does not store the e-mails anywhere so if another client has deleted the e-mail, the viewer will not be able to see it. Due to this limited functionality, such viewers are rare, but can sometimes be useful http://www.mail2web.com/ is one of these.

There are several e-mail reader sites that act very much like the stand-alone e-mail program that you have on your computer. Such reader sites will download and store e-mail from the mail server into its own, managed area before viewing. Since these readers are web-based, you can access the mail from anywhere you have access to the web. With such web services, you can usually configure them to retrieve mail from your own separate mail server (e.g., sbcglobal.net, your own domain). With such web sites, you can usually get an e-mail address specifically for that site and use it as your primary e-mail address. There are many... one particularly well done example is http://fastmail.fm/ although you need to pay to get enough storage space to be useful, long term. These services usually also have the ability for you to access their messages via another reader program, if you prefer the interface of another program, via POP3 and/or IMAP4.

Then, there are full-fledged e-mail web services such as Hotmail, Yahoo!, or Google Mail (Gmail), as well as many others. Such web services manage all the email themselves and are geared primarily to support their email address as the primary email address. They may not allow access via an external e-mail client (or charge extra to allow that).

Modern Mail Handling with IMAP4 — Internet Message Access Protocol

We all organize our mail into folders, don’t we? If we do, then, traditionally this organization only occurs on the client reader. This means that if you have access to your email from different locations, you have to organize the mail for each client. This is because, using POP3, the mail is copied to the mail reader and organized locally, independent of the other readers.

The IMAP4 protocol was designed to allow storing and managing of e-mail on the mail server; this includes allowing folders to be created to hold mail. This is a real boon to those who like to be able to access the same view of their organized mail from any reader or location. The downside is that it is a complex protocol, so different servers and readers support the it differently, making consistent configuration sometimes tricky. Also, relying on IMAP is most useful if there is enough storage space to hold all the mail you would want to access from all those locations.

Local Client Access to Mail

With web access to mail, that should be enough, right? For most people they might be, but for others, they may need access to email while offline. Offline mail readers also provide more powerful or more efficient email authoring features. In these cases, access and caching of email in a local client is essential. Access via POP3 has its downsides, but IMAP access allows the common view to e-mail, as just described.

Google Mail with IMAP support

Google has recently added IMAP access support to their Gmail service. This means that you do not have to rely on its own web interface or POP3 to access your mail. With its support for IMAP access, built-in spam filtering, its large storage size and its powerful online text capabilities, this makes a great mail service to base your mail access on.

First, follow the instructions in Supported IMAP Client List; this will give you the basic setup to get IMAP access working. I will detail information needed to make your Gmail IMAP integration more seamless. For those of you who know what you’re doing or have an e-mail reader that is not listed in on their instructions, here are the essential facts (for the rest of you, use the instructions). Note, that not all mail programs support IMAP mail access; if that is the case, you will have to drop back to using POP3 access, with its reduced features.

Protocol:  IMAP4
IMAP Server: imap.gmail.com, SSL Security=true, Port=993
SMTP Server: smtp.gmail.com, SSL Security=true, Port=465
For both the IMAP and SMTP servers the userid userid@gmail.com and the password is the corresponding Gmail password.

Using an Alternate E-mail Address

Though not an IMAP issue, if you want to use a different primary e-mail address than the userid@gmail.com address. There are two things you will want to do to make this all work:

  1. Set the email address used in sending email
  2. Forward all the email from the provider of the primary email address to your Gmail address so that all the mail will be available there.

If you do not want to expose your Gmail address as your primary address and you will want your mail recipients who use the “reply” button to direct responses to an alternate address, you will want to set the desired email address in the client. With most e-mail applications you can specify the email address you want in the configuration. This is distinct from the Gmail login information specified for the IMAP (or POP3) and SMTP servers and it is distinct from the “Reply To” address that you can optionally specify. Since there is not any validation of this address, you can set this to any address you wish.

Note that this does not completely hide your Gmail address; it is still listed in each, normally hidden, email header.

The second part of tying your primary email address to GMail is to forward all your email from the ISP to your Gmail address. The method for doing this is dependent on the your email provider. And, in order to avoid overflowing your storage capacity at your email service provider and generating error messages to people sending mail to you, be sure that the email at the ISP will no longer be saved there. You might want to try this all out first before you cancel mail delivery to your existing email account.

Special IMAP and Gmail Folders

Most e-mail readers that support IMAP create and manage some special folders:

  • Inbox — Primary incoming mailbox (created and managed by the server)
  • Drafts — The folder where the client application saves email in progress
  • Sent Mail — The folder where the client (or server) can save email that has been sent
  • Trash — The folder where deleted mail goes.
In addition, Gmail maintains some additional special “folders”
  • Starred — Flagged e-mail items are replicated in this folder.
  • Spam — The folder that temporarily holds mail treated as spam.
  • All Mail — A view of all the mail that is not in the Trash or Spam folders.

The folder names shown are the ones used by Gmail. Other client readers usually use different names for folders of equivalent functionality, thereby creating duplicate folder types. For example, Gmail uses “[Gmail]/Trash” to temporarily hold deleted mail while Outlook saves its mail in progress to “Deleted Messages.” See the following for more details on each of these special folders.

The trick is knowing how to sync these folders with the activities that occur in the mail reader. The general behavior of how Gmail treats these folders is described in the Google Help. I will describe some of the differences between how Gmail treats these folders and compared with email readers followed by some configuration details for various email readers.

Inbox Folder

The Inbox is like the old POP view of mail—a flat list of incoming messages. A big reason to switch to Gmail as the primary email server is that you can benefit from its filtering of spam from your incoming mail. The inbox also benefits from Gmail filters that “archive” mail which remove them from the Inbox view of the mail (filters are often used to tag such messages so that they would appear in different folders).

Most email readers use the same name for this folder as Gmail, so the view of this folder across email readers is consistent (whew!).

Drafts Folder

Email programs often have their own way to store email in progress. The result is that they get saved into folders of different names. If you are concerned about the status of incomplete messages, be sure to check “draft” messages in their different folder incarnations—Gmail’s name for this folder is “Drafts.”

I need to experiment with this a bit more... it might be that you’ll need to move the drafts from non-Gmail drafts folders to the Gmail one in order for you to have Gmail treat them as drafts (and vice versa).

IMAP support on the iPhone seamlessly supports these folders... see below.

Trash Folder

Similar to Drafts messages, deleted items are handled differently between Gmail and by various mail clients. This is made more complex because Gmail does not actually delete an email that you delete via a different mail reader unless that you use the mail reader to actually move the message to the “[Gmail]/Trash” folder. If the mail reader moves deleted messages to a folder of a different name, then you will have to occasionally move them manually from that folder to the “[Gmail]/Trash” folder. Failing to do this leaves the mail on the Gmail server, viewable via the “[Gmail]/All Mail” folder.

Starred Mail Folder

If the email reader has the ability to flag email, those messages will automatically be added to the “[Gmail]/Starred” folder. Likewise, Starred mail items will appear “flagged” in your email reader and appear in the “[Gmail]/Starred” folder. Moving an email to the “[Gmail]/Starred” folder will flag/star it as well, should the email reader not have that feature.

Sent Mail Folder

In general, you can configure your email program to use any accessible SMTP server to send mail. If you use the Gmail server, however, it will automatically add that mail to the Sent Mail folder for the account that is associated with SMTP server. (It can do this since the Gmail account information is necessary to access its SMTP server).

Most email clients have the ability to save a local copy of sent mail. If you use the Gmail server as the outgoing server, then there is no need to do this; it will save mail sent to the “[Gmail]/Sent Mail” folder. Because of this, it is also not necessary to set the mail program to send a copy of sent mail to yourself. Configuring your mail client to do either of these simply results in duplicate sent mail on the server.

Email Reader Program Configuration

The following describes how to set up various e-mail client programs. Should you have any experience to add, please let me know.

Netscape 7.2

Gmail Netscape
[Gmail]/Drafts [Imap]/Drafts
[Gmail]/Trash [Imap]/Trash
[Gmail]/Sent Mail [Imap]/Sent*
* Not necessary, see “Sent Mail Folder,” above.

To be completed.

Microsoft Outlook XP (aka 2002) and 2003

Gmail Outlook
[Gmail]/Drafts Drafts
[Gmail]/Trash

Deleted Items

[Gmail]/Sent Mail Sent Items*
* Not necessary, see “Sent Mail Folder,” above.

To be completed.

Microsoft Outlook Express

Gmail Outlook Express
[Gmail]/Drafts
[Gmail]/Trash

[Gmail]/Sent Mail *
* Not necessary, see “Sent Mail Folder,” above.

To be completed.

iPhone Mail Support

Gmail iPhone
[Gmail]/Drafts Draft Messages†
[Gmail]/Trash Deleted Messages†
[Gmail]/Sent Mail Sent Messages†
† Not necessary, see description.

Since Gmail IMAP support was not available when the iPhone was released, rather than using the most visible way to set up Gmail, you need to set up IMAP manually as described. The nice feature about iPhone IMAP support is that you can define how the device’s special folders map to the IMAP folders. This allows you to automatically maintain the same view of your Sent Mail, Deleted Messages, and Drafts as you’d expect to see in Gmail itself.

To be completed.

Caveats

Okay, with all that there are some road bumps that I would like to see “fixed”:

  1. If there were an option to tread a “deletion” like most email clients do, then users would not have to think so hard about whether they actually deleted a message or if it were just hidden in the “All Mail” folder. They might also support IMAP’s mark-for-deletion feature as well.
  2. I haven't tracked down the problem, but most IMAP readers have the ability to specify which folders should be automatically synchronized (subscribed). This information must be saved on the server because each time I try to exclude a folder from synchronization, it reappears as a “subscribed” folder. Because the “All Mail” folder contains a view all the mail (except those in the Spam and Trash folders), this can double the amount of disk space used locally, if you are retrieving the full content of all mail messages.

Friday, August 31, 2007

Apple on a Safari hunt in Windows

The guesswork surrounding Apple’s every move goes on and on... I will belatedly comment on their decision to make the Safari browser available on windows, that I have not yet heard or read.

While the roll out of the iPhone, with Safari built-in to it was surely a motivation for the Windows version of Safari (for the oft cited reason that it enables Windows developers to “develop” for it), there was probably much grander motivation: by making Safari available on the most prolific operating system, its broader reach would encourage more web site developers to ensure compatibility when they design their sites. This would benefit Mac OS users, then, as well.

Friday, October 20, 2006

Widgets! A new programming direction?

I always hated the use of the term “widgets” for real software things. It was a term that was reserved for theoretical objects of production in economics classes, with no defined use or purpose. But, today, widgets are coming to be known as little applications that have become quite useful and personal. My first awareness was its use by the Konfabulator technology (Konfabulator has been bought by Yahoo! to become Yahoo! Widgets). First implemented on the Mac, Konfabulator was an engine that supported the presentation and use of their little widgets. Later, they provided the same functionality for Windows so that the same widgets could run in either environment.

It turns out that their little idea has spawned a lot of copycats. With the release of Apple’s OS X, they’ve included similar functionality called Dashboard. OpenSource efforts are pushing their own solutions with varying approaches: Mozilla’s XUL/XULRunner and WinBinder. Microsoft, of course, is not to be left out, so with Vista will come Windows Gadgets, Microsoft’s copy of the the technology. Similiar, too, is Google’s Gadget plug-ins to its Google Desktop.

There are several concepts that tie all these technologies together. It allows small simple applications to be easily distributed and used while allowing extremely simple development processes.
  1. Scripting language
  2. Simple packaging
  3. Common, available technologies
Implementation Language
Choosing a scripting language is essential to encouraging development of the little “applets” that proliferate in these environments. A simple text editor is all that is needed to compose the logic that makes these programs run.

All the Gadget and Widget approaches except for WinBinder use JavaScript as their native programming language. Since a large audience of developers have built their skills building powerful cross-platform web pages using JavaScript, support for that language minimizes the barrier to entry for that developer audience.

Packaging
The implementations typically include the implementation code files, resources such as image files, and metadata files that describe the characteristics of the little application. They might require a specific directory layout. For convenience, most can be packed into a single distributable file. And, because of its ubiquity they use the “zip” file format (originally made popular on PC platforms with PKZIP). Rather than using the .zip file type, it is usually changed to something specific; e.g., “.widget”, “.gadget”, “.jar”, etc.