Blog Archives

Installing Android on the Geeksphone Keon


Here’s a clean, clear and to the point english post on how to install Android on your Geeksphone Keon developer device:-

Android on Keon

STEPS:-

  1. If you don’t already have adb and fastboot installed on your system:-
    1. Get the packages from here.
    2. Extract the contents of the zip file and navigate to the adbfastbootmac directory [Note: This package works on macs, if you are using Linux or any other operating system, a simple online search should help you figure out how to get adb and fastboot]
  2. On your Keon go to ‘Settings’ -> ‘Device Information’ -> ‘More Information’ -> ‘Developer’. From the list of checkboxes, enable the ‘Remote debugging’ checkbox.
  3. Connect your device to your computer using the USB cable.
  4. Back on your computer’s terminal do the following:-
    1. If you are using the package mentioned above, run ‘./adb devices’
    2. You should see a device named ‘full_keon’ as a part of the output. If you don’t see it listed out there, try reconnecting your device or check whether the Remote Debugging option is enabled.
  5. Now let’s get down to the magic:-
    1. Download and store the following zip packages to you device’s SD-Card:-
      1. TWRP recovery
      2. Android ICS ROM for Keon
      3. Google Apps
      4. Additional Ring Tones
    2. Start the Keon in the fastboot mode :
      # ./adb reboot-bootloader
    3. Install the new recovery :
      # ./fastboot flash recovery TWRP-GK.img
    4. Boot the recovery :
      #./fastboot boot TWRP-GK.img
    5. On the device’s screen now tap on ‘Backup’ to create a backup of Firefox OS.
    6. Once done, tap on ‘Wipe’ → ‘Swipe to Factory Reset’.
    7. ‘Install’ (select the ROM) → ‘Add More Zips’ (select the Google Apps and Additional Ringtones zip files) → ‘Swipe to Confirm Flash’.
    8. ‘Wipe Dalvik and Cache’.
    9. Tap on ‘Reboot System’.
  6. Voila! You’ve now successfully installed Android on your Geeksphone Keon device.

NOTES:-

  1. Make sure that the device has at least 50% battery power before commencing with the process.
  2. Since the Keon has only one soft touch button on it, it is mapped to the back functionality. If you want to use all three default Android soft-buttons, the easiest way to do that would be to install the “SoftKey Enabler” app from the Android Play Store.

SWITCHING BACK TO FIREFOX OS

If you now want to switch back to Firefox OS, all you need to do now is as follows:-

  1. Turn off your device.
  2. Press the power and the volume up buttons of the Keon at the same time to boot into the Team Win Recovery image.
  3. Tap ‘Restore’ and select the backup file created earlier during the Android setup, and confirm.
  4. Once the process completes, you should be able to use Firefox OS again! 🙂

DISCLAIMER: Please note that the steps I’ve mentioned here are what I followed to try out Android on a couple of my Keons. These steps involve flashing the device, hence involve a very real risk of ending up with a bricked [dead] phone. As such, go about the process at your own risk. I’m in no way liable for any unforeseen results coming out of this process.

References:

  1. http://sys.nodo21.org/geeksphone-keon-rom
  2. http://forum.geeksphone.com/index.php?topic=5672.msg60983#msg60983

 

Advertisements

FOSDEM 2014


Ever since the time I first got involved in the Free and Open Source community I would hear about people’s experiences about FOSDEM [Free and Open Source Developers’ European Meeting]. If you are into Open Source communities, then apparently FOSDEM was the place to be. A few years back when I was nothing more than a wide eyed geek attending events out of curiosity to know what the hoopla was all about, I would at times meet people who would talk about someone that they know off, who had been to FOSDEM and I could not help but wonder about how big a tech event can be so big that people would would compare it to the holy grail of FOSS events.

FOSDEM Banner

Fast forward a few years, and I got to have a first hand experience of it and that too from the driver’s seat. Not only did I attend FOSDEM this year, but I was also one of the speakers at the Mozilla Dev-Room. I had a joint talk on “Developing Webapps for Firefox OS – The Efficient & Simplistic Approach” with Robert Kaiser (KaiRo).

Me and KaiRo during our talk

Me and KaiRo During Our Talk!

In all, this year, four of us [Me, Priyanka, Soumya and Srikar] were invited as speakers at the Mozilla Dev-Room at FOSDEM from India, and it was also the first one for all of us. Even though all four of us are pretty much veteran FOSS evangelists, yet FOSDEM was something that was pretty new to us. Needless to say, we were excited! It was like we were back to being the curious geeky newbie souls that we were just a few years back. And I must say, we enjoyed every moment of the experience to the fullest.

One of the most striking things for me was the fact that for the first time, in the last couple of years I felt nervous while getting on the stage [which, I’m pretty sure was quite evident in my talk]. However, I’m quite sure that it wasn’t peer pressure, or the number of people looking at me in the room [the room was packed with 350+ of the geekiest people from around the world], I’d guess it was more because of the fact that it was something right out of an adolescent day dream for me. Somehow, however, I enjoyed this feeling all over again. I felt like the ever too curious techie geek from a few years back again.

What I do want mention here is after quite a long time [a couple of years maybe?] I went berserk with swag again. I guess being surrounded by the choicest of official goodies representing all the things that you use in your everyday life does have that effect on one. And, I’m pretty sure I wasn’t alone as well. There were people all around me jumping from one booth to the other with the curious glean in their eyes which can easily compete with that of a bookworm left free in the world’s best library without a care in the world. Knowledge flow was the mantra here, and then of course there were the swags.

GNOME Stickers

Swag galore from FOSDEM

I have to confess, I ended up with a pretty good stockpile of stickers and other similar goodies, thanks to my sudden bout of childishness. But again, who can resist the temptation of picking up a few of the most sought after swags in the Free and Open source communities.

I won’t write much about how my talk went though, I would rather leave it for you to see and understand. For the sake of simplicity, I’m embedding the video recording of my talk along with the slides from FOSDEM here. Do check it out and leave me a note, about what you think of it. [Just remember, I was a bit nervous ;)].

Slides: Developing Webapps for Firefox OS – The Efficient & Simplistic Approach

Video: Developing Webapps for Firefox OS – The Efficient & Simplistic Approach

A special note here for Benoit Leseul: You are one of the nicest and wonderful person that I have ever met. Thanks a lot for taking care of us during FOSDEM! 🙂

Installing Firefox Nightly with Australis on Fedora 18 / 19 / 20


Australis Sceenshot

Screenshot of Firefox Nightly with Australis on Fedora 19

Are you a Fedora user who wants to check out the new Australis Theme for Firefox scheduled for release with Firefox 28? However, you are a bit apprehensive of letting go that stable release of Firefox in bundled within your Fedora installation by default, just in case something goes wrong with the nightly beta release.

If this is what defines your current dilemma, fear not. You can have both the stable as well as the nightly beta versions installed simultaneously in your computer in a few simple steps without any trouble at all! Here’s how to do it in case of Firefox Nightly version 28 [the latest release at the time of writing this post]:-

Step 1: Login as Super User:-

$su

Step 2: Get the nightly package:-

Go to http://nightly.mozilla.org to get the latest available nightly build for your system.

Screenshot of Firefox Nightly Webpage

Firefox Nightly Webpage

Alternatively, you can use the command line tool wget to directly download it via the command line as follows:-

#wget http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-28.0a1.en-US.linux-x86_64.tar.bz2

Step 3: Extract the contents of the tar ball as follows:-

#tar -xvf firefox-28.0a1.en-US.linux-x86_64.tar.bz2

Step 4: Rename the extracted directory to “nightly”:-

#mv firefox nightly

Step 4: Create an installation directory:-

#mkdir /opt/firefox

Step 5: Move the contents of the “nightly” directory to the installation directory:-

#mv /nightly /opt/firefox/nightly

Step 6: Create a Symbolic link for the Nightly installation:-

#ln -s /opt/firefox/nightly/firefox /usr/local/bin/nightly

Step 7:Run Firefox Nightly by typing the following within the command line or the alt+f2 launcher:-

For command line: $nightly

For alt+f2: nightly

Step 8: Relax and enjoy the Australis awesomeness! 🙂

ReMo Camp 2013 – Madrid


Reps camp 2013.png

Earlier this year from August 30th to September 1st, 2013, I was invited to Madrid, Spain, to take part in Mozilla Reps Camp as a Mozilla Reps mentor to discuss the roadmap ahead for the Mozilla Reps Program.

