Categories
main mozilla tech

My vision of the future of Mozilla localization environment (part1)

After two parts of my vision of local communities, I’d like to make a sudden shift to write a bit about technical aspects of localization. The reason for that is trivial. The third, and last, part of the social story is the most complex one and requires a lot of thinking to put it right.

In the meantime, I work on several aspects of our l10n environment and I’d like to share with you some of the experiences and hopes around it.

Changes, changes

What I wrote in the social vision, part 1 about how the landscape of Mozilla changes and gets more complex, stands true from localization perspective and requires us to adapt in a similar fashion as it requires local communities.

There are three major shifts that I observe, that makes our approach from the past not sufficient.

  1. User Interfaces become more sophisticated than ever
  2. Product forms are becaming more diversified and new forms of mashups appear that blend web data, UI and content
  3. Different products have different “refresh cycles” in which different amount of content/UI is being replaced

Historically, we used DTD and properties for most of our products. The biggest issue with DTD/properties is that those two formats were never meant to be used for localization. We adapted them, exploitet and extended to match some of our needs, but their limitations are pretty obvious.

In respose to those changes, we spent significant amount of time analyzing and rethinking l10n formats to address the needs of Mozilla today and we came up with three distinct forms of data that requires localization and three technologies that we want to use.

L20n

Our major products like Firefox, Thunderbird, Seamonkey or Firefox Mobile, are becoming more sophisticated. We want to show as little UI as possible, each pixel is sacred. If we decide to take that screen piece from the user, we want to use it to maximum. Small buttons, toolbars should be denser – should present and offer more power, be intuitive and allow user to keep full control over the situation.

That exposes a major challenge to localization. Each message must be precise, clear and natural to the user to minimize his confusion. Strings are becoming more complex, with more data elements influencing them. It’s becoming less common to have plain sentences that are static. It’s becoming more common that a string will show in a tooltip, will have little screen (Mobile) and will depend on the state of other elements(number of open tabs, time, gender of the user).

DTD/properties are absolutely not ready to meet those requirements and the more hacks we implement the harder it’ll be to maintain the product and its localizations. Unfortunately other technologies that we considered, like gettext, XLIFF or QT’s TS file format are sharing most of the limitations and are being actively exploited themselves for years now (like gettext’s msgctxt).

Knowing that, we started thinking about how would localization format/technology look like if we can start it today. From the scratch. Knowing what we know. With experience that we have.

We knew that we would like to solve once and for all the problem with astonishing diversity of languages, linguistic rules, forms, variables. We knew we’d like to build a powerful tool set that would allow localizers to maintain their localizations easier, and localize with more context information (like, where the string will be used) than ever. We knew that we want to simplify the cooperation between developers and localizers. And we knew we would love to make it easy to use for everyone.

Axel Hecht came up with a concept of L20n. A format that shifts several paradigms of software localization by enabling algorithmic power outside of the source code. He’s motto is “Make easy things easy, and complex things possible” and that’s exactly what L20n does.

It doesn’t make sense to try to summarize L20n here, I’ll dig deeper in a separate blog post in this series, but what’s important for the sake of this one, is that L20n is supposed to be a new beginning, different than previous generations of localization formats, differently defining the contract between localizer and developer called “an entity”.

It targets software UI elements, should work in any environment (yes, Python, PHP, Perl too) and allow for building natural sentences with full power of each language without leaking this complexity to other locales or developers themselves. I know, sounds bold, but we’re talking about Pike’s idea, right?

Common Pool

While our major products require more complexity, we’re also getting more new products that appear in Mozilla, and very often they require little UI, because they are meant to be non-interruptive. Their localization entities are plain and simple, short and usually have single definition and translation. The land of extensions is the most prominent example of such approach, but more and more of our products have such needs.

Think of an “OK” and “Cancel” button. In 98% of cases, their translations are the same, no matter where they are used. In 98% of cases, their translations are the same among all products and platforms. On top of that there are three exceptions.

