This bird can dance!

Thunderbird can finally do the Tango

For a long time Thunderbird has been using the same theme for Linux and Windows, resulting in an ugly and out of place Linux theme.  However now Magnus has a patch is up to create a gnomestripe theme space.  Magnus already moved Thunderbird menus over to using the gtk stock icons.

Here’s a screenshot (courtesy of Michael Monreal) of Thunderbird using the desktop icon spec.

Now we can start the move over to using the Tango icon set!

Thunderbird Tab Session Restore

The new Thundertab has (partially) landed in the nightly builds of Thunderbird.  You’ll need to get Lightning installed to see all this and it’s not too pretty yet, but we’re making lots of progress.

But there’s no time to lose!  We’re already talking about how to handle tab session restore to keep all your opened mail tabs around for future sessions.

I’ve put up a partial mockup already, but it’s still early.  As always please leave comments below!

Thunder-tab

I’ve been experimenting with how we can use tabs inside Thunderbird.

Thunderbird Tabbing

The previous tabbing post already discussed how tabs help people to keep their current context and multi-task more flexibly.  I’ve created a number of designs that look into using tabs in Thunderbird so email users can have the same kind of power over their context.

In Tabs By Default

To keep your current context of email reading, searches will open up in a new tab by default.  Such that anytime you’re in the All Mail tab and start a search the results will open in a new tab.  Opening up the Calendar, Tasks, and Contacts will also open up by default in a new tab as well.  Tabs will need to be fast to open.

Tab Shortcuts

Much like you could want quick bookmarks to open up the web pages that you access frequently Thunderbird needs a way for users to open up different types of tabs that are unique and used frequently.

Shortcuts

Tab shortcuts allow us to offer a default set of tab locations that users may want to open.  We can also offer this location up to extensions to enable them to add in their own shortcuts for items like CRMs, Thunderbrowse, and other elements that would want to be opened up in tabs.

With shortcuts we should also focus on some ideas for preventing people from opening up too many tabs of the same interface.  Perhaps something that (on mouse over) shows you the other tabs of that type already opened.

New Tabs / Summary Views

Sometimes you just want a new tab to start fresh, there are lots of reasons to start a new tab. For this we have a new tab button that allows Thunderbird users to open a new, empty tab.

New Tab Button

Upon opening a new tab Thunderbird could just show a blank page and focus the search bar.  However it would probably make more sense to use the opportunity to open up a summary view page while the search bar is focused.

This summary page could use the widget system that Spicebird uses or just give a static summary of your mail, events, and tasks.  Adding in items for recent searches could be good as well.  Pulling information from places like whoisi about my contacts could be another interesting element to this summary page.

Progress

There’s still lots of work to be done and issues to understand; this design work isn’t finalized.  For tracking the Thunderbird tab work that’s planned for Thunderbird 3, see bug 21899 where I’ll be posting more comments and designs.  Comments on this blog are always appreciated as well.

How to steal from a Fox

Interface design is hard work, so it’s really nice when someone else has done much of the heavy lifting for you and left their labor open to cherry picking.  :)   The Mozilla platform has been getting a number of upgrades in large part due to the work of the Firefox team and thankfully I have no shame in stealing the work of our compatriots.  Here’s how you can do it too.

What to Steal

I started in the Preferences area because we (TB & FF) share many of the same mechanisms used to change preferences.  Also it’s difficult to get preferences done right so it’s nice to be able to take all the hard work someone else did there and make it our own.

In Bug 451620 — “Remove the Advanced Preference for Connection timeout” we are cleaning up a preference mostly used for debugging and therefore doesn’t really belong in the main interface.  While working on the patch I took a look at FIrefox’s preferences to see what they were doing in that area and noticed they have the exact same preference, but it looked cleaner and nicer.  So I took it. :)

In Bug 452711 — “Use firefox default font chooser for display” I wanted to improve a users ability to change their font preferences.  Currently Thunderbird requires a user to change fonts with the daunting font dialog now available from the Advanced button.  In making this patch I went straight over to the Firefox font preferences and ported it over to our code.  Again, I have no shame about taking this either. :)

How You Can Steal Too!

Stealing code for preferences is easy, so easy, that I (not a programmer) can do this in a fairly short amount of time.  It only takes a reasonable knowledge of HTML/XML (XUL can help) and Javascript.

There are lots of this kind of preferences work to be done and it’s a great way for a new person who wants to submit a patch into the codebase to get a sense of the process.

Here’s a step by step on how I’ve been borrowing their code such that anyone should be able to do it.

Step 1 – Source Code

Get the source code from steps in the Comm-Central source code wiki page.  This step takes a little while as it downloads all the necessary components to build Thunderbird.

Step 2 – Initial Build

Build Thunderbird initially, you should only need to build it entirely once.  Follow the steps to create your .mozconfig or you could just try mine, which gives you a debug build.

