Posts Tagged Open Source
Some Reflections on The Open Source Course
Posted by Sid in Mercurial Project, Open Source on December 7th, 2008
Regular classes for this semester have finally come to an end which means that the open source course for this semester has also reached the finish line. This is the first time I’ve taken such a course. I think it is very unique. Seneca, or for that matter other Colleges or Universities don’t offer a course such as this one. I’ve definitely enjoyed myself while working on this, which is not to say that I didn’t go through frustrating times. Throughout this course I have been guided by jorendorff, ted, djc and bsmedberg. Thank you to all of them, without their help I wouldn’t have been able to get very far. I really appreciate the help.
I think that this course has pushed me to the limits of my ability and beyond. Before this semester I didn’t know anything about Python, jquery, Mercurial or for that matter JavaScript (at least not in the manner that Mozilla uses it). I’ve had to learn all these technologies in one semester and apply them into something that worked and would be accepted by Mozilla. It has been amazingly difficult and challenging. Out of all my subjects I have definitely committed the most amount of hours to this course, by far. Almost every other day I was working on the something related to this course. Reflecting back, over the semester I have written 40+ blog posts and release 10+ patches, not to mention the labs and contributions that I did.
I think the whole blogging idea is ingenious. This blog has become a way for me to let the community know what I am doing. This is the true essence of open source as nothing is hidden from the community. Also, I think this blog has become a great asset for me. I will be referencing this blog in my resume so that I can show prospective employers what I have done with Mozilla and what kind of skills and experiences I have garnered. This process definitely makes everything transparent.
Overall, I think this course is extremely helpful and I would recommend it to every student in the CPA and BSD programs. It really separates the men from the boys. However, I think there are ways in which the course can be improved. I believe the biggest problem is that there is not boundary line available. Throughout the course I had to ask myself, is this enough? Do I have enough contributions? Did I blog enough? Did I provide enough information? There is no right answer for these questions as Dave doesn’t want to answer them. I can understand why as these questions made me push myself to do everything possible in order to make sure that I had reached that invincible safety area. Not having the knowledge that you have done enough to get a good mark makes you do even more until there is no time left, at least that is true in my case. Even though this is a good thing it really affects the other courses that one maybe taking. This course will take up as much as time as you are willing to give to it. There is no boundary. I think there should be some sort of boundary to give you that sense of reassurance that you are in the safe zone so that you don’t dedicate all your time to this course while potentially neglecting your other courses. I don’t know if others feel the same way but I got this feeling throughout the course.
I’m relatively certain that I will be taking the next open source course. I had a conversation with jorendorff and ted and it seems that there is plenty more things that I could work on next semester related to hgweb. Although, I’m not 100% certain yet if I’m I’m going to take the next iteration of the course. I need to check my schedule and look at the other courses I will be taking and then I will make a final decision. For now all my attention will turn towards my exams, which are ominously lingering over the horizon.
Overall a wonderful and challenging course that taught many new things. I want to thank Dave Humphrey for providing the building blocks and continously pushing us to limit throughout the semester. It was fun!
Have a happy holidays everyone!
FSOSS 2008 - Thoughts and Experiences
Posted by Sid in Open Source on October 24th, 2008
Today was the first day of the annual FSOSS (Free Software and Open Source Symposium) held at Seneca College, Toronto. The day began with registration which started at 8:15am. I got there at around 8:50 (just in time since the first round of presentations were slated to begin at 9am). Each person attending the conference was given a Seneca handbag with various things inside (including an FSOSS T-shirt, schedule booklet and the latest Ubuntu CD). The last couple of years there has been at least one key note speaker but that wasn’t the case this time around. Everybody was ushered into the various tracks and all the presentations began immediately.
Software Security
This time around the first day had four tracks instead of the usual three. This new track carried the same theme throughout as various Seneca people gave their thoughts relating to open source. I chose not to attend any of these tracks since I already have some idea of what they were going to talk about. The very first presentation that I attended, The Most Important Thing - How Mozilla Does Security, and What You can Steal was excellent. The speaker, Johnathan Nightingale was clear and confident, he knew his stuff. I found it interesting how he called browsers “stupid” since they download unknown code 3rd party and run it. I agree with him, it is “stupid” but that is what makes a browser so useful. The ability to run other people’s code situated anywhere on web makes the browser the most used application on a person’s desktop. Throughout the presentation Johnathan kept emphasizing the importance of writing tests. I think everybody agrees that they are needed, it’s just that it’s difficult finding people who want or like writing them. Tests are one of those things that are essential but are always hated. They are not fun or “cool” to most people. They are like taking medicine, we might hate the procedure but the results are beneficial in every way. The presenter stated that the most important thing is to learn from your mistakes so that you never make them again. I think this can’t be stated enough, even if I bolded, underlined and capitalized that statement it wouldn’t be enough. Such a statement doesn’t just apply to software security, it applies to life itself. I know that it has been repeated many many times over the years but people still don’t seem to get it. Albert Einstein once said, “The definition of insanity is doing the same thing over and over and expecting different results”. History repeats itself and learning from it is essential if you are to succeed.
Open Source Communities
I enjoyed the security presentation (see above) immensely, it was one of my favorite this year but I have to say that the last presentation that I attended, Community Building and the Architecture of Participation was absolutely brilliant. Greg DeKoenigsberg was captivating and expressive. He put forward an important question that I think many of us at FSOSS take for granted. He asked whether free software was better? This got me thinking. We all assume that it is better just because it’s free and open. The presenter said that he thought the answer to his question was yes, it is better. But I don’t know if he was clear enough with his question. What does he mean by “better”? Better in price? Better in quality? Better in service? In many of these categories free software can sometimes leave the user disappointed. Nonetheless, I think the presenter is right that free software is better, definitely from a philosophical and ethical standpoint at the very least. Now, the goal of every free software practitioner and supporter should be to make it better in every other way possible, but that is easier said then done. Another interesting point that came up during the talk was the way to get new contributors involved in your open source project. The presenter expressed that fact that it is important that one must allow people to start from the “edges” and work towards the “core”. Now what does this exactly mean? Well, many times open source software can be very challenging to get involved in. Many communities fail to provide a starting point that pushes new users in the right directions and allows them to learn more about the project. Basically, when a project fails to provide areas that beginners can easily work on the barrier of entry is increased exponentially and the likelihood of that project getting new users that eventually contribute significant knowledge decreases drastically. I wholeheartedly agree with Greg on this issue. It is a major problem with some of the open source projects out there today. How can this be fixed? How can projects make it easier for beginners to get involved? Couple of things that will definitely help are clear and concise documentation and helpful community members. It is important to let new users know that they are desired and that the work they are doing is important (even if it might not be). Attracting fresh recruits is a constant challenge for any organization or project and it is important to handle it correctly to secure the future of the project.
In the End…
Overall, FSOSS was an incredible learning experience for me, as always. The speakers mostly did a great job (excluding one talk, which I will not name) and I enjoyed myself throughtout the conference. I was glad to see more Seneca students come out to than conference than I have in the past two years so that is always good. I wish more students would take advantage of this great opportunity of having such a reputable conference right in our back yard. I wish I could have attended all the talks but alas that was impossible. I look forward to when the videos for each talk are released. The only thing missing from this years conference was a key note speaker. Nonetheless it was a great conference and I would like to thank all the volunteers and faculty that made it possible. I keenly look forward to FSOSS 2009.
Mercurial - Installation and beyond
Posted by Sid in Mercurial Project, Open Source on September 24th, 2008
I had a chat with the jorendorff today about what I need to do to get my Mercurial (aka hg) project rolling. He outlined the steps we should look to take…
- We have to make sure you understand hg
- We have to decide on some very small thing that you can get running very soon
- We should talk it over and make sure it’s clear how to do it
- We should plan to meet up later and brainstorm some, once you’ve had a chance to play around with hg
I can add another point to this. I need to decide what exactly I will be doing for my 0.1 version release. Right now I don’t have a clue. But first things first, I need to install and play around with hg. Here goes…
Installation
I will be installing on Vista (yeah, I know what you’re thinking but seriously, it works fine) so I need to find a windows installation. The installing Mercurial guide recommends just installing MozillaBuild since hg comes packaged with it. But I rather not do that at the moment because I don’t need the rest of the tools from MozillaBuild. Well, I was in luck since there are binary packages for Windows here and even Mac. So I downloaded the binary and went through the installation.
Now to check if hg installed properly just head to the dir where you installed it (using cmd) and run hg.exe. Then type hg version to get the version info. You should get something like this…

Now, I needed to make some changes to a config file. All the guides I read were telling me to make changes to a hgrc file but I couldn’t really find any config file with that name. It turns out you need to make changes to Mercurial.ini file for windows and the hgrc file is for UNIX systems. Here you need to tell hg what merge program to use. I decided to go with TortoiseMerge since I am already familiar with TortoiseSVN.
Downloading Mozilla Source
Now to get to the real part. All the preliminary work leads up to the moment of truth! Downloading the Mozilla trunk source! Now to do this you need to use the hg clone command and pull from http://hg.mozilla.org/mozilla-central/
One thing that hg desperately needs is a way to know your download progress. If you haven’t ever downloaded the Mozilla source then let me just tell you that it is HUMONGOUS! I’m not kidding. It took forever to download it. Ah, command line tools, you win some and you loose some.
Beyond
What’s next after downloading the source? Well you can do many things i.e. pull a file and make changes to it then push it back in and much much more. Since I will be working with everything related to history I decided to try out the hg log feature. This command, by default prints each change recorded to the project. Each of these recorded events are known as changesets because they can contain records of changes to several files.
I will continue to play around with hg and hopefully make progress. Meanwhile jorendorff has a post on his blog about hgweb in which he’s calling for ideas to improve it (this will be my job) so go over there and contribute!
Mercurial, A Distributed Version Control System
Posted by Sid in Open Source on September 22nd, 2008
Well, I’ve finally decided on my project for this open source course. I am happy to report that I will be working on Mercurial. For anyone that doesn’t know it is a Distributed Version Control Sytem (DVCS). Now if you are like me you’re probably wondering what in the world that is? Is it like subversion or CVS, if not then whats the difference? Let me explain…
Centralized Version Control System (CVCS) vs Distributed Version Control System (DVCS)
- CVCS focuses on synchronizing, tracking and backing up files
- DVCS is for sharing changes. Every change has a GUID
- Downloading or Recording and applying changes are all separate steps while in a CVCS the happen together
- DVCS would be suitable for larger projects with many developers
Mercurial is now used to house all Mozilla source. One of the advantages of a DVCS like Mercurial is that it frequently has branches and merges. The downside of this is that the history can become complicated and confusing very fast. For the project my job will be create a hopefully awesome browser-based UI for navigating Mercurial repository history. But before we can get to that it is important to understand how Mercurial iteself works. One can find a great getting started guide to Mercurial here. Have a read if you are interested.
Now my next task is to quickly get in touch with people who can guide me in the right direction and get me started on this project. But first I’m going to try to download Mercurial and pull the Firefox source with my own two hands. I hope to have my experiences on here in the coming week…
Picking an Open Source Project
Posted by Sid in Open Source on September 13th, 2008
Well the time to choose my project for the open source class is approaching very quickly. I’ve narrowed my choice down to 3 now. But I’m still in a dilemma. Which one should I go with? Well, lets look at my choices first…
- Contribute to Private Browsing Tests
- Create Self Serve Symbol Upload System
- Help Calendar Integration on Trunk
I find all three to be interesting and would love to do all of them in fact. However, I need to choose one (Must follow the rules, am I right?). Lets have a closer look at each of them…
Contribute to Private Browsing Tests
Firefox is implementing a new private browsing feature that will allow users to conduct their activities on the Internet without leaving any traces behind. Chrome and IE 8 Beta have already implemented this feature and Firefox doesn’t want to be left behind. I would love to be part of this effort. Privacy is something that every user craves on the Internet and at the moment there is very little of it. Implementing this feature would definitely put Firefox in the same league as its competitors in terms of user privacy. Contributing to such a pivotal feature definitely interests me.
Create Self Serve Symbol Upload System
Mozilla has a symbol server that developers use to debug issues in release builds that don’t have debug information. Many crashes are related to third party plugins or add-ons. This project would involve setting up some way by which plugin or add-on developers could upload their symbols. It apparently involves web development, which I am very fond of. I don’t know much about symbols so that has me a bit perturbed. Nonetheless I wouldn’t mind in the least bit to work on this project.
Help Calendar Integration on Trunk
To be honest I don’t know much about this project. I definitely prefer the other 2 projects above. This is more of a backup project for me. As far as I know trunk is the main Mozilla source tree and this project mandates that a calendar be setup to integrate with trunk. I’m not exactly sure how this would be useful or how it would be implemented but I’m willing to find out.
To be perfectly honest right now I’m leaning heavily towards the private browising tests project. I’ve contacted the main resources, Ehsan and Marcia and they’ve given me further details about the project. I’m hoping to meet couple of the QA guys coming to the Mozilla Developer Conference here at Seneca to have a chat so that I can get more details about the project. Hopefully by Monday I will have decided which project I will persue so be on the look out.
Google’s Chrome Enters the Web Browser Race
Posted by Sid in Open Source on September 6th, 2008
I’m sure by now that everybody has heard of Google’s sudden entry into the browser market. This has raised many new questions for Google’s competitors. Will Chrome be able to eat into the marketshare of IE? Will Google continue to support Mozilla? Only time will be able to answer some of these questions.
Chrome has made a good start and has already made an impact in the browser market. I’m sure placing the download link for Chrome at google.com has definately helped boost that number. Things can only go up from here as more and more people hear about this new application and are willing to try it. Offcourse, it also depends what people actually hear. If the consensus is positive more people are likely to adopt it. Unfortunately, Chrome’s reputation has already taken a slight hit with security vulnerabilities already being detected. On the other hand Chrome’s design and features must have caught the eye of many.
One thing that is definately certain with the release of Chrome is that the era of isolated desktop applications is coming to an end. Some of the best programs these days are web based and they work perfectly fine while providing the added functionality of the Internet. Google has designed Chrome to work efficiently with these web applications, taking full advantage of technologies such as Ajax. It will be interesting to see the results when developers start to optimize their applications for Chrome. In fact NetSuite has already done so and the results are apparently very positive.
As many of you must be aware Chrome is an open source browser. This can only have positive implications for the open source culture. When such a well known and respected company like Google releases an application like a web browse and makes it open source it really sends a message to everyone. It is ok for things to be open source. Applications can be open source and still thrive and compete with proprietary software. Firefox has already proven that to us and hopefully Chrome will take it one step further.
I want to leave you with this video titled “The Story Behind Google Chrome”…
Open Source (Bazaar) vs Proprietary (Cathedral)
Posted by Sid in Open Source on September 3rd, 2008
As part of the open source course I’m taking at Seneca our professor, David Humphery asked the students to read an article, watch a video and listen to an audio file as the very first assignment for the course.
I found all of them to be quite interesting and informative, although I had already watched the aforementioned video in the past. Nonetheless they sculpt an intriguing perspective concerning the rivlary between the open source and proprietary ideologies. At the forefront of this war are the two Operating Systems, Linux and Windows.
The author of the previously mentioned article talks about how linux development is like a bazaar with different parties who have differing priorities and agendas fighting with eachother. I have to agree with him when he says that it is simply a miracle that a coherent and stable OS can result from such a mess. Here in lies the weakness and, in my opinion, the strength of open source development. Open source is meant to be chaotic and unorganized. When many people are working together from different locations with the internet as their only communication it is only normal for problems to develop. Many times there is no collective vision for open source projects which leads to arguments. However, this can also be considered a strength because this openess allows everyone to contribute their ideas and suggestions. The whole concept of open source software is that anyone that wants to, can add their contribution to the project in anyway possible. This is what makes open source development different and in a way, better than proprietary development methods.
The video takes an in depth look into the early years of open source development. I have to say that, like others I am quite disappointed in how Linux has failed to scale the Microsoft wall. In the early years there was so much promise but so far Microsoft seems to be indestructible even after considering the relative failures of Vista. In fact I would that think the people disillusioned by Vista have made the Jump to Mac instead of going over to Linux. Now why is this happening? There are many answers to this question. It could be because the average user doesn’t know much about Linux or how the abundance of Linux flavors confuses non-techies. Fact is that what we are doing is not working. Something needs to change for Linux to enter the main stream. I am sad to report that even I don’t use Linux at the moment.
Overall, this course is looking very promising. It is different and more realistic. I think I am going to enjoy it very much. I know its going to take a lot of hard work and dedication, hopefully I am up to the task.