First, sometimes the platform uses different translation of the word. Like MacOS may have different translation of “Cancel” than Windows. It’s very easy, systematic difference shared among all products. It does not make any sense to expose this complexity to each localization case and require preparing each separately for this exception.

Second, sometimes an application is specific enough to use a very specific translation of a given word. Maybe it is a medical application? Low level development tool or for lawyers only? In that case, once again, the difference is easy to catch and there’s a very clear layer on which we should make the switch. Exposing it lower in a stack, for each entity use, does not make sense.

Third, it is possible that a very single use of an entity may require different translation for a given language. That’s an extremely rare case, but legitimate. Once again, it doesn’t make sense to leak this complexity onto others.

Common Pool is addressing exactly this type of localizations. Simple, repetitive entities that are shared among many products. In order to address the exceptions, we’re adding a system of overlays which allow a localizer to specify separate translation on one of the given three levels (possibly more).

L20n and Common Pool are complementing each other and we’d like to make sure that they can be used together depending on the potential complexity of the entity.

Rich Content Localization

The third type is very different from the two above. Mozilla today produces a lot of content that goes way beyond product UI and localization formats are terrible when dealing with such rich content –  sentences, paragraphs, pages of text mixed with some headers and footers that fill all of our websites.

This content is also diversified, SUMO or MDC articles may be translated into a significantly different layout and their source versions are often updated with minor changes that should not invalidate the whole content. On the other hand small event oriented websites like Five Years of Firefox or Browser Choice have different update patterns than project pages like Test Pilot or Drumbeat.

In that case, trying to build this social contract between developers and localizers by wrapping some piece of text into uniquely identifiable objects called entities and using some way to sign them and match translation to source like we do with product UI doesn’t make sense. Localizers need great flexibility, some changes should be populated to localizations automatically, only some should invalidate them.

For this last case, we need very different tools, that are specific for document/web content localization and if you ever tried Verbatim or direct source HTML localization you probably noticed how far it is from an optimal solution.

Is that all?

No. I don’t think so. But those are the three that we identified and we believe we have ideas on how to address them using modern technologies. If you see flaws in this logic, make sure to share your thoughts.

Why I’m writing about this?

Well, I’m lucky enough to be part of L10n-Drivers team in Mozilla, and I happen to be involved in different ways in experiments and projects that are going to address each of those three concepts. It’s exciting to be in a position that allows me to work on that, but I know that we, l10n-drivers, will not be able to make it on our own.

We will need help from the whole Mozilla project. We will need support from people who produce content, create interfaces and who of course from those who localize, from all of you.

This will be a long process, but it gives us a chance to bring localization to the next level and for the first time ever, make computer user interfaces look natural.

In each of the following blog posts I’ll be focusing on one of the above types of localizations and will present you projects that aim at this goal.

Categories
main mozilla tech

My vision of the future of Mozilla local communities (part 2)

In my previous blog post, I summarized the transition through which Mozilla project went and how it applies on how local Mozilla communities. I explicitly mentioned enormous growth of Mozilla ecosystem, diversification of products & projects, and differentiation of project development patterns which results in different requirements for marketing, QA, support, localization etc.

Now, I’d like to expand on how I believe our local communities now operate.

On Local Community Workload

from: http://www.edc.ncl.ac.uk/highlight/rhnovember2006g01.php/

The result of this growth of Mozilla ecosystem is a rise in a workload that our local communities experience.  With this work comes the challenge to communicate to locales the richness of Mozilla on a local ground.  It seems that localizer workload is mounting high and local communities are trying to find ways to adapt, because:

First, it is not scalable to manage all Mozilla localizations by the team of a size that fit the needs 5 years ago.

Second, localizers are not the only type of people that exist in a local community. There are various tasks which require different skills and different people may find different sorts of motivation to work on different aspects of Mozilla.

It’s pretty easy to get out of balance and try to take more than you can handle when there’s so much going on and you feel in charge of your locale. Some communities are more successful finding their way, some are struggling.

I believe we have to adjust our approach to this new reality.

My opinion on the role of l10n-drivers

