The roads I take...

KaiRo's weBlog

April 2007
1
2345678
9101112131415
16171819202122
23242526272829
30

Zeige Beiträge veröffentlicht im April 2007 und mit "Mozilla" gekennzeichnet an. Zurück zu allen aktuellen Beiträgen

Populäre Tags: Mozilla, SeaMonkey, L10n, Status, Firefox

Verwendete Sprachen: Deutsch, Englisch

Archiv:

Juli 2023

Februar 2022

März 2021

weitere...

30. April 2007

Weekly Status Report, W17/2007

As SeaMonkey continues to be my primary source of income, I feel I should give the community some feedback about what I'm doing for the project in return for the money German users are channeling to me through their Google ad clicks.

This was one of the reasons why I created this blog and started posting various news about SeaMonkey here - but reading the weekly MoFo status reports of F. Hecker, Gerv and Zak, I realized it's interesting to see what's going on in those organizational areas, and doing most SeaMonkey organizational work, it might be interesting to community members to get a glance on that as well (comment if you think otherwise or you want to know more about some specific SeaMonkey behind-the-scenes topics).

So, here's what I've been doing in week 17, 2007 (April 23 - 29):
  • Upcoming branch releases:
    Triaging approval/blocking flags for the upcoming 1.0.9 and 1.1.2 releases, pinging people about remaining blockers, bumping version numbers on branches in preparation of the releases, blogging about 1.0 EOL
  • Tinderbox/FTP work:
    Cleaned up old builds from tinderbox/build systems, made hoshi tinderbox build again (basically with a reboot) after a strange compiler failure, cleaned up old builds from ftp.m.o tinderbox-builds and nightly/latest-* directories
  • Investigated 1.1/1.1.1 AMO dictionary URL issue (see bug 367500, talking about a possible redirect with AMO people, fixed our side of this, which required breaking the branch L10n freeze to some extent, notified m.d.l10n newsgroup about this.
  • suiterunner:
    Continued poking of people about the missing links we still need for switching to suiterunner - Mark ("Standard8") is still working on finishing profile migrator (creating the list of prefs to migrate is tedious work) and thinking about download manager (can we borrow code from somewhere else?); Frank ("mcsmurf") is waiting on Rob Strong re-reviewing the NSIS installer patch.
  • SeaMonkey Marketing Shop:
    I finally created a shop at cafepress, created some designs for stuff to sell there and did order some items myself for a test run. Expect this to hit the public soon!
  • Mozilla Planning/Governance:
    I'm trying to take a very active role in Mozilla planning and governance newsgroup discussions to figure out the best ways to deal with various issues for the whole Mozilla community and in particular for the SeaMonkey project. This week, it's pretty silent there, but some Mozilla2 repository discussions are ongoing, as well as some bugzilla organization discussions.
  • L20n:
    In a small circle of people, we started talking about a possible PHP implementation of L20n so that we get really working code on top of the current spec proposal and see how it acts in practice. This is in a very early stage, we're currently discussion license issues - I'll tell you more once we have some actual code in place.
  • Various discussions:
    As always, lots of my time spent on SeaMonkey gets investigated in lots of discussions on IRC, in newsgroups and in bugs - topics this week included various issues affecting suiterunner, e.g. mac theming issues, the possibility of toolbar customization, mcsmurf's new CVS account (congrats!) and policy issues we encountered on the way there (what does an area of a super-reviewer mean?), wording of junk prefs, file locations of tab/sidebar close buttons, the suiterunner switch, page info, and others.

Tasks without progress I want to work on next week:
  • SeaMonkey slogan(s):
    Need to filter out well-recieved proposals from the newsgroup thread and get some clue how to decide on which one(s) we will be using for marketing material in the immediate future. For the first round of stuff in our new shop, I'm using the www.seamonkey-project.org URL instead of a slogan though, which redirects to our main project site.
  • Trademark policy:
    For posting marketing material, we need to have a useful trademark policy. A proposal is in review with MoFo, need to poke Gerv once again about that.

Von KaiRo, um 12:35 | Tags: L10n, Mozilla, SeaMonkey, Status | 2 Kommentare | TrackBack: 1

27. April 2007

Earning money in surprising ways

Some people might wonder what I'm working to earn my money - esp. as I'm available on IRC most of the day (unless I'm asleep) and usually always have time to discuss SeaMonkey topics, esp. when it comes down to project coordination issues.
OK, a few people might know me as a student, and theoretically I still am, but I haven't seen university (from the inside) for quite some time (though I probably should take my 4 missing exams some time soon and finally actually write up my diploma thesis). But I always feel I need to give some work back for the money I'm earning, and studying is actually not the most attractive distraction from that work...

But, what is this work then, which I earn my money with, if I have time for SeaMonkey most of the time? Well, most surprisingly, SeaMonkey actually is that work. How, you might ask? Well, I stumbled into that the same way I stumbled into the whole Mozilla project...

When I had done the first German Mozilla localization in early 2000, I realized I needed a web page for it and set that up as a sub-page on my personal website www.kairo.at, later transferring it to its own site of mozilla.kairo.at (or, nowadays, www.seamonkey.at). I had to pay for the kairo.at domain from the beginning, but hosting it on the dedicated web server of a friend of mine was cheap, and so the Mozilla localization website did not actually cause additional costs. Traffic on those pages exploded as more and more German users became aware of it, and as time passed, I had to redefine my agreement with that friend to make me co-owner of the server and be paying half of its hostings costs. I still was reluctant to throwing some random web banners to people just to pay for hosting, especially as I felt that what banner ad services displayed to people at that time was not what I wanted to put up on an open source software page.

In summer 2002, with traffic still exploding (the default start page of German Mozilla was this website after all) and a new hosting option for our server needed, I decided to do a poll about sponsoring solutions among site visitors, and as a result, created a donation system that allowed people to specifically sponsor my Mozilla German website with non-intrusive ads (this is still running there today). It was accepted well enough that I could at least pay my web hosting costs as intended - at least when evening out good and bad months. Still, all the time I was investing in Mozilla work was not paid for, though it started competing with the time I had to spend studying.

In 2004, I realized not only that a more modern redesign of the German website was needed (based on the new CBSM website system I had written), but also that with Google AdSense, there was finally a solution to display mostly non-intrusive banners for and by decent businesses and be sure they pay well enough - and my new design, based on mozilla.org's "cavendish" design, happened to have space in its top bar for a standard banner. Because of that, I decided to try an AdSense banner on the site and see how it works out.

And there, something astonishing happened: In the first month, AdSense earned me a few hundred dollars - introduction of a special suite start page with a Google search field in March 2005 made that even jump into the four-digit range! Suddenly, I started to earn money with Mozilla! Not that this made me feel completely comfortable though, as it put some personal pressure on me to give back this value to the community by dedicating even more time to the project and the community.
After a continuing rise of AdSense income, I finally founded my own one-man-business around that and my CBSM webhosting system in January 2006. Even though income declined since April 2006 (no, never saw 5 digits there, but it's still a few thousand dollars) I'm still able to live off what the community channels to me through clicks on AdSense ads on the SeaMonkey German web page and on search results from that Google field on the default start page.

And that's one additional reason why I'm donating as much time as possible to the project - it's where my primary income stream is originated. Thanks to Google for their great AdSense system and thanks to all German SeaMonkey users as well as the SeaMonkey community, who make it possible to have SeaMonkey as a part of my business! And, I guess it's not really bad if someone like me is having commercial interest in addition to personal liking to spread SeaMonkey as well as possible. You can be sure I'm trying to pay back every cent with the time I'm investing in the project. Unfortunately, giving money away to others is not easy to do legally (there's always the problem that it might mean that legally that person is considered as "working for you", which means you need contracts and pay taxes), but for example, I could pay biesi's recent FOSDEM visits from my business as I can state need him for technical advice there. :)
I may still find other possible ways to contribute, but mainly I will contribute my time, as time is money after all ;-)

It's always nice to hear someone's found a way to make a living from open source development, it's really nice though to be one of those people - esp. if you're not working on one of the really big products. As long as that income is flowing, be sure to hear a lot about me in this project. Oh, and don't forget to spread SeaMonkey! :D

Von KaiRo, um 15:46 | Tags: business, history, L10n, Mozilla, SeaMonkey | keine Kommentare | TrackBack: 0

Stumblin' in: My Mozilla career

A few people in the Mozilla community have known the project for many years already, newer "family members" might not have experienced the pre-Firefox days at all, others are just entering or visiting this steadily growing crowd of people as testers or bug reporters - or "just" interested users.
Some of those might read my name as a "SeaMonkey Council member", i.e. one of the five people steering the SeaMonkey project, working on keeping the integrated suite alive (that has its own long history, reaching back to when Netscape still dominated the Web market).

So, how does one grow from a student and web user to one of the SeaMonkey project leaders? For me, it was mostly a matter of stumblin' in - or actually seeing that "something needs to be done" - and trying to help make it happen.

Just for some background, my father entered the computer sales business early on, bought a PC quite early on, back in the 80s (a then quite modern 8086 with 12 MHz, 640K RAM, CGA monochrome display and a 20 MB harddisk) and so I learned working with PCs quite early while going to school (ah, those DOS days... and programming with GWBASIC ;-) ). Following that, we probably were among the first people who had Internet in a private household around here - and, of course, Web and Netscape were almost synonyms in those days.

So, as an always-proud Netscape user, hating how Microsoft used their Monopoly to drive the market leader off the browser market, I started wondering in 1999 if my favorite browser producer is working anything new and stumbled over mozilla.org, trying their Mozilla M5 milestone build (made available for download under something called "the Seamonkey project"). Somehow even that early stage felt promising and cleaner in design (esp. when it came down to website rendering) than Communicator 4 to me, but clearly it was very experimental. My first post to a Mozilla newsgroup already clearly tells what I felt about the Gecko-based product: "I am convinced the final release will be the best existing browser software by far." - along with some bugs I encountered ;-) Following the advice of some Netscape employee, I filed my first bugs in Bugzilla for those issues.