ReMo Camp is an annual event / meeting where the leadership of the Mozilla Reps program, comprising of Council members and Reps mentors, meet for 3 days. The meeting comprised of presentations, breakout sessions and discussions to draft the 2013/2014 Mozilla Reps program roadmap. This was the second time the entire program leadership met and worked together in person, the first being in Berlin in 2012.

Even though there were discussions on some pretty serious topics, we made sure that we had our fair share of fun as well, starting from wacky yellow construction jackets to crazy late night wandering in the streets of Madrid.

Amidst all the serious discussions and fun times, one thing that stood out quite prominently was the high spirits that was evident among all the participants throughout the event. I’m sure that future of the Mozilla Reps program is quite bright and secure in the presence of such wonderful people and it is going to grow by leaps and bounds in the upcoming days. 🙂

The Greek Experience – Remo Training Days


Reps Group Photo

Reps at Greece for #remotrainingdays

Last week Mozilla brought together 40 Mozilla Reps from all over the world at Athens for week-long training exercise called Reps Training Days. The idea was to gather the most pro-active Mozillians under the ReMo programme in a single place and train them about leading the Webmaker initiative in their respective communities.
The training event was structured as follows:-
  • The Reps spend the first day observing a Hive Athens Pop-Up event.
  • Then the next 2 days are dedicated to developing local strategy and teaching skills; and finally
  • The Reps apply the lessons they have on a one day event teaching webmaking to a group of 100 students at the British Council.

The outcome from this event was phenomenal, with over 40 events being planned for the next 3 months to build local Webmaker mentor team and prototype events for the summer campaign, code-named Remix Party. The vibrancy of the geographical locations for which events were planned speak for themselves. From Taiwan to Indonesia, India to Mauritius, Kenya, Uganda, Romania, UK, France, Argentina, Brazil, Mexico, Canada + beyond, we had events being planned everywhere.

It was an amazing example of Hive + Webmaker Reps, with the local community stepping up to host the event. The energy levels of everyone at the event spoke for themselves.

Here are the links for some of the most awesome things from the event:-

Oops! Almost forgot – we also made our own Harlem Shake Video: https://www.youtube.com/embed/tn4Evp8BN1U

Running Friendlycode – A local instance of Thimble


Here is a breakdown of how to run Friendlycode in 3 (maybe not-so-simple) steps.

Friendlycode Snapshot

Friendlycode – An Offline Thimble Instance.

Prerequisite: A static file server such as Apache.

Steps:-

  1. Download Friendlycode from here.
  2. Extract the contents of the friendlycode-gh-pages package into a directory named friendlycode within your file server’s document root. For example, in Apache you might want to put the friendlycode directory inside www/html or www or public_html based upon your Operating System’s preferences.
  3. You can then run a trivial embedding of Friendlycode from your browser by navigating to the examples/bare.html file within the friendlycode directory.

    Example: http://localhost/friendlycode/examples/bare.html

Additional features in Friendlycode:-

  1. Javascript: By default, Friendlycode doesn’t allow JS. An example of an embedding that allows JS and publishes using an alternate API can be run from the examples/alternate-publisher.html file.

    Example: http://localhost/friendlycode/examples/alternate-publisher.html

  2. Localization: Friendlycode currently uses Transifex for localization. To localize Friendlycode in your language, please visit the Transifex friendlycode project. Any strings you don’t translate will fall-back to English. To try out a localized version run the examples/transifex.html file.

    Example: http://localhost/friendlycode/examples/transifex.html

  3. Development: If you are a code ninja and want to play around with the dev-repository of Friendlycode, you can checkout the excellent Readme.md file at Atul’s friendlycode repository at Github.

Mozilla Carnival Pune – 15th September 2012


Excited to share that we will be celebrating the success of Mozilla Summer Code Party event(s) in the country along with the Software Freedom Day on 15th of September 2012 at SICSR, Pune.

Agenda:
The Mozilla carnival starts at 9.00 AM, the topics include:
– Mozilla Summer Code Party
– Software Freedom Day
– Mozilla projects and Initiatives
– Hands-on session focused on WebMaking and Localization
– WoMoz (Women in Open source/ IT) — Get-involved with Mozilla
– Quiz
– BOF sessions
(Schedule will be updated soon)

