Archive for the ‘Mozilla Labs’ Category
- The panel API creates floating modal popups that appear on top of web content and browser chrome and persist until dismissed by users or programs.
- The clipboard API allows callers to interact with the system clipboard, setting and retrieving its contents.
- The notifications API allows you to display transient toaster- or Growl-style messages to the user.
- Firefox is now the default application for cfx.
- The directories contained in XPI files created by cfx xpi now have correct permission attributes.
- Discuss, debate, and get help in the discussion forum.
- Chat via IRC in #jetpack on irc.mozilla.org.
- Submit a bug report.
- Grab the source code and fix a bug or add a feature.
We’ve just released a new Labs experiment: Doctor JS, a web service providing type inference for JavaScript, written by our amazing summer intern Dimitris Vardoulakis. Brendan Eich has more technical background about Doctor JS and our many static analysis projects at Mozilla. Check it out!
In late 2006 Mozilla made a decision to move to the mercurial distributed version control system. Today most Mozilla projects are available in a publicly accessible mercurial instance. This has served Mozilla well for many years, however many of us in Labs have watched the developments and rising popularity of git with interest. In response to a growing number of requests from the community, we have decided to start mirroring all of the current Mozilla Labs experiments to github!
Github is a very popular social coding site, who provide git hosting in addition to several tools to support collaboration, discovery, and visualization of software projects. Our hope is that by hosting projects there we’ll make it easier for more folks in the community to find, follow, and work on Labs projects.
What’s happening to mercurial?
For now, this mirroring is very much an experiment. The Labs mercurial repositories will remain the primary place where commits are pushed. So as far as mercurial is concerned, nothing changes. That said, some projects are considering moving to git as the primary host for code, and conversations with the community are ongoing.
How can I contribute via github?
For now, the process is very lightweight. Simply fork the project that you’re interested in contributing and issue a pull request. These requests will be treated as “review requests” and will be need to be merged back into the primary repository by someone with commit access.
How’s it work?
Mirroring from mercurial to git is trivial given the availability of hg-git, a mercurial extension which allows you to interact with a remote git repo directly from the mercurial client. Leveraging this extensions, we pull from mercurial and push to github. By also using the Github API, it’s very simple to automate the batch creation of multiple repositories and make it simple to add new repositories to the mirroring as new projects are launched. The scripts that we use to perform the mirroring are themselves hosted on github.
What’s Next?
Several folks have kicked around ideas on how to improve the submission flow, including streamlining the creation of review requests by automatically converting pull requests on github into formal Bugzilla review requests. Some people from the community are already exploring these ideas, so stay tuned.
Happy forking!
As many of you already know, last week we landed Sync for Firefox 4, and I’m really excited that it will be a part of the next Firefox 4 Beta update.
Sync has been on our radar for a very long time. One of the original goals for Places was to enable this type of add-on, and Weave was one of the first Mozilla Labs prototypes released, near the end of 2007. We’ve been through a number of changes since that time, largely focused on building a stable, scalable service. I moved over from the Firefox team just over a year ago to help make it something we could ship to all of our Firefox users.
Sync is important to me as the first step in evolving how users think about and interact with web services. The dominant model for services right now generally involves trading your personal data (who your friends are, the emails you send, the websites you visit) in exchange for useful services (social networking, bookmark sync, etc). For the vast majority of users, the real decision is simply “which company gets my data?”. That’s not really a great definition of choice.
Sync took a different tack, and started off with “what if we didn’t want the data? What if even having that data was a failure state?” That led us to cryptography. Sync uses strong crypto to encode your data before it is uploaded. The secret phrase is the key to this encryption, and we never send that anywhere to keep your data secure. This really means that Mozilla can’t see your data, giving you full control. (Which is great, because we really don’t want it!)
What’s most exciting is that this is just the first step. Services is a new place for Mozilla to compete and help shape the future of the Web. We have a lot of work ahead of us, but getting Sync into Firefox was a great first step. We really hope users love it as much as we do.
— Mike Connor, on behalf of the Firefox Sync team

Reading Crowds
This post summarizes research done by Piyush Kumar, Eugenia Ortiz, Chao Xu, Ajay Roopakalu, and Peter Organisciak.
What do we know about crowdsourcing? Certainly, its historically roots of group collaboration dig deep, but what of its current form? It is only in recent decades, as communications technologies became more efficient at connecting large groups of people together that we started seeing (if not yet noticing) ever larger, more dynamic creation and problem-solving by geographically dispersed people. Free software arrived, message boards arrived, wikis arrived… tech savvy people were becoming more comfortable working together while their tools for doing so became easier. Yet, still no satisfactory way of framing the big picture.
This is why when Wired published The Rise of Crowdsourcing in 2006, the term was quickly appropriated, a society collectively finding the words to tie this phenomenon together. In the article, Howe was looking at a very particular facet —crowd-power business— but only days after it was published, he admitted that the term had been appropriated, twisted and stretched. Crowdsourcing was the utilization of the wisdom of the crowds that James Surowiecki had popularly argued for. It also began to be used as an umbrella for many more specific facets that observers and theorists had been noticing. Most importantly, it was a verb. Crowdsourcing is not a product, it is a means; a way to do something.
As a tool, arguing about crowdsourcing is pointless without a context. It is not: Is crowdsourcing good, but rather, is crowdsourcing good for this or that task? The buzzword-free version of that question is simply, what sorts of things are good to asks large online groups to help with?
We’ve often heard of crowdsourcing projects, especially the venerable Wikipedia, as being impossible in theory but possible in practice. So, as theory is running to catch up to what is being observed, my team looked at what it is saying, looking for any sorts of patterns.
Findings
There are multiple ways that crowds can gather. These include:
- Broadcast search: This type of crowdsourcing is when you broadcast a problem to a large number of people and they try to solve it. Essentially, the Internet here doesn’t change much from what you would do offline, except that you can ask more people. An example of broadcast search is contest sites (Innocentive, Crowdspring), where a party with a problem puts up a bounty for it to be solved, and the best design wins the prize. There have been different terms for this, but I find Karim Lakhani’s Broadcast Search (pdf) to be particularly apt.
- Commons-based Peer Production: This is the term, coined by Yokai Benkler, to describe when people get together to create together, sidestepping traditional organizational structures.
- Knowledge/Opinion Aggregation: When people combine what they know or experience, such as with Wikipedia. This is something truly unique to the Internet, at least on the scale that we can do it without it costing ridiculous amounts of money or bringing the project into chaos.
One consistent observation that crowdsourcing projects find is that just a small fraction of contributors make up a major fraction of contributions (Flickr Commons, Galaxy Zoo, Wikipedia, Australian Newspaper Digitisation Project). This means that, most basically, there are two types of users to think about when crowdsourcing: heavy users and casual users. The spectrum between these two is gradual, but that is what it ultimately boils down to. It’s easy to see how heavy users are assets, but the contributions of casual users, in large numbers, add up too. Also, it could be argued that if your system doesn’t cater to casual users, then there won’t be capacity to find and connect to those power users.
How to motivate continued involvement is still being considered, and most current theory approaches the topic on a case by case basis. Considering the breadth and diversity of crowdsourcing projects, this may be an appropriate method, as it does not appear that there are all-encompassing rules for doing it right. Still, this fuzzy area is slowly growing clearer.
Most often, crowd motivation is separated into two forms: intrinsic and extrinsic. Intrinsic motivation is when one does an activity for its inherent satisfaction, such as for the fun or challenge of the activity, while extrinsic motivation is when their actions are fueled by external rewards or pressures. These are not mutually exclusive, and multiple forms of either motivation can be present in a task.
Intrinsic motivation can be both enjoyment-based or obligation/community-based. One way enjoyment is maximized occurs is when a person’s skill matches the challenge of a task. A task that is too difficult may cause anxiety, while too easy may cause boredom (pdf). Another form that enjoyment is derived from is creative task accomplishment. Amabile, in proposing this link between motivation and creativity, defines a creative task as one that is heuristic (no identifiable path to a solution) instead of algorithmic (exact solutions are known) and novel and appropriate to the need. With obligation-based motivation, an individual is moved to act within the standards of the group within they’re working.
The importance of extrinsic motivation, however should not be underestimated, though. Money is one ever-reliable form. Projects absent from most other forms of motivation can still succeed with financial backing, albeit disingenuously. Another extrinsic motivator is in the product’s utility to the contributor. For example, somebody can contribute a function to an open-source product that they themselves need. Sometimes, there are also delayed benefits to participation; Lakhani and Wolf suggest the development of skills and career advancement. Recent, the development of social graphs online has encouraged the growth in popularity of achievements, with point and badge systems emergent from video games being applied to other types of systems. The gaming community is currently holding the discussion on achievements , but in the scope of my research, I found that achievements are nearly always a secondary motivator, strengthening the motivation of somebody already engaged rather than standing on their alone.
Though it may seem obvious, the passion of the users can’t be understated. If people like what the project is about, then they’ll participate. Galaxy Zoo recently classified its 60 millionth galaxy. Their success is greatly due to the interest of amateur astronomers. Australian Newspapers Project just reported a very successful pilot of crowd tagging and text correction in a project for digitizing Australian newspapers. There, amateur genealogists – a very dedicated community – found the project and realized that they were interested in its goals, contributing en masse to it.
Social movement theory talks about “mobilization potential” (Klandermans and Oegema, Motivations and Barriers 1987): how many people could potentially contribute and how many actually do. The idea is to focus on maximizing the numbers of those mobilized in relation to the potential. Don’t think about how to catch everybody, but rather: who would be interested, and how do *they end up at the site?*
“Those that view the crowd as a cheap labour force are doomed to fail.” —Jeff Howe
Sincerity goes a long way: crowds don’t like being used. “For the common good” projects, such as charity, open-source, and education-based crowdsourcing, encourage people at least some of the way. Library of Congress, for example, found the altruistic angle to be successful. Lakhani and Wolf’s survey of Sourceforge users, however, found that it’s not just about the intrinsic reward of feeling good about contributing to Sourceforge; users often got something else that they needed (like money or a necessary product) out of it.
Building and engaging community is, for most projects, desirable. Howe talks about how Threadless and iStockPhoto put community first, commerce second. Consider the example of Netflix with the Netflix Prize, a million dollar reward for improvements to the recommendation algorithms. Netflix didn’t exert unfair, controlling rules on their participants, letting everybody keep their own intellectual property and simply license it to Netflix for the $1 million (and winners could go license it to competitors too). This may be a contributing factor to the remarkable generosity and communication that was seen among competing teams. These are but three examples, but the field is teeming with them; crowdsourcing relies on people, and thus works when participants are treated as people.
This is but a summary of what we found in reviewed the theory behind crowdsourcing. Understanding that this post just touches a facet of a sprawling area, we encourage you to post your thoughts or reactions in the comments. What do you think about crowdsourcing?

A few weeks ago a group of 15 students from all around the world embarked on a mission to create a new program around Mozilla Labs’ Design Challenges.
The group split up into three teams with each team focussing on one particular aspect of analysis: Past Design Challenges, best practices and existing research.
The write-up and summary below is a guest post from Jimmy Chion for group 2 – Best Practices:
The following are several main aspects that are characteristic of successful crowdsourcing sites/businesses and examples of businesses that employ the characteristic well. Included are a few other metrics that our group discussed.
Low Barrier to Entry
Easy access to contributing to the crowdsourced content is almost necessary for increasing participation among first-time users. Although a registered account gives more commitment and community for an individual to come back, it is a small hurdle that prevents many from using a site. One solution to this that we’ve seen in sign-in through accounts many people already/probably have, such as Facebook.
Examples:
Wikipedia – anyone can edit almost anything. In fact, the biggest barrier to entry for Wikipedia is its editing tools which many have criticized as un-user-friendly.
Kickstarter – Facebook sign-in and easy donation process encouraging small amounts of money.
Hunch – once you go onto the site, you are already contributing by answering 20 questions and developing your profile. It asks you to register to save the information. Tricky.
Business Incentive: Competition for top submission
Some of the best-known crowdsourcing businesses use many professionals to produce many solutions for a challenge. The submitter of the challenge picks the best one and pays only for that one. The business putting out a call for submissions benefits from the intense competition between the contestants. The best known sites of this kind are Innocentive and Crowdspring.
User Incentive: Intrinsic motivation
Apart from the external motivators (such as money, points, gifts), the crowdsourcer must implicitly appeal to the internal motivations of the participants to participate. This can range from recognition within a community, desire to share knowledge and opinions, to wanting to develop personal talents. The most successful sites create intrinsic motivation for the user to contribute to the crowd. People come back for the points, rewards, reputation, but the biggest motivator is people’s own motivations of desire to share (possibly show off).
Examples:
Wikipedia – seems like pure altruism, but is successful because it empowers the user to contribute something that they may be an expert on to many many people.
Ushahidi – crisis mapping. Aggregates knowledge (via sms, web) of where violence was occuring. Made into open source and used in Haiti and Washington, DC for snow fall. There is no other value to the contributers other than aggregating knowledge for the greater good.
Give people the ability to shine
This is usually done by diversifying the different tasks to be crowdsourced. By letting people contribute parts of the whole, the task is less daunting, and it also allows people to shine in what they’re good at. This point is also related to the previous one.
Examples:
OpenIDEO – breaks up the creative process and awards points at different phases in the project.
Quirky – similar to OpenIDEO, rewards proportionately to whatever parts of your contributions are successful
Wikipedia – probably the best example where people are given their ability to share whatever unique knowledge they have.
The following are aspects that are great but not entirely necessary for a successful crowdsourcing project
Community
The smaller the niche and the bigger the community, the more identified the user will feel. Wikipedia, Yahoo Answers, and InnoCentive are great counterexamples though. The former two aim to be all-encompassing and general as can be, and the latter pretty much has no community (though the company has talked about nurturing it).
Examples:
Threadless – has a tight community of artists and tshirt consumers. The entire community helps each other refine designs and choose the best ones.
Quora – similar to Yahoo Answers, but for young silicon valley startup entrepreneurs. As a result, the community respects each other and the quality of answers are extremely high unlike Yahoo Answers and Facebook Questions.
OpenIDEO – collaboration is two of the four phases in its process.
Some component of fun
Adding a playful or fun aspect to the whole experience gives more reason for users to participate and come back.
Examples:
Google Image Labeler – Users earn points for trying to label an image the same label as what other people would label it as. Turned something entirely boring into a game.
Hunch – A decision engine driven by user surveys. Who doesn’t love filling out surveys about themselves in order to find out more information about themselves they supposedly don’t already know?
Our compiled list of crowdsourcing initiatives can be found at here
People look for information online through different websites or search engines on a day-to-day basis, and sometimes getting the exact information you want can be a little frustrating. Firefox makes search easier for people to access by offering a search box on the top right corner on the browser, and has for many years. Users can also search in the URL bar directly if they type something which is not a website address. Now, we want to explore how we can make search more accessible and easier to use.
For this study, we will explore how people perform search through the Firefox browser. We will be collecting aggregate clicks on where search is being accessed: the search box, the awesome bar, context menu or the Firefox home page. Through the data, we may be able to detect certain patterns that help us improve the search interface that works best for most users. We will NOT be collecting your actual search queries or results you used or visited.
Test Champion: Jinghua Zhang, User Research, Mozilla Labs.
Test Duration: 7 days, associated with a survey
Test Version: Firefox 4 Beta
Privacy
Security and privacy are priorities for Mozilla, especially when dealing with user data. All Test Pilot privacy settings give users control over their data will remain the same for the Feedback Add-On in Firefox 4 Beta. These include:
- Participants’ data will be transmitted to Mozilla only when they take all of the following actions:
* Join the Firefox 4 Beta program by downloading the beta with the Feedback Add-On.
* Submit data when the test is finished. Participants will be able to review all data before choosing whether or not to submit it. - Test data will be stored anonymously and in aggregate. None of it will be publicly associated with any personally identifiable information.
- Participants can quit a Test Pilot study before they submit any test data.
- Participants can opt-out from all user studies or disable the Feedback Add-On itself at any time. Learn more.
Get Involved!
- If you are testing Firefox 4 Beta, the Feedback Add-On will notify you before the study starts, at which point you can view a detailed study description and choose to opt-out of the study if you wish. For more information on how Test Pilot in Firefox 4 beta works, please see the “How it Will Work” section here .
- If you are not running Firefox 4 Beta, what are you waiting for? We invite you to get on the latest beta to participate in this study. Help test the future of Firefox by downloading the latest Firefox 4 Beta!
- And of course, please share your questions and suggestions in the Test Pilot discussion group or on Twitter.
Welcome to our second add-on release! This is our first release of a new add-on called Thunderbird Contacts.
Thunderbird Contacts was started by the Mozilla Labs team as Firefox Contacts, an experiment with contacts inside the browser. We’ve adapted their add-on to work inside of Thunderbird and added some new features just for Thunderbird.
The goal of add-on is to experiment in evolving the address book of Thunderbird beyond what it currently is today. Thunderbird Contacts isn’t a standalone address book, instead it understands that your contacts live on the web as much as they do inside Thunderbird. The add-on can pull in contact data from various services where your contacts already exist.
Currently it connects with the following services:
- Thunderbird Address Book
- Native Address Books (Mac Address book)
- GMail
- Plaxo
- Yahoo!
How it works
When you install the add-on you’ll be shown this list of services. You can connect to whichever services you’d like to pull in contacts to your local Thunderbird.
As you pull in contacts from each of the services Thunderbird Contacts will attempt to merge the same contacts from different services into a single contact.
Then as you view contacts the add-on will go “spider” out to various services for more information about your contact; this can find flickr photos and websites for the person.
What’s Next?
Future versions of this add-on will likely experiment with organizing the contacts in different ways. Right now there’s a simple list or card like view and we’d like to take those interfaces further. If you have any thoughts or comments let us know in the feedback channel. If you’re interested in trying something just fork the code and start working.
For more information and a screen cast explaining the add-on check out the Thunderbird Contacts project page.
About a week ago, 15 students from all around the world set out to work on Mozilla Labs’ Crowdsourcing Project – with the aim to create a next generation crowdsourcing platform. In the first phase of this project, the students broke into three teams, each with a specific objective. Here are their status reports after week 1 of the project:
Team 1 “Status Quo”: Analysis of current Design Challenge(s) (by Jan Dittrich)
Setting the foundations for the future of crowdsourcing at Mozilla a group of students from all over the world currently analyses crowdsourcing. For doing so, we split in three teams. The one I am in takes a look at the past efforts of Mozilla to involve people with a focus on design and UX: The Design Challenges. Since Spring ‘09, Mozilla announced several challenges focusing on different topics, from chromeless browsing to social contacts in the browser. Until today, more than 1000 people participated.
The “Past Challenges analysis”-Team is taking a closer look at these past challenges. Soon a to-do list was set up which we collaboratively wrote. We started our work by collecting and reviewing resources like an analysis of past challenges conducted by Mozilla and an overview about possible good and weak points in the past challenges. An idea which emerged soon was to create a questionnaire for former participants. For doing so we set up page to brainstorm a set of questions.
An important part of the process of working together are the weekly team meetings: They offer the possibility to get feedback from Pascal, to ask participants who deal with other topics for an opinion and most importantly to discuss the focus for the upcoming week’s work with your teammates. The group I am in decided e.g. to focus the questionnaire on getting to know what motivated former participants in the past challenges and the deadlines for getting it ready to be send out — just a few minutes ago I had a look on our page and saw that two other teammates commented on the selections of questions. So after chatting tonight (at least in my timezone!) I think we will have the questionnaire ready to be send!
Team 2 “Best Practices”: Analysis of other (successful) Crowdsourcing Initiatives (by Coleman Foley)
Now that we have compiled a list of relevant crowdsourcing projects, we are fleshing out each entry by seeing how they score on a variety of metrics. From there, we are further condensing and making sense of our data by making a list of best practices. Both these lists are editable by anyone in the group, I should note. Perhaps the crowdsourcing project we are learning the most from is the one we are all participating in—the “crowdsource crowdsourcing” project. I have learned that while decentralization is good, some direction is nice, too. Each of our group’s chats have been most productive when we followed even a loose agenda. Fortunately, every body in our group has come through at some time with some leadership at the right time.
In our first few days, we established a great deal of breadth, adding many projects to our list. Now we are getting into a few projects in more depth focused on best practices in their services. One is Threadless, which gets t-shirt designs from its active community. Another is Quora, the new social question and answer service that is still in private beta. Threadless has showed us the value of structure. Every week it picks that week’s best designs and rewards them. It also puts on themed contests, like comics or coffee, which keep things fresh. Quora has showed the trade-off between quality and quantity. While it has a lot better answers and less spam than Yahoo Answers, it also has far less content. We will continue to learn about these projects and our own. Coeval we will figure out best practices and metrics of already existing crowdsourcing projects to see how they mesh with the other team’s findings on Sunday.
Team 3 “Theory”: Key learnings from theoretical body of knowledge
As you may know, we are part of the group for the new Mozilla Labs’ project “Crowdsource Crowdsourcing”. The project’s aim is to build the next crowdsourcing platform by learning existing theory, analyzing current best practices, developing ideas and, of course, experimenting.
We are a group of students with heterogeneous profiles, universities and countries: Ajay Roopakalu, Piyush Kumar, Chao Xu, Peter Organisciak and Euge Ortiz. We come from different areas like computer science, engineering, mathematics and design.
We call ourselves, quite creatively, “Team 3”; this is apt because we do, after all, work as a team. We are responsible for for the theoretical aspect of the project, examining the body of crowdsourcing knowledge. We all come from different disciplines, so is our mission to make sure that we all know what we are talking about and that we are going in the same direction. In our write-board you can find discussions about theories and concepts of crowdsourcing, open innovation, motivation, collaborative work, among others.
Right now we are analyzing, discussing and putting everything together in order to have a solid base for the next phase, and that is the brainstorming phase. Our next step is to communicate our work with the big group and then to the community.
We are all excited about this project, the Design Challenges are a great way to involve participants and encourage their creativity and innovation. Crowdsourcing is a tool, and by building it right, we can use it to great ends.
Fuzzyfox has put together a great screencast about the Thunderbird Quick Filter, check it out!