Traditionally, a lot of the local engagement work has fallen on the plate of localizers.  The L10n-drivers team then becomes very important in helping local communities manage their workload.  Having participated as an l10n-driver for over one year now, I see how the team became crucial in supporting communities in several ways. It:

  • It makes sure that when we call out for localizations, what you localize will be used for a long time to improve maximum work/value balance.
  • Builds tools that reduce the entry barrier and time spent by localizers on localization and local management tasks around
  • Provides information on projects, their roadmaps, goals and results (metrics) to help localizers make informative decisions on what to localize and when.
  • Supports localizers in solving localization blockers like hardcoded strings, or untranslatable strings to make the results of their work worth the time their spent and that if they want, they can fully localize the product and make it look awesome and natural in their language. (read: one untranslatable string ruins hard work and is a great way to demotivate anyone)
  • Helps adjust roadmaps of projects to minimize the overlap between relases to spread the workload in time.

But, the role of local communities has expanded far beyond just localization.  Our team’s work will not be enough and I think that we have to revise assumptions we all make about what is localization process, and what are our goals.

My opinion of the changing role of Localizers

Localization of Mozilla today is not a single, homogeneous task like it used to be. There are different tasks to take and different people who want to contribute. Some tasks require short spikes of attention once per year (around release), other require bi-weekly contribution, other have no release schedules and just take any contribution. It all requires different amount of energy, focus, attention and time.

And the core goal of localization – to bring the product closer to your local ground – is suddenly becoming a complex toolset. With so many projects to choose from, local communities should stop thinking about them as a single bundle. Instead we should all start recognizing that this diversification allows us to pick what we need.
You, local community members, are the best positioned to make the right decision on which projects are needed in your region. We cannot assume that each region needs the same amount of Mozilla ingredients.

By that I mean not only ability to pick up projects to localize for your region, but also deciding, together with the project leaders, how much of the project should be translated, and what kind of adjustments are required for your culture. It’s extremely important to understand, that sometimes you cannot localize everything, although we all know how much satisfaction we have from “collecting it all“. Sometimes “top10” articles gives better result than “try to figure out how to translate it all“. And sometimes you need to go beyond translation. The “top10” SUMO articles in English may be different than “top10” in your locale, and maybe some aspects of marketing campaign could resonate better in your country if you adjust it to your culture and reality.

Armed with this power, local communities can pick the projects that best resonate with what is needed to promote Mozilla vision in their region and put more effort in those. It’s a great power, and a great responsibility, and we have to trust local communities that they know better than any centralized decision making system can ever know, what is important. And we, owners and peers of the projects have to help local communities make the right choices, and fine tune the ingredients they picked. You, local communities, are in charge here.

Local community

With so many tasks, evangelism, marketing, PR, QA, development, support, localization, that are represented in Mozilla, it may be very challenging to fulfill them all by localization team. Many local communities are working on various aspects of Mozilla project, and what’s common to them, is their regional identity and proximity which allows them to support one another, share resources and find new contributors. I believe it’s crucial to preserve the local identity and that there is a great value for each contributor from around the world to peer with other contributors working on other aspects of Mozilla in their region, but localization is not the only task out there.

And more than ever, we need local communities to cooperate with Mozilla project leaders to find new contributors and grow the communities. Generating new project that attract new contributors is one of the key aspects of a healthy, sustainable ecosystem and it’s true for both, Mozilla project as a whole, and for Mozilla local communities.

In the last part, I’ll try to summarize the state change and give you some ideas to consider.

Categories
main mozilla tech

My vision of the future of Mozilla local communities (part 1)

I know, bold title.

Since I decided to start a blogging week, I see no reason not to start with a major topic I have been working on for a few months now.
  The future of local communities in Mozilla is made of two parts – Social and Technical.

I’ll start with the former, and it’s going to be a long one – you know me.

Notice: This is the way *I* see things.  It is not representative of the l10n-drivers, the SUMO team, the QA team, or the marketing team.

But, it represents the progress of thinking about local communities we’re making right now. It is different from what you saw some time ago, and it may change in the future, it does not represent any kind of consensus, and my peers may disagree with me on some of my points.