What is Summer Code Party?
This summer, Mozilla came up with a unique global experiment by inviting people around the world to make and learn something amazing with the web.This turned out to be the world’s first-everSummer Code Party.” Started on June 23.

Our community members from across the country hosted the code party, got together, made things, played with the Webmaker projects, and learned a lot. These include MozParty PuneBVP DelhiIIT DelhiAnthiyurErode and many other. The response has been amazing and its an incredible experience for the community for its role in making for a more web literate world. The efforts, small and big have been recognized through out the global community proving the power of contribution.

Mozilla Carnival and much more..
Mozilla Carnival will be witnessing the second pan India community meetup(informal). This is a special event to us, as some of us would be meeting for the first time! The community members include, localizers, student reps, mozilla reps and webmakers.

One of the take away points at the previous Mozilla India community meetup was building a community of Women in Mozilla & Open Source. At this event, Priyanka and Hema will be introducing the WoMoz (Women in Mozilla and open source) program, its activities, goals and how one can get involved with the program.

Come join us! Lets Meet, Make & Learn amazing things!

REGISTERING:

  • RSVP here.
  • Join the Facebook event page.
  • This event is free to attend and by registering only.
  • The venue can accommodate around 100 people.

#HASHTAG:

  • For tweeting, photos and all use #hashtag: #MozPartyPune & #MozCarnival

CONTACT:
If you have any questions or doubts, contact:

  1. Sayak Sarkar: sayak.bugsmith at gmail dot com
  2. Soumya Deb: debloper at gmail dot com
  3. Vineel Reddy Pindi: pndivineelreddy at gmail dot com

MozParty 2012, Pune


Firefox & MozParty

Mozilla Summer Code Party 2012, Pune

On Saturday, 23rd June 2012 we organized MozParty Pune at Symbiosis Institute of Computer Studies & Research, as a kickoff event for Mozilla Summer Code Party. We had a good mix of college students and working professionals as attendees for the event. There were around 75-90 attendees in total for the event. We had talk sessions as well as hands-on sessions and workshops.

The day started with an Introduction to Mozilla Summer Code Party by me, where I talked about what exactly Mozilla’s Summer Code Party is, and to how to spread awareness about the open web. The audience seemed quite interested in the idea, and looked quite excited to find out about the various ways by which they can do so.

The next session was conducted by Soumya Deb (better known as Debloper), on How Websites Work. For this session he showed the audience Google’s Story of Send, and another video on How the DNS works. The animated videos were a great hit among the audience.

Next up, it was Ankit and Faisal who took the stage one after the other. Ankit had prepared a lovely presentation in Latex about the Mozilla Story where talked about how Mozilla became what it currently is, including the various technologies from Mozilla. Faisal talked about the various Add-ons, personas other cool stuff that users can use to brighten up their Firefox experience and also about the various security aspects of Firefox.

The surprise of the day however, came when Kinshuk arrived at the event. Even though he wasn’t supposed to be present at the event due to some family commitments, still he made time and came for the event. And to top it all, he even took a session on FOSS & its relevance to Students. He also talked about the student reps program and how college students can participate and contribute to Mozilla, throughout the day in various discussions with the audience.

Post lunch, we started with a workshop on Hackasaurus, and various other Webmaking tools like Thimble & X-Ray Goggles, conducted by me. I explained various aspects of these tools to the audience and conducted a competition to see who could make the best remixed sites from the available projects at the Thimble website. We showcased the best best results at the events, and awarded a few extra swags the ones with the best sites.

Next, Soumya took over the dias and took a couple of back to back sessions on Basic Web Technologies and Apps in HTML5 & B2G. These were one of the most interactive and awaited sessions by the audience. Soumya explained these topics using interactive demos and got the audience involved as well.

At the end of it all, we explained various ways by which the audience could contribute and get involved with Mozilla. We talked about the student reps and Mozilla reps programs, and also got 12 people sign up for the student reps program.

The links to the various slides during the session as well as the links for some of sites created using Thimble are included below:-

Introduction To Mozilla Summer Code Party: Sayak

The  Mozilla Story: Ankit

Using Firefox like a Boss: Faisal Aziz

How Websites Work: Debloper

FOSS and it’s relevance to Students: Kinshuk

Introduction To Mozilla Student Reps

Web Making Tools – Hackasaurus & Thimble: Sayak

Basic Web Technology: Debloper