export MOZCONFIG=~/tbsrc/comm-central/mozilla/browser/config/mozconfig
. $topsrcdir/mozilla/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/tbird-debug
mk_add_options MOZ_CO_PROJECT=mail,calendar
ac_add_options --enable-application=mail
ac_add_options --disable-optimize
ac_add_options --enable-debug

Then run the build command as they describe.  Now go get some coffee or something.

Step 3 – Start Stealing

Time to start stealing!  Move into the Mail Preferences code and open up one of the files (check out Prime Places to Steal for ideas).

(from src)
cd mail/components/preferences/

Then at the same time go into the Firefox preferences and open up the preferences file that has the component pieces you’re looking to steal.

(from src)
cd mozilla/browser/components/preferences/

Step 4 – Building Your Theft

Now as you viciously swap pieces from the Firefox preferences over to Thunderbird preferences you don’t need to rebuild the entire Thunderbird source code, just the preferences component you’re changing.

Move into the preferences component on the build directory.  (this assumes you have a tbird-debug directory, which you’d get if you used my .mozconfig file)  There should only be a Makefile in this directory so type “make” and it will build up the preferences component.

(from src)
cd tbird-debug/mail/components/preferences
make

If you were to change any of the strings (preferences DTD files) used in the DTD that the XUL file references then you’ll need to rebuild the locales jar, which is just as easy.

(from src)
cd tbird-debug/mail/locales
make

Step 5 – Testing Your Theft

Now you’re ready to run your new version of Thunderbird!  You’ll likely want to create a different profile than your normal profile.

(from src)
./tbird-debug/mozilla/dist/bin/thunderbird -P test

Common Gotchas I Encountered

Here are some common errors I hit that were annoying to work through.

Parse Error: If you add code with references to DTD entities ( often labels like “&colors.label” ) that don’t exist you’ll get a parse error that’s pretty difficult to understand.  Check that your DTD has the correct entity ( <ENTITY colors.label “Colors:”> ) and that you’ve built the jar from the locales directory.

Adding New Files: If you’ve added new XUL and DTD files you’ll need to add references to those files in the “.mn” file.  Don’t ask me why!  I just work here.  See the preferences jar.mn and the locales jar.mn files, the format is pretty obvious.

Prime Places to Steal

Bug 451599 — “Add preferences UI for disk cache size and clearing the cache“.  To implement this bug you really just need to grab the Firefox Preference code from line 221 to line 233 and copy it just after line 216 of the Thunderbird Preferences code.  You’ll need to poke around at the related Javascript code for hooking it up.   And don’t forget to copy the strings from Firefox advanced.dtd file into the Thunderbird advanced.dtd file.  See, no shame at all!

Another one is the continuation of Bug 452711 — “Use firefox default font chooser for display” where you can copy over the color chooser.  First apply the patch provided in the bug. Copy the Firefox colors.xul file over to the Thunderbird preferences directory and the colors.dtd over to the Thunderbird preferences locale directory. Don’t forget to update both jar.mn files (and build the jars) as mentioned in the Gotchas section.

Then have a look at the code for the Firefox Content Preference and grab the row from line 195 to line 201, the button which launches the color chooser dialog.  You’ll also need to grab the content.js configureColors function and add it to the display.js code.  Don’t forget to change “chrome://browser/…” to “chrome://messenger/…”.

Making and Submitting Your Patch

Once you’ve made your changes and tested them out you’ll want to open a new bug, and upload your patch to that bug.  Use the hg diff command to make your patch, I generally do something like this.

hg diff --git > ~/Desktop/stealing-ff-preferences.patch

Make sure the new bug is against Thunderbird Preferences, use this link to get the product/component entries correct, and attach your patch along with that new bug.

Don’t forget to CC me on that bug!  Use my email: clarkbw at gnome . org

Legitimate Sharing

Stealing isn’t right.  It’s not that we want to copy all this code, which can create known issues of code sharing.  However I defend this especially for something like the preferences UI which goes under a considerable amount of churn each release; making it difficult to place those elements in a lower layer like toolkit for optimum sharing.

Once we’ve played catch up for a bit I hope that Thunderbird can start sharing code back as we create new improvements on the current systems.

What are Attachments?

Should links inside emails be considered attachments?  In the technical sense of an email (like rfc 2183) links wouldn’t be considered a different content type.  The question isn’t whether they are technically attachments as much as if they should be attachment-like in the user interface.

Facebook

Facebook handles links in a message almost like an attachment-object and will do some additional meta work on the link to provide a default photo and short description for it.

In the message list view Facebook offers an icon to note that a link attachment was included in a messages.

In the composition view Facebook also grabs links from inside the message and shows them separately as an attachment like thing.  In the screenshot below the composition window grabbed the link inside my message and pulled down a description and number of photos from the site.


link detected in the composition area

This kind of meta data around a link can be really beneficial.  The presentation of the link is better than a person naturally would and since it’s the information is retrieved automatically it only takes extra seconds  to make sure a good image and description appear.

