Friday, October 14, 2011

Setting up Lightning Extension Development Environment

Setting up a development Environment for Mozilla Lightning (Calendar Project)

Ok so you want to work and solve some bugs in lightning, without wasting much of your time. How do you go about doing it? And also you do not want to spend much time on building the entire Thunderbird application everytime you changed something in calUtils.cpp or calCachedCalendar.js. Well there is a solution to it. But before that, we need to pull the Code from http://hg.mozilla.org

The fundamental difference is that lightning is an extension and does not need thunderbird to be built again and again, if there are changes to lightning. Hence, you can set up a extension development environment for lightning, just like you do for firefox. Unfortunately, nothing exists for Thunderbird. I figured this out, after I was developing the code for Lightning on an Inverse branch.

Here are the steps:
  • Follow the steps at https://developer.mozilla.org/En/Simple_Thunderbird_build to get a working copy of the Thunderbird + Lightning build.
  • Open up command line in Linux or MacOS.
  • When you build TB you will notice a in your comm-central directory. This is where all the built components are stored. Using command line, navigate to "obj-x86_64-apple-darwin10.8.0/mozilla/dist/Daily.app/Contents/MacOS/extensions/". It should be something similar on Linux.
  • Delete the "{e2fda1a4-762b-4020-b5ad-a41df1933103}" directory. This is the directory where lightning components reside.
  • Now create a soft link to: comm-central/obj-x86_64-apple-darwin10.8.0/mozilla/dist/xpi-stage/lightning. On Mac and Linux you can do this by executing:
    ln -s  "../../../../xpi-stage/lightning" "{e2fda1a4-762b-4020-b5ad-a41df1933103}"
    Notice that I am using relative paths here.
  • Now you all set, change something in "comm-central/calendar/*"
  • And change your directory to "comm-central/obj-x86_64-apple-darwin10.8.0/calendar"
  • And run make, and now thunderbird should be reflecting the changes you made. 
This worked, and my dev schedule for lightning is now quite fast.

Cheers

Mozilla Calendar Project

Okay so I am going to talk about the amazing stuff that I did during my summer vacations in 2011. I was involved with Mozilla. Yes ! Mozilla Corporation that delivers Firefox to your computers and the same Mozilla that started an open source war against Microsoft in the late 1990s. It became the model for open source years later. Anyways, so here's the stuff I did. I applied to a couple of organizations under Google Summer of Code 2011. Mozilla was one of the 3 organizations I applied to. And competition for Mozilla is tough. But I dunno why they chose me. I was placed under Mozilla Calendar project. And amazingly, the summer was amazing and I had the best times of my life, with a laptop, coding. It was creative, motivating and an enthralling experience. 

I wonder why an organization like Mozilla works and its the model, its based on which gives the necessary fuel. Open source is all around us. The real invention happens in the open. I used the term "invention" and not "innovation" since "innovation" happens within closed sourced communities like IBM and Microsoft and notably Apple. But, looking at the community, its amazing. People in universities, young people and dynamic ones, all get their hands dirty with code. It gives a great feeling. There is no separation of divisions, no notion of seniority, no notion of being left out. Even if you contribute an idea or a a single line of code or for that matter, point out a bug, You matter a lot. The community software, for the community and by the community. We have had great revolutions in the past. And most of them started small, grew big and then became a force to reckon with. Often the likes of Bill Gates and Steve Jobs talk in the plural "We did this", "We did that" and we assume that they are hard working. No doubt they are, but softwares by Apple and Microsoft don't convey the sense of community that has been created by facebook, internet etc. 

Software is like music, and like music, it can flow, get itself consumed by the masses, and become the tune of the times, become the voice of their feelings. Like music, it can be mixed, mashed up, get modified as the need be. And Mozilla I think in my view promotes that, and it should keep doing it so that we don't forget that as human beings, we talk and exchange ideas, make things work and usher in a revolution together.

Steve Jobs, the former Apple CEO, while taking a digg at Android, said "Open platforms do not always win". But one may ask, do open platforms need to win? The question is open, and for discussion and one cannot measure the quality from the number of sales. Its amazing that Steve Wozniak and Jobs started from Open hacks in their garages. 

It is for you to decide.


Monday, October 10, 2011

My First Live Writer Plugin

Recently I came across working in Windows Live Writer and as such came across a wild idea to create a plug in for Windows Live Writer, and I had a pretty energizing idea nevertheless to fill in the blanks. I figured out that I can create a facebook share or like button to be embedded within the blog posts. Primarily I use blogger for my blog spots however, when I was testing out the plug in I ran into various technical difficulties where providers had stopped even iFrames from being included within blog posts. I am trying to create a plugin that can have a workaround for this feature.
Till then you can enjoy the benefits of the plugin which inserts a link to like and a facebook share button to be able to post it onto one’s profile without having the need to copy the url or logging onto facebook. I must say facebook API is a very good one, I will try to explore as much of it as I can.

Saturday, September 3, 2011

Genesis

The semester has started off, and once again we have the chance to make amends and give off a new start. And it's saturday and I am writing these lines down.

So here's this saturday's breezer: