Carsten Book — Opensource in Governments and Municipality? – Yes it works !

A lot of people work with OpenSource Software like Firefox, Thunderbird and a lot of people contribute to this Projects as Developer, QA or with spreading the word and many other things.

During the Opensource Meeting in Munich Florian Schiessl from the Munich LiMux Project gave a great talk about the Limux Project (Why they started this Project  etc ) and a lot of interesting background information.

It was great to hear that in the Municipality of Munich 100% work stations using Firefox and Thunderbird ! Munich is not only the City of the Octoberfest or Soccer :) , its also the “German Silicon Valley”  and one of the most important IT Cities in Europe.

Also after some research i found an very interesting article from the Federal Foreign Office of Germany about “Open codes for an open society – German Foreign Office saves money by using open source software” and “Firefox is the standard web browser, official emails are written using Thunderbird and official notebooks are exclusively furnished with Linux and OpenOffice.”

Its great to see that the Idea of OpenSource is getting spread also beyond “end user” !

Curtis Bartley — 404 Error Page Status

Feature Description

We want Firefox to override server-supplied 404 error pages in certain cases.  The Firefox 404 page should provide the user with tools we think are more useful to the user for resolving the situation, than the server supplied page.  This includes alternate ("did you mean") URLs derived from the Places database and some pre-loaded search links/controls.  This is being tracked in bug 482874.

Status

On hold for the week while I worked on higher priority Firefox 3.6 stuff.  There are still some L10N issues to address and some general touch up before I can roll a new patch.

Next Steps

Address remaining issues raised in last round of code review and get another patch out.  This will probably have to wait until after the Firefox 3.6 code freeze that's coming up.

Notes

  • The feature is controlled by a pref so it can be turned off.
  • Webmasters who don't want their 404 error pages to be overridden may have to add padding to their 404 error pages.  However, since IE and Google Chrome are already overriding 404 error pages using a similar size test, webmasters already need to do this.
  • We want to provide a way for the user to see the original 404 error page, but that's not in this patch.

Permalink | Leave a comment  »

Curtis Bartley — Troubleshooting Information (AKA about:support) Status

Feature Description

Mozilla's support organization has a longstanding request for a Firefox diagnostic page that can provide information about the user's Firefox installation such as which extensions are installed and what prefs have been modified.  The result is the "Troubleshooting Information" page, which is also accessible by typing "about:support" in the location bar.  This feature is fairly constrained for 3.6 since we didn't start work on it until a few days before string freeze. 

Screenshot: https://bug367596.bugzilla.mozilla.org/attachment.cgi?id=400664
Project Page: Firefox/Projects/about:support
Bug: 367596 -  (about:support) [RFE] Create a support info page/lister.

Status

  • Landed!  Troubleshooting Information is now available in both trunk and Firefox 3.6 nightlies.
Next Steps
  •  Bug 518601 -  Troubleshooting Information page should not allow copy-and-paste of the profile directory.  This is a potential security issue and needs to be addressed before Firefox 3.6 ships.
  •  Bug 516616 -  Add an "Installation History" section to about:support.   Nice to have for 3.6.
  •  Bug 516617 -  Add an "Update History" section to about:support.  Nice to have for 3.6.

Notes
  • This is a starting point, not an ending point.  We can extend the functionality for Firefox 3.7.

Permalink | Leave a comment  »

Carsten Book — Fantastic 2nd Opensource Meeting in Munich !

Hi

yesterday we had in Munich the 2nd Opensource Meeting organized by Mozilla and Openoffice.

Welcome to the 2nd Opensource Meeting

It was a fantastic event and about 35 People (Project Members from various OpenSource Projects or just Opensource Fans and Users) joined us
and this time we had 3 sessions from 3 different Projects (Jan Wildeboer from Redhat was blocked by some pilot strikes in Lisboa, but  hopefully  we will hear his  Session at the next Opensource Meeting!)

Beside the Sessions we had also 2 little booths from Mozilla and Openoffice.

Mozilla and Openoffice booth!

After a short Welcome and Introduction by Florian Effenberger and me we started with a great Talk by Andreas Hubel from the Openstreetmap Project (what is Openstreetmap – how data is generated – how you can get involved etc).

Next Talk was Florian with a Overview about the Openoffice.org Project with all about the Organisation of Openoffice.org, how decisions are made within Project, how People can get involved, the German Openoffice Association, Macros, Plans for the future and many more – for me it was personally very interesting to see how other Opensource Projects like Openoffice are organized.

And the last Session at this Event was by Florian Schiessl from the LiMuX Project – a great talk about Opensource & the City of Munich and was very great to hear that in the Municipality of Munich 100% work stations using Firefox and Thunderbird !

After this Sessions we had a long Q&A Session about Various topics, followed by some great talks with People !

Florian and I already planning the next Opensource Meeting in Munich in November (likely 13. or 2o) and we will post more details if we know the exact date on our Project Website http://www.opensourcetreffen.de – also stay tuned for Opensource Meetings in other German Cities !

Also a big thanks to the Team of our location the Cafe-Netzwerk in Munich – this team simply rocks !

Some more pictures of the Event are posted here !

- Tomcat

Dietrich Ayala — Firefox Startup Performance Weekly Summary


Recent activity:

  • An improvement in startup time on Mac Leopard of around ~16% (aka: Very Large) was found by Joel Reymont and fixed by Masayuki Nakano in bug 517549. Mac users rejoice!
  • The Windows cold startup regression from 3.5 to 3.6 being tracked in bug 517741. Help finding the window for this would be awesome.
  • JAR Performance: Alfred Kayser has a new patch on bug 510844 which should increase throughput of JAR file reading, about ready to land.
  • Ben Hsieh is making progress removing the needless stats of already-fastloaded components and other stat removals in bug 511761.
  • Service caching work is still in progress in bug 516085. Drew’s tests showed no significant win on Tp, but the patch did reduce IO service retrievals by 58%. It might be worth pushing this to the Places branch to get a better idea of the total performance impact of the change.
  • Ryan Flint landed bug 499123, combining a bunch of about: pages into a single component, on 1.9.2 branch for Firefox 3.6.
  • Bookmarks toolbar: I put a patch on bug 504858 that pushes back the population of the toolbar until after the browser window comes up. Checking into the Places branch showed a 1.5% improvement to warm startup on Windows. Just waiting on review.
  • CSS Parsing Time: Zack is working on major CSS parser changes in bug 513149.

Projects in a holding pattern:

  • Preference Files: Taras Glek has been working on combining the different preference files into a single one at build time, in bug 507288. The patch is there, and is just trying to find a way to land cleanly.
  • Cold Startup Testing: Drew and Alice made a bunch of progress on bug 510587, to create a new Ts that measures cold startup. Alice is working on mobile Talos though, so this is sidelined for a bit. The only issue left is reliable Windows measurement, but we’re not going to block on it, can live with Mac and Linux to start off.
  • JARification: David abandoned moving JS modules into a JAR file, since those files are fastloaded. However, since we want things like post-extension-install restarts to be fast, and those cause fastload cache invalidation, we might want to do things like this anyways. I filed a bug for the same treatment for components. These are lower priority, since they’re not the normal startup case. Follow along with all JAR-ification via the tracker bug.
  • Startup Timeline: No updates, still not landed. Add [ft] in the whiteboard of your bug w/ the function names you want timed and David will generate it and update the bug.
  • PGO for Places, mozStorage and SQLite: Still blocking on Rel-Eng fixing bug 486783, which now has patches!
  • Static Analysis: No progress on bug 506128. David needs to file a bug with the final log of named-yet-uncalled functions.
  • Dirty Profile Testing: No progress. Need to list scenarios, file bugs for each, generate Talos config patches and profile data, and then move it into Rel-Eng territory. Also, need to get a separate Tinderbox tree, since it’s going to cause a bazillion new columns.
  • Joel Reymont noted in bug 513076 that there are serious drawbacks to getting our libraries in the dyld shared cache on Mac, so has deprioritized that work.

Blair McBride — Status update

Plugin Update Awareness

Status

  • Been through a couple review iterations so far, patch is getting more and more solid
  • More unit tests
  • Fixed potential pref regression on startup
  • Liaised with QA

Loose ends

  • None

Next steps

  • More unit tests
  • Refactor the mess in browser.js

Target for next week

  • More unit tests
  • Fix outstanding reviewer comments

Reflections

  • Don’t blindly trust comments in code
  • I need to get better at estimating how long the review process will take
  • I work faster when its not raining

Related posts:

  1. Status Update
  2. Status update
  3. Status update

QMO — New to Mozilla QA? Take a look-see...

This document is referenced in the QMO FAQ, but I thought I would blog about it to remind our community that if they are new to the project, there is a useful presentation I created back in the spring that gives a good overview of the underpinnings of the Mozilla QA team and the work that we do.  You can find it here: http://www.slideshare.net/mozillamarcia/mozilla-under-the-hood-1257014.

There are also a number of other good presentations on slideshare that you might be interested in. Simply querying for "Mozilla" or "Firefox" yields quite a few results. Many Mozillians upload their presentations to slideshare after they give talks at various conferences around the world.

With the upcoming Mozilla EU camp, I am sure there will be many more great presentations to come - Henrik Skupin will present a Mozmill talk, Martijn will present on Litmus and I will give a talk about the Mozilla Community Landscape. You can see the full set of descriptions here: https://wiki.mozilla.org/EU_MozCamp_2009/Schedule/QA_Track. This is shaping up to be a great event!

Jonathan DiCarlo — Don’t worry about “skewing” the data


I get a lot of people contacting me by email, IRC, forums, or blog comments to say that they’re “worried that if I join Test Pilot I’ll skew the data” because “I’m sure that my tab usage is atypical”.

People! Don’t worry about being an atypical user!

First of all, we have already had almost 5,000 Test Pilot data submissions. One outlier isn’t going to do much to “skew” a data set of that size.

But more importantly, you shouldn’t assume that you’re abnormal. We don’t know what “normal” tab usage is! That’s why we’re doing this experiment, to find that out. If we started out with an idea of what normal tab usage looked like, and threw out things that didn’t match our preconceived notions, that would be a clear case of experimenter bias. Then we’d really be skewing the data.

For instance, I was surprised to find out that there are users who have over 500 tabs open at a time. Over 500! They’re surely outliers, but they’re not abnormal users &emdash they’re just users. That number isn’t skewing the data &emdash it is the data. Thanks to those users’ participation, we now know that having 500 tabs open is something that people do with Firefox, something we might not have known otherwise.

As I said in a previous post, I do believe we have a major oversampling of the power-user / early-adopter demographic in our current Test Pilot user base, and that we need to work on fixing this by reaching out to a wider sample of users. But note that word: wider. Excluding yourself because you think you’re atypical isn’t helpful. If you really want to help our sample — and I’m touched that so many of you do want to help " the best thing you can do is to let your less-techie friends know about Test Pilot.

Alex Vincent — What do you need to know to do your job?

I mean, what languages and tools are requirements in your profession as a software engineer? What do you have to have in your toolbag?

I've been thinking about this a bit over the last few months, and the list, for me at least, is pretty long:

There are also a few I infrequently use:

  • Python
  • Perl
  • PHP
  • MySQL
  • Apache
  • GDB debugging (on occasion)
  • CVS
  • Macintosh operating system
  • MathML
  • SVG
  • RDF
  • HTTP

Now, I don't need to be an expert in all of them. I do need to be an expert in a few of them (JavaScript, HTML, CSS, XUL, XBL, XPIDL, Makefiles, tests). The rest, I can look the details up when I need them.

Even so, it's a lot - and I imagine Professor Humphrey's students might be intimidated to see a list like this. The good news is you don't have to learn it all at once! In the corporate world, for new professionals, there is a learning curve. The bad news is that this list is always changing. Two years ago, I doubt I'd have listed Python above - and I suspect in less than two years, it will move into the "must-know" list.

So here's a new Internet meme for you software engineers: List out the languages and tools you need to do your job. Extra credit if you post it as an unified diff against my own list here, linking back to this post.

I just hope I haven't missed anything terribly obvious.

Mozdev — W39-2009 Dev Status Update

This week I was able to finish up porting our Bugzilla templates and skin to work with version 3.4 as well as implement graphs for various project stats.

Fixing up our Bugzilla templates was slightly complicated due to moving away from editing the templates directly and putting them into the "custom" directory to override the built-in templates.  The skins needed slight updates to override new styles in 3.4.  Permissions problems caused problems porting the templates as I was unable to view my changes frequently causing slow-downs in testing.

The graphs for project stats are available both for all projects and on a per-project basis on each project's overview page.

Next week I would like to update the top 50 page to pull data from the new stats since this will provide both a rolling 30-day window (instead of a window reset at the 1st of each month) and will also allow new projects to show up for certain stats (we have some projects with large numbers of downloads that don't currently show up - and I'm really interested to see the project with the most commits).

Mozdev — Graphs for Project Stats

We've been working on improving our project stats gathering and reporting for some time now and have finally added some new graphs showing various metrics (see bug#20841).  The stats we're gathering include web hits, pages, and bandwidth as well as the number of downloads, bugs, VCS commits, and list posts.

Our overall project stats page has been updated to show these stats.  This is a page sumarizing all projects hosted on Mozdev.

project stats

What we're most excited about is being able to show these broken down per-project, as on our "www" project overview page:

project overview stats and graphs

If there are other stats you would like to see, let us know.  We're hoping these values will help projects better gauge their activity and improve user interaction.

Planet Mozilla Interns — Wei Zhou: why you should marry a designer


Many facts suggest that you should marry to a designer.

First, designer are smart and constantly optimizing user experiences in their lives. Today designers are no longer artist, almost all of them are tech-savvy and bright. They like solving problems- so they are fully capably of fixing pipes for you; they are curious about everything in the world – your life will be fulfilled surprises. For designers, a string of URL gives them a whole new free toy to play with which immediately makes your life beautiful – they are not nagging like others because they are always playing or making stuff: you’ll have customized everything in your house and hand-made wine, chocolate, card and cake in your wedding anniversary.

Second. Designers are rich. They are born entrepreneurs, that means they are seeking every way of making money with innovative ideas. Don’t be surprised if you know a designer has 6 companies at the same time. Today design has never attracted as much attentions as it used to be – it encapsulates so many levels of skillets; as designers, they are much more powerful than they were: because they are designing business for other people.

Third, designers have freedom. Freelance designer is surely the best job in the world – not only because the nature of design requires the usage of both right and left brain so you won’t risk your other half having high suicide rate as a creative writers or artists, or retiring intelligence of football players. Designers surely look younger because the beauty and harmony they involve with everyday, and yes, as freelancers, they sleep a lot everyday, and if you like, they have the time to pick up kids.

Fourth, designers are happy people. Designers have the best friends. Their clients are passionate and hopeful people with fantastic dreams who believe beautiful design can make a difference in their life – never a change of dealing with desperate and angry clients as lawyers do everyday.

Fifty, designers are family guys and girls. They may like clubbing but never as much as they love their job or their life. They are never wasted as investment bankers do. Designers spend money appropriately because design is the art of balancing limited resource and quality. You’ll find your life quality increased significantly after you live with her/him, with less money, of course.

Yeah, marry a designer, you’ll never be wrong.

Gervase Markham — Gerv Status 2009-09-25

Status for week ending 2009-09-25. I'm deploying an alpha of the Bugzilla API next week :-)) Read my full status to find out what's implemented so far (short answer: most of it).

hacks.mozilla.org — theora 1.1 is released – what you should know

Less than a year after the release of Theora 1.0, the wonderful people at Xiph have released Theora 1.1. The 1.1 release is a software-only release of the Theora encoder and decoder. It does not include any changes to the Theora format. Existing Theora videos should continue to play with the new decoder and the new Theora encoder generates bitstreams that will work in existing players that can play Theora content.

The 1.1 release is largely an improvement to the Theora encoder. This post will attempt to give people a high-level overview of the changes and what they mean to web developers and people who are thinking of deploying Theora to support HTML5 video. Theora is an important technology to web developers – it’s the only competitive codec that currently complies with the W3C patent policy.

Here’s a quick list of important things that have changed in this release. We’ll go into more detail on each of these items.

  • Video quality between Theora 1.0 and Theora 1.1 has been improved.
  • Rate control for live streaming now works well.
  • A two-pass mode has been added to the encoder that can create rate controlled videos with very predictable bandwidth requirements.
  • CPU usage during encoding is much more consistent.
  • Decoder performance has been improved.

Video quality between Theora 1.0 and Theora 1.1 has been improved.

One issue that people had with the Theora 1.0 encoder was that it produced video that appeared fuzzy. The 1.1 improvements are clear in these two images provided by Monty, one of the Xiph Developers. Open each of these images in new tabs and flip between them. You can really see the difference.

This was also very visible at the edges of text. Here’s an example taken from one of our Firefox 3.5 promotional videos. The first is with the 1.0 encoder (9.0MB) and the second is with the 1.1 encoder (8.2MB). You will notice that not only are the edges more defined but there’s a lot less noise in the area around the edges of the text. Once again, if you open them in tabs and flip between them you can see the difference.

Note that the original video is nearly 17MB. That was done largely to get the text crisp. With these changes we can likely use a much lower-bandwidth version of the video, probably as small as 9.9MB. That’s a pretty big difference.

Note that we’re talking about an improvement of quality at the same video bitrate. This means that we’re either able to produce higher quality videos at the same file size or we’re able to reduce the file size and keep the same quality – either way it’s a big win.

Rate control for live streaming now works well.

Before describing this change, something important must be described. This is the difference between videos encoded with a variable bitrate (VBR) and a constant bitrate (CBR).

In variable bitrate encoding the amount of data that’s required to represent the difference between two frames in a video is allowed to grow. This happens most often when shifting from a scene where there isn’t much movement to a scene where there’s a lot of motion. You could easily go from requiring 40Kb/sec to 400Kb/sec because the entire background moves.

In constant bitrate encoding the amount of data that you’re allowed to use to represent a change from one frame to the next is pinned at some maximum value. If you’ve got a low maximum value and there’s a set of frames that requires a lot of bits to represent the changes from one to the next you will need to sacrifice something in order to stay inside of that maximum value. Very often it’s some amount of video quality or the encoder will start dropping frames in order to keep under the watermark.

This leads to a pretty simple rule: If you want the highest quality video possible, you should be using variable rate encoding. This means that when you’re encoding a video you should be using quality settings (0-99, low/medium/high, 1-10) instead of picking bitrates (60Kb/sec, 200Kb/sec.) For most use cases on the web VBR-encoded videos actually work very well because users are allowed to buffer quite a bit of video out ahead of their current position so these bursts of data don’t affect the user’s experience.

But there are some use cases where having a constant bitrate is very important. These include:

  1. Live, low delay streaming over HTTP with a lot of clients.
  2. Streaming large files where a large read-ahead buffer is not desired.
  3. Situations where large bursts of data result in large bursts in CPU to handle them.

For live, low-delay streaming over HTTP it’s important to realize what happens when there’s a sudden burst of data to handle. HTTP runs over TCP. In TCP it takes a while for a connection to increase its bandwidth. (And by “a while” I mean “not that long” but it’s long enough to affect the low latency connection that we want for this use case. This is why many low-latency applications don’t use TCP. But we’re talking about delivering video over HTTP.) If you’ve got a big burst of data and the TCP window takes a long time to open up you start building up a big send buffer on the server. (And remember in this use case you’ve got a lot of clients connected!) That requires a lot of memory to hold the send buffers for each client. What happens then is that servers will start closing connections en masse because it needs to save memory or because it thinks that the client has become somehow unreachable. This is made worse by the fact that even if the connection scales up and then scales back down it re-settles at the low rate and the process has to be repeated. The user’s experience is that the video stream stops and restarts or just stops working altogether when the server hangs up. The solution? Using a constant rate that doesn’t require the TCP window to open up suddenly and doesn’t require large send buffers for each client.

For the use case where you’re streaming large files it might not be reasonable for the client to cache a lot of data. You also might be serving up a lot of data to a lot of clients and you might want to avoid the large send buffer problem as well, just for different reasons.

And for the last use case where you’re in a CPU-constrained environment the bursting nature of variable bitrate videos means it often takes a large bursts of CPU to handle those bursts. While CPUs do burst up faster than TCP does, you might be talking to constrained processors (think mobile) or you might be serving up files near HD-sized content, which CPUs often struggle to decode.

In any case there are a number of use cases for constant bitrate encoding. Back to the question of what’s improved in Theora 1.1.

