::::: : the wood : davidrobins.net

My name is David Robins: Christian, lead developer (resume), writer, photographer, runner, libertarian (voluntaryist), and student.

This is also my son David Geoffrey Robins' site.

Perl Office suite generates first document!

News ·Wednesday January 31, 2007 @ 20:09 EST (link)

Driving home today, around 1910 on Avondale Road: silver Mazda sedan, plate WA 092 VMW is weaving drunkenly back and forth onto the shoulder, and generally acting lethargic when it was time to go. Not quite sure what drug he was on.

The Office series of modules that I'm developing has generated its first valid Word document today; AB, a Word file format developer, helped me work through a minor hiccup (which also helped find a minor bug), and then everything worked as planned. The new .docx format (and .xlsx etc.) are actually zip files, although that's just the implementation of the package; you can easily look inside. LW, a recent ex-Word developer who moved into the web applications group, was also experimenting with generating new Word documents on the fly, but using C# he already had the System.IO.Packaging layer, whereas I had to write that from scratch. Well, not entirely; I drew on a host of existing CPAN modules: Archive::Zip for the physical package, XML::SAX and a host of filters (one of which, XML::Filter::NSNormalise (sic.) I sent in a patch for and the author got back to me the same day) for parsing and generating XML, DateTime (DateTime::Format::W3CDTF for xsi dates), Params::Validate, etc.