Beyond just the benefits of better presentation is another hot topic in the Thunderbird world of offline support.  When reading mails offline it’s far better to have a more context about the link than none at all.  Even if I can’t bring up the link in an offline state the image, description and comment can help me to recall what the link is about.

Gmail

When you’re using the rich editor for composing a message in Gmail and create a link it has some nice features for recognizing a link and helping you edit it.  Here are some screen shots of what Gmail is doing right now.

Popup indicates the link has been recognized in compose window

Editing a Link

Alternatively Editing an Email link

Pretty straightforward and simple stuff when compared to the extra things Facebook is doing.  Gmail doesn’t add meta-data about the links or make their inclusion visible in the message list.

Links as Attachments

If in Thunderbird we wanted to start treating links more like we treat attachments…

  • How do we present that to the user?
    • Both in terms of composing messages and when receiving links in messages.
  • Do we grab meta data for links sent to us?
    • assuming some kind of policy about what links we can do that with
  • And should we be making links available somehow in Firefox?

Visual Field of Dreams

Not more baseball

I’m wondering what is the optimum visual field or display size for reading on a computer screen?

I haven’t been able to find an easy answer to this question for a number of reasons and what I’ve found for research indicates many conflicting studies.  One difficulty is that you have to really define what optimum means.  Are you optimizing for speed, comprehension, or satisfaction?  Also the size of the documents you are reading can change the optimizing factors for presenting it.

So here’s a compilation of research papers that I’ve found related to the Visual Field, Optimum Display Size, whatever you want to call it problem.

The Effects of Line Length on Children and Adults’ Online Reading Performance [ pdf ]

Adults were measured against children in 3 sets of line length for reading time and effective reading score yet no real differences were found.  What is interesting is the perceived results, only in adults found the narrow to medium line length (45  – 76 CPL – characters per line) to be preferred when compared to the full length (132 CPL).

The Effects of Line Length on Reading Online News [ pdf ]

Twenty college-age students were given news articles to read displaying in 35, 55, 75, or 95 characters per line from a computer monitor.  The results showed that passages formatted with 95 cpl resulted in faster reading speed with no effects for comprehension or satisfaction other than strong preferences for sizes.

The Effect of display size on reading and manipulating electronic text [ pdf ]

An attempt at more meaningful analysis of the effect of window size on reader comprehension and manipulation of “real-world” texts.  Participants were given journal articles for comprehension and a software manual for specific information.  Indications that screen size does not play a major factor in performance on either task and readers prefer larger screens. (no kidding!)

Reading and skimming from computer screens and books: the paperless office revisited?

Previous research made conclusions from the screens of the 1980s vs. paper, however when comparing against high quality CRTs speed and comprehension are equivalent.  However skimming on a CRT is still 41% slower than from a book, reasons for this finding are discussed.

Interface Design and Optimization of Reading of Continuous Text

A fantastic overview of a lot of different research that has taken place with breakdowns of key variable components of each experiment.  If you only read one paper this is likely the best one to get a handle on the situation.

Cited in several other papers but I couldn’t track down an available source for this paper.

Please leave comments for other related research articles, I’d love to be able to find more information on this topic.

All-Star Break

I arrived in Vancouver on Tuesday July 1st after my long adventure across the country. I think all the sun, baseball parks, and driving ran down my system so after my friends left and I got 2 days of work in I spent the weekend sleeping.

Cleveland Indians Stadium
Cleveland Indians
Detroit Tigers Stadium
Detroit Tigers
White Sox vs. Pittsburgh - U.S Cellular Field
Chicago White Sox
Busch Stadium
St. Louis Cardinals
Kauffman Stadium
Kansas City Royals
Coors Field
Colorado Rockies
McAfee Stadium
Oakland A’s
Safeco Field
Seattle Mariners

Eight stadiums in all.  An amazing trip, though some places were certainly missed due to timing.  I would have loved to see a Cubs game in Chicago as well as a Giants game in San Francisco but the teams weren’t available when we were coming through.  Next time.

Vancouver

Is a beautiful place.  I seem to have brought nothing but perfect weather with me as everyday but one was sunny and warm.  I quickly setup a Canadian SIN (which is similar to an American SSN), a local bank account and spent the last couple of weeks getting settled into to my international digs.  I had already prearranged a stay in a temporary apartment which is working out well as it’s right in Yaletown and lets me easily explore the downtown area.

Sunset Beach

Vancouver has such a mix of different people.  Everyday I hear people speaking in a number of different languages, Chinese, German, Russian, and Spanish to name a few I could recognize.  Everyday on my walk to and from work I smell someone smoking weed somewhere.  And everyday I hear the grinding and pounding noise of construction.  Overall somewhat similar to summers in Cambridge.

Experimental Message View

Before I left the states we started work on something I called The Experimental Message View.  I’ll post more about it later, but the simplistic goal is to create a new way of interacting with messages and with the required technology change enables others to easily create alternate experiments inside Thunderbird.

Andrew Sutherland has been cranking on the Global Database work with an initial preview, an m-1 trial release (download and install), and even an early visualization.