A little bit of history

Historically, and by that I mean years 2000-2004, when first strong local communities were constituted, it was centered all around localization.  The localization ecosystem had several characteristics.

  • finite number of projects
  • core of any local community were localizers
  • each product had limited number of strings
  • each product had a release cycle not shorter than 1 year
  • we had limited awareness of localization importance among Mozillaians

Another specific thing about that time was that Mozilla as a community/project started growing faster than Mozilla as an organization.  By this, I mean that people started participating in Mozilla all over the world, sometimes faster than the organization could predict, know about, understand and harness.  It was very independent.  What happened in Poland, was very different from what happened in Italy or U.S. or wherever.  At the days when Mozilla was formally organizing, few people at the “central project” could predict what was happening across the world.  At times, it was very frustrating to them…things were happening so fast, beyond the organization’s control.

As a motivated community, the Internet allowed us all to download the early Mozilla products, and gave us something to gather around.  We did and it was amazing.  People started fan sites, discussion forums, and “news-zines”,  The most determined ones started seeking ways to bring Mozilla to their country.  The most natural way to participate was to localize the product, and by localize I mean various actions that make the product more suited for the local market – translating, changing defaults and adding new features or modifying existing ones.

All this work was usually targeted in two directions – toward local markets, where those early community leaders were building local branches of Mozilla, and toward the Mozilla project to fit the concept of local communities, and the fundamental goal of internationalization of a project into the core of our project culture.

Thanks to that work in those days, today we can say that Mozilla is a global project and we recognize localizability as one of the aspects of Mozilla approach to projects.

But since those days, many things has changed. What was good by that time, may not be enough today.

Growth and Variety

Fast-forward to today:  Mozilla today as a meta-project is producing much richer set of projects/products/technologies than we ever did.

We create many websites of various sizes.  We have blends of websites and extensions (like TestPilot).  We have webtools like Bugzilla, addons.mozilla.org.  We have products likeFirefox, Thunderbird, and Seamonkey. We have a mobile product with higher screen space limits.  We have experiments that are introducing new level of complexity for localization like Ubiquity or Raindrop.  We have more content than ever.

The point is this: local communities represent Mozilla through a diverse set of mature products, early prototypes, innovative experiements, one-time marketing initiatives, and documents like our Manifesto that will live forever.  This means that the work flow has changed dramatically since the early days.  Different projects with different or changing frequencis are becoming the standard for communities to absorb in a new differentiated and highly competitive marketplace.  And, our communities need to evolve to respond to this.

Each product has different characteristics and the local delivery through l10n and marketing means a very different type of commitment.  It now requires different amounts of time and energy, different types of motivation, and different resources.

Additionally, we’re also more diversified in the quest to fulfill our mission. We have regions where modern web browsers constitute vast majority of the market share, where governments, users and media understand the importance of browser choice or privacy and Internet is a place where innovation happens. But, we also have places where it is not the case. Where incumbent browsers are still the majority, where the web will not move forward in the same way it did in the past, where the latest technologies cannot be used, where privacy, and openness sounds artificial.

Recognizing this shift is important factor to allow us to adjust to the new reality where local communities have to expand beyond just localization.  They must become local Mozilla representatives who are experienced in evangelism, marketing, localization, software development, and all other aspects of Mozilla.  We need to get more local and grow beyond the responsibilities of our local communities in the past.

In the next part, I’ll cover some ideas for the future…

Categories
main mozilla tech

In MtV – blogging week

I delayed it way too long and now feel that I need to catch up with a lot of stuff.

So, since I just got to MtV where I’ll spend some time now, I decided to organize personal blogging week where each day I’ll blog about piece of what I’m working on to hopefully catch up with the projects I failed to blog about lately 🙂

On the plate we have, jetpack stuff, various dimensions of l20n, pontoon, survey project, and, for the weekend, some non-mozilla projects as well 🙂

