After plunger, draino, simple green, and another industrial strength degreaser, I finally dealt the killing blow to our backed up drain!

On the outside of the house, matching the part of the wall where the sink is, there was a plug. I unscrewed the cap, and inplugged it. A bunch of water (from the sink) came rushing out. About 1 inch inside the pipe i’d just opened up there was an intersecting pipe leading down. I got my cordless drill and my auger attachment. And after all 15′ (mine may have been 25′) of auger I finally unclogged my drain… pulled out some gunk that mush have gone down the disposal by accident, and theres some real nasty grease down there too… but it’s flowing again! YAY.

Sprint PPC6700 Smart Phone + Apple I Book + bluetooth + dialup = goodness

On a brighter note (see previous drain problems) I’ve sucessfully configured my ibook to access the internet through the unlimited internet access attached to my sprint account via bluetooth DUN. This is a bit of chewy goodness that I *hope* I never have to use, but is really good to have… just in case…

Deadly chemicals: 0 clogged drain: 1

So the serious burn/death chemical didnt to any better that the simple green which didnt do any better than the draino which didnt do any better than the plunger… so…

I took notes the last time the roto-reuter dude was out here last time, and I know where the valve on the outside of the house that i can open and snake from is… so… I’m going to try that… tomorrow…

Clogged Drain Part 2: Drain V.s. Simple Green Degreaser

No dice on plunging or Draino. The clog isnt in the U, so it’s down deep… Next step: Simple green degreaser. I’ll let you guys know how it goes. As a backup I have a bottle of degreaser with warnings on it like “Fatal if swallowed” and “will cause serious burns to skin”. I like environment friendly
solutions, but, I like an unclogged drain more.
More in a couple hours.



Well here I am in bed, and I have to say that scott was right. The reason you get a small notebook (in this case an ibook 12″) is so that you can, reflexively, pick it up and waltz around the house with it at will.
I’ve been doing this recently, and It’s great. It’s light, not clunky, and I dont use *any* accessories with it. I pick it up and go… and… I *DO*.

I’d used notebooks in the past, but always the 17″ “desktop replacement” notebooks. The funny thing about the deskttop replacement notebooks is that that’s EXACTLY what they became! I would sit the thing on the desk and hook up all kinds of attachments to it, and it would never… ever… move. Unless it *had* to move, and then I grumbled about it constantly because things werent as I remembered it, or expected it, or wanted it.

I have a lot of stuff to work out, such as the idea of storing my mail/firefox/IM preferences in a version control system for a simple commit/update/go of my “important” stuff. For this it would be nice to have a RCS which actively manages all files in a directory. I hear Git (?) does this, and I *know* subversion doesnt… perhaps I’ll explore this idea a little bit more.

I’ve also looked a bit at dogster, and It doesnt seem to have any of the “active” social stuff for dogs and their owners, more passive/presteige (SP) type stuff. I’ll keep looking, and perhaps make something myself if I dont find anything worthwhile.




Generic function/class names

This is especially true when you’re writing a library which is meant to be absorbed into a larger codebase, but also true of a codebase in which you know you will be using foreign libraries to accomplish tasks. And I’m as guilty as anybody when it comes to this!
When you are naming your functions and classes be mindfull of the possibility of collision. I think that we (as a group of programmers) are generally mindful of this when we lay out things like our database schema, but can overlook this when we’re writing our libraries.
For example a class/function name of something like “database” seems good ad first glance: It’s clear, to the point, and descriptive (okay… *somewhat* descriptive). However consider that anyone who’se writing anything even remotely related to a database (and these days what *isnt* tied to a database?) will think to themselves at one point “hmm if i name the class database, it’ll be short enough not to be annoying to type, long enough to describe what its used for, and no one’s going to think its used for processing text strings!”

So, now, its possible that every library has a right to use this class name for their code because of its qualifications. But then you will be limited to only using one persons external libs (assuming that your internal libs arent already using it)

What we *ought* to do is, for our project Foo, call the class “databaseFoo”, then we can simply use something like $database = new databaseFoo; and we loose basically nothing, and be assured of compatibility with other libs.