Planet Thunderbird

May 20, 2013

Instantbird

Instantbird 1.4 Released!

Log Viewer showing dates in a tree

Get your copy of Instantbird 1.4, hot off the presses! We’ve made a lot of improvements (for full details, see the release notes):

As we stated during the Instantbird 1.3 release, this version now requires Mac OS X 10.6 (Snow Leopard). Instantbird 1.4 is based off Mozilla 20 and libpurple 2.10.7, the newest versions available.

You might be asking “What’s next?” for Instantbird; we will be participating in Google Summer of Code 2013 (again through Mozilla). Through this and our other volunteers, we’ll continue improving Instantbird to make it a chat program you love to use. Hopefully we can integrate some cool new features from this year’s Google Summer of Code and finish integrating the Account Import Wizard from Google Summer of Code 2012! As always, if you see any issues, please file bugs!

May 20, 2013 06:19 PM

May 17, 2013

David Ascher

You are more than your job title

In grad school, I remember a conversation across the campus green with an visiting psychologist from Harvard.  I don’t remember much about the conversation except that he introduced me to Isaiah Berlin’s notion of the Hedgehog and the Fox, and correctly pegged me as a Fox.  I think I was a bit offended at the simplification, but time has proven him right.  I’m certainly no hedgehog.

I got into a silly argument on twitter last night, about whether my looking to hire someone who I labeled (as job descriptions make us do) a “Coding Designer” was not just foolish (I’d seen the Unicorn references in my tweetstream already) but apparently a bad idea, because, so the ultra-simplified argument goes, you somehow can’t be both.  And so I’ll use the energy to rant a bit about what seem to be prevailing attitudes around titleism and narrow definitions of “professionalism”.

We all need to define ourselves to others. It helps us be understood, and hopefully valued.  Labels can be useful for that. We also, even more, like to label others.  It helps us simplify our approach to them.  If I can find a label for you, then I can rely on a prioris about how people with that label tend to think and behave, and I don’t need to actually get to know you too much.  The more people we interact with, the more important these shortcuts are.  Some roles are particularly subject to that (Recruiters, VCs, politicians, etc. — people who routinely talk to dozens if not hundreds of people a day).  And the best at these roles are those who use a different labeling system than their peers.  Recruiters who see the latent ambition or genius in a shy candidate; VCs who see the determination behind a stutter, or, conversely, the lack of self-confidence behind the bravado, etc.

Labels are useful and practical in the short term.  And I don’t know how one could run a large HR department without them.  But we should be careful to not take them too seriously, as in the long term, they can hurt. They hurt because people, especially interesting, worth-getting-to-know people, are much more subtle, complicated, confusing and hard to categorize creatures.  Whether you take the label too seriously when thinking about others (e.g., refuse to see the valid opinion about a design expressed by a non-Designer) or about yourself (and limit your impact on the world because “oh, that’s not something that a mere ____ like me could say/do”), you’re not getting the most out of anyone involved.

As I write this, I realize that I feel quite strongly about this topic.  Part of it is probably because I grew up in an educational system, which at least then believed way too much in labeling people and determining their fate based on that label.  Much waste ensued.  Part of it is probably because I can’t for the life of me figure out what my label should be, and if I can’t, then that must be bad. I’ve had a range of professional labels, from scientist to engineer, architect, team lead, vice president, CTO, CEO, blah blah blah.  I’ve been called a designer, strategist, entrepreneur, boss, blah blah blah. None of those words will, I hope, be in my epitaph.  And so I get cranky on twitter at night, because if there are people who strive to be both excellent at design and at coding, then by golly we should encourage them.

Titles are a poor approximation of a professional ideal, and a profession is a poor approximation of a human’s breadth, contributions, and talents.  Embrace your inner fox, and if you happen to have both design and coding skills, can see a problem, conjure up a solution, prototype it, welcome challenges to your idea from peers, data, and users, apply.

May 17, 2013 06:02 PM

May 16, 2013

Robert Kaiser

Preserving Software - Feedback Requested!

As Digital Preservation is part of the agenda of the US Library of Congress, they're doing a workshop on Software Preservation next week, and Mozilla was invited as an expert group. Otto de Voogd and myself are in the delegation going there (I'll be roughly in the Washington, DC, area from Saturday until June 2) for Mozilla - and the text below is a guest post by Otto with questions that we would like some feedback on so we can represent the Mozilla community as well as possible:




On the 20th and 21st of May the Library of Congress holds a workshop on the topic of preserving software.
Otto de Voogd and Robert Kaiser will be representing Mozilla, putting forward our viewpoint as custodians of a codebase with a significant heritage and importance.

Many questions and thoughts arise. Here's an overview of ours; we look forward to feedback.


- Should archivists keep source codes or executables or both?

Executables and source code are both valuable. Executables are valuable because the source code is sometimes not available, or perhaps the build tools are not, and setting up a build environment for older code can be a difficult and complex thing.

Source is valuable to determine how a program works. It also makes it possible to reuse code and algorithms, especially, but not only, in the case of open source software.


- Preserving documentation.

Preserving documentation that goes with software, seems logical.
Would this need to go as far as preserving discussion threads and entries in bug trackers?


- Preserving environments/platforms.

It seems obvious that without preserving an environment in which the software can run, it is going to be impossible to experience the software.
Preserving such an environment should therefor be part of the software preservation effort.

To avoid the physical constraints imposed by preserving old hardware (which would be a preservation effort in its own right), a solution would be to build virtual machines and emulators.
As hardware capacity constantly grows, running virtual versions of older hardware should generally be feasible.

To fully recreate an environment we'd also need to preserve the operating systems and other software tools that the preserved software needs to run.
Those being software themselves would logical already be included in any software preservation effort.

Preserving documentation concerning environments, would also be required.
To build virtual machines and emulators it would be helpful for hardware makers to make technical specifications available. One could envision this to become a legal requirement at least for older hardware.

Can we imagine a world where web based emulators would allow an online digital library to serve users worldwide? Users who would be able to run old software in emulators running in their browsers...


- Is everything worth preserving, if not how does one go about selecting what is worth preserving?

Does one need to preserve every version of software, just the last version or all major releases? What about preserving software that has not spread widely. Would there be some threshold, or some other criteria?


- How does one index software and search the library?

There will be a need to gather meta data about software and the preservation of documentation as we already mentioned. This meta data and documentation could serve to populate an index enabling for instance the search for particular features.


- Can software preservation help in making code reusable?

If there are good ways to actually find relevant and useful code, this could lead to more reuse not only of actual code, but also of algorithms and concepts.
It may also become a valuable source for students who wish to learn about actual implementations of software solutions.

At the very least a minimum of meta data, such publication dates, copyright owners and licenses should be available to determine how certain code can be reused.
In particular for open source software we believe that software libraries should strive make it available without restrictions.


- Preserving data formats.

The software preservation effort should also include an effort to preserve data formats. Including technical descriptions of those formats and the tools to read, write and edit those formats.


- Can software preservation help in the discovery of prior art?

We believe it can, and as such preserving old code could be a great tool in preventing the repatenting of existing software concepts.

Of course we believe that software patents shouldn't exist in the first place, as software is already covered by copyrights, but at the very least prior art is a good avenue to prevent some of the worst abuse of software patents.


- How do copyrights affect software libraries?

A lot of software is licensed to be used on a particular piece of hardware or only available via subscription. How does this affect software libraries? Should there be exceptions like there are for traditional libraries?

In the life cycle of software, the commercially exploitable time is limited, likely anything older than 10 years no longer has any commercial value.
Maybe copyrights on software should be significantly reduced to something like 10 years, which is more than enough to cover the commercially exploitable timeframe of the software life cycle.

Such a limit would greatly enhance the work of software libraries, increasing availability and ease of access as well as removing a lot of the red tape involving requests for permission to keep copies.


- What about software as a service?

And what about software as a service, where neither the source code nor the executables are ever published? How can something like Gmail be preserved, when neither the service's code nor the environment is available to the public?


- Preserving "illegal" or cracked copies?

What if a copy of a piece of software comes from an illegal source? A cracked version with modifications maybe? They have value in themselves as they are a cultural expression.

What if such an illegal copy is the only copy still available? Would it make sense to preserve that too?

May 16, 2013 10:08 PM

May 08, 2013

Calendar

Lightning 2.3b2 with fixed localization

Hello Folks. If you have been using Lightning 2.3b1 with a localized version of Thunderbird, you probably had troubles with undefined entities. This happened due to a glitch with the Mozilla localization dashboard, the wrong changeset was used.

I have just uploaded Lightning 2.3b2, which should fix the issue. As always, you can download beta versions from the addons.mozilla.org site in the “Developer Channel” box. If you have previously installed a beta, you should get the update via automatic updates.

https://addons.mozilla.org/en-US/thunderbird/addon/lightning/#install-beta

May 08, 2013 08:34 PM

Robert Kaiser

Editing Maps in JavaScript

The OpenStreetMap project has launched an all-in-JavaScript map editor called "iD" this week:



While we at Mozilla know you can do a lot of good things in JS these days - after all, we're even launching our own phone OS building fully on HTML+JS, and we have been using more and more JS code to power key functionality in our browsers and other products over the years - it's great to see that complex things like editing maps can be done fully in JS and available for all platforms now, while previously it took proprietary and availability-limited technologies like Flash or Java to do the same thing.

Great work, OpenStreetMap guys! :)


(And yes, as a contributor to OpenStreetMap and even OSMF member, I am biased, but free and open map data on the web fits Mozilla philosophy pretty well anyhow...)

May 08, 2013 02:12 PM

Joshua Cranmer

Understanding the comm-central build system

Among the build systems peer, I am very much a newcomer. Despite working with Thunderbird for over 5 years, I've only grown to understand the comm-central build system in gory detail in the past year. Most of my work before then was in trying to get random projects working; understanding it more thoroughly is a result of attempting to eliminate the need for comm-central to maintain its own build system. The goal of moving our build system description to a series of moz.build files has made this task much more urgent.

At a high level, the core of the comm-central build system is not a single build system but rather three copies of the same build system. In simple terms, there's a matrix on two accesses: which repository does the configuration of code (whose config.status invokes it), and which repository does the build (whose rules.mk is used). Most code is configured and built by mozilla-central. That comm-central code which is linked into libxul is configured by mozilla-central but built by comm-central. tier_app is configured and built by comm-central. This matrix of possibilities causes interesting bugs—like the bustage caused by the XPIDLSRCS migration, or issues I'm facing working with xpcshell manifests—but it is probably possible to make all code get configured by mozilla-central and eliminate several issues for once and all.

With that in mind, here is a step-by-step look at how the amorphous monster that is the comm-central build system works:

python client.py checkout

And comm-central starts with a step that is unknown in mozilla-central. Back when everyone was in CVS, the process of building started with "check out client.mk from the server, set up your mozconfig, and then run make -f client.mk checkout." The checkout would download exactly the directories needed to build the program you were trying to build. When mozilla-central moved to Mercurial, the only external projects in the tree that Firefox used were NSPR and NSS, both of which were set up to pull from a specific revision. The decision was made to import NSPR and NSS as snapshots on a regular basis, so there was no need for the everyday user to use this feature. Thunderbird, on the other hand, pulled in the LDAP code externally, as well as mozilla-central, while SeaMonkey also pulls in the DOM inspector, Venkman, and Chatzilla as extensions. Importing a snapshot was not a tenable option for mozilla-central, as it updates at an aggressive rate, so the functionality of checkout was ported to comm-central in a replacement python fashion.

./configure [comm-central]

The general purpose of configure is to discover the build system and enable or disable components based on options specified by the user. This results in a long list of variables which is read in by the build system. Recently, I changed the script to eliminate the need to port changes from mozilla-central. Instead, this script reads in a few variables and tweaks them slightly to produce a modified command line to call mozilla-central's configure...

./configure [mozilla-central]

... which does all the hard work. There are hooks in the configure script here to run a few extra commands for comm-central's need (primarily adding a few variables and configuring LDAP). This is done by running a bit of m4 over another file and invoking that as a shell script; the m4 is largely to make it look and feel "like" autoconf. At the end of the line, this dumps out all of the variables to a file called config.status; how these get configured in the script is not interesting.

./config.status [mozilla/comm-central]

But config.status is. At this point, we enter the mozbuild world and things become very insane; failure to appreciate what goes on here is a very good way to cause extended bustage for comm-central. The mozbuild code essentially starts at a directory and exhaustively walks it to build a map of all the code. One of the tasks of comm-central's configure is to alert mozbuild to the fact that some of our files use a different build system. We, however, also carefully hide some of our files from mozbuild, so we run another copy of config.status again to add in some more files (tier_app, in short). This results in our code having two different notions of how our build system is split, and was never designed that way. Originally, mozilla-central had no knowledge of the existence of comm-central, but some changes made in the Firefox 4 timeframe suddenly required Thunderbird and SeaMonkey to link all of the mailnews code into libxul, which forced this contorted process to come about.

make

Now that all of the Makefiles have bee generated, building can begin. The first directory entered is the top of comm-central, which proceeds to immediately make all of mozilla-central. How mozilla-central builds itself is perhaps an interesting discussion, but not for this article. The important part is that partway through building, mozilla-central will be told to make ../mailnews (or one of the other few directories). Under recursive make, the only way to "tell" which build system is being used is by the directory that the $(DEPTH) variable is pointing to, since $(DEPTH)/config/config.mk and $(DEPTH)/config/rules/mk are the files included to get the necessary rules. Since mozbuild was informed very early on that comm-central is special, the variables it points to in comm-central are different from those in mozilla-central—and thus comm-central's files are all invariably built with the comm-central build system despite being built from mozilla-central.

However, this is not true of all files. Some of the files, like the chat directory are never mentioned to mozilla-central. Thus, after the comm-central top-level build completes building mozilla-central, it proceeds to do a full build under what it thinks is the complete build system. It is here that later hacks to get things like xpcshell tests working correctly are done. Glossed over in this discussion is the fun process of tiers and other dependency voodoo tricks for a recursive make.

The future

With all of the changes going on, this guide is going to become obsolete quickly. I'm experimenting with eliminating one of our three build system clones by making all comm-central code get configured by mozilla-central, so that mozbuild gets a truly global view of what's going on—which would help not break comm-central for things like eliminating the master xpcshell manifest, or compiling IDLs in parallel. The long-term goal, of course, is to eliminate the ersatz comm-central build system altogether, although the final setup of how that build system works out is still not fully clear, as I'm still in the phase of "get it working when I symlink everything everywhere."

May 08, 2013 01:46 AM

May 01, 2013

Rumbling Edge - Thunderbird

2013-04-30 Thunderbird comm-central builds

Thunderbird-specific: (21)

MailNews Core-specific: (20)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64) (2013-04-29 build)

Mac builds Official Mac

May 01, 2013 05:05 AM

2013-04-30 Calendar builds

Common (excluding Website bugs)-specific: (15)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

May 01, 2013 05:03 AM

April 20, 2013

Robert Kaiser

My Slides Have Moved!

On Februrary 20, 2004, the day before FOSDEM 2004, I apparently made slides of my talks public for the first time, putting the L10n status update for that weekend up on kairo.mozdev.org for everyone to refer to.

It was nice to have them up on the web both for people to look them up and for myself in case there would be a problem with my laptop and I'd not have my "master copy" available there. Also, having the contents managed in a version control system (cvs) meant that recovering from accidental changes would be easier and that I could easily sync copies between my desktop, laptop and the web.

Over the years, I added all slides from any presentations I made to that site, and even those from the years before - even that "outliner" for the 2002 talk about what "chrome" was all about (which I wrote up during the presentation right before it, and which was my only slide for that talk - things were a bit different on our first FOSDEM appearance then nowadays for sure).

Fast forward to today: mozdev.org isn't all that well-maintained any more, I never did put up much more than the slides there as I ended up putting all my content on my own server (and domain) anyhow, and cvs also probably isn't the state of the art any more for version control. In addition, I recently discovered how I could do decent auto-deploy of changes on my websites with git hooks on the repos that I host on my own server anyhow.

So, I did a simple "git cvsimport" on a cvs checkout of my slides, and now am using the resulting git repository to host all this right on my server at slides.kairo.at.

I also improved the index page from a pure list into a tabular format, of course using the common KaiRo.at color scheme and my logo, and exchanged the URLs on the slides themselves to point to the new domain. Note that I didn't do any other changes to the slides, so some of them might not be optimal in usability or design in current Firefox versions (I relied on SeaMonkey's site navigation bar a lot in the earlier slide sets, and I didn't add unprefixed versions of some CSS rules I used), but the newer ones should be as good as they can.

Now all I'm missing is to find a way to do a smart redirect (or URL rewrite) from mozdev to the new domain. Oh, and I need to get to creating slide sets for my Linuxwochen 2013 presentations... ;-)

April 20, 2013 05:28 PM

April 15, 2013

Instantbird

LaTeX support brings prettier math to your messages

With our new add-on, any mathematics contained in your conversations will be beautifully rendered using MathJax.

It’s rather nice to be able to discuss math using familiar LaTeX markup, but with the equations displayed properly. And of course, as LaTeX is text-based, this works for all protocols, and does not depend on your conversation partners also using Instantbird!

No configuration is necessary — to use this, you don’t even need to have TeX installed.

You can easily obtain the LaTeX source of any equation using the context menu. AMSmath symbols and environments (such as \begin{align}…\end{align}) are supported.

There are a few customization options — for example, you can choose to have displayed equations numbered automatically, to make them easier to refer to.

The add-on works with all Instantbird message styles, so you don’t have to change your favourite theme.

Get the add-on here!

April 15, 2013 01:00 AM

April 11, 2013

Rumbling Edge - Thunderbird

2013-04-10 Calendar builds

Common (excluding Website bugs)-specific: (1)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows (2013-04-03 build)

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

April 11, 2013 08:52 AM

2013-04-10 Thunderbird comm-central builds

Thunderbird-specific: (27)

MailNews Core-specific: (21)

Windows builds Official Windows, Official Windows installer (2013-04-03 build)

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

April 11, 2013 08:50 AM

April 10, 2013

Joshua Cranmer

TBPL

When running final tests for my latest patch queue, I discovered that someone has apparently added a new color to the repertoire: a hot pink. So I now present to you a snapshot of TBPL that uses all the colors except gray (running), gray (pending), and black (I've never seen this one):

April 10, 2013 09:00 PM

April 07, 2013

Joshua Cranmer

JSMime status update

This post is admittedly long overdue, but I kept wanting to delay this post until I actually had patches up for review. But I have the tendency to want to post nothing until I verify that the entire pipeline consisting of over 5,000 lines of changes is fully correct and documented. However, I'm now confident in all but roughly three of my major changes, so patch documentation and redistribution is (hopefully) all that remains before I start saturating all of the reviewers in Thunderbird with this code. An ironic thing to note is that these changes are actually largely a sidetrack from my original goal: I wanted to land my charset-conversion patch, but I first thought it would be helpful to test with nsIMimeConverter using the new method, which required me to implement header parsing, which is best tested with nsIMsgHeaderParser, which turns out to have needed very major changes.

As you might have gathered, I am getting ready to land a major set of changes. This set of changes is being tracked in bugs 790855, 842632, and 858337. These patches are implementing structured header parsing and emission, as well as RFC 2047 decoding and encoding. My goal still remains to land all of these changes by Thunderbird 24, reviewers permitting.

The first part of JSMime landed back in Thunderbird 21, so anyone using the betas is already using part of it. One of the small auxiliary interfaces (nsIMimeHeaders) was switched over to the JS implementation instead of libmime's implementation, as well as the ad-hoc ones used in our test suites. The currently pending changes would use JSMime for the other auxiliary interfaces, nsIMimeConverter (which does RFC 2047 processing) and nsIMsgHeaderParser (which does structured processing of the addressing headers). The changes to the latter are very much API-breaking, requiring me to audit and fix every single callsite in all of comm-central. On the plus side, thanks to my changes, I know I will incidentally be fixing several bugs such as quoting issues in the compose windows, a valgrind error in nsSmtpProtocol.cpp, or the space-in-2047-encoded-words issue.

It's not all the changes, although being able to outright remove 2000 lines of libmime is certainly a welcome change. The brunt of libmime remains the code that is related to the processing of email body parts into the final email display method, which is the next target of my patches and which I originally intended to fix before I got sidetracked. Getting sidetracked isn't altogether a bad thing, since, for the first time, it lets me identify things that can be done in parallel with this work.

A useful change I've identified that is even more invasive than everything else to date would be to alter our view of how message headers work. Right now, we tend to retrieve headers (from, say, nsIMsgDBHdr) as strings, where the consumer will use a standard API to reparse them before acting on their contents. A saner solution is to move the structured parsing into the retrieval APIs, by making an msgIStructuredHeaders interface, retrievable from nsIMsgDBHdr and nsIMsgCompFields from which you can manipulate headers in their structured form instead of their string from. It's even more useful on nsIMsgCompFields, where keeping things in structured form as long as possible is desirable (I particularly want to kill nsIMsgCompFields.splitRecipients as an API).

Another useful change is that our underlying parsing code can properly handle groups, which means we can start using groups to handle mailing lists in our code instead of…the mess we have now. The current implementation sticks mailing lists as individual addresses to be expanded by code in the middle of the compose sequence, which is fragile and suboptimal.

The last useful independent change I can think of is rewriting the addressing widget in the compose frontend to store things internally in a structured form instead of the MIME header kludge it currently uses; this kind of work could also be shared with the similar annoying mailing list editing UI.

As for myself, I will be working on the body part conversion process. I haven't yet finalized the API that extensions will get to use here, as I need to do a lot of playing around with the current implementation to see how flexible it is. The last two entry points into libmime, the stream converter and Gloda, will first be controlled by preference, so that I can land partially-working versions before I land everything that is necessary. My goal is to land a functionality-complete implementation by Thunderbird 31 (i.e., the next ESR branch after 24), so that I can remove the old implementation in Thunderbird 32, but that timescale may still be too aggressive.

April 07, 2013 09:47 PM

April 03, 2013

Robert Kaiser

15, 14, 13, 8, 7, 2 years ago, and the future? My Web Story

It all started on March 31, 1998. Just a few days off from 15 years ago.

Netscape open-sourced the code to its "Communicator" Internet suite, using its own long-standing internal code name as a label for that project: Mozilla.

I always liked the sub-line of a lot of the marketing material for this time - under the Mozilla star/lizard logo and a huge-font "hack", the material said "This technology could fall into the right hands". And so it did, even if that took time. You can learn a lot about that time by watching the Code Rush movie, which is available under a Creative Commons license nowadays. And our "Chief Lizard Wrangler" and project leader Mitchell Baker also summarized a lot of the following history of Mozilla in a talk that was recorded a couple of years ago.

Just about a year later, in May 1999, so 14 years ago, I filed my first bug after I had downloaded one of the early experimental builds of the Mozilla suite, building on the brand-new Gecko rendering engine. This one and most I filed back then were rendering issues with that new engine, mostly with my pretty new and primitive first personal homepage I had set up on my university account. After some experiments with CSS-based theming of the Mozilla suite, I did some playing around with exchanging strings in the UI and translating them to German, just to see how this new "XUL" stuff worked. This ended up in my first contribution contact and me providing a first completely German-language build on January 1, 2000.

A few months after that, in May, I submitted my first patch to the Mozilla project, which was a website change, actually. But only weeks later, I created a bug and patch against the actual Mozilla code - in June of 2000, 13 years ago. And it would by far not be the last one, even though my contributions the that code were small for years, a fix for a UI file here, a build fix for L10n stuff there. My main contributions stayed in doing the German localization for the suite and in general L10n-related issues. Even when Firefox came along in 2004, I helped that 1.0 release with some localization-related issues, esp. around localized snippets for its Google-based and -hosted start page - and stayed with L10n for the full suite otherwise (while Kadir would do the German Firefox L10n). I wrote a post in 2007 about how I stumbled into my Mozilla career.

As Firefox became rapidly successful and took an increasingly large standing in the project and community, I stuck with the suite as I liked a more integrated experience of email and browser - and I liked the richer feature set that the suite had to offer (Firefox did cut out a lot of functionality in the beginning to be able to found its new, leaner and more consumer-friendly UI). When in March of 2005, it became clear that the suite was going into strict maintenance mode and be abandoned by the "official" Mozilla project, I joined the team that took over maintenance and development of that suite - once again using a long-standing internal code name for that: SeaMonkey. In all that project-forming process 8 years ago, I took over a lot of the organizational roles, so that the coders in our group could focus at the actual code, and eventually was credited as "project coordinator" within the project management group we call the "SeaMonkey Council".

When I founded my own business 7 years ago, in January of 2006, I was earning money in surprising ways, and trying to lead the SeaMonkey project into the future. We were just about to release SeaMonkey 1.0 and convince the first round of naysayers that we actually could have the suite running as a community project. In the next years, we did quite some interesting and good work on that software, and a lot of people were finally realizing that "we made it" when we could release a 2.0 version that was based on the same "new" toolkit that Firefox and Thunderbird were built upon, removing a lot of old, cruft code and replacing it with newer stuff, including the now common-place add-ons system and automated updates among a ton of other things. I would end up doing a number of the major porting jobs from Firefox to SeaMonkey, including the places-based history and bookmarks systems, the download manager (including a UI that was similar to the earlier suite style), and the OpenSearch system. With the Data Manager, I even contributed a completely new and (IMHO) pretty innovative component into SeaMonkey. In those times, I think I did more coding work (in JS, mostly) than ever before, perhaps with the exception of the PHP-based CBSM community and content management platform I had done before that.

The longer I was in the SeaMonkey project, the more I realized, though, that the innovation I would like to have seen around the suite wasn't really happening - all the innovation to the suite came from porting Firefox and Thunderbird features and/or code, and that often with significant delay. Not sure if anything other than the Data Manager actually was a genuine SeaMonkey innovation, and I only came up with that when trying to finally get some innovation going, back in 2010. I was more and more unsatisfied with the lack of progress and innovation and the incredible push-back we got on the mailing list on every try to actually do something new. In October of 2010, I took a flight to Mountain View, California, to meet up with Mitchell Baker and talk about the future of SeaMonkey - and I also mentioned how I wanted to be more on the front of innovation even though I seem to not manage to get the SeaMonkey community there. Not sure if it came out of this or was in the back of her head before, in one of those conversations I had with her, she asked me if I would like to work for Mozilla and Firefox. I said that this caught me by surprise but we should definitely keep that conversation going. Just after that I met then-Mozilla-CEO John Lilly, and he asked if Mitchell had offered me a job - just to make sure. As you can imagine, that got me thinking a lot more about that, and gave me the freedom to think outside SeaMonkey for my future. I was at the liberty to think about my personal priorities in more depth, and it became clear that the winds of change were clearly blowing through my life.

After some conversations with people at Mozilla, I decided I wanted to try a job there, and Chris Hofmann proposed my working on tracking crashes and stability, so I started contracting for Mozilla on the CrashKill team in February 2011, first half-time, finally full-time. So, 2 years ago, I opened a completely new chapter in my personal web story. Tracking crash statistics for our products - Firefox desktop, Firefox from Android, and now Firefox OS - and working with our employees and community to improve stability has turned out to be a more interesting job than I expected when I started. Knowing that my work actually helps thousands or even millions of people, who have a more stable Firefox because of what I do, is a quite high award. And I'm growing into a more managerial role, which is something I really appreciate. And I'm connected to all kinds of innovation going on at Mozilla: A lot of the new features landing (like new JIT compilers for JavaScript, WebRTC, etc.) need stability testing and we're tracking the crash reports from those, Firefox for Android needed a lot of stability work to become the best mobile browser out there - and with Firefox OS, I was even involved in how the crash reporting features and user experience flow were implemented. I'm also involved in a lot of strategic meetings on what we release and when - an interesting experience by itself.

Where this all will lead me in the future? No idea. I'm interested in moving to the USA and working there at least for some time - not just because it would make my day cycle sane and having most or all my meetings within the confines of the actual work days in the region I'm living in, but also because I learned to like a lot that country has to offer, from Country Music to Football and many other things (not to mention Louisiana-style Cajun cuisine). I'm also interested in working from an office with other Mozillians for a change, and in possibly becoming even more of a manager. Of course, I'd like to help moving the Mozilla mission forward where I can, openness, innovation and opportunities on the web are something I stand behind nowadays more than ever - and Firefox OS as well as associated technologies promise to really make a huge impact on the web of the future. I'm looking forward to quite exciting times! :)

April 03, 2013 10:13 PM

April 02, 2013

Mike Conley

Downloading Stuff in Firefox – It’s Better Now

If you’ve ever downloaded anything using Firefox, you’ve probably seen this fellow:

A screenshot of the old downloads window

Early 2000′s baby, yeah!

This new window would pop up, and you could use it to manage and monitor your downloads.

There are a few problems with this new window:

This is just scratching the surface. Suffice it to say that the downloads window left much to be desired.

So, your friendly neighbourhood Firefox Desktop team have been working hard to make things a whole lot better.

 

The Downloads Button and Panel

 

Starting in Firefox 20 (released today!), a new button will be added to your toolbar:

A screenshot of the new downloads button in the Firefox toolbar

BEHOLD!

This button serves a number of purposes. For one thing, it tells you how long it will be until all of your downloads complete:

A screenshot of the progress meter in the downloads button

2 minutes until all of my downloads finish.

This button also animates when a download completes, and changes colour when all of your downloads are done:

The downloads button has changed colour to indicate that my downloads are ready.

Downloads are done!

Clicking on the button will show you your latest downloads:

A screenshot of the downloads panel showing a single downloads progress.

Well, hello there.

And from here you can open your downloads easily. Not too shabby!

Like most things in Firefox, the new button can be moved to wherever you’d like it. Simply right click on your toolbar, and choose “Customize”, and drag the buttonto someplace new. Or, if you don’t want the button, you can drag it into the customize window to remove it completely (although, clearly you won’t be notified of downloads progress this way).

 

Manage your downloads in the Library

 

The downloads panel is a lightweight way to check the progress of your downloads. This is all well and good, but it doesn’t give us nearly the same power of the old downloads window. That’s why we have moved the functionality from the old downloads window into a new view in the Library.

The downloads window showing some finished downloads.

Getting a fresh copy of Ubuntu 12.10.

The new manager has similar functionality to the old one, so you can search your downloads, clear them and even leave this window open while closing any other browser windows to complete downloads in the background.

Since this unifies the concept of downloads and history, there is no more risk of clearing downloads for privacy reasons, only to find that your history had retained them!

You’ll also notice that with the new per-window Private Browsing feature, downloads are managed separately by each window – the downloads manager opens in a tab so that you can easily manage your private downloads.

The downloads tab in private-browsing mode.

Just some wholesome browsing going on here.

This way, we make absolutely sure that your private downloads do not show up in your history, while still giving you full control over those downloads. Engagement ring PDFs for everybody!

 

Some tips and tricks

 

There are some neat shortcuts from the old manager that some of you may have used. We tried to retain those and even make them better.

 

Help us make it even better

 

If you find a bug in the new downloads experience, or you have enhancement requests for it, please file a bug in the Firefox / Downloads Panel component. You can also discuss the feature or your improvements ideas in the new firefox-dev mailing list.

On behalf of the team that helped make this thing happen (and folks, it’s been a long time coming), we hope you enjoy your new downloads experience in Firefox 20!

April 02, 2013 06:00 AM

March 24, 2013

Rumbling Edge - Thunderbird

2013-03-24 Calendar builds

Common (excluding Website bugs)-specific: (16)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

March 24, 2013 11:17 PM

2013-03-24 Thunderbird comm-central builds

Thunderbird-specific: (24)

MailNews Core-specific: (23)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

March 24, 2013 11:16 PM

Robert Kaiser

MaKey MaKey Experiments

I think I probably became aware of the MaKey MaKey when Chris Heilmann blogged about it, but I might have heard about it even before. I surely saw it when Chris had his WebRTC photo booth running with it at MozFest 2012 in London.



When I ran across it again on ThinkGeek, I put it on my wish list - and finally ordered one this month. Now, after I had wrapped up this week of work, I finally found some time to play with it, and an interesting and very geeky Friday night ensued. Here's a bit more about that - and about Saturday, and further plans/ideas. :)

So, for one thing, I wanted to use this device with actual Open Web stuff, and not with Flash or other proprietary software. After all, this is Open Hardware (yay!) and I'm entirely entrenched in Open Source / Free Software, from using Linux on desktop, laptop and server, via working for Mozilla/Firefox, to doing some web apps under the MPL2 license in my free time. So, given the latter, I decided it would be nice if I could navigate the OSM world with my Lantea Maps app/site (source) using the MaKey Makey. For that, I had to put some keyboard accessibility into Lantea Maps itself, which is a good idea for accessibility, among other things, anyhow. So I did that, looking at Chris' testy-testy and MDN to find out how to achieve that best. I ended up implementing methods to move the map with the arrow keys, hooked up zoom in/out to +/- keys as well as w/s (the latter are supported by MaKey MaKey out of the box), and then also created direct shortcuts to certain zoom levels with the 0-9 numeric keys (not supported by MaKey Makey, but convenient for keyboard users).

OK, then it was time to actually bring in the MaKey MaKey. I really want to do some fruit stuff at some point, but I only had a few apples around, and I thought it actually would be nice to create some kind of navigation pad that can be used with Lantea Maps at full screen when having an OpenStreetMap booth at Linuxwochen in Vienna. I figured that with some cardboard from the back of an old note pad, and some tinfoil, that should be doable. I added some plastic wrap for insulation, glue of course, and some paper clips so the crocodile clips to connect to the MaKey MaKey wouldn't scratch the tinfoil too much (as well as some temporary applied ones to hold things together while allowing the glue to dry). Here's some photos from production:

Image No. 23125 Image No. 23126 Image No. 23129 Image No. 23137 Image No. 23139

Note that the back side as well as the right rim of the pad is covered with a single sheet of tinfoil that makes the earth connection quite naturally when you hold the pad in your hands.
As of the last photo, while the glue was still drying, it was ready to use for some map navigation (and after the night, I removed the temporary paper clips and took another "promotional" picture):

Image No. 23140 Image No. 23141

Even while getting to bed that evening, the ideas for my next project were flying around in my mind already. On one hand, I saw that MaKey MaKey had connectors for mouse up/down/left/right, on the other hand, ever since trying the original BananaBread demo as someone who's usually not doing any first person shooter games, I wondered if there was a nicer or more obvious way to operate this, rather than using w/a/s/d keys for movement, space/click for jump/fire, and mouse for turning. Well, now that I had done this first custom pad for MaKey MaKey, would there be a handy solution for that as well? In any case, it would be fun. So I took a smaller piece of cardboard that would make this thing fit nicely into my hands (just like those professional game pads), and decided this time I would try something slightly different by using coins as the actual "buttons" on the pad. One-cent coins looked like the right size, and I had a 10-pin cable around from a different project, which would fit for the 10 "keys" pretty well (just that I needed one more for earthing, which I again did with a sheet of tinfoil at the back of the pad, so I added yet another single cable in the end). Also, this time I used some double-sided tape instead of glue for many cases, as that works better with the cable and coins:

Image No. 23142 Image No. 23144 Image No. 23146 Image No. 23148

And then I was ready to play some BananaBread, now with both the awesomeness of running a 3D first person shooter seamlessly in the browser AND using a special game pad for playing!

Image No. 23150 Image No. 23151

If you're interested, not only are those pictures all linked to the gallery where you can go up to "big" versions of those, there's a few more steps of building visible in this photo gallery.

Given all that and the fact that Linuxwochen Wien in the first days of May has an additional focus on Open Hardware this year, I decided to hand in a proposal for a talk on MaKey MaKey there. I intend to show off those pads as well as Chris' photo booth and any other MaKey MaKey experiments that I can fit, preferably ones that run as web pages/apps (let me know if there are any nice ones).

I'm thinking that it could be nice to have an app that shows you on screen in a web site which kind of fruit/item you touched (configurable with key <-> item entries), and I'd love a web (not Flash) piano and/or drumset (using ogg or even opus files with HTML5 audio!) app to present, maybe I can hack something up if there's nothing around.

If this has caught your interest, it's easy to get your own MaKey MaKey, and if you're in or around Vienna in the first days of May, I'd be happy to meet you at my talk (there will be a Firefox OS App workshop as well, probably!) - oh, and if you have any nice, open web apps/pages that show off this device, let me know! :)

March 24, 2013 07:25 PM

March 20, 2013

Meeting Notes

Thunderbird: 2013-03-19

« previous week | index | next week »

Thunderbird Meeting Details :

Remember to use headphones and mute yourself when not talking

Feel free to ask questions in the meeting either by speaking up or by asking them in #maildev on IRC.

Other ways to get in touch with us can be found on our communications page

Meeting Changes

Critical Issues

  • Folks, do some reviews if you can. Also, try to help de-orange our tree.

Action Items From last Week

  • Standard8: Document flags to tb-planning

  • Standard8: Follow up with metric numbers being public
    • This should be happening soon, work has been done, waiting for final approvals
  • Look into having the notes blogged
    • We need to get the meeting notes blog to pick up the pages again.
  • Move http.jsm into toolkit? Maybe? clokep will talk to Mossop about that.
    • Mossop has been sick – clokep will be more aggressive this week.

Friends of the Tree

Thanks to our Friend of the Tree. When adding someone to this section, please get their T-Shirt size, phone number (needed for shipping!) and send it to abourcier@mozilla.com that she can send them a shirt!

Google Summer of Code

  • Please go here and make sure your project ideas are listed

  • We’re going to be submitting our ideas to Gerv and Florian this Friday, so make sure your ideas are polished and they have a mentor.

Status Updates

mconley

  • Ensemble

    • In contact with a small firm in Slovakia that might be interested in hiring a contractor to help me on this

    • Successfully decoupled nsMsgSearchTerm from nsIAbManager using my new service
      • This should be ready for review soon (see bug 841603, and then I’ll work on decoupling other bits

      • A bit worried about the performance impact of frequently calling out to JS components from C++…
      • Haven’t had too much time for reviews lately. :( This might get worse, as Firefox Australis work is really starting to heat up.
  • Profiler has been updated to give us symbols! Get an updated version of the Profiler here: https://github.com/bgirard/Gecko-Profiler-Addon/blob/master/geckoprofiler.xpi?raw=true

jcranmer

  • Guess who won’t be on the call? Not me for once!

  • Should have more time over next few weeks to do stuff including reviews
  • cc-rework
    • Higher priority due to fallout from moz.build changes

    • Elimination of comm-central/configure.in works on Linux, doesn’t on OS X due to LDAP, untested on Windows (see bug 846540)
  • jsmime
    • Landed bug 834757 (fix up nsIMimeConverter for JS implementation)

    • Working implementation of nsIMsgHeaderParser locally, not published anywhere
    • Hoping to get both parts into Thunderbird 24 (will fix almost all RFC 2047 problems!)

wsmwk

  • patchlove

    • reviewing existing patchlove bugs and finding more old bugs with patches to add to patchlove

    • having good results in closing obsolete bugs and getting old patches landed
  • bug 816327 – gmail folders redownloading – data collecting seems to be bearing fruit

clokep

  • Sent Mossop an email, didn’t receive a response and pinged him on IRC last week:

    • Mossop was sick and should respond “soon”.

    • Will follow up more aggressively again this week
  • http.jsm will need another change (found while updating to the Twitter v1.1 API): https://bugzilla.instantbird.org/show_bug.cgi?id=1890
    • Twitter v1 API could potentially be shut off as of March 5th, they’re doing “blackout” tests now. Patch to upgrade is waiting for review.

Standard8

  • Mainly working on tree bustages, and working with Jcranmer on sorting out the build system so that we can hopefully avoid more bustages as the build system reorgs itself.

  • Trying to catch up on reviews soon, but tree bustages and releases taking priority.

Action Items

  • jcranmer: Ping bienvenu about WIP maildir converter for GSoC (by Friday)

  • Ask Roland: is there a way we can give people SUMO permissions for article editing without having to bug you about it?

Attendees

Usul, satdav, jcranmer, florian, wsmwk, Standard8

March 20, 2013 04:00 AM

March 07, 2013

David Ascher

Personal computing in a decentralized world: a hopeful direction

I’ve been having a really stimulating few weeks, which is making me feel oddly optimistic, so I figured I’d spread the cheer.

It’s been somewhat quieter than usual in my little corner of Mozilla, as many of my colleagues were busy preparing for on our big announcements and demos at Mobile World Congress. This lull has allowed me to spend more time indulging in longer term thinking.

In that thinking period, I’ve had the privilege and distinct pleasure of spending a few hours of quality videochat with none other than Ward Cunningham, inventor extraordinaire.  We’ve been talking a lot about his new baby, which he calls Federated Wiki (the name is misleading I think, but as with many new ideas, awkward names are better than long descriptions. The shortest analogy I can come up with is a space for personal writing that borrows the forking attitude from github, within a smalltalk-like conceptual model. — Confused yet?).  Regardless of the name, it’s both refreshing and stimulating to talk to someone like Ward about topics we both see as important and interesting, with a shared commitment to improve the status quo.  If you’re intellectually curious, willing to do some mental backflips and deal with fairly raw and unconventional ideas, I encourage you to watch the videos and play around with federated wiki.  It’s a worthwhile exploration.

One of the surprising ways in which that exploration is changing my brain is that I’m finally starting to care about hardware.  Until recently, I’ve been quite uninterested in hardware talk, both of the standard computer geek variety, as well as the internet-of-things variety. The former has felt no different to me than talking about fashion, and the latter always struck me as an industrial problem, not a human one.  It’s made sense to me that companies like GE were keen on the Internet of Things — i just didn’t really care, and the odds of billions of networked computers being a net win for the world seemed pretty slim — I’ll admit to a bit of an head-in-the-sand reaction there.

What’s changed my thinking (and let me to acquire handfuls of raspberry pis and pcDuinos for the office) is a growing belief that the economics of hardware manufacturing, the maturation of the open source stack and standards, and the mainstream adoption of “the cloud” are, in concert, going to provide interesting opportunities for networked computation “by the people for the people”.

The default path

It’s fairly easy to see that the big players in computing (Apple, Google, et al) are deepening their stack and broadening their scope — from software or services to software and services to hardware to phones to tablets to TVs and other consumer devices, to cars, eyewear, physical networks, wireless carriers.  The path ahead for them is clear.  And I’d say that the consumer experiences that will follow promise to be stunning. But if nothing is done about it, it’s also clear that this will happen through market concentration.  That concentration of power, economic influence and wealth is particularly problematic because it also implies a concentration in modes of thought, in cultural outlooks, in possible futures.  As I’ve written before, I think the world would be poorer if that happened.

All conventional indicators (especially those concerned with things like “eyeballs”) are in that direction, of course — large amounts of money make it possible to make shiny attractive things, as well as to identify attention-grabbing things in a sea of uneven quality.  Popular culture naturally gravitates towards superstars, be they pop stars, or youtube clips. We seem to be wired as people, societies, and markets to head that way.

Another architecture, and the economics that can power it

And yet I mentioned above that I was optimistic. That’s because while there are natural economic incentives for markets to create large companies, and for those large companies to concentrate attention on a few things which are safe, non-threatening, and profitable, the centralization forces are not the only ones at play, and not everything behaves in market-expected ways.   Clay Shirky has written and talked about this eloquently — sometimes we don’t need to do what economists tells us we should want to do.

You can now buy $35 full-featured computers which, within seconds of being plugged in, are fully capable internet nodes.  Within years at most the price will keep dropping and the capabilities will keep expanding. In addition, the open source software stack which powers them is the same which millions of web developers already know, and hopefully soon millions of amateurs as well.  In other words, the means of production  are being commoditized and democratized, and the network is ready to serve as a coordination layer for these devices.  I am not predicting a utopian world of DIY hardware running bespoke software written by each user.  Instead, I want to point out that the entire value chain for using the internet to do new things (from hardware to services) is now ripe for new, good ideas, even coming from single brains. The substrate for deeply personal web experiences is here.  I should also acknowledge Allen Wirfs-Brock’s recent writings on the need for a bigger picture plan here as helping me to process the need to actively shape the architecture of the connected things around us.

Much has been written about the impact of Big Data for business, but internet-available Personal Data could be just as transformative for individuals and small groups. I’d wager that a Raspberry Pi and a cheap drive can store all of the words I will write and read in a lifetime, do meaningful computation on that corpus, and be available to all of my internet-connected devices. That feels significant. When people routinely have that kind of agency over their stuff, and if their digital agents are well coordinated through a well-decentralized network, it’s easy to imagine just as futuristic and impactful but less commercially driven outcomes.

When compelling experiences that work thanks to a decentralized architecture emerge, I’m confident that many kinds of business models will follow, including consumer devices, services, and others. Some of those devices will run FirefoxOS.  All will have the web stack built-in. As important, these things (or virtual things) will be cheap enough that cost and profitability won’t be the primary consideration. Instead, you’ll think about what you, your family, your neighborhood, your community need.  I could easily subsidize a fairly powerful computing service for all the children in my kids’ school.  Larger foundations could subsidize the same on the scale of countries.  Combining Shirky’s cognitive surplus and insanely cheap delivery systems means we can be freer from the stranglehold of short term economic thinking.  Bring in network-enabled funding models like Kickstarter, and we can keep baffling economists and conventional investors for a long while.

The Product Challenge

The conundrum, then, is to find those compelling experiences which thrive on a decentralized architecture, and not just try to force decentralization on experiences which work well in a centralized model.  As a “product person”, I’ll admit that it’s not easy to  wean oneself from the dominant world view, which favors neatly bounded and hard, polished exteriors (metaphorical and otherwise), where control is critical to quality, and where complexity is managed through barriers.  That’s why I’m so impressed with Ward’s thinking — he’s been starting with a decentralized architecture, and seeking to identify and facilitate outcomes that are easier, more natural in that world.  We need more such thinking.

When I start thinking that way, my mind wanders towards deeply personal systems and deeply meaningful relationships.  Private diaries.  Family-centric stuff (family recipes, private calendars, snapshots, secrets).  It is worth noting that Ward has seen his ideas resonate in tightly knit communities who need deep connections over ideas and data, but who aren’t seeking mass audiences.  More generally, I suspect that this kind of architecture will naturally complement  offerings from giant players by gravitating towards parts of our psychology which the giants aren’t built to serve.  Our need for quiet; play space; safe space.  Our need for a small number of deeply meaningful relationships. As the giants define what the “mall” style of interaction with the net is, I’m (finally) optimistic that we’ll see structures emerge that mirror many other social structures, from the self to the couple, family, school, workplace, church, interest club, support group, etc.

This future feels more humane. That’s worth working on.

What computing will she need, and who will build it?

Thanks to Havi Hoffman for her editorial help.

March 07, 2013 10:17 PM

March 06, 2013

Mike Conley

Code Spelunking – Australis Customization

Now that the Australis curvy tabs are in the polishing state, it’s time I turn my attention to the second part of Australis – the new customization experience.

Customizing Firefox’s UI has always been a little bit funky – you right click on a piece of chrome and choose Customize (or if you knew about it, go to View > Toolbars > Customize), and then a window pops up that lets you drag items to and from it. When this window is open, you are in the customizing state, so you can move buttons all over the place.

The new customization experience that the UX team has designed is quite a bit smoother. I can describe it, or, even better, I can show it to you.

Instructions:

  1. Go here to see bwinton’s awesome prototype
  2. Hide the main navigation bar for a more immersive experience (View > Toolbars > Navigation Toolbar)
  3. Click on the menu button in the right corner, and choose “Customize”
  4. WHOA
  5. Now drag some items from the customize palette onto the toolbar, or into your menu.

Pretty snazzy, and it does away with that old customize window, which is excellent.

Blair McBride has been working on this feature for a little while, but due to health issues, the project has been handed to Jared Wein and myself. And I suppose when Blair is back at 100%, it’ll be all three of us hacking on it. Or something like that.

So, everything I just wrote above? That was for you, to let you know what I’m looking at during my day. Everything below the “Notes to self…” header are my notes as I browse through the customization code as it is. Just going to jot down notes and observations, etc. You might find this interesting, since it will show you my thought process as I go.

Or you might think it’s just a confused and bewildered miasma of incoherent rambling and nonsense. Well, we’ll see how it goes.

Notes to self…

Glossary:

So I know we’ve got ourselves a panel, and there’s a whole bunch of customization logic. There was also this API thing that Blair was working on so that add-ons could specify widgets through their chrome.manifests. And there also appears to be some work to be somewhat backwards compatible with the ol’ overlay approach to adding widgets.

The big mama seems to be browser/modules/CustomizableUI.jsm. This module seems to be responsible for a ton of stuff, including (but not limited to):

There’s this notion of “customizable areas” too. It looks like we’re constraining the customizable areas for now, and so we have an area between the URL bar and the menu button that we can drag and drop items to. The panel is also an area. When we enter customization mode…

Ok, this is pretty neat. When we enter customization mode, we suck out the panel, and drop it into a panel holder in the customization tab. That way, we can see the panel and add to it while customizing. Ok, I get that.

There was originally the idea of de-coupling the panel from the customization code. That might actually still be possible. I had tried that earlier, but was discouraged when I found out that the CustomizationUI.jsm was responsible for populating the contents of that menu panel too, meaning that the panel code itself was rather useless without the customization stuff. Maybe this needs more thought – because it would be nice to de-couple them a bit more.

Maybe I should work harder at de-coupling the menu stuff from the customization stuff – especially now that it looks like the panel is a little more complicated than just a widget drop point. Now widgets can have “subviews”, like the bookmarks widget. This means that stuff either slides out or moves over in the panel when clicking on a particular widget. Having all of that jammed up in CustomizableUI.jsm isn’t ideal – maybe I can split it out to help us separate our concerns a bit more.

Ok, I think I’ve convinced myself. I’m going to spend the rest of the afternoon trying to devise a strategy to de-couple these two.

March 06, 2013 08:08 PM

David Ascher

Simple analogies as taglines are dangerous: do better

“It’s like YouTube for ___”

For a non-investor, I end up hearing a lot of pitches.  I even make pitches of my own (not for companies, but for product ideas — same basic idea).  Around Mozilla, we tend to say that things are “like the web” or “very Mozilla”.  Those are equally fuzzy analogies, which assume a shared conceptual map — a dangerous assumption. What if your audience thinks of the web as a scary, confusing, complicated place? or have a Mozilla concept that is anchored by a dinosaur?

In the startup world, a quick glance at Angel List shows how prevalent that phrase is among budding entrepreneurs.  It’s clearly both trendy and attractive to rely on other successes to explain your concept.  I’m here to warn you about what may be an attractive nuisance, but suggest a simple way to do it better.

Whenever you say something like “It’s like YouTube for _____”, or “like Pinterest but for ____,” you hope you’re concisely communicating a key part of your business or product idea but you could easily miss the mark, and not know it.  Analogies work to the extent that the analog is a concise description of a key concept, which you’re applying to a different market. The problem is that products, and especially successful products, are not that simple.  If I say “like YouTube”, my interlocutor will have a very different set of words pop into their minds depending on whether they’re an Italian judge, my kid, a devops, or a music industry executive.  The people you pitch to likely think differently than you do (after all, that’s likely why you want their attention, time, money, patches, whatever).  It’s therefore much too easy to confuse rather than elucidate.

My advice is to refrain from saying “like ____ for ___”, even though it feels nice to glow in the reflected glory from these successful precursors.

You can do better, and you should: there’s usually something in that appealing analogy which is the concept you’re trying to convey, so focus on that aspect of the inspiring product.  “It’s got the same instant gratification of Instagram, but with ___”.  “It’s as disruptive to an enterprise market as MySQL was, but targeting the  ___ market”.  By making the analogy precise, you bring your audience along where you want them, and you show that you understand one of the many reasons why these products were successful.

March 06, 2013 04:12 AM

March 01, 2013

Mike Conley

Australis Curvy Tabs: More Progress!

I wrote a while back about how Matt, Avi Halachmi and I have been ironing out performance problems with the Australis curvy tabs.

Well, it looks like that work is finally paying off.

Our SVG usage seemed to be the big slow-poke, and switching to PNGs gave us the boost that we needed.

But enough squawking, let’s see some charts.

Before Optimizations

Let’s compare – here’s a chart showing the difference between pre-curves and post-curves, before our optimizations:

A graph showing Australis curves performance measurements before optimizations

Here’s the before shot

Note: it’s been a while since I’ve done data visualization work. I think the last time I did this was in grad school. So there might be way better ways of visualizing this data, but I just chose the easiest chart I could manage with Google Docs. Just go with it.

Let me describe what you’re seeing here – we take samples every time a tab opens, and every time a tab closes*. What we’re measuring is the interval time (how long it takes before we start drawing the next frame), and the paint time (how long it takes to actually draw a frame).

The blue bars represent the performance measurements we took on a build using the default theme.  The red bars represent the performance measurements we took using the Australis curvy tabs.

This is where my graph could probably be clearer – in each group of four bars, the left two represent interval times, and the right two represent paint times.

So, hand-wavey interpretation – we regressed in terms of performance in both painting, and frame intervals, for tab opening and closing.

So that’s what we started with. And then we did our optimizations. So where did we get to?

After Optimizations

A graph showing Australis curves performance measurements after optimizations

Here’s the after shot!

The red bars shrunk, meaning that we got faster for both interval and paint times. In fact, for tab close, we beat the old theme! And we’re really super-close for tab open.

Pretty good!

Curvy tabs for all

Last night, Matt landed our optimization patches, as well as preliminary curvy tab work for OSX* and Linux GTK on our UX branch. So, if you’re on the UX branch (and why aren’t you?), you should be receiving a build soon with some curvy tabs. They’re not perfect, not by a long shot, but we’re getting into the polish stage now, which is good.

* Some notes on our measuring methodology. All tests were performed on a low-powered Acer Aspire One netbook. Intel Atom n450 processor (1.66Ghz), 1GB of RAM, running Windows 7. The device has no graphics acceleration support. We also switched to the classic theme to avoid glass. Avi wrote a patch that opened and closed a tab 15 times, and averaging the frame intervals and paint times for each frame. Those were averaged over the 15 openings and closings. We then ran that test 4 times, giving the machine time to “relax” in between, and averaged our results.

* We don’t have hi-dpi support yet, so if you’re on a Mac with a Retina display, your curves might be fuzzy. We’re working on it.

March 01, 2013 07:07 PM

February 26, 2013

Thunderbird Design

Some small fixes (and a large one!) for Thunderbird’s UI…

Some small fixes (and a large one!) for Thunderbird’s UI…:

There are certainly some interesting thoughts here, and if people wanted to pick up the smaller ones, and drive them into the product, that would make me quite happy.  :)

February 26, 2013 07:00 PM

February 23, 2013

Rumbling Edge - Thunderbird

2013-02-22 Calendar builds

Common (excluding Website bugs)-specific: (17)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

February 23, 2013 03:33 AM

2013-02-22 Thunderbird comm-central builds

Thunderbird-specific: (15)

MailNews Core-specific: (18)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

February 23, 2013 03:32 AM

February 18, 2013

Robert Kaiser

LCARStrek 2.16 Brings Updated Look

Every six weeks, it's time for a new release of Firefox and SeaMonkey, and along with them, updates for my EarlyBlue and LCARStrek themes to match those Firefox and SeaMonkey releases. Of course, I personally am using them with the Nightly versions and try to keep them working with those, so they are usable with newer versions already, but only after I incorporate changes from the beta cycle, they're really fully up to date with the release versions.

That said, I kinda had my worries with the buttons of LCARStrek being not really discoverable unless you move your mouse over them, and also about the theme feeling "too orange", esp. after I reviewed some shots of LCARS screens in Star Trek series and once again saw both the shapes of buttons there, which are very discoverable, and also the amount of colors used there.

So I finally decided to something about it and added some gradual changes to LCARStrek 2.16, see e.g. the buttons, tab and scrollbars colors in those two screenshots (left is a Firefox release with 2.15, right is a Nightly with 2.16, that's why it also has an additional "Data Choices" tab):

Image No. 23116Image No. 23120

The new colors are taken directly from video screenshots of the series, so they should be pretty "true to the original". Actually, I copied the colors for buttons and default buttons directly from buttons in those screen shots. Trying to apply the same color to more button-like elements, I also converted buttons to that color and a larger border radius similar to that of the fully-rounded buttons.

While I was at it, I also took the orange off the primary toolbars and replaced it with a gray color taken from some screen that I think I saw on Voyager shots. And I always wanted to get some more of the connected horizontal and vertical borders found usually in LCARS screens, but that needs to have enough elements to construct, so it's hard to do in a theme. I found a way to get this design into the SeaMonkey sidebar though - and also used that new button color for its headers which act similarly to buttons as well. See those two screenshots from LCARStrek 2.0 (left) and now 2.16 (right) on SeaMonkey (of course, some small non-theme-reated changes in SeaMonkey UI are visible as well, as the application itself saw some development since 2.0):

Image No. 23114Image No. 23117

I hope I caught all the fine details that come along with far-reaching changes like esp. the one for the buttons, I've done a number of corrective changes along with this.
Still I had some time left and enough elements to play with to give SeaMonkey's profile switcher some real beauty in LCARS terms (you also see the different color for default buttons in there):

Image No. 23119

Unfortunately, this only applies to "Switch Profile…" from within a running SeaMonkey profile, as a theme like LCARStrek can only apply in that situation and not on the profile manager seen on application startup, where no profile and therefore no add-on or theme is loaded yet.

The new LCARStrek 2.16 version has been submitted to AMO, but is waiting for review now. Once that is granted, all users of this theme will see that updated look, and I hope they'll like it! :)

I probably will work on updating the look of more parts of this theme as time allows and I find things that should look differently.

February 18, 2013 05:46 PM

February 16, 2013

Joshua Cranmer

Why software monocultures are bad

If you do anything with web development, you are probably well aware that Opera recently announced that it was ditching its Presto layout engine and switching to Webkit. The reception of the blogosphere to this announcement has been decidedly mixed, but I am disheartened by the news for a very simple reason. The loss of one of the largest competitors in the mobile market risks entrenching a monoculture in web browsing.

Now, many people have attempted to argue against this risk by one of three arguments: that Webkit already is a monoculture on mobile browsing; that Webkit is open-source, so it can't be a "bad" monoculture; or that Webkit won't stagnant, so it can't be a "bad" monoculture. The first argument is rather specious, since it presumes that once a monoculture exists it is pointless to try to end it—walk through history, it's easier to cite examples that were broken than ones that weren't. The other two arguments are more dangerous, though, because they presume that a monoculture is bad only because of who is in charge of it, not because it is a monoculture.

The real reason why monocultures are bad are not because the people in control do bad things with it. It's because their implementations—particularly including their bugs—becomes the standards instead of the specifications themselves. And to be able to try to crack into that market, you have to be able to reverse engineer bugs. Reverse engineering bugs, even in open-source code, is far from trivial. Perhaps it's clearer to look at the problems of monoculture by case study.

In the web world, the most well-known monoculture is that of IE 6, which persisted as the sole major browser for about 4 years. One long-lasting ramification of IE is the necessity of all layout engines to support a document.all construct while pretending that they do not actually support it. This is a clear negative feature of monocultures: new things that get implemented become mandatory specifications, independent of the actual quality of their implementation. Now, some fanboys might proclaim that everything Microsoft does is inherently evil and that this is a bad example, but I will point out later known bad-behaviors of Webkit later.

What about open source monocultures? Perhaps the best example here is GCC, which was effectively the only important C compiler for Linux until about two years ago, when clang become self-hosting. This is probably the closest example I have to a mooted Webkit monoculture: a program that no one wants to write from scratch and that is maintained by necessity by a diverse group of contributors. So surely there are no aftereffects from compatibility problems for Clang, right? Well, to be able to compile code on Linux, Clang has to pretty much mimic GCC, down to command-line compatibility and implementing (almost) all of GCC's extensions to C. This also implies that you have to match various compiler intrinsics (such as those for atomic operations) exactly as GCC does: when GCC first implemented proper atomic operations for C++11, Clang was forced to change its syntax for intrinsic atomic operations to match as well.

The problem of implementations becoming the de facto standard becomes brutally clear when a radically different implementation is necessary and backwards compatibility cannot be sacrificed. IE 6's hasLayout bug is a good example here: Microsoft thought it easier to bundle an old version of the layout engine in their newest web browser to support old-compatibility webpages than to try to adaptively support it. It is much easier to justify sacking backwards compatibility in a vibrant polyculture: if a website works in only one layout engine when there are four major ones, then it is a good sign that the website is broken and needs to be fixed.

All of these may seem academic, theoretical objections, but I will point out that Webkit has already shown troubling signs that do not portend to it being a "good" monoculture. The decision to never retire old Webkit prefixes is nothing short of an arrogant practice, and clearly shows that backwards compatibility (even for nominally non-production features) will be difficult to sacrifice. The feature that became CSS gradients underwent cosmetic changes that made things easier for authors that wouldn't have happened in a monoculture layout engine world. Chrome explicitly went against the CSS specification (although they are trying to change it) in one feature with the rationale that is necessary for better scrolling performance in Webkit's architecture—which neither Gecko nor Presto seem to require. So a Webkit monoculture is not a good thing.

February 16, 2013 04:39 AM

February 15, 2013

Joshua Cranmer

Updated DXR on dxr.mozilla.org

If you are a regular user of DXR, you may have noticed that the website today looks rather different from what you are used to. This is because it has finally been updated to a version dating back to mid-January, which means it also includes many of the changes developed over the course of the last summer, previously visible only on the development snapshot (which didn't update mozilla-central versions). In the coming months, I also plan to expand the repertoire of indexed repositories from one to two by including comm-central. Other changes that are currently being developed include a documentation output feature for DXR as well as an indexer that will grok our JS half of the codebase.

February 15, 2013 06:37 PM

Instantbird

Google Summer of Code 2013

Mozilla is doing Google Summer of Code 2013 and Instantbird is interested in participating again. Instantbird participated (through Mozilla) the last two years with JS-XMPP (by varuna in 2011) and the Import Wizard (by wnayes in 2012).  Both projects were successful: Instantbird and Thunderbird use our JavaScript XMPP code and we’re hoping to integrate the Import Wizard into Instantbird soon, after which the UI could then be uplifted into Thunderbird.

It is time to start thinking about (and brainstorming) ideas for the chat in this year’s GSoC! We’ve already started brainstorming and came up with some ideas, but would love to get more ideas from people. Remember that a good GSoC project needs to be something that can be completed by a student in ~8 weeks (but also has to keep a student busy the whole time!).  It should also be something that we would want to integrate into Instantbird by default and have expected behavior already defined.

Feel free to come chat with us on IRC (#instantbird on irc.mozilla.org) about this or any other topic!

February 15, 2013 02:28 PM

February 13, 2013

Mike Conley

Making Australis Tab Animations Faster

The Firefox desktop team gathered in Toronto a few weeks back to hack together, and to discuss how we’re going to tackle 2013.

I can tell you right now, it’s going to be a fantastic year for Firefox.

Asa Dotzler has a great high-level write-up of some of the stuff we talked about, but I want to focus in on something Matt Noorenberghe and I were working on: beautiful curvy tabs.

An Australis tabs mockup

Mmmmm…that’s the stuff.

That’s what I’m talking about, right there.

These curvy-tabs are already available for Windows in the UX Nightly builds, and I’ve been using them for a few weeks. And they feel great. It’s actually painful to go back to the boxy, noisy, square tabs in the current default theme. Using the old boxy tabs feels like I’ve gone back in time – and not in a cool way.

Even Chrome’s 45° angle tabs feel just a little too machine-like and impersonal in comparison, in my opinion.

A screenshot of Google Chrome's tabstrip on OSX

Chrome’s 45° tabs

Having a more fluid and minimal tab strip in Firefox is great, but it’s only great if it performs well. Fluid and fast is the name of the game, and that’s what Matt and I were looking at; we were trying to find ways of speeding up tab opening and closing animations.

We’ve been working with the Performance Team on this, and we’ve been gathering some really interesting data. Probably the most interesting stuff is when we make a change that we expect to improve performance, and it doesn’t deliver. Or, even worse, it causes performance to be poorer. That’s usually a very surprising result.

We ran into such a result late last week, when we tried changing how we put a gradient on top of the selected and hovered tabs. We had originally been using the CSS linear-gradient function, and the Graphics Team told us that using a tiled background-image with some opacity (like a PNG) would improve performance.

Well, we generated our gradient as a PNG, tossed it in, and did our measurements. Lo and behold, performance worsened somewhat, and we’re still not exactly sure why. I’ve filed a bug on this, and I’m hoping we can get it resolved soon. Switching to PNGs for gradients was supposed to be an easy win, and the Graphics Team was pretty surprised by our result.

Matt and I tried a bunch of different ideas to speed up tab animations, and slowly but surely, the needle started to move in our favour. We’re getting close to matching the performance of the current square tabs, but we’re going to see if we can push it over the edge and bank ourselves an overall performance win.

Fluid is good, but fluid and fast is the best. We’re getting there.

February 13, 2013 03:14 AM

February 12, 2013

Calendar

Lightning 1.9.1 Release Candidate Available

We are happy to announce that a Release Candidate for Lightning version 1.9.1 is now available for testing here. For those using linux, please use the build in the linux/ folder rather than the platform-specific folders. Windows users can find their builds in the “unsigned” folder.

This version fixes an issue that prevents some events from being modified and some reminders from being dismissed in CalDAV calendars with Offline Support enabled – those affected are encouraged to test this build. If you have seen an error message with “this.mItemInfoCache[aNewItem.id] is undefined”, this is you! Be sure to reset your cache, by unchecking the “Offline Support” checkbox, restarting, then checking it again.

The full list of changes in this version can be found here.

It is really important that you test this pre-release, as it will become the next release for Thunderbird 17. There is no additional beta phase, this is it! If you are using Thunderbird 17, please give it a try and let us know if you encounter any errors.

February 12, 2013 10:39 AM

February 10, 2013

David Ascher

Ruminations on front end-centric webapps

I’ve been poking around firebase & meteor, and sparkleshare+github and dropbox+site44. I’m a bit disturbed (in a good way) by what feels to me like a sea change that’s happening there, and it seems to me that almost anyone thinking about web developers writ large needs to think hard about what this means for their roadmap.

In particular, a few brief thoughts:

I’ve been, for a while now, using sparkleshare + github pages with CNAME support as a way of making trivial static sites that are real. Sparkleshare is an open source git-syncing-to-filesystem client (with nice ergonomics and design, OMG!). With github-pages and CNAME support, this means that I save in my favorite text editor, and within _seconds_ the thing is live on the web. That’s a disruptive flow.

I’ve been coaching the harp.io team through WebFWD, and they have a service which does similar things on top of Dropbox, including coffeescript/haml processing, CDN, load balancing, push-button deploy, screenshotting for multiple user agents, rollback, etc. In other words, you author your webapp locally on a dropbox folder, and they take care of high-quality, high performance hosting. There is no app-specific server-side logic (which means you need to either have static sites or integrate with hosted services for said features).

I recently ran into site44.com, which does a ‘cheap & cheerful’ version of what harp.io does, with no push-button deploy/rollback, and much more like sparkleshare — instant deploy, with little management capabilities (but instant gratification).

Both harp.io and site44 use Dropbox for syncing, which is a Big Idea in my opinion because setting up Dropbox is so much easier than setting up git credentials (what with SSH keys, etc.). Both assume that the user has write access to local files (which may be a problem in some retrograde environments like enterprises and schools, but which could be solved with web-based editors).

I finally bit the bullet and dig in again into Firebase. Firebase is effectively a key-value store, with Pubsub messaging of data changes. They’ve made some interesting progress in their security and auth models (they include persona support, which is cool). Firebase feels like it makes it trivial to add state and real-time behaviors to previously static sites. The API surface area is quite small, so it should be fairly easy to adopt.

I’m also looking again at Meteor. Since they first launched w/ both fanfare and a bit of ridicule due to overhype, they’ve cleaned up their act significantly: the license is now MIT, they’ve announced $11M in financing from tier-1 VCs, announced an enterprise business plan to complement their open source offering, and build a bunch of APIs. Meteor feels like a steeper learning curve, and another “at-bat” for reactive programming (a topic I’ve been interested in for a decade).

Meteor feels like a solid foundation for a potential full-stack offering, and I like the open source option; Firebase feels like a really compelling basis for demoware and hacks. Regardless, syncing from filesystem to websites without thinking too hard about deployment is a huge benefit of front-end-driven sites.

Single-page apps feels to me like the conceptual next hurdle. Figuring out how to manage history and state management so that the app feels as dynamic as the best webapps, but has good URL support, etc., is an engineering challenge (see e.g. history.js). And it certainly challenges the old mental model of one URL -> one file which pulls down other resources. The newer model (especially on mobile, low-latency devices) needs to be one app -> many URLs, with one core application logic which pulls data-as-JSON and builds most state clientside (with serverside rendering as an optimization for high traffic or slow-CPU environments, as per airbnb’s post).

I’m not sure what this means for advanced webmaker skills. At the very least explaining some of the above to a broader audience is something we could do.

February 10, 2013 12:08 AM

February 06, 2013

Rumbling Edge - Thunderbird

2013-02-05 Calendar builds

Common (excluding Website bugs)-specific: (0)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac (2013-01-30 build)

February 06, 2013 08:49 AM

2013-02-05 Thunderbird comm-central builds

Thunderbird-specific: (8)

MailNews Core-specific: (13)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac (2013-01-30 build)

February 06, 2013 08:47 AM

Meeting Notes

Thunderbird: 2013-02-05

« previous week | index | next week »

Thunderbird Meeting Details :

Remember to use headphones and mute yourself when not talking

Feel free to ask questions in the meeting either by speaking up or by asking them in #maildev on IRC.

Other ways to get in touch with us can be found on our communications page

Meeting Changes

Critical Issues

  • none

Upcoming

  • Firefox is releasing 18.0.2 – doesn’t affect us.

Action Items

  • Standard8: Update Wiki status meeting page with calendar link – DONE!

  • Standard8: Document flags to tb-planning
  • Standard8: Follow up with metric numbers being public – This should be happening soon, work has been done, waiting for final approvals
  • Look into having the notes blogged
  • We need to get the meeting notes blog to pick up the pages again.

Friends of the Tree

Thanks to our Friend of the Tree. When adding someone to this section, please get their T-Shirt size, phone number (needed for shipping!) and send it to abourcier@mozilla.com that she can send them a shirt!

Status Updates

  • Standard8

    • Apologies for not being at the meeting today

    • Fixed a bunch of tree bustage this week
    • OS X builds being looked into (Bug 837618)
    • Been working with releng on getting 17.0esr and 17 mainstream building from one repository – various branding updates etc.
    • Aiming to catch up on reviews end of this week / start of next
    • Next week is preparation for builds for the 17.0.3 releases
    • Merge date for next cycle is 19th Feb (not 18th due to holidays: President’s day in USA; Family Day in Toronto; Vancouver Family day is February 11 for some strange reason)
  • mconley
    • Spent a few hours going through my review queue this past weekend

    • Queue is shrinking, but still needs attention. I’ll get there soon.
    • Ensemble
      • Can save and update contacts very nicely with syntax like this: http://www.pastebin.mozilla.org/2116543

      • Working on asynchronously retrieving all contacts with Promises, returning a Backbone Collection.
      • Considering altering the roadmap so that we target read-only capability for imported contacts for TB 24.s
        • Focusing on that will reduce focus on LDAP/Facebook/etc connectors.

        • Does anyone from the community want to help out with those?
        • Ludo says “+1″.
  • bwinton
    • Also spent a few hours going through my review queue this past weekend.

    • Queue is also shrinking, but still needs attention.  :)
  • jcranmer
    • Will not be at meeting

    • e4x is now dead and gone FOREVER! Thank-you!!!!!!!
    • Hoping to have m-c ready for subconfigure scripts shortly (see https://bugzilla.mozilla.org/show_bug.cgi?id=648980) [prerequisite for cc-rework]
    • JS MIME
      • Next piece of functionality is i18n support (RFC 2047/RFC 2231)

      • Designing body/attachment and htmlifiers API still
    • de-RDF
      • Repreparing the folder-lookup patch based on mailing list feedback
    • DXR work and exams will probably suck up more of my time in the next few weeks
  • aceman
  • Roland Tanglao
  • Usul
    • followed on some bugs

    • looked quickly at crashes
    • Marketing – AM is in the process of giving the keys to Benjamin.
    • Talked to Sun (yes it’s true they still have a team of 1 plus students working on old version about using Moztrap instead of Litmus
  • clokep
  • Irving
    • Occasional reviews

    • Looking at bug 701533; appears to be symptom of a general problem with front end dropping all references to an IMAP socket without closing it; when NSS times out and closes the socket, references get released on the wrong thread.
  • Axel

Question Time

  • Can anyone steal reviews for any module, or does it need to be a peer?

    • You have to use your best judgement. If it’s a trivial fix, or fixing something you feel you understand, then go for it. In Florian’s case, he should probably just take it.  ;)

Attendees

Roland Tanglao, Mike Conley, Irving Reid, Blake Winton, Ludovic Hirlimann, Florian Queze, aceman (audio, no mic), clokep (audio, no mic), RealRaven aka Axel :) (no mic here as well)

February 06, 2013 04:00 AM

January 26, 2013

Siddharth Agarwal

New version of ntfsutils

I've released a new version of the ntfsutils library for Python.

The small spin-off project from some work I did at Mozilla became far more popular than I expected, netting over 600 downloads last year. Pretty neat!

January 26, 2013 06:30 AM

January 23, 2013

Blake Winton

Saving and restoring your tabs when resetting your Firefox profile.

A while ago, I noticed that my Firefox was starting to run slower and slower. One of the common suggestions to fix that kind of problem is to reset your profile, and while I think that’s a good idea the biggest problem for me was that resetting my profile would not save my open tabs. Since I have 75 of them, trying to remember them all would be a bit of a problem. (Some people would suggest that having 75 open tabs is also a problem, but fie to them I say! Sure, I’m a little bit above the average, but I’ve hit a flow that works for me. :)

Fortunately, I’m a coder at heart, so I did what any coder would do, and wrote some code to save and restore them for me. A few days later, one of my co-workers wanted to do the same thing, so I ran similar code on his computer, and since at least the two of us found it useful, I thought it might be a good idea to post the code here so that other people might benefit from it, too.

First of all, we need a little bit of setup to prepare your computer to save the tabs.

  1. Go to Tools » Web Developer » Scratchpad to open up the Scratchpad. (This is where we’ll be doing most of our work.)

  2. Click Environment » Browser to make sure the Scratchpad is running in the browser’s context, so that it can access the list of tabs.

  3. Paste the following code into the Scratchpad:

    var x = gBrowser.tabs;
    var rv = 'var tabs = [\n';
    for (var i = 0; i < x.length; i++) {
      rv += '  "' + x[i].linkedBrowser.contentWindow.location + '",\n';
    }
    rv += '];\n';
    rv += 'for (var i = 0; i < tabs.length; i++ ) {\n';
    rv += ' gBrowser.addTab(tabs[i]);\n';
    rv += '}\n\n';
    
    rv
    
  4. Click Execute » Display This will output stuff in comments (“/*…*/”) that looks like this:

    var tabs = [
      "http://twitter.com/bwinton",
      /* … */
      "http://weblog.latte.ca/blake/tech/",
    ];
    for (var i = 0; i < tabs.length; i++ ) {
     gBrowser.addTab(tabs[i]);
    }
    
  5. (This is the big step!) Save that code to an external file, and run the profile reset.

  6. Then, in your new profile, open the Scratchpad, and set the Environment to Browser again just like above, and paste in the code you saved.

  7. Finally, hit Execute » Run, and all your tabs should be restored! (If you’ve split them up into tab groups, the code I provided will save all your tabs, but will restore them all into one group, so you’ll need to re-group them after restoring. I thought about fixing the code to save a list of groups, but I didn’t really need to, so never got around to it. ;)

I hope this helps some of you, and please feel free to leave a comment letting me know whether you found it useful or not, or if you come up with any additions or changes to make it work better!

January 23, 2013 05:18 PM

January 22, 2013

Rumbling Edge - Thunderbird

2013-01-21 Calendar builds

Common (excluding Website bugs)-specific: (4)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

January 22, 2013 12:38 AM

2013-01-21 Thunderbird comm-central builds

Thunderbird-specific: (6)

MailNews Core-specific: (9)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

January 22, 2013 12:36 AM

January 21, 2013

Joshua Cranmer

DXR's future potential

The original purpose of DXR, back when the "D" in its name wasn't a historical artifact, was to provide a replacement for MXR that grokked Mozilla's source code a lot better. In the intervening years, DXR has become a lot better at being an MXR replacement, so I think that perhaps it is worth thinking about ways that DXR can start going above and beyond MXR—beyond just letting you searched for things like "derived" and "calls" relationships.

The #ifdef problem

In discussing DXR at the 2011 LLVM Developers' Conference, perhaps the most common question I had was asking what it did about the #ifdef problem: how does it handle code present in the source files but excluded via conditional compilation constructs? The answer then, as it is now, was "nothing:" at present, it pretends that code not compiled doesn't really exist beyond some weak attempts to lex it for the purposes of syntax highlighting. One item that has been very low priority for several years was an idea to fix this issue by essentially building the code in all of its variations and merging the resulting database to produce a more complete picture of the code. I don't think it's a hard problem at all, but rather just an engineering concern that needs a lot of little details to be worked out, which makes it impractical to implement while the codebase is undergoing flux.

Documentation

Documentation is an intractable unsolved problem that makes me wonder why I bring it up here…oh wait, it's not. Still, from the poor quality of most documentation tools out there when it comes to grokking very large codebases (Doxygen, I'm looking at you), it's a wonder that no one has built a better one. Clang added a feature that lets it associate comments to AST elements, which means that DXR has all the information it needs to be able to build documentation from our in-tree documentation. With complete knowledge of the codebase and a C++ parser that won't get confused by macros, we have all the information we need to be able to make good documentation, and we also have a very good place to list all of this documentation.

Indexing dynamic languages

Here is where things get really hard. A language like Java or C# is very easy to index: every variable is statically typed and named, and fully-qualified names are generally sufficient for global uniqueness. C-based languages lose the last bit, since nothing enforces global uniqueness of type names. C++ templates are effectively another programming language that relies on duck-typing. However, that typing is still static and can probably be solved with some clever naming and UI; dynamic languages like JavaScript or Python make accurately finding the types of variables difficult to impossible.

Assigning static types to dynamic typing is a task I've given some thought to. The advantage in a tool like DXR is that we can afford to be marginally less accurate in typing in trade for precision. An example of such an inaccuracy would be ignoring what happens with JavaScript's eval function. Inaccuracies here could be thought of as inaccuracies resulting from a type-unsafe language (much like any C-based callgraph information is almost necessarily inaccurate due to problems inherent to pointer alias analysis). The actual underlying algorithms for recovering types appear known and documented in academic literature, so I don't think that actually doing this is theoretically hard. On the other hand, those are very famous last words…

January 21, 2013 05:57 PM

January 17, 2013

Robert Kaiser

"Webby" browser UI on mobile? It's FirefoxOS or nothing.

I've always been a huge fan of the idea of rendering (browser) UI with the web rendering engine and write even the UI itself in a "webby" language. This idea AFAIK came up at Netscape somewhere in 1998 when the new Gecko engine for Mozilla was built. Unfortunately, HTML wasn't in a shape back then to be used for writing complex UI, and actually was quite far away from doing that 15 years ago. The basic concept looked good though, and so an intermittent technology was created to build a UI language on similar concepts, using as much of the JavaScript and CSS from HTML as possible and a markup document written in something like "HTML for UI", which ultimately became XUL ("XML UI Language").

Firefox on desktop, as well as Thunderbird, SeaMonkey, BlueGriffon and others are written using XUL for all their UI, and it's working great there. Actually, this is what even lured me into contributing to Mozilla in the first place - I saw that the UI was written in a way that I could understand back then, as someone who had played around with writing HTML, including some CSS and tiny bits of JS. I felt right at home when I saw that a button in the UI was a <button> in the markup, and that markup followed basically the same, albeit stricter (due to being XML), rules as the HTML I knew. Sure, the tag names were a bit different, but it's UI, and they were easy to understand.
Of course, another import aspect was that this UI would work on any platform you could build Gecko for, be it Windows, Mac and Linux, or even OS/2, Solaris, BeOS and others (including exotics such as AmigaOS). Of course, to fit really in with the host OSes, a number of specific tweaks were added esp. for the mainstream ones, but it works without them, just doesn't integrate as well. As soon as you can compile the Mozilla engine (which takes enough effort anyhow), you also get the full UI, which is a nice deal.
And, of course, the extension system we built over the years has largely been based upon the concepts of XUL, but I won't go into depth on this right here.

Even on mobile devices, Mozilla used that concept for a while. That was great for portability, as you had a working browser with all UI once you could get it to compile somewhere. Hell, I even ran SeaMonkey on a Nokia N810 (a 4.1" Internet tablet) - with the full UI! Of course, that UI was way too small and too overloaded for use on a touch screen, but, being XUL, it loaded and could be used if you managed to tap the correct points with the stylus.
So, for portability, including getting it to run on new devices, this XUL UI was great - and of course, some XUL UI was created that would work decently on those small touch-screen devices. I like the concepts and UI of our modern mobile Firefox browsers (both look similar, see below) better, but we had a usable, easily hackable, nicely extendable UI built with XUL. When Android became a larger deal on mobile, we could just use that and make it work on this system as well, and had something usable pretty fast.



All would have been perfect if it wasn't for one problem: If you render all your UI with the web renderer, it means that you need to load up this rendering engine in its full glory before you can paint any UI at all. And with the web becoming more powerful, what needs to be loaded for that became pretty large, and with loading from permanent storage into memory being pretty slow on those weakly powered mobile devices, it meant waiting times of multiple seconds (on some devices 15 seconds and more) - while the same "smartphone" devices were propagating more and more the concept of instantly launching apps.
Back in 1998, waiting several seconds for an application to start was common and it was OK for Netscape or Mozilla browsers to do the same, maybe display a "splash screen" while the user was waiting for that. Now, in the fast-living world of smart phones, the usage patterns as well as the expectations have changed enough that this waiting time is what instantly (no pun intended) your app is being shot down by users for that, and nobody but your strong supporters (which Mozilla fortunately has) will use it. Things needed to change. And they did.

Basically, there's two ways Mozilla had to make the browser UI start fast: Either write it in a way that it used the "native" toolkit of the hosting OS and not depend on the rendering engine to launch (so that can be loaded lazily in the background), or to have that "native" toolkit of the system be our rendering engine already!
Well, as funny as it sounds, we ended up doing both!

On Android, we did the former, write a "native" (i.e. Java) Android app, which is very fast to be displayed as all the Java/Dalvik framework is already loaded, and load Gecko in the background once the UI is up - while the user interacts with the UI to e.g. enter a site to call up, we have enough time for that so Gecko is ready to display the actual websites once it's needed.
Unfortunately, that "native" UI is not "webby" any more, Java is very different from HTML/XUL/CSS - though AFAIK we are using quite a bit of JS to driver things, so there's at least some pieces left that someone like me would still understand. Oh, and as my job nowadays is stability, Java exceptions crash the browser, while we don't have that problem with JavaScript, and the amount of crash reports rose up significantly with that UI rewrite (the team is doing a great job on fixing them, though, and we've become actually pretty good in stability there nowadays). To be fair, we also added support for the Flash plugin, which seems to be causing by far the most stability problems with this version. All that said, this new Firefox for Android is really fast, esp. on startup, and works incredibly well, it's getting cheered as the best browser for Android by many - compare that with the quite bad reputation that the XUL-based version had and you need to admit this was a good change - even if you happen to be me. ;-)

Well, and then there's this thing that I mentioned with the "native" toolkit of the system be our rendering engine, and then you can use web technologies for the mobile browser UI, right? That's what we're doing in Firefox OS!
On that system, the whole UI of everything you see on screen is rendered by Gecko. And not just that, Mozilla took the final step and didn't even do it with XUL, but used plain HTML this time, so that everything running on this system is made of pure web apps (sure, with some new WebAPIs thrown in). All that said, there's some things in UI design where HTML still needs to catch up to XUL, but those mobile apps are working really nicely already (still, mobile has less UI with less complexity and less need for cross-app consistency, so the particular weak spots I'm thinking of don't come to light that much).
What it comes down to for what I want to say here is that in Firefox OS, we indeed have a browser on mobile which has its UI completely rendered by the web rendering engine (again) - but this time, not done in XUL but in plain HTML!

And it looks pretty good, compare our "native" Android UI to our Firefox OS UI and you'll see that there are some similarities:



And, go ahead and try yourself, e.g. in the simulator, it even pretty much works the same!

Time to come to the reason I actually brought this up today: You might ask what happened with the XUL-based UI for mobile, which I said was nicely portable to different devices (and older builds of which I still have in use on my "real-Linux-powered" N900 and N9 phones)? Well, it's dead and gone. And even its source has been removed today from our mozilla-central repository. So, if you want a browser with a "webby" UI on mobile, your only chance from now on is Firefox OS. (That is, if nobody comes along and resurrects a XUL UI for alternative mobile platforms in some external project.)

All that said, I'm excited that the original idea of rendering the UI with the browser engine survives on mobile - and actually thrives and is being hugely extended to powering the whole system, in Firefox OS! :)

January 17, 2013 04:23 PM

January 14, 2013

Thunderbird Design

Re thunderbird tabs on top rationale: If you need to change the thunderbird so much in order to accomodate for extra functions - like calendars or advanced searches or whatever - so much that the new design has disadvantages on e-mail usability - that may be a heavy indication that all these things are sufficiently different to NOT belong into an e-mail client. Why not remember the old Unix motto: One task, one tool. That way, we can keep one layout for e-mailers, and another for calendars.

I haven’t seen any data that suggests that placing the toolbar below the tabs has any disadvantage on e-mail usability.  Some people don’t like it, but that’s hardly justification for your claim.

Furthermore, two of the main tasks we hope to put in tabs are composing email and looking up addresses.  Both of those have their own toolbars with different buttons from the message window’s.  And both of those are functions which have been in Thunderbird for years.  (Perhaps Thunderbird should split up into an mh-style set of programs, but I think you’ld be hard pressed to try convincing the current community that that would be a good direction to go.)  I will also assert that being able to easily add meeting invitations from e-mail messages to your calendar is an important part of many people’s jobs, and that there is a lot of use in being able to quickly and accurately find messages you’ve stored, and so a set of disconnected tools would not be in our users’ best interests.

Thanks for your question!

January 14, 2013 01:44 AM

January 08, 2013

Robert Kaiser

The Cloud

This xkcd comic appeared under a different title, but even if Instagram was the recent case that brought up discussions like that, you can say the same for almost any cloud service, including the likes of Facebook, proprietary app stores, Dropbox, and a ton of others:



Just look for example at this piece of the terms of yet another cloud service that I was asked to sign on recently:
Quote:
You retain full ownership to your Content, but you agree to grant us a worldwide, non-exclusive, irrevocable, transferable, perpetual, royalty-free license (with the right to sublicense) to use, copy, reproduce, process, adapt, modify, publish, transmit, edit, translate, make derivatives, display and distribute such Content in connection with providing the Service to you and other users in accordance with your settings on the Service. In connection with providing the Service, we may modify or adapt your Content in order to transmit, display or distribute it over computer networks and in various media and/or make changes to your Content as are necessary to conform and adapt that Content to any requirements or limitations of any networks, devices, services or media.

So, basically, the cloud service can do anything with any content put in there. Anything put on there cannot be a "secret" and must be seen as being public - and of course the content and any data derived from it (like behavior, etc.) can and will be sold to others - after all, the cloud provider needs to earn money with something.

A long-standing saying about the cloud is that "if you aren't paying for the product, you are the product being sold". Everyone creating a service wants to feed him/herself and make a living, at least, and the money for that needs to come from something. I'm not saying I'm against cloud services, they enable some cool stuff at times, but you always should be aware that you hand over control to the service provider. And I feel better with any service that's telling me how they're generating the money to enable a living for their employees. Those that don't are the ones that make me feel worried when "putting my stuff in their garage".

If you want to keep control over your content yourself, there's of course a number of open and distributed alternative services out there that you can look into, for example Diaspora*, Open Web Apps, Persona, OpenPhoto, ownCloud, and others. :)

January 08, 2013 08:58 PM

January 04, 2013

Rumbling Edge - Thunderbird

2013-01-03 Calendar builds

Common (excluding Website bugs)-specific: (0)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

January 04, 2013 08:11 AM

2013-01-03 Thunderbird comm-central builds

Thunderbird-specific: (9)

MailNews Core-specific: (28)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

January 04, 2013 08:10 AM

December 25, 2012

Jonathan Protzenko

So I figured out I should try out the Addon SDK

So I figured out I should try out the Addon SDK. Jeff Griffiths and Erik Vold finally convinced me at the latest MozCamp that it was worth a try, so for my latest project (a lightweight revival of FireGPG), I decided to go the Addon SDK route. I'm a Thunderbird addons developer, so although I'm very familiar with all the Gecko and Thunderbird parts, I'm not familiar with Firefox-specific extensions. I thought the Addon SDK would save me the trouble of finding out which parts of the UI to overlay, and so on.

The short version is that it's been a very pleasant experience, and I believe it did save me a lot of time, but some of the shortcomings of the Addon SDK are really frustrating. Don't get me wrong: all in all, I believe it's an amazing experience for a newcomer, and I'm sure it's made developing addons much easier and much more fun than it used to be a few years ago.

The good parts:

The weird parts:

The frustrating parts:

For the last three items, bugs have been filed (respectively bug 824489, bug 824348 and bug 824482). I'm really hoping for the latter to be fixed, since it basically makes half of my addon useless. In the event that no one has the time to fix it, I'll probably have to rewrite the addon to not use the SDK.

I would like to thank KWierso for his help in #jetpack, he was instrumental in achieving what I wanted to do. My warmest congratulations to the Addon SDK team for making the addon landscape usable, and my best encouragements for fixing the various shortcomings!

PS: for the curious, the code lives on GitHub.

December 25, 2012 11:33 PM

December 17, 2012

Rumbling Edge - Thunderbird

2012-12-17 Calendar builds

Common (excluding Website bugs)-specific: (0)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

December 17, 2012 09:30 PM

2012-12-17 Thunderbird comm-central builds

Thunderbird-specific: (14)

MailNews Core-specific: (6)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

December 17, 2012 09:26 PM

Robert Kaiser

Thirteen

Being born on a 13th (just like my brother), I've always considered the number 13 as somewhat of a "lucky number" for myself. And today, it's been 13 years since I started contributing to Mozilla!

It's been an interesting ride for sure so far, as a localizer, theme designer, build patch contributor, project leader/coordinator/manager, even JS/XUL author, add-on and web app developer, and nowadays paid-by-Mozilla contributor in stability tracking - just to name a few of the main things.

In those 13 years, Mozilla has changed my life, and enabled me to make a living out of idealism. It's crazy and awesome at the same time, or, I guess, actually crazy awesome! ;-)

And now, we're looking forward to achieve great things in "the year 13" that's upcoming in just a few weeks, and where we'll be trying to deliver on the momentum we built in 2012 and even ship phones that make "the web is the platform" literally true with Firefox OS!

I'm excited to have been in this community for such a long time of thirteen years and to continue strong in being part of this great project - and looking forward to making things "moar awesome" in two-thousand-and-thirteen!

December 17, 2012 04:01 AM

December 13, 2012

Robert Kaiser

No more weekly status reports

My stability tracking role at Mozilla recently has been slightly modified to be more tied in with release management, which brought some additional item onto my plate, a lot of that being some sorts of bug triage.

That also required me to rethink some other things I'm doing, and for that, I saw I couldn't make the time to do a weekly status update blog post any more. Also, the original incentive to start hose posts was that I considered myself funded by the community in the model I had some years ago and felt I need to report to the community what I'm doing for that - for almost two years now, I have been funded by Mozilla instead, and I'm accountable to my manager anyhow, and as we're restructuring how contractors are managed, I probably will have some more formalities there as well. All in all, the original incentives aren't there any more and the report have become pretty dull for some time anyhow, so I'm stopping them now.

I will do small posts more often on interesting things I work on and other thoughts I have - and I hope I even get to a larger post every now and then, but my time for stuff like that is very limited nowadays.

Of course, I'll also keep posting interesting snippets to Disapora*. :)

December 13, 2012 02:03 PM

December 10, 2012

Rumbling Edge - Thunderbird

2012-12-09 Calendar builds

Common (excluding Website bugs): (27)

One can get the latest Lightning .xpis here.

Sunbird will no longer be actively developed by the Calendar team.

December 10, 2012 11:24 AM

2012-12-09 Thunderbird comm-central builds

Thunderbird-specific: (53)

MailNews Core: (77)

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac (2012-12-08 build)

December 10, 2012 11:19 AM

2012-10-27 Thunderbird comm-central builds

Thunderbird-specific: (45)

MailNews Core: (60)

Windows builds Official Windows, Official Windows installer (discussion)

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

December 10, 2012 11:15 AM

December 06, 2012

David W

SUMOMO Merge with Sumo

its official

Support.mozillamessaging.com is merging to sumo

https://etherpad.mozilla.org/sumomo-kb-to-sumo-migration


December 06, 2012 08:50 PM

December 04, 2012

Instantbird

Instantbird speaks your language

Instantbird 1.3 became available on November, 15, and it comes with new features (you can see them clicking here). The Instantbird team is interested in offering this IM client to everyone, so there’s a new language in this release: Brazilian Portuguese - Sim, nós falamos Português!. Now Brazilians users can enjoy Instantbird in their language.

Additionally, Instantbird brought back the Russian language in this release. This language was in Instantbird since version 0.2, but it was not present in version 1.2. Thanks go out to our Russian localization team for making this possible!

Since the 0.2 release, Instantbird has been available in 5 languages - English, Finnish, French, Polish and Russian. The 1.0 release brought six more languages and now Instantbird is available in 13 languages!

The Instantbird team has a goal: ”to redefine the way instant messaging is used, to work the way you want.” To reach this goal, it’s necessary that Instantbird can be used by as many people as possible, in every country. So we encourage interested people to translate it to their languages. If you’re interested in helping us achieve this goal by creating new translations or improving Instantbird, you can get more information here.

December 04, 2012 01:00 AM

November 28, 2012

Calendar

Lightning 1.9 released, please update your Provider for Google Calendar

As you likely noticed, Lightning 1.9 was recently released. Aside from the common issues during an update, the most reported problem was that calendars were no longer working. In almost all cases, the solution for this issue is to also update the Provider for Google Calendar to version 0.18. A function in Lightning was changed that was used by the Provider version 0.17, hence the update.

For an unknown reason, the addons manager did not find the update of the Provider for Google Calendar to version 0.18. We have mitigated this by blocking the older version of the extension on addons.mozilla.org, but we have yet to find the reason this has happened in the first place.

The next release is still a while away, but if you experience issues in a future update, please make sure you are using the latest version of all relevant extensions.

If you are having a different error, please check out the Error Console in the Tools menu and comment with any relevant messages by comment. Also, in the advanced config editor (Preferences → Advanced → General → Config Editor) there is a preference called “calendar.debug.log” and “calendar.debug.log.verbose” which you can set to true to get additional messages regarding your problem.

November 28, 2012 01:53 PM

Meeting Notes

Thunderbird: 2012-11-27

Agenda

  • Who’s taking minutes? –> mconley

  • Minute taking Schedule. Talk to Standard8 for schedule changes/additions.
  • Note: this meeting is for interactive discussion. Feel free to ask questions!

Friends of the Tree

Thanks to our Friend of the Tree. When adding someone to this section, please get their T-Shirt size, phone number (needed for shipping!) and send it to abourcier@mozilla.com that she can send them a shirt!

  • Roland nominates Vincent aka el cameleon for writing articles in English, French and keeping track of hot, breaking Thunderbird issues.Merci beaucoup!

Thunderbird Development

Feature Work
Modern Address Book
  • Regression that I caught last week when importing contacts from the Mork address books is fixed. Hooray!

  • I need to refactor the way we save contacts in the database, since that’s affected by the new connector interface
  • I’ve started designing the “backend for the front-end”, so to speak. Nothing down yet, but soon.
Instant Messaging
  • This section is getting removed because IM shipped! Woo!
Schedule and Progress
Beta Version
  • Thunderbird 18.0b1 rolling out this week (start build on Wednesday, ship it on Thursday)

Extension of the week

QA Updates

  • Did TB release stuff.

  • Trying to figure out how to do new job and old job!
  • Cleaning up Bugzilla components that is watching.

Build / Release Update

  • Thunderbird 18.0b1 this week

  • bug 815302 – [tracking] Build Thunderbird ESR and Mainline from a single repo

Web Update

  • New Features page @: http://momo.last-chance.net/en-US/thunderbird/features

  • Sandstone background and layout
  • Font updated to Open Sans
  • Tabzilla added to header menu, will be site-wide.
  • Footer needs a few minor alterations, and screenshots probably need to be retaken/cropped better. I resized them quickly with CSS so some are a bit blurry. Couple of other minor tweaks.
  • Not sure what to do with the main landing page image.
    • Probably going to use the octopus.

Support and Documentation

  1. Again big thanks to all contributors (both volunteer and staff), past and preset, who helped support Thunderbird in the employee-driven phase. On to the next phase post Thunderbird 17! Can never give enough thanks!

  2. Hot Thunderbird 17 Support Issues:
  3. 915 new support topics (734 1 week ago ) – Media:19-25nov2012-tb-gs-stats.png
  4. See this week’s Support Appendix for full Get Satisfaction metrics and other support details

Status Updates

See the Mozilla Status Board for status updates specific to developers.

Roundtable Highlights

  • We’re getting a few conflicts wrt times for this meeting.

    • Mark is going to be sending around mail to tb-planning about frequency and timing for the status meeting moving forward, as well as the content for the status meetings.
  • No meeting next week until further notice.
  • If you’re not on about:credits, go to about:credits, scroll all the way to the bottom for instructions on how to make that happen.

Attendees


Thunderbird Meeting Details :

Remember to use headphones and mute yourself when not talking

Feel free to ask questions in the meeting either by speaking up or by asking them in #maildev on IRC.

Other ways to get in touch with us can be found on our communications page

November 28, 2012 04:00 AM

November 23, 2012

Blake Winton

Cleaning out your Firefox profile.

For a while now, I’ve been having problems with my Firefox profile. To be fair, it’s mostly because of random about:config tweaks I’ve made, but still, not being able to test the new SocialAPI stuff was pretty annoying. So I decided to try resetting my profile, to clear out all the junk, and hopefully even make it a little faster.

But, as the page I linked to just up there mentions, resetting your profile will lose your open tabs, windows and tab groups, which kinda sucks, because I have 57 open tabs, in various groups, and I really don’t want to lose them! Fortunately, I’m a programmer, so I hacked on Firefox to get it to save and restore my tabs, and now I’m a happy camper!

A couple of days later, one of my co-workers had some similar problems, and also wanted to re-set his profile to try and fix them. I hadn’t saved the results of my hacking, so I had to re-create it for him from a combination of memory and the documentation. The new code I came up with looked something like this:

var x = gBrowser.tabs
var rv = "var tabs = [\n"
for (var i = 0; i < x.length; i++) {
  rv += '  "' + x[i].linkedBrowser.contentWindow.location + '",\n';
}
rv += '];\nfor (var i = 0; i < tabs.length; i++ ) {\n'
rv += '  gBrowser.addTab(tabs[i]);\n}\n'

To run it, first open about:config, and make sure the devtools.chrome.enabled preference is set to true (double-click it if it isn’t, and it should switch automatically), then go to the Tools » Web Developer » Scratchpad menu item, which should open up a small new window with some javascript comments in it. While that window is focused, click on Environment » Browser, to make sure that you’re running the code in the browser’s chrome (instead of in the page’s content). Paste the code in, and click Execute » Display.

That should result in a bunch of code in grey surrounded by /* and */ that looks like:

var tabs = [
"http://weblog.latte.ca/blake",
"http://breakingtheegg.tumblr.com/",
];
for (var i = 0; i < tabs.length; i++ ) {
  gBrowser.addTab(tabs[i]);
}

Copy that out of the scratchpad into your favourite editor, remove the /* and */, and run the profile reset.

Once you’re done resetting your profile, you’ll need to change the devtools.chrome.enabled preference to true again, and then re-open the Scratchpad, paste the new code you saved back in to it, click on the Execute » Run menu item, and shazam! All your tabs should be back (although they won’t be in their original tab groups. If anyone needs me to figure out how to do that, just let me know, and I’ll give it a try).

November 23, 2012 06:42 PM

November 21, 2012

Meeting Notes

Thunderbird: 2012-11-20

Agenda

  • Who’s taking minutes? –> jhopkins

  • Minute taking Schedule. Talk to Standard8 for schedule changes/additions.
  • Note: this meeting is for interactive discussion. Feel free to ask questions!

Friends of the Tree

Thanks to our Friend of the Tree. When adding someone to this section, please get their T-Shirt size, phone number (needed for shipping!) and send it to abourcier@mozilla.com that she can send them a shirt!

Thunderbird Development

Feature Work
Modern Address Book
  • It’s been a slow couple of weeks due to other project deadlines (because today is release day!)

  • I’ve almost finished porting over the TB Mork Connector tests to the new interfaces. I think I’ve found a regression while I’m at it, so there’s that to fix as well.
  • We’re going to have to come up with a new solution for whitelisting HTML mail from particular addresses – we don’t want to store that in the address book anymore.
Schedule and Progress
  • Next merge date: 11 19

  • For information about channels, point people here – http://www.mozilla.org/thunderbird/channel/
  • merge scripts are now automated
  • branding changes needed to allow mainstream and ESR branding to exist side-by-side in the same source repository

Extension of the week

Marketing Updates

  • .me promo

Build / Release Update

  • closed bug 798361 – Make release automation work with mock slaves

    • 18.0b1 and 17.0.1esr will be built using mock
  • 17.0 + 17.0esr, 10.0.11esr released
  • should not be getting ‘random red’ on Windows anymore

Web Update

  • fixed several bugs with account provisioner last week related to bug 812101

  • pushed out l10n for TB17 & ESR What’s New Pages
  • Features page updates upcoming today asap
  • planet.mozillamessaging.com is now at planet.mozilla.org/thunderbird
    • both in sync for now, and will have a redirect in place soon

Support and Documentation

  1. Thanks to all who helped support Thunderbird in the employee-driven phase. On to the next phase post Thunderbird 17!

  2. Thunderbird 17 Support Day tomorrow November 21, 2012 – Starting NOW, please fill in the Thunderbird 17 Support Day Etherpad with Thunderbird 17 support issues
  3. 734 new support topics (687 1 week ago ) – Media:12-18November2012-TB-GS-Stats.png
  4. See this week’s Support Appendix for full Get Satisfaction metrics and other support details

Lightning Updates

  •  :fallen has access to staging build environment to work through various build issues.

  • Lightning is now being built along with Thunderbird to avoid the need for separate Lightning build infrastructure.
    • still working on getting releases running.

Status Updates

See the Mozilla Status Board for status updates specific to developers.

Roundtable Highlights

  • [jhopkins] beta release timing

    • we will do our first beta on the second week, so no beta this week but beta next week instead.

Attendees

ludovic, rkent, dlech, mbanner, roland, wsmwk, jhopkins, irving, mconley, bwinton, jb, ambourcier, sancus, andreasn


Thunderbird Meeting Details :

Remember to use headphones and mute yourself when not talking

Feel free to ask questions in the meeting either by speaking up or by asking them in #maildev on IRC.

Other ways to get in touch with us can be found on our communications page

November 21, 2012 04:00 AM

November 20, 2012

SeaMonkey

SeaMonkey 2.14 released

The SeaMonkey project is proud to present SeaMonkey 2.14: The new major release of the all-in-one Internet suite is available for download now! Building on the same Mozilla platform as the newest Firefox release, it delivers the latest developments in web technologies such as HTML5, hardware acceleration and improved JavaScript speed.

SeaMonkey 2.14 is available in 26 languages, for Windows, Mac OS X and Linux.

Most notably, this release features for the first time:

For a more complete list of changes in SeaMonkey 2.14, see the What's New in SeaMonkey 2.14 section of the Release Notes, which also contain a list of known issues and answers to frequently asked questions. For a more general overview of the SeaMonkey project (and screen shots!), visit www.seamonkey-project.org.

November 20, 2012 09:00 PM

Thunderbird Blog

Thunderbird menu bar facelift, ESR new release, new governance implementation…

This release of Mozilla Thunderbird comes with a new button on the right hand side, at the top of the window; called the Menu Button it provides more options to customize the user interface.

The Menu Button allows users to remove the Menu Bar from the top of the window in order to grant more real estate to read and manage emails. A right click on this same Menu Button gives access to the “customize” command and entitles the user to add, remove and re-arrange many icons on the bar. It really empowers the user to build its own personal interface.

Beyond this mainstream Thunderbird release and as planned, we are releasing the second Thunderbird Extended Support Release (ESR) targeted at large organizations. This ESR version is not only a security and bugs fix, but it contains all the great features that have been added to Thunderbird since January 2012. Please download here.

This release is also a milestone release and marks the beginning of the new governance model for Thunderbird. As mentioned in Mitchell’s blog post back in July, “Mozilla is focusing its efforts towards important web and mobile projects, such as Firefox OS, while Thunderbird remains a pure desktop-only email client.” Therefore, we proposed “to adapt the Thunderbird release and governance model in a way that allow both on-going security and stability maintenance, as well as community-driven innovation and development for the product.”.

This has been actively discussed with the community during the last few months, and now is the time to implement the plan. If you are interested in more details, please have a look at the wiki pages describing our collective work.

If you are a developer, a translator or just want to join the Thunderbird project, please click on this link.

Click here to download the up-to-date version of Thunderbird for Windows, Mac or Linux, or go to the About dialog and click ‘Check for Updates’.

November 20, 2012 05:37 PM

Mark Banner

planet.mozillamessaging.com is moving

As part of tidying up some of our websites we’re moving the existing planet.mozillamessaging.com to planet.mozilla.org/thunderbird.

Both sites are currently functional and show the same blogs, however planet.mozillamessaging.com will become a redirect very soon. When the redirect happens, you’ll hopefully be fine, but you may want to update your links and feed urls now.

November 20, 2012 10:02 AM

November 16, 2012

Instantbird

Instantbird 1.3 Released!

We’ve released Instantbird 1.3 (get your copy here)!  This update includes some nice improvements, which are fully outlined in the release notes.  A few changes of note are:Nickname highlighting in a chat
  • IRC: Long messages will now be sent in multiple parts, and more authentication methods are supported to connect e.g. to Freenode.
  • Twitter: Replying to a tweet now replies to all users, just like on the Twitter website!
  • User’s nicknames are now highlighted when mentioned in a chat.
  • Two new social networks were added: Odnoklassniki and VKontakte.
  • Various connection issues with Twitter and XMPP based networks were fixed.
  • Accessibility improvements.
Unfortunately, this will be the last release to support Mac OS 10.5 and PPC, as we will be unable to support these once we upgrade Instantbird to Mozilla 17.
We’ve got plenty of interesting new features and ideas for upcoming versions of Instantbird!  We will update to a more recent version of Mozilla with awesome new features, imagine all the cool things we can do with technologies like WebRTC!

November 16, 2012 02:13 AM

November 14, 2012

Robert Kaiser

Weekly Status Report, W44/2012

Here's a short summary of Mozilla-related work I've done in week 44/2012 (October 29 - November 4, 2012):

Due to my traveling to London for MozFest, I completely missed making this report public even though I had finished it up before. Will follow up with a report for last week soon. :)

November 14, 2012 02:25 PM

Meeting Notes

Thunderbird: 2012-11-13

Agenda

  • Who’s taking minutes? –> irving (again?)

  • Minute taking Schedule. Talk to Standard8 for schedule changes/additions.
  • Note: this meeting is for interactive discussion. Feel free to ask questions!

Friends of the Tree

Thanks to our Friend of the Tree. When adding someone to this section, please get their T-Shirt size, phone number (needed for shipping!) and send it to abourcier@mozilla.com that she can send them a shirt!

  • David Lechner has been working on various patches for Thunderbird, including patches with tests.

Thunderbird Development

Feature Work
Modern Address Book
  • More or less finished migrating the TB Mork connector over to the new interface

  • Still need to re-jig / re-enable some tests for the new approach
  • Hopefully starting some UI work later this week or early the next.
Schedule and Progress
  • For 17 onwards, we will be relaxing the rules slightly for the stability & security updates to allow more bug fixes, assuming they don’t break the standard rules of no-L10n changes, not breaking extensions.
Beta Version
  • Final beta out tomorrow

  • This has the fix in for the downloading of emails multiple times bug, that has been seen with some imap servers & specific types of email.
ESR
  • ESR 10 going to build sometime this week, with ESR 17 following when its ready.

Extension of the week

QA Updates

  • Thunderbird 17 preparations and checking on crashes and making sure bugs have been filed.

Marketing Updates

  • getting tools in line for TB17 release: blog post, what’s new page.

  • working with Gandi registrar on a program: any TB user can get a free .ME email address from Nov 15th to Dec 31st, 2012
  • finalizing Engagement contributor briefing

Build / Release Update

  • Thunderbird 17.0b3 this week

  • CentOS6/mock release configs patch completed for merge day next week bug 798361

Support and Documentation

  1. Please help us test TB 17 beta. It’s our long term release for a year so we’d like its quality to be high and therefore we need to test it now with your add-ons, anti-virus and POP. Also TB17 beta fixes the spellcheck bug in TB 16, bug 790475

  2. 687 new support topics (1186 1 week ago ) – Media:5-11november2012-gs-tb.png – Why fewer topics? Probably because we revamped en-US/kb/ask page in bug 751734 and bug 807146 (thanks to Vincent, Wayne, Matt, gozer and sancus for their help with this!)
  3. See this week’s Support Appendix for full Get Satisfaction metrics and other support details

Status Updates

See the Mozilla Status Board for status updates specific to developers.

Roundtable Highlights

  • Who is the list of people provided on the Thunderbird by Mozilla? See the proposed governance model

  • Are the ADU stats for Thunderbird going to be public?
    • We are working with the metrics team as to what can be made public
  • Can we share income information of Thunderbird at as a whole?
    • JB will discuss internally.
  • In the past, Beta has been the pre-release version of the software, but now it is more of an early-adopter, could we promote it as such?
    • Firefox doesn’t seem too concerned about branding Firefox Beta as something close to Firefox Release. Promoting the relationship between the two doesn’t seem to cause damage.

Attendees


Thunderbird Meeting Details :

Remember to use headphones and mute yourself when not talking

Feel free to ask questions in the meeting either by speaking up or by asking them in #maildev on IRC.

Other ways to get in touch with us can be found on our communications page

November 14, 2012 04:00 AM

November 08, 2012

Joshua Cranmer

Autotools, how I hate thee

When writing custom passes for a compiler, it's often a good idea to try running them on real-world programs to assess things like scalability and correctness. Taking a large project and seeing your pass work (and provide useful results!) is an exhilarating feeling. On the other hand, trying to feed in your compiler options into build systems is a good route to an insane asylum.

I complained some time ago about autoconf 2.13 failing because it assumes implicit int. People rightly pointed out that newer versions of autoconf don't assume that anymore. But new versions still come with their own cornucopias of pain. Libtool, for example, believes that the best route to linking a program is to delete every compiler flag from the command line except those it knows about. Even if you explicitly specify them in LDFLAGS. Then there's this conftest program that I found while compiling gawk:

/* Define memcpy to an innocuous variant, in case <limits.h> declares memcpy.
   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
#define memcpy innocuous_memcpy

/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char memcpy (); below.
    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
    <limits.h> exists even on freestanding compilers.  */

#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
#undef memcpy

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char memcpy ();
/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined __stub_memcpy || defined __stub___memcpy
choke me
#endif

int
main ()
{
return memcpy ();
  ;
  return 0;
}

…I think this code speaks for itself in how broken it is as a test. One of the parts of the compiler pass involved asserted due to memcpy not being used in the right way, crashing the compiler. Naturally, this being autoconf, it proceeded to assume that I didn't have a memcpy and thus decided to provide me one, which causes later code to break in spectacular bad function when you realize that memcpy is effectively a #define in modern glibc. And heaven forbid if I should try to compile with -Werror in configure scripts (nearly every test program causes a compiler warning along the lines of "builtin function is horribly misused").

The saddest part of all is that, as bad as autoconf is, it appears to be the least broken configuration system out there…

November 08, 2012 01:04 AM

November 07, 2012

Meeting Notes

Thunderbird: 2012-11-06

Agenda

  • Who’s taking minutes? –> irving

  • Minute taking Schedule. Talk to Standard8 for schedule changes/additions.
  • Note: this meeting is for interactive discussion. Feel free to ask questions!

Friends of the Tree

Thanks to our Friend of the Tree. When adding someone to this section, please get their T-Shirt size, phone number (needed for shipping!) and send it to abourcier@mozilla.com that she can send them a shirt!

Thunderbird Development

Feature Work
Modern Address Book
  • Slow week – mostly complete moving my Mork connector over to the new connector interface

  • Once that’s done, according to the roadmap, I’ll start hacking on the first iteration of the UI.
Schedule and Progress

Build / Release Update

  • Thunderbird 17.0b2 released last week

  • centos6/mock automation landed today. config changes will land for 18.0b1. bug 798361
  • beta this week? not optimistic about it. please keep #build in the loop

Web Update

  • Still deep in porting moz.org to bedrock

  • worked on Mozillians a bit last week
  • Automated Start Page code should be ready for testing by the end of this week
  • committed to moving SUMOMO content over to SUMO for week of Dec 11

Support and Documentation

(SUMO offsite in San Francisco last week)

  1. Please help us test TB 17 beta. It’s our long term release for a year so we’d like its quality to be high and therefore we need to test it now with your add-ons, anti-virus and POP. Also TB17 beta fixes the spellcheck bug in TB 16, bug 790475

  2. 1186 new support topics (1280 two weeks ago ) – Media:Tbgs-29oct-4nov-2012.png
  3. See this week’s Support Appendix for full Get Satisfaction metrics and other support details

Status Updates

See the Mozilla Status Board for status updates specific to developers.

Attendees


Thunderbird Meeting Details :

Remember to use headphones and mute yourself when not talking

Feel free to ask questions in the meeting either by speaking up or by asking them in #maildev on IRC.

Other ways to get in touch with us can be found on our communications page

November 07, 2012 04:00 AM

October 31, 2012

Meeting Notes

Thunderbird: 2012-10-30

Agenda

  • Who’s taking minutes? –> Ludovic

  • Minute taking Schedule. Talk to Standard8 for schedule changes/additions.
  • Note: this meeting is for interactive discussion. Feel free to ask questions!

Friends of the Tree

Thanks to our Friend of the Tree. When adding someone to this section, please get their T-Shirt size, phone number (needed for shipping!) and send it to abourcier@mozilla.com that she can send them a shirt!

Thunderbird Development

Feature Work
Modern Address Book
  • Some low-level restructuring to encourage code-reuse

  • Started moving Mork connector over to new interface
  • Started to move over to using DeferredTask and Promises.
Instant Messaging
  • a few patches for 17 in the queue (eg Fastamil interop for IM)
Schedule and Progress
  • 16.0.2 and 10.0.10esr released, fixing further security issues mainly due to core code. Also fixed an IMAP download issue.
Beta Version
  • Last week’s beta was delayed due to the security issues, should be getting a new beta this week.
Earlybird
  • A spellcheck issue that exists in release bug 790475 has been patched in Daily and Earlybird.

    • Please test HTML mail with non-default fonts, and make sure that spellcheck behaves. Thanks!

QA Updates

  • Figuring moztrap

Build / Release Update

  • Thunderbird 17.0b2 ‘go to build’ expected today (bug 797853)

    • using bhearsum+rail’s new release automation web interface to start this build.
  • Move to CentOS6 + mock build platform targetted at 18.0b1

Web Update

  • internet is being difficult so I might not be on Vidyo

  • fixed mozcom-cdn references on the website, I think I got them all, but if you see any errors related to “mozcom-cdn.mozilla.net” let me know.

Lightning Updates

  • Philipp was at calconnect, lots of good stuff happening there:

    • Tested autodiscovery extension, good results for most servers

    • Tested delgation/counter patches, UI is good but not fully functional yet
    • Learned about some new and emerging standards
    • Changing ical.js backend format to the JSON format proposed by some calconnect folks
  • Lightning 1.9 betas were out early, which worked pretty nicely.

  • Lightning 1.9 betas has some small regressions, but nothing major
  • Build System integration work is progressing, initial support will land soon
  • Please test Lightning 1.9 betas extensively!

Status Updates

See the Mozilla Status Board for status updates specific to developers.

Roundtable Highlights

  • The proposed Governance and Release Model document has been updated, and descriptions for the module owner and release drivers that have previously been discussed put in place. See the thread on tb-planning for more information.

    • We’re looking to “finalise” this as the way forward from the Thunderbird 17 release.

Attendees

andreasn, Irving, mconley, bwinton, florian, jb, Usul, standard8, Fallen


Thunderbird Meeting Details :

Remember to use headphones and mute yourself when not talking

Feel free to ask questions in the meeting either by speaking up or by asking them in #maildev on IRC.

Other ways to get in touch with us can be found on our communications page

October 31, 2012 04:00 AM

October 30, 2012

Robert Kaiser

Weekly Status Report, W43/2012

Here's a short summary of Mozilla-related work I've done in week 43/2012 (October 22 - 28, 2012):

When working on the Mandelbrot app for a bit on Sunday, I found again that appCache is tricky to use when it comes to updating. On my mobile devices, I apparently ended up with the app only being partially updated to the new version. I guess I need to dig deeper on how to make this work smoothly...

October 30, 2012 08:50 PM

October 29, 2012

Rumbling Edge - Thunderbird

2012-10-27 Calendar builds

Common (excluding Website bugs): (30)

One can get the latest Lightning .xpis here.

Sunbird will no longer be actively developed by the Calendar team.

October 29, 2012 08:01 AM

October 25, 2012

Robert Kaiser

Weekly Status Report, W42/2012

Here's a short summary of Mozilla-related work I've done in week 42/2012 (October 15 - 21, 2012):

I spent this weekend in Torino, Italy, for a workshop with students, and held a session there on how we go for measuring stability and investigating crashes. I wonder how many such sessions it takes to get more people to help us there. It's not hard to get in, but monitoring reports might sound tedious - but when you find a problem and it actually gets solved because of that before it hits too many users, it's a good feeling that you saved people out there from problems! :)

October 25, 2012 02:09 PM

October 24, 2012

Meeting Notes

Thunderbird: 2012-10-23

Agenda

  • Who’s taking minutes? –> TBD

  • Minute taking Schedule. Talk to Standard8 for schedule changes/additions.
  • Note: this meeting is for interactive discussion. Feel free to ask questions!

Friends of the Tree

Thanks to our Friend of the Tree. When adding someone to this section, please get their T-Shirt size, phone number (needed for shipping!) and send it to abourcier@mozilla.com that she can send them a shirt!

Thunderbird Development

Feature Work
Modern Address Book
Instant Messaging
  • App menu in chat tab automatically landing very soon
Schedule and Progress
Beta Version

Probably another beta this week. Today or tomorrow
Ludovic wonders about usage number on Beta. We’re at about 20K – this is a stable number. We currently have a very homogeneous group on Beta. Nobody using antivirus, on other providers than gmail, dovecot, only plaintext e-mail. We need new beta testers.

Extension of the week

No extension of the week

QA Updates

  • Moved our test cases from Litmus to moztrap

  • We lost 4 tests in the process.
  • Post 17 wants to have a day when people can play with moztrap.
  • Reason for the move to moztrap was that Litmus is going away.
  • Working on bubbling up bugs for devs past 17 should get something out this week.

Marketing Updates

Question from Ludovic: What is going on with Twitter and Facebook pages. Do we have a volunteer to do this in the future? Ludovic will send an e-mail to the list about it.

Build / Release Update

Nothing to report

Web Update

  • TB 16->17 Compat update done, will go out early — LAST COMPAT UPDATE YAY

    • Will write documentation on how this works for future uses.
  • Engagement off-site last week. Tiring.

Support and Documentation

  1. Support Meeting, Wednesday October 24, 5:30a.m. Pacific in the Thunderbird Vidyo room – Please fill out 24 Oct 2012 Support Meeting Etherpad and join us if you can

  2. Thunderbird 16.0 Support Issues of the week :
  3. 1280 new support topics (1280 one week ago ) – Media:15-21October2012-GS-TB-Part1of2-Community_stats_for_Mozilla_Messaging.png, Media:15-21October2012-GS-TB-Part2of2-Community_stats_for_Mozilla_Messaging.png
  4. See this week’s Support Appendix for full Get Satisfaction metrics and other support details

Lightning Updates

Nothing to report.

Mark Banner will ping phillip and ask for weekly updates

Status Updates

See the Mozilla Status Board for status updates specific to developers.

Attendees

standard8, usul, mconley, sancus, andreasn, rolandtango, kent, irving


Thunderbird Meeting Details :

Remember to use headphones and mute yourself when not talking

Feel free to ask questions in the meeting either by speaking up or by asking them in #maildev on IRC.

Other ways to get in touch with us can be found on our communications page

October 24, 2012 03:00 AM

October 22, 2012

Mike Conley

Contact Service Connector Interface Proposal Draft

Thunderbird’s new address book will not exist in a vacuum. From the get-go, I’d like to bake-in the notion that contacts can exist outside of Thunderbird, and can be sync’d with.

There are lots of different contact providers I’d like to support. Mainly, CardDAV (which got a big boost since Google’s announcement), LDAP, the System Address Book, and Facebook.

I’ve been working on an interface (the application-programming kind – not the user kind) for contact provider connectors. It’s not been easy trying to generalize across each of the different features and requirements of these contact providers, but I think I got somewhere.

Anyhow, here’s a draft of my interface proposal. Are there any glaring holes?

October 22, 2012 09:23 PM