In Theora 1.0 the rate controlled encoding mode was very very broken. This resulted in two things:

  1. People trying to do live streaming ran into problems.
  2. People who used rate controlled settings to compare overall Theora quality to the quality of other encoders saw worse results than the format actually represented.

The first issue is clear – it was broken, it should be fixed. And it has been. The new encoder does a pretty good job of maintaining bitrates, changes quality on the fly, drops frames and even includes a “soft-target” mode so that bitrates can fluctuate a little bit to maintain quality while occasionally breaking the bandwidth rules.

The encoder also has a wonderful new piece of functionality that people will find very useful. It’s now possible to specify a maximum rate ceiling for video encoding while also specifying a minimum quality floor. What this means is that the encoder will try and maintain very crisp video frames within rate constraints. This means that it will aggressively drop frames instead of creating frame deltas that are fuzzy or low-quality. While this might sound like a poor trade-off it’s actually very useful. If you’re showing a live video of a presentation you usually want a crisp video of the slides and having a lower frame update rate is very acceptable.

The second issue that was caused by the bad rate control in Theora 1.0 is an issue of marketing. People would often use the encoder with the fixed bitrate mode instead of the quality mode and dismiss the results as a reflection of the format instead of problems with the encoder. We hope that people find better results with the new encoder.

A two-pass mode has been added to the encoder that can create rate controlled videos with very predictable bandwidth requirements.

In addition to fixing the single pass rate controlled encoder in 1.1 a two-pass encoding option has been added. This means that if you are transcoding a file (as opposed to doing a live stream) you can create a very consistent bitrate in a file if you want. This is because the encoder can look ahead in the stream to allocate bits efficiently. Monty from Xiph made a graph that shows one example of the bitrate in a file with one pass and two pass.

Above: graph of quantizer choice (which roughly corresponds to the encoding quality) when using default two-pass bitrate management as opposed to one-pass (with –soft-target) when encoding [the Matrix movie clip] at 300kbps. Both encodes resulted in the same bitrate. The quality of a one-pass encode varies considerably as the encoder has no way to plan ahead.

CPU usage during encoding is much more consistent.

People who were doing live streaming often saw huge spikes in CPU usage during high-motion events. This has been fixed and now CPU usage is much more consistent during single pass rate constrained encoding making it much easier to live stream video.

Decoder performance has been improved.

And last but not least the decoder has been made faster during the 1.1 release. How much faster depends quite a bit on the clip, but people are reporting that the new encoder is anywhere from 1.5-2x faster than the 1.0 of release of libtheora.

Coming soon to a product near you.

This release is a library release. It’s not a product in itself, but is instead something that other products include. So over the next days and weeks we’ll see other products pick up and start using this as part of their releases.

Enjoy!

Mozilla Add-ons Blog — Time is Almost Up! Only 7 Days Left for the Extend Firefox 3.5 Contest!

Hi everyone! There are only 7 days left to put the final touches on your genius idea. Remember, the contest closes on October 2, 2009 at 11:59pm PST!

We are eager to see what you’ve come up with. As always, let us know if you have any last minute questions or needs. Thanks for being involved and making this contest great. Good luck to all!

ShareThis

Mozilla Add-ons Blog — Add-on Success Story: Shareaholic for Firefox

We recently received some great news from Jay Meattle of Shareaholic and wanted to share it with the community:

“This week we closed an angel round of funding for Shareaholic to support and accelerate ongoing development from prominent east coast angels. We may also be a part of a NY Times story this Sunday!

The reason this may be interesting to add-on developers (& startups in general) is that Shareaholic got its start from Extend Firefox. I tell everyone this.

Shareaholic is now a company, my full time attention is now on it, and we just successfully raised an angel round in an iffy economic environment. When the first release of Shareaholic was pushed live on AMO, I most certainly did not start off thinking we’d be where we are today. I built Shareaholic to fulfill my own need, decided to release it to the world, and it just happens that a lot of other folks have the same need! It also comes back to my philosophy that if you build a good product, keep improving it based on community feedback, and always keep your users number one, good things will happen.

Other add-on authors should use Extend Firefox as a launching platform — as you never know – their add-on may just end up becoming a lot bigger than themselves and change their lives. Extend Firefox is a lot bigger than the great prizes on offer. Extend Firefox kickstarted my awesome Shareaholic journey. I adore our users and the resulting community that has formed around Shareaholic, it has been really fulfilling, and there isn’t a day that we wouldn’t go way above and beyond for our users.”

A couple of things to take away from this are that the Mozilla platform offers developers the tools to build successful web ventures as well as the support and distribution channels to get your product out to a large, focused audience. In addition, the Extend Firefox contest is an excellent way to get introduced into add-on development and also make your mark in the browser application world.

Jay, Mozilla congratulates you on your success and we hope to continue to provide the best platform, tools & support for developers to build world-class applications such as Shareaholic.

ShareThis

matthew zeier (mrz) — Where in the world is AMO? (Part VI: We did it again!)

(See Part V.)

I have a confession.  We secretly did something last night (we only barely announced it to Metrics).

No, we didn’t secretly replace the fine coffee at some four-star restaurant but pretty close.

Hot off our 2 second gain in average page load times for addons.mozilla.org, we shaved another 2 seconds off by duplicating The Amsterdam Reboot platform in Singapore (as a proof-of-concept).  Don’t take my word for it – take Gomez’s word:

AMO page load times (Gomez)

A little background

Zeus GLBFor what seems like ages I’ve been trying to figure out how to best serve Asia-Pacific users. It’s a tough case to make because I didn’t have a method to easily measure how much bandwidth traffic I’d need or how it would change page load times or user perceptions.

But I’m a network guy and I’ve had this feeling that we need something in this region. We certainly have a growing population in the area – 5 of the top 9 countries we’ve seen > 20% growth in the last five months have been in Asia. I’ve only been lacking operational data.

AMO .sg bandwidthOver the summer I’ve been playing and testing Voxel’s Silverlining Technology Preview, their global cloud computer platform.  On October 1, it’s going to move out of Preview and their cloud platform would be generally available in all their POPs, including Singapore.

Seemed like a good way to get data…

In a matter of hours I had spun up two Zeus ZXTM and one GLB cloud servers with Voxel in Singapore. I waited till our normal Thursday night window before turning it live.

A couple take away notes on this

  1. We did it right.  We built a proxy/caching platform as part of The Amsterdam Reboot that can easily be replicated anywhere and instantly provide real quantifiable performance benefits.
  2. Clouds make perfect sense to do proof-of-concepts.
  3. IT can move really fast.  We had these three servers ready to go Wednesday morning in a couple hours..
  4. Mozilla’s webdev crew does an awesome job writing extremely cachable webapps. I’m seeing a 91% cache hit rate (350,000 objects, 1.5GB).
  5. If this is a sustainable location, pushing user-focused sites like support.mozilla.com to Singapore are next on my list.
  6. I’d love to run this concept in other geographies like South America. Who does clouds down there?

What I most like about this platform is that it’ll allow us to strategically get content closer to users where it most makes sense.

This is right now just a proof-of-concept. It lets me experiment and get real metrics. I’m very interested in hearing from people who actually live in the area – does this make you happier?

One more thing

I was lucky to have two providers who stepped in and provided resources to let me run this POC. Both deserve a special thanks.

  1. Zeus. These guys are great and quickly issued temporary licenses for both ZXTM and GLB.
  2. Voxel. You guys have a nice platform in the right part of the world. I like working with you.

Dion Almaer — Web platform + Mobile future = A new adventure; Joining Palm with Ben

palmpixi

I remember watching the Palm Pre coming out party at CES with Ben and thinking “wow”. Palm had bet big. They had bet on the Web platform being the base for their new amazing hardware device, and becoming their platform going forward. Given the lead time required to create a device, I was impressed by their forward thinking. It was at this time that Ben and I were exploring how far we could push the Web as an application platform by creating Bespin with the Mozilla Labs team.

Fast forward to today, and I find myself taking on a new challenge with Palm. I will be joining Ben, my best friend, partner in crime, and fellow Ajaxian, as we take a new role as Director’s of the Palm Developer Relations team. We will have the responsibility of the developer experience with Palm. We will be trying to create a rich connective tissue between the company and the Web developer community that we love.

This feels like a pivotal time for the Web. We have a convergence of:

  • The personal Web (some are calling this the you-centric Web)
  • Mobile is truly here. With smart phones that are full computing powerhouses, we are seeing amazing experiences thanks to hardware and software working together
  • The Web browser has become a rich platform and powerful runtime

It also feels like we have only just begun. Browsers aren’t just getting a touch faster, they are getting exponential performance improvements. With HTML5, we are getting new richer APIs that cater for developers trying to create applications versus pages.

I have only really dabbled in the mobile world up until now. I have always been excited about consumer electronics, but never really got into the developer environments. I remember looking at the testing setups at companies such as Google, and realizing the pain in getting applications working across a huge slew of different proprietary API and capability. There is a massive opportunity with Palm webOS to give Web developers the ability to deploy outside of the browser, and onto the device.

I have long been frustrated with the status quo with certain platforms, and as I thought about what makes me happy as a developer, it is freedom, choice, and information flow. I feel passionately about bringing these values to mobile, and carry my Web DNA with me. When Palm came to Ben and I, we were curious to see how much they understood what it really meant to have a “webOS”. The management team impressed us, and persuaded us that they understand how important the principles of the Web are, as well as the crucial role of developers. By giving us the honor of this responsibility, they signal their intent.

Speaking of the Open Web, that brings me to Mozilla. It is a unique opportunity to work for a mission based organization such as Mozilla. They gave us the chance to work on projects that we care deeply about such as Bespin. Bespin has already grown beyond our dreams. It feels like we get daily emails from developers talking about how they are using Bespin in their own projects. Embedding it here, hacking on it there. You gotta love open source. I want to make it clear that Bespin will continue to go from strength to strength, and I can’t wait to see it revolutionize the way that we build applications. There is a fantastic community around the project, and the Mozilla Developer Tools Lab will continue the charge. It has been hard to move on, but the fact that Mozilla is a community gives us a unique opportunity to continue to work with the Bespin project. You can’t say that about too many companies out there.

So, I want to thank the Mozilla community and look forward to continuing to work for the Open Web with you. The crew in both Labs and the entire company is phenomenal. I can’t wait to see the great things that will continue to come out of the project.

Now is the time to knuckle down to create the most amazing developer experience in a mobile environment for you. I look forward to set an example with Ben on treating developers humanely, with trust and transparency. I won’t just use the word “open”, I will define what it means to us.

I hope to see you on the flip side, and look forward to continuing to participate in the Web community with you!

Ben Galbraith — Going to Palm with Dion


Do you remember how much the Web used to suck?

Not so long ago, we Web developers would have to constantly educate product managers and other business stakeholders about the limitations of HTML; we would often contrast it with so-called “rich client” technologies.

Over the past few years, we’ve all watched with wonder as these boundaries have disappeared and the Ajax revolution brought us a never-ending supply of rich web applications.

And while Ajax started out as web developers leveraging little-used so-called “latent” browser technologies, browser makers haven’t been sitting idle. Modern browsers are acquiring new abilities at a pace not seen since the early years of the Web–most of which are largely unused by today’s web applications.

Dion and I started Ajaxian.com a few years back when we like many others felt that a revolution was about to take place, and we’ve been fortunate to be able to chronicle a bit of it as it happened. We feel like the Web is similarly positioned today, ready for another expansion as developers discover and leverage the next generation of browsers.

Bespin Logo

We’ve been fortunate to do a bit of that expansion ourselves at Mozilla with the Bespin project. What Dion and I started as an experiment to see if we could create a code editor on the Web as responsive as the desktop has turned into a full-fledged project team aiming to revolutionize the way the world writes code.

At the same time the Web has been expanding, we’ve all been blown away as desktop computers have somehow shrunk down to pocket size. Clearly a revolution in hardware is taking place and it doesn’t take a prophet to work out that the future of computing lies along this new trajectory.

However, my enthusiasm for this amazing new world is tempered by some unfortunate decisions made by some of the players in this space. It seems that some view this revolution as a chance to seize power in downright Orwellian ways by constraining what we as developers can say, dictating what kinds of apps we can create, controlling how we distribute our apps, and placing all kinds of limits on what can do to our computing devices.

palm

And so as my good friend and long-time collaborator Dion so eloquently explains over at his blog, he and I have taken an opportunity to work at Palm–at the very intersection of these two exciting technology arcs–and we have the opportunity to run Palm’s developer program and to do things quite a bit differently than some others in the industry have done.

Dion and I believe in the Web platform–an open platform that no single vendor controls–and we believe in empowering and enabling developers. We have been honored to work with so many who feel the same way at Mozilla, we will continue to advocate those values as members of the Mozilla community, and we can’t wait to put these ideals into practice in our work at Palm.

David Eaves — Misunderstanding and understanding the Open Data Hype

On Wednesday Gartner's Andrea Dimaio wrote an interesting blog post entitled Open Data and Application Contests: Government 2.0 at the Peak of Inflated Expectations which Peter Smith nicely linked to the Gartner's Hype Cycle graph from Wikipedia. I want to break his post down into three components. Two - the bad and the good, I'm going to talk about today - the third, which I'll tackle on Monday involves some mapping and fun.

The Bad

As someone whose been thinking about and working on Open Data and Gov 2.0 for several years now three things struck me as problematic about Andrea's post. Firstly, he misunderstands the point of open data. While many people - self-included- talk about how it can empower citizens, citizens will not be its primary beneficiary. The biggest user of open data portals is going to be government employees. Indeed, Tim Wilson reminded me the other day of our conversation with Jason Birch, the thought leader who made much of Nanaimo's geo-data public, where he talked about how he wasn't actually tasked with sharing data publicly - he was tasked with making the data available to other Nanaimo city employees. Sharing it with citizens was a (relatively) cost free addition. These projects aren't about serving some techo-literati, it is about getting a city to first and foremost talk to itself - having it talk to its citizens is an important (and democracy expanding) benefit.

Second, was this unfortunate anecdote:

Yesterday I was discussing with a British client over lunch and he told me how the publication of data may lead to requests for more data (through the Freedom of Information Act), in a never-ending cycle of information gathering which is likely to cost a lot to both government and taxpayers. Another client observed (as I said in a previous post) that there is no way people will be able to tell to what extent a mash up on an application actually uses official, trusted government data.

Could government become swamped with data requests? Who knows, but in theory... it shouldn't. Making data available should reduce the amount of time public servants spend responding to requests by diverting requests to open data portals. But let's say Andrea's concerns are valid and that, as a result of open data, citizens become more actively concerned and interested in how government works and thus Freedom of Information Act requests increase. The horror... citizens are interested in government! Citizens want to know how decisions are made! Remind me again... why is this a problem?

The real problem here isn't access to data, it's that the Freedom of Information Act process is itself broken. If open data creates a further demand for more transparent government and pushes us to foster better mechanisms for sharing government information, this is a good consequence. As for concerns that people might misrepresent public data, well a) people can already do this and we haven't had a rash of bad applications, but even if they tried... people will stop using their service pretty quick.

Finally, another nice thing about public data is that it tends to get very clean, very quickly. My concern isn't that government data will be misrepresented... I'm concerned that government data is already wrong and isn't being verified. Knowing that someone might actually look at a data set is one of the most powerful incentives for organization to improve its collection. (Something Clay Shirky noted in a talk he made the other day at a Bioinformatics conference I'm at).