I decided to remember that project and check back later for newer milestones - as a beginner physics/chemistry student, long-time DOS/Windows user and (Visual)Basic developer I didn't feel I could help in any other way than testing that new technology. Starting with M7, I tried to use this product for browsing more and more and after some time I got interested what this XUL technology is that is said to build up Mozilla's user interface. Back then, all chrome files were unpacked plain files in the app directory and I quickly discovered that that was just something like the HTML I knew from creating web pages (I still had to learn what XML really was), being styled with CSS (which I really did know) and with strings in some simple-looking plain text format (not knowing XML, I didn't know those DTD entity definitions either). Intrigued but not yet convinced by all that stuff being simple text files, I decided to try out if they really make up what I'm seeing, replacing some colors in CSS with some Star -Trek-style colors, and replacing a few English strings with German variants - and then I was really impressed: It just did work!
While I decided that Star Trek styling was nice for playing around personally (later my LCARStrek theme based on that), the translated strings could potentially be useful to others, and so I posted a message to n.p.m.l10n in December, telling that I'd like to help with the German localization of Mozilla. As Tao Cheng from Netscape, the L10n head at that time, replied "If you have no objection, I'll put you as the German translation contributor." (note him saying "the" contributor), I realized I had just more or less taken over the responsibility of creating a full localization. I tried to live up to that and on December 31 I managed to release M12 as the first "fully" (as in: as far as possible) localized German Mozilla version.
In late January of 2000, I opened up a website (The SeaMonkey German website still has old news and downloads that I ported to the new site to archive them) and since then, practically every release of the suite has been made available in German language by me. Ah, and in September I got to know some people of our community personally for the first time when we had the first Mozilla Europe Developer Meeting near Frankfurt, Germany (organized by someone by the name of Axel Hecht, BTW).

For a some time, I contributed to the project as the main German localizer, and reported bugs here and there. In April 2002, I got a mozilla.org CVS account, originally for getting German L10n into CVS (it should take years to actually have a working model for locales in CVS and then even a different repository - seaMonkey is even still on the road to that currently). This was some kind of milestone for me personally, as I began to do some small fixes for problems in the L10n area, like some locale switching fixes, followed by the per-release localeVersion updates until I finally automated that. And suddenly I had become a code contributor (still proud it was me who made about:plugins localizable and themeable back then, which is code that can even be seen in Firefox), and I started using that CVS account for those few, mostly minor, code fixes.

In the summer of 2004, after the demise of Netscape in 2003 and the only contributor who had write access to the FTP staging server and the mozilla.org web pages being AWOL, the L10n community realized more than before that a new lead is needed: For one thing, localized builds had to go up onto mozilla.org servers again, and we needed someone to improve communications of localizers with Mozilla Foundation. As I saw someone had to make that happen, I brought forward a proposal for a new Mozilla Localization Project (MLP) staff team and tried to collect people who wanted to help there. When we got such a new team together, those people asked me to take the position as official MLP project lead - and in this I ended up as being the main L10n contact in talks and teleconferences about Firefox 1.0 release planning, even though I didn't localize Firefox myself (a different German localizer was working on that while I continued to do the suite part). The current MoCo L10n lead, Axel Hecht, also did care a lot about L10n issues there - even though he was no active Mozilla localizer himself. When Axel rose into that position, my being the MLP lead got less important, but other challenges were already waiting for me (BTW, despite trying to step down as MLP lead later on, nobody volunteered to take over, so I'm more or less still in this position).

Finally, in early 2005, the future of my beloved Mozilla suite became more and more uncertain and when bz asked MoFo for clarity on that, I also undersigned his open letter to staff and experienced the suite "Big Bang" first hand. When the transition plan laid out a way for the future of the suite as a volunteer project, I once again figured a project leading group is needed, and tried to figure out people willing to help in that team. After extensive discussions, mostly on IRC, Neil, biesi, IanN, CTho and me agreed to form that steering committee, which we later named the "SeaMonkey Council".
Once again, in a repeating pattern, my strong will to make something happen and putting my contribution where my mouth is made me stumble into being a leading contributor in the respective area.

In this role as a SeaMonkey Council member, I'm mainly concentrating on the organizational matters of the project, while the other members are more focused on doing actual development, along with our broader community of SeaMonkey contributors. Next to that, I'm trying to contribute some code myself, still work with the L10n community and, of course, keep the German localization of the suite alive and kicking.

It's been a great ride so far, I'm still eager to get stuff done, and I hope to continue the story of how I got here with some great future success stories of the SeaMonkey project!

Von KaiRo, um 02:02 | Tags: history, L10n, Mozilla, SeaMonkey | keine Kommentare | TrackBack: 1

23. April 2007

End of life for SeaMonkey 1.0 coming soon