If you’re in bay area and want to share a drink, coffee or socialize in any other way, let me know. And if you’re at 300 Castro, I claimed ownership over a desk next to Seth and Asa. It’s a bit busy here, but I like networking :]

Categories
main mozilla tech

We have an important story to tell!

Hey @flod (and Giacomo!)! You touched interesting topics in your latest post, and when I started crafting my comment it got so lengthy, I decided to use my platform to deliver it. Blog-to-blog discussion style! 🙂

I’ll try to respond, but please, bare in mind, that that’s my personal opinion, nothing official.

You started by pointing out a set of efforts that you either find of questionable value or not “leader” style. Things like Fx UI direction, multiprocessing, Jetpack or Personas.

In particular, you focused on two dimensions:

  1. Are those efforts unique? Innovative? Or do we chase others?
  2. Are those efforts valuable elements that fit into Mozilla Manifesto vision

You question both, and I believe you have all the rights on Earth to do so. We may disagree, but we should talk about this, and I find the fact that you express your concerns in public a good sign of the health of our ecosystem.

So, down to some points you raised. I humbly disagree with your notion of “cloning Chrome”. I believe it is a cognitive impairment that we so easily (we – I mean, most Mozillians I know) buy – this concept of “fresh Chrome”. Chrome is great! But it is not “innovative” in a sense many people talk about it. We just so easily take for granted a lot of inventions we brought to the world, and Chrome, yes, they just looked at Firefox and learned from us. That is just awesome, but that’s what they did!

Once again, Google is looking at an open source project and learns from them how to build a web browser. No, wait! Google, Microsoft and Apple are doing it. Now, how awesome it is? Think of all those things that Firefox brought to the browser landscape since its 1.0 version and notice how many of those innovations are now in IE8, Safari and Chrome.

They also have brilliant developers and *just* bringing all the values of Firefox would be a waste of time, so they, among other things, got a free ride of fixing things we struggled with. And now it is our time to fix those, and there’s nothing unhealthy in this. What would be, in my opinion, unhealthy, is to pretend we don’t see them, and defending our approach as “the right one” (remember Bill Gates first comments on Firefox 1.0?).

Ability to go multi-process is important. Majority of perceived performance improvements that Chrome has (and Fx 3.5/3.6 brought) come from two things: tricking user’s eyes – show him UI 200 ms before its usable – and putting expensive elements off the main thread. (I’m sure that performance team will be able to explain that better). The fact that you have to restart your browser when you install extension is a UX bug. No user expects it or wants it. It does not bring any value and the only reason we have it is a technical limitation.

For years we raised the bar of how the web browser should work. We set the standards in many areas. Opera set some, Safari set some, IE set some as well. Now Chrome set some standards and we just have to match them, possibly using extelligence of our brilliant dev team to push it further and innovate (Jetpack team is far from just fixing issues, they aim for bringing extensions to a new level, and they should be aiming for nothing less than that!). No reason to be worried, we make a great web browser better and it would be unwise to ask our users to trade those nice features for ability to use browser with Mozilla values. Why not give them the best of both?

Personas is an interesting project. I remember my initial feelings when I encountered Personas were much of “eee, nothing interesting”. I considered it to be a minor feature. I recognized that I’m not a target audience (neither you are, I think). But on the day of Fx 3.6 launch I got my lesson when I received amazing amount of feedback from my non-geek friends precisely about Personas and how this project resonated with them. It was amazing for me how emotional people got about “missing Real Madrid Persona, but you have Barcelona one!” or “the pink one is soooo cute” or “my browser is so much more personal now, when my you-name-it favorite actor/actress or symbol of my subculture is here”. Look at the amount of Personas created by people in such a short time! It is an amazing project and only now I see how it fits into Mozilla mission and vibe.