Paul Rouget has updated his work on the new treeview API which could help us implement richer message lists by changing how we display messages.

Things are coming together quickly.

Where’s Scotty when I need him?

This Scotty, not that Scotty.   Yesterday andrew and I were interrupted at the office by a power outage that affected the entire city block around 11am.  And again today when I got to the office it was still closed.

At least one downtown building told power will not be restored until 8:00 am ThursdayLatest info on downtown power, traffic, transit

That’s my office!  Would have been useful news if they informed me which building it was before I made the trip downtown to find it closed and missed the status call.  I still need to pickup a canadian cell phone and it would have been useful to arrive at work more than 5 minutes before the call.

Go West Young Man!

This Thursday I take permanent leave of Boston to make my new home in lovely Vancouver, BC.  Boston has been my home for over 4 years now and after growing up in neighboring NH I honestly never thought I’d be back here this long.

Boston Skyline @ 4:45am

Boston Skyline @ 4:45am by StarrGazr License:

Though it won’t be the place I’ll miss, it’s my friends and I wish they were coming with me.  I’ve tried to convince several of them to do that.  Why can’t we all live in the same place?

On Tuesday my u-pack boxes arrived and I squeezed in all the possessions I hadn’t thrown out in the last couple weeks and feel are worth bringing across the country.  I actually don’t have many of these things even though they add up quickly.  On Friday Moose and I will have left Boston on a grand trip across the states.

Moose in the snow

Moose is too old to fly anymore, he might not even make this trip in the car, not really; he should be fine. But luckily I won’t be alone with a dog who farts a lot as two of my best friends and I are cramming into my little car to catch baseball games on the road as we make our way from one coast to the next.  Thus our route isn’t a clear shot from one place to the next.

I will be partially online during the trip, uploading photos of baseball stadiums, cities, arches, and other parks along the way.  I also want to keep up with all the changes we’ve got planned, Thunderbird is starting to make so much progress it would be crazy to take too much time off right now.

Vancouver skyline at night

Vancouver skyline at night by istargazer License:

Thanks to everyone I’ve met in Boston, all the friends I’ve made.  Please come visit me in Vancouver.

You can learn a lot from TV

