Blogger

iOS -- Things I Forget

The App Icon of an iPad Application is 72x72 pixels.
Get all icon sizes here and advice here.

Remove the shine effect from the iPad App Icon:
Info.plist > Open As > Source Code

<key>UIPrerenderedIcon</key>
<true/>

Run your App only in landscape mode:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{ return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); }

Remove the Status Bar
Info.plist > Open As > Source Code:
<key>UIStatusBarHidden</key>
<true/>

To add a background image to your application, do the following in your AppDelegate didFinishLaunching, where wall1.png is a 1024x760 vertical wallpaper, and mainView is your view controller.
self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"wall1.png"]];
self.mainView.view.backgroundColor = [UIColor clearColor];

Custom Fonts:
It seems you can only customize the font of your labels programatically. See Creating a UILabel programmatically for some sample code that you could drop in your viewDidLoad

Iterate (for loop) over a string array:
NSArray * words = [NSArray arrayWithObjects:@"one",@"two",@"three",nil];
for(NSString * str in words) {
    NSLog(@"%@",str);
}

Static UIColor
...


Display Binary Contents Of A File

Use the od command to dump a file to the console as binary (ascii-hex). This even works on the MAC. It's useful when you're having problems with control characters like line endings.

$ od -t x1 test1.sh
0000000    23  21  2f  62  69  6e  2f  6b  73  68  20  2d  65  70  75  0a
0000020    0a  65  63  68  6f  20  22  46  69  6e  69  73  68  65  64  21
0000040    22  0a  0a                                                   
0000043
$ od -t x1 test2.sh
0000000    23  21  2f  62  69  6e  2f  6b  73  68  20  2d  65  70  75  0d
0000020    0a  0d  0a  65  63  68  6f  20  22  46  69  6e  69  73  68  65
0000040    64  21  22  0d  0a                                           
0000045


Getting Started With iOS

If you're completely new to programming the iPhone/iPad, know nothing about iOS/xcode, and have never used a MAC, the following might be useful.

Development Platform
Probably the cheapest way to start developing is to buy a Mac Mini. It easily has enough power for xcode. I got mine from carbon computing (2.4GHz 2GB, 320GB, SuperDrive, AirPort, HDMI, GeForce 320M Video). It comes with a powercoard and an HDMI to DVI converter. You can plug in your existing DVI monitor and windows USB mouse/keyboard.


Of course, you probably can't live witout two monitors, so you'll need to additionally buy a Mini-DisplayPort to DVI converter. I got this from carbon computing for $40. You can get it from monoprice for $7, but I was in a hurry and don't fully trust knock-offs. I did however buy a usb switch from monoprice for $25 that lets me toggle my keyboard/mouse between the PC/MAC. My monitors have both DVI and VGA out, so I have the DVI cables running to the MAC and the VGA cables running to the PC. To swap the station, you just punch the usb-switch button and the swap buttons on the front of the monitors.

Setting up the MAC OS
Unboxing is easy. Plug it in and hit the power button on the back. It walks you through a friendly first-time-setup. Finder is the magnifing glass at the top-right of your screen. You can use it to search for applications by name, like "update" to find "Software Update". You'll want to run this a few times and update everything. Specifically your OS is probably too old for the latest xcode. Your mac came with some disks, but you don't need these. I also changed my desktop backround and customized the dock (the shortcut icons at the bottom of the screen). Just click and drag to remove them (a little dust-cloud icon appears). And drag from finder to the dock to add them.

Even if you're not using a windows keybard, the change in position of the control-command keys might drive you mad. You can get it to behave more like you're used to by downloading the latest version of doublecommand.
  • [double-click] DoubleCommand-1.6.9.pkg
  • Continue > Continue > Install > [password] OK > Close
  • Eject the installer
  • Finder "DoubleCommand" > System Preferences > DoubleCommand
  • [uncheck] Enter Key acts as Command Key
  • [check] Command Key acts as Control Key
  • [check] Control Key acts as Command Key
  • [check] PC sytle Home and End keys
  • Click activate button
  • Click system button (and provide password)
  • Close double command
Xcode
You need to download Xcode. It was free, but the latest version costs $5. If you're serious about development, you'll want to put stuff on the device which requires a $99/year subscription and gives you access to stuff like Xcode. So you might as well start out by enrolling in the Apple Developer Program. Then you download the latest Xcode (which is gigs, and takes a while). Note that Xcode 4 is considerably different than its predecessors, so if you buy any books, make sure they're the new enough. There are a bunch of tutorials and books out there. I'll probably end up posting some sample code here, but for now, I'll just give a list of resources that I found most helpful.

Absolutely Required Reading
iOS Technology Overview -- Cocoa Touch Layer
iOS Technology Overview -- Core Services Layer

Wikipedia on Objective-C
One thing that drove me crazy for a long time was the difference in function naming between C++ and Objective-C. I finally found a good explanation of this on wikipedia.
- (return_type)instanceMethod2WithParameter:(param1_type)param1_varName andOtherParameter:(param2_type)param2_varName;
Note that instanceMethod2WithParameter:andOtherParameter: demonstrates Objective-C's named parameter capability, for which there is no direct equivalent in C/C++.
The named parameter article goes on to explain that function name is actually interleaved with the arguments. In other languages like Ada, this lets you supply arguments in an arbitrary order. Not so with Objective-C. The only purpose for this is to make the code "more readable". So in the above, andOtherParameter is actually part of the function name. Very weird.

Mac OS X Developer Library
iOS Developer Library 
Other Good Stuff
Understanding iOS 4 Backgrounding and Delegate Messaging
This is absolutely essential to understanding your application's life cycle. Read this before you try writing anythign from scratch. When a text is guiding you through a sample, you're fine, but when you try to do something original, you'll die without this.

