Tuesday, November 29, 2011

I had forgotten about this

While pursuing my degree in computer science one of my assignments requires me to have a blog component on a website I have to create. The website is pretty simple in concept, basically an ad for myself while meeting certain requirements like being assessable to the handicap(the blind or deaf). Another requirement is to have a blog on the website, either a real one or a mock blog where I have to program a functional blog with the ability to comment on all prior posts. Bring back this old blog seems more practical to me, making a mock blog will die off once I'm done with the assignment. This blog has a much higher chance of continuing after this assignment.

That is all for now, more posts will be coming soon.

Tuesday, February 16, 2010

Looking FireFox code

While looking FireFox code in the file


line 1727
i found the function "SwapBrowserAndCloseOther".

From what I can see these lines
1742 var ourIndex = aOurTab._tPos;
1743 const filter = this.mTabFilters[ourIndex];
1744 var tabListener = this.mTabListeners[ourIndex];
1745 var ourBrowser = this.getBrowserForTab(aOurTab);
1746 ourBrowser.webProgress.removeProgressListener(filter);
1747 filter.removeProgressListener(tabListener);
1748 var tabListenerBlank = tabListener.mBlank;

stop the tab a browser processes

while this line hooks the tabs processes to the new browser


Now for the long process of figuring out how these functions work

Looking at SeaMonkey Code

As you may know my project for OSD600 is moving tabs from one SeaMonkey browers to another SeaMonkey browser.

The Bug

This is a standard in FireFox so this project is copying a pasting code and making it work. The problem is SeaMonkey and FireFox is millions of lines of code. I was told a good place to start is the comm-central tree in the file tabbrowser.xml. There i found the following functions addtab, removetab, movetabto.


Now i need to find where FireFox handles tabs

Monday, February 8, 2010

Building SeaMonkey

Building SeaMonkey was a task I kept putting off but really didn't take that long considering the previous courses I have taken has me install the prerequisites for this task.

The first thing i had to do was install Mercurial

And download the SeaMonkey code off comm-central

I used the command to download and send the code to a the folder called src
hg clone http://hg.mozilla.org/releases/comm-1.9.1/file/c5c64590370a src
python client.py checkout

After downloading it i created the .mozconfig file.

ac_add_options --enable-application=suite
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-sm-release
mk_add_options MOZ_MAKE_FLAGS="-j4"

And tried to compile the source code. The problem i ran into was that i could not compile the code if the path to the code had spaces. What took me awhile to realize was the code downloaded from comm-central to my documents and setttings, and i couldn't rename that. I cut and paste the code else where which took 20 mintues, a lot files.

After figure that out i used the command
make -f client.mk

After and hour of compiling i was rewarded with no errors and a clean launch of SeaMonkey

Friday, January 29, 2010

Initial Project Plan

Project: Dragging tabs from one browser to another browser in Seamonkey

SeaMonkey is a web browser powered by Mozilla

The bug I have chosen to do is to add the functionality of dragging tabs from one SeaMonkey window to another. This functionality already exists in FireFox and has not been ported over to SeaMonkey. This project is a ease of use for the SeaMonkey users but I still think it is an important function to have. The reason why I have chosen to do this as my OSD600 project is because I am interested in the frontend work of web browsers. This project will give me insight into the inner workings of FireFox and SeaMonkey.

I found this project on this bug page

Following my work
I will keep progress of my on my blog

I am doing open source project for OSD600, a course at my school. Expect the following releases

0.1 Release Feb 25
-Transplant code from FireFox to SeaMonkey for moving tabs from browser to browser
0.2 Release Mar 15
-Begin to code classes to allow transfer or tabs between browsers
0.3 Release Apr 5
-Be able to move tabs from browser to browser

What I need to learn
In order for me to learn how to begin with this project I need to brush up on my javascript. Learn how FireFox handles its tabs and how it can move the tabs from browser to browser. Also learn how to SeaMonkey handles tabs.

Collaboration and Contribution
To help me with this project David Humphrey and Boris Zbarsky. Both of these people can help me with getting to know how FireFox and SeaMonkey works. Humphrey is the teacher who is teaches the Open Source course at my school and Zbarsky is the one who filed the bug which lead me to this project.

Humphrey’s blog http://vocamus.net/dave/

Zbarsky’s blog http://weblogs.mozillazine.org/bz/

Barriers in my way
This project seems very overwhelming to me and this is the first time I have done programming at this big of scale. Having only done most of my work in school I don’t really write programs greater then 1000 lines. I will need to focus myself and learn how both of these browsers handle tabs.

Saturday, January 23, 2010

Mailing lists


After looking throught a few mailings lits that mozilla offers the following caught my eye.



Layouts because one of the key things that drew me to firefox aside from being better then internet exloperer was the option to customize the look and layout. I'm the kind of person who like downloading skins, changing the appearance of windows to the point where people ask me what OS im using.

The other mailing list is bugzilla simplely for the reason it is a huge part of this community and if i want to take part i figure i should take a look into this.

Friday, January 15, 2010

Open Source Readings


My name is Jeffrey Lee and i am taking OSD600 this winter 2010 semester

After doing the readings my view on open source and the business method of developing software have been changed. They are very conflicting styles of developing software, the Cathedral vs Bazaar method as Eric Raymond put it. As i see it the bazaar method attracts more people who have a much greater interest in the project and thus is willing to work more passionately towards the benefit of the project and more people have a voice and can be heard. As oppose to the cathedral where there is one person leading the design which can lead to a much more narrow outlook on the project. Less eyes on the project thus less room for additions outside of the original scope of the project.

Another benefit of the bazaar method is the beta testers and the many eyes on the project itself. As Eric Raymond says your greatest resource is the beta testers because they have a greater interest in the project as oppose to the cathedral method where the testers are being paid to test and may not as interested in looking for exploits. Another benefit of the open source is everyone can look at the source code and point out the bugs and glitches so that the developers of the project can fix them before the release of version 1.0. Windows for example will release a 1.0 version of a operating system and let the user base report the errors thus the window that comes up and lets you report errors when a program crashes.

Another thing I've learned from the open source movement is that despite the fact that open source is usually a general interest hobby it can still profit like the cathedral method of developing. I was very surprised how much money is poured into open source projects like Firefox from large corporations. It perked my interest when i discovered how much other companies drive open source just so other competing companies like Microsoft from taking a monopoly on the internet.

I do believe that there is space for both methods of developing software, in a way it drives a healthy competition between the two sides.

So those are my thoughts on open source, I hoped you enjoyed