I used to think that Bill Clinton was the first black president, but of course that loose fact could easily be replaced if we had a real first black president.   Until The Colbert Report Threat Down last night revealed a little known fact about the history of the USA; the title has already been taken by Warren Gansta Harding.  Aren’t pundits great? :(

He just keeps getting crazier

Activity is the new download

So hip, just like silver is the new gold

Last week I began some work on some ideas for a richer, interactive user notification system for Thunderbird.

Status Bar

Currently the status bar acts as one of the only notification systems to the user.  However the status bar is a steady stream of temporal plain text messages.  The messages are helpful if you understand what they are indicating, otherwise to most people they only convey general activity happening.  In general the messages end up lacking meaning because there is too much information running by.

A First Approach

Initially I took an approach of an interactive status bar that looked a little bit like the awesome bar replacing the status bar.  Instead of just giving plain text messages we could make richer messages with visualizations.

  • Linked Messages
  • Progress Meters

The linked message could open thunderbird up to the account or message they were referring to.  Next is to add some access to status history where people can see a list of what Thunderbird had done and perform actions (like restart) on those past activities.

  • History of Activity
  • Interactive History Items

The New Download

After seeing the amazing work that has been done on the download manager in firefox it seemed like a good second approach to the problem could be to reuse much of what they’ve done.

The download manager in firefox is solving a similar set of problems.  We want to allow people to watch the progress of a specific set of (likely asynchronous) activities. We also want to ensure that people can view the list of past activities in case they want to manage them.

Should we continue using a simple text status message?  The progress bar included in the status bar gives a visualization for time to complete an action.  But do we need to help people visualize what is happening in the background?

And then instead of an inline popup for the history list we open up the download manager window which allows for searching and management of items inside the list.

Nothing is set yet, most likely a final version will be taking bits of both approaches.  Still lots of work to go, more comments and ideas are always appreciated!

Standard8 has your name

Obviously after kicking so much ass there was nothing left for mr. banner to do but take names.

What used to be an awkward set of instructions is about to become as simple as a checkbox.

And yes this isn’t quite the feature that gets everyone laid (hopefully at least a couple people get laid).  But it’s an excellent intermediary step toward getting some more testing on the Mac OS X System Address Book connection that should be available in the next alpha.  Likely in a month or so when Mark is done with your name he will have replaced this system with an even better experience.

What is the connection experience?

It’s well beyond time to be thinking about what it means to have the OS X Address Book connected to Thunderbird.  There’s a long road ahead.  What is the end game here?

Should all contacts be stored in the System Address Book or the Thunderbird Address Book? Would that kind of change mean something for Windows? What would that mean for Linux?

If we want to sync your contacts with your iPhone or other iAppleDevices then we should be storing our data in the OS X Address Book, however we should also be careful of another systems limitations.

I like to think of the future of the Thunderbird address book as providing an overlay on top of other address book systems like the OS X System Address Book or an LDAP type address book.  We want our data to be compatible with those different basic remote and local storage services.  However we also want to do more interesting things with your contacts than what most LDAP systems offer.

If I were to steal the look and feel of GNOME Mobile platform diagram (which I like a lot) it might come out looking something like this for the Thunderbird Address Book Overlay.  Underneath is a system address book, ldap, or local thunderbird address book providing the basics of storage.  Then above that layer is where we can begin doing interesting things with your Thunderbird Address Book.  Going beyond just emails and names and perhaps linking with different kinds of accounts your friends have.

You had me at hello

I spent some time on Friday and Monday writing a script to do some analysis of the Enron Email Dataset.  I’m working on a new type of message list view for thunderbird, well a whole new layout actually, but for the message view I wanted to have an idea of message size and content.

Email Data

It turns out that decent email data is relatively hard to come by.  Because of privacy concerns it’s nearly impossible to have access to a companies email where you can see the full exchange between a number of different people.  Luckily the Enron dataset has become publicly available exactly for this kind of research into email problems.

The enron dataset is broken down into directories for many of the people involved and sub-directories of their emails.

  • maildir
    • taylor-m
      • all_documents
      • archive
      • australia_trading
      • boat
      • brazil_trading
    • mclaughlin-e
      • all_documents
      • calendar
      • contacts
      • deleted_items
      • discussion_threads

The script I wrote is designed to read in email files in the directory and analyze the message body for its content.  Then is spurts out the numbers with median and averages computed.

Mail Trends

If you’ve seen Mail Trends, you know that Mihai Parparita analyzed the enron emails for time, size, threading, and people comparisons.  If you download the code you can run it against your own email and will likely see some amazing results (someone should pull this into Thunderbird!).

However the information I was looking for was not available in the mail trends analysis.  Mail trends analyzes only email headers to create relationship statistics between emails.  And while it does have the size of messages in terms of KB I was looking for the size of message in terms of the number of words.

You had me at Hello?

I’ve had this hypothesis or assumption that within the first 2 sentences of an email I can tell what it’s going to be about without reading the rest.  Please try this out on your own!  Read the first two sentences of any email and take a second to think if you can at least prioritize your response required for the message.

Combine this assumption with the my other assumption that it’s more important for me to process my mails than it is for me to actually read the entirety of any message.  I know people are probably thinking, “you should read the whole message”; but in all honesty more than half the messages I get aren’t important to me at all so reading them would just waste time.  This second part of my hypothesis stems from ideas like Inbox Zero and GTD where processing all those “things” is the most important part to being productive.

45 is Median Number of Words Per Message

Analyzing all those emails gave a bit of a statistics problem.  On average it turned out to be something like 120 words per message.  This high average number came from a few outliers of 500+ word messages that were skewing the results towards the high end, when the numbers should really be reflecting the low end where more results were present.  So on average the median number of words per email message was 45.  That’s the average of all the medians… rounded.  Probably should have just included the standard deviation and called it quits.

I didn’t analyze the kinds of words or their length, which would be something else that’s pretty interesting to know.  A next step could be to simply analyze the number of characters per message, that could give interesting hints on how to display the message in it’s entirety.

Back to the Message List View

Here’s a rough breakdown of what GMail gives me when I look at any given message.  It’s just enough to understand who this message is from and what it’s probably about.

It’s possible with the [x] checkbox and the actions menu that I could process this mail and move on.  However usually I end up opening every message to make sure there’s nothing else I should see.  I’m not sure if that’s because I really need to read the rest of the message or what.

So my question continues to be this:  Given a little bit more of the message itself, or a little bit more of the context of the message… is there a better way for me to process my emails?  I have some mockups and ideas on how I think it could be done, but they need more refining.  Will post soon.

Some Signature Updates

Some news for the Thunderbird signatures in email.  I’ve updated the Message Signatures wiki page with some new possible directions.

Signature Manager

One still missing piece has been adding a signature manager.  Previously I mentioned that we could create a new dialog window for managing signatures, however several comments posted and emailed made me want to look into other possibilities.

So here’s a mockup of a possible layout for the Signature manager to be in the Thunderbird preferences, under the Composition tab.  (tabs within tabs… whoo hoo!)

Script Signatures

I keep offering a possible script signature in different mockups and yet there hasn’t been any mention of how you’d add a script signature yourself.  My feeling is that we can leave script signatures up to extensions and extension developers.  It might be nice to offer a script signature by default and perhaps this would lead more people to try out extensions that provide script signatures, however I don’t have a plan to create a default interface for them yet.

Signature Add-ons

Here’s a pretty simple way to introduce signature add-ons specifically to the signature preferences.  There are some open ended pieces of this that need to be worked out.  What does the add-on manager look like when it opens up from a link like this?

Your comments and suggestions are appreciated as always.

Tabulation

Lately I’ve been asking a lot of different people, “Why do you use tabs?”, in reference to tabbed web browsers.  I wanted to do some quick and dirty research on the design and usage behind tabs; some of this is obvious yet it helps to have it written out.

So here’s a bit of what I’ve found people claim to use tabs for.  I’ve arranged the information into what I felt were 4 distinct types of usage.  I’d love to hear about other usage that doesn’t fit into these categories or other categories people have observed.

Defer Action

Tabs for Defering

Often people want to defer an action until a later time.  In a web browser they will open a link in tab that they’d like to read a little bit later.  This was reported to occur on news or information sites where a person is reading a single page but wants to branch off to other links after reading.  After completing the tab in their current focus the person would begin processing the other tabs lined up for later.

Lightweight Bookmark

Similar to deferring an action, people mentioned that tabs were a way of keeping certain pages around for an indefinite period of time.  These pages weren’t necessarily going to be processed right away but they didn’t want to be lost.  When asked if they bookmarked these page people responded that these pages were transitive reference type pages (i.e. they needed them to continuously use them for a certain project) and so tabbing seemed to be a way to bookmark things in a lightweight fashion.  This especially made sense when tabs are saved within a session; people reported opening lots of tabs (hundreds) and then closing Firefox down completely only to reopen them all later.

Collect Related Information

Many people cited using tabs specifically to collect information on the same subject.  Often this kind of collection was research for a composition like a blog post.  Some people claimed to do this in a very formal fashion of opening up a fresh window for a blog post and then creating new tabs in that window for research related to the blog post.  While others referenced doing an important activity in one window and having a set of windows with tabs in them for researching ideas around that important activity.  This type of collection is similar to the lightweight bookmark except that most of the tabs were intended for a very finite period of time such as using the page to link to.

Switch Context and Keep Current State

Many people also talked about how they would “Adventure off” into other tabs to follow something that was either more important or more interesting but they really wanted to keep their exact place they were.  This  is very similar to the defer action, you could say this is the after state of the defer action.  The only difference here is that the person is intentionally keeping the first tab around in it’s exact state where the defer might lead to closing tabs as they are finished.  A common example was a quick interruption that called for searching for something unrelated to what they were doing.  People would open a new tab, complete their search and then close that tab to go back to what they were doing.

Some Related Links for you to open up in Tabs

What does this mean for Thunderbird?

This information isn’t for figuring out how tabs work in firefox and then squeezing that idea into thunderbird.  It is merely here to create a common language reference for talking about tabs and their usage.  Hopefully people could see new ideas on how tabs can be used from understanding how they are used in other contexts.  There currently exists an implementation of tabs in Thunderbird but it will not be the same as it is now by the 3.0 release.

Signatures in Email

Last week I was blitzed by being cc’d on a lot of email signature related bugs. :-)   To remain calm and keep delusions of control active I started on a wiki page for Message Signatures in Thunderbird.  Right now the page contains lots of links to relevant areas and ascii art mockups for choosing a default signature for accounts; it’s meant to collect thoughts, research, and define direction.

Managing Signatures

I think a general improvement plan will involve simplifying the signature selection and creation process.  Here are a number of points that I think can improve the current aspects of signature management.

  • Each account is created a default signature (from the person’s name and organization)
  • Every signature can be edited with a built-in signature editor (created from the compose window)
  • Signatures can be imported from files, but are saved in the Thunderbird profile or preferences (see bug 324495)
  • A separate dialog is used for managing all signatures, with import, add, edit, remove actions as well as a link to see the signature extensions available from AMO.

Concept Mockup of Signature Chooser in Account Settings

Using Signatures

In the relevant extensions section of the wiki page I tried to list most of the extensions that are dealing with how to use signatures in the compose window.  There are a number of ways of solving this problem and lots of issues surrounding posting style that I am hesitant to battle with.

Several bugs (see bug 219197, bug 73567, and bug 37644) have suggestions that attack the problem from different angles.  New comments and suggestions are welcome!

ASCII Art Side Note

I think I’ve started to use Johan’s ASCII Art Mockup post as a reference for my own ascii art; it’s good to see some style written down somewhere.

A bit of a Communication Problem

I’ve been doing some testing recently with Thunderbird and its offline support; trying to get a handle on what the state of the onion is.  One problem that has bothered me is the silent state of online to offline, not to mention the dialogs that happen after that.

Communication

How do you convey that Thunderbird is offline or online? I’m not too sure of the implementation yet but I think we can get some excellent ideas when examining IM clients and how they handle online vs. offline; for email it’s just a little less extreme.

Online

Should have some indication that is available, but not too prominent because this is the state where everything is good.  When you’re online, emails will be sent right away and new messages will arrive, we don’t need a large piece of real estate to inform you that the situation is normal.

Simple and obvious green signal that you’re online

Offline

Requires a clear indication that is prominent and obvious.  Auto-reconnection should be the default and  timeouts created that indicate when the next reconnect will take place; allow people to interrupt and reconnect immediately.

