Griffin

It all started a few days ago, we noticed our youngest male cat, Griffin, making five to ten minute return trips to the litter box to pee and not being able to. He didn’t seem to be in any pain, just a lot of squatting. A day went by and nothing much improved and then he started having accidents around the house, little tiny accidents. So off we went to KL Cat Hospital, our vet.

They admitted him and we discovered later on that he didn’t have a blockage, that the pH and various things you can tell from test strips were acceptable but he was pee-shy for a very long time. Once he did use the pan he accidentally got his hindquarters in it and further made a mess of himself, and ruined his progress. The vet gave him a little ether and then coaxed some samples out of him manually. The samples were spun and analyzed. There was nothing to indicate any kind of kidney stones or crystalizations, so we were looking at a bacteriological etiology. They gave him a shot of flouroquinone (sp?) antibiotic and the next day they had him (it was an overnight) they gave him 12.5mg of Zeniquin antibiotic.

I got him home, through a fusillade of yowling and general complaining, Griffin does not like car rides. I suspect that too much car ride would bring on motion sickness. Griffin smelled a lot like the vets office, as well as the gas they used to do that quick-knockout earlier so Owien gave him one sniff and then started to growl and hiss. This upset us until we did some research and confirmed what we kind of already knew, that Griffin smelled very different from what Owien remembers and that over time everything will be fine.

It’s both amazing and a little surprising to note just how easy it is for humans to note a smell change but that it doesn’t affect us nearly as much as it does with other animals. I chalk it up to sentience, our vastly bigger brains, and the fact that human olfaction is pitifully weak. Smell was never a big thing for primates because we suck at it. The two of them are getting used to each other again, it’s just going to take time.

This morning I got a bit of butter and embedded the pill in it, then popped it in Griffins mouth and held his mouth closed. Down it went. He wasn’t upset, just unwilling and a little surprised. I left him licking his chops and looking at me with guarded affection. “What else are you going to try to make me eat?” πŸ™‚ So his daily 12.5mg of Zeniquin is down-the-hatch and doing its job.

I am glad to note that he is going pee less often, he’s producing more, and he’s eating and drinking water normally. The only things we have to work on now are the other 13 doses of Zeniquin and repairing the relationship between Griffin and Owein. There is only one real cure for that problem and that is time. I figure I could hasten things along by daily grooming with the same brush. Mingling the two cats scents together so that Me + Strange Cat = Us.

Doubt Resolved

A dear friend of mine who is a master of SQL programming told me that the operators that I’m using are deaf to null values when evaluating a comparison. The way around this problem is to use the ISNULL() function around the columns that might be null. Now I am going to amend my nightly code and avoid this nasty little accident once and for all!

It’s good to have smart friends. πŸ™‚

Logical Doubt

From the last post, a new update. Comparing the two columns fail to show any selected information, however when I changed the query so that mainacctno is null and chart_acct is not null I found 1741 mismatches. So mainacctno is null and chart_acct is ‘00000GWTN’, and so on and so forth for 1741 items. I suspect the logical operators cannot distinguish between null and not-null values.

What a mess.

Not Equal

At work I have a pretty big database that might or might not have a problem and the issue is, I have doubt in SQL to find out if I truly have something to worry about or if it was just a fluke.

In my database there are two tables. The first table, which we’ll call “chart” has a relationship with another much bigger table called “main”. The two tables have an odd interrelationship, in so far that many values from chart are ‘cached’ in main, but since both tables are allowed to vary apart from each other they can drift apart. So, for example, if you add something novel to chart, it isn’t completely reflected in main everywhere you’d expect it, because many of the cached values don’t get automatically updated from chart to main. There is a user utility that can do this task and it’s called “data sync” but I have elected to not use it and instead I have created a rather long SQL query that finds where there are mismatches between main and chart and uses the values in chart to fill in the cached empties in main. For years this has been a daily scheduled job and I’ve been living with the faith that my SQL code is correct and is doing it’s job.

Yesterday a coworker of mine complained to me that their report no longer showed what it should. We verified that there were indeed 47 records in main that should have been selected but only 1 was. I started to query the database and compare the values in chart and their places along the 47 “should have been” selected records and discovered to my deep chagrin that the values were not properly cached as I had faith that they would be. Of course I felt panic starting to gnaw away on the edge of my mind as I instantly had doubt that my SQL code was working properly.

The SQL code that “failed” looks like this:

select m.mainacctno, c.chart_acct
from main m inner join chart c
on m.mainrest=c.chart_code
where m.mainacctno!=c.chart_acct