(There is of course, one group who may not see these a good consequences as it will change how they work: British public servant like Andrea's client's who raised the objections... but then they pay Gartner's bills, not you.)

The Good

The end of Andrea Dimiao's piece is where we find common ground. I agree that the Apps for Democracy competitions run the risk of limiting the definition of "the public" to citizen coders.  We want broader participation - particularly once more complex data sets like budgets, procurement and crime data are released - from academics, citizens groups and NGOs. Here in Vancouver we've talked about focusing any Apps competition on the themes of homelessness, housing and the environment, since these have been the dominant concerns of citizens in recent years.

More importantly, I agree (and love) Dimiao's concept of employee-centric government. Indeed, my chapter for Tim O'Reilly's upcoming book on Open Government makes a parallel argument, that namely we should stop trying to teach an analogue government to talk to a digital public and instead focus on making government digital (ie. getting it "open," networked and using web 2.0 internally) first.

And perhaps most importantly, I agree that government 2.0 risks being over-hyped. I still believe in the potential, but know that getting there is going to be a painful process (mind the gap!). Government 2.0 advocates should expect lots of resistance and adoption problems ahead - but then change is painful.

Email & Share: Print this article! Turn this article into a PDF! E-mail this story to a friend! Twitter del.icio.us Digg StumbleUpon Slashdot Reddit Facebook Netvibes Technorati Suggest to Techmeme via Twitter Identi.ca

<script src="http://js.goosegrade.com/grade.php?sid=2316560" type="text/javascript"></script><noscript></noscript>

Alex Fritze — Building a Chumby-style feed reader using SJS


Stratified JavaScript (SJS) might still be work in progress, but that doesn't mean it can't be used for building some (semi-)useful things.

Consider e.g. the 'FeedChumby' RSS feed reader which automatically cycles through the posts of some popular RSS feeds, 'slide-show' style - similar to the way in which a Chumby cycles through its widget stream.

In this blog post I will dissect the code for this webapp, tutorial-style.

Accessing feeds

At its core, FeedChumby uses the Google AJAX Feeds API which allows us to retrieve RSS feeds without having to worry about any crossdomain issues and without requiring any server support from our side.

SJS gives us access to this API through the unassuming function

  Ajax.Google.Feeds.loadFeed(url);

which returns a JSON results object as described in the Google documentation.

Because we're using SJS, we can call this function synchronously - no callback or other asynchronous construct needed. All the asynchronous action is automatically choreographed behind the scenes: loading the Google API if it hasn't been loaded yet, making sure the 'feeds' module is loaded, and finally loading the actual feed itself. While all of this is going on, the browser stays perfectly responsive.

Coupled with SJS's 'Ajax.DOM.waitForEvent' library function (which - as one would expect from the name - waits for a particular DOM event), loading and displaying a feed in response to a button click is then as easy as this:

  Ajax.DOM.waitForEvent("click", button);
  var result = Ajax.Google.Feeds.loadFeed(feed_url);
  renderResult(result);

Here is a complete example: View Source | Run

Basic program structure

By sticking 'loadFeed' into a loop, iterating over a few different feeds and over individual feed posts, and pausing for a few seconds after each post is displayed (using SJS's "hold()" primitive), we've got the basic structure for our Chumby-style feed reader - again no asynchronous constructs (like e.g. setTimeout) needed:

  var feeds = [ "...slashdot...", "...digg...", "...elreg...", ... ];

  while (true) {
    for (var i=0; i<feeds.length; ++i) {
      var result = Ajax.Google.Feeds.loadFeed(feed[i]);
      for (var j=0; j<result.feed.entries.length; ++j) {
        renderFeedEntry(result.feed.entries[j]);
        
        hold(10000); // <-- wait 10s before continuing with next post
      }
    }
  }

Let's also add a button that allows the user to shortcut through the 10s waiting time. The easiest way to provide this sort of functionality is by using SJS's '@' combinator (as described in an earlier blog post, "A @ B" executes both A and B in parallel, and returns as soon as either of them have finished evaluating; at the same time cancelling the still pending expression):

  for (...) {
    ...
    hold(10000) @ Ajax.DOM.waitForEvent("click", nextButton);
  }

As a little refinement, we can replace the 'hold(1000)' by code that will provide the user with some UI feedback during the waiting period:

  function countdown() {
    for (var i=0; i>0; --i) {
      counter.innerHTML = i;
      hold(1000);
    }
  }

  ...

  for (...) {
    ...
    countdown() @ Ajax.DOM.waitForEvent("click", nextButton);
  }

Here is a complete example with the functionality so far: View Source | Run

Adding 'pause' functionality

Again using '@' and 'Ajax.DOM.waitForEvent()', we can modify our countdown() function to stop counting down while in a paused state:

  var paused = false;

  function countdown() {
    var i=10;
    while (i>0) {
      counter.innerHTML = i;
      if (paused) {
        pauseButton.innerHTML = "Play";
        Ajax.DOM.waitForEvent("click", pauseButton);
        paused = false;
        pauseButton.innerHTML = "Pause";
      }
      (hold(1000), --i) @ 
      (Ajax.DOM.waitForEvent("click", pauseButton), paused=true);
    }
  }

Note the '@' expression here. It combines the two simpler expressions "(hold(1000), --i)", which waits for 1s and then decrements 'i', and "(Ajax.DOM.waitForEvent("click", pauseButton), paused=true)", which waits for a click on 'pauseButton' and then sets the variable 'paused' to true. (In both 'normal' JavaScript and also SJS, for two expressions A and B, "A,B" is an expression that means "execute first A and then B".)

Here is the example with the pause functionality rolled in: View Source | Run

Adding birectional navigation

To add functionality that allows the user to navigate back to the previous post, we need to change our loop logic a little bit to account for the situtation where we're moving past the beginning of a feed to the previous feed. The gory details are here: View Source | Run.

Note the '@' expression in the main loop:

  (countdown(), ++j) @ 
  (Ajax.DOM.waitForEvent("click", "next"), ++j) @
  (Ajax.DOM.waitForEvent("click", "previous"), --j);

Previously we only waited for the countdown to finish or for the user to click on the 'next' button. Now we're also waiting for clicks on the 'previous' button, and we're incrementing/decrementing variable 'j' to communicate the direction of navigation.

More embellishments

The absence of any asynchronous constructs (callbacks, setTimeouts, ...) makes the code quite modular. It's easy to add little features here and there without having to take a "global view" of the application, and the '@' combinator relieves us from a great deal of manual bookkeeping.

The final version of the FeedChumby adds a couple more small touches, like e.g. an animated pause button, and it contains some CSS to make the application more presentable: View Source | Run

I think FeedChumby is a pretty good example of the power of SJS for writing Ajax-style applications. The real win, however, will only show in big 'mashup' style applications that access several different APIs concurrently. Expect to see more demos coming along with APIs such as the Google Translation API, Google Contacts, Facebook Connect, and others.

Marco Zehe — Recent happenings in accessibility-related projects financially supported by Mozilla

For several years now, Mozilla has funded varying projects in the field of accessibility development. Projects like Orca’s support for WAI-ARIA live regions, GNOME Accerciser, NVDA, or more recently, audio and video accessibility work and Firebug accessibility, are, in whole or in part, being funded by the Mozilla Foundation and other Mozilla resources to help fulfill the Mozilla manifesto and the Mozilla Accessibility Strategy.

Here’s a summary of what’s currently happening in Mozilla-funded accessibility-related projects. Most of these surfaced over the past quarter, or last half a year.

NVDA

In early August, it was announced that the Mozilla Foundation would renew its funding for the NVDA project. Mick posted a summary of the goals to the NVDA blog.

The project is well underway, en route to their 2009.1 release with improved support for WAI-ARIA landmarks, a totally revamped list of elements, support for 64 bit operating systems and much more!

Spearheaded by the Mozilla Foundation, who were the first to fund NVDA starting in 2007, Microsoft, Yahoo! and Adobe have since joined in supporting this open-source screen reader for Windows, offering a compelling alternative to commercially available assistive technologies on this platform.

For more news such as winning the Vision Australia Making A Difference award, check out their blog.

Audio and Video accessibility

Frank already detailled much of this in his blog post above, and Silvia Pfeiffer just recently published a progress report on the grant.

Silvia also gave me some demos to test, and if you use JAWS or NVDA or Orca, I suggest you try them out yourself to see how cool they are!

This work has the potential to involve a lot of volunteers in helping make more movies, songs, and other material accessible to a large number of people with varying disabilities. Talk about crowd-sourcing!

Firebug UI accessibility and the Firebug accessibility testing extension

There are currently two grants happening in regards to Firebug, the web development tool of choice for many thousand web workers.

One is the work the Paciello Group is doing to make the UI accessible. I posted about the Firebug 1.4 release already, but the work doesn’t stop there. The next alpha release of Firebug 1.5, 1.5xa25, will include accessibility of the net panel, a component that was still missing in 1.4. The documentation has already been updated with information on how this will work. I gave this a whirl this week using a custom build I received from Hans (the developer in charge), and it works as advertised! So keep your eyes on the Firebug release cycle to not miss this cool update!

The other portion is work the University of Illinois UIUC is doing to develop an extension that will allow web developers to test whether they’re using correct accessibility-compliant markup. The extension will honor the WCAG 2.0 guidelines and WAI-ARIA specifications. Development has started recently, and I will be testing an early version soon to see how it fares! Keep your eyes on this blog for more info as it becomes available!

Once this work is completed, Firebug will be a solution for web developers to do testing of accessible web pages with an accessible UI. It means that Mozilla will be able to offer, directly or indirectly, a full range of testing and usage tools starting from the browser itself, the screen reader, and the testing and development side, all in an open-source fashion, driving the accessible web standards effort forward in thus far uncharted territory.

So, let’s boldly go! :)

Seth Bindernagel — L10n Track for the Moz EU Camp

For those of you who will be joining me at the MozEUCamp in Prague next weekend, I’ve updated the l10n track on the schedule and written longer descriptions of the presentations that will be given by the l10n-drivers and some critical volunteers (jhiatt and adriank).

Got a presentation or topic you want to discuss?  Email me or comment or this blog and we’ll see how to get it in a slot.  I intentionally left some open blocks so localizers can attend other non-l10n talks of interest.   See you in Prague next week.

ShareThis

Robert O'Callahan — Melbourne

Tomorrow I'm flying to Melbourne for the week. I plan to be working regular hours, albeit in a different time zone. See you online!

Chris Crews — Firebot Downtime - September 24th and 25th, 2009

Starting now, and continuing for at least several hours, the server that hosts firebot will be down for an upgrade.. since the other server here is being kind enough to donate its "old" CPU and motherboard...

The server will be being upgraded from an circa-2003 Athlon XP 2400+ to an Athlon 64 X2 4000+, plus moving to a SATA disk...

Firebot will be back soon. :-)


Update: The CPU upgrade was successful, unfortunately, due to some time-consuming issues that were encountered, I've moved back my plans to migrate the system to the SATA disk, the disk is installed and ready, just have to plan more downtime to set up the system on it. Its tentatively planned for tomorrow, 9/25.

Alex Faaborg — No Ribbon Planned for the Firefox UI

Yesterday a story circulated around the Web and Twitter that Firefox was planning to Tidy Up With Office 2007’s Ribbon. The mockup of Firefox in the article didn’t actually have a Ribbon in it, and the nice folks over at PCPro quickly added an update to the story. However word spreads fast on the Web, and there is now a good bit of confusion.

Word2007
The Ribbon UI is designed to hold a large number of document creation and editing tools, Word (2007)

So to clarify: a tab based and contextual UI designed for holding a massive number of commands for document creation (a Ribbon) doesn’t actually make any sense for a Web browser, and we do not have any plans to use a Ribbon for commands in Firefox.

Firefox4Proposal-Left
Firefox 4.0 Proposal

The one thing about all of this confusion that strikes me as really ironic is that the feedback coming in has been based primarily around two points:

1) A UI designed for document creation and editing (a Ribbon) makes no sense for a present day Web browser (indeed, we agree)
2) We should not get rid of the traditional menu bar on Vista and Windows 7!

While I totally agree with the first point, the ironic part is that a traditional menu bar is also a UI designed primarily for document creation and editing. For instance, the most prominent commands in the traditional menu bar are File, Edit, New, Open and Save:

Word1992
Word 2.0 (1992)

Web browsers actually have a long history of illogically following the lead of Office’s UI, for instance look at the interface of Mosaic 1.0, where document creation and editing controls like File, Edit, Open and Save are displayed as being more important than core navigational controls like Back and Home:

Mosaic
Mosaic (1993), note the number of similarities to Word 2.0

This is where it all started, although to their credit they were actually working on a Web that had notions of document creation and editing.

Now while I’m all in favor of one day creating a full read/write Web browser where it is just as easy to create a page as it is to view one, we aren’t there yet. So interfaces based around document creation, like the old menu bar, or the new Ribbon, simply aren’t a good fit.

And that’s why we (as well as all other major browsers) are shifting towards minimizing the command UI, and having a single button that acts on the page, and a single button that acts on the browser. Additionally, both of these commands are de-emphasized by placing them far on the right side, while core navigation commands get placement in the upper left (this is of course reversed for RTL languages):

Firefox4Proposal-Right
Firefox 4.0 Proposal, right side contains a minimal command UI

So I believe that for the same reasons a Ribbon makes little sense for the Firefox UI, which is primarily about tabs and navigation, a traditional menu bar (despite 16 years of history in Web browsers) also makes little sense. And now after 16 years, mainstream browsers like IE, Chrome, Safari and Firefox are exposing a UI that is designed for the specific task of browsing the Web, instead of just mindlessly mirroring Office.

Mozilla IT — Mozilla Scheduled Downtime – 09/24/2009, 7pm – 11pm PDT (0200 – 0600 09/25/2009 UTC)

We will have a scheduled maintenance window tonight from 8:00pm to 11:00pm PDT. The following changes will take place:

  • 7:00pm PDT (0300 UTC) crash-stats.mozilla.com content push. We’ll be picking up code updates (bug 518636). During this time, crash-stats.mozilla.com should be up but some aggregated reports may not be available. crash-reports.mozilla.com will be up and accept crashes. Duration two hours.

Please let me know if you have any reason why we should not proceed with this planned maintenance. As always, we aim to keep downtime to as little as possible, but unexpected complications can arise causing longer downtime periods than expected. All systems should be operational by the end of the maintenance window.

Feel free to comment directly if you see issues past the planned downtime.

Daniel Einspanjer — Advice regarding using Travelex Cash Passport cards for travel

If you are a traveling to Europe and considering getting one of these debit cards to make life easier for you while there, my advice is don't! Figure out which of your credit cards charges the least amount of fees for international usage and just use it.


First, a general complaint:  interacting with Travelex is a hassle. Their phone menus are a maze of twisty little passages, all alike.  When you finally manage to reach a person, you'll have to give them all the exact same information you entered into the phone menu.  Calling them when you are on your trip means calling a long distance number plus additional charges if you must use your cell phone or hotel phone or pay phone.  The customer service agents are not rude though.  I'll give them that.

Most importantly, the card does not work everywhere that MasterCard is accepted. If you give it to a merchant that it is not compatible, their credit card processing machine might decline the card but the money can still be withheld from you for seven days. If the merchant runs the card through three or four times, each attempt will withhold the funds again. A nice €60 meal can turn into a €180 disaster.

If you get into this situation, don't expect help from anyone. The merchant can't do anything because it was declined on his side. When you call Travelex (paying international long distance or international roaming fees), they will tell you that it isn't their fault and that the merchant did something wrong. Ignore the fact that you had to turn around and use a different MasterCard with the merchant and that one went through just fine. Furthermore, Travelex will tell you that your only option is to wait seven business days and see if the hold disappears. If it does, move on to the next challenge. If it doesn't, then expect the following additional hassle:
  1. request a dispute form from Travelex
  2. wait for it to be delivered by mail
  3. fill it out and send them copies of all the decline receipts and a letter from the merchant stating that they did not receive the money that is disputed and that you have already paid them through other means
  4. wait. After pulling teeth with one customer service agent, I was able to get the reassurance that it should definitely take less than a year to resolve. Likely just a few months.
Once you have the funds back on your card, it is likely you might be in the same boat as me and your trip to Europe is now over! So now, how do you get the money back? You have a few options:
  • Withdraw it from an ATM. You will pay:
    • €1.75 ATM fee converted to USD at a worse than market rate
    • $x dollars to the owner of the ATM for using a foreign ATM card
    • Whatever remainder you can't take out through the ATM will be taken by Travelex after 12 months
  • Close the card at a Travelex branch. You will pay:
    • $20 administration fee
    • Worse than market conversion rate (note the fine print that the "Currency Return Guarantee" doesn't apply to the money on the card!)
    • Another arbitrary fee/commission that varies from branch to branch and (I suspect) the mood of the employee
  • Leave the funds on the card until your next trip. You will pay:
    • €2.30 Monthly inactivity fee each month after a year.
    • The unavailability of the money for the duration (Travelex will happily take advantage of the money while you aren't using it though!)

Thunderbird Localization — String freeze date for Thunderbird 3.0 confirmed

As I already outlined five weeks ago the string freeze date for the final release of Thunderbird 3.0 has been finalized. We will freeze all strings on September 29 2009 at 23:59 PST.

No firm dates for the release of the first release candidate (RC1) of Thunderbird 3.0 have been finalized, but localizers can expect a minimum of 4 weeks time before the first release candidate will be made public.

David Boswell — Getting Involved Redesign Round 2.5


The next round of designs* for the new Getting Involved page is now available. I think things look better and flow better than the first mock-up we posted. Specifically:

  • All of the pathways for getting involved are now above the fold—the ticker has been included as another option in the tabbed browser and a contact form is in the sidebar.
  • The original design was all text and a bit drab. A tweaked star graphic from the home page (this can develop as a theme across the site whenever information about contributing is available) and a prominent space for graphics promoting opportunities livens things up.

What do you think? Getting better? Still needs work?

get_involved

* This is round 2.5 since we developed three designs for the second round but felt that two of them just didn’t work as well. So we took the strongest and tweaked it a bit.

  • One we decided not to use built on the original search box idea that I think is impracticable.
  • The other featured a more prominent email form that ended up taking up too much space.

We may be totally wrong though. If you think the above design is going in the wrong direction and we should revisit other options, let us know.

David Eaves — How bloggers can keep the internet healthy

I'm continuously trying to brainstorming ways that Mozilla can find the next million mozillians and figure out activities they can do. I think I've stumbled on to a new one but would need some help to make it happen.

As some of you may know, as part of Mozilla Service Week Mozillians around the world donated their time and helped perform numerous Internet Health Checks. The goal here is to help people migrate off of Internet Explorer 6 (which is vulnerable to attacks and therefor makes the web less safe).

In my case, I'd already helped move pretty much anyone I know who uses IE 6 to something newer and better. What I need is a way to help prod people I don't know.

What I thought might be interesting is if someone could build a blogger & wordpress plugin. This plug would ascertain what browser a visitor to your blog is using and... if they are using IE6... then the blog widget would let the reader know that the author of the blog strongly encourages them to upgrade to IE8, Firefox, Safari or really anything newer and safer. With this (hopefully relatively simple plug-in) Mozilla can engage the blogging community, enable people to help advocate for a safer internet and, most importantly, encourage still more IE6 users to move to something newer and safer.

Yes, it isn't the be all and end all, but its another small idea that allows another group of people to contribute is an easy, but tangible and important way. That said, if this widget can't be created, or if there is something easier/better that can be done, please, send me an email or comment below!

Email & Share: Print this article! Turn this article into a PDF! E-mail this story to a friend! Twitter del.icio.us Digg StumbleUpon Slashdot Reddit Facebook Netvibes Technorati Suggest to Techmeme via Twitter Identi.ca

<script src="http://js.goosegrade.com/grade.php?sid=2316560" type="text/javascript"></script><noscript></noscript>

John O'Duinn — Firefox 3.5rc3 by the (wall-clock) numbers

Mozilla released Firefox3.5rc3 on Tuesday 30-jun-2008, at 08:00PST. This was the formal Firefox 3.5.0 release. From “Dev says go” to “release is now available to public” was approx 6 days (6d 16h 05m) wall-clock time, of which Build&Release took just over 2 days (2d 8h 45m).

15:55 23june: Dev says “go” for FF3.5rc3build1
16:30 23june: FF3.5rc3build1 builds started
21:48 23june: FF3.5rc3build1 linux, mac builds handed to QA
22:50 23june: Respin declared
01:05 24june: Dev says “go” for FF3.5rc3build2
01:10 24june: FF3.5rc3build2 builds started
04:00 24june: FF3.5rc3build2 linux, mac builds handed to QA
13:15 24june: FF3.5rc3build2 signed-win32 builds handed to QA
??:?? ??june: FF3.5rc3build2 update snippets available on test update channel
22:35 25june: FF3.0.11->FF3.5.0 major update snippets available on test update channel
21:30 29jun: Dev & QA says “go” for Release; Build already completed final signing, bouncer entries
22:05 29jun: mirror replication started
03:10 30jun: mirror absorption good for release
08:00 30jun: website changes finalized and visible. Build given “go” to make updates snippets live.
08:00 30jun: update snippets available on live update channel
08:00 30jun: release announced

Notes:

1) Firefox3.5 was the first time we did a major update at the same time as the release. This caused additional RelEng and QA work and is included in the times above.
2) Our blow-by-blow scribbles are public, so the curious can read about it, warts and all, here. Those Build Notes also link to our tracking bug#499687.
3)The extra long wait before the end of the release, was to wait for feedback of possible issues from beta users of 3.5rc3, as well as technical and media preparations specific to this large scale release event.
take care
John.

Ludovic Hirlimann — Quick reminders

hacks.mozilla.org — three more WebGL demos

If you see other cool WebGL demos post them in the comments here or let us know at @mozhacks. We’ll keep posting them as we find them.

A port of Puls to WebGL:

Escher-Droste effect in WebGL:

Metatunnel by FRequency:

(via Mark Steele)

Josh Aas — 64-bit Firefox for Mac OS X Up and Running


We got 64-bit Firefox running on Mac OS X today.

64-bit Firefox

I don’t want to post a build here because there are still some significant issues. We should be ironing those out quickly though. Not all of the patches required to produce 64-bit builds are checked in yet but we’re working on it.

We had to rewrite a lot of code to get this going. Thanks to Masayuki Nakano, Joel Reymont, Markus Stange and David Anderson for helping with some of the last bugs!

Pascal Finette — Excuse my language – but cookies are pretty @#$%!

Cookie Tracking

This will be about cookies (the browser ones) – and why they are such a mess (at least from my personal point of view). To start this off on the right foot (and to quote my favorite TV chef): “Cookies are pretty f’ed”. :)

First things first…

Let’s start with the reason why cookies exist: In the beginning (aka 1995) cookies were invented by Netscape to provide a persistent storage mechanism for stuff such as shopping carts. Generally a good idea – but unfortunately the way cookies were engineered had major flaws: Cookies can only be set, modified and read by the originating domain (e.g. when you visit a webpage on http://www.example.com, servers in this domain can access only cookies set by servers in the same domain, i.e. “example.com”). This in theory is a good security measure – but the original spec allowed cookies to not only be issued by HTML pages but also GIFs. This in turn led to the “GIF cookie loophole” — if the website at http://www.example.com includes a GIF image which comes from http://www.advertiser.com, then suddenly advertiser.com can set a cookie on your computer as well (although you never visited their website – “seeing” the GIF is enough). Advertisers started to exploit this loophole by using tiny 1×1 transparent pixels (Tracking Pixel), whose sole purpose was to serve you a cookie.

The advent of the mega-networks

All this is hardly a nuisance as long as the companies setting these tracking pixels “see” only a tiny fraction of your online activity. But what happened in reality was that the ad networks (the entities which set the tracking pixels) got larger and larger – until they became massive networks which have their tracking pixels on all larger (and many smaller) web properties. Suddenly a company such as DoubleClick (now part of Google) or Atlas (now part of Microsoft) can track you across numerous websites you visit and learn how you interact with their ads. Combine the power of Google’s AdSense (which is deployed on millions of small websites) with DoubleClick’s ad-server (one of the most used ad-server products in the world) and you can only begin to imagine how rich the dataset about you, your browsing behaviour, your preferences and ultimately you as a person is (or at least can be).

The fun begins: Integrated networks

If this sounds scary, meet your new friend: Integrated networks – Now that large companies like Google and Facebook run their own ad networks (and in the case of Google also one of the most popular web analytics services), they take tracking a couple of levels up from here: Suddenly their ability to track you multiplies, as many sites incorporate their tracking, their ad network code and and their syndicated login mechanisms (e.g. Facebook Connect).

Let me illustrate these points: Assume you visited blog X which runs Google Analytics for their web analytics, after that you visited community site Y which has ads served through Google’s AdSense network and then decide to visit the large media site Z which serves display ads using the DoubleClick ad server and network. Google has now “seen” you on all three properties and can build a rich profile about you, your habits and preferences. To illustrate the danger of this, have a look at Gaydar – a little Facebook application which uses only a few data points to determine (with startling accuracy) if you are gay.

More fun: Redirects

Wanna take it up a notch? Server Redirects are a common occurrence in ad serving these days – and multiply the amount of cookies you get served plus increase your exposure to be profiled. Here’s how it works: Website X has a placement for an ad. Website X’s ad-server doesn’t have an appropriate ad for you (due to targeting, frequency capping, etc) and redirects the request for the ad to another ad network. This ad network serves a cookie (or reads the existing cookie if it was set already) and might or might not deliver an ad. If this ad network doesn’t deliver an ad it might redirect the request to yet another ad network – and so on. As a result you end up with dozen of cookies on your machine – from visiting a single page. Note that this does not require you to ever interact with any of those ad networks – they simply can track you now on even more sites. And there is a whole cottage industry which picks up these “junk ads” and delivers their ads on the back of other networks.

Still not convinced? Cookie Stuffing

That all sounds broken enough? Merely! Meet your next new friend “cookie stuffing“. In the world of affiliate advertising (another extremely popular form of distributed advertising) the affiliate marketeer who sets you the last cookie before you make a transaction on the partner website gets the marketing money. Take all you learned about cookies so far and add a good portion of bad business ethics and you arrive at cookie stuffing – you simply simulate clicks onto a bunch of affiliate ads and thus stuff the users’ browser with your cookies.

It’s getting better…

Cookies (and their current implementation) are bad enough as they are. But at least you can clean them out pretty easily (in Firefox for example you can delete all cookies by going to Preferences>Privacy>Show Cookies). If you have Flash installed (and chances are you have), a website can set a Flash Cookie (LSOs – Local Shared Objects) which can be significantly larger than a standard cookie (i.e. more data about you) and are pretty much impossible to manage (no direct management interface unless you stumble across a very well hidden explanation on how to control them).

What you can do today

There’s a bunch of rather simple options for you to get yourself out of this mess: If you use Firefox, you can install something like the Ghostery Firefox Add-on, which not only informs you about tracking cookies but also can reject them on your behalf. You also can install the TACO (Targeted Advertising Cookie Opt-Out) Add-on which automatically installs no-tracking cookies from the most popular ad networks. To protect yourself from Flash LSOs you can modify the settings for your local Flash install using this URL and manage them through the Better Privacy Add-on. Similar extensions exist for other browsers as well.

What we need to do in the future

I personally believe that cookies are now broken to an extent that we need to replace them with something more usable – both for users and advertisers. Users should have the ability to easily determine what they want to share with advertisers (don’t forget: cookies allow serving of more relevant ads – something which a lot of people don’t object). Advertisers need a robust mechanism to track users (who opt in) and protect them from practices like cookie stuffing.

Mozilla Labs — Reminder: September 30th deadline for Weave Web UI Design Challenge

Design Challenge Logo

Get your concepts in! The Weave Web UI Design Challenge is looking for your answer to the question:

“Visualizing your browser data – How can we provide intuitive and useful visual representations of your browser data (such as bookmarks, history, tabs, stored credentials etc.) on a web page?”.

This is your chance to get your ideas in front of a large audience, receive feedback from experts in the broader field of user experience design and directly influence the future design direction of Mozilla Labs’ Weave.

Read all about the Design Challenge on the landing page and submit your concept on our ChallengePost page.

Giorgio Maone — Strict Transport Security in NoScript

Seven months ago Andy Steingruebl, PayPal’s Secure Development Manager, contacted me to know whether a future NoScript version could support server-side activation of its HTTPS-enforcing features, preferably with a more robust approach than the cookie-based one seen in the original Barth & Jackson’s “ForceHTTPS” proof-of-concept. Such a potential development had obvious positive implications for e-commerce businesses and secure websites in general, hardening them against session hijacking attacks. I proposed a X-Force-HTTPS response header, to be ignored if coming through an insecure connection, otherwise switching on or off the “HTTPS-only” policy for the sending host. A dedicated persistence mechanism on the client side, immune from any accidental or malicious override, was meant to overcome the obvious intrinsic limits of cookies. The discussion seemed to die there, though.

Three months later, on May the 1st 2009, Steingruebl sent me another email, introducing Jeff Hodges, a PayPal security researcher who was preparing a specification draft for a refined “X-Force-HTTPS” header, renamed as X-Force-TLS. They were hoping to get a reference implementation in NoScript, and I would have really liked to help, but the timing could not be worse: I was already working around the clock for the first ABE public release, due on May the 25th, and as if that wasn’t enough, just some hours earlier the Adblock Plus “scandal” had exploded all over the Internet, taking away the peace of mind required to sustain NoScript’s traditionally allegro development rhythm. So, after releasing ABE, I spent my summertime focusing on its user-driven stabilization, and the X-Force-TLS sub-project went in the fridge. In the meanwhile an experimental implementation had been provided by Sid Stamm as a standalone extension for Firefox. Sid is a Mozilla guy who’s very active on CSP as well, so this might be seen an encouraging hint to future support in the core browser.

However one week ago the security staff of a (quite easy to guess) leader Asian e-commerce player, which has been closely following the development of NoScript’s “WebAppSec-oriented” features such as ABE, ClearClick and Anti-XSS Injection Checker, asked me whether I could estimate a date for implementing a server-side switch mechanism for HTTPS enforcement, just like the one discussed earlier with PayPal. They were eager to deploy this kind of protection as soon as possible, even in October, as part of a client security campaign involving a “Safest with Firefox + NoScript” recommendation. Therefore I decided to unfreeze my own X-Force-TLS implementation and, after a quick assessment, I committed to inclusion in NoScript 1.9.8.9, scheduled for release this week. As an incredible coincidence, on day later I noticed a message from Jeff Hodges on the WHATWG mailing list, announcing the Strict Transport Security draft, a more formal and public “X-Force-TLS” header proposal, renamed again as Strict-Transport-Security and about to be implemented in the not-too-distant future by Chrome, too. So I immediately forwarded the exciting news to the interested Asian party and made the necessary HTTP header renaming in my code for NoScript 1.9.8.9, announcing its impending release.

And here we are, with NoScript providing the first public Strict-Transport-Security user agent implementation. If you’re in charge of a secure web site, please refer to the aforementioned specification to increase the reliability of your SSL deployment. If you’re a NoScript user, just keep relying on it as always, knowing that your online transactions are going to become safer during the incoming months, as adoption among secure web properties grows. And if you’re a power user and you prefer not to wait for them, don’t forget that NoScript can already force any website to use secure connections only, at your whim.

Mark Surman — Drumbeat notes #5 – questions (and scenarios)


This is the fifth in a series of notes posts about Mozilla Drumbeat. It lists the five biggest questions we need to answer about Drumbeat right now and proposes the use of scenarios to answer these questions. These notes are drawn primarily from recent conversations with Jenny, Chris, Matt, Brian and Mitch, a brainstorm on groundgame strategies as well as a brown bag discussion in Mountain View.

Drumbeat Questions

Starting point: everyone I have talked to so far is excited by the overall Drumbeat concept. All think that Mozilla should step up to help people become stewards of the web as a public resource. And, with small variations, there is broad agreement with Drumbeat’s proposed focus (topics like the open web or identity) and tactics (online engagement and campaigns combined w/ various kinds of on the ground events). This is good, but it only goes so far.

We need to dig deeper. To help with this, I’ve gone back over my notes to look for the most common questions that are still coming up. They fall into five broad categories:

  1. Framing: How do we explain the topics we choose to focus on simply, creatively and optimistically? What research, writing, etc. can we do to help with this explaining process?
  2. Audience: Who are we trying to engage? What are they motivated by? How do their motivations match with our goals?
  3. Campaigns: What specific campaigns should we start with? How do people move up the ‘ladder of engagement’? How do we set things up so people can easily generate their own campaigns?
  4. Geography: Where are the best places in the world to start work on Drumbeat? Where do we have strong communities and potential partners?
  5. Partnership: How do we build a big tent while still focusing most of our resources on issues that matter most to Mozilla? Who’s on the map of allies and partners?

While I (and the people I’ve talked to) have ideas on these questions at a high level, we need to get more concrete than that. I propose that we spend the next two weeks working through specific scenarios answering these questions. Each scenario will focus on a particular topic and geography that we might work on during Drumbeat’s first year (2010).

I’ve created a rough scenario template and written out a sample scenario focused on the broad topic of the internet as a public resource. I am also going to work with people at MozCamp Europe in Prague as well as other people from the extended Mozilla community to flesh out other scenarios. Please consider joining the Drumbeat mailing list to comment / critique / improve these scenarios as they emerge. Also, if you’ve got a scenario in mind, outline it as a comment below or on the mailing list. I’d be happy to help you flesh it out.

Posted in drumbeat, mozilla

Rumbling Edge - Thunderbird — Thunderbird 3 Beta 4 Released

Changelog for previous release (Thunderbird 3 Beta 3) | Changelogs for other Thunderbird releases

Released on 22 Sep 09, and this changelog was last updated on 23 Sep 09.

Thunderbird 3 Beta 4 has been released. Release notes are available. This post lists the improvements in Thunderbird 3 Beta 4 over Thunderbird 3 Beta 3. This list encompasses almost every single known fix that went into this release, but excludes platform-wide fixes. Do check out the known issues as well.

Now based on Gecko 1.9.1.3 platform version.

Changes in Thunderbird 3 Beta 4: (333)

Thunderbird-specific: (213)

  • Fixed: 67219 - Disable filters menu item when no accounts are set up
  • Fixed: 170520 - Allow SMTP server to be specified when creating new account
  • Fixed: 231541 - “Leave messages on server” should be chosen by default (dataloss)
  • Fixed: 232679 - Can’t open blank new message when main mail window is not open
  • Fixed: 249841 - False positives from message bodies search in newsgroups and IMAP accounts
  • Fixed: 274273 - “About Thunderbird” dialog has useless “hide toolbar” button
  • Fixed: 274688 - The dock icon often shows an incorrect number of unread messages
  • Fixed: 326169 - Make “prefs / advanced / certificates” match “firefox / prefs / advanced / encryption” (wrt ssl client certificate UI)
  • Fixed: 337867 - “save as file” HTML extensions wrong
  • Fixed: 356770 - Account wiz talks about ‘Tools menu’ where ‘Edit menu’ should have been used on linux
  • Fixed: 371629 - Star header will not un-highlight
  • Fixed: 383131 - lost of color marks in the receipt window
  • Fixed: 409798 - Blank lines occasionally appears in mail listing
  • Fixed: 436869 - non-standard MIME types, application/x-pkcs7-mime and application/x-pkcs7-signature – don’t need the x- prefix
  • Fixed: 449220 - opening the eml-attachment in a forwarded email does not work
  • Fixed: 451841 - Use new search textbox widget in “Download Actions” dialog
  • Fixed: 452711 - use firefox default font chooser for display
  • Fixed: 456168 - Headers take up too much space in new arrangement
  • Fixed: 458127 - Strange behavior when opening thunderbird window – empty folder pane and whitespace in toobar
  • Fixed: 463155 - Add video/audio controls to message context menu, since the regular controls depend on JavaScript
  • Fixed: 464354 - Pref enable gloda by default
  • Fixed: 465269 - Folder location toolbar item does not work
  • Fixed: 465324 - GTK look for tabs
  • Fixed: 467527 - Restart needed for localized folder name (Drafts/Junk/Sent/Templates/Archives name in folderpane tree)
  • Fixed: 467942 - folderpane: doubleclick action should be up to the item to decide
  • Fixed: 468004 - vertical splitters are ugly on OS X
  • Fixed: 468595 - Some IMAP messages are truncated in offline-store. (”This body part will be downloaded on demand.”)
  • Fixed: 469878 - Unwrapping long header lines in the detailed view leaves the “more” indicator visible and active
  • Fixed: 470416 - advancing to new message in another folder doesn’t scroll the folder pane into view (to show the folder)
  • Fixed: 470669 - Provide friendly and reliable testing environment for Thunderbird l10n versions [meta]
  • Fixed: 474523 - remove reply, reply all, forward, delete, junk, and forward/back buttons from default mail toolbar
  • Fixed: 474711 - search facets bar above search results tab
  • Fixed: 477842 - Text boxes containing domains and URLs should stay LTR when UI is RTL
  • Fixed: 481966 - l10n needs different entities for ‘to: you’ and ‘from: you’ in message header
  • Fixed: 482476 - Enable Space/Time policy for autosync
  • Fixed: 484166 - Make use of firefox search icon
  • Fixed: 484329 - Upgrading to 3.0 causes “archives” folder disappears
  • Fixed: 486320 - Get rid of line between 3 pane area and statusbar
  • Fixed: 486432 - Can’t get back to “What’s New” tab
  • Fixed: 486955 - Identity Settings dialog has shrunk
  • Fixed: 488454 - new icons for compose window toolbar for aero
  • Fixed: 488668 - windows vista folder pane icons
  • Fixed: 489366 - new vista address book icons
  • Fixed: 489368 - message thread icons
  • Fixed: 490042 - Provide hooks so extensions can easily modify the message header view
  • Fixed: 490097 - Clean up autoconfig strings and move them from content to locales
  • Fixed: 490111 - Decide what we’re doing with dump/ddump in autoconfig, and clean them up
  • Fixed: 490143 - [autoconfig] Get the password wrong and you have to start from the beginning
  • Fixed: 490326 - Smart folders – individual saved searches disappear
  • Fixed: 490329 - Cycle arrow buttons/icon in folderpane header are too small
  • Fixed: 490388 - Middle-click on scrollbar is broken — Opens selection in a tab instead
  • Fixed: 490985 - [autoconfig] Unable to find the incoming server after changing from IMAP to POP3
  • Fixed: 492279 - Sort out cookie handling within Thunderbird
  • Fixed: 492438 - Attachment reminder dialog should explain what triggered it
  • Fixed: 492922 - Smart folders – when creating a new account, its Sent folder doesn’t show up automatically
  • Fixed: 493060 - Installer default mail client option doesn’t set it correctly on Windows XP
  • Fixed: 493980 - If a SSL security certificate expires, Thunderbird goes into an infinite UI loop
  • Fixed: 494962 - Include Protovis and jQuery + some jQueryUI bits in TB3
  • Fixed: 495478 - Buttons on summary page for collapsed threads don’t have same height
  • Fixed: 495846 - view | folders sub-menu doesn’t include smart folders
  • Fixed: 495922 - Summary page for collapsed threads and multiple selections doesn’t respect zoom options.
  • Fixed: 496146 - tracking bug for build and release of Thunderbird 3.0 Beta 3 (3.0b3)
  • Fixed: 496151 - What’s New page for 3.0 Beta 3
  • Fixed: 496248 - content/multimessageview.css should not have font-specific info – move to skin/multimessageview.css
  • Fixed: 496375 - Tango icon for Send button in composition toolbar ambiguous
  • Fixed: 496884 - Collapsed summary view header hides message summary for threads with long subjects
  • Fixed: 497059 - Hang with unreliable wifi connection, either when re-connecting to email server, or on shutdown
  • Fixed: 498343 - Account Central gives unread and total counts in status bar (shows -1 for accounts)
  • Fixed: 498415 - “N” for next message jumps to next folder, but does not open first unread message there when mailnews.nav_crosses_folders 0 is set
  • Fixed: 498465 - The reply-list button needs an icon.
  • Fixed: 498519 - make attachment reminder an inline notification bar
  • Fixed: 499180 - hide reply-to when it is the same as the from address
  • Fixed: 499410 - message header view: get rid of extra horizontal whitespace
  • Fixed: 499958 - When you right click and Send To ‘Mail Recipient’ it fails [ms windows] / Send Attachment
  • Fixed: 499989 - mail header view: more button has problems and should be improved in some way
  • Fixed: 500142 - Create mozmill and mozmill-one make targets for build automation to use
  • Fixed: 500338 - Need better error reporting tools for development
  • Fixed: 500506 - Simplify providing an nsIController implementation for tab modes
  • Fixed: 500519 - Mozmill runtest.py doesn’t set the thunderbird.exe environment correctly on Windows
  • Fixed: 500564 - drag & drop an .eml file into a mailbox folder via thread pane drop
  • Fixed: 500970 - Activity Manager: Removing account causes lots of “Folder Deleted” messages.
  • Fixed: 501045 - Clicking Growl New Mail Notification Results in “imap-message is not a registered protocol” error
  • Fixed: 501163 - New attachment preference pane lacks option to remove wrong file-type associations
  • Fixed: 501308 - Pressing Enter on a message no longer sets focus to the message body
  • Fixed: 501516 - right click folder -> search causes the search to be in the displayed folder, not the selected one
  • Fixed: 501910 - Consider Preferences UI for cookies
  • Fixed: 501978 - reply list broken for “List-Post: <mailto:foo@bar> (Comment)”
  • Fixed: 502597 - thunderbird autoconfig, prefcalls.js Ldap queries broken
  • Fixed: 502856 - Autosync activity manager notices should only show one per account
  • Fixed: 503030 - Open About actions (”Our Contributors” or “Your Rights”) open a new modal 3 pane window.
  • Fixed: 503299 - window.close() from a content tab closes Thunderbird window
  • Fixed: 503436 - autoconfig UI needs polish.
  • Fixed: 503484 - If I select more than 82 message I get no summary
  • Fixed: 503567 - Send icon shifts to left on hover
  • Fixed: 503624 - Prefs to mark all RSS or NNTP messages read when exiting the folder no longer work
  • Fixed: 503692 - [autoconfig] displayShortName is unused
  • Fixed: 503777 - provide reasonable default windows sizes
  • Fixed: 503783 - BatchMessageMover.OnStopCopy status code checking is incorrect
  • Fixed: 504042 - Return receipts button cut off when preferences first opened -> Advanced
  • Fixed: 504182 - Release notes for Tb 3 beta 3
  • Fixed: 504187 - Don’t update the toolbar in the middle of a middle or right click
  • Fixed: 504297 - Message view doesn’t always invalidate the tree (possible indication of duplicate messages until scrolled)
  • Fixed: 504552 - default tab show only a message and no other panes [dead end UI]
  • Fixed: 504786 - 3.0 beta 3 – update shipped-locales with locales to include in the build
  • Fixed: 504802 - [windows] options window (box) too narrow
  • Fixed: 504954 - Add Outbox to smart folders
  • Fixed: 504986 - bring back start page (start page doesn’t show on startup anymore)
  • Fixed: 505044 - Selection lost when leaving a folder and coming back into it (mailnews.remember_selected_message doesn’t work)
  • Fixed: 505297 - OS/2 Thunderbird doesn’t change main icon with official-branding
  • Fixed: 505309 - os search integration should use nsIMsgDatabase::getFilterEnumerator to avoid creating a lot of js garbage nsMsgHdrs
  • Fixed: 505321 - new message added to an open threaded cross-folder saved search doesn’t get added in the right place
  • Fixed: 505705 - Window layout position and columns not remembered after each exit (using Vertical view, width, persist)
  • Fixed: 505868 - multi message summary is overeager in escaping content
  • Fixed: 505967 - Threaded view is broken when a view is in effect
  • Fixed: 505974 - Crash [@ nsMsgAccountManager::OnItemRemoved] deleting a local folder which had a saved search subfolder
  • Fixed: 505992 - “Thunderbird Spotlight Metadata” shows up in spotlight searches (OSX)
  • Fixed: 506011 - [qute] New icons for the main toolbar
  • Fixed: 506109 - Message is marked as read after delay even after moving to another message
  • Fixed: 506290 - [autoconfig] Layout changes to quick account setup
  • Fixed: 506327 - Error: document.getElementById(”quick-search-menupopup”) is null
  • Fixed: 506448 - Quicksearch – “Save Search as a Folder” not working gSearchSession is not defined
  • Fixed: 506544 - *** No preference found for search-enable when viewing preferences | advanced
  • Fixed: 506577 - convert users of IsSpecialFolder(folder, …) over to use folder.isSpecialFolder(…)
  • Fixed: 506613 - some brokenness in the standalone message window
  • Fixed: 506625 - mozmill bloat test has (gratuitous) sleep delays
  • Fixed: 506626 - the qute theme uses a older style search icon
  • Fixed: 506630 - view | folder mode doesn’t initialize properly
  • Fixed: 506633 - Options appearance looks different from Firefox on Vista
  • Fixed: 506660 - Need vista specific icons for Activity Manager
  • Fixed: 507122 - toolbar style don’t match Firefox
  • Fixed: 507137 - attachment of .eml file can’t be read by stream because of wrong size information
  • Fixed: 507203 - Advanced preference pane blank on Windows
  • Fixed: 507349 - filter dialog unusable when opened in smart folders mode
  • Fixed: 507533 - We should add the subdomain from a mismatched cert at the tail end of domains we check in autoconfig
  • Fixed: 507580 - gnomestripe newsgroup tab icon MIA
  • Fixed: 507682 - askSendFormat modernization
  • Fixed: 508026 - Restart needed for localized folder name (Drafts/Junk/Sent/Templates/Archives name in folderpane tree) – IMAP only
  • Fixed: 508143 - “Status Bar” and “Sort By” have redundant access keys / mnemonics in View menu
  • Fixed: 508597 - Typing Extension no longer sets the file output type
  • Fixed: 508694 - Not use thread summary view for newsgroups which aren’t offline
  • Fixed: 509010 - Localize name and description for the default theme
  • Fixed: 509095 - wget-en-US broken with mozilla-central, empty $(_ABS_DIST)
  • Fixed: 509379 - Windows XP filepicker doesn’t like its default filename to have an extension
  • Fixed: 509442 - Native dropdown look for the “other actions” dropdown
  • Fixed: 509616 - improve the look of the inline attachment separator
  • Fixed: 509623 - make check for new mail on startup the default for newly created autoconfig accounts
  • Fixed: 509987 - No need to create app.ico in $(DIST)/branding/app.ico
  • Fixed: 510302 - Provide an overlay for content tab elements.
  • Fixed: 510312 - Provide notification bar for content tabs
  • Fixed: 510378 - Consider enabling Satchel/Form Fill in Thunderbird
  • Fixed: 510595 - Remnants of email in preview pane after sending to junk.
  • Fixed: 510707 - Add prefs ui for imap autosync date constraints
  • Fixed: 510724 - JavaScript warning when hitting “n” to go to the next unread message.
  • Fixed: 510760 - Find in this message (Ctrl+F) not work in new tab when preview pane is off
  • Fixed: 510808 - Use “pressed” look for toolbarbuttons when their menu is open
  • Fixed: 511240 - Provide feedback for loading of content within content tabs
  • Fixed: 511308 - make autoconfig the default new account UI
  • Fixed: 511310 - make Smart Folder mode the default
  • Fixed: 511404 - tab related bindings should all move to content/tabmail.xml
  • Fixed: 511592 - Attachment area is very big
  • Fixed: 511600 - Find in this message (Ctrl+F) not work in “Our Contributors” tab
  • Fixed: 511721 - Add unlinked .xpts to removed-files.in for OS X
  • Fixed: 511801 - [Thunderbird] mozilla-central ‘Linux comm-central build’ do not compile after bug 511326 landing
  • Fixed: 511847 - [autoconfig] Setting invalid hostname then correcting can lead to -1 being displayed in insecure notices
  • Fixed: 511968 - win back some space from the button header box on windows XP
  • Fixed: 512245 - Implement tab persist for content tabs
  • Fixed: 512279 - marking as “not junk” doesn’t reload to show unsanitized view
  • Fixed: 512375 - make message header “other actions’ contain an appropriate default set of actions
  • Fixed: 512460 - icon fixes for account central (qute and gnomestripe)
  • Fixed: 512828 - add a cmd_viewAllHeader and cmd_viewNormalHeader to the MessageWindowController
  • Fixed: 513037 - Give “Archive” subfolders a different looking icon
  • Fixed: 513471 - Failures by editing a card with a custom photo
  • Fixed: 513653 - Fix switching to an existing tab when trying to open a content tab with the same url
  • Fixed: 513654 - Closing an unselected content tab can lead to blank display
  • Fixed: 513704 - bug in errUtils.js
  • Fixed: 513735 - Create more l10n.ini files to builds against 1.9.1 and central
  • Fixed: 514072 - upgrade windows xp/vista to tango border quote colors
  • Fixed: 514452 - date header should not take up an entire line
  • Fixed: 514706 - [gnomestripe] tab server icon is jammed up against left side of the tab
  • Fixed: 514735 - alwaysAsk.png and friends not available on Vista and above
  • Fixed: 514829 - [gnomestripe] the old style folder icons are used in a number of places (those where folder.png is referred to)
  • Fixed: 514830 - Remove filefield rules from *stripe/mail/preferences/preferences.css
  • Fixed: 514858 - Cannot disable Shredder start page, regardless of setting
  • Fixed: 514945 - crash [@ nsMsgSearchValidityTable::GetAvailable(int, int, int*)] clicking search folder
  • Fixed: 515151 - Tab persistence at startup broken with IMAP message tabs
  • Fixed: 515179 - Make about:rights etc open in an existing window if one is already open
  • Fixed: 515459 - crash trying to view mail
  • Fixed: 515516 - smart folders accounts gets marked as local mail folder account
  • Fixed: 515624 - icon pictures don’t match text
  • Fixed: 515653 - [faceted search]: styling needed for “List all N”
  • Fixed: 515656 - [faceted search]: show all as list should open in a new tab
  • Fixed: 515657 - [faceted search]: allow the timeline to be collapsed (and remember it)
  • Fixed: 515721 - [faceted search] Components.classes['@mozilla.org/satchel/form-fill-controller;1'] is undefined
  • Fixed: 515729 - Message Header View needs vertical space saving Digital Signing indicator
  • Fixed: 515736 - [faceted search] Time navigation is difficult
  • Fixed: 515740 - [faceted search] glodaFacetView.results.message.andNOthers lacks a localization note
  • Fixed: 515750 - [faceted search] No folders selected after upgrade from non-faceted search to faceted search
  • Fixed: 515760 - [faceted search]: attachment display is clipped
  • Fixed: 515769 - [faceted search][vista] new searchbox needs some css love
  • Fixed: 515803 - [faceted search] After customizing toolbar, entering a search term opens multiple results tabs on clicking “Messages mentioning…” autocomplete drop-down
  • Fixed: 515857 - Removed OnLocationTreeSelect() still has 1 caller
  • Fixed: 515860 - [faceted search]: deleting last message in ‘view as list’ mode gets thread view confused
  • Fixed: 515869 - [faceted search] Shush trailing comma warnings
  • Fixed: 515899 - “Empty string passed to getElementById()” warning on TB start-up.
  • Fixed: 515914 - Small icons for Reply and Reply to All are switched
  • Fixed: 516033 - Add vbox enclosing expandedHeadersTopBox and expandedHeadersBottomBox
  • Fixed: 516087 - [autoconfig] Pressing enter can lead to creating accounts at the wrong time.
  • Fixed: 516134 - [faceted search] disablehistory on the facet browser
  • Fixed: 516143 - Smart folder doesn’t remember its sort order
  • Fixed: 516176 - Folder list/email pane are blank
  • Fixed: 516232 - [faceted search] Deleted for good/expunged messages are shown in search results
  • Fixed: 516583 - updating from Gecko/20090910 to Gecko/20090913 causes ‘Search everywhere’ to stop working
  • Fixed: 516630 - timeline doesn’t stay collapsed if you change sort order

MailNews Core: (120)

  • Fixed: 119459 - Option to add a photo/image/picture to each entry of the addressbook
  • Fixed: 121647 - POP/IMAP server passwords are inappropriately forgotten
  • Fixed: 127250 - “Body” filter for IMAP messages downloaded for offline use.
  • Fixed: 132340 - Local body search does not work if the body is encoded as Base64
  • Fixed: 198100 - Option to change precedences (order) of junk control and normal filters
  • Fixed: 238816 - MailViews and Search on custom-header: implement new choices for matching criteria
  • Fixed: 242550 - Filter criterion “doesn’t contain” and “isn’t” not found in user defined header fields (IMAP)
  • Fixed: 248280 - pref “javascript.allow.mailnews” is obsolete and should be removed
  • Fixed: 257415 - Add filtering for IMAP folders other than the INBOX
  • Fixed: 263304 - The Address Book doesn’t show the LDAP-field “labeledURI” as Website
  • Fixed: 269812 - “Save as text” of non-ASCII mail is corrupted when 3-bytes escape sequence is split to two buffers
  • Fixed: 277187 - unable to change the “and place my signature” pref if no signature is set
  • Fixed: 280232 - Search crashes on working with address book from sidebar [@ nsCSubstring::ReplacePrep ][@ nsCharTraits<char>::compareLowerCaseToASCIINullTerminated(char const*, unsigned int, char const*)]
  • Fixed: 305168 - Too many recipients when copy/paste address line or sending from MS Access (increase max to 2000)
  • Fixed: 310359 - search all address fields capability (Bcc:s too!)
  • Fixed: 313026 - crash when downloading many messages and “copy all” filter enabled [@ nsImapUrl::GetMsgFileSpec] [@ nsImapProtocol::ProcessAuthenticatedStateURL]
  • Fixed: 323875 - Undo Delete Message (Ctrl+Z) erases messages from trash instead of restoring them
  • Fixed: 340168 - Save As dialog silently overwrites file (if no extension specified)
  • Fixed: 351064 - message/rfc822 attachments of saved messages open blank (or don’t open)
  • Fixed: 362542 - investigate apply_rfc2047_encoding to make sure there aren’t more problems
  • Fixed: 383584 - crashed while getting message (after rename a virtual folder) [@ VirtualFolderChangeListener::OnHdrAdded(nsIMsgDBHdr*, unsigned int, int, nsIDBChangeListener*)]
  • Fixed: 384774 - Mailnews:movemail. Fails in the increasingly common situation of no write privs in mail spool dir
  • Fixed: 387502 - Mailboxes are allowed to grow larger than 4gb in size
  • Fixed: 388353 - Displaying a Mail Messages leaks a jsContext & a global window
  • Fixed: 389098 - Automatic junk (spam) detection on messages moved by a filter from IMAP – should move to junk folder directly after move and detecting junk
  • Fixed: 410842 - Duplicate entries appear when <guid> contains newline
  • Fixed: 440794 - Initial Support for “Leverage Offline capabilities to make sending email appear faster” (aka send in background)
  • Fixed: 448337 - Move step of “Copy then Move” action in single filter rule is not executed(even after fix of 376235)
  • Fixed: 457745 - Filters: Auto-assign a meaningful name.
  • Fixed: 458625 - “Check for new mail at startup” has no effect without “Automatically download new messages” with pop account
  • Fixed: 462539 - “Unable to open the summary file for _______. Perhaps there was an error on disk, or the full path is too long.” search integration leaving dbs open
  • Fixed: 464355 - Retention policy option “Use server defaults” incorrectly described
  • Fixed: 465353 - general sluggish, lack of responsiveness during indexing of gloda
  • Fixed: 466227 - gloda should index messages that are not offline too (headers only)
  • Fixed: 467249 - Modify folderWidgets.xml to be able to XBLify the Go menu in MailNews
  • Fixed: 468351 - display of header values with unencoded special characters broken
  • Fixed: 471115 - no IMAP logout command issued with SSL connections
  • Fixed: 471536 - crash [@ nsMsgSearchDBView::ProcessRequestsInOneFolder(nsIMsgWindow*)] copying opened .eml file to imap inbox
  • Fixed: 474213 - Add DOM NodeList Iterator to iteratorUtils.jsm
  • Fixed: 474709 - Subscribing to a feed (triggered by an external application) while no RSS account is present, does nothing
  • Fixed: 477120 - https cookie headers are stripped.
  • Fixed: 479008 - gloda event-driven indexing should not interfere with the source of events
  • Fixed: 482879 - crash [@ MimeMultipart_parse_line ]
  • Fixed: 486485 - crash [@ nsImapMailFolder::RenameClient(nsIMsgWindow*, nsIMsgFolder*, nsACString_internal const&, nsACString_internal const&) ]
  • Fixed: 487757 - Remove Win16 reference from config.mk
  • Fixed: 488979 - |mailnews/base/src/nsMsgBiffManager.cpp(261) : warning C4244: ‘initializing’ : conversion from ‘double’ to ‘PRInt64′, possible loss of data|
  • Fixed: 489505 - Replace NS_ASSERTION(0, …) by NS_ERROR(…) in comm-central
  • Fixed: 490118 - Drop the redundant /resources/ in mailnews directories
  • Fixed: 490962 - Remove unused XBL binding searchTerm
  • Fixed: 492429 - crash [@ nsMsgSearchSession::GetNextUrl()] due to de-referenced null GetRunningScope()
  • Fixed: 492571 - crash [@ nsMsgDBView::GetInsertIndexHelper(nsIMsgDBHdr*, nsTArray<unsigned int>&, nsCOMArray<nsIMsgFolder>*, int, int)]
  • Fixed: 493455 - subscription manager completely broken with gmail -imap (after XLIST support is implemeted)
  • Fixed: 495776 - [Linux] xpcshell-tests: test_sendBackground.js (and others) fails intermittently with “TypeError: real is undefined”
  • Fixed: 496015 - Enable junk UI elements when rss or news junk is enabled
  • Fixed: 496646 - gloda registers whittlers multiple times, may whittle content multiple times – bad for gloda plugins, core gloda lucks out
  • Fixed: 496886 - Investigate crash [@ MimeMultipart_parse_line] possibly caused by MimeMultipartRelated_parse_eof getting called twice on a single instance.
  • Fixed: 498222 - Bug in gloda noun_mimetype.js (TypeError: aMimeType is undefined)
  • Fixed: 498978 - CopyFileMessage truncates messages with no ending cr/lf
  • Fixed: 499304 - localfolders CopyFileMessage doesn’t check for mozilla envelope lines and may copy partial email files
  • Fixed: 499306 - Backend for retention-policy UI not initialized, tangled with XUL code
  • Fixed: 499630 - “Compact” of IMAP folder never reduces offline-store file size (Tb Trunk, even after fix of Bug 420115, Bug 466730, Bug 465385. File/Compact Folders is required)
  • Fixed: 499644 - Intermittent leak of nsRunnable and nsBaseAppShell shown when running the IMAP xpcshell-tests
  • Fixed: 499806 - add simple query/enumerate w/ search term criteria filter to nsIMsgDatabase
  • Fixed: 499996 - avoid passing negative value on 64bit to PRUint32
  • Fixed: 499999 - fix warnings in mime
  • Fixed: 500004 - drag of message from Search Messages fails with error “GetSelectedMessages is not defined” messengerdnd.js Line: 452
  • Fixed: 500669 - indexing status & activity manager: special case “indexing one message”
  • Fixed: 501253 - Thunderbird can’t find the pdf file attachment in this mail
  • Fixed: 502041 - Remove never-used prefs mail.default_cc and news.default_cc
  • Fixed: 503393 - Mime parses messages for training as sanitized, allowing some spam to escape training.
  • Fixed: 503811 - crash [@ nsMsgDBView::MarkThreadOfMsgRead(unsigned int, unsigned int, nsTArray<unsigned int>&, int)] marking thread read
  • Fixed: 503854 - crash [@ nsMsgDBView::FindHdr(nsIMsgDBHdr*, unsigned int, int)]
  • Fixed: 505307 - gloda should use nsIMsgDatabase::getFilterEnumerator to avoid creating a lot of js garbage nsMsgHdrs
  • Fixed: 505487 - Message filter rule incorrectly matching/firing
  • Fixed: 505589 - Movemail identity page shows useless @ sign behind email address box
  • Fixed: 505698 - TB3: Almost all mail being marked as Junk
  • Fixed: 506095 - subfolders missing on imap account (Although XLIST says folders have children, XLIST command is not executed for the 3 level: XLIST %/%/%. Stops on %/%.)
  • Fixed: 506199 - Filter rules dialog is corrupted when there are many rules (Error: Missing custom search term undefined, Error: 0×80004003 (NS_ERROR_INVALID_POINTER) [nsIStringBundle.GetStringFromName] at mailWidgets.xml::get_valueLabel::line 1086)
  • Fixed: 506244 - Convert one more PR_ASSERT to an NS_ASSERTION
  • Fixed: 506397 - Support multiple spam/junk corpus files
  • Fixed: 506650 - Removed unused POP/Movemail strings
  • Fixed: 507088 - trunk version of crash [@nsImapProtocol::SetupWithUrl(nsIURI*, nsISupports*)]
  • Fixed: 507188 - steady cpu and memory spiking – bad performance
  • Fixed: 508200 - Remove not implemented methods removeIdentity and duplicateAccount from nsIMsgAccountManager interface
  • Fixed: 508371 - gloda indexer’s naive logging is inefficient
  • Fixed: 508381 - Multiple failed login attempts when IMAP password is changed, even after clear of saved password
  • Fixed: 509367 - Race condition during parallel build
  • Fixed: 509721 - Mail/News – Use strchr(), not strstr(), for single-char searches
  • Fixed: 509747 - Thunderbird 3.0b4pre checks for new mail every 30 seconds regardless of account settings (when mail.server.serverN.check_time>=36, PRInt32 overflow occurs)
  • Fixed: 509955 - Move start.xhtml from mailnews/ to suite/
  • Fixed: 509975 - nsAbManager QueryInterface is missing nsIObserver
  • Fixed: 509991 - don’t start autosync on idle until 3-pane UI has come up
  • Fixed: 510218 - nsSaveMsgListener QueryInterface is missing nsIRequestObserver
  • Fixed: 510249 - Custom search terms called with 0 for search scope
  • Fixed: 510645 - File/Compact Folders tries to EXPUNGE IMAP folder of \Noselect and Virtual Folder
  • Fixed: 510659 - Remove preference filter_news_for_junk, rely on inherited property instead
  • Fixed: 510717 - Remove “Fake Account” support from MailNews Core
  • Fixed: 510731 - Remove dead code from shareglue.js
  • Fixed: 511131 - Advanced search uses constrained online search scope, but is actually searching offline
  • Fixed: 511587 - gloda should index bcc recipients
  • Fixed: 511588 - gloda should be mailing-list aware using the List-Post header
  • Fixed: 511590 - gloda should expose message replied and forwarded flags
  • Fixed: 511602 - import labs’/myk’s StringBundle.js JS module into mailnews/core/utils
  • Fixed: 511609 - leak-avoiding nulling of nsIMsgFolder.msgDatabase kills message db enumerators, breaks gloda indexing
  • Fixed: 512110 - Per-folder filters on newsgroups cannot be edited
  • Fixed: 512414 - IMAP message streaming fails with NS_ERROR_FAILURE if folder’s msgDatabase is nulled out
  • Fixed: 512416 - Suppression of junk whitelisting does not work for deferred to server
  • Fixed: 512678 - crash [@ nsPurpleBuffer::Put(nsISupports*)] during address autocomplete
  • Fixed: 512763 - Trunk builds broken with “failed to start because msvcp80.dll was not found” / port bug 508861
  • Fixed: 512914 - Gloda gets upset when attributes that used to exist no longer exist [datastore.js:3055 TypeError: parentID is null]
  • Fixed: 513102 - Add a uint32 hdrProperty search attribute
  • Fixed: 513277 - Grouped search terms fail due to error in set/get beginsgrouping
  • Fixed: 513531 - autoconf.mk.in: Remove useless MOZ_TOOLKIT_REGISTRY_CFLAGS
  • Fixed: 514237 - “flag” should be “flags” in dontPreserveOnMove/Copy preferences
  • Fixed: 514381 - OJI incorrectly enabled in Thunderbird & Calendar builds
  • Fixed: 514398 - nsIMsgFolderListener and nsIMsgFolderNotificationService were modified without changing iid
  • Fixed: 514801 - xpcshell-tests: test_imapFilterActions.js fails intermittently on TB and permanently on SM
  • Fixed: 515159 - Crash [@nsSpamSettings::Initialize(nsIMsgIncomingServer*) ] shortly after start of MailNews
  • Fixed: 515805 - gloda loads itself into seamonkey chrome but should not
  • Fixed: 516388 - Hang when exiting Archives smart folder

Windows builds Official Windows installer

Linux builds Official Linux (i686)

Mac builds Official Mac (Universal binary)

Patrick Finch — A Really Nasty Ad


Like many others, I read about this unpleasant scam whereby someone has paid for the Google Adword “Firefox” to the extent that Firefox searches show their link (which pretends to be Mozilla’s site) in the results:

Picture 1

I couldn’t say that this is Google’s fault, it seems more that one of their customers is acting dishonestly – what responsibility they have for that I do not know.  However, this is exactly the kind of thing that leads me to object to the Omnibox in the Chrome browser.  I think it’s fine that the location bar allows you to use shortcuts to search, but combining the location bar and the search box seems to me to be an unwelcome development.  The search provider is disintermediating the location, presenting an opportunity to hijack the user to the highest bidder.

And as this example so vividly demonstrates, it is locations that we can trust, not search terms.

David Boswell — Thoughts About The Future Of The Internet


I finished The Future of the Internet — And How to Stop It the night before OneWebDay. It’s a good fit since OneWebDay is about broadening awareness of web issues and deepening a culture of participation and the book identifies both actions as key to keeping the Internet healthy.

“Today’s consumer information technology is careening at breakneck pace, and most see no need to begin steering it. [...] Internet users enjoy its benefits while seeing its operation as a mystery, something they could not possibly hope to affect.” (from paragraph 40 of the Conclusion)

When I was reading I also noticed similarities between how the book talks about the benefits of the Internet and how Mozillians have been talking about the same thing.

Jonathan Zittrain talks about the benefits of the Internet using the term generativity and he describes five features of a generative system:

  • Leverage
  • Adaptability
  • Ease of mastery
  • Accessibility
  • Transferability

There are certainly differences between this list and the way other people have been describing things, but the common elements are clear: the Internet is a global public resource and people need to get involved to keep it that way.

principle_graphic

Paul Rouget — [Mozilla Camp Europe] The Developer Track & Web-Platform Round-Table

Brian King and I are in charge of setting up the Developer Track for the Mozilla Camp Europe (see here for more details about the event).

I'm proud to announce that we have at least 14 sessions planned.

Another good news: a Web-platform round-table will take place on Sunday morning.

Here is the current schedule.

Dev Track

  • Firefox.Next, the future of Firefox
  • Firefox in Europe
  • Firebug, web development evolved
  • Thunderbird 3.0 and beyond
  • JetPack
  • Fennec Addons
  • How to Update Extensions for Thunderbird 3
  • SeaMonkey 2 - A show-off
  • KompoZer: enhancing Mozilla Composer
  • Mozilla Weave - integrating services with the browser
  • Fennec
  • Stratified JavaScript - High-level concurrency abstractions for JavaScript
  • Prism, what it means for Mozilla
  • Songbird
  • HTML 5

You can look at the list of sessions (with details and speakers) here.

Web-Platform Round-Table

We want to bring together Web developers (the panel) and Mozilla developers. Vladimir Vukicevic (Firefox developer) is going to lead the discussions. The panel consists of 8 Open Web Gurus, experts in different areas (offline, canvas, geolocation, video, accessibility, ...). And, of course, the audience is welcome to take part in the discussion.

Share with us your real-world uses and success stories of modern web technologies.

What we are looking for (quote from Vladimir):

• We are interested to hear what you think we could be doing better at, in terms of support for current or emerging web standards. Are there existing features in other browsers that you want to take advantage of that we don't support? What about those features is compelling?

• What's missing from the web platform? Where do you want to see us take it? If you could pick one capability to add to the web, what would have the biggest impact on your web app development?

• Of the currently supported standards, what's painful? What would you like to see us focus on improving, whether through enhancement or through change?

If you are looking for more details about the round-table, see here.

Thunderbird Localization — Thunderbird 3 Beta 4 is now available in 43 languages

Mozilla Messaging announced yesterday that the final beta release for Thunderbird 3, Thunderbird 3.0 beta 4, is now available for download. This release contains quite a lot of changes compared to the previous beta 3 release.


New Search with Advanced Filtering Tools

Search results now include advanced filtering tools. You have the option to filter your results by sender, tag, attachments, people, folder, and mailing list. You can also filter your email using the timeline tool.

New Search with Advanced Filtering


New Global Search field and Redesigned Mail Toolbar

The Mail Toolbar is redesigned to include the new Global Search bar. Buttons such as reply, forward, delete, junk are part of each email message. When typing in the Global Search field, Thunderbird autocompletes against your address book. You have the option of searching everywhere or filtering within folders against different parts of the email such as by subject or by sender.

Mail Toolbar and Message Header


New Mail Account Setup Wizard

The new Mail Account Setup Wizard matches against a database of email settings from popular mail providers so that you will only need to provide your name, email, and password to set up new mail accounts.

New Account Wizard

Smart Folders

The folder pane offers a Smart Folders mode which combines special mailboxes (e.g. Inbox) from multiple accounts together. Smart Folders is now on by default.

From an l10n perspective, it would be great if everyone could thoroughly test these new features in their localized release. Like in the two previous beta releases, Thunderbird 3.0 beta 4 is available in 43 languages.

L. David Baron — Correlating crashes with binary extensions or plugins

Firefox ships with an automated crash reporting system that can send reports of crashes back to Mozilla so that we can make Firefox crash less often. Anybody can search the reports to help find and fix problems. We categorize these crashes by their signature, which is the function, library, or address where we're executing code when Firefox crashes. However, it's sometimes hard to tell why a particular crash happens. If it's specific to a particular action or website, users will often mention that in the comments they submit, or we can sometimes tell based on the code that was running at the time of the crash. But sometimes we still can't get the browser to crash for ourselves based on what users said, or figure out a possible fix based only on the data in the crash report. Some crashes are also specific to particular plugins or extensions that users might have installed (or that might have been installed without the user's knowledge). If we know this, it gets us closer to fixing the crash, whether it's a problem in the extension or plugin, or a problem in our code triggered by it.

One of the pieces of data in a crash report is the list of shared libraries (modules containing code that is executed) that were loaded at the time of the crash (and the memory addresses at which they were loaded). These libraries could be parts of the operating system, parts of Firefox, or parts of extensions or plugins that are loaded. This list is essential for making sense of the crash report, since to know what code was executing when Firefox crashed, we need to be able to map a memory address of code that was executing. (Those addresses are themselves figured out after the crash report is submitted, using debugging information that we save after compiling Firefox, but don't ship to users, in order to reconstruct the execution stack at the time of the crash.)

However, the list of shared libraries that's loaded also tells us what plugins or extensions are running, which we can use to figure out which crashes might be related to particular extensions. In the past we've done this by looking at the list of modules by hand. But today, Mike Morgan and Aravind Gottipati helped me get a random sample of just under 10000 crash reports from a recent 24 hour period, all from Firefox 3.5.3. I wrote a script that processes those reports (which are essentially a JSON version of the data that show up in a crash report on the Web interface) that lists modules that might be related to causing the crash.

The output of my script is available for data based on:

This output looks like this:

  nsGlobalWindow::cycleCollection::UnmarkPurple(nsISupports*) (97 crashes)
     65% (63/97) vs.   2% (158/7100) FFComm.dll
     63% (61/97) vs.   2% (134/7100) bdGUICtl.dll
     63% (61/97) vs.   2% (134/7100) BDUtils.dll

What this output is saying is that the data have 97 occurrences of the crash with signature nsGlobalWindow::cycleCollection::UnmarkPurple(nsISupports*). Of these 97 crashes, in 63 the library FFComm.dll was loaded (65% of the time). However, out of all 7100 crashes, FFComm.dll was only loaded at the time of 158 of the crashes (2% of the time). This suggests that the presence of this library may be related to the cause of the crash.

There's a lot of data here to look through, so I'm posting it so everybody can look, and add data to existing bug reports.

I intentionally set the thresholds low as a starting point, so there's a good bit of noise in these reports. Future enhancements might include looking at the versions of the modules (in case a crash is only present in older versions of a plugin), using better thresholds, and perhaps also showing modules that appear to fix a crash in addition to those that appear to cause it. And perhaps even nicer-looking output.

Meeting Notes from the Mozilla community — SeaMonkey Meeting Minutes: 2009-09-22

SeaMonkey:StatusMeetings:2009-09-22

From MozillaWiki

« last meeting | index

SeaMonkey Meeting Details


  • Who’s taking minutes? -> Ratty


(who needs to do what that hasn’t been recorded in a bug) We should assign people to the open items.

NEW

  • Kairo to contact MoFo on doing a SeaMonkey 2.0 press release.

OPEN

  • Get permission from Google to use their geolocation JSON service [KaiRo]. Contact at Google says: “We don’t have a good estimate for when GLS will be opening up more broadly, but I will be sure to let you know when we take that step. Sorry that I can not be more specific at this time.” – We can only wait right now.

    • KaiRo emailed Google again this weekend, no reply yet.

CLOSED



open blockers (7)
blocker requests (2)
open wanted (30)
wanted requests (1)

  • Need to get blockers fixed, some are unowned as of now, need to get assigned.

  • Schedule:
    • Proposal: String freeze Oct 1, Code freeze Oct 6.

    • Spin first RC right after code freeze with locales that are ready.
    • Let locales continue to opt in until we feel OK with shipping a later RC as the actual final.
    • Thunderbird might be string freezing shortly earlier, code freezing possibly later, but going with a longer period to actual final.
    • Freeze on October 6th should allow at least a week of string freeze for final and allow us for some time of candidate testing, whether we push them as public RC releases or not.
    • The final string freeze for Thunderbird 3.0 is September 29 [...]. Thus, if Thunderbird checks in mailnews patches with string changes, that leaves people working on SM Help some 48 hours to get respective patches done, reviewed, and checked in to reflect such changes in the documentation. Sounds rather tight… [rsx11m via Mozillazine].
      • Help can have exceptions to the string freeze – we always have handled it that way. And nothing breaks if localizers are not 100% in sync with help docs.
  • Branch planning is up in the air, Thunderbird drivers seem to think branching very closely to releasing their final is good, KaiRo thinks branching should happen before spinning our first RC. No compromise reached as of now.


Bug statistics for last two (full) weeks: 80 new, 47 fixed, 25 triaged.

  • Open bugs continue to slightly increase, triaging is down in favor of more bugfixes, many of the new bugs are filed by the team as followups to work being done.

  • The rate of fixed bugs continues to be high in the run up to 2.0.

Major wanted/needed features:


  • Toolbar customization aftermath [Ratty]

    • Still something to be done for 2.0?

    • bug 509209 Implement Customizable Toolbars in SeaMonkey Message Compose. Has r+/sr+. Patch waiting for checkin.
    • bug 481862 We still need small button icons for modern in MailNews. Needs someone who understands both css and svg/graphics. Misak plans to do the small buttons minor placement fixes on svg, Ratty – css.
    • Addressbook and HTML Composer toolbars. Push to 2.1.
  • bug 456757 Modern theme update [Ratty]
    • bug 465924 Modern Update: changes in global/. All necessary patches have landed. Except possibly for bug 490277 (Update video controls), the remaining dependent bugs are nice to have polish but not blocking anything (imho).
  • bug 348720 New icon set for “SeaMonkey Default Theme”
    • status/progress?

    • Really need something moving for 2.0 final!
    • A list of TODO icons is up in the bug
    • KaiRo has a patch up for task icons, help wanted for other icons!
  • bug 460953 kill-rdf port [sgautherie]
    • The kill-rdf work is basically at the state we’ll ship in 2.0; the rest will have to move to 2.1.
  • bug 508039 “Know Your Rights” [mcsmurf]
    • On track to make the string freeze.
  • bug 442167 “New add-on installed” notification [sgautherie]
    • Review issues need to be addressed. Should make 2.0.
  • bug 436794 Enable Mac OS X system address book per default and add UI.
    • SM UI needed, unowned, helpwanted.
  • bug 506724 bug 397236 bug 472873 Help updates (more in bug 423281)
    • helpwanted, anyone can help here!

We also should take a careful look at the other items on wanted-seamonkey2.0+

If there’s anything on that list you think we shouldn’t take for 2.0 any more, please notify KaiRo, so we can push them to 2.1.


  • bug 410613 OpenSearch. helpwanted.

    • We need to check if OpenSearch can support all our existing functionality, for example the INTEPRETS section in Sherlock search plugins. Mnyromyr will check on that, and on how extensible the Firefox code is.
  • bug 449728 drag tabs between windows
    • unowned so far.
  • bug 498596 places bookmarks
    • unowned so far.


Status Updates from developers – what are you working on, what’s the progress, any other comments? (feel free to add yourself to the list if your name is missing and you have interesting status).







  • Usual testing, reviewing and commenting.

  • Bugs fixed:
    • bug 287806 Add TCP timeout pref.

    • bug 517722 Update SM Prefs Overlay with new IDs (Chatzilla).
    • bug 516189 mochitest-browser-chrome: “browser_bug471962.js | Timed out” (and leaks) since bug 188253 landing.
    • bug 385141 SeaMonkey lacks UI for browser.tabs.warnOnClose.
    • bug 436942 “Clear Location Bar” section in History pane should be removed.
    • bug 390158 Hook up new satchel pref(s) to the preferences window.
    • bug 188253 Save Page should supply web page descriptor / cache key when calling saveURI.
    • bug 515256 Message Filter Dialog menulist missing some icons.
    • bug 514854 Default theme issues with some menulists.
  • Working on:
    • bug 515227 Help button in Message Filter dialog lacks Help icon.

    • bug 515228 Help button in Search Addresses dialog lacks Help icon.
    • bug 515966 Message Filter Dialog menulist missing some icons.
    • bug 515967 Add icons to addressbook menulist in Search Addresses.
  • Testing and reporting issues on lightning integration with SM.
  • Working through approval/wanted requests for SM2.0.


Bugs Fixed:

  • bug 469481 Copy image doesn’t copy image (nor its location).

  • bug 474622 Hook up delete key to deleting entries in new download manager.
  • bug 509338 Shortcut Ctrl+K missing.

Working On:

  • bug 509404 Restore Previous Session missing

  • bug 512148 Port Bug 88541 – Show URI in status bar onmouseover of Back/Forward menu items.
  • bug 512507 Port Bug 484329 – Upgrading to 3.0 causes “archives” folder disappears.
  • bug 513456 Double click and Del do not trigger Edit/Delete in Customize Message Views window.
  • bug 515081 Make Ctrl+F shortcut focus search field and Ctrl+Shift+F invoke Search Addresses.



Working on:

  • bug 508039 Port |bug 456439 – add about:rights and a “Know Your Rights” infobar to Firefox| to SeaMonkey.

Stalled?:

  • bug 471346 Port GetDefaultFeedReader to SeaMonkey shell service.

  • bug 444913 Port |Bug 413781 – XBLify folder-selection menus| to SeaMonkey.
  • bug 255503 tabbedbrowser progresslistener list grows forever instead of resizing when removeProgressListener is called.


Bugs Fixed:

  • bug 509315 NS_ERROR_MALFORMED_URI on session restore (in nsSessionStore.js).

  • bug 511635 Port Bug 455070 [Make sessionStorage object conform the WHATWG spec] to SeaMonkey.
  • bug 511823 Port Bug 494543 [Can't add items to Dell.com shopping cart] to SeaMonkey.
  • bug 514388 No quit dialog when multiple windows are open.
  • bug 517139 Port Bug 497730 [Restore session from crash while loading multiple tabs opens multiple about:blanks] to SeaMonkey.

Working on:

  • bug 515006 Port Bug 354894 [Session restore doesn't work if process hasn't exited (Downloads window open)] to SeaMonkey.

    • bug 516330 Save tabs on quit dialog doesn’t save preferences.
  • some other bugs in progress


  • bug 479448 Closed tabs need to be deleted when browser history is cleared.


Bugs fixed:

  • bug 514876 Navigating from standalone message window fails to mark messages as read.

  • [lightning] bug 515399 Cannot add attendees to event invitation [Error "input is null" in calendar-event-dialog-attendees.xml].

Working on:

  • bug 517554 [smtabmail] Messages opened from Non-All view in tab not shown.

To Do:

  • Venkman startup perf stuff is on top of my agenda (given no (tab)mailnews top blockers appear).



Bugs fixed:

  • bug 405172 Email Compose window does not close itself after Account Wizard Cancel/Exit.

  • bug 452056 browser hangs up forever on restart if seperator in bookmak manager contains double quote characters.
  • bug 465504 Include an identity indicator in primary chrome (EV certificate UI). URL bar, Modern theming.
  • bug 485213 Link selected by typeahead is not the link that is followed.
  • bug 491673 nsSeamonkeyProfileMigrator.cpp: re-enable/fix ‘wallet.captureForms’ handling.
  • bug 501195 SM 2 trunk has quit honoring startup “mail and news” pref.
  • [toolkit] bug 509242 Either document and enforce a maximum width for theme preview images, or don’t horizontally compress them.
  • bug 513275 New bookmark folders show “(Empty)” item until SeaMonkey restarted, take 2.
  • bug 514416 Context menu displays incorrectly after resizing address toolbar.
  • bug 514883 Groupbox custom caption content has bold font.
  • bug 516398 No Lightning pref UI in SeaMonkey.
  • bug 516708 The meaning of font-size: smaller; has changed.
  • bug 517307 Some tabs opened in background from middle clicks still focus the browser.

Working on:

  • bug 431184 Composer badly handles XHTML documents.

  • bug 461117 Implement new keyboard shortcut for Paste as Quotation (Now that CTRL+SHIFT+V is for Paste Without Formatting).
  • bug 499785 SeaMonkey can’t handle spaces in OpenURL, Firefox can.
  • [toolkit] bug 512173 .message-icon rule in toolkit/themes/winstripe/global/global.css points to non-existent icon.
  • [lightning] bug 516681 Lightning disables SeaMonkey’s throbber.


Bugs Fixed:

  • bug 465924 Modern Update: changes in global/ (essentially finished).

    • bug 515622 Modern Update: global/notification.css.
  • bug 509209 Implement Customizable Toolbars in SeaMonkey Message Compose.
  • bug 513446 Small icons in MailNews toolbar becomes large when customizing.
  • bug 516453 Implement Minimal APIs needed for Lightning.
  • bug 517238 Implement Minimal APIs needed for Enigmail.

Working on:

  • bug 512732 Need a chrome://branding/content/icon48.png since mozapps css refers to this.

  • bug 514383 about:certerror should use Larry now that the PageInfo Security tab is (still waiting for reviews).
  • bug 419178 Bookmarks Menu: dropmarker missing” (classic).
  • bug 517469 Port bug 363130: make menuitem icons 16×16px consistently on Windows/Linux (modern).
  • bug 517864 Reclaim vertical space in the bookmarks toolbar menu (modern).
  • bug 517924 Port bug 223132: need a scrollbar on the envelope panel (view all headers / long address lists).
  • [lightning] bug 516882 Lightning needs UI/CSS tweaks for SeaMonkey.

Windows/Linux.
Other.


  • bug 460953 Port jminta’s kill-rdf to SeaMonkey where applicable

    • bug 510793 Actually change folder pane from rdf to js, in SeaMonkey

      • Completed initial bare port, found that it depends on bug bug 444913

      • Postponed to SM 2.1a1 :-|
  • Fixed (or in-progress) SeaMonkey bugs:
    • bug 516195 Port |Bug 435296 – imagelib should support decode-on-draw| to SeaMonkey

    • bug 517478 signon.expireMasterPassword is obsolete and should be removed; (Cv1-SM) Remove all pref support
  • And working on other areas… like
    • infrastructure to run tests

    • filing bugs for leaks in (TUnit) tests
    • doing a Windows comm-central-trunk SeaMonkey unit test build, reporting to bug 470184 issue tracking; looking forward to an official build when enough new buildbot slaves can be enabled (bug 464325 follow-ups).



Bugs Fixed:

  • bug 384340 [Mac Classic] Checkmark instead of alignment-icon in image alignment menulist.

  • bug 514963 Reference to non-existing background-image in pinstripes listbox.css (toolkit).
  • bug 515621 Wrong paths to toolbar gradient in mailWindow1.css.

Working on:

  • bug 514969 Remove reference to toggle JS on/off in mailNews.

  • bug 516469 Reference to non-existing twisty-clsd.gif and twisty-open.gif in pinstripe’s tree.css (toolkit).
  • bug 517788 [Mac Classic] Download Manager polish.



Meeting Notes from the Mozilla community — Thunderbird Meeting Minutes: 2009-09-22

Thunderbird/StatusMeetings/2009-09-22

From MozillaWiki

last meeting | index | next meeting »

Thunderbird Meeting Details :







  • Release Driver: Standard8

  • Build Engineer: gozer


  • Schedule (proposed, may change):

    • Final l10n String Freeze: Tuesday 29th Sept 23:59 PST

    • Approvals/Blockers only: from Tuesday 6th October 23:59 PST
    • Aiming to start RC1 builds on: 3rd Nov.
    • Subsequent RCs as necessary.
  • Please set bugs to assigned status (as well as owner to you) if you want to do them.

  • If you have other bugs assigned to you that you don’t want to do, please reassign or discuss with drivers.
  • If you see what look like theme/css issues, especially on Windows, please file a bug, with a screenshot, and the version of Windows you’re running. Tag it with a “polish” keyword, and nominate it for blocking-tb3?.


Last week:

This week:


  • Press watch: Thunderbird Ups the Email Ante

  • Thunderbird 3 Beta 4 – will be tracking press as it rolls in.
  • Launch prep. Press tour scheduling, and asset work.
  • Meeting w/ board this week to discuss marketing messages.


  • Thunderbird 3.0 Beta 4

  • ISPDB is open for public consumption
    • More tweaks pending
  • Automation a few bugs so should be better next time.
  • Mac minis are at gozer for more builders



  1. Top 5 GS Support Topics (code in progress: http://gist.github.com/190923 )

    1. Cannot receive email (hotmail, other pop, imap)

    2. Cannot read old email (compact folders seems to fix it)
    3. Cannot migrate email from old profile to new profile or old computer to new computer
    4. Forwarding email (how to delete recipients address and forwarding doesn’t work)
    5. Attachments (computer hangs, thunderbird crashes, attachments corrupted)
  2. Support Plan for Thunderbird 3
    1. behind on finishing SUMO evaluation, found a few bugs but appears to be functional for our needs – should be able to catch up this week

    2. behind defining KB issues & new features to document for Thunderbird 3 – should be able to catchup this week
  3. Support Day: September 17, 2009, 9:30-5p.m. Pacific including Vancouver Mozilla Service Week event in the afternoon:
    1. solved a problem with gmail IMAP in #thunderbird, “solved” by upgrading to TB3 Beta3

    2. About a dozen folks at Service Week Event: very brief Thunderbird discussion was about Lightning and Calendering in general, majority was about CMSes like Drupal, WordPress and Joomla
  4. Key Support stats from the following graphic:
    1. approximately 15 / day

    2. total new topics:86 total replies: 111
    3. have ruby code in progress to semi-automate top 5 issues, relies on manual tagging, scheduled to finish this week
    4. #replies from non MoMo folks: 2 from Lightning folks (thanks Martin and Philip and wilkommen!) 8 from Tom (thanks!) 16 from TMZ (our newest official rep, thanks and welcome!) MoMo folks: 5 from Rafael (thanks!), 87 from Roland (I am going to do less this week to focus on Support Plan, SUMO, etc)
    5. happiness metric: API doesn’t have happiness emotitags, asked GS staff about that, code in progress: http://gist.github.com/190094, manual happiness metric = 91 – 87 = 4


during updates (beckley iirc), davida mentioned errutils extension for picking up keyboard events. This page for errutils and reporting tools is linked off of Thunderbird Extensions.




  • driving, driving, driving

  • some bugs


  • Mostly focussed on making headers customizable work (bug 465138)

  • Misc reviews & landings
  • Driving




Next week

  • RC1 blockers

  • Reviews and Driving




  • bug 442222 Update About > Credits for Thunderbird3

    • revised form

    • added more names
  • bug triage
  • fixed 16 litmus tests, vetted about 25






Last week

  • Beta 4 work.

  • More launch planning. Need to coordinate w/ Firefox team on timing.

This week

  • Blog about Thunderbird icon and file bugs to include in product.

  • Hand off web site content to l10n, pascalc, etc.


Last week :

  • TB3.0b4 testing

This week :

  • focus back to try to get more people to the QA effort.

  • clean up some litmus test
  • catching up on bugmail



Last week:

This week:


Last week:

  • helped Rafael push out 6 or so updates for Thunderbird 3 Beta 4 mozillamessaging.com website updates

This week:

  • Spread Thunderbird, coordinate pro-bono Drupal designer

  • Perhaps start working with campus program students to help out with support



bittin bwinton jenzed standard8 dmose _Tsk_ davida rebron gozer roland clarkbw bienvenu wsmwk beckley rkent andreas kairo

Meeting Notes from the Mozilla community — Mozilla Platform Meeting Minutes: 2009-09-22

Platform/2009-09-22

From MozillaWiki

« previous week | index | next week »


Firefox 3.0.15 / Firefox 3.5.4

  • Code freeze: TODAY! September 22 (end of day).

  • Firefox 3.0.15: 6 open blockers
  • Firefox 3.5.4: 8 open blockers
  • Branches re-open for next releases in October

Firefox 3.6b1

  • now string frozen

  • 25 P1 bugs left
  • needed before b1 cutoff:
    • lightweight themes

    • plugin update referrals
    • about:support
    • js c types
    • js beta blockers


See more Firefox 3.6 related blocker queries, or learn about the new status and blocker flags


(Progress reports every weekend on Planet Firefox)



  • mozLoadFrom landed [roc]

  • Mac painting improvements [mstange]
  • published Ogg seeking draft [cpearce]
  • WOFF landed [jfkthame, jdaggett]



  • 64-bit Mac OS X can build completely. Working to get patches into the tree. Doesn’t run yet due to xptcall problem.

  • Mac OS X trunk only builds and runs on 10.5+ for now. Not removing 10.4 code from the tree until the decision is final.



join us in irc.mozila.org #startup!

Highlights from the weekly update post:

Also, Vlad put up instructions for using AMD’s CodeAnalyst, which is a free tool that is super easy to use and tremendously useful for profiling on Windows.





  • [Added by Johnath] Stop using old phone numbers! A few long-deprecated dial-in numbers are going out of service this week. The normal dial-in numbers for this call are below, if you’re using a different number (specifically, 866-500-1038 or 650-215-7299), cut it out.

    • 650-903-0800 or 650-215-1282 x92 Conf# 8605 (US/INTL)

    • 1-800-707-2533 (pin 369) Conf# 8605 (US)
  • [bsmedberg] Can’t get to 0 blocker noms without a general triage: after this call, or some other day this week?

Josh Geenen — gContactSync 0.2.8

gContactSync version 0.2.8 has been released.  I realized that I have been forgetting to make a quick blog post about each release, so here’s a basic summary of recent versions.

Download here.

The best way to stay up-to-date on new versions is probably through Twitter: gcontactsync

Supported Applications

  • Thunderbird 2
  • Thunderbird 3 (all versions, including beta 4 and 3.0pre)
  • Thunderbird 3.1a1pre
  • Seamonkey 2 (all versions, including beta 2 and 2.0pre)

Version 0.2.8

  • Fixes ‘broken’ usernames that were able to get an authentication token but failed when trying to get contacts or groups. (usernames only without a domain or with spaces at the beginning or end)
  • Fixed the install.rdf file for Seamonkey

Version 0.2.7

  • Bug fix for renewing expired authentication tokens

Version 0.2.6

  • Updated the Portuguese translation
  • Mailing Lists (groups) in Thunderbird now use their translated names
  • The log moved to the main profile directory

Version 0.2.5

  • Adds the following new languages:
    • Portuguese (devezas on BabelZilla)
    • Russian (Glk63)
    • Spanish (with help from Guillermo Klew from VisualBeta.es)

Version 0.2.4

  • Fixed a bug with adding or renaming groups
  • Minor updates to the Italian translation (thanks ZaZy)

Version 0.3 Update

This deserves its own blog post, but here is a basic summary.  I don’t have a tentative release date yet since this is just a hobby, not a job. Wink

The main delay is described here. College (a full 18 credits) and my job (programming) don’t exactly leave me with much free time, either.

  • Support for Google’s new API
  • Support for downloading contact photos*
  • Synchronized birthday field**
  • ‘Relation’ fields (Mother, Father, Coworker, etc.
  • More phone number types

Potential Features

  • The individual address fields may be synchronized instead of using the new address fields
  • Support for adding, updating, and removing contact photos

*I (among others) worked on contact photos for the Address Book in Thunderbird 3 beta 4/Seamonkey 2.0 Beta 2.  gContactSync 0.3 and up will download photos in all supported applications, but you’ll have to use TB 3 or SM 2 to see them.
**I worked on a birthday field for the address book in Thunderbird 3/Seamonkey 2.  If you use TB 2 the values are synchronized but not displayed.  Google also added a birthday field after the changes were made in Thunderbird.

Alexander Limi — Firefox Mac installation experience, revisited

(You are encouraged to read this article with its formatting and typography intact, instead of in this RSS reader)

A short while ago, I posted an article on how to improve the Firefox installer experience on the OS X platform, and how we were looking at making the user experience better for first-time Mac users and people coming from other platforms.

After posting the first article, we continued investigating how to make the installation experience better, and a developer urged us to check out how Delicious Library did it — by giving people the option to move the application to the right folder when it was first launched.

A few days later, the article got picked up by a number of Mac blogs and news sites — among the most well-known: Daring Fireball, Digg, TUAW, OSNews, as well as the French MacGeneration.

Soon, the hate mail started trickling in. “Nothing is wrong with the Mac install experience.” “People that can’t teach themselves how disk images work shouldn’t be allowed to use a Mac!” &cetera. I wish I was making this up, but these are from real emails. Fun stuff.

But there was also a surprisingly large, second group of people: software developers and support people. To quote from one of the emails:

“As a former Mac Genius I have literally seen hundreds (thousands?) of instances of the issue you describe. I have heard the confusion regarding two Firefox icons, and ‘why does it always take so long?’ [when starting an application]”

They all offered up different ways to get around the issues with disk image-based installs, but there was one common thread in all their responses:

The disk image-based process for installing applications in OS X is broken.

We mentioned the Delicious Library install behavior earlier — Daring Fireball linked to great write-up from the developer of the application The Hit List — where developer Andy Kim describes this move-on-launch behavior in detail. Even cooler, he released the code to do this as open source.

In short, it detects whether the application gets launched from a disk image or the downloads folder, and offers to move the application to an appropriate location:

As a long-time Mac user, I strongly agree that installers shouldn’t be used unless absolutely necessary. But there’s also a difference when you have an audience as big as Firefox does, and different concerns that were minor with a smaller user base suddenly become a significant roadblock for adoption. This is why we initially investigated having an installer.

However, given the option to detect when people are launching it from the disk image or the Downloads folder, we can accomplish what we want without an installer. When we saw the Delicious Library1 behavior,1 I don’t actually know who invented this behavior, but it’s a very elegant solution given the constraints. the installer option was no longer something we wanted to pursue.

Our options, given an installer-less setup

Ship a DMG like we currently do, and add disk image detection.
Pro: Provides a dedicated disk image window in the Finder with only one choice — presentation is nicer, and it’s more obvious what to do next. Makes it easy to see which version of Firefox the disk image contains.
Con: Leaves the disk image behind, unless we include code to unmount & delete the disk image as part of the application.
Ship as an internet-enabled DMG or as a zip file, with the “Downloads” folder detection.
Pro: Both zip files and internet-enabled disk images automatically unpack, leaving less clutter on the file system.
Con: Leaves the file in the “Downloads” directory, where it may not be visible if there’s a lot of clutter. It also makes it harder to see which version of Firefox you have downloaded.

We’re partial to the internet-enabled DMG solution since it’s less involved, leaves fewer stray files2 on the system,2 It unpacks the the disk image & removes it, leaving you with just the application-but allows you to retrieve it from the Trash if you really need it. and requires less of a change to the current installer build process.

Our — admittedly minor — issues with ZIP when compared to the DMG approach are:

  • Unpacking the ZIP file will leave the original archive in the “Downloads” folder, so you have to remove it manually — unless you changed that setting. We want to leave as little clutter as possible.
  • The CRC error checking that ZIP uses to verify its files is slightly less robust than the DMG equivalent. It’s usually good enough, so this is also a minor issue.

Considering this, and with the goal of making the change as non-intrusive as possible for our current build setup, the internet-enabled disk image is our preferred approach.

The new Firefox installation experience

After considering all of the above factors, we believe the Firefox installation experience on OS X should ideally look like this:

  1. Initiate the Firefox download.
  2. When download completes, Safari will unpack the disk image, throw away the DMG file, and show a Firefox icon in its download window — as well as selecting it in the Finder in the background.
  3. When you double-click the Firefox file, it gives you the options to:
    • Move Firefox to the Applications folder,
    • Add Firefox to the Dock,
    • & set Firefox as your default browser.
    …all of these actions are optional, of course.

We believe this gives us the best of both worlds — predictability and flexibility for the power users, and simplicity and for people that are new to the Mac. We hope you agree.

As explained in the previous article, the Firefox team is currently busy getting the 3.6 release out on time — so if you’re a Mac developer with some spare cycles to make this happen, get in touch. You even have the code to get you started.

The Mozilla Blog — Happy One Web Day! I <3 web wave rolling.

Mark Surman’s thoughts on OneWebDay 2009 and why the Web matters.  Check out his original post here.

I woke up this morning to a feed reader full of I <3 the web photos from India. Got to the office: a bunch more from Europe. And a video from Toronto. Today is OneWebDay. And, slowly, a wave of celebration for the web is rolling around the world.

Why take the time to say ‘I love the web’? My reason: I believe it is worth stopping to remember that the web is not only a huge source of creativity, innovation and wonder, but it’s also something all of us help create everyday. The web may feel like oxygen, just there all the time. But it is oxygen that we all help to make. OneWebDay is about taking a moment once a year celebrate the (better and open) web we’re all creating.

It’ll be interesting to see if the I <3 the web poster wave builds. You can join in by posting a photo or changing your twitter, identi.ca or facebook icon. In the meantime, I want call out a few of the many awesome contributions so far …

Yale Students for Free Culture start the wave during Moz Service Week.

Huge, localized poster at Software Freedom Day in Nepal

Many people decide to keep it digital.

The e-poster shows up in Times Square ...

... and even to Second Life.

Finally: seems like this fox love the web.

Happy OneWebDay all. And make sure to join the wave by posting a photo or changing your twitter, identi.ca or facebook icon. Love the web. Share the love.

Mozilla IT — Mozilla Scheduled Downtime – 09/22/2009, 6pm PDT (0100 – 0600 09/23/2009 UTC)

We will have a scheduled maintenance window tonight from 6:00pm to 11:00pm PDT. The following changes will take place:

  • 6:00pm PDT (0100 UTC) developer.mozilla.org / MDC upgrade. We’ll be updating the software for developer.mozilla.org tonight. See bug 511852 for details. Duration 60 minutes.
  • 6:00pm PDT (0100 UTC) SiteSpect deployment. We’ll be implementing multivariate testing with SiteSpect on www.mozilla.com. No downtime expected.
  • Please let me know if you have any reason why we should not proceed with this planned maintenance. As always, we aim to keep downtime to as little as possible, but unexpected complications can arise causing longer downtime periods than expected. All systems should be operational by the end of the maintenance window.

    Feel free to comment directly in those bugs if you see issues past the planned downtime.

Alexander Limi — Status update, week 38, 2009

(You are encouraged to read this article with its formatting and typography intact, instead of in this RSS reader)

Firefox

  • Led a session on reorganizing the preferences window, posted the notes to the wiki.
  • Looked into excessive CPU usage on multiple idle Gmail sessions, found to be a real issue in repaint + garbage collection, filed as bug 515215.
  • Expanded the UX index with help from Boriss, added description and references for all the areas we’re looking at.
  • Worked with Boriss and Faaborg to record material for a short screencast on the new UI in 3.7 and 4.0. Faaborg to do further edits and get back to us.
  • Presented on “Improving the Download Manager” at Design Lunch with the goal of getting more input what people like and want to keep from the current approach. Great discussion with lots of new ideas, which were added to the wiki.
  • Spoke to Chris Beard about next steps for Taskfox — we need to decide whether Labs should own it from here on and use the remaining bugs as a way to bootstrap, or whether Blair should just fix the minor issues so we can start some user testing. Expecting resolution sometime this week now that people are back from travels/vacations.
  • Did more tests of Prioritized tab loading using zpao’s extension — help us test it! (More background info)
  • Put up a blog post about improving the Mac install experience, got coverage at Daring Fireball, TUAW, OSNews, as well as the French MacGeneration.
  • Helped clarify and direct the conversations around the proposed 3.7 and 4.0 design directions on the list (link)
  • Published the video from the all-hands session on 3.7 & 4.0 design directions.

Goals for the coming week

  • Put up a blog post describing how we’ll tab matching in the URL bar for 3.7
  • Publish an updated article on the decisions for Mac installer improvements.
  • Make sure the Projects list is up to date with everything I’m currently working on.
  • Finish the third draft of the Resource Package spec, hopefully with input from Vlad, jst, bz.
  • Get closure on next steps for Taskfox.
  • Work with Stephen Horlander on refining the new Mac theme for 3.7 & 4.0.
  • (Research) Get data from the tab experiments from Jetpack, analyze what they mean.
  • (Research) Gather loose thoughts around session restore improvements.
  • (Aspirational) Start working on a first UI mock-up for how the prefs reorg could look like. Coordinate with the add-on manager redesign.
  • (Aspirational) Work on the tab sidebar mock-ups.

Plone

  • Improved the new theme for the upcoming Plone 4 — one of the major changes outside of the actual CSS work was to revert to using XHTML for now, and do a proper HTML5 implementation for Plone 5 to minimize the impact to existing themes.
  • Did some initial planning with Jon Stahl & Joel Burton for a sprint to improve the evaluator experience of Plone — aka. approachability (installing, getting started, etc).
  • Dug up some old notes on how to build the next-generation LinguaPlone for multilingual content. Huge thanks to Jonathan Lewis for sending me his copy, since these had since disappeared from the OpenPlans/CoActivate site.

Goals for the coming week

  • Prepare keynote & layout talk for Plone Conference 2009.
  • Publish an article on how to improve the social aspects of the conference for people that are new to the community.
  • More improvements to the Plone 4 theme based on Martin Aspeli’s feedback
  • Get back into Deco development with Rob Gietema.

Eric Shepherd — More Firefox 3.6 documentation

Work continues (gradually) on documenting Firefox 3.6 for developers. I’ve just added information about an improvement to how add-ons can provide icons for display in the add-on manager.

In addition, the mozImageSmoothingEnabled property that’s been added to the canvas element is now documented. Looking at our canvas documentation, I realize we need a more traditional HTML element reference document added for canvas, and I hope to get to that before long, but in the meantime, I’m a little preoccupied just getting the Firefox 3.6/Gecko 1.9.2 stuff done in our current framework of content, so please bear with me!

I’m also continuing to triage various bugs, weeding out a few that don’t actually need documentation changes after all (my initial triage pass was very generous, erring on the side of assuming stuff would require doc changes).

I’m making good headway and feel pretty confident that we’ll once again have complete documentation in advance of shipping Firefox 3.6.

Seth Bindernagel — Updating Localization Notes

Tomer, from the Hebrew localization team, highlighted an interesting problem the other day when he emailed the l10n-drivers to point out an issue that has been bothering him and many other localizers.  Sometimes, developers will change entities in our locales/en-US directory, but forget to change the localization note above it to reflect the new entity.  As Tomer explains,

“This causes the comment to become irrelevant to the text it references.  Additionally, if someone then fixes the localization note, localizers won’t be notified on this change, and the comment does not get changed in our translations…As some of us are actually reading such comments before translating, it is important to get it 100% accurate.”

Here is an example that Tomer provides.

<!– LOCALIZATION NOTE (bookmarksSidebarGtkCmd.commandkey): This command
-  key should not contain the letters A-F, since these are reserved
-  shortcut keys on Linux. –>
<!ENTITY bookmarksGtkCmd.commandkey “o”>

You can see that example in our code on MXR here:  http://mxr.mozilla.org/mozilla1.9.2/source/browser/locales/en-US/chrome/browser/browser.dtd#110

For those readers who may not be seeing what is happening here, notice that the <!– LOCALIZATION NOTE –> is referencing “bookmarksSidebarGtkCmd.commandkey“, but the !ENTITY variable name is actually “bookmarksGtkCmd.commandkey“.

That mismatch in the entity names has made that localization note untrackable by any locaization tools.  Unfortunately, localization tools will not understand which comment belongs to bookmarksGtkCmd.commandkey.  Furthermore, localizers who use these notes for translations will have to make the educated guess where the comment is pointing.  If the note gets updated in the future, it’s likely that localizers will miss it.

Tomer suggested writing a script to look for these mismatches.  In the very least, I am hoping this post will spread the awareness to developers to remember to do this.  A quick request from l10n community: please maintain localization notes if entities get changed.

ShareThis

Axel Hecht — Axel loves the web

Good for the planet earth, I didn’t print poster number 5. I’ve put it up on people.mozilla.org, hopefully that’s serving it with a mime type that’s full of love.

Bad for planet mozilla, I did take a picture and here I’m blogging about it.

Axel loves the web

Yes, I love the web so much, you can hardly see me. But you do see real full screen on a mac, German namoroka nightly. And you the same one web on my N810 (not so current 1.9.2 nightly). And the infamous “Don’t hurt the web” shirt with that, of course.

Paul Rouget — Thanks, geonames.org, for opening your web services!

Today, I was playing with GeoNames webservices. But something was painful.

As you may know, if you want to do a request from your website to another domain, you have to use some ugly hacks to make your XHR working, due to security concerns.

For some services, this does not make sense, as they want to be reachable from everywhere. You can open your webservices to all or part of the web: HTTP access control.

I've sent an email to the GeoNames team. They've added a new HTTP header:

Access-Control-Allow-Origin: *

And now it works :) I can use my XHR without any ugly hacks.

(Thank you so much Marc).

Some homework for you guys today:

  • if you are a developer of a webservice, consider allowing Cross-XHR;
  • if you use a webservice, contact the author, talk to them about that they can open their webservices.

Mark Banner — Thunderbird 3 Beta 4 is now available

After a busy few weeks and a lot of hard work, Thunderbird 3 Beta 4 is now available for download and testing. We’ve made some big changes since the last beta, which bring together the work done over the last few betas.

Thunderbird 3 Beta 4 is the last planned beta before Thunderbird 3. We welcome your feedback to help us make Thunderbird 3 even better.

So what are the big changes? Read on…

New Search with Advanced Filtering Tools

Search results now include advanced filtering tools. You have the option to filter your results by sender, tag, attachments, people, folder, and mailing list. You can also filter your email using the timeline tool.

New Search with Advanced Filtering

New Global Search field and Redesigned Mail Toolbar

The Mail Toolbar is redesigned to include the new Global Search bar. Buttons such as reply, forward, delete, junk are part of each email message. When typing in the Global Search field, Thunderbird autocompletes against your address book. You have the option of searching everywhere or filtering within folders against different parts of the email such as by subject or by sender.

Mail Toolbar and Message Header

New Mail Account Setup Wizard

The new Mail Account Setup Wizard matches against a database of email settings from popular mail providers so that you will only need to provide your name, email, and password to set up new mail accounts.

New Account Wizard

Smart Folders

The folder pane offers a Smart Folders mode which combines special mailboxes (e.g. Inbox) from multiple accounts together. Smart Folders is now on by default.

Smart Folder View

Help us test our last Beta

As I said above, this is our last planned beta before the final release of Thunderbird 3. Therefore we’d like as much testing as possible to make sure it is stable for our users when we release it. Please provide feedback via the normal channels. If you want to help us with more specific testing, please see the wiki page.

David Boswell — Another Moustache That Loves The Web


Love the web? Have silly facial hair? If so, then print a poster and join the movement.

web_loving_moustache

Meet the original web loving moustache.

Mark Steele — WebGL demos

Yesterday, Vlad wrote about his awesome Spore model viewer.
This morning, I found out about 2 more new demos: Puls and a demo of the Escher-Droste effect.
About the Puls demo:
This is a port of Řrřola's amazing 256-byte intro Puls to WebGL. The effect is implemented as a single GLSL fragment shader, and thus runs pretty much entirely on the GPU. It was written while trying to learn more about WebGL, and also to gain better understanding of Řrřola amazing little piece of code.
I'm pretty excited about this. My first computer was an Amiga 1000 where demos were king, and I always smile when I see what people manage to cram in to the imposed limits. People are still making demos, but to try them out you have to be able to run them on your platform (if they're available to download). It's just less satisfying to watch a recorded capture on YouTube. This, on the other hand, already works in two browsers.
I'm really looking forward to seeing the first demo competition in WebGL, complete with some <audio>-tag background music.
Go grab a Firefox nightly and try it out now!

Eric Shepherd — MDC user registration disabled for now

The other day, I had to take the unfortunate step of disabling registration for new users to contribute to the Mozilla Developer Center wiki. I took this step because we’ve been having serious problems with accounts being created — seemingly by bots — and adding very intricate spam pages to the site.

These pages, in many cases, are using CSS to completely eradicate the wiki’s interface — including the admin controls that allow us to delete pages. This makes manually deleting the pages tricky in those cases.

MindTouch created a tool that can automatically delete these pages and ban the offending users. Unfortunately, that tool appears to have an issue with our load balancing system, by which it identifies all users as coming from the same IP address. The result is that when I used the tool over the weekend to attempt to process a large number of spam pages, all accounts got banned instead of just the spammers’.

We restored MDC from a backup shortly after that, losing edits made between 7 AM and about 10 PM Pacific Daylight Time on Saturday. Fortunately, this happened on a weekend, so we didn’t lose too much.

I’m actively engaged with MindTouch to figure out how these bots are bypassing the captcha we use to prevent this sort of thing from happening, and to add protections to keep content from overriding the site’s UI. I’m also talking to IT and MindTouch to try to get the automatic clean-up tool to work correctly on our system.

In the meantime, until we make significant headway on this problem, MDC will likely remain locked down. The confluence of the spam bot problem and the ability of content to completely override the user interface makes this a particularly tricky problem.

I know this is a huge inconvenience for some folks, and I’m doing everything I can to get this resolved as quickly as possible. I’ll keep you posted!

Paul Rouget — I love the web

... because it's open, hackable, and above everything, super exciting ;)

Do you love the web too? If so:

  • Download the posters at www.mozilla.org/onewebday
  • Put your poster up at a prominent place, then take a picture of it
  • Upload and tag as #owdposter (on flickr.com, twitter or identi.ca)
  • Enter the contest (Mozilla laptop bags to be won!)

Celebrate the awesomeness of the web

Eric Shepherd — Health fail

The bug I had while I was in California utterly failing to attend the meetings I’d flown out for turned into bronchitis, which grew ambitious and advanced to pneumonia. So my productivity has utterly tanked the last couple of weeks. I’m trying to get as much work done as I can, but I need to rest so as to let myself recover. My availability will likely continue to be spotty for at least a few more days. I can tell things are finally starting to improve, but I have a few days’ worth of antibiotics left, and am being encouraged by several people (including my doctor) to take it easy, so I think I will do so.

My apologies to anyone waiting for stuff from me; I have a ton of “hey, could you look at this” emails that I just haven’t had the energy to deal with yet. I’m slowly making my way through them.

William Quiviger — Happy OneWebDay!

"The web is not only a huge source of creativity, innovation and wonder, but it’s also something all of us help create everyday. The web may feel like oxygen, just there all the time. But it is oxygen that we all help to make. OneWebDay is about taking a moment once a year celebrate the (better and open) web we’re all creating." Mark Surman - Executive Director of the Mozilla Foundation

Photo courtesy of Tristan Nitot

Mark Surman — Happy One Web Day! I <3 web wave rolling.


I woke up this morning to a feed reader full of I <3 the web photos from India. Got to the office: a bunch more from Europe. And a video from Toronto. Today is OneWebDay. And, slowly, a wave of celebration for the web is rolling around the world.

Why take the time to say ‘I love the web’? My reason: I believe it is worth stopping to remember that the web is not only a huge source of creativity, innovation and wonder, but it’s also something all of us help create everyday. The web may feel like oxygen, just there all the time. But it is oxygen that we all help to make. OneWebDay is about taking a moment once a year celebrate the (better and open) web we’re all creating.

It’ll be interesting to see if the I <3 the web poster wave builds. You can join in by posting a photo or changing your twitter, identi.ca or facebook icon. In the meantime, I want call out a few of the many awesome contributions so far …

Yale Students for Free Culture start the wave during Moz Service Week.

Yale Students for Free Culture start the wave during Service Week.

Huge, localized poster at Software Freedom Day in Nepal

Huge, localized poster at Software Freedom Day in Nepal

Many people decide to keep it digital.

Many people decide to keep it digital.

The e-poster shows up in Times Square ...

The e-poster shows up in Times Square ...

... and even to Second Life.

... and even to Second Life.

Finally: seems like this fox love the web.

Finally: seems like this fox love the web.

Happy OneWebDay all. And make sure to join the wave by posting a photo or changing your twitter, identi.ca or facebook icon. Love the web. Share the love.

Posted in mozilla, onewebday

Delphine — Presentation at Podcamp, Barcelona

Back from three wonderful days in Barcelona, where I attended Podcamp Barcelona. During this event, I first presented Mozilla communities, and then talked about women in FLOSS & Mozilla.

It was a great occasion to discuss more about Mozilla's organization with members of other open source projects. It was also the opportunity to gather ideas and feedback on how to involve more women into FLOSS - and more particularly into Mozilla.

Women present at the conference again expressed the opinion that there were not enough women contributors in open source, and that it is important we put many efforts into drawing more into FLOSS. They felt concrete actions should take place, in order to make things evolve. We hope the upcoming community project that we are currently putting into place in Europe will be a first step towards this.

Mozilla Catalan community members Alina, Toni and Eduardo were fantastic and I especially wanted to thank them for their warm welcome. They gave me a glimpse of Catalan culture and food in just a few days time, and that was a wonderful experience.

Furthermore, seeing them prepare for upcoming Mozilla presentations in their local towns, as well as for the celebration of One Web Day in Barcelona, was astounding. Their organizational skills and their passion for promoting Mozilla in Cataluña are humbling, and quite a vivid example of a passion-driven community.

Looking forward to next time!

Conf Podcamp

Marco Zehe — The current state of accessible Firefox on the Mac, your help is appreciated!

I’ve been asked time and time again about what the current state is of the possibility of an accessible Firefox on the Mac that interacts with the VoiceOver screen reader. Well, let me recap what the current affair is.

First of all, the bad news is that getting the remaining quirks out of Mac accessibility is not going to happen this or next quarters.

The main reason is that our code currently needs to be made ready for future enhancements. Our recent work on the IAccessibleTable2 interface showed us that painfully: The refactoring and reorganization needed took much longer than we had estimated and required us to touch much more code than we had hoped. We also have some nasty event firing problems that have been a pain in the neck for those ATs supporting us that we desperately need to attack these now.

However, the good news is that since early May, the accessibility unit tests (Mochitests) have been running mostly successfully on the Mac on both the mozilla-central and mozilla-1.9.2 branch tinderboxes. Those tests had been running successfully on Windows and Linux since December already. They’ve been intermittently showing some flakiness (what we call random orange) in especially the events area, which is what we’ll be working on in the immediate future anyway, but otherwise been quite stable.

On top of that, at least investigating and driving the Mac accessibility effort forward has been sort of a pet project of mine all the while, even though Mac a11y is no longer part of our team’s official goal set for this year.

What I’ve been doing is build Mac builds with accessibility enabled on my MacBook and test them whenever I had some cycles. On Mac OS X 10.5 (Leopard), VoiceOver and the Firefox builds played terribly together, with lots of sluggishness and delayed responses that made it impossible to get any really useful testing done.

This, however, has changed with Snow Leopard. Without consciously changing things on our end, a build done under Snow Leopard is much more responsive with VoiceOver. We’re nowhere near the good performance blind people have come to appreciate from Safari yet, but we’re doing much better now. Whether it’s the improved VoiceOver or the fact that we’re now building against the MacOS10.5 SDK, or both, I don’t know.

The following are what I’d consider the most pressing issues before we could even think about sending this off to a bunch of voluntary testers:

  • VoiceOver is not speaking most accessible roles of UI and web page elements. Strangely enough, when pressing a button, it will say “Press button” and the like.
  • VoiceOver skips over plain text on pages, and the text is also not visible in VoiceOver’s Obbject Chooser menu.
  • Other inconsistencies having to do with roles like VoiceOver not recognizing our HTML area as such and not automatically starting to read pages etc.
  • Performance problems: Right now, navigating from one element to the next takes about half a second, which is unacceptable.

And this is where you might be able to help us! Are you a developer who is fluent in Objective-C, and (as a bonus) versed in Apple’s accessibility APIs? We could use your voluntary help in trying to nail this down!

So if you’d like to help improve Firefox on the Mac and have an idea about what might be going on here, go grab the source and build it! In order for accessibility to be turned on, in addition to all the stuff you need to put into your MOZCONFIG file, you need to add the following line:

ac_add_options --enable-accessibility

With this exception, commence as described in our docs.

Once you’ve got Firefox built, you can press CMD+F5 to turn on VoiceOver. A friendly male voice named Alex will start talking to you immediately and give you feedback on your actions through your Mac’s speakers. CMD+F5 is a toggle, so the same keystroke will turn VoiceOver off and leave no trace of it having been active.

Once VoiceOver is running, the following is a list of hot keys that can be used to navigate. Note that VO refers to the VoiceOver modifier, which is both Ctrl and Option held down.

Key Description
VO+Arrows Navigate in all 4 directions. Left and Right from item to item sequentially.
VO+Shift+DownArrow Interact with the currently spoken item. Interacting is examining an item in more detail. For example, interacting with a table will expose the individual cells to VoiceOver and restrict navigation inside this container.
VO+Shift+UpArrow Stop interacting and return to the parent level of navigation.
VO+Space Press or activate the current item. This will perform the default action, which is usually identical to clicking the mouse.

More information is available on Apple’s accessibility site. A Key commands chart (PDF) will give you more keystrokes, and the linked-to bugs above will give exact steps to repro the bugs themselves.

Since Firefox is not a native COCOA application on the Mac in the sense that we implement all our UI elements ourselves, we have to expose the whole accessibility contract and are obviously doing some things wrong there. The initial work that was done was done by a Mozilla Foundation grantee back in 2006, but this project was never finished and the project had been in limbo since then.

If you are willing to help, feel free to connect with me through e-mail (available from my About page) or via IRC on the #accessibility channel. I’ll be glad to assist with getting involved. The accessibility team definitely would appreciate it, and so would many community members I’m sure!

Gervase Markham — Gerv Loves The Web...

Gerv with 'I Love The Web' poster and Firefox t-shirt
...and Firefox. And cheesy grins. And trees. (I thought that most of the other pictures would be someone sitting next to their computer, and so I decided to be a bit different.)

QMO Events — Thunderbird introduction bug day

You would like to help the Quality Assurance thunderbird team :

  • But your afraid to join ?
  • You think it's too technical for you ?
  • You think we don't need more help ?
  • You're afraid of making mistakes ?

Think again, helping the team is fun, empowering and very social. To help you join the Thunderbird quality control team is organizing an online event, this coming Thurday. The idea is to help new members to join the group of people working on making sure that thunderbird ships as bug free as possible.

European Mozilla Community Blog — Meet Milos Dinic, Serbian Contributor

Milos, Serbian Contributor Hello Milos. First of all, how old are you and were do you come from?

I was born and raised in the city of Niš, Serbia, and I'm 24 years old.

You are a contributor for the Serbian Mozilla Community. What do you contribute to exactly?

Mozilla Srbija, Serbian Mozilla Community, is involved in many different Mozilla projects. The very first project of our community was the translation of the Mozilla.com website in Serbian.

More specifically, I helped translating some well known Mozilla websites, such as Mozilla.com, Firefox support website (SUMO), Mozilla add-ons website (AMO) and Mozilla Europe. Furthermore, I'm pretty active in SUMO developing area, having successfully completed some quite complex and important activities with the Mozilla WebQA team in the last couple of months. Besides the above mentioned activities, I occasionally write a patch or two for Mozilla add-ons site, trying to help developers.

So in the end, while translating, I came across many other Mozilla projects, and got interested in them. Which is why I'm now actively participating in several projects.

How long have you been contributing to Mozilla?

My first contact with the global Mozilla community was during the winter of 2008. I followed events on the #xul talkings on Mozilla IRC server, as well as tutorials on the MDC site. At the beginning I wasn't too active, but as time passed, I was more and more involved. A few months later I met Pascal Chevrel, who guided me during translations efforts of the Mozilla websites. From that time on, I've been an active member for the Mozilla community.

And what has made you want to contribute to Mozilla? Did you already have any contacts with Mozilla before you started to contribute?

The very first contact with Mozilla was Firefox. After having tried other well known Web browsers, I discovered Firefox and decided to use it for good. As a logical step after Firefox, I started to use using Thunderbird, and later Sunbird.

As I said before, I began by looking for some 'online' help with XUL. After the MDC website, I found the Mozilla IRC server and registered my nickname on it. Several days spent on the #xul channel led me to other channels on the server, where I noticed that many people volunteer in various Mozilla projects. After a few days well spent in getting to know the localization associates, I realized that the work of a contributor is very pricy and respected, and that really got me overjoyed. Furthermore, I saw that I could help, and that what I do will help other community members, so I decided that I would - to the possible extent - help the community, as I really value the time and effort other people have spent helping me.

While working on all these projects, I realized the value of all of this: the communities that work on these projects, as well as directly on the software, are simply invaluable. So I am very happy to have the opportunity to participate a bit in such great things.

While working on all above-mentioned projects, I got to know in more detail how the community works, breaths and creates great software, and I can tell you that I am really proud that I had the opportunity to contribute to its success.

I have heard that you have recently started translating the Mozilla Europe Website in Serbian. What can you tell us about this experience?

Yes. Few weeks ago, I began work on translating the Mozilla Europe website into Serbian language. As there are currently very few active members in our community, so far we have not had the time nor or the courage to initiate this project. However, we are now ready, and I hope that we will soon see the Mozilla Europe Serbian site on the way :)

Mozilla Europe, as part of the global Mozilla community, is really incredible. Although the goal of all our efforts is to promote and improve Mozilla products and websites, this community is very much responsible for the great success of our projects in Europe. In a world of information technology, much less attention is paid to spread awareness in smaller countries, and that is exactly what Mozilla Europe is trying to correct. All European Communities are equal, and all have the same privileges. What I find wonderful, is that a lot of attention is paid to countries from Southeastern Europe, and thus given a chance to local contributors to promote their country and language. It is very important that on these sites communities get a lot of the integrity to use their language and communities have equal opportunities to present themselves in the best possible way.

Is there anything you would like to add, a message that you would like to pass around?

I'd like to thank all contributors for making our world a place where this great community exists, as well as for honestly accepting new people that come in, and for trying to make things better... I would especially like to thank all Mozilla developers and all others involved in projects, for endless support and community promotion.

At the end, I would like to send a message to all reading this text that they should drop by, at least briefly, to feel the atmosphere among Mozillians, or even contact us. The goal of everything we do is to ease the work, dissemination of knowledge and friendship... and all are welcome!

Seth Bindernagel — More on Firefox in the Philippines

While we were in the Philippines, Gen and I learned quite a bit about the local Internet landscape there.  I thought I would share some more information that I picked up from the trip.

  • Population is 92 million, online population is between 20-24 million
  • English is one of the official languages of the Philippines.  Tagalog is spoken by roughly 22 million people in and around Manila.  Cebuano is another language spoken by nearly 20 million Filipinos south of the Luzon region (where Manila is located).
  • Depending on what factor we use as a multiplier for our blocklist/AUS ping data, we can estimate that between 3 and 6 million Filipinos are using Firefox.  That is a rough guess, but it places Firefox market share at a low-end of 12.5% and a high-end of 30%
  • Most people we spoke to browse the Web in English (Firefox US version), but some did suggest that a local version would have appeal.
  • Even further debate arose on whether a Tagalog version would have traction, with an audience of bloggers at Wordcamp responding collectively that it might not.

That latter point does not rule out Mozilla shipping a local version of Firefox.  But, like every other localization, if we were to ship something localized to the Philippines, it will be because a local community member(s) responds to my call to action and decides to help us complete the body of work.

Obviously, Mozilla Firefox is taking off in the the Philippines, so I wouldn’t be surprised to see if the nascent community stepped forward with an offer to localize Firefox.

Finally, take a look at some stats about Firefox in the Philippines.  (All numbers are based on our blocklist data.)

Growth of blocklist pings over one year

Growth of blocklist pings over one year

The Philippines is #4 on the list

The Philippines is #4 on the list

Usage in the Philippines by local geography

ShareThis

The Mozilla Blog — It’s a wrap!

small mozilla service week

Thank you to each and everyone of you who participated in and helped promote Mozilla Service Week!    The Mozilla community didn’t disappoint – thousands of you got out, and made a difference in our communities and the Web. Kudos to all!

Now it’s time to see how we did.  Please take a moment to report your hours and share your stories by Sept. 25th (we’ll start displaying completed hours on our site tomorrow). We’re throwing in a little memento for those that do this!

Wondering what’s next?  Today is OneWebDay, a global celebration of the Web — which is a wonderful way to wrap up Mozilla Service Week!  Here’s how to celebrate:

Thanks for making a difference this week!  We’re hoping the spirit lives on all year long.

Sarah Doherty — One Web Day: Aidan Loves the Web

Photograph yourself with a OneWebDay poster.

Here’s how: snap a pic of you and your favorite poster, and upload it to flickr or somewhere else with the #owdposter tag. Then pass it on. It’s that simple. Join Mozilla in creating a global wave that shows how much we love and care about the web.