UI on the other hand is a much more complex thing, cause it is related to personal taste and fashion (and fashion itself is, from sociologist point of view a bizarre phenomena of human culture). But imo it all boils down to a simple aspect of cyclical changes. Windows 7 brought new UI, IE8 followed. Chrome followed IE8, Opera followed IE8 or Chrome or both, we’re following W7 or IE8 or Chrome or Opera – you call it. People expect browser to match the visual style of their operating system and Windows 7 is going to be the OS of choice for the vast majority of the world which, in result, will set the UI standard for the OS and apps for quite a some time. We can like it or hate it, but that’s going to happen, and Firefox on Windows should imo fit the OS style. What we will do beyond that is the major issue, and I believe our UI team is trying to come out with the value on top of that. Basing on past experience, I’m sure they’ll do a great job and we’ll see others learning from us. That’s how it works here. Would you prefer vendors to ignore each others accomplishments or deny them?

I disagree with you on your perspective of mobile world. I, for one, wait for Fennec on Android and I know a lot of people who do. I’m excited to think of how we can fit Firefox experience into Windows Mobile 7 and I’m sure it’ll be an exciting journey. Mozilla Messaging is going to generate projects related to forms of communication and I find this topic to be extremely important, so I have no worry about sustainability of it. Our embedding story is nothing to be proud of, but maybe it was a trade-off we had to do in order to achieve what we aimed for. I share your concerns here, and I see many of the platform team people discuss what we can do in order to make it better.

I see Mozilla pretty much self-aware of many of the issues you raised and diversified internally enough to have people raising concerns internally and open enough to have a ground to talk about them – your post is a part of it.

Bottom line

But ultimately I believe your concerns would be all valid if that would be all that is happening in the Mozilla project. If the whole community would work on either Personas, or marketing or UI. But is it? Do you really feel that those elements you describe represent, as you wrote “Mozilla project as a whole“?

I see Mozilla as a meta-project that’s involved in a huge number of projects that touch amazing variety of issues, and it is very hard to nail it down to one or two and call that “representative” for the community.

No matter what you think of Personas, I don’t think you can say that this effort matches what Mozilla is doing with Drumbeat, Bespin, Raindrop or Weave. No matter if you find Jetpack valuable, I hope you did not get lured by press foretelling the end of extensions as we know them. Can you name an example of a project that generated tons of thousands of dependencies and was irresponsibly killed by Mozilla? Have we ever done something like that? Then, do you really think we will do this?

We generate amazing amount of projects of very different kinds. Globally, our community is very diversified and in different points of their journey. Some communities need more marketing, UK, Korea, Sweden? Some, like Italy, Poland, Germany, may have enough internal marketing to consider Mozilla global marketing effort focused on promoting Firefox useless for them or even “too much”. We, Mozillians who live in those countries should act as a membrane which adjusts the signal, and gives feedback to our fellow Mozillians worldwide about what we need, and what we don’t. Poland has 52% of market share, and we need things like developers community or foundation-like efforts to use the potential are trust we generated over years as a platform to bring Mozilla values further, so we work with Mitchell, Mozilla Foundation and from time to time I try to get Paul Rouget’s attention 😉 At the same time, PR and marketing wise, we work with Polish PR agency, Barbara and others to balance the amount of press we generate to avoid wasting time to convince the convinced ones. That’s just adjusting. I believe that we should do that much more often in many countries which just are ready for different aspects of Mozilla project to stimulate and energize Mozillians.

Example? Here you are. You think we focus too much on marketing sites? Well, then you focus on other aspects! I believe that the concept of “we have to localize all websites to all languages” is not sustainable anymore. We will generate more websites/webapps, and our local communities will decide which ones to promote locally. We don’t have to have everything localize everywhere and that’s a great power you have to adjust the signal to your locale. Mozilla should make sure all websites/webapps/apps are localizable and let community decide which ones to localize. Focus on the ones that are most important for you!

We have so many projects to pick from! Of different kinds, using different techniques to address different aspects of the common value set expressed in Mozilla Manifesto. They’re also diverse in a way you think about them.

Some of them are truly unique and experimental, and massive – think of our JIT approach (it took a ride from MtV to SF airport for Taras to explain to my what is so different in our JIT approach but now I’m proud of what we’re aiming for), think of L20n, think of Ubiquity,  Bespin, Raindrop or Drumbeat.

