It’s raining Rust at Red Hat

I know it’s been a while since I’ve put out a post and mostly because I’m trying to learn amazing things and get my hands dirty, trying to build solutions that actually make sense.

One such pet-project has been Rust, probably the fastest growing systems level programming language today. Hitherto, I’ve always looked at Rust from the outside, never got my hands dirty, mostly because I was under the assumption that it had nothing to do with web development. Turns out, I was completely wrong!

This year’s Rain of Rust campaign gave me an opportunity to revisit the programming language and the reason why it’s been garnering interests at astronomical pace. For a nascent programming language which is in the 1.19th version of its release, it’s challenging the big guns – C and C++. Yes, you heard it right.

On to the campaign

The campaign, although initiated and led by volunteers from the Mozilla India community at first was later adopted by the larger Mozilla community with contributions from all over the world like these events in Mexico and Brazil. The main goal of the event was to increase outreach about the language and train developers to contribute in the rust ecosystem.

At Bangalore

As one of the crucial aspects of the campaign was to organize on-the-ground events and so, with the gracious support of our host Sumantro at Red Hat, we managed to pull of a small event consisting of rust enthusiasts and Mozilla Tech Speakers.

We had our very own Vigneshwer leading the introduction to rust and hands-on session. This was well taken by the participants who had just installed rust and exploring what they could do with the language.

With witty remarks, use cases and insights of the language, Vigneshwer kept the participants interested. During the hands-on he introduced the kits built by the Rust India community and explained how participants could use them to learn the language. On the whole, it was a well-rounded session and helped the participants understand why rust is important and how they could contribute.

We then had a talk by Ravi from Ather energy which has used rust components to send  location data packets from its two-wheeler vehicles to the cloud in a secure and reliable fashion. His talk was inspirational as the participants were able to visualize how rust could be used in a production scenario.

For the last talk of the day, we had our own ReMo and host Sumantro show a demo on Rocket, a simple web framework for rust developers. This was in particular interest to me as a web developer, hitherto I was under the impression that rust could only be used for parallel computing and system level programming scenarios.  Now that I know rust has a fast and safe web framework, watch out JavaScript! Here’s Sumantro’s post on how to set it up on Fedora.


Last word

On the whole it was personally fulfilling that we pulled off a workshop in ~1 week of planning and what was comforting was that the feedback we received through the new ReMo feedback form was a 6+ on a scale of 0-7. Yay!

Finishing off with a mighty group photo. A round of shout-outs to Bhumika and Ra Fey for helping us out with the posters and social media calls to action! You guys are wonderful. ^_^


Rust Workshop | June 2017 | Bangalore

Rust Workshop | June 2017 | Bangalore



Mozilla at 4CCON

I’m writing a blog post after a long, long time and the reason why I’ve been dormant is because I’ve not done anything of significance for the past 6 months. As I’m writing this, I’m also watching the US Open Semifinals between Rafa and Dimitrov (the 5th set is on and I really hope Rafa wins this one! *fingers crossed*).

Back to my story, I had the wonderful opportunity to represent Mozilla at 4CCON (Collaboration, Contribution, Communities and Commons) which is a National Level Conference organized by FSMI, a premier free software organization in India. I was invited to give an advanced workshop on using Selenium for testing web applications using Python on the Firefox browser.

The session went well, initially with 15 participants which later swelled into a crowd of 50 participants. The conference had workshops in a variety of topics and my session was scheduled to be on the first day – the 26th of January. Incidentally, it was the Republic Day of the country – I feel good sharing the things I’ve learned and practiced on the very day the Indian Constitution came into effect, over 60 years ago.

The full day workshop started off with a quick introduction on Python as a programming language, moving on to the uses and applications of the Selenium test framework and most importantly – the significance of unit testing. I highlighted the various API methods that Python developers could use to test a simple web page. The entire slide deck of the 1 day workshop is hosted online here.

In the later half of the day, I made the participants set up a basic website on their own and test for simple elements on the page like Dialog Boxes, Forms and Links. The participants found it interesting to inspect the DOM (Document Object Model) structure of their favorite websites and give various test scenarios and the exciting part was when they actually found a few bugs.

At the end of my workshop, I had a section on Open Source projects and how the participants could contribute. I shared stories of many successful people who started off fixing the odd bug here and there – are now the leaders in their technology fields. This was found to be inspirational by the participants there.


During the next 2 days of the conference I was invited as a delegate and attended various keynotes apart from meeting many FOSS enthusiasts whom I had met only virtually, hitherto.