There are probably about 20 modules in the Office namespace (off the top of my head: Pkg, Pkg::Part, Pkg::Rels, Pkg::Rel, Pkg:ContentTypes, Pkg::CoreProps, Document, Document::AppProps, Word::Document (the abstract document), Word::Document::Document (represents the word/document.xml part), Word::Document::Para, Word::Document::Run, SAX::Writer, SAX::Parser (parser helpers, I've been using ExpatXS as my SAX parser of choice and Writer for output). And I've barely started—I can only write basic paragraphs with bold and italics. But this is a big step—adding other properties and part handlers will be incremental. Already it's a usable suite of modules, although I hope to get it to a somewhat more mature form before I make a release (I've registered the Office namespace in preparation). Sample working code, does what it says:
use Office::Word::Document;

my $docx = Office::Word::Document->new;

$docx->add_para('First paragraph.');

my $p = $docx->add_para('This second paragraph has some '); $p->add_run({ bold => 1 }, 'BOLD TEXT')->add_run(' in it.');

$docx->save('test.docx');
Doesn't do much yet, but watch this space, and watch for an alpha release coming soon. Note: This is not an officially supported Microsoft product; I'm doing it on my own using publicly available specifications. Right now I'm defaulting the Company property to Gippazoid Novelty; I'm debating leaving it in, and seeing how many documents show up with it set like that!

The pH (think acidity) markup language, an invention of mine which is basically just a more concise form of XML, which I use to write this log, among other things, has undergone the first change in a long time. Like perl, the definition of pH is in its single implementation, a perl XS C++ module called pH::Parser (no, it's not on CPAN, since it's not general enough, although that never stopped anyone else). pH is also my local wiki (here, it's a fairly old quick hack), which is about to get a big upgrade (for the Word development internal Wiki, but I'll port it back here).

To summarize, the pH markup language is XML without the close tags, or other unnecessary baggage, e.g. instead of <element attribute="value">some text</element>, it's <element attribute=value some text>. The equivalent of CDATA is << ... >>. Computer scientists have probably already noticed a few seeming flaw in it. What if your text begins with name=value? Well, you can escape the = as \= (and <, >, and & similarly), but that's annoying to check for in generated text (although it could be just auto-escaped along with the other markup characters). But the addition is to allow = as a lone pseudo-attribute which enforces the end of attributes for that element, e.g. <element a=b c=d = a=1 whenever b=2>. But, I also decided this was all somewhat silly (close tags are only a few bytes, and the expansion takes time, and there were other logistical problems getting pH expansion into the right place in the processing chain), and am primarily sticking with XHTML for the new wiki templates.

Back in reality-land, we're still waiting on the insurance (they're working on their estimate with the contractor, who thinks they're lowballing it a bit, and the contractor is getting more estimates to prove it). There may be some more (mainly cosmetic) damage downstairs&mdashlsome ripples in the ceiling and some nail pops. And I have a dental appointment (bi-annual clearning) tomorrow, fun.

Honey gave me a Leatherman tool and knife set for my birthday, and a nice card; we went out to eat on the day (yesterday), at a local Teriyaki-Sushi place (former for her, latter for me). One of the new GPM developers at Hilton wished me happy birthday—apparently I'd left my birthday in the code somewhere (in a test, I think, although I don't remember noting that it was my birthday; Honey's was there too). The spirit was nice, the English was a little broken. I don't remember Bob mentioning him, but apparently he's working out alright, which is nice after the hordes of idiots that have been paraded past them by the headhunters.

Next: designing the Office modules, and the new pH wiki (yes, I overloaded the name a little, it's short and succinct and fairly meaningless and I like it), and a little on the new Word COM dispatch. First, why I built my own: most of those out there are file-backed (ick, use a database, I'm using PostgreSQL but the layer is fairly flexible), or in PHP (a filthy language), or don't do revisions. It's definitely time for a good technical article.

15000% return on investment

News ·Tuesday January 23, 2007 @ 02:04 EST (link)

The snow finally left. Yay. Melted away to nothing. Our icy street, which some of the dimmer neighbors were sledding on, is clear again. And the tree at the back that got almost knocked over is still tied to the nearby rock and smaller tree and will probably recover. A smaller tree at the side also got knocked slantwise, but is being propped up by a log from the tree that fell (it's the least it could do). The rest of the tree has been removed from our yard; one of the trees near the fall point did have a main branch sheared right off, but another one right by the gap in the fence escaped almost unscathed. The rest of the tree remains for the neighbors to clean up; it's pretty huge in diameter, they're supposedly looking at some pretty whacked-out estimates and I don't think their insurance is covering it (since it didn't damage their house). To be honest, I don't really feel all that bad for them.

You're probably wondering about the title, or maybe you've figured it out by now: the ROI is for our homeowners insurance; we paid about $400, and the estimate for the tree removal, interior replacements, temporary repairs, and rebuilding work is about $60,000. The windstorm actually happened on our policy renewal date, so technically we'd been paying two years (and if you want to go that far, we'd also had a policy while living in our various apartments) so it probably comes to more like 5000%, which is still not too shabby.

However, to add insult to injury, our hot water went out last Thursday; we called Puget Sound Energy, they'll be sending someone out Tuesday (thanks). We showered in cold water (invigorating and then some), but I decided to hold off on shaving, although I suppose boiling water's not too much trouble. I took the cover off the heater Friday (when the stored water ran out; I'd noticed it being a little cool Thursday but not thought much of it); the pilot light was out; I re-lit it, but it didn't stay on; most sources seem to think the thermocouple's gone (or possibly dirty, but I tried to file it and no luck).

Snow stays in Duvall

News ·Sunday January 14, 2007 @ 15:10 EST (link)

I haven't seen snow stick around this long since Boston, or perhaps Canada; piles of the wretched stuff are all over the place. The roads, fortunately, are fairly navigable, with our street being the worst part of any trip.

I've been at work all week (remotely Wednesday, waiting for the no-show structural engineer), working on "OACR" bugs for Office 11; OACR is the Office Automated Code Review tool which finds things like potential buffer overflows or use of unsafe functions. Its error messages are cryptic and mercurial, but I'm plugging away through all 500 or so bugs that I've been assigned (others on the team will probably take some too). On Friday a few of us got together to talk about enhancing collaboration on Word documents—from making it easier to collaborate via email to Word as a wiki editor.

Speaking of wikis, I'm designing a new internal wiki for Word developers, based on my pH wiki: Apache 2, mod_perl (the wiki is structured as a response handler), Template Toolkit for formatting, and PostgreSQL for storage, and Subversion for (page) versioning (I'd use our Source Depot, but the layers of bureaucracy to get a wiki project added would be piled high and deep). Some criteria for it are on the NewWiki page on the old wiki. I may borrow some HTML templates from the MoinMoin wiki, since it looks pretty but unfortunately uses flat text storage (stupid, stupid, stupid!) so search is pathetic.

I was working on the new wiki remotely Saturday morning, installing some perl modules, when something caused a shutdown (not a reboot; it never came back). I drove into work at 0330 and restarted the machine, and then at around 0800 it happened again (I tried shutdown -a to abort it, but it was too fast), so I went to sleep and drove in when I woke up. I'd disabled the shutdown permissions for everyone except the local administrator account, but it didn't take effect until after a reboot. Also one of the perl modules was exec'ing ps in one of its tests, which lists processes under Unix but for us runs Product Studio, our bug database software. Finally, another module used variadic macros, which aren't supported on Visual C++ .NET (they are in 2005, but that machine needed to have .NET for compatibility), so I had to convert the macro into an inline function. Also, pH::Parser had to link msvcprt.lib rather than Unix's libstdc++.so to get non-inline C++ library code. But now things are looking good; database tables have been created; mod_auth_sspi is picking up the username; Template Toolkit is working, with a pH parser filter; soon people will be able to edit pages.

On Friday, I followed a white GMC Sierra truck most of the way home (Novelty Hill onward); A87522X; slowest driver I've ever seen, rode the brake all the way down Novelty Hill, never got above 5mph. It had snowed a few days before, but the road was pretty much clear. I started out in a long line of cars, but by the time this slowpoke got to the bottom of the hill, there wasn't a car to be seen in front of him.

Snow comes to Duvall

News ·Thursday January 11, 2007 @ 22:26 EST (link)

Off the wall: Catholic church is suing ICE for... doing their jobs (in this case, raiding a meat-packing plant looking for illegals). Unfortunately I can't find a link for it, so take with a grain of salt; however, if the Catholics are getting involved in politics, it's high time to take away their 501(c)(3) (charitable organization) status, especially since they're just doing it for the money and power (most Mexicans are Catholic, and are easily manipulated by Catholic priests since they've been brainwashed by that church all their lives). In searching, though, I did find this interesting blog and an article about the raids.

And then there was the illegal alien who claimed he only spoke Mayan so proceedings were halted to find him an interpreter. Time to make English the a national language, and you can get your own interpreter, and if you can't afford one, we can sentence as if it were in absentia.

January 3: Paid off the tree company (Alpine). I caught the Alpine "credit card guy" on the road, so he called back later to arrange payment.

January 4: Case Engineering called; Honey called back, arranged for him to be here on Wednesday at 1500. Called our mortgage company about the claim so they could fax me some forms that they'd need to release the bulk of the repair funds to us.

January 5: We heard we were going to get snow, so Jim Cameron came by again and strengthened the roof, putting up some beams and temporary trusses, and stacking some 1x4s on the roof to keep the tarps up. He also nailed the tarps down with 2x4s, since the last wind gusts had ripped the grommets out of the tied-down tarps. He also provided a heater for the room and removed most of the fans and dehumidifiers.

January 6: Watched the M*A*S*H original movie (MythTV, of course); not too bad, but Adam Alda is a much better Hawkeye than Donald Sutherland, especially with that annoying whistle. Honey worked today (got a job through a temp agency); might have gone longer (she was covering for someone that was trying to fly out for a funeral) but it was only to be the one day.

January 10: Cable (and hence Internet and phones) were out from 2130 until 0930 in the morning (I wrote a script with Net::Ping to beep when connectivity returned). The structural engineer from Case called about half an hour before he was due to arrive and canceled, rescheduling to next Tuesday. We wish we could've gone with Jim's engineer, but MetLife is forcing us to go with Case Engineering.

January 11: Saw some cracks in the kitchen/living room ceiling near the central supporting pillars; looks like just paint, tree damage further stressed by the weight of the snow. Doesn't look too serious. Thought I heard some snow and ice fall off the roof in the morning (loud rattle like someone dragging a ladder). A picture in a frame in the living room slipper down.

The adjuster stops by

News ·Tuesday January 2, 2007 @ 21:56 EST (link)

December 27: We called the City of Duvall planning department (425-788-3434) about a building permit, since we heard they're being fast-tracked, and they eventually got back to us but we need to know our contractor to apply. We've heard since that the contractor can handle permits and that's how it'll probably work out. We're living downstairs on our air mattress in the corner of the rec. room.

December 29: We heard from MetLife that they're changing our adjuster; they'd contracted out to an independent adjuster (James Davant), who had taken photographs and talked with us, but now they're taking it in-house and the case will be handled by a large-loss adjuster, James Feather. We left him a message and he eventually arranged to drop by on Wednesday January 2 and expected to be here for several hours.

New Year's: We spent a fairly quiet New Years, stayed up most of the night. We tried to go to Avondale Bible Church Sunday, but they'd changed their times and failed to advertise it on their site, so we were late.

Via The O'Reilly Factor: Wisconsin official gives illegal alien (alleged) child molester $5000 bail, surprisingly he skips town. He'd already been deported once; we need a fence with land mines, and for the Rio Grande, sharks with frickin' laser beams.

January 2: The adjuster stopped by just after 0930 as promised (I worked from home so I could talk with him); he was from Mississippi, just across from Memphis where we used to live, and seemed to be an upstanding guy (final report comes when all the claims are settled!) The contractor, Jim Cameron, stopped by while he was there and they talked about the work required. The adjuster reviewed our claims and took copies of receipts and an Excel spreadsheet I'd made at work, paid the contractor for temporary repair work done so far, gave us a bank card to pay for the tree removal, gave us a Home Depot card to compensate us for the work we'd done, and a check to cover our hotel stay. Which was all very relieving; the papers about potential construction liens that the contractor had been required to give us by state law were making us nervous.

The adjuster arranged for a structural engineer to come out from Case Engineering (he'll be here next Wednesday, January 10), which will let him and the contractor write up estimates; MetLife has a program they used for it, Xactimate, which calculates based on work required and local prices. We're pretty sure we'll go with Cameron Construction for the repairs; I emailed the MS home owners list and got a second good recommendation. So the engineer is the next thing we're waiting for.

The way we'll get paid is somewhat complex; first, the checks will have the mortgage holder's name on them too, so they'll get them and release them to us in various percentages, pending their inspections; MetLife pays full replacement cost, but will withhold depreciation until we demonstrate that we've made the repairs or obtained replacement items. We still have some claims to make—more items from the destroyed rooms, and we don't know how much the gas and electric overages will be due to the hole and running the fans and dehumidifiers. But we're feeling much better after the adjuster's visit; it's just going to take a long time to get everything back.

Intermezzo: betrayal and backstabbery

News ·Wednesday December 27, 2006 @ 10:11 EST (link)

While all this was going on with the house, there was some drama in the EFnet #c++ talk channel. Channels such as this have channel operators, or "ops", who maintain order in the channel; usually "op" status is given to experienced users with domain knowledge; evidently someone screwed up in this case. "ZorbaTHut" (an IRC nickname; on EFnet, nicknames are limited to 9 characters) and a few other disgruntled #c++ ops waited until they knew most of us would be away (for example, Lisa was out visiting her dying grandmother) and then took over the channel in mid-December, ejecting most of the other operators.

ZorbaTHut ("Zorba")'s betrayal was a spoiled child's tantrum; the act of an infant who wants to rule the sandbox, throwing feces at anyone who disagrees with him. I believe the main issue that caused him to attempt this takeover was the rejection of his badly-coded 'bot (automaton for information retrieval), which I ended up cleaning up (essentially a rewrite) and which had been installed in the channel. (As an aside: Zorba apparently used to work for Google, but one questions their interviewing standards if that code is typical; he'd have a much harder time getting a job as a Microsoft Office developer. He "quit" to start his own company, without funds or much of a plan.) I have logged a later (January 4) discussion about the takeover; here are some salient quotes:

<ZorbaTHut> symmetry, sorta, yeah. the current admins got tired of the previous admins. that's why we have notabot, not calcme :)
<ZorbaTHut> (and why it uses my codebase :P)
<czth_> if you'd've been brought up proper you'd've learned "thou shalt not steal"
<czth_> yeah, your stinking full-o-crap codebase


<_Stinger_> who was overthrown?
<czth> most of the existing ops, it seems
<ZorbaTHut> stinger, basically raph and mind, with a little collateral damage
<czth> the honorable thing to do would have been to step down as op, of course, rather than backstabbing the rest of us.


<xor_mind-> Where you abusing your power or something? Why have not been reopped czth?
<czth> xor_mind-: because i know some of the people zorba doesn't like
<czth> boy, that sounds really mature when it's put that way, doesn't it zorba me lad?


<czth> never have i abused ops
<ScratXP> do you need ops
<czth> do you need Internet connectivity?
<jey> czth: I agree that it sucks in your position


I think jey summed it up nicely, although he's part of the Vichy regimeproblem, rather than being part of the solution. Anyway: some Internet politics for y'all to enjoy.

A Risky Christmas in Pullman

News ·Tuesday December 26, 2006 @ 23:17 EST (link)


Pollocks
December 23-5: Since power was back and the house was somewhat secure, we took up Honey's uncle and aunt's kind invitation to spend Christmas with them in Pullman. Their kitchen and dining room was being remodelled (everything was out, from fixtures to cabinets, and they'd put in new wood flooring and wooden posts for the stairs to the basement, but no railings yet), so cooking was being done in the basement with a Crock-Pot™ and a microwave.

We played several games; to Honey's cousin Will's delight, Risk (uncle Dave and I beat Honey and Will, by managing to take over two continents (Indonesia and Asia), and then arranging our men so as to give one of us the troop bonus for each, and then noticing that we win by just taking out either one of the opposing team's armies, and focusing on Will). They introduced us to Guillotine, a fun card game where players are executioners and have to collect noble heads, and in turn we brought Stock Ticker, a Canadian game simulating a very simplified stock market. We didn't play Scotland Yard this time, but for Christmas they got the U.S. equivalent, New York Chase, upgraded to give detectives helicopters to aid in the search (kids these days have it so easy...).

They gave us a Canada provinces puzzle (logos and symbols in the shape of a Canadian flag); we were empty-handed, given the tree-in-roof crisis and all. We headed back Christmas day; we'd bought chains for Snoqualmie Pass on the I-90, but although the web site said they were required, the road signs did not, so we didn't use them.


Martins
December 26: We called my uncle Graham and aunt Wendy who had invited us up for a Christmas dinner on Boxing Day (December 26); we thought we wouldn't be able to make it, because we needed our contractor (Jim Cameron of Cameron Construction, who's been absolutely great so far in taking care of cleanup and temporary repairs) to come out and shore up the tarps against some leaks, but we were able to arrange to leave a key for him and head up to Abbotsford by 1100. We're grateful to our neighbors who called the contractor (we'd given him the number) when they thought the tarp was leaking; he put up a temporary tarp that night and then put up another tarp and set up some fans and dehumidifiers while we were gone. And he was as good as his word; things were drying nicely when we returned.

Honey hadn't been to the (many) Martins' place in Abbotsford before, so she got the tour (complete with THX sound in the games room); excellent dinner and conversation; Ashley and Sean (please excuse if you spell it another way) were there, and Jordan and Liz, and of course Graham, Wendy, Chris, and Vanessa, who is expecting an addition in May; we wish them best of luck. We left that night and got back by midnight.

Blind Assassin, Treasure Island, Pattern Recognition

News ·Friday December 22, 2006 @ 18:22 EST (link)

This I recall to my mind, therefore have I hope.
It is of the Lord's mercies that we are not consumed, because his compassions fail not. They are new every morning: great is thy faithfulness.
Lamentations 3:21-3

December 20: Went to work to check messages, then to the house, cleaned up more insulation and fished out more valuable prizes, which we moved to another bedroom. Thought we smelled gas outside by the gas line, near where the tree fell, so called Puget Sound Energy who promised to send a technician sometime that night; he didn't need us to be there, so we went back to the hotel. Power was restored to our place at about 1950; we'd been following the PSE status page (and the King County road alerts page), and called the neighbors a few times to check. We ate at Outback that evening; we'd only been eating about once a day. We stayed at the hotel overnight, since the house had no heat and we weren't sure if the power would remain on. But at least with power we could return the following day.

December 21: PSE had left us a note on the door that they had turned off the gas and would need to install a new regulator (no charge to us) but we needed to remove a tree that was leaning over the gas line. We called Alpine Tree Service, the same opportunists we'd been using (remember, we hadn't seen an invoice yet and they'd been very slippery about telling us their rates), and they came out and moved and cut up that section of the tree. Even though the tree was out of the house there's still piles of branches in the driveway, about 50' of (very thick) ivy-covered tree in the back yard, itself hidden by a veritable forest of still-connected branches. After Alpine came we called PSE from a neighbor's place and they installed a new regulator and relit our pilot lights and ensured all was well.

I booted up the computers—Internet wasn't up until later in the evening, which meant we had no phone until then either—and was skimming some CNN Money lists (via Fark, I think); I found an item about removing oneself from credit card junk mail lists and called 888-567-8688, 3 to be so removed (they need an SSN, but CNN's fairly reputable so I risked it). Writing on January 5, 2007, I don't think I've seen any credit card spam in the mail lately, so perhaps it's working. CNN Money also advises keeping six months income in savings (not just three as I'd heard previously) if we start relying on just one income.

