basic tabs for ie beta || MAIN || report a broken website

May 16, 2005

answers to "ask mike shaver"

You all asked, and Mike Shaver responds. Answers are broken into topics.

Schedule:

Abdulkadir Topal asks, "When can we expect a usable version of Lightning?

We want to have a first "usable" version out this summer, in June or July. We've been calling this "0.8" lately, on the reasoning that it will have at least 80% of the feature we're going to expose in a 1.0, and that we'll mainly be working on responding to test feedback and polishing the experience at that point.

We're converging pretty quickly on a calendar extension that should be about as usable as iCal in terms of features, so well-selected nightlies could give you an interesting experience.

How long 1.0 is after 0.8 depends on a lot of independent variables, such as time availability, how bad the bugs our testers find are, and the Thunderbird schedule for 1.1 and beyond. I keep getting burned by making schedule predictions, so I think I'll leave it at that.

MC asks, "Is there a roadmap like this feature can be estimated mid 2005 etc, if yes, where is it published?"

The roadmap is, sadly, not really published anywhere right now. I don't have a very good excuse for that other than overbusy (see also the incredible lateness of these replies), but I've been working to get help on codifying the roadmap lately, so I hope to have something to accompany the 0.8 preview release.

Robert Accettura wonders "When will we start seeing nightly releases so it's easy to get involved in the process (testing, etc.)?"

[Steve] a rough estimate of when we can see some test builds?"

We're closer than we've ever been to nightlies and tinderbox coverage of all Calendar projects (Sunbird, Lightning, the Calendar extension), but because of the workload on our poor build engineer, it's not extremely likely that we'll be churning those out automatically before June.

Building Lightning is very easy, if you build Thunderbird on the trunk, so that's another route to preview goodness:

Add "calendar" to the MOZ_CO_PROJECT line, like so:

mk_add_options MOZ_CO_PROJECT=mail,calendar

and add "lightning" to the extensions set, like so:

ac_add_options --enable-extensions=lightning,inspector,venkman

This will produce a file in dist/xpi-stage called "lightning.xpi", which you can install into your Thunderbird build and play with. If you have trouble with it, you should visit #calendar on irc.mozilla.org, where all manner of calendar developers can try to help answering your questions.

I'll try and get someone to put that up on our Wiki too, now that I think of it.

Sync/mobile/handheld:

[Abdulkadir Topal], "When can we expect a usable version with palm support and has palm support a priority within the project?"

tom asks, "Do you happen to know of any broad support by mobile vendors? Any chance of BlueTooth support for synching?"

Muriel SHAN SEI FAN asks "Will it be possible to synchromize with Palm OS/Jpilot and other connections with the JPilot project?"

Merome asks several questions. First, "Will Lightning have built-in support for Pocket PC synchro?"

I don't think we'll see handheld sync in the 1.0 release of Lightning, simply because it's a pretty hard problem to solve well, especially for a lot of devices on different platforms. Michiel van Leeuwen (mvl) and Dan Mosedale (dmose) have been working hard on it, though, and have made sure that sync issues have been considered at all points in our architecture decisions, so I'm hopeful that we'll end up with a very good sync story when the time comes.

One element of sync that's important to us is how it interacts with "shared calendars", which is a feature that mvl has been working hard on, and is now able to demonstrate an initial success with. If we can treat all our non-local updates as sync operations, we can deal with data much more robustly, especially for users that are often offline, or are "intermittently connected". I think this will make for a pretty excellent user experience in Lightning, and I hope that we'll be able to provide the first pieces of it in 1.0.

History:

Anonymous asks are very interesting question, "What is your relationship with brendan?"

I first got to know Brendan through his tireless posts on the very first JavaScript newsgroup, and then more so when I started to work with the Netscape JavaScript engine in 1996. After we met at the first Netscape Developers' Conference in New York, he eventually brainwashed me into joining Netscape in the fall of 1997. We've worked together off and on pretty much since then, in Mozilla and JavaScript-nerd capacities.

Or, more concisely: "purely platonic."

Steve Mason asks, "What is your overall role within the foundation and what other projects have you been a large contributor to?"