On the whole, it was a productive workshop and I hope the participants will take up open source contribution and do justice to the enthusiasm they’ve displayed.

Chennai has grown in leaps, I hope to see better things in the days to come. 🙂



Setting the stage for CC

After the Leadership Summit at Singapore, I have always connected myself closely with Mozilla’s Campus Campaign (CC) initiative – the idea to tap students’ potential to bring about a change in behavior, to bring about change in policy at a massive scale and finally innovate through the process.

Mozilla’s brainchild comes at a crucial time – especially with respect to India, where IIT alums are becoming Ministers of State and students from JNU are evoking tremendous change in mindset of the entire nation. Considering this as testament to the power of students on college campuses, I set about my own planning sprint for Mozilla’s Campus Campaign which aims to take back the web, in ways you can only imagine!

Kochi, 18th March 2016
This took quite some planning and a consolidated effort from Kumaresan, FSA E-board and me. The idea here was to update the regional community (Mozilla Kerala)  at Kochi about what I learnt at the Leadership Summit, unveiling the curtains on the big Campus Campaign and finally formulate a plan of action! Although this seemed far-fetched when I initially kicked off, I am happy to say that I accomplished all the 3 goals I met for myself and more!

Since this was a community meetup, we (Kumaresan & I) made into an invite only event – so that people who have been a part of the community for quite some time were the only ones turning up. After setting up a form, soliciting responses and filtering – we finally came up with a shortlist of attendees. These people were then invited to join us at Cochin University’s Hacker Space – a student driven center for innovation on campus. (I’d love to have one of those on my campus). 

On 18th March the day of the meet-up, I reached the venue early just to ensure that I don’t go lost wandering around the huge campus, and as I make my entrance – I find this!

CUSAT entrance

CUSAT entrance

Yes, coincidentally the Arts Festival of Cochin University for 2016 was exactly on that very day! Talk about timing. Anyways, I had my work cut out for me at the Hacker Space. Since I reached well in advance – I was able to understand how the space worked, who is involved, etc from Shibin another amazing Mozillian from the community.

As the meet-up’s starting time neared, we had a slow trickle of community members and around 5 we had a full house of 25 people – our target! Yay. The audience was majorly FSAs (Firefox Student Ambassadors), with some participation from the Reps at Kochi. I first went on to introduce myself, tell them what I do and why I am there all the way from Bangalore – to talk about the CC in length and along with them, chalk out an amazing plan. I used my slide-deck on Mozilla inspired by Brian King to get the ball rolling, later talked about my own experience at the Leadership Summit and then moved on to pitch the CC.


Campus Campaign pitch

I talked specifically about the three goals as part of the campaign, specifically with reference to the Indian context.

  • Policy change
  • Behavior change
  • Technology & innovation

Later, we split into groups to discuss more on the tasks that would click in each college and when would be the best time to conduct it. Here’s Kumaresan taking the lead in one such group activity.

We re-grouped and shared our notes and it turns out mostly our thoughts were the same. I’ve listed them all out on the etherpad here! For those of you who don’t know – Mozilla Kerala is fragmented into 3 zones, the Trivandrum community, Kochi community and the Calicut community. After a rough estimate of 5 colleges per sub-community, we’d be looking at 15 active campuses during the campaign. Taking into the consideration the exam as well as holiday schedule at Kerala, this is a tentative timeline we’ve drawn up:

  1. March end – finalize campuses
  2. April second week – finalize 2-3 contacts in each campus
  3. Through April – decide strategies & fix outcomes
  4. April end & May – contact over e-mail (exams)
  5. June second week – Campaign kick-off!

Post this, we had amazing burgers waiting for us and more importantly, 7up – that did a good job of quenching my thirst!

Personally, I think this was a very crucial meeting with the up-coming CC and some amount of restructuring is necessary and I believe I was able to drive the message across – about why taking back the web is necessary. And we will!



Flash Android L stock on Sony Xperia Z3 Compact using a Linux machine

So I decided I’d like to flash Android on Sony’s Z3 Compact device and spent the whole of the past two days on figuring out how to do it without taking the help of a Windows machine.

