Mmmph. <slurp>. Mmm. Triple latte good. Mmmm. <slurp>.
It's storming outside. Sounds very nice; I have the windows cracked open so I will no doubt sleep quite soundly.
I've been retooling HTML::TableExtract in a major way. I've fixed header extractions to account for the nastiness you get from colspan and rowspan effects, so that the columns you extract are the columns you would expect when looking at the table visually. (such is the fair of those who deal with sparse trees representing grids). In more exciting realms, I've been implementing search chains which allow you to yank tables relative to other tables using lists of checkpoints, in terms headers, depths, counts, or some arbitrary chain thereof. Time permitting, the new release should be set loose within a couple of days after I've tested it to my satisfaction.
Viva data mining, HTML context free. Other than being in a table somewhere on a page, of course.
Ugh. Can't sleep. I think I need some meditation techniques to turn off code mode at will. As it stands I just lie there with my eyes closed, brain on overdrive.
The crawfish boil went well. As promised, there were whole heads of garlic tossed into the pot; I felt sorry for anyone who walked up late and had to walk that gauntlet of breath.
Saw Frequency over the weekend. As long as you resolve not to dwell on time paradox, it's a highly enjoyable movie. (they subscribe to the "malleable present" type of theory, where you can alter your present by diddling with your past...and as the cause of the alteration, you retain "dual memories" of your past -- the original, and the new version, which at least avoids the doppleganger problem that movies like Back to the Future suffer from, where some poor bastard with the memories of the new past gets displaced into lah-lah land). Anyway. I could go on at great length about the three major Hollywould time paradox approaches. In the case of this movie, just assume that there will be paradox and enjoy the roller coaster.
I guess I'm just going to stay up all night. I'll perk back up when my normal waking hours roll around, then crash and burn sometime after lunch.
(if you are curious, the question has to do with scalar evaluation of a perl hash when it is tied...it always returns 0, so "if %hash" does not mean the same thing for a tied hash as opposed to a native hash, assuming it has entries. You can get around it by saying "if keys %hash", but I'm a fan of consistency)
Mudbugs tomorrow! I can't wait. I hear tell Botz is planning on adding mushrooms and whole heads of garlic into the batches, along with the regular new potatoes and corn. The gills on mushrooms really soak up those spices. Mmmm! I am glad I no longer wear contacts; it's tempting to wipe away the tears.
Read Souls In the Great Machine recently. Pretty fantastic science fiction romp, if you ask me.
Pushed out new versions of HTML-ElementExtended and HTML-CalendarMonth.
Taking drum lessons; I've been having a ball playing my dumbek.
Can't wait for Saturday...AIIIII YEEE! Crawfish boil! We're cooking up about 300 pounds of bugs.
Waiting on my notebook to arrive so I can spring Linux on it.
Princess Mononoke is not out on video yet. I don't know what to get my niece for her birthday.
Jumped into an interesting discussion regarding stock splits and proper portfolio accounting on the gnucash mailing list. Hopefully I am not being an irritant with naive accounting questions.
Has anyone tried to browse the project listing lately? Shouldn't this at least be alphanumerically sorted?
dria: Huzzah on the cat declaw decision! Some advice: if the cat does not go outdoors very often, then clip its claws with a nail clipper on a regular basis. If he happens to scratch, the claws do no damage. Make sure not to cut to the quick, though -- this should be clearly visible since cat claws are translucent. If you brace the underside of the toe with one finger and press gently on the top of the toe, the claw will extend. (actually the vet sells special nail clippers that behave more like a cigar cutter than nail clippers -- these cut better). Also, I don't know what you got on the scratching post. If it's carpet, and they don't like it, try hemp rope. And my cats, at least, really like the coiled cardboard that sits in the middle of the trackball toys.
As for coffee: perhaps you will find the secret to a perfect cup of joe as informative as I did. It's the nuts and bolts of coffee theory. And, of course, if injesting your coffee just ain't a quick enough buzz for your tastes, then there are alternative techniques.
Phil Katz: God speed, man; hope things go better the next time around.
Cat claws. dria, please do not declaw your cat. This means that you place furniture as a higher priority than the annoying little bastard. Please either a) give the cat to someone with different priorities, or b) don't buy furniture that concerns you so.
Besides, scratchability is really a function of surface texture, and the ability for them to sink their claws into the material. Step 1: Get a sacrificial anode, such as a scratching post or one of those ball-in-track deals with the coiled cardboard centerpiece. Step 2: Don't buy tasty claw furniture. For instance, I have a very nice Italian leather couch. The cats don't touch it, because the leather surface is not appealing to them for scratching.
As an optional Step 3: Have you ever noticed how quickly cats run from compressed air, such as from one of those bottles you dust your keyboard with? Whoo! Negative feedback generally doesn't work with cats (they just learn not to behave that way in your presence), but it sure can be fun to watch them scramble from time to time.
And please don't use neutering/spaying as a counter example of owning cats under our own terms. Scratching furniture does not produce more cats.
Damn I love perl.
Since HTML::Element was not playing friendly and sticking to the class methods, I was having to jump through all sorts of hoops in order to let my sub classed objects frolick freely with regular element trees. I was having to override all sorts of methods in order do achieve that goal, which decreased efficiency and ease of maintenance.
Finally, I just said to hell with it; when necessary, I tie a special array class to the content that "does the right thing" when that element is masked -- now it doesn't matter who pokes around in the object internals. Hah!
I'll probably go to some sort of programmer hell for it, but it trimmed about 100 lines of needless, unmaintainable code.
Done with the big ride...first day, ~100 miles, camped in La Grange (yes, the same as in the ZZ Top "Haw Haw Haw..." song). Sunday we wrapped it up in about 85 miles, but there were lots of hills so it was a tougher ride over all. We hit up the Gingerman in Austin for a few beers afterwards. On the trip back, I blinked, and was home (it's about a 3 hours in a car).
I was eating vitamin "I" (ibuprofen) like tic-tacs, trying to keep my knees under control. I think they'll be all right. In general, I turned out to be better conditioned for road biking than I gave myself credit for...the jarring of mountain bike riding seemed to have unexpected benefits concerning road endurance.
Took today off. I am about to quest for some protein, carbos, and caffeine.
I've been hanging low, lately, prepping for the big ride this weekend.
Worked on some of my HTML::Element based classes last night, trying to utilize the new methods provided by HTML::Element whenever possible. As it turns out, I really wasn't able to deprecate many of my prior enhancments because the author of HTML::Element has a tendency to rifle through the object data structures directly, for efficiency...so a method invoked in an object higher in the tree structure a) directly accesses the structures of objects further down the tree, and b) makes assumptions about that structure.
Bad Programmer. No biscuit.
In response to starshine, regarding names vs faces. I too, am better with faces, and was a regular LISA attendee from around '93 to '97. Perhaps the facesaver database could be of assistance. I know I'm in there, somewhere, but I'm having trouble getting to the site at the moment. (at least, it's a younger version of me...haven't updated it in a while).
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!