December 22: Browsing Micronews today, the Microsoft internal weekly newsletter (which just renamed itself to something utterly forgettable and will be coming out daily, or not at all and it'll just update a site that nobody will ever read, or at least far less people than read the weekly digest): How Not to Come Home from the Christmas Party tells the woefully sad tale of a (presuming from the photo) faddish couple who—horrors—had no power in their house after they came back from a party, and then got locked out of Microsoft and had to sit in their car. Please. If you're going to cover the windstorm, don't pick a peripheral inconvenience.

Also in this issue, in the letters to the editor: "Can I Opt Out of Child Coverage?" [Regarding the Dec. 8 Micronews: Half-Million-Dollar Babies]: I'm glad the $500,000 babies are healthy and the parents were able to focus on taking care of them without stressing over the bills. But as a child-free employee, I will never incur the birth cost, parental leave or child-care expenses. I'd be thrilled to opt out of such coverage.

The response blathered a bit, failing to either get the point or to the point, and eventually vaguely said "this change is something our team is working on." I remember asking a similar question at athenaHealth in Boston, and the response being equally vague, because how can anyone (save baby-eating Satanists and terrorists) not worship the almighty baby?

Books: While without power, being mightily scarred by having to watch TV with commercials, I finished The Blind Assassin (Margaret Atwood) and the deservedly classic Treasure Island (Robert Louis Stevenson) and am now (January 2) starting on William Gibson's Pattern Recognition (yep, of Neuramancer fame).

No room at the Carlton Inn!

News ·Tuesday December 19, 2006 @ 22:22 EST (link)

I've just been shuffling some papers from our "disaster folder": scraps with notes about calls made and responses, all the way back from getting the tree out to getting a contractor; a copy of our insurance policy; a printout of a Word file I made up at work with similar notes last week; a contract from the contractor that's been doing the cleanup (and we think we'll use him for the rebuilding too, provided he and the adjuster can converge on an estimate); a MetLife claim folder; an envelope with copies of receipts thus far; a note from the gas company; a printout of an Excel spreadsheet with our interior claims; and a partridge, resting comfortably in a pear tree.

December 18: Still at the Carlton Inn; drove to Microsoft in the morning, to check my mail and phone messages, and make some calls, since we still don't have power in Duvall. Had a message from MetLife; our claim has been farmed out to a Texas company called Tailored Adjustment Services, and would be handled by a James Davant. We managed to get through to him around noon, gave him some phone numbers to reach us, and he said he'd try to get there this week. We also had a message from the tree-owning neighbors' insurance, who were trying to clear themselves (and they managed to; given the tree was dead and the windstorm was extraordinary).

We got stiffed at the hotel; when we came returned that evening, laden with bags and KFC. We'd extended our reservation that morning, but when we got in we found a sign on our door saying that they'd given away our room; when we checked with the front desk, we found that the guy who'd been on the front desk hadn't put our extension into the computer, and he'd done the same to several other people too. On talking to the other clerk we learned he was related to the owners, which was probably the only reason he still worked there.

We stalked out and ate our KFC in the car, but then came in to get our bill, and the manager offered to put us up in a room with no heater (it was having new a new climate control unit installed), and gave us the room for the night free. It wasn't too cold, really, and it beat sleeping in a car (or a house with a tree through it and no power).

December 19: We went over to Microsoft; we had several recommendations for contractors (from the MS home owners' list and from a lady Honey used to work with). Made some calls, including to the adjuster, who said he wouldn't be able to get out to us before Christmas, and to some of the contractors, mainly leaving messages.

At the house I put my 8x10 tarp over the hole in the wall (the roof was covered with our large tarp but the gap in the wall would still let driving rain through), and I gathered several more garbage bags of insulation from the bedroom (about eight now), sifting carefully to recover what we could. We thought we'd lost the phone handset that was on the dresser (but we found the base unit), but then thought to look in the near-empty garbage and found it safe. We left at about 1600 as it began to get dark, and went back to Microsoft to check message and print out the Word document I'd made with various contact numbers, phone cards, and a short log of people we'd contacted thus far. Back at the hotel we watched Charlie Brown, played some Sequence and Boggle, ate leftover KFC, and worried about our house.

A windfall for the tree companies

News ·Sunday December 17, 2006 @ 22:00 EST (link)

December 16: We called several tree services from the hotel, and eventually Alpine Tree Service agreed to come out; we met them at the house at 1030. They climbed onto the roof from the top deck and removed brush and cut off branches (which they threw into the driveway; good thing we got the cars out first) until they could get to the main trunk, which they sawed up until it could be removed with ropes. They covered the opening with a tarp that Honey picked up at the local hardware store, still leaving a side gap which I covered with a smaller tarp later. They left after the tree was out, without removing the brush (they're trying to maximize jobs while the getting's good), but it turns out that was a good thing as they were overcharging horribly and we later called them back and told them we'd have someone else take care of the brush removal.

We spent the night at the hotel again; the house still didn't have power, and heat leaching through the gaps rapidly, even with the door closed (and recall the bathroom door wouldn't close since the skylight was resting on it). Lisa was around so I drove the three of us to a nearby Fred Meyer, which was open despite being without main power, and we bought food and games. We played three games of Scrabble at the hotel (the second without using the bonus squares), and I won all of them.

December 17: We didn't do much today—I suppose you could say we rested. We'd been going over to Microsoft to make calls, and look on the net for power outage status etc. (at this point they were still predicting Friday or Saturday for power restoration in Duvall). We left a message for James "Andy" Andrews at MetLife, whom we'd been told was our adjuster (turns out he wasn't, they farmed it out to another company, but now he is again).

<Previous 10 entries>