I’ve tested the process on Ubuntu 14.04 LTS as well as Fedora 23. Here, goes!

  1. Add udev rules so that the system recognizes the device
    # sudo wget -O /etc/udev/rules.d/51-android.rules
    # sudo chmod a+r /etc/udev/rules.d/51-android.rules
  2. Install Android tools required just to flash a ROM
    # sudo apt-get install android-tools-adb android-tools-fastboot
  3. Update to ADB 1.0.32
    #adb version
    Android Debug Bridge version 1.0.31
    # wget -O - | tar -zxvf - adb
    # sudo mv adb /usr/bin/adb
    # sudo chmod +x /usr/bin/adb
    # adb version
    Android Debug Bridge version 1.0.32
  4. Download the FlashTool app from here for Linux. The file is of the form .7z and so you need to install the 7zip package using this:
    # 7Zip for extracting the package
    sudo apt-get install p7zip-full
  5. Extract the downloaded file preferably in a directory which has 644 permissions set.
  6. To run the FlashTool, we’ll be needing open-jdk and so we’ll need to install it:
    # Java to run the program
    sudo apt-get install openjdk-7-jre
  7. To make sure your FlashTool is working fine, run this command where you’ve extracted the folder:
    [abhiram@localhost xperia]$ pwd
    [abhiram@localhost xperia]$ sudo FlashTool/FlashTool
    [sudo] password for abhiram: 
    Running as root.
    Used java home : ./x10flasher_lib/linjre64
    1. And the pop-up window appearsScreenshot from 2016-03-04 23-26-58
  8. Please wait till the sync gets completed and then proceed to download the ROM image of your choice. I’ve used the custom ROM which can be downloaded here. Ensure that the downloaded file has to be of the form .ftf 
  9. Place the downloaded .ftf file in the folder /root/.flashTool/firmwares
    [abhiram@localhost rom]$ sudo su
    [root@localhost rom]# cd /root/.flashTool/firmwares/
    [root@localhost firmwares]# ls
    Downloads prepared sinExtracted
    [root@localhost firmwares]# cp /home/abhiram/Documents/xperia/rom/D5803_23.4.A.1.264_IT.ftf .
  10. If all goes well, you can connect your phone to the machine using an USB cable and the message appears in the FlashTool saying that your device has been connected. Once you’ve selected the device type as Sony Xperia Z3 Compact you’re all set to flash your device.
  11. Disconnect the device, Click on the lightning bolt in the top left of Flashtool to “Flash device”.



  12. Select “Flashmode” and click “OK”.

Screenshot from 2016-03-05 20-56-31

13. Select the firmware build version that you want to flash from the “Firmware” pane. If you want to retain your apps/data, untick “DATA” in the “Wipe” pane. Then click “Flash”.

14. Flashtool will then indicate that it is “preparing files for flashing”.


You may have to wait around 60 seconds for the pop-up below to appear. Once it does, you should now connect your Sony Xperia device. Make sure the device is powered off and then hold the ‘volume down’ button whilst connecting the USB cable. Once the pop-up disappears and flashing has started, you can let go of the ‘volume down’ button.

NOTE: Ignore the instructions displayed which says “press the back button” – these relate to the older Sony Ericsson Xperia handsets.

Flash Tool Update

Flashtool will then start flashing your Xperia device. Once you see “Flashing finished” as indicated below, your Sony Xperia has been successfully flashed.

Congratulations you have just installed Android Lollipop! Now disconnect your Xperia device and power on the handset. Don’t despair if it takes a while for the handset to boot.




What it means to us, the TRAI mandate

Recently, the Indian telecom regulator TRAI (Telecom Regulatory Authority of India) announced its decision on the issue of differential pricing for data services, after a month long consultation process which can be found in the PDF here. The regulation point blankly rules out differential pricing on Internet services, meaning every packet of data received by a mobile device or a computer from his/her service provider should be priced equally.

For example, if you download 10 MB file from your Goolge Drive or you download a 10 MB file using an FTP Client from your shared hosting, they need to take the same time to get downloaded onto your machine.

As a common man, what it means to you:

  • The entire internet is at your service for the amount you pay
  • You’ll no longer be deceived by dubious claims of free Facebook or free WhatsApp
  • Nobody can take advantage of your data to make money claiming free services (although there are other ways in which your data can be monetized with/without your permission)

As a budding developer, what it means to you:

  • You can still come up with the next Facebook – and if your app is kick-ass people are going to love it
  • You needn’t partner with any third party agency to setup your website or put your app in the market
  • The data you collect from your customers is your own – you needn’t give up user data for some cheesy benefits

As a start-up guy/girl, what it means to you:

  • Your apps have the same playing field as that of Facebook, Uber, etc
  • There is no bias in how users perceive your app unless you want them to
  • Principle of net neutrality is upheld, which ensures that no other app can have more preference over yours and your app may well go on to be one of the world’s best

Good times ahead, thanks for each one of you who contributed to this victory!

PS: The taste of success sure is sweet, caramel sweet! 😉

Together, we SavedTheInternet !

Together, we SavedTheInternet !