You’re grey and offline, do you want to try going online now? I’ll try in a little bit anyway…

Because for email we can also expect that some people will want to be offline intentionally we need to allow for people to remove the indication and include ways for people to tell Thunderbird to stop trying to auto-reconnect.

Getting Back Online

When you’ve finally reconnected it’s a moment for celebration… Yay! Get back to work!!  This kind of notification allows people to understand that you’ve reconnected and things will be back to normal.

Getting back online from an offline state can also incur some syncing and likely heavy network traffic so for those reasons alone it’s good to let people know that Thunderbird has realized the new online state and is going to start doing it’s business again. Hold on to your butts…

Woo Hoo! We’re back online!

Some Caveats

We examined an IM client with a single account.  There are some extra things about Thunderbird and email that need to be considered, here’s just one:  You could have multiple email accounts and only a few are not connecting.  What does it look like to have the account you’re focused on online and another account offline?  What does the opposite look like?

Auto-Complete on Subjects

To make an initial start on our new search aspirations we need to begin testing and trying out some of our improved searching ideas.

Quick Search

Our first step in this direction is to add an auto-complete on subjects in the Quick Search entry.  It’s important to get a lot of feedback on our search improvements so integrating our improvements with the current search is paramount. New behaviors need to be pushed out during our alpha releases to gain visibility and testing.  This improvement doesn’t alter the current search behavior at all, everything is planned to act in parallel.

What will change?

The quick search will try to help you find message subjects by auto-completing on the subject name. The subjects it offers for auto-complete are searched from the available subjects in the folder Thunderbird displays in the current view.

For Example:

  • Type in the name “address” into the quick search entry
  • The auto-complete will give a list that match the word “address” somewhere in the subject
  • Selecting an item in the list will complete the whole subject name and search the message view for that name

Lo-fi mockup of Quick Search Auto-Complete on Subject

The auto-complete is only planned to work for subjects at the moment.  Hopefully we’ll be able to start expanding this soon to include email addresses and names too.  Once we have some experience with the auto-complete widget we can start expanding it’s scope a little.

Here’s the current design for the layout of the rich-item widget for matching message subjects.

There are a couple of other tweaks to the {meta} area that need to be improved.  The light colors are a little hard to see and it might be better to brighten up the sender names.  Also it could be good to add the date the message was sent. Perhaps like this:

$SENDER to $RECIPIENTS $TIME_AGO

ex: Bryan to you,david,gary 3 hours ago

What will stay the same?

The quick search should continue to search only in the current folder / view.  This may change sometime in the future, but only when we have a better solution for that problem.

Also it will still work for searches that aren’t subjects, like senders.  When you select a different search type, like “to or cc”, then it won’t continue to auto-complete on subjects; only when you select “subject” or “subject or sender” types.

When is this happening?

Everything is up in the air for discussion right now as we work through an incremental design that makes sense.  The implementation pieces are going to come together soon when the new toolkit auto-complete widget from firefox is pulled into Thunderbird (see bug 370306 and bug 309081) and we figure out the best strategy for quickly searching a set of subjects from the current view.

Searching for a new find

It’s time to start looking into a new search method for Thunderbird. One of the major changes planned for Thunderbird is a new and improve search, but what does that mean?

What do we have?

First lets look at what we have for a search system.  At a very simple level most search systems break down into two pieces, a search interface for filtering and a results interface for listing.  Thunderbird does this in a couple places.

Quick Search

The quick search entry is always at the top right of the Thunderbird window and allows people to search over the current view.  The results of a quick search fill into the current view, replacing whatever listing was previously shown.

The Quick Search defaults to searching only the Subject or Sender and will only search mail that Thunderbird has downloaded already.  Messages that are not listed in the current view (like in another folder) will not be searched unless that folder is selected, otherwise a person needs to use the Advanced Search.

Advanced Search

Hidden under the Edit Menu and Find Sub-Menu is an advanced search dialog that can make use of the remote mail or news protocol to perform a full search instead of just a local search.   The Search Messages dialog provides it’s own search interface as well as it’s own results view directly below the search.  While the Search Messages dialog provides some more advanced search methods over the quick search it’s hard to find and difficult to use effectively.

The Search Messages dialog allows for complex search queries to be built with multiple search terms composed of a number of different field type selectors.  The queries require a lot of input from the user because of the tight structure used to create them.  The same search and results interface code is used for creating mail filters.

Edit -> Find -> Search Messages…

Advanced Search Dialog

What do we want?

I was lucky enough to chat with Andrew Gilmartin yesterday and he framed a future goal very well.  “We’re not looking to make search an added feature box on the side of Thunderbird“, we’re looking to make search the definitive method for viewing mail.

What does “Search as the definitive viewing method for your mail” mean?  That’s a good question and I’m not sure exactly what a good answer is yet. A search would help you find the message you’re looking for, and perhaps a search view never lets you lose that message in the first place.  There’s a lot to explore.

Here are two important pieces of a search system and view that need to be examined and somehow exposed in the interface.

Search and Filter

An impediment of the current search system is requiring people to choose a search type (Subject or Sender) before they even enter any text.  To help people hunt for the correct item you want to allow for starting their search very broad and then allow them to narrow down that broad search with filters like subject or sender.

The current search system has some speed issues that likely prevented a broad to filter system of searching to be implemented.  The mail client Mail.app provides a decent filter bar when searching mail that allows people to see what the current filters are (folder, account) and change them.

Browse and Filter

The SEEK extension is an excellent example of how offering a system of browsing mail by grouped attributes from the start can help people find the item or group of items they were looking for.  Instead of starting with a search term you give the person a list of attributes they might use to filter the list of messages.

An inspiring system for a similar searching, browsing, and filtering methods is things, you should try it if you haven’t already.

Getting What we Want

Moving towards a new search based paradigm will take some adventurous steps and it’s important not to disturb current usage while making those steps.  Here are a number of changes to look at making.

Merging Search Interfaces

Each of the two current search interfaces provide some needed features and capabilities, however having two separate interfaces for searching is confusing and difficult to understand.  We need to combine the ability to do a quick search with the ability to perform a full search into a single interface with an improved results view.

With a single search interface Thunderbird will be searching the local and remote mail (like IMAP) at the same time.  However local results will be listing quickly and remote results will likely take a little more time.  Both sets of results, local and remote, can be merged into the same search results view by showing local results instantly and filling in remote results as they arrive.

Offline Cached and Indexed Mail

In order to have a fast search system even while offline Thunderbird needs to do a much better job of caching and indexing mail as it encounters it.  With new messages instantly cached and indexed they can be made available to search queries, filters, and views immediately.

This is an excellent time to start thinking about the data mining mail in a way that helps searching messages later.  It’s also time to think about making the defaults tuned towards offline usage while still allowing people to control online / offline caching.

Auto Complete

With mail data indexed locally and quickly available Thunderbird should be able to provide a slick and fun auto-complete on search terms it knows about.   Auto complete when searching for items you’re already aware exists helps with miss-spelling errors and more complete matching.  The awesomebar shows how with just a little broken memory of a title or url you can easily find the page you saw once before.

Fetching Results

Our current drive is to investigate some indexing on messages (at least subjects), pull the new auto-complete into Thunderbird, and get a search bar using that fancy auto-complete on mail subjects and hopefully the addition of a couple more fun things.  Leave some comments or jump on the newsgroup to participate.

Search Yesterday and Attachments

A wire frame of a possible mail search auto-complete

Lightning Calendar Month View Hacks

With an hour or so of downtime during the Calendar Face 2 Face meeting this week I started a little CSS hacking of the Lightning Calendar extension.  My goal was to change improve the visual effect of the month view into more of a heat map than a listing of all your events for the month.  I believe the month view should only be answering the question, “What days am I busy, what days am I free?”, while avoiding answering every other possible question.

Old Calendar Month View

Here’s a screenshot of a day in the current month view.  There are dark drop shadows for each event listed, as well a (visually alarming) alarm bell for every event that has an alarm.  The borders are thick 2px lines with a dark color that overwhelms the board.

Effectively there is a lot of visual noise happening with all the different background and dark border shading that makes the view always appear somewhat cluttered.

Current Month Day View

Current Full Month View

Drawing the Eye

When you start shading the the areas of the calendar in a darker shade than they were before you can begin to see the visual effect created and where they eyes are drawn to.  Places and things that aren’t as important as others.

Plus the extra visual information that is provided in some of the shading isn’t always necessary in the month view.  For example, off month days are now indicated by a lighter shade of font color in the date text instead of a dark background color that makes them look important instead of additional.

Calendar Month Hack

In this screenshot of a single day in the new hacked month view you can see that the borders of days changed to a very light 1px color and the date numbering has been lighted up as well.  I put in a slight background shade for the top border as well to give it some separation (not completely necessary).  The colors and stacking of events in a day provides the necessary separation that the dark border colors were giving before.

In general everything has been flattened so the visual effect is about the colors of the calendar events drawing your eyes to the areas they exist in the most, while the empty parts of the calendar look much more open.

Designer code can be had at bug 430382 and you can see a full month view patch screenshot from there as well.

Next Steps

Start changing the timed events such that they don’t look so visually loud on the board.  Time events, ones that range for a certain time during the day, should appear to be less than an all day event on the visual landscape.

Further Improvements

The text for calendar events is obviously much too verbose.  You can see in the above screenshot that 08:30 AM could easily be changed into 8:30 and still provide the same information while taking less space.

Christian has much more work done for Improved Events and Tasks as well as others areas, all of which need to be merged.

aboot

This is the blog personality of Bryan Clark. I'm a designer in a world of open source. This blog reflects mostly writing about Design, Open Source, Economics, Beer, Wine, and Dogs. There's more information about me on this site or you can contact me directly at clarkbw@gmail.com.

scategories