Thursday, April 30, 2009

After Graduation ...

It has been awhile since I have posted on this blog. My final project required a lot of my time. My final project was an Online Ordering System for a comic book store. We used ASP.NET, C#, and MySQL. The team was also working on a Point of Sale system so we divided the work among the four of us. I did the back end logic for the Website and another guy did the Look and feel.

The hardest part of this project was implementing PayPal. The owner wanted PayPal as the means of payment. I had to do a lot of reading on the PayPal site and research to find the right solution for our site. Trouble shooting was a little difficult also. In the end, a customer could place an order and receive a receipt of the order from the store plus PayPal.

Now I'm looking for a job. I'm trying not to look for any job but a job that will align with my values, strengths and skills. The University of Waterloo has a Self-Assessment guide that is available to anyone. I have been going through it and I know myself better because of this assessment. I also joined a Job Finding Club that is being offered through Seneca. I hope to improve on my interview skills and learn techniques for tapping into the hidden job market.

It was a little hard to get back into groove after Kaitlyn was born still in January but I feel that I am back at 100%. My wife is still working through the process and has decided to look for work also. She has her own blog where she is blogging about her experience.

Tuesday, December 9, 2008

0.3 Release

So this is my last contribution to the OSD 600 Course but not my last contribution to my project. With this release I will be slowing down my activity but I hope I find the time to finish what I have started.

0.3 Release Details
My 0.3 Release project release can be found here.

The summary is I have landed a patch that keeps PGO for Thunderbird breaking on Windows. A module in the mozilla-core called lcms breaks when it is not linked into the xul library. The patch basically disables pgo for that module if it is not being linked into the library otherwise pgo is enabled for it.

As I was trying to enable pgo for Thunderbird related modules I discovered that PGO gets enabled for all modules. This was good news until I noticed that only 5 modules were getting optimized out of 74.

As I looked into this it turned out that the folder that most of the profile data was in was being deleted before used to optimize the modules. I created a new bug for this problem.

I have added my proposed patch and using that patch and doing some simple profiling 69 of 74 modules were optimized.

And that is my 0.3 Release.

I have learned about using Make and Python and compiler options for PGO. I still don't understand PGO entirely and don't understand why it does what it does. Example would be when using the option to optimize for size the compile spits out that the module was optimized for speed. I guess at some point I should make an inquiry on the Microsoft forums.

I plan on taking the OSD700 class but am looking at working with Eclipse.

Monday, December 8, 2008

Thunderbird components getting Optimized

So the problem I ran into with optimizing Thunderbird was all the profile data was getting deleted before it was used. I opened a new bug for this.

The other part of the problem was the python script, pgomerge.py, was not looking in the objdir/dist/bin/components for the profile data. So I have edited the pgomerge.py file and it does find and merge in all the profile data.

AWESOME!!!

New problem...the profile data in the dist/bin is not getting touched. I pretty sure my script is broken.

Time to look into this python stuff some more.

Saturday, December 6, 2008

New Bug for PGO

I've been trying to enable pgo on different Thunderbird components but I've been having problems.

Problem
The build output says these files are compiled with optimization flags but no optimization data is being collected.

It turns out the data is being collected and placed in the objdir/dist/bin/components directory. BUT!!!! This folder gets deleted.

I told ted about this. Here is a paraphrase of our conversation.

Basically, i need a flag to tell the make not to delete the folder when second profile build is being done and to look in the right directory for the optimization files.

I have posted a bug about this. This will be interesting to see how many components will get optimized without breaking.

Patch Landed!

My Patch has made it into mozilla-central.
Here is the patch.
Here is the bug.
Here is my happy dance.

Friday, December 5, 2008

Patch Reviewed!

Sweet! My patch was reviewed.

I just have to fix the comments in the patch and it is good to go.

I'm not sure what to do after I attach the updated patch.
This is the bug.

Optimizing the Thunderbird Address Book - cont'd.

I am still attempting to generate some optimization data for the address book.

One Success
The address book objects were compiled with the speed optimization. I must not have been hitting any xpcom calls to the c++ code. The opening and closing of windows must have been all js and xul code.

I'm looking through the c++ code to see what functions are available. I am going to try and profile to hit these functions. I also am trying to enable speed optimizations for the entire mail.dll in the Makefile in the mail.dll directory. This might not work.

Note:
I also notice that when I turn on PGO for Thunderbird that all the modules get the default optimization which is the size optimization.

I will have to build a non-pgo build of Thunderbird to see if it makes a difference.