The SeaMonkey project isn't as young any more as one might think, we're also counting years already rather than months. And there are some moments when one starts to realize that even more - for example, when the first stable release series is nearing its end of life.

The first major and stable version of our new incarnation of the internet suite, SeaMonkey 1.0, based on the stable Gecko 1.8.0 series, has been released on January 30th, 2006, and was followed by eight 1.0.x versions with important security and stability fixes to it in the almost 15 months that have passed since then, with up to almost 200,000 downloads of the main three builds (not counting localized, direct-from-FTP or similar downloads) per release.

SeaMonkey 1.0.9, which is scheduled to be released in sync with it "brother" Firefox 1.5.0.12, will be the last binary release that keeps security of the 1.0.x current, later security fixes will only be available as source from the SeaMonkey project, some Linux distributors may still ship binary updates from that source, but we won't offer any such updated binaries on mozilla.org any more. We have been maintaining 1.0.x for more than a year and think to have produced enough overlap with 1.1.x to retire the Gecko-1.8.0-based series in favor of the new stable series.

That said, also this SeaMonkey 1.1 series will be updated with current security and stability fixes in sync with SeaMonkey 1.0.9 and Firefox 2.0.0.4 (see the Firefox release schedule for exact planned dates). This SeaMonkey 1.1.2 release will fix all currently known security issues as well as some other small improvements (see this rough buglist for a list that should contain most of the fixed bugs).

We'll encourage all our users to upgrade to this new SeaMonkey 1.1.2 version once it officially will be released.

Candidate builds for testing both releases will appear soon and will be announced in our Newsgroups - as always, we badly need testers to do our basic release QA on those, please stop by on IRC and contact ajschult, our QA head, if you can help with this.

Von KaiRo, um 17:08 | Tags: Mozilla, release, SeaMonkey | keine Kommentare | TrackBack: 0

17. April 2007

suiterunner and "source L10n"

As bug 286110 states, we're working on getting the so-called "source L10n" approach working for SeaMonkey. This means that in the future, we want to be able to build localized SeaMonkey builds directly with localized strings taken from a mozilla.org repository, just with checking out the right l10n/ dir (usually via MOZ_CO_LOCALES) and adding the --enable-ui-locale configure switch.

We're planning to support that on the new, toolkit-based SeaMonkey configuration dubbed "suiterunner", and I have had "my" German suite localization in the tree for testing purposes for quite some time now. As MailNews locale files are in suite/ now and mozldap is as well, I tried building a German suiterunner test build this way recently, and the results look pretty good: A de.jar is placed in the chrome directory, containing almost all needed locale files that previously were in en-US.jar. That latter JAR file is mostly deserted in such a build now. We still need to sort out the few files that are left there though: P3P, for one, will be removed soon (I hope), wallet should get replaced by satchel, so those two are no big issues (and just turn up in the wrong language anyways). Files that lead to XML errors and breakage in the UI because they're not available consistetly in the selected language are the bookmarks UI files, for which I filed bug 377799 now, as well as global-platform/win/nsWindowsHooks.properties and global/typeaheadfind.properties are still there, we should get those out of global and somewhere into suite/, for which I filed bug 377801 due to this round of testing.
The built-in extensions like Reporter, DOM Inspector, ChatZilla and venkman stay untranslated for now, they can be cared about once the main suite works.

The good thing is that apart from those small issues, source L10n is about to start working for the toolkit-based "suiterunner" SeaMonkey builds on trunk.
Finally, an easier solution for localizers gets in sight also for the reborn suite application :)

Von KaiRo, um 21:38 | Tags: L10n, Mozilla, SeaMonkey | keine Kommentare | TrackBack: 1

Improving SeaMonkey with funding from Google

As you probably have heard already, Google is repeating its Summer of Code ("GSoC") program the third time this year, funding 600 projects in the open-source area with up to $ 5000 (up to $ 4500 for the student and $ 500 for the project they are doing their work for).
This year that program includes 10 Mozilla projects, among which even one project aimed specifically at SeaMonkey con be found!

The title of this project is "Make SeaMonkey Not Suck As A News Reader", done by Markus Hossner, and mentored by our SeaMonkey Mail & Newsgroups owner Karsten Düsterloh (also known as Mnyromyr). I asked both Markus and Karsten 3 questions, read what they have to say about this GSoC project:

First, some questions to Karsten Düsterloh, GSoC project mentor and SeaMonkey MailNews owner:

[KaiRo] 1. You created the idea of this project. What exactly "sucks" in SeaMonkey's news reader currently (many people tell us it's pretty usable, actually) - and what improvements do you expect we get from this GSoC project?

[Karsten] First of all, the project idea's title is stolen from a bug report in Bugzilla: "Bug 176238 – Make Mozilla not suck as a newsreader", a very old meta bug referencing several other bugs which make using (Mozilla back then and SeaMonkey and Thunderbird even now) as a newsreader not the experience folks are accustomed to from the Mozilla browsers or other newsreaders.
While most of the "major suckage" is gone by now, there are still some advanced features missing, even when compared to our Netscape 4.x ancestors. Clickable references or reordering the folder pane are requested very frequently.
Markus has a very good Mozilla background to get things running in this area, since he's the author of the MessageID Finder extension (almost a must for serious newsreading with Mozilla applications), so I think we will see quite some progress.


[KaiRo] 2. How much do you think Mozilla projects profit from each other's GSoC projects? That is, how can/will Thunderbird and Firefox projects help SeaMonkey, and the other way round?

[Karsten] The ties between the SeaMonkey MailNews and Thunderbird backends are rather strong, so here's a very good chance that any SoC project for one will help the other, too. (Roaming support for TB may be an exception, since we already have that in SeaMonkey.) In general, projects touching the common codebase are usually good for any project, eg. JPEG2000 support. Some of the Mozilla projects are rather application-specific and thus non-sharable, like the Firefox micosummary stuff.

[KaiRo] 3. What other improvements of the Mail and Newsgroups component of SeaMonkey are planned for the next few months or would badly need help, perhaps from new contributors?

[Karsten] Lots. ;-)
We still have lots of "parity bugs" asking for features known in Netscape 4.x or other mail and news clients, like score files or "real" message templates. Thunderbird has some features we would like see in SM as well, like back/forward in the mail reading history or folder views. There are some structural backend fixes pending, like unified header usage in view/forwarding/printing or blackboxing the mail storage.
Sometimes I feel its just a gift that everything is running so well even without that...


And then, let's see what Markus Hossner, the student working on this project, has to tell us:


[KaiRo] 1. Please introduce yourself: Who is this guy who wants to improve SeaMonkey's news client, what involvement did you previously have with the Mozilla and SeaMonkey projects/communities?

[Markus] I'm a German Student of Computer Science at the University of Karlsruhe (TH). For 3 years now I'm maintaining an addon for the Mail/News client of SeaMonkey and Thunderbird: The MessageID-Finder. An addon to deal with messageids and references.

[KaiRo] 2. What are your concrete goals you would like to achieve with this GSoC project?

[Markus] The project's slogan is: "Make SeaMonkey Not Suck As A News Reader". The project aims to make SeaMonkey a much more useful news reader by adding needed features. Features like clickable references, clickable headers in general, a more usable subscribe dialog, the ability to reorder newsgroups in the folder pane, the ability to quote only selected text, to offer a better offline support for news reading and a correct implementation of the nntp/news protocols.

[KaiRo] 3. Could you imagine to continue to work on improvements for SeaMonkey after this summer project?

[Markus] For sure ;-)

We all hope that SeaMonkey will "suck less" through this project, as will probably even Thunderbird. On the other hand, I hope SeaMonkey can gain from other projects as well, maybe even last year's Firefox GSoC project for a better Page Info window.
It's always good to see that a company like Google is giving back something to the open source communities, which provide a collection of good software which is probably also used intensely inside Google itself.

Von KaiRo, um 02:31 | Tags: Google, GSoC, Mozilla, SeaMonkey | keine Kommentare | TrackBack: 0

7. April 2007

A Localizer's Nightmare: Security Backend Error Messages

Today I decided to do some work on the German L10n of nsserrors.properties, which hit the trunk 3 weeks ago and nobody in the German team has dared to localize so far (we have a version in l10n/de trunk that only carries the original English strings).
And there are good reasons why it hasn't been touched for a longer time, as the hardest strings to localize correctly probably fall into three categories: backend messages, technical error messages and security strings. And this files consists of 262 new security backend error messages. Yay! :(
This means that highly technical terms, often from security areas, like "Certificate Request handshake message" get mixed with hard-to-localize phrases like "experience an error" and untranslatable names like "PKCS#11 token" and/or cryptic (pun intended) abbreviations like OCSP,ASN.1,CA,CKL,SSL,MAC-SHA1,MD5, etc.
Even messages that look innocent like "SSL received a record with bad block padding." can be very challenging for localizers. You might not want to translate that as "SSL hat einen Rekord mit schlechter Klotz-Polsterung empfangen." (thanks to Martin for that suggestion ;-) ) or not even someone who actually knows the technology would understand it. Even my current try of "SSL hat einen Eintrag mit falscher Block-Auffüllung erhalten." may not be understood by novices (just like the original) but I hope it will give a clue to most people who read it.
"Unable to digitally sign data required to verify your certificate." is almost a welcome and easy to translate message within a pile of such strings. I hope to find more of those while continuing to dig through that file...

Von KaiRo, um 16:07 | Tags: L10n, Mozilla | 7 Kommentare | TrackBack: 0

5. April 2007

suiterunner getting (mostly) usable

With bug 350221 resolved on the mozilla.org "trunk", i.e. the main at-the-edge-of-development source copy of the source code, a major step has been achieved in getting suiterunner into a usable state: back/forward history now work, tabs on the browser look how they are supposed to look, new and close tab buttons are what they are supposed to be (minus some problems on Mac which we are investigating).
This means we are getting much nearer to actually switch trunk nightlies over to this toolkit-based SeaMonkey variant which will replace the old xpfe-based version for our Gecko-1.9-based SeaMonkey release. This will be a really major step forward for the suite, bringing it from its dusty old heritage to a more modern system, enabling decent extension management and a lot of other things.
But we are not there yet: The download manager doesn't work (bug 348386) and File > New does not launch a new (second) navigator window (bug 338461) at the moment. Those issues are probably still blocking day-to-day use of this experimental configuration (which can only be tested if you build it yourself or through some very experimental Windows and Mac tinderbox builds). And then, before we really want to switch to using that toolkit-based suite as our default, we want to finish up the profile migrator (bug 329744) far enough that profiles from current SeaMonkey and Mozilla suite can be imported to a "suiterunner" SeaMonkey version. The old installer is broken as well, we are working on a new, NSIS-based installer (bug 351917) as a replacement on Windows and hope to finish it at around the time we're switching to suiterunner on trunk.
Those are the main issues we have for getting that new version in place, lots of smaller ones are known as well (see the dependency list of the main suiterunner bug report). If you want to test those builds, feel free to do so, but read suiterunner wiki page first.

With the current state, we're significantly nearing that new generation of the SeaMonkey suite - and we're continuing our work to really reach the goal of a suite based on the "new toolkit", eventually even XULRunner.
As always, we can use any development help we can get, stop by in our dev newsgroup or in IRC (as noted on the SeaMonkey Community page) if you want to help us.

Von KaiRo, um 18:54 | Tags: Mozilla, SeaMonkey | keine Kommentare | TrackBack: 0

1. April 2007

SeaMonkey and the Kitchen Sink

Today's a special day, as you might know. Once again it's time for April Fools. In recent weeks, the suggestion that the SeaMonkey project should take part in that once again and fool people with "the kitchen sink" has come up - so I feel I should take the chance and blog about my point of view on that topic today. ;-)

If you're a native English speaker, you probably know the idiom "everything but the kitchen sink" well enough. For all others: This seems to be derived from the habit of some people (intentionally leaving out alleged gender connections) to seemingly take the whole house with them when leaving for vacation or even only a picnic. It often looks like they pack everything into the suitcases they can find and what they are able to carry. Everything but the kitchen sink, that is. Even if a kitchen sink might be useful in some cases on vacation or at a picnic, it seems to be a too intricate task to unmount it and pack it up.
I guess we all know that habit from someone we know. As a consequence, many people have bad connotations with that phrase, giving it a meaning of "more than anyone will ever realistically need", others seem to understand it as "just all you need".

And somehow, there are people who connect this phrase with Netscape Communicator, the Mozilla suite and now SeaMonkey. This actually goes as far as thinking that "everything but the kitchen sink" is not enough and filing a "Mozilla does not have a kitchen sink" bug on Bugzilla, which led to an XHML+JavaScript kitchen sink implementation (the flow can even be turned off and on by clicking the handle area), which was proposed to be shipped as an "about:kichensink" easter egg (and is available as a Firefox extension in AMO's sandbox [not publicly at the moment]). Since we founded the SeaMonkey project, the request to including this comes up every once in a while. When the idea came up about doing an April Fools joke that "SeaMonkey is now including the kitchen sink", I immediately feared that those requests will come up once again.

Now why am I opposed to including this "about:kitchensink" easter egg in SeaMonkey, you might wonder.
Granted, this is a very good joke, actually. It's even a nice example of simple, ASCII-art-based "DHTML" - despite its high demand of CPU power. It would probably show out humor and geekiness. But then, we already show that with long-lived easter eggs we inherited from our ancestors - as every decent browser with a Mozilla heritage, we feature the current "Book of Mozilla" verse in "about:mozilla" (yes, the 7:15 one about the "reborn beast"), and we even just recently fixed the fishcam easter egg to point to a somewhat working URL (no live images working there though, those can only be found in an AOL blog). So, what I'm saying is: Don't waste time on new easter eggs, rather help on interesting new features, beautification, fixing nasty issues, or enabling the future.

But it adding nothing of real worth to our software isn't even the real reason against this easter egg. My real reason is more that about:kitchensink would prove humor, geekiness, and that "everything but the kitchen sink" is our motto/guideline. So, while humor is good, it's not the argument to use our software over other alternatives. And geekiness, like humor, is nothing we lack as is, but it's a reason for potential users to be scared away - esp. those in business environments. They want a professional tool for internet access and communication, not a geeky joke. And then, I don't even think that SeaMonkey is or should offer "everything but the kitchen sink". For one thing, I don't want the connotation "more than anyone will ever realistically need", a.k.a. "a pile of useless junk on top of some nice, useful stuff". And then, I don't even think our software is "just all you need". Every user of SeaMonkey uses a pile of other software next to it, probably including a file manager, an image viewer, office programs, instant messaging apps, perhaps peer-to-peer, FTP, remote shell/desktop software, and whatever else. I think it would be neither useful nor reasonable for SeaMonkey to include all that functionality. Sure, our product is a suite. An Internet suite, to be exact. It includes and integrates the main apps advanced users, web developers, and maybe business users need in their Internet life, and it should not try to be even more than that. This mission is already enough, we actually have enough room for improvement even in that area: We currently lack calendaring, we lack good FTP support (or SFTP, for that matter), we lack RSS/Atom feed support, to name some areas. And we even need to improve in what we already include: We should finally start to not suck as a newsreader, we should get decent extension management, and even better rendering and default icons.

Lots of work is out there to be done, our suitcases are probably a bit bigger than other projects', we need to repack a bit and pack some not yet included items, but we don't nearly have the space for the metaphorical kitchen sink.

(And no, it won't even have a place in our to-be-selected new slogan(s).)

Von KaiRo, um 09:00 | Tags: April, easter egg, Mozilla, SeaMonkey | keine Kommentare | TrackBack: 0

Why I'm eager for L20n

Mozilla 2 is to be started soon, and as you might have read, there are thoughts of creating a new localization infrastructure for that future generation of Mozilla software. Currently this is named L20n, driven by MoCo's L10n lead Axel Hecht, and though it's in a draft stage, I can't await to use this technology.

When Axel talked about L20n at FOSDEM, I was hoping people would tell us how they love it - unfortunately time for the talk was over before he could get to the interesting part - examples. Discussions there in Brussels were pretty interesting though, as I can't remember objections to the need of this or the general approach, only some criticism of the lol file format semantics. Oh, yes, it looks like localizing will be much fun in the future, having L10n info in ".lol" (Localizable Object List) files :)
I actually think that the proposed syntax of those file is good, as it feel familiar to most developers but is different enough from other languages to realize you're not in JS, XML but in a lol file.

The good thing is that L20n is a format that is growing out of knowledge about problems in current L10n approaches, both of the Mozilla approach(es) and the gettext/PO approach. People who have worked with both on a developer and localizer side know they all have their problems. While Mozilla lacks language fallbacks and plural handling, gettext/PO lacks good VCS compatibility and needs long original strings in the source code, while both lack flexible support for declension and other grammatical specialities. L20n is an effort to learn from the strengths and weaknesses of those, and esp. from the problem of their users, to create an L10n toolkit that satisfies developers, localizers and users the same - also across programming language boundaries. Axel has contacted other L10n communities than the Mozilla one to get feedback and, from what I heard, has received positive feedback and wishes for collaboration.

As an active SeaMonkey localizer, I heard about this new approach soon, bing in the Mozilla L10n newsgroup, I was more or less there when it was born (or the ideas for it were gathered) and actively took part in those discussions.
I'm more eager to working with L20n from a developer's perspective than from a localizer's perspective though: While "my" language (German) doesn't differ from English that much that I regularly run into the big problem of current approaches, L20n could simplify the code I write as a developer a lot:

Let's take this "simple" snippet of PHP code and German .po file to print out a number of comments (simplified source of this blog):

blog.php:
if ($postCount < 1) { print(gettext('no comments')); }
elseif ($postCount == 1) { print(sprintf(gettext('%s comment'), $postCount)); }
else { print(sprintf(gettext('%s comments'), $postCount)); }

blog.po:
msgid "no comments"
msgstr "keine Kommentare"

#, php-format
msgid "%s comment"
msgstr "%s Kommentar"

#, php-format
msgid "%s comments"
msgstr "%s Kommentare"

Now let's look at how it might look (in principle, I could be using wrong function names here) with L20n:

blog.php:
print($l20n_context->getValue('comm_cnt', array('num'=>$postCount)));

blog.lol:
<plural0: (n) -> {n == 0 ? 0 : (n == 1 ? 1 : 2 ) }>
<comm_cnt[plural0(num)]: ["keine Kommentare", "${num}i Kommentar", "${num}i Kommentare"]>

Note that I'm not sure that $postCount would be passed as an array like this, but it would probably be similar to that - and I hope I got the "plural0" macro right.
There are multiple good things about that approach: First, the actual code is much shorter and easier to read (even more so if I don't have short strings but long sentences there). Second, there is no "original string" in the source, just an ID ("comm_cnt"), it actually doesn't matter which language I'm doing first, while writing the code, as L20n doesn't care. Third, while writing the code, I could just define the string as <comm_cnt[num]: "${n}i Kommentare"> to make things simple, and I could refine it to better values later (when the code is stable). Fourth, if some localizer comes along and tells me he need 5 different plural forms depending on the numbers, he can just do that in the lol file, I as a developer don't need to know or care. Fifth, the localization file is shorter. Sixth, I as a developer am actually writing a first localization along with the code, which a localizer can use as an example for his work. And there are probably more.
(And yes, I know, gettext probably knows plurals in some way, so those might be a bad example. It's one if the easiest to grasp for a developer who doesn't speak Finnish, Polish or other grammatically more complicated languages though.)

It would be so nice to simplify code and get all those long strings out of the source (which often require horizontal scrolling here) - and that's only speaking as a PHP dev doing two languages that don't need declensions or other specialties. It must be even more compelling for a localizer of some language like that who can finally give his users a linguistically correct user experience.

Von KaiRo, um 00:58 | Tags: L10n, L20n, Mozilla | 6 Kommentare | TrackBack: 0

Feeds: RSS/Atom