Staś Małolepszy Localizing Mozilla

Flickr View All » P1040064P1040063P1040061P1040060P1040055P1040048P1040059P1040057P1040052

Search engines in Fennec — Guidelines update

fennec_logoAfter getting some feedback on my previous post about search engines in Fennec, I made slight modifications to the suggested guidelines. The main difference is the inclusion of a social search category. The social aspect is a powerful and appealing part of the mobile context (see Madhava’s Mobile User is Mobile presentation) and we are excited to experiment with this concept in the initial release by adding social search to the interface.

Here is the updated version of the search guidelines for Fennec:

5 standard search engines:

You should choose only 1 search engine in each of the following categories.

  • Global general search
    • ‘Regular’ global general search, much like in desktop Firefox.
  • Reference search
    • Almost all of the time, this will be Wikipedia.
  • E-commerce search
    • Both to shop on-line and to consult product information.
    • Store preferred over auctions.
  • Local search
    • I.e., “around me” search; e.g. “find the nearest ATM”.
    • Only if available in the region.
  • Social search
    • I.e., microblogging platforms/feeds, social networks (no invite-only sites).
    • Only if relevant in the region.

1 extra search engine:

You can choose to use it if no e-commerce/local/social search is available.

  • Specific interest search
    • Something specific to the region, reflecting the local way of using the Web.
    • Can be from different categories: e.g. reference (a dictionary or a word reference recommended), entertainment (imdb, youtube, music search), e-commerce (price comparison), general search provider very popular in the region, etc.

The maximum number of search engine plug-ins is 5. Each search engine should be chosen from a different category, as listed above. In rare and well justified cases, we might go for 6 plug-ins total—the sixth one would be then an engine from the additional specific interest category. You can add a specific interest search engine also if there is no e-commerce, local or social search that you would recommend for mobile Firefox for your locale. Or, you can choose to go with fewer plug-ins, which is totally fine, too.

For more context and rationale behind these choices, please take a look at my previous posts on Fennec’s productization.

As always, comments are more than welcome.


How to test beta locales using Litmus. A short guide.

Testing is an important step in the process of making a new localization ready for its debut as a final locale. It’s also a great way of improving the quality of localization when the locale is still in the beta status, as well as after it’s been published as final, for example prior to the release of a new version. In this post I’ll try to quickly explain how to test a beta localization of Firefox 3.5. (You can successfully use same instructions to test 3.6+ builds, if you wish. Just be sure to choose the right test run.)

Litmus is a great tool used by our QA community for testing purposes. With a wide range of test cases grouped in test runs, it’s probably safe to say that it covers all aspects and features of Mozilla products. You can read all about Litmus over at QMO, in the Litmus tutorial.

If you want to test your localization of Firefox 3.5 using Litmus, the best place to start is the 3.5 l10n test run. It’s a great way of giving your testing a structure, which will help make sure you cover all localization. It’s also very helpful when testing periodically—by following the test run, you’re sure not to miss anything that you tested last time.

To do a Firefox 3.5 l10n test run for your locale, go to the Firefox 3.5 l10n localizer test run on Litmus and sign in. You can also created a new account if you haven’t already. Or, go to litmus.mozilla.org and choose Firefox 3.5 l10n localizer test run from the list of active test runs. (You may have to click View all available test runs at the bottom of the page first.)

Next, fill in your Build ID, Platform and Operating System, and, most importantly, your locale. Click Submit configuration. On the following page you’ll see testcases subgroups available in this test run. Right now there are no testcases in the RTL (right-to-left) subgroup, so just click Submit in order to proceed.

As of this writing, there are 23 testcases to go through, and for each of them you can indicate a result: not run, pass, fail or test unclear/brokenPlease leave a comment when a testcase fails or the instructions are unclear or outdated.

When you’re done (you don’t have to do all testcases at one time), just click Submit All Results. Congratulations, you’ve just contributed to the testing efforts to ensure best quality of your localization!

There are other test runs available on Litmus, many of them more detailed and more thorough than the l10n test run (e.g. the catch-all test runs). You’re encouraged to perform these tests to provide even more testing coverage for your locale, but generally they’re not required to move a locale out of beta.

You may also be interested in seeing how much testing has already been done for your locale. It’s simple. Just go to the Search Results page, choose your locale on the far right and hit Show Results. You may also want to specify the product, branch and platform, as well as the timespan (e.g. show only tests performed in the last 2 weeks).

If you’d like to have more information about how to use Litmus, be sure to check out the tutorial on QMO. If you have questions, don’t be shy and do ask us in #l10n or #qa.


Let’s make the l10n documentation better

Abstract: Help us improve the l10n documentation by participating in creating a complete inventory of our documentation resources at Delicious. All you need to do is to bookmark any page with useful l10n documentation content at Delicious and tag it with “for:mozdocs”. That’s all it takes!

This quarter, the l10n drivers team has set out on a mission to improve the current localization documentation experience. The ensemble of the l10n documentation consists of a rather formidable number of resources (wiki documents, articles, blog posts, graphics, etc.). With time, some of them have unfortunately become out-of-date, and one of our objectives is to update our documentation to reflect the changes that took place to our processes, practices, policies, guidelines, tools and infrastructure (like, remove references to CVS in documents about starting new localizations).

But that’s not our only objective. A big goal that I see here is to identify who’s using the l10n documentation (localizers, l10n-drivers, qa, bizdev, build, developers, webdev, marketing… and so on and so forth), and with these targets in mind, reorganize the documentation in a way that would best serve these groups in completing the task they come to the l10n documentation with.

A rough plan (still work in progress) is outlined on the wiki. The first step is to create an inventory of all documentation resources regarding l10n, across wikis, blogs and other documents. What we need is a flexible tool to create a collection of documents and describe them with tags. After some research I came to the conclusion that the best tool for this purpose is Delicious.com. It offers powerful tagging features (like bulk editing tags or creating tag bundles) and allows to export the collected bookmarks to a well-structured HTML file, which will, for example, make it easy (with some basic parsing) to create a graph of all resources that we know of (if we decide we need one). Delicious has also managed to create a thriving community of tools developers who take advantage of Delicious API to create stunning visualizations of relationships between bookmarks or tags (or both). I’m really looking forward to exploring some of the possibilities this will give us and see how we can use them in order to understand and improve our documentation.

And so I have created a Delicious account called “mozdocs“. I would like to use delicious’ tagging capabilities to create a list of documentation articles with tags describing the contents as well as the metadata, like the location of the article (I used the “at” syntax for this, i.e. @wikimo, @mdc, @blog, etc.). Just go to mozdocs’ bookmarks page on Delicious to see those tags in action. I’ll bookmark this very blog post, too, once it’s published, and tag it with “@blog, @stas, documentation.”

Delicous being a social network, it also offers a couple of neat networking features. You can add any account to your network and then post bookmarks for such defined contacts. In other words, you can add “mozdocs” to your network and then use the “for:mozdocs” tag to make the bookmark show up in mozdocs’s inbox!

If you feel like participating in this grand l10n documentation overhaul, I would like to ask you to bookmark any pages that in your opinion contain useful l10n documentation content and tag them with “for:mozdocs”. It doesn’t matter if you think that the page is so obvious that someone else must have already added it. Delicious is smart about detecting duplicates, and even if it wasn’t, I’d rather deal with duplicates than miss an important piece of documentation.

You don’t have to add any tags, but it will certainly help us if you do (and don’t hesitate to add a lot of them!) Also, if you see that an article is out-of-date, please use the “fixme” tag. I’ll be watching this tag and I’ll make sure the articles tagged with it are updated.

Thanks in advance for your help. I’m looking forward to discovering new l10n documentation pages that I haven’t seen yet :) I’m positive that using Delicious will help us tremendously to categorize the articles and identify those that need to be updated or rewritten.

As always, please share your thoughts in the comments.


Mozilla Fennec L10n Productization Guidelines: Part 4. Search engines

fennec_logoSearch engine plug-ins are arguably the most prominent and the most talked about component of productization. Every localization team working on Firefox goes through the process (supported by these guidelines) of choosing the search engines whose plug-ins will be available by default in the localized builds.

We’d like to use the same approach for Fennec. For each locale, we’ll look at the region’s market and try to choose search engines that offer best user experience and bring a lot of added value to Fennec. To facilitate the process of suggesting search engines and choosing a few of them for including in localized Fennec builds, I’d like to suggest the following guidelines for choosing search engines in Fennec.

I propose the following 4 categories of search engines for localizers’ consideration:

  • General search
    • 1 global
  • Reference search
    • 1 Wikipedia
    • 1 e-commerce (store preferred over auctions)
    • 1 other (optional, a dictionary or a word reference recommended)
  • Local search
    (i.e., “around me” search; e.g. “find the nearest ATM”)

    • 1 (only if available in the region)
  • Specific interest
    (extra category, use if no local or 2nd/3rd reference search available)

    • 1 (can be from different categories: e.g. entertainment (imdb, youtube, music search), price comparison, general search provider very popular in the region, etc)

Not all categories are required for every locale, in fact, some should be ignored if there are no good search engines available in the region. This applies primarily to the local search (C). If no local search service provider is available in the locale’s region, then we should not include this category at all. Instead, we could look for other interesting search services from other categories and include them under category D. For example, if there’s no local search engine in Germany, then instead of shipping a US-based local search engine with the “de” version of Fennec, we could look for a different type of search engine that would offer good experience and be relevant for German users.

The maximum is 6 search engines. However, if you have good candidates for categories A, B and C, you probably should leave D out, and stay at 4-5 plug-ins. Also, all locales should start with a global general search provider and Wikipedia, and not the en-US defaults. This makes the minimum number of plug-ins equal 2. To sum up:

Minimum: 2 (general search & Wikipedia)
Recommended: 4-5 (subset of A, B, C, D)
Maximum: 6 (A+B+C+D)

To help decide which search engines to choose for each category, I propose to use the following list of criteria, similar to what we use for all productization components across all Mozilla projects, augmented by the compatibility criterion:

  • User experience
    • Mobile compatibility
    • Search quality
    • Clean and easy-to-use interface
  • Relevancy
    • Popularity in the region
    • Usefulness for locale’s users

To provide some background on the choice of categories: you may wonder for example why I listed e-commerce under “reference”. My assumption is that searching in Fennec is mainly about acquiring information, less so about performing actions on-line (like buying a product). We can then use this information to perform actions off-line, for example take out some cash in the nearest ATM as located by the search engine. A mobile browser brings together two worlds: the off-line world in which we operate and the on-line one in which we acquire information. Consequently, I see e-commerce sites as great sources of information, answering questions like ‘Who wrote that book? What year was this film released? What’s the 4th track on this album?’ etc.

Following this line of thinking, I see two main objectives for the search plug-ins from the user’s perspective:

  1. acquire general information, knowledge, definitions, and
  2. acquire location-specific information.

A third objective, this time from Mozilla’s point of view, is to demonstrate the feature called “adding search engine plug-ins to the chrome”. It could be argued that including more search engine plug-ins than Fennec’s search bar can fit would have an advantage of demonstrating the horizontal swipe-ability of the bar. On the other hand, offering less engines by default has two additional advantages:

  1. There’s an empty space on the right of the bar (cleaner interface), possibly encouraging the user to fill it, by adding new plug-ins.
  2. The first plug-in the user adds by herself will be visible right away on the search bar (it won’t be hidden) which, as I believe, will be more rewarding for the user and will make it easier to understand what has just happened (no questions like “Where is this search plug-in I just installed?”).

These reasons are convincing to me. I also believe that it is important to keep the interface clean. Contrary to Firefox, search plug-ins are a highly visible piece of UI in Fennec, somewhat similar to the bookmarks toolbar in a desktop browser. It is therefore crucial to find the right balance between offering more functionality with more search engines and keeping the interface clean and uncluttered. Let’s remember that the browser (together with the search bar) belongs to the user.

Please share your thoughts in the comments.


Clustory: reinventing the tabs in the browser

My answer to this summer’s Design Challenge is: forget about tabs completely.

Clustory: reinventing the tabs in the browser (Mozilla Concept Series) from Staś Małolepszy on Vimeo.

In the video above (slightly too lengthy, I admit), I try to explore a different approach to managing visited pages. I suggest using the loads of data stored in the browsing history (mining for patterns!) and present it in a way that exposes two new dimensions: time and tasks.

The clustory screen (a portmanteau word from “cluster” and “history”) would present a timeline of the visited pages, organized by themes, topics, or actions. Each horizontal line represents a cluster, and the pages belonging to the clusters are portrayed using screenshot thumbnails or favicons. At the top, there’s a timeline indicating the time of visits, and giving some other contextual information like the weather or even (not illustrated in the mock-up) wi-fi hotspot names (SSIDs), which you could identify as your own, your company’s or your school’s.

Picture 1

The sidebar on the right gives you some details about each cluster, such as:

  • a user-given name,
  • most important keyword as identified by the clustering algorithm,
  • last activity time,
  • total time spent on the pages belonging to the cluster,
  • action buttons: forget, bookmark, share (all pages in the cluster).

The page that you were viewing most recently is always the biggest thumbnail on the screen, to make it easy to click on it and leave the clustory screen. Moreover, it never disappears from the screen, even if you pan to see older visits or clusters that are below the page fold. Its meta-information is always visible, too. To get more information about other clusters, just hover over them, to expand them and show bigger thumbnails, as well some additional metadata.

Picture 2

You can drag and drop pages across clusters, for example when the algorithm isn’t accurate enough and made a mistake. Dropping a page into a new cluster would make the algorithm recalculate the probabilities of each word indicating that a new page belongs to it. Pages currently in the cluster would stay in it.

Which brings me to data mining. I believe that it would be sufficient to represent web documents as unordered collections of words that occur in them (the bag-of-words model). You could even go as far as checking only if a word is present in the document, without counting its occurrences. This would lead to a very simple binary representation that could then be used by a Naive Bayes classifier. The advantage of such approach is that we would be storing minimal amount of data per visited page and we wouldn’t need to recalculate the weights for each word and each document after opening a new page (as using an idf-based weight would require).

Please watch the video, download the Keynote presentation and share your thoughts in the comments. Thanks!


Older →