[8823 total ]
Posted
about 23 hours
ago
by
David Tenser
Attendes: djst, cilias, zzxc, cww, nkoth, lucy
Sumo
Weekly metrics
Bug 455190 made the poll stats unreliable; should be fixed starting from last week’s push. cilias to verify and report to nkoth if there are still
... [More]
problems.
Last week’s weekly support issues
People stuck on looping update messages. Probably a prefs.js locked problem. lucy to look up more info.
Logo feedback gathered in newsgroup thread. If you haven’t provided feedback yourself, please do it asap!
“Are the links on the front page detracting people from using search?” discussion on mozilla.support.planning [1]
Search box in the top nav performs a mozilla.com site specific search, not a SUMO search [2]. djst to look up how many people search there on SUMO, if possible. If not, we’ll probably just remove the search box.
Knowledge Base
Bugzilla: 2 new article bugs [3][4], 1 bug verified fixed [5]
Firefox 3.1 changes [6]
Live Chat
Top live chat issues, several need investigation or more information
4 new chat accounts, 1 account approval: auswddn
We are now following up chats in the forum after the user understands what to do. That way we can reduce the average chat session length, become more effective, while still providing high class support for our users. All chat helpers should search the forum for their name after helping, to catch followups.
SFD
E-mail sent to localizers, early feedback
Fix bugs that prevent widespread adoption of SUMO first before asking localizers to help en masse.
Goal should be to get more people (isn’t it always?) and increase communication between locales/en-US
Would like info on how to get started translating and keeping translations up to date
Decide a day for the event next week [Less]
Posted
1 day
ago
by
mitchell
I’ve read the comments to my last post a number of times and I think I now understand what’s happening.
There are a bunch of comments along the lines of “if Firefox starts to include something that tracks my behavior and
... [More]
automatically sends that information off to someone else, then I don’t want to use it anymore.” Absolutely. I don’t want to use that kind of product either. That’s why I’m part of Mozilla — to build products that don’t do this sort of thing. To be explicit: Firefox and Mozilla will remain intensely focused on privacy, protection of personal data and user control over that data. The Mozilla community won’t build or support products that do otherwise.
There are also some comments that discount the examples I used because they are “server-side.” Yes. Absolutely. The examples are server-side because that’s what I mean.
The kind of data I’m trying to talk about is more like census-data: how many people are using the Internet; what are the broad patterns of Internet development and usage. In our physical lives, the basic demographics of our population collected in a census are a valuable shared resource. In understanding the Internet aggregate, anonymized, server-side census-like data can also be a valuable public resource.
This kind of data can of course remain a private resource, held by those websites big enough to generate their own understanding. My point is that moving some of this census-like data from the private to the public realm could have great benefits.
I’m wondering if this distinction, which is so clear in my mind, has not been clear in my writing. The term “usage data” may have made this worse. I explicitly do not mean using the browser to collect individual usage data. I mean looking at broad usage patterns that can be discerned from aggregated, server-side data, such as the examples I gave before. [Less]
Posted
1 day
ago
by
Tomcat
Armen spent the summer as an intern with the release group where he
undertook the ambitious task of updating our existing l10n nightly build
process for the 3,0 branch to something more sane and manageable. That
process is done now, and
... [More]
the release team put the new process into
production last week. I won't belabor the details. Armen has already
read more [Less]
Posted
1 day
ago
by
aaronlev
We spend a lot of time on the very basics. It takes a lot of effort just to make Firefox accessible with the various tools out there, to create the polished experience that people with disabilities want. We struggle to create new standards to allow the future dynamic web to be accessible.
But what about the [...]
Posted
1 day
ago
by
Tomcat
Start: 2008-10-07 04:00
End: 2008-10-08 02:00
Timezone: Etc/GMT-8
Hi Everyone,
Just another friendly reminder to join us Tuesday in #bugday on irc.mozilla.org :
*Tuesday, 07. October 2008 :*
* Asia session
... [More]
- 14:00-16:00 (Beijing)
* Euro session - 14:00-16:00 (Berlin)
* Amer. session - 12:00-14:00 (Los Angeles)
read more [Less]
Posted
1 day
ago
by
Mossop
Tab Sidebar is probably my favourite extension that I’ve created. It is certainly the most polished, thanks mostly to other people pushing me to make it so. For those that haven’t used it it creates a thumbnail preview of all of your tabs in the
... [More]
sidebar. The thumbnails automatically update whenever the page changes, even things like popup menus generally show up. This automatic updating comes at a cost though.
In order to detect changes to the page content the extension mostly uses DOM mutation events. These are in theory sent out whenever a change to the page’s structure happens, which covers adding/removing content, style changes, text entry and all manner of things. What I wasn’t aware of when I first used this technique was that Gecko performs certain optimisations when there are no DOM mutation listeners registered for a document (the normal case). Simply the presence of a mutation listener impacts the speed of any DOM manipulation by the page. How much? Well nothing like a graph to illustrate things.
Performance impact of mutation listeners
These are numbers gathered from the Dromaeo test suite, averaging 5 runs with and without Tab Sidebar installed. A little perf loss is inevitable as the extension must perform some checks on the mutation and occasionally repaint the thumbnail, but nowhere near the sort of regression that actually occurs. I’ve combined some of the test results for simplicity but it is pretty clear that while the regular JS tests are essentially unaffected, the DOM tests can have wildly different results. Don’t ask me why DOM Queries get faster with the extension installed, but DOM modifications are a nice round 4 times slower.
That isn’t to say that using mutation listeners is a complete sin to be avoided at all costs. In some cases they are the only safe option. I discovered this problem some time ago and never before found a better way to detect the changes for Tab Sidebar. Last I checked Firebug uses them in similar ways. The point I think is that there are many features in the platform that can have unexpected side effects.
Of course I guess I wouldn’t be making this post if I hadn’t finally come up with a solution. While I’m no longer actively working on my extensions, I’m afraid I couldn’t resist the opportunity of the new MozAfterPaint event that landed on trunk recently. Quite simply whenever an area of the page is repainted on the screen this event is dispatched with details of what the area painted was. This is absolutely perfect for Tab Sidebar, which isn’t surprising since the use case it was written for is essentially what Tab Sidebar is doing anyway. After a few hours of ripping out most of the event handling code I now have a working prototype that redraws solely based on this event, only painting the areas that might have changed.
Performance impact of the MozAfterPaint listener
Boy does it work well. As you can see from the graph essentially all of the performance loss is gone. For some reason the faster DOM queries are still there (who am I to complain if my extension makes Firefox run faster!). And what’s more the previews are now updated not just for DOM changes, on OSX at least it even sees repaints of plugins. It is quite bizarre to be watching a movie on youtube and see the little thumbnail at the side showing the movie as well.
I guess now I have whetted your appetite it would be unfair not to make the test version available. Use at your own risk of course, the sheer amount of code change means there are likely some problems lurking, but you can install Tab Sidebar 2.5a1 and see how it goes. If you set the preference extensions.tabsidebar.selecteddelay to -1 then it won’t even delay before repainting and just repaint the thumbnail as soon as the main page is painted, this actually seems to work out best for me, particularly on sites with fast animations. [Less]
Posted
1 day
ago
by
Brian
So I figured I’d jump on the blogger bandwagon in the debate on whether or not PHP is a good first language.
First, a little context. PHP was the first language I did anything useful in. I learned QBASIC in middle school, which I used
... [More]
to make some neat games. Around 7th grade I taught myself PHP by hacking on phpBB installations. I didn’t learn any other language until college, where I quickly picked up Java, C, and SML (in that order). I agree that PHP is a horrible language to teach proper programming practices, but that’s not the point of it.
I’ve had the privledge of talking to Rasmus a number of times over the last few years, and while I didn’t get permission to reproduce his comments and so I won’t (I will say he has some funny stories about David Filo…), I can quote an article he wrote approx. 4 years ago on PHP:
PHP was never meant to win any beauty contests. … It was designed to solve a single problem: the Web problem.
It does this very well, as shown by it’s outstanding adoption rate. The truth is that PHP is hacky, but it’s hacky in a logical way. It was written to help a programmer have an easier time writing for the web by one in that exact situation, and it does it’s job. If you need to throw a page together in 5 minutes, you can do that! Which is exactly what budding programmers should be exposed to.
Think of it this way: why do people learn programming in the first place? Nowadays, it’s either as a career path, in which case they probably aren’t destined to be hackers in any sense, or because they need to solve a problem and writing a program is the best way to do it. What is going to turn a newbie on to programming faster: learning proper structure, or being able to pump out a solution to his/her problem in 5 minutes? I would bet a lot it’s the later. That’s what hackers do, they pump out a solution to a problem quick and, quite possibly, dirty.
“But Brian, have you ever seen dirty code?” you ask. Of course I have, and I despise it. But I contest that proper style is something that can be learned after the fact. The ability to pump out a prototype in 5 minutes can’t be learned as easily. The ability to ignore all convention and generate an import script to move all of your data from A to B to get your site back up, or hack together a script to bulk rename files in a really wonky way, while trivial to do for most programmers, can be done much faster with a hacker mentality.
I am a hacker, but I have no problem following convention. I don’t like to, since it slows down coding, but when I’m in a group of programmers, or working on code that needs to be maintained, I do recognize the point of doing so and follow them (to the letter even). Of course, I’m by no means the norm on anything, so take what I say with a grain of salt, but it seems to have worked well for me: I can follow convention, but at the same time I can adjust, I can change my style as the situation demands, and I can code up a storm when need be. [Less]
Posted
1 day
ago
by
Paul Kim
Another mind workout from Clay Shirky, this time a riff on why imperfection invites participation; and why the belief in marketing circles that we only have one shot to capture attention induces a reliance on very expensive photo shoots on Corfu.
... [More]
(Not that there’s anything wrong with Corfu, per se.)
Some of the choicer quotes as they relate to the marketing corpus:
Brands don’t interact. Brands are inert. People interact.
Over and over again what we see in interactive environments: if something looks too good, people won’t touch it.
The messiness, the openness, these kinds of human characteristics tell people it’s ok to interact.
Errata
1. More Shirky on the blogs of Messrs. Blizzard and Kanai.
2. This video originally sourced at Influx Insights.
3. Since you asked, the summer was aces. My blog holiday was mostly spent on a whirlwind tour of Twitter, Tumblr, Flickr, and Managr. [Less]
Posted
1 day
ago
by
Chris Ilias
Music : Young MC - Bust a MoveOver the past few years, I’ve noticed that I’ve developed a habbit: Whenever I see a browser in the media, be it television shows, commercials, screenshots on web sites, I automatically check to see what browser
... [More]
and OS is being used.
Very often, Firefox is the browser being used. Today, on CNN.com, I saw another instance.
It’s a little hard to tell, but there’s a Firefox icon in the bottom left of the dock, the tab has a favicon, and the search bar has a favicon. Ergo, that’s Firefox, not Safari. CNN used to use Netscape 7 in their screenshots. (Although, that could have been because of the AOL-Time Warner umbrella.)
Years ago, the Mozilla Suite was on the Simpsons:
If it hasn’t already been started, it would be cool if we had a log of all instances Firefox has appeared in the media. [Less]
Posted
2 days
ago
by
WeirdAl
Dear Lazyweb,
I realized that for Verbosio, I have forgotten to explicitly add the MPL/GPL/LGPL tri-license boilerplate to a number of my files. Although the project is open-source and under these licenses, I still see the missing
... [More]
boilerplates as an oversight.
I did a quick Google search for Perl scripts to find these files, and found only this: an Add_License script. It does support MPL, but not the tri-license.
Does anyone out there have a script for identifying these files? I'd prefer to add the boilerplates myself, but I still need to search for where they are not. [Less]
Posted
2 days
ago
by
Gary Kwong
Current Sunbird (0.9)
| Next planned Sunbird (1.0)
| Previous releases | Mercurial source bundles (mozilla-central & comm-central)
Common:
Fixed: 437418 - libical shouldn’t add extra linefeed after inner components of
... [More]
VTIMEZONE.
Fixed: 437441 - Finalize calendar-timezones.xpi
Fixed: 438807 - Introduce “Meeting” category
Fixed: 448753 - Lightning and GData Provider are incompatible to Thunderbird 3.0b1pre (Gecko 1.9.1) builds
Fixed: 450147 - Some locales need to add “of” to the yearly-period-absolute-controls in Edit Recurrence window
Fixed: 450391 - Remove workaround for Task context menu
Fixed: 451035 - Remove the strings time.1 - time.23
Fixed: 453330 - Make it possible to build Sunbird from comm-central
Fixed: 453422 - Add et (Estonian) locale for Calendar
Fixed: 455837 - Support for re-enabling disabled calendars
Fixed: 455868 - Update Sunbird and Lightning version numbers for comm-central builds
Fixed: 456724 - Add fy-NL to calendar all-locales list
Fixed: 457755 - Add l10n.ini file for Calendar for new python-based compare-locales
Fixed: 458078 - sunbird-bin shouldn’t try and link directly with libtracemalloc anymore
Fixed: 458404 - remove -moz-pre-wrap from calendar-views.css
Common (Providers):
Fixed: 455262 - Use PROPFIND instead of REPORT in CalDAV refresh()es
Fixed: 456170 - Cannot change authentication information for GData Provider
Lightning-only:
Fixed: 455221 - graphic glitch on invitations-pane
Fixed: 455512 - dom_events.xpt differences bettwen ppc and i386 architectures breaks builds
Outstanding bugs (marked blocking-calendar1.0 ): (9)
Open: 329570 - Concurrent editing ICS calendars by multiple users can lose data
Open: 402365 - [Trunk] Tabs break calendar mode view
Open: 404039 - [Trunk] New added tasks don’t appear in task list
Open: 415509 - [Trunk] Only the last event of a day is selectable by mouse click in day/weekview
Open: 421600 - local copy of remote calendar is corrupted if edited while server is inaccessible
Open: 451696 - [CalDAV] Provider doesn’t handle REQUEST/CANCEL correctly
Open: 455358 - [Trunk] database schema upgrade fails [An error was encountered preparing the calendar located at moz-profile-calendar:// for use.]
Open: 457024 - Crash or Invalid memory read during shutdown
Open: 458190 - Broken unit tests
Calendar builds are still in transition to comm-central, post-0.9 release. [Less]
Posted
2 days
ago
by
Gary Kwong
Previous Shredder - Alpha 1 | Current Shredder - Alpha 2 | Previous releases | Mercurial source bundles (mozilla-central & comm-central)
Thunderbird-specific:
Fixed: 273008 - Paste without formatting preference or at least have
... [More]
an easy keybinding
Fixed: 329444 - messenger.xul l10n fixes
Fixed: 369283 - Thunderbird should support the Vista Search
Fixed: 378412 - Adding a "Gmail" account that already was entered manually results in invisible duplicate
Fixed: 413487 - "brief" headers (normal mode) should display more or all of subject
Fixed: 438918 - who wants a retention policy of "delete all but the last X messages" with X=30?
Fixed: 448479 - No Proxy For: port Bug 311779 (save IE’s ";" as "," so it works automatically)
Fixed: 448694 - Remove UI for "Remember the last selected message" (mailnews.remember_selected_message)
Fixed: 449691 - improved message (view) reader pane
Fixed: 450151 - Thunderbird does not form ligatures in fonts under 20 pixels
Fixed: 450712 - "INBOX" is always displayed as selected folder name of "When I delete a message/Move it to this folder"
Fixed: 450724 - Implement New/Edit Card inline features for message header display
Fixed: 451599 - Add preferences UI for disk cache size and clearing the cache
Fixed: 451620 - remove the Advanced Preference for Connection timeout
Fixed: 454622 - mail won’t download if "Allow anti-virus clients to quarantine individual incoming messages" is checked
Fixed: 455801 - Polish changes to message reader for b1
Fixed: 455847 - memory leak in nsDirPrefs.cpp
Fixed: 456096 - drag and drop folder fails - error nsITransferable.getAnyTransferData, messengerdnd.js :: DropOnFolderTree
Fixed: 456563 - Add en-GB to Thunderbird all-locales list
Fixed: 456725 - Add fy-NL to thunderbird all-locales list
Fixed: 456863 - New/Edit Card tooltip not resetting in Header bar display
Fixed: 456869 - port the firefox add-ons preference to thunderbird preferences
Fixed: 457151 - Add [id] to the Thunderbird build
Fixed: 457556 - Ukrainian Thunderbird3
Fixed: 457975 - Composition Mode Over-ride (shift reply) does not work for new reply button
Fixed: 458002 - Update shipped-locales for Thunderbird alpha 3
Fixed: 458215 - Add option to client.py to pass arbitrary options to hg
Fixed: 458425 - Remove TB specific disable of test_punycodeURI.js
IMAP, News, POP and SMTP-related:
Fixed: 436151 - support IMAP RFC 4551 - CondStore extension
MailNews Core:
Fixed: 227649 - Remove obsolete <mailnews/mapi/old/*>
Fixed: 287939 - Mail tries to save deleted attachment
Fixed: 294824 - Don’t hardcode appname in the cancel message for News
Fixed: 420830 - Expose mime_create() to content type handler plugins
Fixed: 444417 - IMAP undo of delete appears to work, but doesn’t
Fixed: 450917 - Create and populate nsIAbCollection
Fixed: 451143 - Print Preview Card and Abook both unuseable
Fixed: 451390 - In comm-central <client.py>, add an |options.skip_ldapsdk|
Fixed: 455797 - birthday picker doesn’t let me enter certain dates, resets day and year
Fixed: 455812 - nsAutoSyncManager should expose a scriptable XPCOM interface to allow monitor background download operations
Fixed: 455942 - Port to comm-central: bug 440714, bug 447642, bug 454391, bug 454786, bug 454192
Fixed: 456233 - nsMsgHdr needs to ensure various ‘in string’ parameters to avoid crashes
Fixed: 456250 - Properly detect application/pkcs7-mime subtypes in libmime
Fixed: 456326 - "ASSERTION: Some other operation is in progress" when synchronizing mails
Fixed: 456327 - Enable showing "*** Initiating Auto-Sync on folder imap://………." messages by turning them into NSPR logging
Fixed: 456415 - Setting up a vcard for an account doesn’t work.
Fixed: 456440 - IMAP folder paths not initialized correctly if done for the first time inside nsImapMailFolder::GetFilePath
Fixed: 456548 - IMAP subfolders not initialized beyond one level in GetSubFolders
Fixed: 457052 - try to repair cause of assertion - Borked message header
Fixed: 457168 - These emails repeatedly match the wrong filter
Fixed: 457545 - nsParseMailbox.cpp:1813: warning: unused variable ‘numFolders’
What was previously known as Shredder 3 Beta 1 has now been renamed to Alpha 3. Note that this is just a name change. Builds are available for testing.
Outstanding bugs (marked blocking-thunderbird3 with Target Milestone of Thunderbird 3 Alpha 3): (3)
Open: 429118 - Spellcheck gives up after too few misspelled words in HTML editor
Open: 430762 - Start page for Alpha/Beta builds
Open: 457709 - tracking bug for build and release of Thunderbird 3.0 Alpha 3
Official
Windows, Official
Windows installer (discussion)
Official
Linux (i686)
Official
Mac (Universal binary) (2008-10-03 build) [Less]
Posted
2 days
ago
by
Callek
Today the SeaMonkey project is happy to announce a major step in the path to SeaMonkey 2.0.
This release features many improvements, including the long-awaited Add-on Manager (like Firefox uses), memory footprint decreases and performance
... [More]
increases, as well as some significant improvements in website rendering and standards support (ACID2 compliance, and most of ACID3).
There have been some changes in supported platforms with this change, including dropping support for Windows 98 and Mac OS X 10.3 [due to changes in the backend]. And due to some of the changes, this release may be more stable on Windows Vista than our current version of SeaMonkey 1.1, even though this is still an Alpha.
We welcome any and all discussions on this alpha on our newsgroups, or you can even file a bug if you find one. Be sure to check our Known Issues prior to filing bugs.
SeaMonkey 2.0 Alpha 1 is available for download on the SeaMonkey website. Once you have downloaded and installed this release, we'd like to encourage you to get involved in discussing and reporting problems as well as further improving the product.
Thanks for testing and helping us to make SeaMonkey even better! [Less]
Posted
3 days
ago
by
Jesse Ruderman
Fixes:
Fixed: 389508 - Implement Cross-site XMLHttpRequest.
Fixed: 441473 - Implement user font set object.
Fixed: 364315 - Speculatively load referenced files while "real" parsing is blocked on a <script src=>
... [More]
load.
Fixed: 435293 - Add support for WebKit's CSS3 Transform proposal.
Fixed: 448909 - Need more controls WHATWG Video tag.
Fixed: 373701 - Connection for pushed content (e.g. WebCam) not broken if tab is out of sight but still in bfcache.
Fixed: 455852 - Add a hidden pref for not closing the window with the last tab.
Fixed: 329534 - Live bookmarks load way too aggressively (lock up/hang/freeze browser).
Fixed: 412002 - Should be able to edit tags for multiple bookmarks at the same time.
Fixed: 450452 - Implement XHR ("minus X") for worker threads.
Fixed: 114649 - onresize events should fire while resizing the window, not just when the mouse stops moving.
Fixed: 288194 - XUL <textbox> is too hard to focus.
Fixed: 455990 - Close button on last open tab should be hidden.
Fixed: 455756 - Add a "new tab" button to the tab bar.
Fixed: 438517 - CSS text-shadow not working for XUL elements using nsTextBoxFrame.
Fixed: 413141 - Drop -moz-opacity alias.
Fixed: 355567 - Firefox stores corrupted version of cached JavaScript file (merges two files together).
Fixed: Merges from Tracemonkey branch (last merge Sep 30).
Fixed: 455173 - TM: Crash on Accessing Adblock Plus Preferences.
Fixed: 54488 - [Mac] Non-draggable widgets in background windows should look disabled.
Fixed: 385263 - [Linux] We call FT_Open_Face twice per font, wasting a significant amount of memory.
The Tracemonkey JIT is finally stable enough for me. Is it stable enough for you (javascript.options.jit.content = true)? Does it make your favorite JavaScript-heavy sites faster?
Trunk regressions:
Since Oct 1: 458048 - Drag & drop of tabs crashes browser.
mozilla-central pushlog for 2008-09-20 04:00 to 2008-10-04 04:00
Windows nightly
(discussion)
Mac nightly
Linux nightly (?) [Less]
Posted
3 days
ago
by
John
Since last Wed (01oct2008), we’ve been producing *two* sets of L10n nightly builds every night on the FF3.0 line, built in slightly different ways.
The builds produced the “new” way are at:
... [More]
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla1.9.0-l10n/
The builds produced the “old” way are at:
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/old-l10n/
If you notice any problem with the new l10n nightly builds, please first check to see if the “old” nightly build has the same problem. If you find a problem in the new l10n nightlies that is not a problem in the old l10n nightlies, please file a bug in mozilla.org::ReleaseEngineering, and we’ll get right on it.
Nothing has came up so far, in our weeks of running on staging, testing so far or even in Friday’s testday focus on these builds. If all continues to go well, we’re planning to stop producing the 1.9 nightlies the “old” way this coming Wednesday (08oct2008). We’ll probably wait a few more days before mothballing all the various custom machines that were being used for the “old” way. After that, we’ll begin similar changes on the mozilla-central / FF3.1 systems.
This is a really really huge deal, and very exciting for RelEng and for the l10n community. Details are below, but trust me, this is big.
Some background for the curious:
(Some details covered during Monday’s Weekly Update call.)
(Some details in Armen’s blog and Seth’s blog.)
(Lots more details are in this presentation from the Mozilla2008 summit.)
Every night, we do a full compile and link of the en-US version of Firefox. We then take that en-US version, open it up, replace the locale strings with the strings for a different locale, and rebundle everything back together. This is called a “nightly l10n repack”. We then repeat the process for all the other locales, on all o.s. If there are string changes during the day, we have a slightly different system that does repacks during daytime. For official releases we have yet another slightly different system that does repacks for releases.
The change we are rolling out is important for several reasons:
- Doing repacks is really slow. Each individual repack is quick… approx 1 minute. However, we now have 60 locales (and counting). Multiply that by 3 different o.s. and it adds up to 180 repacks. One minute per repack adds up to 3 hours for the entire set.
- The “old” system treats all 180 repacks all as one giant “block”, starting alphabetically with linux/af and ending with win32/zh-TW. With the “old” system, a locale arriving after code freeze would force us to throw out all repacks and start the entire set for 180 repacks again. Or keep that set, and repack the late arriving locales manually, which is error prone and not that much faster. The “new” system treats all repacks as independent jobs which can be done in parallel. The consequences of this are huge:
– We can now handle a locale arriving after code freeze during a release as just another job-in-the-queue, without disrupting the existing set of locales in progress, and without needing to do the late arriving repack manually.
– We can share the 180 repacks across the pool of available build machines, which will give us huge time gains. Instead of trying to improve overall time by trying to shave a few seconds from each repack, we’re breaking this into discrete pieces that can be tackled in parallel.
- Now, all L10n repacks (whether for releases, nightlies or incremental during the day), will all be created the same way, running on the same pool of machines that are also producing en-US release/nightly/incremental builds. This eliminates bugs caused when a nightly l10n machine is somehow slightly differently configured then a release machine. (During the FF2.0.0.7 release, for example, we had to scramble to fix a surprise CR-LF problem on win32 l10n builds caused by exactly this.)
- Moving from using dedicated specialized machines to a pool of machines is important for reliability and uptimes. Until now, if a specific l10n machine crashed, there was no failover, it just closed the tree, and required a late night pager for IT and RelEng to fix before the tree could be reopened. Now if machine in the pool dies, repacks will continue on another available machine in the pool.
- This brings us closer to the ultimate goal here… producing updates for people who using l10n nightlies. We currently produce nightly updates for users of en-US nightlies, but we’ve never produced updates for l10n nightlies… yet! Stay tuned….
(Oh, and there always the good hygiene of removing lots of clunky/obsolete code. We’ve got so much legacy/complex systems making it hard to figure out whats safe to change, that any cleanup/streamlining really helps simplify other work being done by others in the group. This recurring payback is great!)
There’s a ton of cleanup work behind the scenes here that made this possible. I have to point out that Armen has been working on this, and only this, non-stop since late April. Its been amazing having him patiently pick through the various tangled knots to figure out how to make all this happen. Also, many thanks to axel, bhearsum, coop, nthomas and seth for their help untangling folklore and various historically important systems and code weirdnesses to get to this point.
(If I’ve missed anyone over the last 5 months of this project, sorry, poke me and I’ll correct!) [Less]
Posted
3 days
ago
by
gerv
I was just going back through a very old folder of reference emails, and came across my initial bugzilla.mozilla.org registration email, from 10th January 2000:
To use the wonders of bugzilla, you can use the following:
E-mail
... [More]
address: gervase.markham@univ.ox.ac.uk
Password: wjcpekyy
To change your password, go to:
http://bugzilla.mozilla.org/changepassword.cgi
(Your bugzilla and CVS password, if any, are not currently synchronized.
Top hackers are working around the clock to fix this, as you read this.)
The top hackers are clearly on extended hiatus because, eight years later, we still don't have a single auth backend for Bugzilla and source control :-)
No, of course that's not my current Bugzilla password. [Less]
Posted
3 days
ago
by
Standard8
It appears I forgot to blog about this when it landed a couple of weeks ago, probably mainly because we were getting ready for the Shredder Alpha 3 string and code freezes.
With thanks to Josh (aka pi, who I mentored during the Google Summer
... [More]
of Code) we now have a birthday field in the address book:
This has been a long-awaited enhancement, and it is finally here (and it will be in Shredder Alpha 3). We’re looking to make more improvements to the address book interfaces and fields over the coming months, so keep an eye out. [Less]
Posted
3 days
ago
by
Standard8
Yesterday, we tagged the code that will be used for Shredder Alpha 3, and as a result we were able to re-open comm-central for checkins.
There has already been a flurry of checkins mainly on improving our Preferences UI, and improving the
... [More]
l10n situation. Only three of those had appropriate reviews when we opened.
QA will now be doing the usual testing of the Shredder Alpha 3 builds and we’ll release them once we get the all-clear. [Less]
Posted
4 days
ago
by
ashughes
When I last blogged, I discussed about my largely successful attempt to set up a build system. I was able to compile libtorrent as a static library, and I was able to compile Songbird's XPCOM_HelloWorld addon. The last couple weeks have been
... [More]
fraught with failure, frustration, crying, and laughter (perhaps from going insane; I really don't know).
To make a long story short, I am now 99% complete the 0.1 Milestone for my addon. If you install the xpi in Songbird, you will get a menu item under Tools called "Show Libtorrent Version". Clicking this will pop up an alert box which, oddly enough, displays what version of libtorrent is used in my XPCOM Component.
Here is a screenshot:
To make a short story long, I will now, chronologically, account for my trials and tribulations leading up to this resounding success.
You can the rest of this blog post if stories of build environments or watching gives you nightmares
Hurdle 1: The Build Environment
So it turns out, setting up a build environment to build Songbird's XPCOM_HelloWorld add-on and Libtorrent separately was a little too easy. I probably spent a good 6 hours on Wednesday trying to get both to build together. Thanks a lot to Stephen Lau at Songbird for holding my hand through the learning process.
First off, there is this Make macro DYNAMIC_LIB_STATIC_IMPORTS. It is very helpful. Basically, it points Make to the location of any static library files you want to "include" in your component. Turns out, the 'S' is very important. I couldn't figure out for the life of me why this line was being completely ignored; that's right, ignored! It was very frustrating because Make was not throwing any errors whatsoever. Luckily, ted on #seneca came to my rescue and pointed out the missing S.
So I fixed the typo, rebuilt the make files (make -f songbird.mk makefiles) and then ran make in my extension's compiled directory. For those unfamiliar with Songbird's tree, compiled is their version of Firefox's obj_dir. I win this round.
Hurdle 2: Libtorrent in Console
My second hurdle was to prove that my component was working. The easiest method to achieve this was to call a libtorrent method from the sbHelloWorld() constructor and print a message out to console. I decided to use the torrent::version() function. It returns a char* representing the version of the libtorrent library.
So, now that I have my printf in the sbHelloWorld() constructor; I save and build....
Wouldn't you know it. I get a tonne of errors. 1046 errors to be exact.
After traversing back through the Make log, I discovered that libtorrent was having a hard time finding the libsigc -2.0 header files. After some consultation with Stephen Lau and tracking down the sigc header files on my computer, I just added a line to my Make file: CPP_EXTRA_INCLUDES = -I/location/of/sigc /headers.
After fixing this, my errors got cut down to about 10. What a relief! Unfortunately, Make was now having trouble locating sbIHelloWorld.h. After a lot of trial and error, consulting with Stephen again, and some reading, I learned that sbIHelloWorld.h is a dynamic header file. In the Mozilla add-ons architecture, .idl files are used to create header files for interfaces between components and javascript. Unfortunately, Make was not finding it.
My solution? Same solution as with sigc ...I pointed make to the location of where sbIHelloWorld.h would be after the idl file does it's thing.
Hurdle 3: OpenSSL
Still not successfully building, I ran into a more serious error: undefined reference to SHA1_Init. This was a much harder problem to solve. I ended up turning to the libtorrent community. After much discussion with them, I learned that the problem was related to libtorrent's OpenSSL requirements. All I had to do was to use the Make inline macro LDFLAGS="-lssl". This problem took me about 2 hours to solve, but without the community, it could have easily taken days.
Hurdle 4: NSPR Troubleshooting
Now I was finally building successfully. I installed the add-on, successfully. So to test my printf, I have to click Tools > Test XPCOM HelloWorld in Songbird. Much to my dismay, I start getting a new error: error: ~/.songbird2/4xsev7ei.Default User/extensions/xpcom_helloworld@songbirdnest.com/components/sbHelloWorld.so: undefined symbol: _ZN4sigc9slot_baseC2Ev. I spoke with mfinkle on irc. While he was not able to help me directly, he was able to point me to some documentation that helped a lot. I was able to track down my problem to a component registration error. More specifically, it was having problems linking libsigc -2.0 properly. I solved this with another LDFLAG: -lsigc-2.0
Wow, that was a long hard battle. But I made it. Hmm, that wasn't so bad.
So, now I rebuild, install the xpi and test. Hooray! I am getting a console message with the libtorrent version. Unfortunately, I was having a small glitch with a method call that was already in the add-on when I downloaded it; getMessage(). This method is used to display "Hello World!" when click the Tools menu item. I was able to track this down to a mismatched method name. It turns out there was a typo. Renaming the method to GetMessage() solved the problem.
Considering this a huge success to my 0.1 Milestone, I thought to myself, "How can I make this better?...Why not use GetMessage()?". That's exactly what I did. I took the printf out of the sbHelloWorld() constructor and moved it to GetMessage(). Now the user can click Tools > Show Libtorrent Version and display the libtorrent version. Cool!
Hurdle 5: Making It My Own
Now that I had the add-on doing exactly what I set out to do, I had to make it my own. Basically, this involved converting all references to "hello world" (sbHelloWorld, sbIHelloWorld, etc) to "birdtorrent". This took an extreme attention to detail. I knew if I missed one character, it would cause all kinds of mayhem. Confident that I had replaced everything in the files, I tried to build and got a few errors.
Hmmm....*DOH*...I forgot to rename the files.
Ok, great, now it's building. I install it, test it. Damn, Component Registration error. I spent an hour scouring my files to make sure I didn't leave a character out of place. I was pretty sure I hadn't because it probably wouldn't even build if I had. Taking what I learned from the NSPR troubleshooting earlier, I figured something was wrong with my component. It was then, purely by luck, there is a UUID and a CID for the addon.
After some chatting with David Humphrey and gavin on irc, I discovered that these numbers are important. Both have to match. The UUID is a unique ID generate by a system utility called uuidgen on Linux. The CID is basically this number converted to a C readable format. Gavin pointed me to this cool script that generated both for me.
So I patched my addon with this new UUID/CID.
Rebuild, install and test...
The Exciting Conclusion
It worked. At last it works!
It is at this point that I would like to thank stevel, humph, gavin, mfinkle, and the rtorrent/libtorrent community for all of their help. I would probably be weeks away from where I am today without your help.
In spite of this victory, I think I can safely say, "the light at the end of this tunnel leads to another, much darker and deeper tunnel". Now that this works on Linux, I need to set up my Mac and Win32 build environments and make sure this works on those platforms.
Bring it On!
Cheers,
ashughes
Factoid:
Libtorrent static library weighs in at 20.6MB
The xpi weighs in at 3.4MB
PS.
If you want to test run the addon at any stage of development, I will be posting the XPIs here. Feel free to send me feedback. [Less]
Posted
4 days
ago
by
nor...@blogger.com (Myk)
I've tried the Mozilla-based open-source music player Songbird twice before, and each time I reluctantly retreated to iTunes for a variety of reasons: Songbird wouldn't play my DRM-encumbered iTunes Store tracks, it was cumbersome to use, it kept
... [More]
crashing or wouldn't start, etc.
But in August I stripped the DRM from my 50 encumbered songs by burning them to four CDs and then ripping them back. And then I heard that the latest version of Songbird (0.7) had a redesigned interface. So I decided to give it another try. And this time it stuck.
The major reason is the interface redesign, which has simplified the application considerably, making it much easier to navigate. But it also doesn't crash much anymore and has started up fine every time.
I've been using Songbird almost exclusively for the last few weeks, except when I need to burn a CD (which it still doesn't do) and during the occasional foray into the iTunes Store to see if it has DRM-free versions of songs I can't find in the Amazon MP3 Store, like Ministry's original recording of Jesus Built My Hotrod or The Damned's remake of Jet Boy, Jet Girl (sadly, it usually doesn't).
I even activated its scrobbler support, and it's been pushing my listening habits to my public last.fm profile, which feels uncomfortably revealing, although no more so than having dozens of my colleagues following my decidedly non-work-related tweets.
And I've tried out its Songkick functionality for automatically finding concert dates for the artists in my library, which feels like a killer feature, since it's so much easier than searching for concerts manually (or tediously programming Ticketmaster/Live Nation to keep me in the loop).
Finally, I've sampled its SHOUTcast internet radio integration, which seems like it could be a great way to get someone else to mix my daily soundtrack for me, except that I haven't yet put in the effort to find the stations I want to listen to from the overwhelmingly voluminous selection of them.
Overall, I'm pretty happy with Songbird. Support for burning CDs and better integration with the Amazon MP3 Store are the only major features I'm missing. The rest is just nits.
(Note: recent versions of Songbird supposedly play DRM-encumbered iTunes Store tracks just fine, although I'm glad to be DRM-free anyway and plan to remain so from now on by not purchasing any more encumbered music.) [Less]
Posted
4 days
ago
by
John
The following BBC news story is about two women who were walking on the M6 motorway in England recently (approx 25sept2008).
http://news.bbc.co.uk/2/hi/7636577.stm
I’m really not sure how I’d cope if I had been driving there at the time, or had stopped to help…
Posted
4 days
ago
by
Ehsan Akhgari
Today I finally made a try server build which includes patches to some bugs, each of which fixing a problem that the ACID3 test is checking for. The build gives us 97/100 points on the ACID3 test, which is impressive. Here is the list of the
... [More]
fixes that this build includes:
Fix to Bug 174351 - Encoding Errors aren't treated as fatal XML errors
Fix to Bug 178258 - HTML parser ships <script> to implicit <head>, breaking document.forms or document.getElementById
Fix to Bug 216462 - (smil) Implement SVG (SMIL) Animation
Fix to Bug 302775 - extractContents doesn't work if start and end node of a Range object is an attribute node [@ nsContentSubtreeIterator::Init]
Fix to Bug 454325 - Range.extractContents doesn't clone partially selected nodes
You can download this build from here for all the three platforms. Here's a screenshot of the ACID3 test with a copy of this build under Windows:
The following is a report of the tests which are failing in this build:
Failed 3 tests.
Test 26 passed, but took 258ms (less than 30fps)
Test 69 passed, but took 3 attempts (less than perfect).
Test 77 failed: expected '4776' but got '5560' - getComputedTextLength failed.
Test 78 failed: expected '90' but got '0' - getRotationOfChar(0) failed.
Test 79 failed: expected '34' but got '33' - SVGSVGTextElement.getNumberOfChars() incorrect
Total elapsed time: 3.23s
The ACID3 tracking bug has details on the failing tests, and is also tracking the bugs filed in Bugzilla for fixing the remaining tests.
Oh, and another cool thing about this build (in case it's not obvious already) is it includes SMIL support! SMIL is a W3C recommendation for creating declarative animations, which is integrated into SVG. When you check out this build, make sure to check out some SMIL tests available here.
Oh, and just to mention the obvious, neither of these patches are written by me; I just applied them on my mozilla-central hg clone, and pushed to the try server, with a simple patch I copied from Daniel Holbert's patch to enable SMIL to build by default (because it doesn't seem to be possible to pass a customized .mozconfig file to the try server to use in its builds, and SMIL support by default is turned off, unless --enable-smil is used in .mozconfig). [Less]
Posted
4 days
ago
by
KaiRo
I've been using places history in SeaMonkey for a long time now, getting the awe... er, helpful search algorithm that this new implementation brings right in SeaMonkey's urlbar.
As nobody picked up UI work for sidebar and history window though
... [More]
, we still can't make this system available for new users and need to stick with the old, outdated, unmaintained, mork xpfe history backend.
Yesterday, I decided I can't stand that any more and started copying code from mozilla/browser/ to suite/ - first the history sidebar panel, then all stuff it pulls in, then I injected parts of places organizer into the SeaMonkey history window, until today I arrived at this:
Note the search results of the urlbar matching URLs in the middle and page titles, sorted so that stuff I've been visiting more often is at the top. Both the grouped sidebar view and the table-style history window have a simple search bar now, and due to retrieving only needed stuff from SQLite instead of loading everything into memory, we can vastly increase the amount of URLs we can store in the history.
This is not ready to land, I still need to do a lot of cleanup in the code, as we don't need to pull in all kinds of bookmark stuff, and we need a few functions added to utilityOverlay before this can be checked in - but I came to actually working code much faster than I had expected. And I hope all SeaMonkey testers will be able to store all the places they've been to in the shiny new format by Alpha 2!
(P.S.: Expect the official Alpha 1 release this weekend!) [Less]
Posted
4 days
ago
by
david.humphrey
I made the mistake of upgrading from Fusion 1.1.3 on my MacBook Pro to 2. First, while I’m ranting, let me just say that VMWare’s upgrade process for Fusion is something right out of 1992. But let’s say you do go ahead and upgrade.
... [More]
Here’s what you’re in for.
I use Fusion to build Firefox on Windows and sometimes Linux, and yesterday, after upgrading, I tried building in both my Windows VMs (I have an XP and a Vista). The Fusion program itself really dragged my whole system down. I couldn’t flip between spaces, my apps wouldn’t respond to the keyboard or mouse–it was brutal. Eventually–literally minutes–I got the first VM booted, and did my build: 159 minutes! I tried the other VM and it took forever to even boot. After some more testing, I went to see if others were having trouble. Turns out I’m not alone.
So I decided to try and re-install 1.1.3. That went pretty well. It complained about a newer version of the software (notice the use of the word “newer” and not “better”) being installed, but it let me do it. When I was done I tried booting my machines. The Vista VM, which had been shut down was totally broken, with an error about the config file (.vmx) being corrupt and having features for a newer version that were incompatible. I then tried the XP VM and it booted (it had only been suspended).
I took a peek at the two .vmx config files to see what was different, and after making the following change, the Vista VM booted fine:
from: virtualHW.version = “7″
to: virtualHW.version = “6″
I can’t believe how much better things are now. Even with 4G of RAM on this machine it thrashed until it was totally unsable with 2, and runs really fast under 1.1.3. My advice is that you don’t upgrade to 2.* until you read something about performance and better i/o in future release notes.
UPDATE: Taras says it’s working fine for him, but bz reported similar issues to me. I’m sticking with 1.1.3. [Less]
Posted
4 days
ago
by
dbradley
I spent the Spring working with Microsoft’s Windows Portable Device API along with others here at Songbird to get MTP support in Songbird. WPD is the API Microsoft provides to allow applications to talk to MTP compliant devices. At first glance it
... [More]
looks simple enough. You have objects that have properties. So you figure you get an object and then ask it for its properties or other objects under it, similar to many other API’s I’ve come across. Well conceptually that’s true, but the interfaces are different. The big advantage of the way the API’s are laid out is you do not have COM object instances representing objects on the device. So when you enumerate a large list of objects you don’t have to keep a lot of objects alive. When you call EnumObjects you get a collection of ID’s not objects. You don’t end up with a ton of objects alive when you don’t really need them. One can only hope there’s some caching built into the API to reduce object creation and destruction.
MSDN does well enough at documenting the interfaces. A quick run down of the main interfaces:
IPortableDeviceManager - This mainly allows you to enumerate the devices via the GetDevices method.
IPortableDevice - Represents the physical device. Main thing to be interested in here is the Content method which return a IPortableDeviceContent pointer
IPortableDeviceContent - This is really where all the meat is at. This allows you to do two main things. Enumerate child objects and get an interface that allows you to read and manipulate properties for an object.
IPortableDeviceProperties - This interface holds the properties for an object and allows you to manipulate them.
There’s a handful of other interfaces that do things such as hold collections of values or named value pairs, but these are the main ones.
All in all it’s a pretty efficient API. What makes things more interesting is that the stability and consistency of the implementation is primarily up to the device driver developers. A poorly written driver can really create headaches. If the device is popular and you want to support it, you’re left specializing your code for that device, adding to the maintenance cost of your application. That’s pretty much true of any driver architecture. The relatively new MTP standard definitely has issues due to its relatively young age. Also there isn’t a lot of code out in the wild to learn from.
Built in Race conditions
One of the things that I found out late in the game is that the WPD isn’t really what I’d call thread safe, well for that matter multi-process safe. Rather than handling concurrency with blocking they’ve seem to have taken the stance that if two processes or threads hit the same WPD object at the same time they just return an error, “object in use” 0×800700aa. I guess that’s the easy way out and prevents possible deadlocks. But what it ends up doing is requiring the user of the API to either special case the error and bail or add a retry loop. We opted for the latter where the problem was showing up.
I’ve found that having Explorer open while running an application accessing MTP can really increase the chance for this error. That’s what kind of turned me onto this issue in the first place. I was noticing very sporadic failures, and just figured with the debugging and such the device was getting into a bad state.
Take it Slow
One of the annoying things we ran into near the end of the Dokken release was that if you manipulated objects too fast you’d get errors. Even waiting and retrying didn’t seem to work. Once you ran and tripped you just couldn’t seem to get back up, you were stuck. We ended up putting in some sleep statements after making changes to objects and that seemed to do the trick. Man how I hate that type of solution. I think some issues revolve around the lifespan of the IPortableDeviceProperties interface. Seems to be a good idea to release it after making a set of changes.
It’s a Transaction Based System?
One of the features I thought I’d like was the transactional nature of the API. This would be nice, if you needed to bail just abort. So when we went to implement use cancel of a copy I figure this will be nice, I can just call the Revert method of the IStream. Well that seemed to work. When you looked the object wasn’t there and all was good. Well until you unplugged and replugged the device in. Then what I call ghost objects appear. Apparently the Revert didn’t commit, but it also didn’t quite revert all the way. This seems to be a problem with only certain devices, though.
While investigating this I realized there was a Cancel method on the IPortableDeviceDataStream interface. Ah ha! Apparently whoever designed the interface decided that Revert was just a bad name and they really liked Cancel better. Well what could be going on here, though I haven’t proved it, is the Revert is for solely the stream part, and the Cancel is for the MTP object part and maybe the stream. In any case, using Cancel didn’t change the behavior, we still ended up with ghost objects.
The only way we found to deal with the ghost objects was to try and delete them the next time the device was mounted. The content length appeared to be zero in this case. That turned out to not always be true, it sometimes was wild values. And then we ended up with problems where some devices didn’t report a content length and we erroneously deleted them.
One way to deal with this may be just to always commit. If you’ve canceled I believe it will error out since you haven’t written the entire content. Then you could just attempt the delete in case you did the cancel near the end and had written the entire content.
Just Need to Unplug
One thing I did notice is that sometimes you just have to unplug the device. Debugging and stopping in the middle of some operations will leave objects on the device marked in use, even when the process is long gone. And sometimes you just have to reboot the operating system.
A curious behavior on my Vista system is if I startup with the device connected I have to unplug and plug it back in twice before even Explorer will recognize it.
Properties
Properties was probably the biggest weakness. The sample app, WpdApiSample that comes with the SDK is ok and a good source of how to go about things. It’s well worth browsing the code. One header file in particular is excellent, the portabledevice.h header. This has all the properties and what types the values should be.
What is lacking is what to expect. One good source is the device driver kit. This basically documents what the device driver authors should be doing. So it’s worth browsing that MSDN area and even installing the device driver kit. The install contains a nice utility for inspecting objects, better than the WpdApiSample.
Playlists
These proved to be a little problematic. We create an empty playlist intially and that seems to create problems. WPD will do it, but often when you go to retrieve it, you’ll get an error 0×80004005 (Operation failed). Also we found that if you go to change values in the playlist it just recreates the playlist. We were saving of the persistent ID and assuming modifications would keep the ID the same, but unfortunately at least for some devices it doesn’t. So we just basically recreated the playlist ourselves and had to update the persistent ID we were storing.
Bulk API’s
I also recently got to work with the bulk property API’s. These looked to be a real savings. I could query properties for objects across the entire device. No more walking the folders. And it would have been a great performance boost if it actually worked. My experience was that query properties for more than one object only reliably worked when query just a single folder. I got the infamous “Object in use” error 0×800700aa when ever I called the API’s at the device level or even for a single storage item. Like so many other issues, this could be a poor driver implementation by the device manufacturer. It is also called out pretty plainly that not all drivers support these bulk API’s as well.
My approach was to abstract out the behavior of iterating the device. Since I couldn’t just query at the top level I had to go to each folder this made the use of bulk API’s closer to the use of the normal API’s. So now the bulk of our code doesn’t care which API we happen to be using. The decision is made up front by QueryInterface’ing the IPortableDeviceProperties instance to IPortableDevicePropertiesBulk. If that succeeds then we create our bulk property retriever else we create a simple property retriever.
Hopefully once the MTP interface and devices mature the quirks of the various API’s will go away and the least common denominator we currently have to support will be closer to what the full API’s specify. [Less]
Posted
4 days
ago
by
blizzard
[ Note that this is largely a reminder to Mozilla folks who read this blog. ]
David Humphrey wanted me to remind people who are at Mozilla and will be going to FSOSS this year should try and register ahead of time.
That is all.
Posted
4 days
ago
by
Jeff
Finally we can now start writing automated tests of https functionality in Mozilla! Yet another excuse for slackersdevelopers not to write tests has bitten the dust…
Posted
4 days
ago
by
nor...@blogger.com (Simon)
Three days ago, I informed you that Thunderbird 3 beta1 had been renamed to Shredder alpha3. So yesterday we had a Thunderbird drivers meeting to discuss what this all means for the next pre-release (beta1) and the overall release
... [More]
planning.
The outcome of that discussion was, that the earlier plan of releasing a first TB3 release candidate into the wild at the end of January or early February can no longer be kept. There are basically two reasons for this:
Firefox 3.1 has been postponed to Mid-February 2009 and we don't want to release TB3 in the middle of THe Fx31 release frenzy
We're not as far along with feature work than anticipatedWhat this means for our localizers is, that we will release Thunderbird 3 no earlier than four weeks after Firefox 3.1 is shipped (so probably around the middle or the end of March 2009). The reason for this is that
we don't want to release during a time, when all of Mozilla Corporation's resources (build engineering, IT, etc.) are focussed on Firefox exclusively
we want to give localizers enough time to complete their localization work for Thunderbird and not make them choose between localizing Thunderbird 3 or localizing Firefox 3.1I can't give you an exact date for our planned release date however, as that is still being discussed. Hopefully we will know more after our first beta release is out of the door. [Less]
Posted
4 days
ago
by
zbraniecki
A quick update on the status of MCT. Tara, Seth and I gathered a solid round of feedback from many of you. We scanned it, analyzed and built a profile of updates we want to make. We noted five main issues raised by you regarding the first
... [More]
proposition:
You are wondering what flexibility you’ll have. What about different colors? Flags? Logos?
You want to know how it’ll work with other tools than Drupal
Details are wrong, wrong flag, left&right menu are the same width, colors are wrong, languages are mixed
The theme is not “mozzilian” enough
The theme is “graphic” heavy.
Let me address those comments.
First, we are commited to create an extremely flexible environment for you with this theme. We are preparing it in the way that will give you ability to choose colors, layout, elements you want to put in the background, virtually anything. Beside, we will provide you Guidelines prepared by the agency that will help you work with those sources. They will just guide you on how to modify the template to keep the consistency. And if you missed that in my last post - we’ll also provide you full sources on open license so that you can modify this as you want! It’ll be a mixture of professional quality and community freedom.
Second. As I said we are preparing the template to work with several webapps out of the box, and with the freedom described above we hope you’ll contirbute with the theme suited for other apps as well.
Right now, we’re preparing, among the others, php template, planetplanet template and wordpress template:
MCT v1, forum view
MCT v1, Planet view
MCT v1, Wordpress view
And we also have another mockup with data from a pretty complex Mozilla Community site, in this case mozilla-russia.
Please, bear in mind, that those are all mockups - elements just combined together to present how the website may look like. Of course the width of elements, choice of logo, colors etc will be up to your community, so please, forgive us a mixture of polish, russian, spanish, latin, lorem ipsum and some other languages in those mockups
Of course all those mockups are from before we received your feedback (version 1), so I’m attaching them just to show you the variety of cases we’re working on. The new mockups should be ready soon.
We spent some time trying to figure out what does “mozllian” mean in terms of website template (mozilla.com? mozilla.org? developer.mozilla.org?) and we tried to minimize the influence of mozilla.com visual identification to make sure people see it as Mozilla Community - not official MoCo site. It seems we didn’t hit the right balance yet.
Regarding “heaviness” of graphics on the template. We find your comments saying that the template works great for smaller sites (majority of our community websites are in this category), but we could improve how it’ll look on more complex sites. And that’s also what we plan to address with the new round.
So. Did I get you right? Does it answer your feedback? We’re working on the next round and we hope it’ll be near to final so that we can start deploying it for you to use. Expect next round, next week
update: Just to clarify - this is an option for our communities to make your life easier. We will not enfore anyone to use it! [Less]
Posted
5 days
ago
by
blassey
I want to run a debug build of fennec on my windows mobile emulator. I have been able to do this by “mounting” my object directory as a shared folder. Unfortunitely I’m seeing IO errors which I’ve read could be due to the way the emulator
... [More]
maps in the “storage card.”
So now I’m trying to deploy fennec and xulrunner to the Program Files folder through visual studio. Unfortunitely the emulator images provided by microsoft only have 10-20mb (depending on how you launch them) of free storage space, so the deploy fails.
I’m hoping some one out there has a work around. One option would be to edit the emulator configuration in some seemingly undocumented way. Another could be to download different images. Most actual consumer devices have more than enough internal storage (the HTC Touch Pro has 512Mb), and I seem to remember seeing device specific images at some point. Any help would be apreciated though.
Share This [Less]