Sunday, November 25, 2007

xpcom labs

well i finished the xpcom labs; here are the outputs I got for these labs.
xpcom (part 1)

xpcom (part 2)

Sunday, November 11, 2007

thunderbird lab

In my previous psot; i forgot to post a link to my wiki; instead I just posted the URL to the link. Heres my link

Under lab notes; scroll down to Bug fix Thunderbird Lab; my patch is available along with the bug I filled a bug as well in bugzilla: Bug 6031

thunderbird lab

In this lab we were supposed to fix a bug where by a person who enters an '@' in the middle of two words; weather it be an email address or not; is mistaken as an email address

for example:
we can set up a meeting location at seneca@york; where seneca@york will be mis identified as an email address.

the location of the patch is on my wiki under Lab notes section link below
http://zenit.senecac.on.ca/wiki/index.php/User:Vbala#Lab_Notes

Monday, November 5, 2007

Vladimir Vukicevic's presentation on Debugging

According to Vladimir; the most important parts of debugging are setting up break points and watching how data is being manipulated through the program. Vladimir compared two major types of debuggers Visual Studio, and GDB. GDB is a more command line based debugger which is harder to use, but Vlad found this to be his debugger of choice over Visual studio debugger (or atleast thats what I took from it)

The advantages of using Visual Studio debugger was the ability to use the GUI for easier break point setting compared to GDB which is all command line and harder to implement break points. The advantage of setting break points or watch points is they are a good way to track data changes in bytes withing an address location. Vlad also talked about EMAX which has a hook up to GDB which offers a certain level of user interface for GDB. Vlad also stressed on that fact that debugging does not solve a bug; it merely helps you to retrieve a bunch of data that helps in removing bugs; sometimes debugging might just lead you to dead ends but there are those times when it can be very useful

Vlad also mentioned Venkeman and Firebug which are useful Java script debuggers. He then talked about dTrace or Dynamic Trace which is a way to track or trace execution of code /files over a running program. It is often a good way to show when files are being used, and or accessed, and network connections are being made.

He then talked about probes used within GDB. His purpose for a probe or my understanding of his purpose of a probe is that they are used to identify target areas where the code addresses certain data variables and where the changes are being made or updated. Probes are used as a way of defining the "target" for a certain file area to be addressed during debugging. Vlad also noted that GDB has a tendency to be buggy or crash in a Linux based environment.

Vlad also touched on Chronicle which is a framework that provides complete registry and memory level recording for linux processes and efficient queries over the recorded traces. Chronomancer is another program that offers a GUI front end for Chronicle.

Overall it was a very informative session and was definitely a unique and unparalled opportunity to watch one of the programming elites of Mozilla going through and breaking down what he does for a living.

Saturday, October 27, 2007

FSOSS

Well; what an event! for a first time newbie who has had little or no exposure into the OS world; this was quite an opener. I attended more than two presentations; and volunteered in more than one role for this event, so it was quite an interesting place to be.

The presentations I attended were
  • Benjamin Smedberg's reading code presentation
  • Mike Beltzner's presentation on user experience design in open communities (funny and intriguing presentation; one of his lines is still stuck in my head "Well since no one has any questions; Ill show you Leopard and my Icons....weeeeeeeeeeee" =))
  • Mark Surman's open sourcing education in South Africa and rest of the world
  • Lawrence Mandel's & Jeffrey Liu's open commercial development
  • Bob young's applying open source concepts to non-software industries -- (by far the most friendly, humble and most experienced one of them all in my opinion; not that all the other people who presented were bad; its just he was so much more captivating in the way he presented his topic)
  • Community Management as open Source's core Competency by David Eaves
  • Community as a Core competency by Bryan Krischner
Oh btw the lunch was great too. My hats off to Dave to for actually organizing (i bet he had help; so my hat is off to those who helped him as well) in all of this and to all the volunteers. Definetly be in next year if it is run again.

catching up on the labs

Well break week flew by like it was on over-drive; and schools peaking around the corner again. FSOSS was definitely a noteworthy event and a must do for students; as it is a good way to network with people.

Well the hello, world extension is done; now moving onto the next lab.

Friday, October 19, 2007

Mark Finkle Presentation

Watching him in action was like watching a seasoned race car driver pushing his car to limits of handling through the toughest of circuits; that only a few can even fathom of reaching. To me it was a learning experience; and a reassurance that in case I had some doubts or questions that there are people out there who can possibly answer any little or major snag I come across in my extension development. I wish I had approached on him on suggestions and questions I had about my extension; since I was terribly sick at the time; I decided it would not be a good time to approach him, after all it would only make for an awkward first time discussion.

Tuesday, October 16, 2007

modifying the browser

so I decided to go ahead and try this little lab; and ran into a few problems. The point of the lab was to modify the browser so that a new tab was created in between an active and the primary tab created instead of appending at the end like it normally does.

In my first attempt; i had the browser do nothing. The tabs just kept popping up at the end every time a new tab was created. But finally with the help of a couple of my class mates (Vincent and Rueen) i was able to implement the modification successfully.

I then updated my Wiki with the necessary CVS diff file to show the lines that were added to which file in order to modify the tab behaviour.

I am still fighting with extensions and having a problem understanding why the overlay wont work properly

Sunday, October 14, 2007

extensions, extensions, extensions

Lately I have fallen back in my blogging; thanks to intricate family issues; which I will not bring up here. But I am going to try and revive my blog; I have spent some time working on extensions to no avail; but my understanding of how an extension works and how it aids a user in simplifying a task has grown.

I also will be completing last weeks labs and updating my blog more frequently.

Sunday, September 30, 2007

CVS diff finished

yes it finally finished!! and i looked at the patch file that was created; also i looked at the code Mike Shaver added to the nsThread.cpp file. This man sure knows his c++

LXR/MXR

I must say this is a very impressive little tool. Who ever came up with this idea; needs the nobel price now!!! Ok ok; maybe I am over exaggerating. In all honesty when I first saw it; i was more so intimidated by it. But It can come in handy at any time, its a great reference; as I found out in the lab class of dps 909; but like everything new it gets some getting used to.

my CVS diff is still going at it.....sigh!

Applying Mike Shavers patch

Well I read Mike's comment on my blog; and looks like I made a very obvious mistake; I was in the wrong directory. Looks like my inexperience with open source is shining bright right now.
All of this scares me in a way.

I went into the right directory; the xpcom directory. And i applied the patch and it worked fine; did a "make" in a parallel directory (objdir).

Then I ran the CVS diff; well its still doing the diff and my xp on its last legs; so i need to reformat or switch to ubantu. I was really impressed with Ubantus performance last night when I was sitting side by side with one of my peers and doing the incremental build; and when we both did cvs diff; it took his machine only 5 mins or so; mine took over 20mins; and what hurts more is i have better hardware..oh well...

Saturday, September 29, 2007

Incremental build Lab...problems

so i figured Id try this lab; since it is crucial to the future project work we are going to do. Anyways my experience with this incremental build was rather trouble free.
a) I got the zip file from tel2096@proximity.senecac.on.ca
b) got the .mozconfig from the dps909 thursday class
c) ran the build successfully (45mins or so later)
d) Time to start the incremental build; i made a change to a file
(nsHttpBasicAuth.cpp). ; did a make on a parallel directory as instructed by the lab directions

creating the patch file from using the
$ cvs diff -u8p . > patch.txt 
and heres a print screen of the output patch file I got.


highlighted in light blue is the changes that i put in as per the labs instructions.

e) Well time to add someone elses patch to it and see what happens. I was able to get vincent lams patch and use it to try and apply his patch. well no problems here as well.
f) Well i did do the revert patch to see if it would work; and it worked fine. Did not have any problems there
g)NOW THIS IS WHERE I HAD PROBLEMS! Trying to apply a real patch!! from Mike Shaver
Again I followed instructions to the T. But I ran into this problem; heres a print screen of what I ran into
Seems like we have a different version of the build of Firefox that Mike Shaver used; since its asking for a file to patch? or am i missing something? Any ideas suggestions?







Thursday, September 20, 2007

oops forgot to run the build


Well i guess i was happy that the build completed; but forgot to run the build as bakinblak commented on my previous post. Anyways my results after running the build were the same as what others yielded. Although I was getting some assertion errors.

Wednesday, September 19, 2007

Build is done


Well the build completed; I think. I was excited I took a print screen of it. Took about 45 mins to complete. I did not notice any errors. So I hope this is what the end result looked like for everyone else? or not?

Tuesday, September 18, 2007

Building Firefox in XP (started off slow/ended strong?)

I have just had no luck from the get go. Started off with my PSDK installation crashing for no apparent reason (twice). So restarted that. Well there went 2.5 hrs. Then once that finished I started my install of Visual C++ 2005 express edition. KABOOM!! Another crash during this install as well; I think I am just gonna reformat my computer soon. My XP is probably on its last legs. Finally got Visual C++ express on there.

So now the software part was partially done; I hurried over to Zenit; only to realize Zenit was down for the moment; could not access the step by step procedure from the DPS909 page. But thanks to Dave (on IRC), Rueen, and Vincent I was able to get some guidance and was on my way again. I downloaded the Mozilla build 1.1 and followed instructions from there on.

Every things going well for a change; no crashing *crosses fingers*. Checked out the browser code; checked out the CVS code which I gathered from reading the feed on opensource@seneca (thanks SIMON). So far no more crashing. Well I created the infamous .mozconfig file. And I started the build; well my computer is running the build as I type this. I know I wont be breaking any records but as long as the machine finishes it without any sudden crashes; ill be happy. Gotta love shared computers.

Wednesday, September 12, 2007

Revolution OS

An inspiring little video; that is very informative and full of useful information about the development of Linux from GNU. You get to know the main figures such as Richard Stallman, Michael Tiemann, Linus Torvalds, Larry Augustin, Eric S. Raymond, Bruce Perens, Frank Hecker and Brian Behlendorf. We also get preview to Bill Gates and his little letter on how software should not be open sourced.

I like the introduction where Eric Raymond tells one of Microsoft's VP about how he (Eric) is the Microsoft VP's worst nightmare. I also liked the part where Linus Torvalds says to the interviewer its a win - win situation in regards to developing Linux. Although Linus is not reaping major profits like Microsoft's Bill Gates is, I believe Linus still sees his creation Linux as a major break through in the open source world and possibly derives just as much satisfaction and if not more than that of Bill Gates does with his Windows empire.

Everybody remember February 19th is return your windows day. I am going to make sure i don't have any unused version of windows kicking around, if I do, I am returning it.

The Cathedral and the Bazaar.

Written by Eric S Raymond; in his initial days of getting into the Linux community is an introduction to what he as programmer felt in regards to this new community that he had the pleasure of experiencing and divulging into.

He (Raymond) quotes "Linux overturned much of what I thought I knew". As an experienced and seasoned programmer, Raymond was taken back by the depth of knowledge and the way things were done in the Linux community. Raymond furthermore quotes "I believed that the most important software (operating systems and really large tools like Emacs) needed to be built like cathedrals, carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time." To Raymond software development was always built like a cathedral, very carefully by specially trained, educated, and experienced individuals working alone or in groups to release a software with no beta testers in sight.

But what he (Raymond) experienced in the Linux community was something completely different. In this community people from anywhere and from all walks of life could contribute ideas towards the development of a software. Raymond drew parallels of a busy bazaar to the Linux community; just like in a bazaar where people from different walks of life come together to shop, the Linux community were people from many different regions and perhaps even occupations coming together to bond and eventually to create a whole new way of developing software.

What further surprised Raymond about all of this is the fact that amongst all the chatter, the unorganized clutter that this would be translated as to the cathedral builders (a.k.a professional software developers of the time) the Linux community actually prevailed and was still able to produce results besides all the unorganization. Raymond quotes " The fact that this bazaar style seemed to work, and work well, came as a distinct shock. As I learned my way around, I worked hard not just at individual projects, but also at trying to understand why the Linux world not only didn't fly apart in confusion but seemed to go from strength to strength at a speed barely imaginable to cathedral-builders."

The Cathedral and the Bazaar is Raymond's way of making the reader understand the transition he as a programmer underwent during his initial experience with Linux. It shaped a whole new way of analyzing software development strategies and resolving problems for Raymond.




Monday, September 10, 2007

Second Day at DPS909

points to Note:

-many people should not edit the same Wiki at the same time. Causes apache server to respond not so favorably.
-must watch revolution OS!
-Check out planet Mozilla. A lot of RSS Feeds are mixed into this one site. Very informative.
-email does not work well in Open Source. This is due to the massive influx of emails regarding bugs. Blogging about this bugs, might have a better turn around as far as a solution or answer pertaining to a certain blog.
-emails are a way of keeping information between two people. Rather keep things in the open by blogging about it; gives a more community approach.
-Use IRC. Mozilla lives on IRC! (clients used: chatzilla a program based on gecko) (zip files in Mozilla are named as xpi files)
-Chatzilla is pretty straight forward. some useful commands ( /join #seneca : to join a channel. /query to start a private convo. /join creates your own channel? /me is a command that emotes.
-some commonly used acronyms (IIRC, IMHO, AFK, LOL, HEH, HA, HAHA, ROTFL, BRB, AFAIK (As Far As I Know), NATCH (Naturally))
-use smilies to get your point across in a less aggressive or offending way.
-look up screen sessions. cntrl+A+0??
-pastebin.mozilla.org (good for sharing code with other people in IRC. Has a life time selector) usually referred to as "pastebin me your code".
-tinyurl.com. check it out.

Sunday, September 9, 2007

DPS909-First Day

Learned quite a few interesting things about Wikipedia and Firefox. Listening to the teachers talk about the course was interesting. Hopefully I will be able to learn a lot of new things in this class about the open source community and possibilities.