tjduavis.JourneyMan

weblog dedicated to software development, philosophy, and theology


1 Comment

Bug 412002 – First Impressions

Here are my mock ups for the multi-edit feature that I am planning to enhance for bug 412002. I have attached the mockups with additional comments under the bug number for the community and Mozilla people to review before I begin any major implementation. This is also gives me a chance to understand what the requirements are and to determine what it takes to provide a solution.The following are a list of first impression plans for providing this bug fix:

  1. Find out the function that displays the properties form when (i) a bookmark item is selected and (ii) when a bookmark folder item is selected.
  2. Find out the function that takes care of persistence management.
  3. Modify the code to include the properties form to be enabled when more than one item is selected. Then update the way the persistence management layer so that it includes the latter operation.
  4. I am not sure how identifying two or more items selected works, so I am going to need some additional research in this field if upon finishing item 1 of this list provides no certain solution.
Advertisements


Leave a comment

Plans for Release 0.5

For release 0.5 I was planning to work on the either the autocomplete or multi-ended bug. But before on deciding which one to start attacking, I wanted to discuss some of my plans and thoughts with my mentor / the team to see if this is the right focus.

During the discussion I found on that the tag editor bug has now gone into limbo. It seems that the tag editor was going to implemented by an external party so Dietrich suggested that its not a good bug to dwell on at the moment. I told him that I was willing to have any replacement for that bug (So it looks like going to have some time available to do more ‘for each’ js fixes on the trunk for mfinkle after all… :P)

So for my plans for release 05, we both agreed that working on the multi-ended bug would be the best focus. What I’m going to do is to first prototype the ability to “select multiple URIs and edit tags”.

Mind Mapping and Code Understanding

One method of researching and understanding code I want to commit to do is to try to produce a mind map. Mind mapping was introduce to me in my 12th grade physics class as a form of brainstorm and test/exam preparation technique. The motivation behind this was during last years work on the Coop. I had difficulties in trying to remember what function called each other and thus my editor was scattered with bookmarks.

My goal for mind mapping is not to produce every occurrences of each function as that is already provided in MXR but rather assist in providing a visual conceptual model view of what functions and components relate with each other within the Places API and Firefox itself.

I’m a visual learner so I hope the extra work in producing this can benefit me in the long run. I will produce this mind map on my main wiki page to share.

I found an open source mind mapping software called FreeMind. It is in its 0.x release so expect some rough edges but overall it does the job. It can export the mind map into various file versions like a doc or HTML.

Action Items Planned

– Find out where the changes need to be applied
– Research proposed solutions (MXR, Google, IRC)
– Try and test out solutions


Leave a comment

Reflections on Release 0.4

Places is very interesting new feature that is going to be included in Firefox 3. Although I don’t quite understand all the ins and outs of the feature…yet!, what I do like is that there is studies and work being done to improve on how Firefox manages information such as bookmarks/history (I think information management and HCI is a field that I think I’m growing a liking for).

My initial research was sifting through documentation on the Mozilla website. I found articles, documents on the goals and requirements for the Places API and was able to find the main channel of the Places developers on IRC. Before obtaining the bugs list, I wanted to try to connect with the Places developers and just let them know that I was interested in helping out the team by providing bug fixes. I want to be able to build a relationship with this community so that I can know how to work with them as a team and meet both my objectives and theirs.

I had a very good conversation in IRC with Dietrich (eventually I learned Dietrich was going to be my mentor), a Firefox engineer working on Places. Dietrich gave me an overview of the Places code location within the trunk:

<dietrich>
Places is split (as you can see on the wiki) between /browser and /toolkit
<dietrich>
places code in /browser is mostly xul and js
<dietrich>
places code in /toolkit/components/places is mostly xpcom services
<dietrich>
some in js, some in c++

He also gave me tips on joining the Places mailing list and watching others handle and attack bugs. Other cool Moz folks helped me to get edit bug status on my Mozilla bugzilla account (Thanks Gijs, mfinkle and gavin!).

Dietrich initially suggested that I work on the multi-ended bug as the tag editor bug had some dependencies that needed to get resolved but we then decided that working on Bug 412600 would be more fitting for me to tackle first. This way it would allow me to do some code scanning of the Places code base and help me to get accustomed to the bugzilla environment. Although the bugzilla interface is quite intuitive and the topic was introduced in last years course, I still wanted to find references to help guide me when submitting my FIRST patch. Here are some articles I stumbled over the Internet that I want to share before ending this post.

Enjoy!
http://www.bugzilla.org/docs/2.18/html/lifecycle.html

http://developer.mozilla.org/en/docs/Creating_a_patch

http://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree

http://fdiv.net/2007/05/15/the-secret-life-of-a-thunderbird-patch/#more-74


Leave a comment

New Year New Project

No more social networking integration… at least for now…I’ve been assigned a new project to work on Places API Bugfixing. It’s disappointing not to see The Coop being carried to 1.0 but the reality is there aren’t enough of a user base to continue developing (Another example of how marketing and evangelizing is crucial to a product life cycle). Maybe The Coop will have a re-birth somewhere down the line but wherever it goes I hope I can have the opportunity to be apart of it.

Despite the disappointment I think taking this project is a great opportunity for me to build on skills and principles of software development. All software have bugs and being able to have the right mindset, methodology, skill to manage and handle bugs is really important.

Whats even more cooler is that the work that I am contributing will be included in the release of Firefox 3!