I was a founder of the Mozilla project back in 1998, and I've held a lot of different roles over time. These days I act as a project coordinator, advising the Foundation and project leaders as best I can, and continue to provide technical contributions in areas like the JavaScript engine, XPCOM, and of course calendaring.

I've also done work on the Linux kernel (mainly in networking and the Indy port) and Lustre, a high-performance open source clustered filesystem. (It's probably stretching to say I was a large contributor to the kernel, but I did a fair bit of work on Lustre.)

Packaging:

Another anonymous commenter asks, "On the wiki you mention that Lightning is an extension that tightly integrates the calendar experience into Thunderbird, and not a seperate product. This implies that to get lightning, a user would have to download Thunderbird and then install an XPI in order to get the Lightning functionality. I was wondering if you saw the installation of an extension to be a common / familiar / approachable enough user task for the average desktop user (ie: the Outlook Express user), and if not, would your team consider releasing Thunderbird + Lightning as a single installable package?"

Lately, I've been fond of saying that Lightning can only really be successful as a project, and not a product.

I think we really want to see Lightning shipped as part of Thunderbird in some way, in 2005 if possible. The Thunderbird team has committed to helping us become integrated more and more closely into their app, and I think they're as excited as we are about making that user experience great.

Omelette:

Robert's also interested in what you think makes the perfect omelette?

As with all egg dishes, an omelette's ultimate success is determined by texture, and to a lesser degree temperature. If you can nail that moist-but-not-runny texture and get it on the plate while it's still nice and hot, you really have a hard time making a _bad_ omelette. Do take care to not add too much filling -- the egg should have a starring role -- and pre-cook vegetables so that they don't release too much moisture and break the consistency.

Interoperability:

timfry had a whole batch of questions. First, he asks, "What is the committment to linking to other formats such as PalmOS or internet calendaring sites and how would this be implemented?"

jorge says, "Can you elaborate on CalDav support for Lightning? Recently Novell introduced Hula, which will support CalDav, and together with a client like Lightning, could be a nice open source competitor to Exchange." and goes on to ask if you can "talk about GroupDav and some of the other, older open source groupware efforts? Does Lightning plan on supporting one, or the other, or both? What do you think will be the preferred "backend" for Lightning for integrated groupware?"

Sylvain: what are the differences between webdav and webcal and are the files standard ical files?

Christopher asks "What about Brutus, Outlook Project Connector and CALDAV integration?"

Lightning has CalDAV support today, on par with the support in Sunbird (where it debuted in December of last year). We're pretty committed to CalDAV as a primary "rich server calendar" capability, and we should be tracking the future drafts of CalDAV Access and Scheduling closely. We've been active in the CalDAV development process, and have a very good relationship with the Hula team at Novell, in addition to other CalDAV implementers like Oracle and Isamet.

We also have remote-ICS calendar support (often called "webcal"), including mvl's work to back those calendars with high-speed local cache for an improved user experience.

GroupDAV could be interesting, but I'm concerned that the restrictions of the protocol, and its potential incompatibilities with "standard" WebDAV and ICS make it hard to do well if you want to have good interaction between GroupDAV and other calendars. I'm not a GroupDAV expert, though, and I know that Stelian Pop has been working on a GroupDAV provider, so that might Just Happen. We'd certainly like to integrate well with OpenGroupware and other such projects.

One area of the new calendar architecture that we put a lot of thought into was the pluggable provider model. This should make it possible for people to add new calendar types as extensions, with a pretty seamless integration. I'm sure there are issues to resolve there -- we know of some integration points that we want to expose from different providers already, and Dan will be doing that work soon -- but the model itself seems solid, and should allow for new protocols and calendar formats to be added with a minimum of pain.

If we ever end up with support for Exchange, or the Brutus CORBA protocol, it'll likely be through extensions written to that provider interface. (That the Brutus IDL files are under GPL makes adding support directly into Lightning somewhat challenging, but it could work fine as an extension.)

UI:

Axord asks, "In terms of user interface, do you admire/use Seamonkey or Firefox more?" and "Do you predict that theis predict that this preference will be strongly or wealkly reflected in the UI of Lightning?"

I prefer Firefox's user interface, in that it's focused on exposing the most common user tasks effectively and cleanly, though I certainly don't think it's above reproach. Seamonkey didn't have the same UI goals, and so it's turned out somewhat differently.

The more interesting UI for reference is probably Thunderbird's. We've tried to give a similar experience in the calendar mode as in the mail mode, though we've not been afraid to make what we think are improvements, such as avoiding modal dialogs where possible, and trying to reduce the complexity of menus/etc.

[timfry] also wonders what the UI will look like

Tobu asks several questions. The first is, "Since this is an integration project, what will the UI look like?"

This is the part where I should be showing you screenshots, clearly, but I'm not really in a position to put them up right now. Today's Lightning UI is pretty modal: when you're working on your calendar, that's what you see in the "main" part of the Tbird interface, and when you're work on mail you see the usual view. We want to improve that mode switch before 1.0, but it'll still be present.

One piece of UI that's visible regardless of the mode is what we're calling the "Agenda", which shows a summary of the events upcoming on your calendar today, tomorrow, and for the rest of the week. I want to tune it some more, and figure out a good filtering/view story, but I'm pretty happy with how it's coming along.

Borja asks, "What can I do to be noticed of an event with out openning the extension? It will be nice to recieve a mail automatically. Not only If I open the Calendar."

Because of the way Lightning integrates into Thunderbird, you don't need to be in "calendar mode" to have your alarms trigger. You will need to have Thunderbird running, for the foreseeable future.

Features:

[Tobu] goes on to wonder "Also on the integration line, what do you think is to gain by combining messages with calendars?"

The biggest gain is simply from the fact that a lot of people spend their day in either their email client or their calendar, flipping back and forth. We'd like to reduce the cost of that flipping, at a minimum. There are other areas that are pretty ripe for exploration as well: being able to create tasks from email messages; threading meeting invitations in with the inevitable email replies and agenda notes;

performing unified search for all messages, tasks and events with a given person or on a given topic; viewing the agendas of people on an email thread; handling iTIP meeting invitations and updates seamlessly; using the calendar to "remind" about email messages.

James Napolitano asks whether you think any of his feature ideas are useful or likely to be implemented. He lists

  1. a display where Lightning shows, for any given day, items such as: tasks I completed or worked on, emails I received, emails I sent, and, assuming Firefox is installed, what webpages I browsed.
  2. The ability to make tasks periodic and repeating.
  3. A task hierarchy displayed as a kind of threaded/collapsable menu, like one at http://gemal.dk/util/.
  4. A priority or importance associated with each task.
  5. Ability to put tasks into customizable time schedules/time organizers and then be able to print them out. and
  6. The ability to make Gnatt charts for our tasks, like the ones shown in the middle of this page: http://www.mindtools.com/pages/article/newPPM_03.htm

These are certainly interesting ideas, and while some of them are a little out of scope for what I see as the main thrust of Lightning, I'd like to make sure that we can accomodate those sorts of "advanced task management" capabilities from within extensions. (Repeating tasks are something that I would like to see in 1.0, though.)

Merome: Second, "Will Lightning have a free/busy sight and shared calendars functionalities?"

I don't think we're going to do free/busy in the 1.0 plan, but I think it's an addition that makes a lot of sense for a follow-on release. That's an important part of group scheduling and calendar sharing, and it's an area in which a calendar program can really make a user's life easier.

Calendar sharing will be present to varying degrees. With a CalDAV server, you should be able to subscribe to shared calendars, subject to the constraints of the server itself. For single-writer/multiple-reader webcal, things just Just Work, as they do with Sunbird and iCal and other such ICS-over-HTTP calendar tools.

Multiple-writer ICS calendars require more cleverness to avoid losing updates and properly integrate local changes with remote ones. As luck would have it, mvl seems to have plenty of cleverness here, and his work on multiple-writer calendars looks very promising. I hope we can get it polished in time for a 1.0 release, but I obviously can't speak for his time.

Project:

Gijs asks "What areas of the code for lightning would make a [good first bug]? (Or, alternatively, where would one start if they wish to give you guys a hand?)" and "What things do you *want* help with?"

The best "first bug" to work on is one that you want to see fixed. That said, it's often hard to tell, especially with a new code base like Lightning's, whether a given change will be as easy as it looks. We're still moving quickly enough, and the project is still new enough, that we often end up just fixing little bugs as we find them based on discussions in IRC, rather than filing them in bugzilla.