Getting to know web-terminologies, their purposes and the categorization etc.
Technologies: HTML / CSS / JS / PHP / Java / .NET / Flash / Ruby / Python
Frameworks: Drupal, WP / Node.JS / RoR / Django
Databases: Oracle / PostgreSQL / MySQL / SQLite / CouchDB / MongoDB
Libraries: GWT / YUI / jQuery / Dojo / Polyfils / Shims
Browsers: Chrome / Firefox / IE / Safari / Opera
Features: Canvas / Video, Audio / Web Storage / WebGL / Geolocation / DB
See the most amazing open web standards/features in action:

Apps in HTML5 & B2G: Debloper

Mobile platforms, native mobile apps.
“Build once, deploy everywhere” – PhoneGap, Titanium etc.
How web-apps make it better & how B2G takes the advantage.
Mozilla — Boot to Gecko Project: http://www.mozilla.org/b2g/

How To Contribute / Community & Development:

Kinshuk
Sayak

Hackasaurus Published Pages:

Event Page: wiki.mozilla.org/MozParty_Pune

Etherpad: etherpad.mozilla.org/20120623-Pune-Workshop

Flickr Album: www.flickr.com/photos/kinshuksunil/sets/72157630325471864/

Facebook Album: facebook.com/media/set/?set=a.10151053643809188.493002.677614187

From Netscape To Firefox: The Story Of Mozilla Firefox


Introduction

The history of Mozilla, upon which Firefox was built, extends all the way back to 1994, when the name was first established as a branding for the “mosaic killer,” Netscape Navigator. Mozilla as a modern day institution found its beginnings in 1998, when Netscape decided to release the source code of its dying browser to the open source community. Even later still, the browser that would become Firefox did not come into existence until 2002. In a sense, Firefox 1.0 came out in 2004 after 10 years of laying its foundations.

Origins

The origins of Firefox can be traced directly to Netscape, a compan­y whose Web browser, Netscape Navigator, was the dominant browser before Microsoft developed Internet Explorer. The internal company name for the browser was Mozilla. Eventually, Netscape released the source code for Navigator under an open source license, meaning anyone could see and use the code. A non­profit group was set up to direct the development of browsers using this code. This group became the Mozilla Foundation in 2003.

However, Firefox is not the browser the Mozilla group would have released if everything had gone as planned. Like Netscape Navigator before it, the Mozilla software was becoming bigger and bigger as more features were added in ­­ a problem in software development known as “feature creep” or “bloat”.

Around this time, the Firefox project was started as an experimental branch of the Mozilla project by Dave Hyatt, Joe Hewitt, Chanial and Blake Ross. Instead of accepting the feature creep, Blake Ross, (a computer enthusiast who first started helping out the Mozilla project as a hobby when he was 14) decided to start developing his own Mozilla­ based browser, focusing on a streamlined and simple version. Software developer Dave Hyatt also played a major role. Ross was joined by Ben Goodger in 2003, and development progressed rapidly from that point.

They believed that the commercial requirements of Netscape’s sponsorship and developer­ driven feature creep compromised the utility of the Mozilla browser. To combat this perceived software bloat[1] of the Mozilla Suite [2] they created a stand­alone browser, with which they intended to replace the Mozilla Suite. On April 3, 2003, the Mozilla Organization announced that they planned to change their focus from the Mozilla Suite to Firefox and Thunderbird.

Although the Mozilla Foundation had intended to make the Mozilla Suite obsolete and replace it with Firefox, the Foundation continued to maintain the suite until April 12, 2006 because it had many corporate users and was bundled with other software. The Mozilla community (as opposed to the Foundation) continues to release new versions of the suite, using the product name SeaMonkey to avoid confusion with the original Mozilla Suite.

On February 5, 2004, business and IT consulting company AMS categorized Mozilla Firefox (then known as Firebird) as a “Tier 1” (“Best of Breed”) open source product, considering it technically strong and virtually risk­-free.

Naming

Phoenix:

The project which became Firefox started as an experimental branch of the Mozilla Suite called m/b (or mozilla/browser), underwent several name changes. After it had been sufficiently developed, binaries (experimental versions) for public testing appeared in September 2002 under the name Phoenix. The Phoenix name was kept until April 14, 2003, when it was changed because of a trademark dispute with the BIOS manufacturer, Phoenix Technologies (which produces a BIOS­ based browser called Phoenix FirstWare Connect).