Basics (Note, I'm assuming you're using DoubleCommand, so I'm substituting CTRL for Command)
CTRL-Shift-3   = capture desktop as png
CTRL-Shift-4   = capture a cross-hair selected portion of the screen as png
CTRL-Shift-4 + Spacebar   = capture an application windows as png


No Junk Mail

Here's what I discovered while hunting around for a No Junk Mail sign.

The Canadian Marketing Association (CMA) has a central registry to stop some unwanted addressed advertisements. It's not clear if you need to periodically renew your registration.
cornerstonewebmedia.com/cma/submit.asp

The Canadian Government has a national Do Not Call List to reduce telemarketer calls. Your registration will last for five years, after which you must re-submit your number.
www.lnnte-dncl.gc.ca/insnum-regnum-eng

The City of Ottawa has an Admail Reduciton By-Law that prohibits distribution of unaddressed advertising material. All you have to do is post this sign on your mailbox. You can buy it for $2.00 at any of the seven client service centres, such as 580 Terry Fox Drive which is open 8:30-5:00 monday-friday. It comes to $2.26 with tax, and you're required to sign and address a form that is witnessed by the city. The sticker itself has a white background, unlike the gif above.

They gave me a pamphlet that contains more information than the above URL. It says that Canada Post is exempt. It also says that the admail distributors local to Ottawa are Flyer Force (742-7782) and Sun Distribution (739-7200). If posting the sign doesn't work, you're supposed to contact the distributors. If that doesn't work, you're supposed to "call the City of Ottawa Call Centre at 580-2400 and identify, where possible, the name of the distributor or the type of material delivered".


How to feel about Egypt

In response to the Ottawa Citizen "Do you really want revolutionary change you can believe in the Middle East, Mr. Obama?"

First, I don't know anything about Egypt, Islam, or war.

Second, I don't consider the Citizen article trustworthy because contemptuous statements like "He's so desperate" and "as their liberal puppet" are designed to make me feel a certain way, without providing reasons. I'd suggest that the wikipedia article on ElBaradei is far more believable.

Third, I don't accept the claim that revolution is bad, even if it involves the death of thousands of innocent people. Consider the Costa Rican Civil War for example. In any case, I haven't seen convincing evidence that current events in Egypt will reduce the joy value of the universe.

Fourth, even if I were convinced that there was a majority chance that events in Egypt would lead to disaster, I wouldn't agree that the U.S. or Canada should have supported Mubarak. That is after all, the only meaningful question for an average North American, since most of us won't participate any further than our next Federal vote.

Perhaps I misunderstand them, but this Citizen article and the many other arguments that are unhappy about events in Egypt all seem to say that things were better off when Mubarak kept his people quiet. While that may be true for me personally when you define "better off" as "the price of a big mac, etc.", I'm not very interested in it and am personally shocked by the implications.

Based solely on the fact that he was in power for 30 years, I assume that Mubarak was corrupt and was unwanted by many reasonable people.
Based on my understanding of Emergency law in Egypt, I assume that average Egyptians are denied rights that I consider basic and treated in ways that I would resist.

Therefore the argument that we were better off with Mubarak is the argument that Alice, Bob and I live in a maze together, and Alice routinely treats Bob in ways I consider reprehensible, but never in my presence, and every so often I'm asked to modify some switches in the maze to prevent Bob from defending himself from Alice based on the argument that I have never seen Bob outside of Alice's presence and if I don't help Alice suppress Bob, he might one day hurt me. 

This, I am not willing to do.


Theatre Tickets and the NAC

The NAC phoned to sell me theatre tickets. Normally I hate telephone solicitation, but the lady was nice and I'm convinced that ticket master is corrupt, so I thought I'd give it a try. I told her I'd talk it over with my wife and would call back next week. I'm a busy guy, so it was closer to a month later before I called back. In the mean time, they tried to call me maybe twenty more times (don't do that!), which I just ignored.

The thing is, that we don't appreciate most of the theatre that they put on at the NAC. It's just not our style. But they're partnering with the GCTC for Vimy, and you can trade in theatre tickets at cash value for NAC dance tickets (some of which are amazing).

Ticket Master
I went through the online Ticket Master process, and canceled out just before paying. Here's what would have happened.

Vimy (Nov 9 - Dec 5) GCTC (in the main Theatre)
Sat. Dec 4th, (all seats same price), $40.80 x 2 + $5.50 x 2 + $4.00 = $97.60

The Year of Magical Thinking (Jan 11-29) NAC (in the main Theatre)
Tue. Jan 25th, (centre orchestra, 4th row), $60.27 x 2 + $5.50 x 2 + $4.00 = $135.54

Wayne McGregor, Random Dance, Entity (only one day) NAC (in the main Theatre)
Tue. Feb 8th, (balcony, 1st row, orchestra was sold out), $43.17 x 2 + $5.50 x 2 + $4.00 = $101.34

Cedar Lake Contemporary Ballet, Orbo Novo (Mar 3-4) NAC (in the main Theatre)
Thu. Mar 3rd, (side orchestra, 3rd row), $46.28 x 2 + $5.50 x 2 + $4.00 = $107.56

NAC Theatre Package
I called back, Tuesday Oct.12th at 10pm and bought a 3pack (6tkts) over the phone with visa. They arrived in the mail on Friday Oct.15th, and I stopped by the NAC Saturday afternoon to swap the 3rd event (which we didn't want) for dance tickets. The tickets from the 3pack that we used for trade-in were Saint Carmen of the Main, $44.98 x 2 + $3.00 x 2 = $95.96. These where accepted for trade as a value of $95.96. Also, since we're now a subscriber, we get a discount on all subscription events of the season (i.e. the dance tickets). This seems to be 10% off most events. The NAC Box Office is open Monday to Saturday, 10am to 9pm. The NAC may look closed, but the box office on the far side facing the river is open. Here's what happened.

Vimy (Sat. Dec 4th) GCTC (in the main Theatre, orchestra, D16/17)
$27.77 x 2 + $3.00 x 2 = $61.54 (saved $36.06)
 
The Year of Magical Thinking (Tue. Jan 25th) NAC (in the main Theatre, orchestra, D18/20)
$49.29 x 2 + $3.00 x 2 = $104.58 (saved $30.96)


Wayne McGregor, Random Dance, Entity (Tue. Feb 8th) NAC (in the main Theatre, balcony, B45/47)

$29.74 x 2 + $2.69 x 2 = $64.86 (saved $36.48)
Cedar Lake Contemporary Ballet, Orbo Novo (Thu. Mar 3rd) NAC (in the main Theatre, orchestra, D49/51)
$37.05 x 2 + $2.69 x 2 = $79.48 (saved $28.08)











Result: Saved $131.58
Conclusion: Ticket Master is the enemy.

Another good way to save money that I haven't tried, is to buy Rush Seats. The NAC website says that last-minute 50% discounts on some NAC performances are available from 4:00pm to 6:00pm on the day of the show.

You can exchange your tickets (in person, by fax or by mail) up until the day before the show (with no service charge) for any NAC subscription event during the same season.


How To Lend On Kiva

I like Kiva. Sarah-Jane Whittaker sent me a kiva gift certificate circa 2006 and I've been lending ever since. It's fun and it probably makes the world a better place. I added more of my own money and have recently been lending under the Church of the Flying Spaghetti Monster.

I wonder though how to maximize the world's-a-better-place-ness of kiva interactions. Each time you lend, they by default ask for a donation to kiva. I always unselect this. I'm not convinced they need that kind of support from their lending base and it seems underhanded to have it selected by default.

Another thing you'll notice after lending on kiva is that your loans are always paid back. That's nice, but absurd. People default on loans, especially poor people on unstable countries. It must be that the field partner covers the defaults to maintain their high kiva rating.

If you think about it for a while, you'll have to conclude that kiva is not what it seems. David Roodman gives an excellent explanation of this. The reality is that you're not lending directly to some far-away entrepreneur. That would be inefficient and absurd. You are in fact supporting Kiva Field Partners aka Microfinance Institutions (MFIs).

So when you decide to lend on kiva, the crucial world's-a-better-place-ness question is not: Should I lend to Mohira Kholikova from Tajikistan or Nelly from Bolivia? The question is: Which Kiva Field Partner should I loan through? or Which Kiva Field Partner gives the best deal to the borrower/entrepreneur?

I searched through the Kiva Field Partners in Oct. 2010 looking for all that met the following criteria.
- Field Partner Risk Rating: at least a three stars.
- Portfolio Yield: no more than 35%
- Profitability (Return on Assets): no more than 2%
- Average Loan Size (% of Per Capita Income): no more than 200%

That may not be the best metric. I'm open to suggestions. It's hard to know. Low profitability might just mean bad management. High yield might just mean that borrowers cover a wide region with bad roads and therefore represent larger operating costs. But you have to draw the line somewhere. Here they are:

Armenia > Nor Horizon Universal Credit Organization Limited Liability Company
Nicaragua > Fundación Leon 2000
Guatemala > Asociación ASDIR
Ecuador > Banco D-MIRO S.A.
Ecuador > Cooperativa San Jose
Lebanon > Ameen s.a.l.
Mongolia > XacBank
Peru > Asociación Arariwa

Each of the field partner pages has a link on the right-sidebar to "See all fundraising loans from this field partner", so you can first pick a partner you trust, then a profile you like then lend. Have fun.


Sunk Cost

I don't give up easily. Often this is costly.

We're probably the only household in Canada that has their VISA setup with Pre-Authorized Debit (PAD) from a savings account.

On the one hand, I can't see why everyone doesn't do this. Being unconcerned about some nebulous superpower plotting my destruction via perfect knowledge of my purchasing patterns, I buy almost everything on VISA. It's convenient, insured, and allows me to track our spending patterns. The problem is that once a month you have to pay the damn thing. Wouldn't it be nice if it would just reach into your bank account and pay itself, thereby guaranteeing that you never pay a dime in interest? Well it can, and mine does. It's called Pre-Authorized Debit.

But if all your purchases are on VISA and it is going to pay itself monthly, then that's going to be a fairly large bill, so you'll have to have a fairly large pot of cash somewhere, and it's in your interest (pardon the pun) for that to be a savings account. Aye, there's the rub.

The fact is, that the only information a Bank needs to pluck money from your account is:

- Transit Number
- Institution Number
- Account Number







The rest, like your name and address, and the bank's name and address probably aren't necessary. And any security features built into the cheque are lost when sent by fax, so they're irrelevant. This means that knowledge of your account number is all that is necessary to steal your money. It's really only the paper trail that protects you.

Anyway, a couple of years ago after many faxes and phone calls and much suffering, I arm-twisted my bank into setting up PAD from a 3rd party savings account. This bank (that issued the visa) had advertised PAD on their website, and I had confirmed with them that this was possible, and in fact switched to them from my previous bank (who later claimed to be able to do the same thing) all for the purpose of setting up this "effortless" PAD system, so when they gave me the run-around while setting up the PAD I just bore down until they gave way.

Fast-forward to last month, for which my memory is more accurate, and I'll lay out for you the road of suffering and woe that is required to accomplish VISA Pre-Authorized Debit from a 3rd party financial institution's savings account. In this case, I already have PAD setup, but want to redirect it to a different account in the same organization for which it is currently successfully setup. You'd think that would make it easy.

Sept. 7th 2010 -- Search around on the bank's website for the PAD form. Notice that the fax number on the form itself and the fax number on the page that links to the form are different. Phone VISA. After ~10 min wait, get off-shore call centre. Asserts that it is the on-form fax number that is correct. Send fax.

Sept. 16th 2010 -- PAD came from the old account. Phone VISA. After ~10 min wait, get off-shore call centre. Ask why my fax was ignored. Am on and off hold several times. Total call length ~25mins. Tells me to call a different 1-800 number, which in fact turns out to be the same number I dialed to get him. I didn't realize this because it was spelt partly in letters on the back of my visa whereas he read it to me only in numbers. Unbelievable.

Sept. 16th 2010 -- Call right back. Another ~10min wait. Got someone useful this time. She asserts that the first guy was wrong. I should use the on-web fax number, not the on-form fax number.

Sept. 21st 2010 -- Got a phone message stating that the form could not be processed without a void cheque. But right on the form it says: "You must include a 'VOID' cheque for a Chequing Account or the top portion of your statement for a Savings Account." There's even a Chequing/Savings selection box on the form. Obviously a savings account cannot provide a void cheque. P.S. I did correctly fill out the form and did include the statement from the savings account. So I call them back. Another ~10min wait. Explain the situation. Am on and off hold for a long time. Guy asserts that they have the fax and it's no problem. It will be debited from the new account at next billing.

Sept. ~30th 2010 -- My faxed form arrives in the mail. Says it was rejected due to "non-receipt of void cheque".

Oct. 5th 2010 -- Call back regarding the letter, just to be sure it will be debited from the correct account. After the usual wait and long explanation, the guy confirms that it has not been updated and will still come from the old account. This directly contradicts the last guy. Great. What to do? He says, go to your local branch. They'll be able to process it "right before your eyes".

Oct. 6th 2010 -- Arrive at local branch. They have no idea what VISA expects them to do. They call someone and suggest that my 3rd party bank needs to provide a PAD form. It might contain some extra information (secret numbers). Fine. Drive back home. Call my savings-account bank. No such form exists. No secret numbers exist. There is a direct-deposit form, but it just has institution, transit and account numbers. Just like a cheque. Just like VISA's PAD form. Call VISA again. Have a long talk. No he can't see my fax, that goes to the "back office". No there is no way to call the "back office". I should go to my local branch. Back at the branch, they get on the phone again. After a long wait (~25min) she says that she talked to a supervisor and he promised to process the form. She'll re-fax it to him.

I hope it works.

P.S. It would have been a simple matter to photo-shop a fake cheque and fax it in. I really don't see what the big deal is. The fundamental problem is that the system is setup to prevent direct communication between the person who submits the form and the person who processes it.

Update: Oct. 14th 2010 -- Called VISA again to see if they had updated the account number. Nope. Got an on-shore call centre this time. Explained that I was in a branch on Oct. 6th and that they promised to fix it. Was put on hold for ~10min. She came back and said she talked to a manager and that it would definitely be fixed before the next auto-payment (in four days).

Update: Oct. 20th 2010 -- Success.


Buying Stuff

If you look back over the last few years, you might notice some of your purchasing patterns, and you might notice that you're getting ripped off. That's certainly been the case with me. Here is some stuff I buy, why I think it's good, and where to get it for a good price.

Cetaphil Daily Facial Moisturizer SPF 15
cetaphil.ca

Rexall/Pharma Plus -- doesn't have it in my neighbourhood
Shoppers Drug Mart -- rip off -- $16.49
well.ca -- $13.35
pharmacy.ca -- $12.99

I use this stuff after every shower. Without it, my skin is unhappy. It's hands-down the best moisturizer product I've ever used.


Oral-B Ultra Floss (mint, 50m)
oralb.com

Rexall/Pharma Plus -- doesn't have it in my neighbourhood
Shoppers Drug Mart -- rip off -- $4.99 (and it's often sold out)
well.ca -- $3.99
pharmacy.ca -- $3.79

Unlike any other floss, this will both fit between tight teeth and clean them well. They have a gimmick of marking on the floss where you should cut it, but at a too large size. Despite knowing this, I find myself cutting at the blue marks anyway. So I guess it's a successful gimmick.

What I would really like is to be able to buy just spools of re-fill floss and save on the overhead of the packaging. If anyone has a contact in a floss-factory, please hook me up.

Comparison:

Buying 3 cetaphil and 3 ultrafloss from pharmacy.ca (not bad)
Sub Total: $50.34
13% HST: $6.54
Delivery: $5.49
Total: $62.37

Buying 3 cetaphil and 3 ultrafloss from well.ca (the winner)
Sub-Total: $52.02
13% HST: $6.76
Shipping: $0.00
Total: $58.78

So, I'll be shopping at well.ca from now on.

P.S. It arrived today (Oct 7th). Two thumbs up. Here's the loot.




Follow-up (Oct 29th 2010)

I price-checked a list of things that I normally buy from the Rexall Pharma Plus in my neighbourhood. I had expected well.ca to be the winner for most non-massive (because of the free shipping) items, but Pharma Plus has the better price for many items. On Nov 5th, I swung by a Shoppers Drug Mart for more price checks. They are absolutely atrocious.

Strepsils, Honey & Lemon, 24 lozenges
well.ca $3.99
Pharma Plus $4.49
Shoppers $5.49

Ricola Cough Drop, Lemon Mint, 75 g
well.ca $3.59
Pharma Plus $3.99
Shoppers $4.49

Cetaphil Moisturizing Lotion, 500 ml
well.ca $17.59
Pharma Plus $17.99
Shoppers $19.99

Cepacol, Citrus, Extra Strength, 18 lozenges
well.ca $3.59
Pharma Plus $3.99
Shoppers $4.49

Neutrogena Men Razor Defense Face Scrub, 123 ml

well.ca $10.75
Shoppers $11.99

Chloraseptic Sore Throat Spray, Soothing Citrus, 177 ml
well.ca $10.25
Shoppers $11.99

Ozonol, 30g
well.ca $7.95
Shoppers $9.99
 
Head & Shoulders, Classic Clean, 2-in-1, 700 ml
well.ca $12.27
Pharma Plus $10.99
Shoppers $12.49

Gillette 3X Clear Gel Deodorant, Wild Rain, 85 g
well.ca $4.89
Pharma Plus $3.99

Colgate Total, Advance Health, Whitening, 170 ml
well.ca $5.75
Pharma Plus $5.29
Shoppers $5.99

Softsoap, Aloe Vera, Liquid Hand Soap Refill, 950 ml
well.ca $4.89
Pharma Plus $3.99
Shoppers $5.49

Jamieson, Vitamin C, Wild Blueberry, 500 mg, 120 Chewable Tablets
well.ca $9.15
Pharma Plus $7.99
Shoppers $8.99

Fleecy, Fresh Air, 80 Dryer Sheets
well.ca $8.19
Pharma Plus $6.99


So I guess the result is that you should shop at well.ca or Pharma Plus based on convenience, but avoid Shoppers Drug Mart like the plague.


I'm Vegetari-ish

I love CBC Radio. I said it the other day, and I'll repeat it in print: In the ordered list of government services that I would give up, CBC outlives snowplowing the roads.

Here's something great: (link to CBC archive)
CBC Radio, Ideas (Aug.18th, Aug.25th, Sept.1)
Have Your Meat And Eat It To
By freelance broadcaster Jill Eisen

Food production, and how my food purchases are a vote is something that has increasingly interested me over the last couple of years. Don't get me wrong, I like eating meat, and I don't mind killing, but at torture, I think I draw the line. The fact is, that most of us are balefully ignorant about the effect we have on the world every time we make a purchase. I'm convinced that your daily vote-by-purchase has a much more profound effect then your vote at the Provincial and Federal level. And consequently, I'd like to know what my vote has been supporting.

I listened to Part1, and thought: "Very interesting. Well balanced. This is a tricky problem." Then I got into Part2 and thought: "Whoa, this PETA guy is pushing the limits." He's the sort that makes a strong statement as if it is undisputed fact, when it is actually opinion. Try to keep an open mind. The genius of the broadcast is that he's eventually followed by an ex-Vegan who although less evangelical, is also pushing limits in the opposite direction. Her conjecture that the health difference between hunter-gatherers and early sedentary societies is solely due to diet is absurd. Read some Guns Germs and Steel for a good look into that time period. Anyway, by the time I got to Part3 which isn't only well balanced, but also offers a host of positive and immediate solutions, I was so blow away the be broadcast that I started taking noted. The quotes below are paraphrased.

Let's start with some strong statements:

In Canada and in the United states, the legal protections for Dogs or Cats don't apply to Chickens or Pigs and other farm animals. Factory Farm animals are routinely mutilated without pain relief. Every moment of these animals lives are categorized by unmitigated misery.

It takes twenty calories into a pig or a chicken or a cow to get one one calorie back out in the form of meat. I would never go to my refrigerator and dump nineteen plates of pasta in the trash, but that's basically what you're doing when you consume animal products. As somebody that was trying to walk more lightly on the earth, thinking about consuming so gluttonously while other people were starving to death didn't sit well with me.
Now lets be reasonable. Nicolette Hahn Niman, author of "Righteous Porkchop: Finding a Life and Good Food Beyond Factory Farms." goes on to say some of the smartest things I've ever heard. She demonstrates that her farmland is not suitable for crop production, but is suitable for livestock grazing. It is consequently wasteful to not use the land for livestock, hence blowing away the 20:1 calorie ratio. P.S. She's a rancher who is a vegetarian who was a lawyer.

Michael Pollan, author of "In Defense of Food: An Eater's Manifesto." is even better. Here's some good stuff:
I think that sustainable animal protein has a place in really developing a truly sustainable agriculture.

According to the UN's Food and Agriculture Organization, one third of all arable land is devoted to growing crops for animals.

A food chain in which the sunlight feeds the grasses, the grasses feed the ruminants and the ruminants feed us is actually a very sustainable way to grow food.

To argue for meat eating under these very narrow circumstances, from happy farms, where animals live good lives and their waste is managed properly and they're contributing to an ecosystem approach to growing food is to say you're going to eat a lot less meat.

Meat eating was a special occasion in most households for many years.

I would argue that paying a dollar or two is probably what an egg should cost.

It's very convenient to have a long, complex food-chain where you don't have to look at the whole system and you just see the nice shrink-wrapped packaged meat. People are very happy to not deal with all the issues involved.

When I published "The Omnivore's Delima", I heard from two kinds of people, some said "I read your book and I stopped eating meat", which I found very interesting because I researched the book and I didn't stop eating meat. I changed the kind of meat I eat, but then I heard from vegetarians who said "I read your book and I started eating meat again."

In these best of all possible farms, the animals, as the farmers like to say "have one bad day". And of course we all have that bad day. Death is just a fact of life.

If you standard is about ecological sustainability, you will find yourself coming out for a limited form of animal agriculture. If your framework is moral philosophy you can construct arguments that take you to a place where it's very hard to justify meat production.
Fred Kirschenmann says some great stuff:
We should be eating with respect.

One sixth of the world's population is going hungry in the modern food system. It's partly because we've decided that we're going to feed everybody in the world from raising corn and soy beans in Iowa. And it's not working.

How many humans can a healthy ecology sustain. We are part of a biological system. We have to come to terms with how many humans are appropriate for the carrying capacity of the planet. It's probably going to be more like three or four billion. Somewhere we have to figure out how to bring our population explosion under control. We know part of the answer. We know that if you empower women, it starts to move in that direction.
Now for the ex-Vegan. She's awesome, but pushes her claims a little too far:
People used to eat things like bacon and eggs for breakfast and diabetes was not an epidemic. Now they're eating highly processed cereal (which is just sugar) with low-fat milk (which is just more sugar), and we've got this whole crop of kids now who are going to die of blood sugar problems.

The thing about being a vegan, it's not just what you eat, it becomes what you are. It becomes this tightly held identity, and that makes it really hard to engage with new information that threatens that identity. The only thing that really made me give it up was when my health failed catastrophically.

Her story runs contrary to a whole host of studies claiming that a vegetarian diet is at least has healthy if not healthier than a meat eating diet.

The thing about people who undertake a vegetarian lifestyle, they do a whole bunch of things, any of which would absolutely create a healthier life, for instance they don't smoke as much as the rest of the population. So there is a whole range of lifestyle factors that are hard to separate out.

The best cohort studies on this compare Seventh Day Adventists to Mormons. The average Adventist lives seven years longer than the average American. They tend to be vegetarian, eat less donuts, eat less processed foods, don't smoke, don't drink alcohol and don't drink coffee. So it's not a fair comparison. But the Mormons also don't smoke or drink but do eat meat, and the Mormons live longer than the Adventists.
More from Michael Pollan:
I have deep respect for vegetarians, for the reason that (unlike most people) they have thought through the consequences of their food choices. They have made a decision so that their choices reflect their values. And they're acting on that. In a sense, that's what everybody should do. I did that too, and I came out in a different place.

There's a world if difference between a grass-fed steak and a feed-lot steak. They are very different products. They have different fats. They have different pharmaceuticals.

You can point to populations that eat a heavy meat diet who are incredibly healthy, the Masai Warriors for example or the Inuit. Is it the same kind of animal protein that we eat? Well no, because those animal have a very different diet than our animals.

Cutting down on meat is pretty unambiguously a good move if you're eating that nine ounces of it a day.
In Part3 we start with fear, but then wow, the hope:
Almost all the meat and eggs you'll find on supermarket shelves comes from factory farms or feed-lots. Factory farms are blamed for everything from cruelty to animals to human illness to environmental destruction.

In 2006 the United Nations Food and Agriculture Organization released a report called "Livestock's Long Shadow". It claimed that animal agriculture was responsible for 18% of the world's greenhouse gasses. That's more than all the world's transportation systems put together.

The notion that somehow, by taking animals out of the food-system that we're going to solve our environmental problems, my response to that is: give me an example of a single ecology that is healthy without animals in it.

Until the 1950s, most farms in North America were mixed with both crops and animals. The animals ate the farm's grasses and crop wastes and returned vital nutrients to the soil. Governments encouraged Farmers to specialize.

The energy source for virtually all of agriculture now is fossil fuels. All of our fertilizers are based on fossil fuels. All of our pesticides are fossil fuel based. Our farm equipment is manufactured and operated with fossil fuels.

We can't just think anymore about not doing any ecological damage. We need to start thinking about ecological restoration.

What would a sustainable system of the future look like? What we have to work on now are systems based on biological synergies where the waste of one animal species becomes food for another. In all of our systems now, there should be no waste.
Joel Salatin from Polyface Farm in Swoope, Virginia
Polyface Farm's design is all about symbiosis, between the chickens and the pigs, the rabbits and the chickens, the pigs and the cows.

It allows us to then give the pigs valuable work to do and allow them to be in a niche that allows them to fully express their pigness. If we have a culture that just views these animals and plants as just inanimate piles of protoplasmic structure to be manipulated however cleverly hubris can imagine to manipulate it, we will begin viewing our citizens the same way and other cultures the same way. It's how we respect an honour the pigness of the pig, the least of these, that creates an ethical/moral framework on which we respect and honour the greatest of these.

What we see with large herds of herbivores is that they're moving and they're mowing. They're not eating dead cows or chicken manure or dead chickens or fermented forage or silage or grain.

How does nature sanitize behind those cows? Before Merck Pharmaceuticals and Pfizer developed grubicides and paracides, we find birds. So we follow the herbivores with the egg-mobiles.

Grass is a perennial. So it doesn't have to be plowed or planted or seeded. Grass takes solar energy and converts it into biomass (carbonaceous material). Grass has its infant stage where growth is slow, then a juvenile growth spurt, then Senescence (later life). What we want to do is ensure that those plants go through the growth spurt as often as possible because that's when they're fixing in time way more carbon than in their infant or elder stages. So we manage the cows with electric fence to allow the grass to always go through the growth spurt.

All plants want to maintain bilateral symmetry at the soil horizon. They want to have as much weight above the ground as they have below the ground. So when the cow grazes the grass, the roots sluff off an equivalent amount of root mass to create bilateral symmetry.

If we move the cows every day it greatly accelerates the amount of energy that can be converted to carbon both above ground and in the root structure. If everybody in North America who had cows would practice this model, then in fewer in ten years, we would sequester all the carbon that's been emitted since the beginning of the industrial age.

Instead, we're feeding cows corn, that's an annual, that needs tillage and petroleum, that doesn't go through the same cycle that grass does. We've got feed-lots where instead of fertilizing the grass they ate, the manure is becoming a toxic problem in an area too small to handle it.
More from Michael Pollan who spent a week at Polyface Farm:
What's astounding is that there is not only eggs, chicken and beef produced, but the land has actually been improved by this agriculture in ways that you can measure. There is more topsoil. There is more biodiversity. There is more fertility in the soil.

What this kind of grass-fed beef and chicken operation shows is that there is a way to get what we want and at the same time contribute in a positive way to nature.

Why does over 95% of the meat and eggs we eat come from Factory Farms? It is important to understand that this industrial meat system survives because the Government supports it.
[1] The feed-lot owner can buy subsidized grain for less than the cost of production. This is what has driven animals to feed-lots and off of farms.
[2] We do not enforce environmental laws on feed-lots. We treat them as farms instead of as factories.
[3] We allow feed-lots to administer antibiotics on a routine basis in the feed.
If we took away these three supports, you realize that this is not an industry survives in the free market. It is the product of this government support.
And to wrap it up, some farmers and a cook:
Currently, two corporations control over 80% of all the Beef slaughtered in Canada, and four control 72% of the hogs. The meat packer is interested in two things: how much marbling is in the meat, and how much meat to bone. They're pushed hard by the grocery stores. The grocery stores are pushed hard by Walmart. The only way farmers can survive is to grow bigger, fatter, faster, cheaper.

We look at the resources that occur on our farm, and try to turn those resources into as much beef as we can. But we can't survive doing it that way if all we're getting is the scale price paid across the auction block. We are not highly productive, make no mistake. We look at how many pounds of beef can that grass support sustainably.

The only way to survive is to sell directly to consumers. But you need a good marketer, an it's a completely different set of skills than farming. Government policy makes it more difficult. They're closing down abattoirs and imposing prohibitively expensive regulations. If you're producing six steers a week, but the abattoir only takes ten thousand steers at a time, where are your steers going to go? So the farmer is put out of business.

Can alternative food production feed the world? When you look at a big Tyson confinement house, and they say "look at how many chickens we're growing in such a small space", what they don't show you is how many hundreds of acres of grain are being brought in to feed that house.

The average North American consumes more than half a pound of meat a day.

The main reason that prices of alternative meat productions are higher is that government regulations don't scale. They reward large size and discriminate against small size. And grass-fed doesn't take government subsidies (whereas feed-lots are heavily subsidized). As grass-fed production becomes more normal, there will be an economizing of the infrastructure that we depend on, and as that happens, price can come down.

Only 20% of food expenditure goes back to the farmer. The 80% is the store and transpiration and packaging and advertising.

We need eaters who have re-discovered their kitchens. There is a new movement called nose-to-tail eating. If we're going to kill an animal, we need to eat every part of it.
Thank you CBC Radio and Jill Eisen. I love a well balanced, honest, non-judgemental source of information. Keep up the good work.


A rhyme I composed on the bike-ride home.

I hate to stop unnecessarily.
And crossing paths I look most warily.
There are creatures in the night.
There are monsters in the way.

The wind is soft the light is foul.
My enemies are on the prowl.
But I am not afraid.
My countenance is grave.

My steps are quiet and precise.
I move among them like a knife.
Leaving silence in my wake.
And I am not afraid.


Spam I didn't mind.

To realize the value of a sibling,
Ask an only child.

To realize the value of ten years,
Ask a newly divorced couple.

To realize the value of four years,
Ask a graduate.

To realize the value of one year,
Ask a kid who just failed a final exam.

To realize the value of nine months,
Ask a mother who just gave birth to a stillborn.

To realize the value of one month,
Ask a mother who just gave birth to a premature baby.

To realize the value of one week,
Ask an editor of a weekly newspaper.

To realize the value of one minute,
Ask a person who just missed the train.

To realize the value of one-second,
Ask a person who just avoided a twenty car pile-up.

To realize the value of a friend,
LOSE ONE.


Copyright Law and Bill C-32

I was looking at Dan's Twitter and started following Michael Geist. Then I read his blog. I wanted to do something, and at first was disappointed that he didn't provide a form letter. I spent almost two hours on the following, and in the end was glad that I took the time to put my own concerns in my own words. I sent it by soft and hard copy to the contacts below.

I'll try to keep this succinct. I'm concerned about Bill C-32. Obviously the world of 2010 is very different from previous decades with respect to the production, transmission and consumption of information and media. Obviously copyright reform is required. I am a software developer. I have a vested interest in copyright. I vote.

I support many aspects of Bill C-32, but the DRM section is simply ridiculous. The issue is that if a producer has shipped some media protected by a "digital lock", then removing that "digital lock" or building a device that can remove that "digital lock" would be a crime. As has been pointed out by many others before me, this idea is fundamentally flawed.

1. Bill C-32 is intentionally vague about the definition of a "digital lock". Even if the lock is simple, so long as it is there, it would be illegal to break it. Furthermore, devices that can break it would be illegal. But these devices are just algorithms, which a person could perform by hand. There was a time that MD5 was considered a cryptographically secure hash algorithm. Today it can be defeated by paper and pencil. My point is that smart humans are devices capable of defeating "digital locks". The law would make smart humans illegal.

2. It is impossible to prevent the reproduction of media with a "digital lock". Most media enters a person through their ears or eyes. By putting a light recording device in front of the eyes and a sound recording device beside the ears, any media can be copied. This example is extreme, but the idea of copying the media after the controlling device has formatted it for output (i.e. at the audio/video-out layer) has been used for a long time.

3. The above two points demonstrate that the digital-lock-as-law idea is non-functional. It should matter what people do with media, not how they do it. If I store a copy of some media in a box in my back-yard to protect against the risk of loss in case my house burns down, that should be okay, no matter how I made the copy. If I start copying and selling someone else's intellectual property, that should be a crime, no matter how I made the copy. I think that much is obvious to everyone.

4. Information and technology moves faster than all of us. Look at iTunes. Look at Google. They are obviously successful. Their focal point is obviously not DRM. Those companies who have made DRM their flag-ship are dinosaurs. Don't tie our country, our citizens, our economy to their sinking ship. We need copyright reform, not copyright imprisonment.

I don't require a reply. I'm just stating my point of view.
<my address, occupation, signature>

Find your MP
Mine is Paul Dewar:
Dewar.P(at)parl.gc.ca
Paul Dewar c/o House of Commons, Ottawa, Ontario, K1A 0A6.

The Prime Minister:
Used this instead of email.
Stephen Harper c/o Office of the Prime Minister, 80 Wellington Street, Ottawa, K1A 0A2.

Tony Clement, the Minister of Industry:
minister.industry(at)ic.gc.ca
Tony Clement c/o Office of the Minister of Industry, 235 Queen Street, Ottawa, Ontario, K1A 0H5.

James Moore, the Minister of Canadian Heritage:
moorej(at)parl.gc.ca
James Moore c/o House of Commons, Ottawa, Ontario, K1A 0A6.

Michael Chong, the Chair of the House of Commons Industry Committee:
Chong.M(at)parl.gc.ca
Michael Chong c/o House of Commons, Ottawa, Ontario, K1A 0A6.

Liberal leader Michael Ignatieff:
Ignatieff.M(at)parl.gc.ca
Michael Ignatieff c/o Liberal Party of Canada, 81 Metcalfe Street, Suite 400, Ottawa, Ontario, K1P 6M8.

NDP Leader Jack Layton:
LaytoJ(at)parl.gc.ca
Jack Layton c/o House of Commons, Ottawa, Ontario, K1A 0A6.

Canadian Heritage's Copyright Policy Branch:
Used this instead of email.
Department of Canadian Heritage, Copyright Policy Branch, 275 Slater Street, 7th Floor, Ottawa, Ontario, K1A 0M5.

Industry Canada's Intellectual Property Policy Directorate:
copyright-droitdauteur(at)ic.gc.ca
(couldn't find a hard-copy address)


Wine I Like

Two Tone Farm Cabernet Sauvignon

Chat-en-Oeuf

Funky Llama Shriaz


An Interesting Point Of View

NathanBurgoine retweeted fj who tweeted about Selene Luna who reposted Lady Bunny's FaceBook, “YOU WANT TO GET MAD?” (Author unknown).

Here it is:

We had eight years of Bush and Cheney, but now you get mad!

You didn’t get mad when the Supreme Court stopped a legal recount and appointed a President.

You didn’t get mad when Cheney allowed Energy company officials to dictate energy policy.

You didn’t get mad when a covert CIA operative got ousted.

You didn’t get mad when the Patriot Act got passed..

You didn’t get mad when we illegally invaded a country that posed no threat to us.

You didn’t get mad when we spent over 600 billion(and counting) on said illegal war.

You didn’t get mad when over 10 billion dollars just disappeared in Iraq.

You didn’t get mad when you found out we were torturing people.

You didn’t get mad when the government was illegally wiretapping Americans.

You didn’t get mad when we didn’t catch Bin Laden.

You didn’t get mad when you saw the horrible conditions at Walter Reed.

You didn’t get mad when we let a major US city drown.

You didn’t get mad when we gave a 900 billion tax break to the rich.

You didn’t get mad when, using reconciliation; a trillion dollars of our tax dollars were redirected to insurance companies for Medicare Advantage which cost over 20 percent more for basically the same services that Medicare provides.

You didn’t get mad when the deficit hit the trillion dollar mark, and our debt hit the thirteen trillion dollar mark.

You finally got mad when the government decided that people in America deserved the right to see a doctor if they are sick. Yes, illegal wars, lies, corruption, torture, stealing your tax dollars to make the rich richer, are all okay with you, but helping other Americans… oh hell no.

AND NOW YOU’RE MAD!


What to do when your phone stops working.

Luckily there are two hand-sets. Swap batteries and the broken handset starts working. So the battery is dead. What now?

Phone says: vtech DECT 6.0
Google finds: phone, picture, model: LS6115-2
And sidebar shows: NiMH replacement battery, model: 89-1337-00 (BT 28443), $19.99

But the obvious route is not usually the best.
www.alexanderbattery.com
technical@alexanderbattery.com
Answer: Unfortunately we do not carry this battery in stock. We can order an equivalent. Our part number is 70AAAH2BMJ. Price is $14.97/ea. Delivery would be about 1-2 weeks.

These (US) sites show a sample of the competition:
www.batteriesdirect.com
www.batterymart.com
www.batterydepot.com

Ten seconds research convinces me that phone batteries last ~1year.

So, I'll take two from alexanderbattery. Their price is decent, Canadian, and I don't have to deal with any hassle. I just reply: "Great. Please order two for pickup. Thanks." and when they arrive, I get notified, and I drop by to pay and pick them up. Easy.

Fail

Placed order March 24, arrived March 31, picked them up April 1, installed them April 5. They work fine, but are slightly shorter and wider and consequently don't fit in the phone, so now they're duct-taped to the back of the phone, which sucks.

Next time, I'll obey the manufacturer.

Update (Oct. 10th, 2010)

I've been getting tired of the duct-taped phones. The problem is that this (from above) is a US-only website, and for the life of me, I couldn't find a Canadian distributor. I had to use their contact-us link and ask them. Anyway, here it is:

vtechcanada.com> phone products > shop by series > ls series > LS6115 > Replacement battery : 891337

$16.99 * 2 + $12.90 shipping + $6.10 HST = $52.98

Got Them


St. Lucia (February 2010)

I wanted to go to Costa Rica for a week in February, but didn't try to book the flights until January at which point they looked too expensive. Instead, we decided to book the time off work (in advance) and book a destination at the last minute. I watched flight prices for the week prior to our vacation, and they did drop considerably as the date neared, so everything looked okay. But on the Tuesday before our Saturday vacation, prices "for everything" were still too high. There were some cheap canned flight/resort deals, but when it came down to it, that's not what either of us wanted. We ended up paying big money for a Monday-Monday (instead of Saturday-Saturday) departing from Montréal (instead of Ottawa). The flights came with a week an inland hotel, and I was just going to accept that, but Amanda (bless her) sent out a hundred emails on Saturday morning (while I was coding evilgoblin.com) and we got a spot at the Oasis Marigot -- five nights in a sea-side cottage and two nights on a sail boat. Perfect. (here's a map of our trip)

I stayed up until 3am Saturday finishing phase one of evilgobin cleanup (take the working code of ver4 and re-architect it so that it's good enough to build on), and Sunday I cleaned the house and packed. We left the house at 3pm, drove to Montréal airport, checked in at aloft hotel (which included parking the car for the week), and had dinner at St. Hubert's (a short drive away, but without directions we wandered though Dorval for a long time). Back at the hotel we watched figure skating Olympics, saw (not live) the first Canadian at-home gold medal and had a great night. Next morning, Amanda "lost" her wallet (actually it was on the night-stand beside the phone) which caused some unpacking and re-packing and general unhappiness. But the juice/croissant/fruit breakfast provided by the hotel put us back in good spirits.

The shuttle got us to the airport in no time. We flew Air Canada 1810 YUL-UVF departing 9:05am. Self check-in was easy except for figuring out how to put the stickers on the bags, and there was a ~10 minute line up at the baggage drop-off. Security had almost no line, but they took more time than usual looking at the bags in the x-ray machine, and my boots and rings set off the metal detectors so I got the "detailed" screening. Finally on the plane, our seats were separated by several rows, but the ride was good. There was almost no waiting on-plane before take-off or after landing. We deplaned via stairs, but it was much quicker than boarding because we were able to use both the front and rear exits. There was ~15min wait at customs and we were met at the exit by a taxi (8-person mini-van) driver named Ed who had been booked for us by the Oasis Marigot. He was really great. The drive took about an hour, but he showed us on a map where we were going and talked the whole way about what we were seeing and answered all our questions about St. Lucia. It cost $70us but we gave him $80.

The Oasis had suggested a taxi rather than a rental because "it's hard to find" but I think we could have done it ourselves with a decent map. That said, I really appreciated Ed's commentary and avoiding the stress of driving on the left after a long flight, so no regrets. At the end of the road we were (eventually) met by the Oasis' water taxi that took us and our luggage across the bay and were shown to our room (which was fantastic). To get up the hill side they have a trolley which is a great idea considering our luggage. I asked, and was told that both the trolley and the no-road-access are not common in St. Lucia.

There is some shared space (with a pool) outside our room (ocean cottage four aka Large Floor Plan 4) where we met Yan and Dean from Kingston Ontario (they'd arrived the previous day). They advised us that the restaurant at the bottom of the hill (Doolittle's) had a special on: "Lady with a flower in her hair accompanied by a gentleman gets her meal for free". We were starved so we ditched our stuff, picked a flower and made our way down, but the kitchen wouldn't open for another hour. We had drinks while we waited and I talked the bartender into fast-tracking us some chicken fingers from the kitchen. He was great. He brought me a second bottle of beer (Piton) without asking and didn't charge us for it or for the chicken fingers. Dinner was fairly good but it took a very long time and we were both exhausted after the walk back to our cottage. We slept almost twelve hours.

Next morning was another beautiful day. I went to the office to check-in. The lady there (Nahdjla) was great, she set me up with a car rental and talked them down to $75us from $85us. She also gave me the lay of the land and confirmed our boat pickup/drop-off. She was really good at summarizing at the end of a booking phone call so that it was obvious what both parties had agreed to. Afterwards, I picked up Amanda and we headed down to the public ferry and bought two 4day passes. On the other side (which has road access) we had lunch at a bakery on the shore (again expensive for average quality food). Afterwards we spent $200ec at the grocery store and took the loot back to our flat. It has a nice little kitchen (actually bigger than our kitchen back home) well stocked with pots, cutlery, etc, but lacking in some critical respects: salt, pepper, matches (to light the gas range). Also the propane tank (under the sink) had a safety switch in the off position. So it took some figuring. We scored matches from the neighbors and used the toaster to light them.

I cannot stress enough how beautiful this bay is.

Anyway, after stowing the groceries we went down to the beach. It's small but pleasant enough. The guy in charge of the chairs (which are free for tenants) said: "Your lady told me that she likes the ganga". I replied: "Oh. No thanks. We don't need that." To which he countered: "No? You don't need no cocaine?". I think in the remainder of the trip we were offered marijuana five or six more times and cocaine a second time. People in St. Lucia are forward but not too pushy and are easily dealt with if you are polite but firm.

After setting up Amanda with a beach chair, I snorkeled around the little swimming area for a while (which was relatively barren and polluted) and eventually found lots of fish, anemones and urchin type things around a little rock jetty that marked the left boundary of the swimming area. That was neat and I spent a long time staring at them. Afterwards we retired back to our cabin, but on the way I checked at the office to see if it is permitted to climb the hill. It turns out that the land behind the Oasis Marigot is a nature preserve and there is a trail to the summit. So I changed clothes, grabbed my camera and set off.

I was surprised to discover that the Oasis is enclosed in a razor-wire fence. I don't know if that keeps out animals or criminals. There are two little gates that you though. During the day they are left ajar. I assume they're shut in the evening. They can only be opened from the inside, so don't stay out past dark! The trail was a good climb (and pleasantly deserted) but there wasn't much to see. I did find a tiny bird's nest and on the way down ventured off the track several meters and found a giant caterpillar (maybe 11cm long, 2cm thick). The view from the top was fairly spectacular, but not really much better than from our cottage. And there were millions of tiny insects (which may or may not bite) flowing past me on the prevailing winds, so I didn't stick around for long.

At the grocery store, I had picked up a few bottles of Piton (their local lager, quite good) and a bottle of "Guinness Foreign Extra" which sadly tastes like a cross between real Guinness and tobacco juice. Yuck. Amanda made fruit, cheese, shredded cucumber and garlic-butter-pasta for dinner, then we played a game of scrabble which neither of us could finish because we played our words so densely.

Next morning we had muesli for breakfast and footed our gear over to the parking lot for our 9am meet with Jeanine from Avis. She arrived after a few minutes wait (early, I'm fairly sure) and I filled out our the rental agreement on the trunk of the car. With insurance, etc. it came to ~$100us/day (as promised), was a Nissan automatic, was shockingly scratched and dented, and had a big red sticker on the inside reminding you to drive on the left and to put it in 2nd when going down steep hills. Along with the rental, you must purchase a driver's permit, but she didn't have it with her. We arranged for it to be left at a nearby hotel. A driver was coming to pick her up and he'd have it with him.

So with that settled, we embarked on our crazy adventure. The driving is tricky. Its on the left, narrow, steep, windy and most intersections aren't posted. We went the wrong way that the first turn and were advised by an old man to turn around and "Go to the shanty, turn left, then at the other shanty, turn right". We drove (through much bedlam) to Anse Le Raye, Canaries, and on to Soufrière where people on the very narrow downtown streets continually offered directions (presumably wanting a dollar). By following other touristy cars we found ourselves on the way out of town and at the "Drive-in Volcano". It was interesting to see but was definitely a tourist trap. It was very crowded and we felt thoroughly corralled.

We got directions from two different staff at the Volcano (back through town) to the Diamond Waterfall, but when we arrived, it was thick with cruise boat tourists -- literally an infinite line of people standing three abreast. The ticket lady said they'd be all gone in a few hours so we drove back through town, parked at the waterfront and walked past "local's territory" to the beach (which was rocky and strewn with garbage). We persevered around the point and were rewarded with a great view of The Pitons and proper beach (although still quite rocky). After relaxing for a while we decided to head back to search for ice cream. I stopped at the car and re-applied sun-screen (having already burnt the tops of my feet). We picked up supplies at a local grocery store but no ice cream (because they only sold large tubs). Back at the Diamond Waterfall we had the place almost entirely to ourselves. It's definitely worth the visit when the crowds aren't there. We took our time wandering the paths and just sat around several times.

The drive home was relatively uneventful. We stopped at a few road-side lookouts. Back in Marigot we again took a wrong turn and had to be advised by a local: "Hey Papa, wrong way!" Before the long climb back to our cottage we took a swim at the beach and I started stared some more at the fish clustered around the rocks. Then back at our cottage we took a short dip in the pool to wash off the salt. After a rest we cleaned up than went to Chateau Mygo for dinner. It was characteristically expensive and took ~2.5 hours but was really superb. Amanda had scallops and I Had fried fish. That doesn't sound too exciting but let me assure you it was excellent.

I've forgotten to mention that each of us had picked up a variety of bug bites, mostly around the feet and ankles. So before dinner and again before bed, we started putting on DEET, and that seemed to significantly reduce the problem. There's nothing like scratching mosquito bites on sun burnt feet.

Next morning (Thursday 18th) we had muesli again and it was another beautiful day. But quelle disaster, I'd lost the car keys. I'm normally a very careful person and this sort of thing doesn't happen to me. I double searched the room, checked the path to the car and back and decided they must have been in my shorts pocket when I went swimming, and were irrevocably lost in the sea. I asked around but no one had found any keys, so I got Nahdjla to phone Avis for me and ask for another pair. They said that the spare keys were in another facility and they'd find them and call back with a quote (for delivery cost). So I agreed to check back with her later and fetched Amanda from the house so I could snorkel for the keys. Unbelievably, I swam right to them. They were beside an urchin beneath a buoy that I had been looking at the other day. Hooray! This un-ruined my day. I ran back to advise Nahdjla.

Amanda and I had egg salad sandwiches for lunch before driving to Castries. The drive north is much easier than the drive south. The roads are wider, less windy, less steep, less fast. But Castries is a city and there were three huge cruise ships in the harbour. After some sweating and swearing we found a multi-level car park and walked around the markets. After driving, I was in no mood for shopping, but I did my best not to grouch on Amanda's parade. Seeing my eminent collapse, she stopped us at a grocery store and scored me some Snapple and two bananas. Then we drove on to Rodney Bay and went swimming at their beach. It's nice but not as good as Varadero or Manual Antonio for that matter.

After our swim we walked the length of the beach and back and got a look at the free-with-the-flights hotel: very depressing. I much prefer Marigot Bay. On the way home we had to punch through some rush-hour traffic, but got back to the Oasis in time to watch the last light fade from the horizon. We had a quick swim in the pool, then Amanda cooked and amazing meal: carrots, orca, garlic potatoes, fried fish. But she had a stomach ache, so I ate alone.

There is a lot I love about Marigot Bay, but it has its faults. There are mosquitoes. Although I never saw them I had ten or twelve nasty bites to remember them by. There is hot water but the water pressure (both hot and cold) is bad. When you run the tap or flush the toilet or take a shower it comes in fits and bursts as though the pump is drawing air. The birds are pretty but there is a lot of forest noise all night and the walkway lights shine into your room so that it's never dark enough for proper sleeping. The bed is large but is hard and you can feel the springs and despite its hardness passes all your partner's slightest movements to you as little earthquakes, almost as efficiently as a waterbed. Also, I hate the pillows.

Anyway, for whatever reason (I blame the pillows), I woke up mid week with a stiff neck. And Thursday night it got so much worse that I couldn't sleep. Near morning I took some Advil and switched to a towel for a pillow and the situation improved but I was largely incapacitated until noon.

After lunch we drove out to Barre de L'Isle, which is an Inland hike along a ridge and up a mountain. The ridge was beautiful and breezy and the mountain (steep hill) was a very difficult climb but a great adventure. The views were nice but not spectacular. The value was in the journey.

Back home after a leisurely dip in the pool, Amanda made dinner and we packed for the boat. We read some of "The Last Chronicle of Barset" together (Amanda caught up to me the previous night), and went to bed. I slept with a towel for a pillow again which helped but next morning my next was still quite stiff.

Saturday was another beautiful day. I met Avis at 9:30am to return the car. They were on time and the process was easy. I stopped at the bank to pickup some cash and luckily they were open. Unluckily, the only way to get cash (I have TD debit and visa) is as a cash advance on a visa (which collects interest immediately) plus a bank fee of $20ec. Hotels and restaurants take visa but everyone else (taxi, park admission, ferry, grocery store) requires cash (us or ec). So after waiting forever in line, getting the bad news, trying (rejected) my debit card in the ABM, waiting again forever in line trying (rejected) my visa in the ABM (fee is only $5ec if you use the ABM), I eventually got $200ec form the bank teller (after handing over Visa, Driver's License, foreign address, local address, and signing ~nine times).

In the mean time, Amanda's attempts to email the Girl Guides were frustrated by repeated IE crashes. We were both late so she brought down all the luggage all by herself (therefore super pissed). But finally we were on the boat and under sail to Pigeon Island in Rodney Bay.

The journey by boat is very different and much better then the journey by car. Our skipper "Mike" (born and raised in Marigot Bay) anchored near Pigeon Island and motored us in (via little rubber dingy) and we agreed to meet at 3pm. We paid entrance (it's a national park), used the washroom, had an excellent lunch (Roti) and climbed the hill, which has an unbelievably great view. Then motored back to the boat, went for a swim and sailed back to Marigot Bay.

We were both pretty burnt but not yet incapacitated (I actually bummed some sunscreen from a Brit on Pigeon Island beach). Three things we were short on: Cash, Sunscreen, Water. On the sail home we saw a pirate ship "The Unicorn", a big turtle, and the green flash as the sun dipped below the horizon.

Mike dropped us off at the Chateau Mygo and arranged to meet us in the morning. We had drinks and dinner and Amanda read aloud from "The Last Chronicle of Barset". She's the best.

Later in the evening we met a great couple from Lunenburg who run a bed and breakfast there. We got the ferry to take us back to our boat (a distance of maybe 20m) for $10ec. We pretty much went straight to bed.

Next morning Skipper Mike was very drunk. I didn't notice at first (when he boated us to shore where we bough two Pain aux Chocolat and 4.5L of water and a baguette). But it was obvious to both of us, and he mentioned it as he boated us to the Oasis side. We agreed to met him at 10am (so that he could sleep it off) and Amanda went to the office to use the internet (and finish off the Girl Guide emails).

10am came and went with no skipper. I found him passed out and snoring on one of the lounge chairs on the beach. I spoke to him but he didn't wake. I spoke and nudged him several times, and finally he came-to. Eventually we were under sail (downwind) to Soufrière. He did most of the steering asleep, which is to say lounging in the back of the boat until the sails made a lot of noise at which signal he would nudge the wheel with his feet. But he did keep us on course and it was a beautiful day.

We went snorkeling near Jade Mountain (~$1500/night) north of Soufrière and saw lots of neat ***fish and motored in to Soufrière, tied up at the pier and walked to the Hummingbird for a late lunch. We also bought take-away sandwiches for dinner. They were characteristically slow and had trouble with the visa lines (had to take an imprint). So we didn't get back to the boat until ~5pm. We motored back to Marigot Bay (although I think we could have made just as good time sailing). The sun set as we went and the stars were out by our journey's end. It was very beautiful. Mike left us on the boat, and I re-packed our gear. Before bed we played a game of scrabble and read aloud. I slept with a proper pillow and had my first restful sleep all week.

In the morning, Mike (sober) boated us to shore and we bought water and two chocolate twists and two Pain aux Chocolat from the bakery and relaxed on the beach. Amanda read aloud for most of the morning. It was another beautiful day. I went on an adventure down the rocky shore of the bay until I found a large rock outcrop which I climbed. Then back at the beach we went for a swim and met a nice couple from New York with whom we shared a cab to the airport (organized by Nahdjla). At the top of the hill out of the bay we stopped for ice cream. At the airport, I remembered my customs form just before we checked our bags (which was lucky because it was in one of the bags). Past security we bought a delicious lunch and were soon on the plane. All US flights had to do a second security screening but since our was a direct to Montréal, we just waked though.

There was considerable turbulence on the flight home, but I like that. The Montréal airport was smooth and efficient with short lines. We were pretty exhausted and Amanda (bless her) drove us the two hours home to Ottawa. To bed after midnight, and straight to work in the morning. Ouch.

St. Lucia is a great country. I had a great time. But for inland adventures, I think I prefer Costa Rica. However I would like to meet a skipper I could live with and go on a Bahamas sailing trip for a few weeks or a month where all nights and most meals are spent on the boat.

I didn't get underwater photos, but here's some of the fish I think we saw.


Flights From Ottawa (YOW)

Conclusion: Last minute sucks. Book in advance.

The Long Story

I've always wondered why you can't just go to the Ottawa airport's website and ask: "What are all the locations that fly direct from here?". I want to know this because most of the time I'm flying to escape winter and a lay-over in Chicago delayed by a snowstorm can really rain (or sleet) on my parade.

Andy says that he's seen flights from Ottawa to Cuba (Varadero or Havana) for as low as $299 (including tax) via Sunwing or AirTransat, and that at last minute the prices get better and better. James says that WestJet Vacations also flies to Cuba, but the flights aren't on their website. You have to call them to get the prices. When he booked, they had by far the best for Ottawa to Varadero.

Here's a list of direct flights from Ottawa that I got from www.ifly.com. Note that "Non-Stop" means that you fly from A to B without landing whereas "Direct" means that you fly from A to B but may stop at C to pickup more passengers before arriving at B. You don't have to deplane, but there may still be a connection.

# Boston Logan (BOS)
# Calgary (YYC)
# Cancun (CUN)
# Fort Lauderdale Hollywood (FLL)
# Halifax (YHZ)
# Memphis (MEM)
# Omaha Eppley Airfield (OMA)
# Philadelphia (PHL)
# Quebec Jean Lesage (YQB)
# Regina (YQR)
# Saskatoon (YXE)
# Vancouver (YVR)
# Winnipeg (YWG)

Here's a list of international flights from Ottawa that I got from www.flylowcostairlines.org. For some of them, I've also provided the www.expedia.ca price for a February 13-20 one-person return flight from YOW booked on Jan 13 2010, with one stop unless noted.

# Paris CDG
# London LGW
# Philipsburg SXM $1,287 (7hr)
# Freeport FPO $805 (20hr) (2+ stops)
# Nassau NAS $934 (6hr)
# Bridgetown BGI $1,114 (8hr)
# Puerto Plata POP $1,505 (20hr) (2+ stops)
# Punta Cana PUJ $1,010 (4hr)
# Montego Bay MBJ $992 (8hr)
# St. Lucia UVF $1,957 (8hr)
# Providenciales PLS $1,264 (7hr)
# Cancun CUN $897 (5hr)
# Cozumel CZM $1,354 (7hr)
# Mazatlan MZT $783 (22hr) (2+ stops)
# Puerto Vallarta PVR $1,316 (13hr)
# San Jose Del Cabo SJD $1,011 (10hr)
# Zihuatanejo ZIH $1,213 (22hr) (2+ stops)


I really like Costa Rica. I've been there once and we flew from Toronto to Liberia with a stop (change planes) in Miami. We booked ~2 months in advance. The flight cost $790.69 return per person, with 7hr 40min duration. The main airport in Costa Rica is SJO in San Jose, and unless you're exploring the western part of the country, it's the logical choice.

Here's a list of carriers that go from YOW to SJO.

# Air Canada
# American Airlines
# United
# LACSA
# Continental
# US Airways
# Delta
# NWA

I've booked flights through www.expedia.ca several times and I've always wondered what cut they are taking. So, I looked up some flights on the www.continental.com website and sure enough they looked cheaper, but once you go through the hassle of half-way purchasing the tickets, they rack on significant extra fees. With zero effort I found the exact same flights on www.expedia.ca for almost the same price. Here's what I found (one-person, return).

YOW to EWR to SJO
CO2892, CO1754
Fri Feb 5th, depart 11:25am, arrive 7:40pm, duration 9h 15min

SJO to EWR to YOW
CO1797, CO2762
Mon Feb 15th, depart 7am, arrive 4:48pm, duration 8hr 48min

Continental Final Total: $1,048.52
Expedia Total: $1,096.24

So it looks like there's a little overhead, but in my opinion it's worth it. I wanted to get an idea of the flight possibilities from YOW to SJO, so I did an expedia search from every day from Feb 1st to Feb 13th with the following criteria: one-person, one-way, YOW-SJO, duration under 11hr, booked Jan 26th 2010 via expedia, cost in CAD$.

mon 1, 6:00 am, 1:55 pm, 8hr 55mn, $835, Air Canada 479 / 998
mon 8, 6:00 am, 1:55 pm, 8hr 55mn, $635, Air Canada 479 / 998
wed 3, 6:00 am, 1:55 pm, 8hr 55mn, $1045, Air Canada 479 / 998
wed 10, 6:00 am, 1:55 pm, 8hr 55mn, $705, Air Canada 479 / 998

mon 1, 12:05 pm, 9:30 pm, 10hr 25mn, $787, American Airlines 4300 / 1374 / 2141
mon 8, 12:05 pm, 9:30 pm, 10hr 25mn, $787, American Airlines 4300 / 1374 / 2141
tue 2, 12:05 pm, 9:30 pm, 10hr 25mn, $494, American Airlines 4300 / 1374 / 2141
tue 9, 12:05 pm, 9:30 pm, 10hr 25mn, $787, American Airlines 4300 / 1374 / 2141
wed 3, 12:05 pm, 9:30 pm, 10hr 25mn, $853, American Airlines 4300 / 1374 / 2141
wed 10, 12:05 pm, 9:30 pm, 10hr 25mn, $853, American Airlines 4300 / 1374 / 2141
thu 4, 12:05 pm, 9:30 pm, 10hr 25mn, $853, American Airlines 4300 / 1374 / 2141
fri 5, 12:05 pm, 9:30 pm, 10hr 25mn, $853, American Airlines 4300 / 1374 / 2141
sat 6, 12:05 pm, 9:30 pm, 10hr 25mn, $787, American Airlines 4300 / 1374 / 2141
sun 7, 12:05 pm, 9:30 pm, 10hr 25mn, $787, American Airlines 4300 / 1374 / 2141

thu 11, 12:05 pm, 9:50 pm, 10hr 45mn, $853, American Airlines 4300 / 1207 / 2141
thu 11, 12:05 pm, 9:50 pm, 10hr 45mn, $1314, United & American Airlines 6744 / 1207 / 2141
thu 11, 12:05 pm, 9:50 pm, 10hr 45mn, $853, Air Canada & American Airlines 4229 / 1207 / 2141
fri 12, 12:05 pm, 9:50 pm, 10hr 45mn, $853, American Airlines 4300 / 1207 / 2141
fri 12, 12:05 pm, 9:50 pm, 10hr 45mn, $1349, United & American Airlines 6744 / 1207 / 2141
fri 12, 12:05 pm, 9:50 pm, 10hr 45mn, $1349, Air Canada & American Airlines 4229 / 1207 / 2141
sat 13, 12:05 pm, 9:50 pm, 10hr 45mn, $853, American Airlines 4300 / 1207 / 2141

mon 8, 11:25 am, 7:40 pm, 9hr 15mn, $648, Continental 2892 / 1754
tue 2, 11:25 am, 7:40 pm, 9hr 15mn, $628, Continental 2892 / 1754
tue 9, 11:25 am, 7:40 pm, 9hr 15mn, $628, Continental 2892 / 1754
wed 3, 11:25 am, 7:40 pm, 9hr 15mn, $628, Continental 2892 / 1754
wed 10, 11:25 am, 7:40 pm, 9hr 15mn, $838, Continental 2892 / 1754
thu 4, 11:25 am, 7:40 pm, 9hr 15mn, $628, Continental 2892 / 1754
fri 5, 11:25 am, 7:40 pm, 9hr 15mn, $648, Continental 2892 / 1754

wed 3, 6:10 am, 2:35 pm, 9hr 25mn, $984, Air Canada & US Airways 7730 / 2269 / 1707
wed 10, 6:10 am, 2:35 pm, 9hr 25mn, $976, Air Canada & US Airways 7730 / 2269 / 1707
wed 3, 6:10 am, 2:35 pm, 9hr 25mn, $986, United & US Airways 8402 / 2269 / 1707
wed 10, 6:10 am, 2:35 pm, 9hr 25mn, $977, United & US Airways 8402 / 2269 / 1707
thu 11, 6:10 am, 2:35 pm, 9hr 25mn, $997, Air Canada & US Airways 7730 / 2243 / 1707
thu 11, 6:10 am, 2:35 pm, 9hr 25mn, $998, United & US Airways 8402 / 2243 / 1707
fri 5, 6:10 am, 2:35 pm, 9hr 25mn, $835, Air Canada & US Airways 7730 / 2269 / 1707

sat 6, 6:50 am, 1:50 pm, 8hr 0mn, $805, US Airways 3645 / 1923
sat 13, 6:50 am, 1:50 pm, 8hr 0mn, $734, US Airways 3341 / 1923

wed 10, 11:54 am, 9:30 pm, 10hr 36mn, $1092, Air Canada 4229 / 1374 / 2141
wed 10, 11:54 am, 9:30 pm, 10hr 36mn, $1092, United 6744 / 1374 / 2141

thu 11, 2:31 pm, 9:35 pm, 8hr 4mn, $812, Continental 2623 / 1796
fri 12, 2:31 pm, 9:35 pm, 8hr 4mn, $1035, Continental 2623 / 1796

sat 13, 6:03 am, 4:02 pm, 10hr 59mn, $917, Continental & United & LACSA 2369 / 3714 / 621


So, they're all expensive, but they're not booked well in advance and they're only one-way which presumably doesn't get some kind of return discount. It's important to note that [wed,thu,fri,sat] have arrivals [1:55,2:35,1:50] with [Air Canada, United, US Airways]. Unless you want to spend the night at San Jose or drive in the dark, you'll want these arrivals.

I'd love to go to Costa Rica again, but we're going to just wait until the week prior to our trip and then book (to some place warm) whatever flights are cheap. I've never tried a last-minute vacation before, so I'll let you know how it goes. Hopefully we won't have to take some package-sit-at-a-resort-all-week deal.

On Jan 31st, I checked for flights from Ottawa to the airports on my map for one person, return. When no flight less than $1000 / 11hrs was found, I marked it as expensive.

Feb 6th to FEb 13th

SXM $872, 6hr 55mn
FPO $950, 9hr 8mn
NAS $751, 6hr 2mn
BGI $826, 8hr 4mn
POP expensive
PUJ $488, 4hr 25mn (charter)
MBJ $693, 6hr 56mn
UVF $824, 8hr 19mn
PLS $830, 6hr 50mn
LIR expensive
SJO expensive


Feb 13th to Feb 20th

SXM expensive
FPO expensive
NAS $839, 6hr 2mn
BGI expensive
POP expensive
PUJ $716, 4hr 30mn
MBJ $896, 6hr 56mn
UVF expensive
PLS expensive
LIR expensive
SJO expensive


I found some blog that says that flights from Jet Blue, Southwest, Spirit, and Air Tran aren't searched by expedia. I searched on those sites and the others below but didn't find any good flights to SJO.

Jet Blue (doesn't fly from ottawa)
Southwest (doesn't fly from ottawa)
Spirit (doesn't fly from ottawa, but you can fly very cheaply from detroit to SJO)
Air Tran (doesn't fly to costa rica)
Last Minute Travel expensive
Priceline (us departure only)
Sunquest Vacations expensive
Red Tag expensive
Flight Centre expensive

From Sunwing you can get very cheap round-trip flights from Ottawa to:

Cancun, Mexico
Cayo Coco, Cuba
Holguin, Cuba
Jamaica
Punta Cana, Dominican Republic
Roatan, Honduras
Varadero, Cuba

On the same site, you can get good round-trip flights from Toronto to many destinations, including:

Cienfuegos, Cuba
Acapulco, Mexico
Cozumel, Mexico
La Romana, Dominican Republic
Liberia, Costa Rica (but you have to travel on monday)
Los Cabos, Mexico
Manzanillo de Cuba
Panama
Puerto Plata, Dominican Republic
Puerto Vallarta, Mexico
San Juan, Puerto Rico
Santa Lucia, Cuba
Santiago de Cuba
St. Lucia

I did some more digging and found these expedia competitors:
www.cheapoair.com
www.flightnetwork.com

I also found this site that lists airlines flying to Costa Rica.
* JetBlue: Orlando, Miami, daily flight
* Air Canada : Toronto
* American Airlines : Miami, Dallas
* Continental : Houston, Newark
* Delta Airlines : Atlanta
* Delta : New York to San Jose (Juan Santamaria) non-stop flight 5 x per week
* Delta : New York to Liberia Guanacaste non-stop flight twice x week
* Northwest: Mineapolis
* Sky Service : Toronto, Calgary (seems to only operate in the summer)
* United Airlines: Chicago
* US Airways : Charlotte
* Iberia - *new ( May 2007 ) 10 direct flight Madrid / San Jose per week

But finally, the gold mine: Charter flights from Expedia, but they're not easy to find. You have to click "Deals" on the right side of top bar, then "last minute getaways", second from top of left bar, then "charter flights" (middle tab). Don't forget to select origin and region in the drop downs. Note that Costa Rica and Mexico are in Latin America, not the Caribbean.







When searching on Feb 1st, I found the following departing from Ottawa.

Feb 12, 7days, Jamica, 616
Feb 12, 8days, Punta Cana, 699
Feb 13, 7days, Punta Cana, 716
Feb 14, 7days, Aruba, 839
Feb 14, 7days, Aruba, 833
Feb 12, 7days, Puerto Plata, 589
Feb 12, 7days, St. Lucia, 608
Feb 14, 8days, St. Lucia, 951
Feb 12, 7days, Jamica, 617
Feb 13, 7days, La Romana, 618
Feb 14, 7days, Puerto Plata, 649
Feb 13, 7days, Punta Cana, 649
Feb 12, 7days, Punta Cana, 649
Feb 14, 7days, Punta Cana, 649
Feb 12, 7days, Bermuda, 912
Feb 13, 7days, Bermuda, 912
Feb 14, 7days, Bermuda, 912
Feb 14, 7days, SanJuan, 915
Feb 13, 7days, St. Martin, 962

But I'm not really interested in any of those destinations.

Search expedia on Feb 2nd
YOW - PLS, Feb 6, $662, 6hr 29mn
YOW - PLS, Feb 13, $1188, 6hr 29mn
YOW - SJO, Feb 6, $953, 8hr 0mn
YOW - SJO, Feb 13, $1239, 8hr 0mn (6:50am-1:50pm, US Airways 3341 / 1923)

Search expedia on Feb 3rd
YOW - PLS, Feb 6-13, $707, 6hr 50mn (west jet YOW-YYZ-PLS)
YOW - PLS, Feb 13-20, $1301, 6hr 50mn
YOW - SJO, Feb 6-13, $953, 8hr 0mn
YOW - SJO, Feb 13-20, $1239, 8hr 0mn

Search expedia on Feb 4th
YOW - PLS, Feb 6-13, $599, 6hr 29mn (connect in philadelphia, westjet is $870)
YOW - PLS, Feb 13-20, $1288, 6hr 29mn
YOW - SJO, Feb 6-13, $953, 8hr 0mn
YOW - SJO, Feb 13-20, $1229, 8hr 0mn

So it appears that you do get a discount when booking the week of your trip. But that same SJO flight booked 3 months in advance costs $987, so the last-minute discount is inconsequential.

The plan: on the morning of Tuesday February 9th, book flights Feb 13-15, either to SJO, PLS, or failing those two, to whatever is available (maybe an all-inclusive in Cuba). Then scramble to plan the rest of the trip that same day.

Charter Flights From Ottawa (searching Feb 3rd)

St. Lucia, 8 Days, Feb 14-22, $736
Jamaica, 7 Days, Feb 14-21, $803
Aruba, 7 Days, Feb 14-21, $833
Puerto Plata, 7 Days, Feb 14-21, $865
Bermuda, 7 Days, Feb 14-21, $912
San Juan, 7 Days, Feb 14-21, $915
Punta Cana, 7 Days, Feb 14-21, $935
Grand Cayman, 5 Days, Feb 14-19, $967

This site says that YYZ flys direct to the following:

iFly Direct from YYZ to:

* Barbados Grantley Adams (BGI)
* Bermuda (BDA)
* Cancun (CUN)
* Hong Kong (HKG)
* Mexico City Benito Juarez (MEX)
* Montego Bay Sangster (MBJ)
* Nassau (NAS)
* San Francisco (SFO)
* Vancouver (YVR)
* Victoria (YYJ)

But that's obviously an incomplete list because WesJet flys direct from YYZ to PLS.

Well, our plan didn't work.

Searches on Feb 9th, YOW-SJO

13-20, $1290
14-21, $1282
15-22, $1427
16-23, $1267
17-24, $1045

feb 20-27, $1005
f/m 27-06, $1240
mar 06-13, $1008
mar 13-20, $1458
mar 20-27, $953

What about St. Lucia? YOW-UVF

13-20, $1336
14-21, $1117
15-22, $1136
16-23, 20hrs
17-24, 20hrs

Okay, what's available on West Jet?

Feb 13-20

YOW-BGI, $1370
YOW-BDA, n/a
YOW-SJD, n/a
YOW-CUN, n/a
YOW-CCC, n/a
YOW-CZM, n/a
YOW-HOG, n/a
YOW-ZIH, n/a
YOW-MBJ, $828
YOW-NAS, $1408
YOW-PLS, $1420
YOW-PUJ, $770
YOW-UVF, $1000
YOW-VRA, n/a

YYZ-UVF
14th 6am-11am
21st 12:30pm-5:55pm
$632

Okay, Air Transat.
Nope.

We just couldn't get cheap flights to anywhere good. So we bought an Air Canada Vacations package (flight and hotel) to St. Lucia (monday to monday when we wanted saturday to saturday, and flying from Montreal when we wanted to fly from Ottawa) for $1,000/ea, but we don't intend to actually stay at the hotel. It's just that the package was the cheapest way to get the flights.

Juxtapose that to the earlier $900/ea for roundtrip flights YOW-SJO on Sat-Sat, if you're willing to book in advance.

Conclusion: Last minute sucks, book in advance (unless you want a flight/hotel package).


Print Your Own Book

My dad has (over the years) written several poems and short stories, and I thought it'd be a nice idea to get them bound into a book. A quick survey of book publishing options gave me the following.

Low cost, mini-mass production -- www.scaruffi.com
Summary of self-publishing options -- mashable.com
Lulu (books, media, storefront) -- www.lulu.com
Blurb (has booksmart) -- www.blurb.com
Xlibris (for serious authors) -- www.xlibris.com
Photo Books -- www.apple.com
Discussion on Self Publishing -- www.fonerbooks.com
Semi-useful blog about how to use Lulu -- www.makeuseof.com
Cafe Press (low cost) -- www.cafepress.ca

My requirement was to print (not for resale) ~4 books of ~30 pages with flexible layout options using roughly the standard novel paper size and with the ability to embed illustrations. After reading the above, I decided it was a draw between the following two options:

LuLu: Perfect Bound, 32 pages, Softcover, 5.83in x 8.26in, $5.14 USD/book.
Blurb: Perfect Bound, 32 pages, Softcover, 5in x 8in, ~$5/book.

I'd previously heard of Blurb's booksmart software, and Lulu looks like its niche is more for helping you re-sell your final product, so I went with Blurb.

Big mistake.

In the end I was able to produce what I wanted, but the path was full of pain and misery. If I ever try something like this again, it'll be with Lulu.

In the booksmart software, there are three modes: preview, edit and layout. The preview mode (presumably) shows you exactly what your final product will look like. This is a nice feature and is pretty much the only thing I appreciated about booksmart.


Edit mode is where you add your text. It has a zoom feature but as soon as you move your cursor from one editable area to another, it reverts to the default zoom, making the zoom feature frustrating and effectively useless. Another pisser is the restriction on window size (in all modes). They have scroll bars, but for whatever reason, you're not allowed to resize the window much smaller than full-screen -- again, useless.

There are two types of text areas: fixed size and flowing. Fixed size means that if your text fills more space than the available area then it just disappears past the bottom. This isn't very useful for anything other than captions. Flowing means that when text goes past the bottom of the page, a new page is started and the text appears there -- not a break-through technology, that's how every other word processor functions. But here's the coup de grâce: if you have text flowing from page 5 to 6 and you later add text to page 5 or change font size or do anything to effect where in your text the page-break occurs then:
1. extra line-breaks are arbitrarily inserted
2. characters from you text are arbitrarily deleted.

Insane. Unbelievable. Garbage. Just to be totally clear: you add a paragraph on page 3 and text is deleted from every following page. That's totally unacceptable.


When you're in layout mode it looks like the following. Because of the "arbitrarily delete your text" bug described above, I ended up making my own layouts (one for left pages, on for right pages). And because I didn't like the dimensions of their header, I added my own. These choices made production of the book very tedious, because I had to copy (and align) my header text for every page, and I had to decide before-hand the layout of all my page text because I had to use fixed size containers and text couldn't flow from page to page. So if you're editing page 20 and you change your mind about page 3 you basically have to redo pages 3 to 20 if the page 3 changes at all effect page 4.


Finally, it has an automatic save-as-you-go feature, which I normally appreciate. But since the interfaces and controls were so horribly non-intuitive and buggy, it was difficult to know the effect (sometimes sweeping) of your actions and how to reverse them. They do offer the ability to archive the current state of your book, which I used often as a means to recover from the devastating effects of their frequent bugs.

In the end, I managed to cobble together an acceptable product and placed an order for four copies on Dec. 22nd 2009. They arrived about 30 days later, and my dad was delighted.

My advice: do publish books; don't use blurb.


Sick Record

I keep track of everything. Here's my sick record. I hate being sick. Perhaps this time it was my fault because I was riotously drunk two days previous, but sometimes that just can't be avoided.


Here's the facts: Sunday, not feeling very good. Monday morning, sore throat. By Monday evening, throat is very painful, no white spots on back of throat (assume not strep), lots of thick yellow mucus from sinuses, no body aches-pains, no fever of note. Self diagnosis: bacterial infection or common cold. Treatment: rest, fluids, NeoCitran and Strepsils (because that's what my mom always gave me), Tylenol Cold and Tylenol Sinus (because we have it around the house), and Chloraseptic Sore Throat Spray which I had never heard of, Amanda bought for me, and I fully endorse, and on which I am hereafter dependant.

I hate having a sore throat. It hurts so bad that I have to clench my teeth to swallow. I clench my teeth so hard that I'm worried my teeth will break. Eventually my jaw gets tired and starts to ache. It's a downward spiral of misery.

Anyway, eventually I get better and trade bedridden-sore-throat-exhaustion-with-blowy-nose for blowy-nose-with-occasional-evil-cough-that-hacks-up-green-phlegm. Yum. I never bother going to the doctor when I'm sick because they never do anything, but on the seventh day I thought I'd reconsider. So I walked to Appletree and after waiting for an hour tried to ask my question. They wanted to jam me into the tell-current-symptoms-send-him-home mould, but I eventually shook them out of it. What I wanted was three minutes to describe my week (my symptoms, my actions) and ask if I should have done anything differently (i.e. come in and asked for antibiotics). Also, seven days sounds like a long time to be sick. I didn't really get straight answers, but that's probably your standard evasion of liability. Hereafter, I will live by the following algorithm.

Never visit the doctor unless:

  • You have unusual symptoms (i.e. this isn't a simple cold/flu/infection).
  • You are apocalyptically sick.
  • You were sick, were getting better, have started to get worse.
  • You've been sick for more than ten days.


Snowshoeing On The Dark-Side

This christmas, Chris & Angie got us snowshoes. So to start off the year right, the four of us followed Roland into the bush. It was a couple of years ago that Amanda had the idea that we should rent snowshoes from MEC and hike in Gatineau. But there was so little snow and the trails were so well trodden that we didn't really need them at all (crampons maybe). Despite that, we had a great time and Roland recognized the awesome snowshoe potential and bought himself a pair. Hence, he is our fearless leader in the wilds of Kantata Lakes. There's a parking lot near the beaver pond on Goulbourn Forced Road. From there we hiked west into the bush. Roland knows the place like the back of his hand. We spent most of our time on a bike trail called "The Dark Side", near the beginning of which we found a porcupine in a small cave. Very exciting. Lots of fun. The bush in Kanata isn't as pretty (or hilly) as Gatineau, but it is easier to get to and much less crowded. I prefer it.


Good Guys / Bad Guys

There are 6 men, 3 good and 3 bad. They stand on the east side of a very deep chasm. An electrified (untouchable) cable spans the chasm from which hangs a little car (which luckily is also on the east side). The car can transport one or two men from one side of the chasm to the other, but can't span the distance unmanned. If at any point the bad guys outnumber the good guys, they will kill the good guys. I.E. if a good guy and bad guy are in the cable car, traveling towards a side on which there is only a bad guy, then when they arrive the good guy will be outnumbered and will surely die.

How can everyone get across the chasm alive (such that all six men are on the west side at the same time) using only the car? (No funny business with the cable or alternate routes across the chasm.)

Solution in ASCII-HEX. (here's a converter)

496620796F7520766965772074686520666F6C6C6F77696E6720696E2061206D6F6E6F737061
636520666F6E742C2069742073686F756C64206D616B652073656E73652E1F1F202020202D2D
202D2D2D2D206767676262621F202020202D2D203C2D626220676767621F202020206262202D
2D2D2D20676767621F20202020206220622D3E2020676767621F202020202062202D2D2D2D20
67676762621F202020202062203C2D6262206767671F202020626262202D2D2D2D206767671F
20202020626220622D3E20206767671F202020206262202D2D2D2D20676767621F2020202062
62203C2D67672067621F202067676262202D2D2D2D2067621F2020202067622067622D3E2067
621F202020206762202D2D2D2D20676762621F202020206762203C2D67672062621F20206767
6762202D2D2D2D2062621F20202067676720622D3E202062621F202020676767202D2D2D2D20
6262621F202020676767203C2D626220621F206767676262202D2D2D2D20621F202067676762
20622D3E2020621F202067676762202D2D2D2D2062621F202067676762203C2D6262202D2D1F
676767626262202D2D2D2D202D2D


Monkeys & Doors

There are 100 doors, all closed and numbered 1 to 100.
There are 100 monkeys, numbered 1 to 100.
The monkeys are sent one by one (in order) to change the states of the doors (open to closed vs. closed to open).
Monkey 1 opens every door (1, 2, 3, 4...)
Monkey 2 changes the state of every other door (2, 4, 6, 8, 10...)
Monkey 3 changes the state of every third door (3, 6, 9, 12...)
And so on for monkeys 4-100...
After the monkeys make all their changes, what is the state of door N?
i.e., give a formula or script that computes the state of an arbitrary door.

Solution in ASCII-HEX. (here's a converter)

4C657420282073203D3D2030202920696E646963617465207468617420646F6F72204E206973
20636C6F7365642E1F4C657420282073203D3D2031202920696E646963617465207468617420
646F6F72204E206973206F70656E2E1F4C6574202520626520746865206D6F64206F70657261
746F722E1F1F73203D20313B1F666F722028206D203D20323B206D203C3D203130303B206D2B
2B20291F7B1F20206966202820284E2025206D29203D3D20302029207B2073203D202873202B
203129202520323B207D1F7D


Mysteriously Bad Internet

May 2007 - October 2008, we lived in Kanata and had Rogers cable internet. For unrelated reasons, I hate Rogers, but the quality of the internet was decent. October 2008 - present (December 2009) we live closer to downtown (K1Y 1W6), and we have a Primus phone/internet package. The price is decent ~$70/month (taxes included). The phone quality is good. We've never used more than the allotted long distance minutes. But the internet sucks. Our Primus DSL is unbelievably bad. Here's the add: Triple Value Bundle.

The first problem is that they give you an idiot's install package. When you sign up, they tell you that you have to pay them a sign-up fee. Sounds reasonable. What they don't tell you is that you're buying a useless modem/router device, and that if you thereafter want to use any other device they will refuse to support you. That wouldn't be 100% stupid if the device was a wireless router, but it's not. You can buy such a device from them, but since they don't tell you any of this at sign-up time, it's too late and you're screwed.

So, you get a Thompson SpeedStream modem (which is a DSL modem and wired router combined). They don't tell you your username and password, so you can't connect it to your wireless router (which no doubt you already have unless you've lived in a cave for the last decade and they are your very first internet provider). Solution: call them, get the user/pass for DSL, change the modem to bridged mode, setup your router with the user/pass as PPPoE. But good luck with this as their support staff speak almost no english.

Bridge Mode
TekSavvy provides this article that shows screenshots of how to set the modem to bridged mode. Basically: wired connection to modem >> 192.168.1.254 >> SpeedTouch >> Configuration >> Setup >> Bridge >> 0.35 >> new user/pass >> yes DHCP >> Finished.

Once in bridged mode you won't be able to connect directly to the internet via the modem. You'll have to setup PPPoE on your router and talk only to your router.

Why bridge mode? Well I made a bunch of changes before getting usable internet and this was one of them. The idea is that if both your modem and your router are in "Routed PPPoE" mode then they conflict. Also the idea is that the routing capability on the modem is a flaky add-on.

You access the SpeedTouch modem via: 192.168.1.254

The original setup was:

Routed PPPoE on 0/35 and 0/33 (modified by user)
Factory Defaults
Configuration modified by CWMP
(UTC+01:00) Amsterdam, Bern, Rome, Stockholm
Web Browsing Interception: Automatic
Speed
I've never much cared about speed before. But the Primus DSL would sometimes drop to such an abysmal crawl that I was obliged to get some measurements. You can go to speedtest.net or speedtest.primus.ca to measure the speed of your internet connection.
Kbps = Kilo bits per second
Mbps = Mega bits per second
1 Mbps = 1000 Kbps
KBps = Kilo Bytes per second
X Kbps = X/8 KBps
Wired to the SpeedTouch Primus modem in default (Routed PPPoE) mode:
speedtest.net (preferred server: toronto) 1808-2111 Kbps download, 111-127 Kbps upload

Wireless Router PPPoE to SpeedTouch modem in bridge mode:
speedtest.net (preferred server: toronto) 1639-1956 Kbps download, 96-152 Kbps upload

One site I found said that average high-speed internet is 1.9 Mbps = 1900 Kbps = 237.5 KBps = 1 GB in 73 min. Which is probably okay.

But from my box at work, the internet is 40x faster:
speedtest.net 42,368 Kbps download, 5,932 Kbsp upload, ping 17 ms.
speedtest.primus.ca 38,392 Kbps download, 12,914 Kbps upload, latency 6 ms.

Primus says you will get up to 7 Mbps = 7,000 Kbps, and I'm getting 1,800 Kbps, so that's 25% of what I might expect. Not terrible. But before all my fixes, I was getting 300 Kbps. That's unbelievably bad.

Wireless Channels
Initially, I had horrible download speeds, so I tried all channels 1-11 on my wireless router. It's true that some of them (2 and 3 in my case) really sucked. But the others were all about the same and didn't give me much improvement over my initial config (ch6). In the end I settled on ch7.

An easy way to test for bad channels is a ping test:
cmd> ping -t 192.168.1.1
This sends pings directly to my router. My good channels had 0% packet loss and almost all times shorter than 3ms.

Software
I did three things to my laptop before I got usable internet. I'm not sure if all were required, because I didn't do reboot tests in between each.

1. install the latest drivers for the wireless card
2. install the latest management software for the wireless card
3. tell the wireless card to always use full power
4. use WPA instead of WEP at the router (this seems like an all-around good idea)
5. shut off the macbookair

MacBookAir
It's possible that our MacBookAir was causing part of the problem. It seemed that when the MacBookAir was powered off, then my ASUS L5GA laptop with Intel Pro Wireless 2200BG card would get ~30,000kbps. But when the MacBookAir was powered on, I would get 600kbps. Although those results weren't very consistent. Perhaps it had nothing to do with it. Perhaps there was some other intermittent interference from other apartments in my building.

Here's some ideas I've gathered:
http://forums.macnn.com/92/networking/305303/mysterious-crashing-with-linksys-wrt54g/
http://forums.whirlpool.net.au/forum-replies-archive.cfm/990169.html
http://discussions.apple.com/thread.jspa?threadID=1080253&tstart=645
http://discussions.apple.com/thread.jspa?threadID=489910&tstart=15

Current Status
I now run the ASUS always wired with a static IP. The MacBookAir runs wireless with a dynamic IP. When we have intenet, it is decent ~2,500kbps. But the router will intermittently become disconnected from PPPoE, which is solved by rebooting the SpeedTouch modem (toggling its power switch) and asking the router to reconnect (via the router's status page at 192.168.1.1). This might not happen for several days, or it might happen several times in a given day. It may be correlated with bad weather. It doesn't seem to be correlated with rate of internet usage. It's a real pain, but it's work-around-able, and I'm not willing to waste more time debugging it.

I think I'll probably just go back to Rogers.


Nine Fifty

Here's something drawn on paper.
Add one mark to make it mean nine fifty.



Here's an example of one mark.


Here's an example of two marks.


Solution in ASCII-HEX. (here's a converter)

44726177206120686F72697A6F6E74616C206C696E652061626F766520746865207365636F6E
6420766572746963616C206C696E652E1F5468697320676976657320796F753A202231302054
6F20313022207768696368206973207468652073616D65206173207468652074696D6520393A
35302E

 |  Tribal Worker  |  Terms  |  Aggressive Software  |  Feedback  |