Here the two columns should be equal, mainacctno and chart_acct for each record that is joined by mainrest=chart_code. The mainrest column is good as is the chart_code column. What I want to see is where, for each comparison, that mainacctno doesn’t equal whatever value is in chart_acct. So, for these 47 records there should be a value of ‘00000PSGI’ that exists in chart and not in main. My query should show these, but yesterday it did not.

Yesterday I had my back up against the wall and couldn’t really spend much time analyzing the problem so I forced the matter with a direct update command which put the proper value in each of the 47 records, essentially shoving ‘00000PSGI’ into each main record.

What bothers me is that when I use the != operator I expect it to behave as I have learned it to behave, to evaluate as true when operand A doesn’t equal operand B. Both columns, mainacctno and chart_acct are both of type char(30). I’ve tried using the other style of not-equal operator that is <> but that doesn’t display either.

I have 1759 records in chart and 1,414,844 records in main. My doubt can only be assuaged by manual comparison and I’m not looking forward to that task. I’ve even tried the “not like” operator to no avail. I wouldn’t be in this situation if I didn’t run afoul of those 47 records where a blank mainacctno apparently equaled a not-blank chart_acct.

What bothers me the most, I think, is that I now doubt the logical operators in SQL. With something so fundamental, everything built on that foundation is now subject to doubt. Does my database really have referential integrity? If logical comparison operators no longer behave in a logical fashion, is the stone that I think my database castle is made ofΒ sand?

Herculean

As I stood in the bathroom, toweling off from my shower I saw a comic that Scott left for me. Herc #1. I read the byline “Savage First Issue” and instantly I thought of a scene that could have been in the Kentucky Fried Movie:

“Their Savage lovemaking was of Barbaric proportions!”

And then I stood there brushing my teeth and giggling with the idea of Herc and some unknown assailant on the cover dropping their weapons and falling into a passionate embrace. I kept on hearing “Savage Lovemaking” and “Barbaric Proportions” in my head. My giggles turned to little “bar bar” noises and I had to sit down on the edge of the tub so as to not fall over.

I entertain myself. I am odd. Where does this crap come from? Best ask the Dalai Dolly dolly! πŸ™‚

Gasoline and Comics

Gasoline here in Michigan is about ready to break through the $4.00 per gallon level. To fill my Hyundai Santa Fe would start to impact my budget and begin forcing me to decide whether I want to buy food or not. I am not like any of the other people who live here who are natives, Michiganders would pay for the “pleasure” of driving their vehicles even if gas was at $10 a gallon. My New York sensibilities have already kicked in. Nobody in this state has “carpool” in their vocabulary so I’ve elected to not even bring up the concept to them and instead just take the bus.

And so I have, and this week is the model for how the rest of my weeks will be structured. On Mondays, Tuesdays, Thursdays and Fridays I get up at 6:15, out the door by 6:45, to catch the East Main Bus, all in all I would estimate that it’s one mile per trip, so effectively two miles walked per day. I get to work at 7:20, and then I’m pretty much stuck at work the whole day long. I have to leave by 4:45 to catch the return bus, and if I miss that, I have to wait until 5:45.

Wednesdays are my favorite days now. It’s on Wednesday that I take my car to work. Wednesday is Comics Lunch Day. I pick up Scott, we go to the comic book store and get our weekly comic books and then we find someplace cheap to have lunch. I then get back to work, and can take a more comfortable and leisurely path home whenever I like.

But for the most part I don’t regard driving a vehicle as a pleasure. It’s a horror, a terror, a harrowing trip through a nightmare hellscape populated by people who shouldn’t be allowed to use a vehicle at all. All manner of human trash is on the roads these days, morons, pinheads, dopes, dorks, losers, meth-heads, pot-heads, and the rest… “If god wanted for them to drive, he would have given them XXXXX” What is the XXXXX? It all depends on which racial, gender, or national gripe you’re fond of. And they are out there. In this state it’s a uniquely unpleasant experience, driving with these “people”. Nobody in Michigan has a single clue what a directional signal is for, they simply could not be bothered and the police can’t be bothered with enforcing any laws beyond running their speed-traps. The best way to jail a Michigander is to put them in their vehicle and arrange for 4 cars to approach a 4-stop intersection all at the same time. They would starve to death before any of them moved. I’ve never witnessed such overwhelming mind-lock in my life. They’d likely start gnawing on their tastefully appointed leather seats, whine, wet on the carpet and dry wash their hands in frustration. Eventually you’d see 4 bone-white skeletons sitting behind the wheel, the cars rusted solid and the gas tanks empty. As a native New Yorker it’s my right and pleasure to plow through all these mind-locked yoyos, even if it isn’t my turn. They won’t move, so screw ’em, I will.

