Porting WordPress for WebOS to Firefox OS
Introduction to WordPress for WebOS
WordPress for WebOS was a web app which used the WebOS platform’s innovative “Cards” feature, which allowed users to quickly switch between managing, editing, and browsing content. WordPress for WebOS was built around Sliding Panels that enables users to easily switch between creating, editing and managing content.
The app allowed working with both WordPress.com and self-hosted blogs, notified users of new pending comments and had WordPress Stats built in using Jetpack for self-hosted blogs apart from using Sliding Panels to quickly move between new and existing content. It was also the first Open Source WordPress app to have a full visual editor, which made it easier than ever to format text, add links or embed media into a user’s posts and pages.
Recycling the Code
Even though the project is currently dormant, however, it’s repository still has the potential to serve as a precursor to future Web apps for WordPress, by providing a neat base model for future application developers.
The WebOS app was written using the Enyo.js JavaScript framework, which gives the application the flexibility of cross platform development using the same framework, as well as being extensible for future iterations due to Enyo’s modular design. This provides developers with the opportunity of reusing the existing code of the WebOS application for developing Web apps for newer platforms.
The rising popularity of web based applications along with significant advancements in the Enyo Framework also makes it easier to port the existing code for the web application to newer platforms such as Firefox OS.
Desired Outcomes from the Project during GSoC
- Upgrade the existing Enyo 1.0 based code to the Enyo 2.2 framework.
- Rewrite platform specific code such as app manifest and device APIs.
- Basic UI redesign to a responsive layout so as to support smaller device resolutions.
Aspects of Porting
There are two major aspects which need to be taken into consideration while rebuilding/porting the existing app on a Firefox OS:-
- The WebOS app was written using the Enyo.js 1.0 framework. This needs to be first updated to Enyo 2.2 framework for porting the app to Firefox OS.
- Given the fact that the WebOS app was last updated almost a year ago, the app itself needs some rework to get it up-to-date and at par with the latest WordPress mobile apps on other platforms like Android the latest facelift.
Development Methodology
A structured three step approach is proposed for the actual coding cycle as follows:-
- Identify the key differences between the architecture of an app developed on WebOS and that of one developed for Firefox OS.
- Based upon these observations isolate platform specific code and app specific code.
- From here on the actual implementation process begins and is categorized into two categories:-
- Rewrite platform specific code such as app manifests and Web API interactions.
- Modify and upgrade the base Enyo 1.0 code to Enyo 2.2, to include newer functionalities to bring the existing code base at par with the WordPress apps for other platforms such as Android as well as to support advanced features on Firefox OS for the Enyo 2.2 framework. This would include some basic UI redesign to cope with smaller screen resolutions on mobile handsets.
Bonus Objectives
Once the basic code upgradation is complete, the focus can be shifted towards added features based on time availability post completion of primary development objectives. Two major desirable additions would be as follows:-
- UI redesign: Since the WordPress for WebOS app was primarily designed for use in tablets with comparatively higher screen resolutions, the application UI layout needs to be upgraded to a more responsive interface layout to support a variety of screen resolutions most of which are comparatively lower than that of tablets to extend support to smaller devices. A possible layout for lower resolutions can include an arrow button like the Android app to bring out the admin sidebar.
[Note: While the project's scope for GSoC would include some basic UI adjustments, further improvements to the UI would be a long term goal traversing the completion of the GSoC period.]
- l10n: Localization is a bonus target which can be looked upon if time permits after the primary application development process. Currently the WebOS app supports 11 locales by itself by using JSON based l10n resources identified by the Enyo framework. This section would require a considerable looking into to improve the quality and performance of localized content for the Firefox OS app. The primary objective here would be to extend the current localization resources, however an alternate implementation can be done by using Gaia’s webl10n library if it shows a substantial performance (response/rendering time for localized Glyphs) and quality improvements over Enyo’s base l10n resource implementation.
[Note: This is not a milestone for the project itself, however this is a support feature that needs to be kept in mind for future improvements.]
Programming on Mobile Devices
This is a thought that’s been rather bugging me for sometime now:
Is writing code (programming) via mobile devices really not a very feasible idea?
In the current scenario, almost all conventional programming is done on desktop computers (PCs, laptops and the likes), wherein we have a standard keyboard which is used to write down all the code, and a relatively large enough display device to help us visualize what we are writing. However, with the mercurial rise in popularity of mobile devices we have seen a huge shift from conventionally used devices to mobile devices with almost all major aspects of modern day computing making a gradual yet steady shift towards mobile computing.
We see a lot of developers now focusing on “Programming for mobile devices“, however there is an evident lack of focus on “Programming on mobile devices“, which is actually quite weird in my honest opinion. On one hand we are talking about a truly mobile world, where almost every aspect of computing is being made available for on the go mobile devices. Whereas, on the other hand, for the very basic necessities for enabling these mobile functionalities we fallback to traditional computers (and by traditional, I do take into account laptops as well, because no matter how small in size they may be, they still follow the same desktop oriented norms).
Why is it so that we aren’t yet completely comfortable with the thought of being able to write a piece of code on our mobile handsets? I know some people may argue that it is possible to write code in some ABC language using a XYZ software on a tablet device. However, what I ask is that are you really comfortable with the current scenario? Why can’t we find a nice alternative way to make programming on devices such as mobile handsets more intuitive, organic, comfortable and developer friendly?
The main problem with devices as small as mobile handsets as I see it, is a combination of low resolution / small screen size + lack of a comfortable keyboard / input device. But is it really the main challenge that we are talking abut here? Or is our mindset the main challenge? Is it really that difficult to take on the challenge of redesigning the existing programming methodology and create an efficient solution for mobiles, or is it just that we are just too lazy and or narrow minded to explore the possibilities of programming on mobile devices.
I have heard the proverb which says “Nothing is impossible“, however, I think there’s an even more dangerous public opinion which states “This is not feasible!” which generally results in the eventual death of ideas. But is feasibility really applicable here or should it be the willingness and openness in one’s mind to imagine and realize the things which others might reject as non-feasible and bring about a much needed change in the paradigms? What do you think? Please do leave your thoughts on this as comments below.
The Greek Experience – Remo Training Days

Reps at Greece for #remotrainingdays
- 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:-
- RemoTrainingDays Etherpad, inc. agenda: https://etherpad.mozilla.org/RTD
- The things Reps want to work on/make/contribute to: https://docs.google.com/a/zythepsary.com/spreadsheet/ccc?key=0Aku8434q8_LPdHVHSU9CNlpkZVRZQ0U5Q0VtS0RhMHc#gid=6
Oops! Almost forgot – we also made our own Harlem Shake Video: https://www.youtube.com/embed/tn4Evp8BN1U
Debugging NO KEY warning during “yum install vlc”
This is a problem that I encountered today while tryiing to install VLC media player on my brand new Fedora 18 installation.
Right after the dependency resolutions are complete, yum returns the following warning:-
Transaction Summary
===============================================
Install 1 Package (+45 Dependent packages)Total size: 37 M
Installed size: 118 M
Is this ok [y/N]: y
Downloading Packages:
warning: /var/cache/yum/i386/18/rpmfusion-free/packages/live555-0-0.38.2012.10.18.fc18.i686.rpm: Header V3 RSA/SHA256 Signature, key ID 982e0a7c: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-18-i386GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-18-i386
Did a bit of snooping around over the internet and found the missing rpmfusion keys at: http://rpmfusion.org/keys and derived the following solution:-
Step by step solution to the problem [root login used]:-
- I have already compiled the key into a single .gz file, which can be downloaded from this link: http://goo.gl/bKoyb
- Place the .gz file in the directory: /etc/pki/rpm-gpg/
- #cd /etc/pki/rpm-gpg/
- #tar -xvzf RPM-GPG-KEY-rpmfusion.tar.gz
- rm RPM-GPG-KEY-rpmfusion.tar.gz
- #yum install vlc
- You should get this output after dependency resolution is complete:
Transaction Summary
===============================================
Install 1 Package (+45 Dependent packages)Total size: 37 M
Installed size: 118 M
Is this ok [y/N]: y
Downloading Packages:
warning: /var/cache/yum/i386/18/rpmfusion-free/packages/live555-0-0.38.2012.10.18.fc18.i686.rpm: Header V3 RSA/SHA256 Signature, key ID 982e0a7c: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-18-i386
Importing GPG key 0x982E0A7C:
Userid : “RPM Fusion free repository for Fedora (18) <rpmfusion-buildsys@lists.rpmfusion.org>”
Fingerprint: c63d a8f3 375c 7182 3e3a 2d42 3633 9914 982e 0a7c
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-18-i386
Is this ok [y/N]: - Enter ‘y’ (without the quotes!)
Voila! VLC’s installed!
NOTE:It is highly recommended to do a ‘yum update’ after the installation procedure is complete, as it helps ensuring that the new rpm keys are standards-compliant!
LAMP Setup for Fedora 18
Easy steps to setup Fedora 18 as a LAMP server containing Apache, PHP, Perl, Python, Ruby and MySQL.
P.S.: This requires root access to the shell.
Step 1: Open terminal as root user and enter the following:
#yum install -y httpd php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy php-mysql php-odbc php-pear php-mhash curl perl-libwww-perl ImageMagick libxml2 php-pecl-apc mysql mysql-server phpmyadmin at ruby mod_python perl mod_perl perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-ExtUtils-AutoInstall perl-NetAddr-IP perl-Archive-Tar
Step 2: To enable the Apache Webserver and MySQL Database server, run:
#systemctl enable httpd.service
#systemctl start httpd.service
#systemctl enable mysqld.service
#systemctl start mysqld.service
#mysql_secure_installation
Adobe Flex Builder 3 Download
I had to track down a download location for Adobe's Flex 3 install today. It was a little hard to find so I thought I'd share this link for a Windows install:
http://download.macromedia.com/pub/flex/flex_builder/FB3_win.exe
Why it's at a macromedia.com address I have no clue, but hope this helps someone out. This defaults to a 60 day trail and you can enter your license as well.
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-ever “Summer 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 Pune, BVP Delhi, IIT Delhi, Anthiyur, Erode 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:
MozParty 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
Web Making Tools – Hackasaurus & Thimble: Sayak
Basic Web Technology: Debloper
Apps in HTML5 & B2G: Debloper
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





