Manticore:

The foundations of Phoenix progressed along an entirely different development mindset from its parent Mozilla. Instead of focusing on large application suites developed by large development teams headed by senior programmers, Phoenix centered around a small, core development team concentrated exclusively on the web browsing aspect of the Mozilla Suite. The ideas for these small volunteer projects had manifested themselves earlier with David Hyatt and Ben Goodger’s Manticore browser, built on Netscape and Internet Explorer using C# and .NET. However, where Manticore looked to offer basic browsing functions in a lean form factor, Blake Ross and David Hyatt’s Phoenix looked to innovate on the browsing experience, focusing on security and utility as the pillars of the new browser. Unconstrained by the business­ minded Netscape, Ross and Hyatt could develop a browser “completely focused on the end user.”

Firebird:

In April, 2003, Mozilla announced it would call its new browser “Firebird”­­a mythical creature sometimes considered synonymous with the phoenix, an immortal bird that regenerates itself through self­immolation, to avoid the Phoenix conflict. The new name, Firebird, met with mixed reactions, particularly as the Firebird database server already carried the name. It provoked an intense response from the Firebird free database software project. In response, the Mozilla Foundation stated that the browser should always bear the name Mozilla Firebird to avoid confusion with the database software.
Confusingly enough, the sponsor of the Firebird database development group, went by the name of IBPhoenix (no relationship to Phoenix Technologies, which presented the initial trademark challenge to Mozilla). Formed in 1984 by InterBase Software and acquired by Borland Software in 1991, the group had launched the Firebird free database open­ source project in 2000.

Firefox:

Continuing pressure from the Firebird community forced another change, and on February 9, 2004 the project was renamed Mozilla Firefox (or Firefox for short). The name “Firefox” (a reference to the red panda [3]) was chosen for its similarity to “Firebird”, but also for its uniqueness in the computing industry. To ensure that no further name changes would be necessary, the Mozilla Foundation began the process of registering Firefox as a trademark with the United States Patent and Trademark Office in December 2003. This trademark process led to a delay of several months in the release of Firefox 0.8 when the foundation discovered that Firefox had already been registered as a trademark in the UK for Charlton Company software. The situation was resolved when the foundation was given a license to use Charlton’s European trademark.

Versions

The Firefox project went through many versions before 1.0 was released on November 9, 2004. After a series of stability and security fixes, the Mozilla Foundation released its first major update, Firefox version 1.5, on November 29, 2005. Version 2.0 was released on October 24,2006. Firefox 3.0 was released on June 17, 2008, with Version 3.5 and Version 3.6 released on June 30, 2009 and January 21, 2010 respectively. Version 4.0 was released on March 22, 2011. With Version 5.0 onwards the rapid release cycle was realized which envisions a new major version release every six weeks on Tuesday. Firefox 10, was released on January 31, 2012. The latest version, Firefox 10.0.2 was released on February 16, 2012

Key Terms

  1. Software bloat is a process whereby successive versions of a computer program include an increasing proportion of unnecessary features that are not used by end users, or generally use more system resources than necessary, while offering little or no benefit to its users.
  2. Mozilla Suite: Codenamed, internally referred to, and continued by the community as SeaMonkey, which integrated features such as IRC, mail and news, and WYSIWYG HTML editing into one software suite.
  3. A Firefox is another name for the red panda, a red­-furred, endangered mammal related to the giant panda and found in the Himalayas, China and Myanmar.

References

  1. http://en.wikipedia.org/wiki/Firefox
  2. http://en.wikipedia.org/wiki/History_of_Firefox
  3. http://www.foxkeh.com/downloads/history/history­original.pdf
  4. http://news.cnet.com/2100­1032_3­1000146.html
  5. http://web.archive.org/web/20070914035447/http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_Mozilla0
  6. http://news.cnet.com/2100­7344­5156101.html
  7. http://www.zytrax.com/tech/web/firefox­history.html
  8. http://computer.howstuffworks.com/internet/basics/firefox1.htm
  9. http://www­cs­faculty.stanford.edu/~eroberts/cs201/projects/firefox­market­dynamics/
  10. http://www.andrewturnbull.net/mozilla/historyfx.html
%d bloggers like this: