Friday, November 23, 2007

What can you do with a drunken sailor?

I went crosstown today to pickup a package from fedex. Wohhoo! a Blackberry device.

I went from having no cellphone, basic home phone to ultra-connected! Seriously, here is how my life is better for having a blackberry device.

1) gmail, send receive in a pushy way:)
2) sync to my gcal (via iCal)
3) sync my address book
4) sync memos/notes (to and from device via
5) sync tasks
6) receive/send telephone calls (though I am long distance in toronto)
7) receive/send SMS
8) Blackberry PIN
9) Windows Messenger Live
10) Surf the interwebs
11) GPS my position
12) Google talk
13) tell time, set an alarm
13) do quick calculations on the calculator

i was previously using my iPod 80gig as a
sync'd calendar
sync'd contact list
sync'd notes
music player
video player
portable data
now it looks like the ipod will be a media player/portable data device, and not an organizer (its not a very good organizer).

What does the slogan always on mean to me? It means that "unless I choose to switch off, i can always keep lines of communication open."

Today was a fun day... kinda like Christmas was when I was a kid:)

Friday, November 16, 2007

Workflow Artifacts

Here are some workflow artifacts


I would now like to describe to you my workflow.

Preperation Steps: (done only once... ever!)
1) download the trunk of mozilla
2) get a script that will update the code from cvs (./
3) get mozconfig for an optimized build
4) get a script that will set the mozconfig and build optimized
5) repeat steps 3-4 for debug build
6) build optimized (via script ./
7) build debug (via script ./

Start of coding session
1) ./
2) ./
3) patch -p0 < ../../patches/lastnightswork.txt
5) ./

Writing, Compiling, Running (testing)
1) edit via xCode
2) compile via commandline window (script specific to an incremental build... ./
3) use xCode GDB debugger to run/debug
4) run the program -P tester --no-remote

End of Coding Session (time for sleep)
1) cvs diff -u8p > ../../patches/thisnightswork.txt
2) patch -R -p0 < ../../patches/thisnightswork.txt

In the end I am left with two artifacts
Artifact A) a nightly patch (sometimes more than one if I want to "save my work" ie ive made some sort of progress worth preserving)
Artifact B) a clean sourcetree, free of any tampering

However, there is a problem with Start of coding session #4. What if there is a conflict between my last night patch, and the current state of the source tree?
I have to edit by hand :( This has once added 2hours!

Please! Someone rescue me. Teach me how I can write some sort of script or some sort of GUI merging program for full source vs diffs which saves my clean tree and nightly patch!


On a side note, I would really love it if I were to write some little program that could follow my code progress as a living organism sorta thing... like allow me to view the code files I am editing in time-lapsed photography style video.

Bold and Italics

So I have bold and italics on fonts that should have them while rendering ATSUI text layouts. People have commented that italics is the wrong way. People will further comment that bold can hardly be seen. Layout is all bogus etc.

All I can say is... yeah... however, I am now ready to ask for help with this stuff. This was a big step for me, and the cause of much stress. So anyway, if you are a Mozilla Text Guru, I need you to take a look at this patch and tell me what you think.

Go to the bug

Free Software Presentation by John Selyms

Today we had a guest speaker for BTS. John Selyms came and talked about "why software sucks." The man has a lot of good things to say. I recommend you read his slides here

EDIT: now that I have time, I can write more
Important Slide (31)

What Should You Do?
1 Never underestimate the problem
2 Understand and plan
3 Know the tools you use
4 Act professional - leave ego at home
5 Write free software and share it

My favourite Slide (11)
Comments from the Field(about state of software development)

"It's like pre-Sumerian civilization - we're in the hunter-gatherer stage." - Brad Cox, George Mason University

"Cave art, it's primitive, no science here." - John Munson, University of Idaho

I really like the first quote. It conjures an image of 5 near-ape techno-neandertals, each dragging one knuckle in the ground while his other hairy arm grasps a laptop, or knapsack, or bike helmet; what-have-you.

I asked a question to John relating to this quote, "Could google be the emergence of an agrarian culture of software?" (left as an exercise to the reader)

Thursday, November 15, 2007

State of the font

Its about time that I post about the DPS project I am doing.

What I want to do with the project is try out ATSUI for font display, rather than the current use of CGglyphs. Using ATSUI is different from the current method of rendering fonts because ATSUI renders a whole line of text, while CG renders an array of glyphs.

I want to use ATSUI because ATSUI gives you the ability to "set" italics/bold etc on a line of text, thus when you render the ATSUTextLayout object, it will be nicely italisized/bolded.

So I had been having tonnes of difficulty until earlier this week, when I made a breakthrough and finally printed "something" using ATSUI. Since then I have continued to improve my work, and I can now print some of the actual html text that firefox is receiving from web pages.

Look here for a screeny
What I wanted to have complete for Friday (today), is have the italics/bold happening when it should be. I unfortunately haven't gotten that far yet.

I'll work tomorrow evening on getting things bold/italics.

You can find the patch that does rendering in ATSUI here

A tricky situation

Ben Smedberg, Mozilla code guru, came and talked to the class today... I can sum the talk up in 1 phrase "oh my"

I was feeling very bad during the talk because Ben had to be paused while one technical disaster after another occurred. During the down time students would engage Ben in some tangent questions, but Ben was forced away when technical questions were resolve, and threads of conversation were left hanging.

The talk was describing the nitty gritty details of XPCOM, and while I was simply stunned by the complexity of it all during the seminar, things are starting to come better into my head now that i have a chance to think on things. I hope the camera got the talk however, because I will want to review it later, when i have a better understanding of mozilla on the whole.

Tuesday, November 6, 2007

Poppy Problem

Lest we forget:

I've been passively looking for a poppy box for the past week, without any luck; so today I needed to actively search for somewhere with a poppy box. I live in the Dufferin Steeles area, and I do not have a car, so I am only able to search this area

Places that do not have Poppies.
- Shoppers Drugmart
- Superstore Groceries
- Petro Canada
- Esso
- Royal Bank
- Century 21
- Value Village
- Tim Hortons
- Wendy's
- Starbucks
- dollar store
- Sci Fi Store
- 3 local convience stores

I am still poppyless, tomorrow I search York Lanes.

Monday, November 5, 2007

Bugfixing Lab

Found the place where mailto links are created... made an if statement to look for double periods.

Sunday, November 4, 2007

Resources Test Result Graph

Scenario 4: Ram 512 CPUs: 2

real 4m37.692s
user 1m9.088s
sys 1m21.957s

Scenario 3: Ram 1024 CPUs: 1

real 4m29.431s
user 0m35.174s
sys 1m14.805s

Scenario 2: Ram 512 CPUs: 1

real 4m49.397s
user 0m40.879s
sys 1m2.612s

Scenario 1: Ram 1024 CPUs: 2

real 3m59.998s
user 1m3.328s
sys 1m36.654s

VMware fusion Resource Results

So, fooling around with my virtual ubuntu machine... I 'walk the tree' in two resource allocation scenarios.

Scenario 1:
Ram: 1024
CPUs: 2

Scenario 2:
Ram: 512
CPUs: 1

Scenario 3:
Ram: 1024
CPUs: 1

Scenario 4:
Ram: 512
CPUs: 2

Pats vs Colts... spectacular 1st half... Joey Addai TD amazing, it shall be known on highlight reels as "The Cutback"

Saturday, November 3, 2007

Bug 402395

Submitted another cookie-build bug based on disable-logging. After getting my windows guest machine building firefox in vmware fusion, I ran into 402395 and supplied some patches

Virtually Mayhem!

I have installed VMware Fusion 1.1 beta, so see what its like. I have created a virtual machine based on my boot camp partition, and I have installed ubuntu 7.10 via fusion (its just like installing it on a computer, except your 'computer' is a window on your desktop).

I am now compiling firefox trunk on ubuntu, and am installing the pre-reqs still on windows. I am doing these things at the same time, all the while using my base OS X to run my browser and other normal tools.

Yes, thats right, Ubuntu, Windows, and OS X all running on one laptop. all nicely running inside their own 'spaces' window wow.

Friday, November 2, 2007

Bug 402148 update

I have a potential patch for 402148, the disable-logging bug I discovered yesterday.

UPDATE: This patch has gone into the tree... huzaaah, drinks all around.

Thursday, November 1, 2007