Some of them, are application of Mozilla-way onto existing concepts. Weave is not innovative because it allows sharing data. But it brought privacy to the picture. SUMO is not the very first support platform ever, but the way we approach the concept of support is innovative and “Mozillian”. Our Metrics team is not the only metrics team in the world, but they do hell a lot of innovation on making their work public and open to contribution which is pretty unique. We may not be the first project ever to have marketing team, but we approach marketing and PR in a unique and innovative way.

Some of them are just a catch-up game and that’s also not bad. We have 350 million users, if someone brought a good idea to the world of web browsers and we can just make sure that 350 million Internet users may use Internet safer, easier and better then I find it pretty important thing to do and I definitely expect such actions from other vendors. (think: partial upgrades)

Ultimately, many of them are a mix of the ones above and as long as we are able to generate new projects that resonate with what people find important on the Internet, I think Mozilla makes an impact and has a bright future that we, including you and me, have to shape.

Categories
main mozilla tech

The new era of software localization is approaching

Those of you who follow the localization tales of Mozilla project know the mythical “L20n” concept introduced by Axel Hecht over two years ago.

Since then, we spent zillion hours thinking about this concept and maturing it. Every time I was working on any project – be it Verbatim, Firefox, Getpersonas, AMO, Pontoon or Jetpack L10n – I was telling myself how much better it could be, had we have L20n in place. Easier for localizers, easier for developers, easier to maintain. Did I tell you it’s faster as well?

Then, last summer, Jeremy Hiatt joined us for his summer internship and spent 3 months working with Axel and me on pushing some of the implementation concepts forward.

With the end of summer, we got again busy with upcoming Firefox 3.6 release and put L20n again in coma…

Until now.

Without getting into much detail, I can tell you that right now we’re preparing for the next, and hopefully, ultimate push toward L20n 1.0. Over the next few months you will have more than enough of blog posts and papers and demos and examples. We will be asking for feedback, presenting the syntax, experimenting with toolchain, building extensions, and slowly preparing to introduce L20n into Gecko platform and our websites.

We believe that L20n is the most crucial piece of Mozilla localization story, aligning perfectly into our core values. Mozilla is in the best position to push the localization experience to the new level, finally enabling software to speak in the natural language of the reader. Gettext is awesome, but aging technology, properties/DTD that we use in Gecko today, are limited, tens of proprietary formats (used by projects like Qt, Webkit, Apple, Nokia) just replicate the same concept. L20n shifts the paradigms of what localization is to the new level. It’s going to be big, and we hope to get a lot of people involved.

Next week I’ll start with the first demos.

p.s. those who like to read the code, may find first bits of fresh code in my hg repo. Yummy! Isn’t it? 🙂

Categories
main mozilla tech

The world stands on its head

Unrelated opening
Every one of us has those moments when you find yourself old. Even teenagers do, when their younger friends teach them how to use the latest hype du jour on the Internet. I, for one, feel profanely old today, and kind of hardly accepting the reality of the approaching “middle age” thing.

“It’s rare that you see an artist in his 30s or 40s able to really contribute something amazing.” said Steve Jobs. Thanks Steve…

But that was not supposed to be about me becoming 26. It was supposed to be about another miracle that nobody expected to ever happen. Or at least, I’m still genuinely surprised whenever I see the dream of yesterday becoming reality of today.

So, maybe for many of you it will not come as anything striking, kind of  “yea, Poland has always had good community and Firefox market share is above average”, but for me it’s an impossible coming real.


Down to the point
Ranking.pl just published another round of their browser stats for Poland. According to those, Chrome just passed 3% of market share in Poland. It is a real deal. I remember Firefox having 3% – in December 2004, month after 1.0 release, after 6 years of work, Mozilla based browser reached 3% of market share. But that’s not only that! Opera just week ago gained a point and reached 10% of market share in Poland! I remember it – May 2005 – Firefox 1.x at 10.2%.

And having that, we have also Firefox breaking 52% of market share in Poland! 52% is the high and it is clearly an outstanding result that heavily influences the way we should think about Internet in Poland. It’s an amazing award from the users to the Mozilla project and, especially, a group of people in the Aviary.pl team and those working on Mozillapl.org community forum.

In result of all of this, Internet Explorer in Poland, the one web browser that dictated, for over 10 years, how the web looks like, ten years in which the Internet has been shaping up, this web browser has now only 33.38% of market share. One third. Vox populi at its best.

We have 2/3 of users using modern web browsers, and if we add IE8 here, it gets to 3/4, 75% of users. IE6 is used by less than 9% of users and it means that, for example, just by watching the stats, companies will do better by investing in making sure their website works with Opera than checking it in IE6!

Hard to express this feeling. It’s amazing that we can see modern browsers not cannibalizing each other, but sharing the market share gains.

Wake up, revisit the web today, it’s party time!
Think of what’s possible because of that. We have the Web today that means something different for the users and web authors. They can slowly start to ignore IE6, and that is a real deal for everyone who does the web hacking. Users can utilize the powerful webtools, banks can invest in reach online banking, people are also free to choose their operating system because their online experience wont degrade because of that. People can choose out of four major web browsers that are in a healthy competition or they can choose from one of the less mainstream, but still high quality ones like K-Meleon, Camino, Seamonkey, Arora, Epiphany… Over 52% of Polish internet users can change how the websites look via extensions, and how their browser works and what they see via adblocks, flashblocks and others. They can influence their experience and by vast majority they chose their web browser by themselves, understanding what they are doing and knowing that they have a choice now.

I’m pretty sure that this is true not only for Poland, but for other countries. Hungary, where Firefox is at 52%. Latvia with Firefox at 50%,  Bulgaria, where Firefox is above 45% and just passing by IE. Ukraine where Opera has 34% and Firefox has 26%… and I’m still talking about just one region, while the rest of Europe is going through the similar process.

Five years after Firefox 1.0 has been released, we have a different web. The web which has new challenges and opportunities. We have to raise to them and I believe that the next 5 years is going to be super exciting!

Categories
main mozilla tech

Silme is getting ready for 1.0

Not today, maybe not tomorrow, but Silme library is getting ready for its prime time.

I’m currently working on Silme 0.9 which is shaping up to be a release where we packed up all the lessons we learned while working on the project for the last year and a half. It’s going to be the last release with non-frozen API before 1.0 so we have to be sure we’re happy with 0.9 before we release it.

Then, we’ll have Silme 1.0 which is a goo moment to revisit the name of the library. I know native english speakers may find it a good idea 😉

Categories
main mozilla tech

Update on Verbatim

Just a short note. After getting a very positive feedback in Prague on the Verbatim project, and fairly negative on its performance, I spent some time making it faster and snappier and got it to the point when I believe this problem is mitigated and we can push Pootle Verbatim’s incarnation to production.

So what’s going on right now?

We’re working with the IT team to get a new virtual machine with its own public vhost (you can track the progress in bug 523920). This should happen very soon and once we’re there, we’ll let you know and start using Verbatim to help you manage website localization.

Categories
main mozilla tech

MiniOpenWebCamp in Prague :)

As a part of the Mozilla DevDay in Prague this Friday we will hold a Mini Open Web Camp at the afternoon.

Drumbeat img by Mark Surman

The idea is to use the energy of DevDay participants to get their feedback on the major issues we’re currently addressing with Mozilla project.

We have a room booked, and we hope to attract all algorithmically impaired people (the others will probably go to Mozilla Labs Hack Session) to join us for a two hour brainstorm.

The formula may change, but currently we’re planning to set a list of topics and go over them with Mark Surman (ED in Mozilla Foundation) and Tristan Nitot (President of Mozilla Europe) igniting each of them by having a short conversation in front of the public. At some point, we’re turning it into a round table and invite participants to share their views and address the concerns.

The meeting will probably be small enough to gain an atmosphere of teamwork and I hope it’ll be a great journey over the current challenges of the Internet and an opportunity to make an impact on how those might be solved!

Please, do not hesitate to register, and join us there 🙂