And that’s why I don’t drive. It just makes me angry. It makes me angry and well, terrified for my life. So if something is dangerous, terrifying, *and* expensive then giving it up is comically obvious.

I have to admit that taking the bus is like it is in any nowhere midwest town. There are train tracks that divide this place and it colors the entire experience. You have sides of the track, and you can plug any harsh stereotypical reality into that division. Good, Bad; Rich, Poor; White, Black; Safe, Dangerous. Every city has something like this, a good place and a bad place, but it’s where the railroad exists that you see “The Wrong Side Of The Tracks” is so starkly apparent. Whats the most comedic of all is how lame and insignificant the railroad has been allowed to droop. It used to be the preferred way to get from one city to another, but now you have to pay top-dollar to sit in a seat soaked with urine and arrive, if your lucky, on the same calendar day you left even if you only need to go 150 miles away. But that’s another rant, the train tracks color the people and the people color the bus system. Who takes the bus? The poor, the workers, the minimum wage victims, and thanks to WMU’s deal with the bus system, students and employees, Hiya! You wouldn’t see any of the high and mighty, the good and great of this town even get on a bus. I don’t even think they perceive buses. It’s pretty clear that they don’t perceive people like me, the middle-class, the “little people”. That’s actually quite a pleasant thing and lucky for us “little people” because we don’t have to be bothered by their obnoxious overhousing problems, their sexual perversions and their raging alcoholism. They get in their obnoxiously priced gas-guzzling vehicles and disappear into their gated-communities-without-gates (sometimes they have gates!) and leave the rest of us in peace to imagine a world where they don’t exist. Because they wouldn’t be caught dead with the rabble, it’s as easy as falling off a log.

So really my most convenient and pleasant day is fundamentally bound up with comic books. In a way Diamond Publishing determines my weekly calendar, even if it is only very subtly.

I don’t expect to run into anyone I recognize using the bus system here. They are all monomaniacally obsessed with their vehicles and I seriously doubt anything will ever dissuade that. Perhaps someday when all the oil is up out of the ground and we’ve burned it all, and there isn’t any way to make these boxes of metal move, then people will be up against the wall. That will be a very interesting day, indeed.

Tech'now'ledgy Expo

I attended for a little while the Tech’now’logy Expo that TotalTech puts on every year. In attendance was my friend Matt Merrill with CDW-G and Chris Doemel with Apple.

They are pretty much two out of maybe a handful of vendors that I do not want to pitch into a swirling abyssal vortex. The expo itself was a little lean on actual vendors, but HP and Dell were there, and my CDW-G vendor was flogging Lenovo pretty hard. I hadn’t the heart to really bust down Lenovo despite it being a cross between an IBM Stink-Pad and Cheap Chinese Plastic Crap. I can’t really get down on Lenovo too harshly, at least there wasn’t a Lexmark pusher there! Lexmark gets pitched into that aforementioned vortex.

Apple was pleasant as usual. I really love the company, and AppleCare itself can’t be beat, but my previous run-ins with Apple Sales has left me feeling a little quixotic. They aren’t as hold-your-hand as the rest of Apple is, but they are attentive and the reflected glory from the mothership in Cupertino does them a lot of good, but while I’m seeking out the ARD Development Team for body-breaking hugs, the sales team has always left me feeling rather tepid. They respond very positively when you tell them you’re sending clients their way, but everything else isn’t really that exciting for them, which I totally understand, but it is a little surprising that sales isn’t as rabid as the rest of them are.

Something that is coming up is iOS management. I’ve got a new systems contact at Apple, a fellow by the name of David Seebaldt. Should be interesting to see what he is going to recommend for us. Currently we’ve got 6 iPads in play and 3 iPhones. I fully expect that level to rise with time. I think one of my first queries will be why iPhone, and no other iOS device displays a single-Library preference. iPod Touches, iPod Nanos, and even iPads can touch as many iTunes Libraries as they like, but iPhones? One central library, the first one they see, and that’s it. It’s as if the iPhone imprints on the first Library it sees and that’s it for life. Odd.

I certainly hope that they get more foot traffic, because the lunch-time period wasn’t so rah-rah-rah.

Bimbos Pizza