One area that could really use some help is test code for timezone handling and time manipulation. It's been a significant source of pain for us over the course of the project -- and for the world of calendaring as a whole, truth be told -- and a solid test suite for it would make our lives much more comfortable.

We also need help with code to find out the current timezone on a given platform (OS X, Windows, Linux, etc.) and map it into our timezone database.

Sylvain also asks why are you not working on the Calendar project to improve those things, rather than making a new project?

In fact, that's almost exactly the path we took. The vast majority of the Lightning work has been in code shared with Sunbird and the calendar extensions. Where we've diverged, it has either been due to requirements which are very specific to the Thunderbird integration goals (such as iTIP handling), or development of a new capability with the goal of having that capability used by all the calendar-family apps. Refactoring calendar code for use in different "app hosts" has been a very large task for us, but I think it will pay off well for all of the apps.

Sylvain says that he's been deploying Mozilla Calendar XPIs at work with a webdav server and he's spent considerable time writing scripts to make different groups of calendars and is relying heavily on online ical files. His questions are whether or not he should stop this work and wait on Lightning

I don't think there's any need to wait for Lightning for this work. Lightning and Sunbird should be able to handle those ICS files equally well, so there won't be any wasted effort there.

[timfry] a "community" project or if it's getting active support from the Foundation ("is this like the new Seamonkey project or more like the current Firefox project?")

The Foundation has been supportive, but I wouldn't say we're on the level of Firefox yet! The Thunderbird folks seem quite interested in getting Lightning pulled more closely into their world, so we may see a realignment there, but for now I'd say we're more of a "community" project.

Steve also asks, "Who are some other notable Lightning contributors

All of our contributors are notable!

At the risk of a sin of omission, I should mention at least:

  • Andrew Douglas, who knows more about datepickers and popups and date parsing than any human should have to;
  • Dan Mosedale, provider-interface architect, CalDAV soldier, sync-thinker;
  • Michiel van Leeuwen, who has done a lot of architecture work around sync and ICS calendars, and helps us make good decisions about how to share code between Sunbird and Lightning;
  • Mike Beltzner, UI consultant and cheerleader;
  • Mostafa Hosseini, the Mozilla calendar community's spiritual leader, and a never-ending source of good project advice;
  • Simon Paquet, bug-triage trooper, cheerleader, and polite-reminder-of-overdue-Lightning-interviews.
  • Stuart "pavlov" Parmenter, working in lots of pieces of Lightning, most recently alarm service goodness;
  • Vladimir Vukicevic, another wide-ranging contributor, especially the sqlite-backed "storage" calendar provider and the new calendar view widgetry.

Thanks to everyone who asked questions. A big thanks to Mike Shaver for taking some time out to answer these questions. Also, thanks to Simon Paquet and his blog readers for helping to make this interview such a success. (Also, thanks to Simon for doing the formatting work that I shamelessly borrowed.) Posted by asa at May 16, 2005 02:33 PM

Comments

Great, but does Mike shave have a blog? So I could go there and read answers to "ask asa 16" ;)

Posted by: OL on May 16, 2005 04:13 PM

that would have been Mike Shaver, sorry about the typo.

Posted by: OL on May 16, 2005 04:15 PM

OL, have patience. I'm a busy guy, but I will get to it.

- A

Posted by: Asa Dotzler on May 16, 2005 04:40 PM

I use google "mike shaver" and the first hit was his blog ;-)

Posted by: Josť Jeria on May 17, 2005 12:02 AM

I seem to understand that for the it won't allow syncronization with any PDA, it it is true I don't think it will the have impact we would like to have it. Robust PDA syncronization it's the most important feature in any PIM, in my opinion.

Posted by: Andrea Monni on May 17, 2005 04:04 AM

Has anyone built the XPI yet? I've failed in building thunderbird but I do have a decent we space to host the XPI...

Posted by: Phill on May 18, 2005 12:52 AM

Another vote for someone hosting the XPI -- I would like to take a look at the alpha's to see if it's something we can use. Earlier I see it, the earlier I can start giving feedback :)

Posted by: Andrew on May 19, 2005 12:41 PM

Post a comment