Sitting back after devouring a large pizza at Bimbos in downtown Kalamazoo and I’m quite impressed for such a small and unassuming pizza joint. The venue is small, with a very charming interior and a very warm and friendly staff, both of them. πŸ™‚ The pizza crust is very thin, almost a cracker consistency. The only ding is that the pizza we ordered came cut in squares. I think a smaller pizza would be cut in slices. It’s the slices that help a crust like this kind absolutely shine. The pizza oven is tuned perfectly, the bottom wasn’t burnt and it wasn’t rubbery, it was a uniform tan and still retained a little structure and didn’t utterly shatter on cutting. I think we’ll be coming back, and probably selecting smaller pizzas hoping that they are cut into pie slices and that the little square cuts are only reserved for the large size pizzas. It is very close to NYC pizza, but the crust is too rigid to match. It is still quite good and a great value for the money. Overall an 8.8/10.

Playing through on the back nine…

I wandered into the mailroom with a piece of paper in hand, with the design to scan it to my file server. I walked in and a student was busy tending to the very same copier pumping out duplicates of something. As I approached I noticed that the front half of the machine, where the ADF is, wasn’t actually doing anything. An errant thought struck me, that perhaps the copier, while busy making duplicates, might also be capable of making scans at the same time.

Certainly impossible.

Until I walked up, the student was looking worried, I pressed the scan button, put my page in the ADF, tapped my name as a destination and pressed the Big Friendly Green Button. The copier, a Savin 8065, didn’t even blink at my request. The copies never stopped or slowed down, the ADF fed my page in, scanned it and processed it, the whole while the copier was spitting out some other job.

I never thought the machine was capable like that! I’m still a little surprised and I’m impressed! I was sure it was going to blow apart and cover everyone with thick wads of melted plastic and toner.

Well, perhaps not that last part. πŸ™‚

Back Away Slowly…

People never stay the same.

I allowed myself to get a little lost in Facebook just a few moments ago and ended up looking through the “People You Might Know” list. I found a few people who I work with that I requested to add as friends on Facebook, nothing really remarkable, and then I started to just let the names and faces slide on by. I wasn’t trying to find anyone in particular.

Then I ran into a gaggle of names I dimly remember from my quite unpleasant teen years in high school. Most of those memories have been collected up and burned to ash, and in a way, I vowed that for most of it I would never again contact anyone from that period of my life. Apparently fate has other designs, but at least it has a very weak hand.

People get older, they change, they drift from the fixed memory you have of them. Whether they were monsters, assholes, annoying prats, or just names you dimly remember, there they are, like a rogues gallery in Facebook. All lined up, one after another. Youth seen through the lens of a very foggy memory and then all realized in their current form is unspeakably shocking and breathtaking. It’s a lot like watching a car crash in super slow motion. You know it’s going to be horrible and gory but you just can’t tear your attention away from the horror. Every single one of them followed a path that if I knew then as I know now, I would have spent way more of my teenage years laughing at these horrible human beings as I endured their constant abuse. Imagine a box, it’s filled with memories and it’s got tape covering the seams. The tape is printed with “Assholes and Monsters — Burn Immediately” so for a lot of these people, I just end up scrolling on by. Every once in a long while one of them will notice me and send me a friend request on Facebook. I stand a-stunned and almost always I click ignore. I have accepted a few, mostly people I dimly remember and names that seem familiar somehow, but I suspect that their photographs-in-memory are in that box. I just lack the motivation and interest to engage with them, so they continue to float on the periphery. Let sleeping dogs lie I suppose.

What does strike me, and what I wish my 35 year old self could send to my 17 year old self are these pictures, of these horrible nasty monstrous human beings. They all went bald, they all went fat, they all wear time like some sort of abrasion. Everyone goes this way, and the photographs in your memory, they remain. I’m not going to mention names lest it attract their attention, which I absolutely do not want, but it is worth remarking upon.

Another thing worth marveling at is how provincial they remain. They never got anywhere, never progressed. They’ve just waddled in tight little sad circles. They got as far as Cortland, Buffalo, and for some really unfortunates, Binghamton. They never explored, never set out and dispersed. I think above all else I am grateful that I escaped New York State. If I was still stuck in that place the regret would be unbearable.

It’s probably best for me, in a therapeutic sense to not return to the “People You Might Know” page on Facebook for quite some time. If that box full of Assholes and Monsters should pop open and I regain the memories that I buried oh so long ago, I would definitely be worse for the experience. The past really should remain in its shallow grave where it’s been whacked with a shovel and buried. I’m far happier not remembering.