Friday, November 9, 2018

Going Nowhere

It's funny, I've spent a decent chunk of my working-life traveling:
  • 22 straight months for SGI
  • 6 straight months for NetApp
  • sporadically for Digex/WorldComm/MCI
  • 5 straight years for Wells Landers (on behalf of Veritas, Sun and VMware)
Given that the above accounts for all but the most-recent nine years of my career, that I have managed to completely duck traveling for both my current company or my prior company is kind of an aberration. That said, that desire to avoid traveling isn't without reason...

Having had to deal with the expensing systems for small items like tolls and similar costs for attending local event, certification exam costs and the like, I've felt compelled to avoid incurring any work-related expenses that I couldn't afford to not get reimbursed for. Worse, because said expenses are employee-fronted and their systems are/were such fucking disasters, there is/was the likelihood of incurring interest charges while waiting for the expense-processes to get worked out. I can cover a few $100s to pay off a credit card and avoid interest when the expensing-process is horribly broken and slow. Paying off airfare, hotel and meals for a week-long conference or training course (and the fees for attending the conference or course)? Not so much ...and I for damned sure ain't paying interest on that waiting for an expense check to get cut (or try to recover interest accrued due to said waiting).

So, over the last nine years, my travel has been limited to pleasure trips. Which is to say, travel that doesn't force me to have to deal with an expensing-nightmare. The only travel nightmares have been the horror-show that is the fucking TSA. With "TSA" accounting for why most of our vacations are "mini" vacations that are done either by car or train. Because of the TSA, a pleasure trip has to be really worth the hassle.

Thursday, November 8, 2018

Thanks For Nothing, Fuckers

Was kind of annoyed when I went to use my Hue app. Opened the app to control my lights, and the app announced to me, "you need to use the Bridge v1 application, now".

So, yeah, confirmation of why I'll never spend a huge amount on any given IoT device: deprecation. LED lightbulbs typically advertise lifetimes in excess of two decades. So, notionally, once you've paid the premium for Hue bulbs, you're done paying for bulbs for twenty or so years. EXCEPT! ...if you wish to continue being able to actually control those long-lived devices, Philips apparently wants you spend $100+, every few years, to buy a new damned bridge?

Fuck.

That.

Noise.

And, the thing is, you know that Philips won't be alone in that nonsense. So, sorry Samsung (et. al.): while I could maybe see my way to laying out $10K for a "smart" refrigerator that will last me a couple decades, I'm certainly not dropping that much, every few years, just so I can keep using all of those "smart" features.

Somehow, it feels like "IoT" is destined to become a further driver of burgeoning landfills.

Thursday, September 27, 2018

We're Going to Vegas, Baby!

Why it's sometimes worth making a polite call to an airline:

This past year, we went to the Las Vegas edition of the Electric Daisy Carnival. We had a fucking blast and wanted to do it again this coming year. However, for any such event, there's the problem of airfare expenses from the East Coast. This past year, we'd flown free by using a goodly chunk of the frequent flyer miles I'd banked from my days as a traveling professional services consultant. That chunk, however, left me a fair amount short for being able to do the same for 2019's EDC.

So, I signed up for an American Airlines rewards card so that I could pocket 60,000 frequent flyer miles. The cost of getting that bonus was spending across three months less than what I normally push through one of my cards in a few weeks' time. At any rate, those points finally posted a few weeks ago. So, I went to book the free trip for my wife and myself using those points. Unfortunately, by the time the points had posted to my account, the itinerary's cost in points had gone up (naturally) such that I was short, again.

One of my other credit cards is a hotel card. The chain has a transfer agreement with American that let me convert points. When I'd looked to see how many points I'd need to convert, I found a page that said "transfer before December 21st and get a 30% bonus." Score. That would let me book the trip with points to spare. So, I went to my hotel's site to initiate the conversion. The points showed up today. However, there was no 30% bonus present and I was still 500 points shy of the free itinerary. So, I called American.

The CSR was very helpful. She pulled up the page showing the bonus-offer and contacted her help desk. Since I was very close to my points needed and the help desk was potentially going to take a while, she comped me the necessary points to get me to my free trip. In the mean time, her help desk informed her that the bonus-offer web page we were both viewing was a 2017 offer that their web maintainers hadn't taken offline. However, since I'd acted in good faith (and have done a few hundred thousand miles of travel on the airlines that became the current incarnation of American), they comped me the bonus. Presumably, they'll be trying to figure out how to offline that stale page (since the page's terms only mentioned a month/day and not a year).

Now, to sort out hotel...

Thursday, September 13, 2018

Rich Man; Poor Man

Direct-deposit on the pay-period where I make mortgage payments is particularly brutal from the "I'm rich! I'm poor!" standpoint.

With DD, your money-sender "notifies" the receiving bank anywhere from a few hours to an entire business-day before the money is actually going to post to the account. My bank notifies me of my DD as soon as they receive the intent-notice from my employer's payroll processor. That means that I "see" the incoming money even before it's technically available.

That said, my bank treats that money as though it actually has been deposited. That means that I can start writing debits against that credit even before it's technically been credited ...which I generally do.

When it's mortgage-paying time, I log into my loan-servicer's portal and arrange for the payment. Even if I tell them "pay the bill, today," the debit generally doesn't show up in my paying account (the one I receive the pending-DD notification from) till the next day. Still, sometimes the mortgage debit hits before the actual DD credit posts. Thus, some months, there's truly times where there's zero time between the rich/poor events (vice the more-normal "at least I was rich for a few hours!" scenario).

Saturday, September 1, 2018

"Travel" and Perception

It is kind of interesting how two people can see the same artist put on a set at a club or festival and come away with completely different impressions of the show. It's almost like, "were we both at the same show??"

It seems to be kind of like life in a microcosm, though. If you don't "travel" (in the case of a show or festival, either move around the room or, when at the edge of the room while going to from the bar or restroom, observing the entire room rather than just the one pocket you and your group are in, that night), you don't really take in that there's a difference between the broader-scope and your particular part of it.

Last night's Alison Wonderland show was a good case in point. I'd say that her set left me cold, but anger-inducing disappointment doesn't feel "cold" to me. SongKick sent me a "how was last night's show" link to leave a review. I left my honest opinion of the show. Afterwards, I looked at others' review of the show. To say that differences of opinion were "stark" is an understatement.

By the reviews, there were clearly a lot of people that enjoyed themselves. And, on my trips to the bar and bathroom, it was clear to my eyes that there were, indeed, pockets of people that clearly liked the show.

...Just as there were clearly pockets of people that were pretty much completely disengaged. To the people that were in those "happy with it" pockets that never really left those pockets (when you're rolling, I guess you don't really need to worry about hitting the bar) or never bothered to look beyond their pocket, it would be easy to think that, like at better shows, "the entire room" was into it. Basically, lack of perspective from lack of "travel" or desire to observe other than what's immediately in around them (or the act on stage). ...Or, other impairment effectively creates tunnel-vision (see prior aside about "rolling").

Life — on any given scale — is probably a lot easier that way. It means that only your little cocoon really matters.

/shrug

Thursday, August 30, 2018

GREAT Customer Service

Work/tech-related, so, almost worth putting in my tech-oriented blog. However, while I'm frequently cranky in that blog, I do try to reserve it for posts about how I solved a given problem.

Any way...

So, a couple weeks ago, I open a ticket for some software that purports to be "Red Hat 7 compatible" pointing out "you guys don't ship systemd unit files with your stuff; the manner in which your legacy-init files are installed makes them incompatible for use with a partitioned disk or a system with data-specific drives; and your legacy-init files invocation is so convoluted and dicked up that trying to create proper unit files is basically a non-starter". The CSR that responded to the ticket replies back, "you should open a feature request asking for unit files: use this URL".

Of course, I'm pissed that, what should just be a fucking given — shipping of unit files for an application that claims to be "Red Hat 7 compatible" — is apparently something that I need to request as a feature/extension. Take that already pissed-off state and then refer me to a URL that doesn't fucking work and you take that rage-state and dial it up.

I reply back to the ticket, "I can't get to that URL". The CSR eventually replies back, saying, "I'll have to look into the problem" ...then fucking ghosts, but not before marking the case as solved/pending-close.

Having marked it pending-close, their system kicks out a satisfaction survey. Of course, I give the CSR all zeros and fill out the "why'd you give these scores" box with polite-bile and asking, "do you really think you ought to be closing this ticket given the open-ended manner in which your CSR left it". Somehow, none of this results in an escalation or even a different CSR picking up the ticket.

Today, I get an auto-generate email saying "you haven't replied to the case in 10 days, so we're closing it."

So, if any of y'all are curious who this oh so helpful software's vendor is (hopefully you so you can steer-the-fuck-clear), it's Collibra. When you see their name on a product, run. Screaming. Far, far away.


Thursday, June 28, 2018

Joys of New DSLs

Note: this document is very much a "for my own knowledge"/rant post. Don't try to use it as a reference unless you're really freaking desperate. Terms are likely wrong or inaccurate. However, I needed to capture the gist for posterity. I lost two days of my life teasing this shit out of Google (and across a few dozen only very obliquely-related search-hits) — particularly the last paragraph's contents — and don't wish to do so ever again .


One of the projects I'm working on, they requested that I take all of the previously-delivered CloudFormation templates and wrap them in Jenkins pipeline jobs. They wanted to be able to reliably an easily re-deploy things, have the deployment-options saved as code, and they wanted to be able to easily check whether a given deployment had errors or not. All are good, valid goals.

That said, the manner in which I'd constructed the CFn templates, I included a lot of built-in break-points and error-reporting. As far as easily redeploying, when you use the AWS CLI, one need only pass the --parameters flag to be able to feed a file of parameter values and settings to the command. Place those parm-files under revision control and all of their stated goals are satisfied. But, "whatever".

Main problem for me is/was, "I'm not a Jenkins guy." While it was easy enough how to deploy Jenkins via CloudFormation, doing so via Jenkins meant (at least partially) learning the Jenkins equivalent methods to using a parameters-file. When first assigned the task, I'd indicated, "I don't know Jenkins: got any examples you can point me to?" All of the examples they had were GUI-authored "Freestyle" Jenkins jobs. Not a GUI-jock, but figured, "if this is what they want, I can probably ape their current job definitions to create ones for these templates."

In a matter of a few days, I'd banged out the requisite Freestyle jobs. Pointed my customer's technical PoC at them to review. He gives me an incredulous, "what are these??" I stated that they were the Jenkins jobs. He stated that he'd wanted them as pipeline jobs. To which I asked, "then why did you point me at Freestyle jobs as examples to follow?" We discussed things a bit further so I was better assured that what I was understanding as the desired outcome was the actual desired outcome.

So, I set to the task of learning how to author jobs using the pipeline DSL. It's been... "unfun". Jenkins is composed of a lot of "contributed" parts. While the core of Jenkins has something in the neighborhood of "ok" documentation, many of the contributed parts' documentation varies from "slightly better than ok" (rare), down through "awful" (common) and, in some cases utterly lacking to the point that you have to read the components' code to see how to make it go (annoyingly far from uncommon). Worse, because so much is "contributed" and the contribution-sources so varied, what works in one context may or may not work (or at least not work the same way) in other contributed contexts.

Further exacerbating things is that there are also multiple methods for denoting action-blocks. And, depending on which method you usde for denoting an action-block, variable interpretation and interpolation is processed differently. This totally glosses over the fact that one can reference a variable in multiple ways: naked "VARNAME"; shell-ish "$VARNAME" or "${VARNAME}"; and, when embedded in a shell-block, "\$VARNAME" or "\${VARNAME}". For those still following along but not aware of the plain "$" and "\$" methods, the former is for Jenkins environmental variables and the latter is for standard shell variables.

Further, if one wants to fetch the value of a parameter, one can use "${PARAMNAME}",  "params.PARAMNAME" or even  "env.PARAMNAME" (or, within the context of a script-block, the latter two become  "${env.PARAMNAME}" or  "${params.PARAMNAME}"). Use of straight-up  "${PARAMNAME}" is frequently fine. When it becomes not fine is if you want to allow PARAMNAME to have a value or be null. If it has a value, all is golden. If you try to pass a null value, it blows the hell up. Instead, you need to use the "env.PARAMNAME"/"${env.PARAMNAME}" to refer to it. Using that method, Jenkins understands, "oh, you wanted to process this as an empty value, not as an undefined parameter".


Saturday, June 23, 2018

"Shop Local" Only Goes So Far

For a decade-plus, now, we've bought wines from Northgate Vineyard. Today, I'm reasonably certain that I bought my last bottle of wine from them. It's a shame, really, because I really liked doing business with them. Unfortunately, times change and, too frequently, the things that make you want to do business with people go away as part of that change. 

Such has happened with Northgate. Earlier this year they were sold. Apparently, the buyer is someone that's buying up Virginia vineyards, presumably hoping to cash in on a stong "buy local" ethos that has powered the growth of the farmers markets, distilleries and the Virginia wine industry as a whole. Unfortunately, this buyer seems to want to recover his acquisition costs inside of the first 12-24 months of assuming ownership.

While I'm a proponent of "buy local", that desire has its limits. Admittedly, when we first started buying their wines a decade ago, they were a relative bargain: you could get a really decent wine from really nice people and spend well less than $20 to do so. Even over time, as their prices trended upward, the value proposition still made their wine an "ok" buy. Unfortunately, a wine that was a bargain at $16 and an ok value at $21 falls out of the "every-day drinking" price-range when it hits $30+. And, when the retail price goes up by more than 60% in the space of three months and you no longer cut frequent-buyers the same discount you cut for occasional case-buyers, you're really asking a lot of your existing customers. I'm concerned with value. If you're wanting to charge me better than 60% more for something I've been buying for years, you need to deliver a product that has a concordant improvement in value.

Funny thing with a better-than-$30 bottle of wine: you put it into the same price-class as some really decent "continental" or California wines. Yeah, you're still nowhere near the really superior wines that come from vineyards that have been making wine since before this country even existed, but you're definitely out of the "table wine" price category and into "special occasion" territory. You're no longer a wine that I'm just going to give to a newly moved-in neighbor as a housewarming gift. You're no longer a wine that I'm going to share with friends who are just as happy drinking a bottle of Barefoot from the local 7Eleven. And, hey: if you're able to make more money chasing the "occasional wines" market than the "every day wines" market, then "good on you" ...but I can't come along for that ride. And, like I say, if you're going to price yourself as an occasional wine, you need to taste like one. Sadly, I can't say that Northgate's wines fall into that category.

What's really sad is that they aren't the local wine-producer that's going down this path. Yes, Northern Virginia (DC Metro as a whole) has a lot of six-figure earning residents. And, of those, there's a non-trivial number — particularly the younger, less life-encumbered ones — who tend to have a "more dollars than sense" outlook on buying-decisions. But, that's a group that tends to shrink over time as they discover that there's plenty of things that are "just as good or better for less" and that spending money for the sake of spending money isn't really a sustainable path, no matter what your income is.

Point of fact, my income doesn't exactly put me in the "struggling" range, even given this area's cost of living. That said, I still measure everything I buy — no matter the price — on whether the reward was worth the cost. My spending habits are more about value than raw price. I've had "special occasion" meals that, at nearly $1000, were far better values than meals that were well less than 1/3 that price.

And that's the rub. "Shop local" is really only one point of consideration in the "value" equation. There's not many people I know that are going to completely ignore the rest of the value equation just to shop local. If people are going to ignore other aspects of a value equation, they're going to do it for a status-y "name", not "it's local". To be brutally honest, I don't know that there's a single Virginia winery that has a status-y enough name to overcome normal value equations.

It really makes me wonder how successful this vineyard-buyer is going to end up being. His practices, to date, have been pretty alienating. I've even spoken to a wine-buyer for a local wine outlet that has previously carried the labels effected by this vinyard-buyer's actions. And the opinion is basically the same as mine: "nice when it was at last year's price; completely not worth it at the current price."  Worse, that buyer has to factor in seller-behaviors into the bulk-buying decisions and the seller's delivery-behavior has apparently suffered even as the asking-prices have soared.

So, "good-bye, Northgate." It was nice when it was Mark selling me wine. This new guy can go screw himself ...because that's exactly what he's trying to do to the people that helped make Northgate an attractive acquisition-target.

Friday, June 22, 2018

Do People Just Look Younger, Now?

So... Facebook popped up a picture of me from my college days. While the specific picture was of me heading out to a Halloween party (probably the Friday before Halloween, 1989), there's nothing I'm wearing in the picture (aside from the small bit of makeup and the bleach-blotted, semi-shredded jeans) that weren't part of my regular look.



At any rate, couldn't remember if I still had the original photo anywhere. It's possible that I do, just have no freaking clue where. But, it did exist in a "Photos from College" folder on one of my cloud accounts. It was actually one of only three photos of me from the entire time I was in college. There's probably  more, but none that were ever in my possession. Basic fact is that there's just not a lot of pictures of me from any point in time as I generally eschew picture-taking.

At any rate, of those photos of my college friends, while everyone pictured looks noticeably younger, none seem to look as young as the college-aged faces I tend to see walking around, today. I dunno whether it's just that I tended to hang out with people that looked older than typical or if my brain is still applying the same filters to those pictures as it formed when I was seeing those faces with regularity (but doesn't to people who are actually 18-22 years old). Could be just a weird perceptual trick ...much like how pictures of former SOs no longer look as beautiful as you remembered them looking when you were still in the good part of when you were dating them.

Wednesday, June 6, 2018

It's All So Simple (or YAFDSL/YAFSML)

I think that part of my problem with "modern IT" is the proliferation of "simplifying" technologies. Yeah, by itself, any given simplifying technology can be a boon. However, when you're in a position where you work with multiple, not highly-related tools, instead of having to learn one, complicated technology, you wind up having to learn multiple simplified technologies. So, now, you have to keep straight all these freaking "dialects" of simplified technologies. You have to  remember where they overlap with each other (and the parent technology they're simplifying), where they differ, their individual shortcomings — both in general and in relative to the technologies they're simplifying — and idiosyncrasies. Further complicating things is that all of these simplifying technologies tend to be rapidly evolving ...often so that they're essentially re-implementing the things they were designed to simplify away. It all becomes especially problematic when your position requires you to rapidly switch from one such simplifying technology to another.

Seriously: how many simplified markup languages do I need to know. How many flavors/reimplementations of those SMLs do I need to know. And it's not just text-formatting implementations, it's all the goddamned domain-specific languages (great, you're both pythonic and you both offer escapes to the underlying python, but you both use slightly different syntaxes and escaping to get to the underlying python).

When I came back from PTO, I found in my task list "re-do this automation in the automation framework's (Jenkins) native job-control language." All I could think was, "great, yet another fucking DSL to learn and keep straight from all the others."

Even that last thought reminds me of the first time I encountered YACC: "what's that," I asked. "Yet another compiler-compiler".

It's not even all that new a problem. When I first started dealing with text-formatting tools, SGML was the big thing. HTML was designed to provide a simpler method that was sorta inspired by SGML. And, over time, as each revision came out, we got things like CSS and XHTML which, essentially, bolted a lot of SGML's complexities and learning-curves back onto HTML. There was also the fun of learning TeX and then LaTeX (both really great when you wanted to create device-independent — "write it once" — document-rendering ...something that the proliferation of markup and simplified markup languages isn't helping).

Bah!

Monday, June 4, 2018

Always Check Your Work (Order)

In news of "this is why you always read the estimate before authorizing the work"...

During the middle of May, we went to Vegas for a ten-day trip to take in a three-day EDM festival plus related shows before and after the festival. While we were gone, the DC area got stupid amounts of rain. In one 24-hour period we got 7" of rain and in a further 48 hours, the three-day rain total went up to 11". So, when I came home and my wife's car was poppping alerts, I wasn't super surprised. Even though the car was street-parked on a hill — such that there was no possibility of it actually getting flooded — it was still a lot of rain. That volume of rain often finds ways to get into vehicles that are parked for the duration.

What I was surprised by was when, on our way to replenish our vacation-bare refrigerator, the car completely quit. First the A/C fan cut out. Then alerts for the power steering, brake-assist, AWD, throttle, etc. all popped. As I limped the car to a safe pull-off — a semi-vacant strip-mall — the alerts went away ...because the electrics completely quit, taking the instrument panel with them.

I called the dealership where we got the car. When I'd bought the car, I'd paid the extra $3K for the extended warranty. They gave me the number for a towing-company they work with. I called the towing-company. When the dispatched driver called to say he was five minutes out, I called Uber. While the tow-man rigged our car up onto the flat-bed, we caught the Uber over to the dealership. This was two Saturdays ago, now.

Dealership gave us a loaner and, because it was a holiday weekend, told us it would probably be Tuesday before they'd have a chance to look at it. Tuesday came and went and no call from the dealership's service department. First thing Wednesday, I called to find out where the fuck the estimate for my car was. Around lunchtime, they mailed me the estimate. The total expected repairs were expected to come to a little over $4,000: alternator, serpentine belt, front-struts, alignment and battery ...nearly 75% of that total was the estimated labor cost.

I replied back to the email with commentary:

  • "That's a brand new battery: it shoul accept a charge just fine. If it needs to be replaced already, I'll need to smack another garage around for this part of the repair costs."
  • "I bought the warranty-extension to cover the mechanicals through 6yr/60,000. The car is less than six years old and has less than 45,000 miles on it. Losing an alternator at this point in time seems really premature - almost as premature as the warranty-covered loss of the clutch at 33,000 miles. Are you telling me that none of this is covered?"
So, the service representative said he'd check on the warranty-coverage. Meanwhile I'm thinking, "you presented me an estimate for $4,000 and you didn't even bother to see if the warranty I bought through you guys covered anything??"

Two days pass and I don't hear anything further from the dealership. I decide, "fuck this waiting," and call back to ask the status. "My" service-lead had apparently gone on vacation and hadn't passed the ticket down. They assigned me a new lead. We went over the estimate on the phone, and, again, I had to bring up the warranty. Again I was informed that they needed to contact the warranty guarantor.

Another couple days pass and it's now Friday with no word back. So, I call for another status check. I'm told they're still waiting on the guarantor. I note that I'll call again, Monday afternoon, if I don't hear back from them. I didn't hear back from them by lunchtime, so I called (at 13:30 - no point calling during lunch-hour). This time I'm told that the guarantor's adjuster is due to arrive any time, now, to check/ok the work. They'll get me an updated estimate depending on the adjuster's findings.

They actually did call me a little before 16:00. Even better, not only was the $1000 associated with the alternator parts-and-labor covered, so to was all the other stuff (with the exception of the warranty deductible and the cost of the wheel alignment). In short, my $4,000+ initial estimate drops to a little less than a $300 outlay. And, about that I'm happy.

The thing that gets me is, had I not pushed back, I'd have been on the hook for $4,000+ worth of repairs. Why the hell wouldn't they just automatically do right by me? Why the hell did I have to push to get what was due me from the warranty? I mean, had I not pushed for them to verify the coverage, I'd have essentially paid for the repairs twice: once for the unused warranty and once for the repairs themselves. 

Further aggravating is that it's been nearly ten days to get to this point. Granted, they'd given me a loaner, so I didn't have to rent a car during the period nor strand my wife while I worked had I not been able to afford to rent one. But it's still annoying to be stuck in a loaner for that long. Don't get me wrong, the loaner isn't shitty, but it's definitely the base-model ...and our car very much is not.

Saturday, May 26, 2018

Monsoons an Christmas Lights

It appears that neither of our cars much cared for the 7" of rain in 24 hours and 11" of rain over a three-day period during our ten-day trip to Vegas.

As expected with my sixteen and a half year old convertible, I found water in the spare-well under the cargo-deck of my trunk. Fact of convertible-owning life is that, as they age, they start to leak. Still the amount I found pooled under the spare tire was far less than I'd feared. There was less than half an inch of standing-water at the deepest part of the puddle as my car sat parked on our moderately up-sloped driveway. Only really concerning thing is that, when I put the key in the ignition, the ABS and DSC warning lights were both lit. Drove the car around the block to make sure that the brakes were actually working. So, it seems either the sensors are moisture-damaged or just still wet.

The bigger surprise was my wife's Mini. It will be six years old this coming December. When we started it up, yesterday, it was complaining that it was unable to charge the battery. At the time this error came up, the local service-facility we use was closed for the day (well, their electrical tech was gone for the day).We were going to drive it to the shop, today, if the indicator stayed on. Came out after returning from morning errands to find that the alert was no longer showing. So, we opted to drive it to the grocery store on a route that would take us closish to where we get it service figuring "if the alert returns, we'll just head to the service facility". As we left the neighborhood, the first sign of trouble popped up: A/C fan decided "I'm not actually going to stay running at 'high'; I'll run at 'low' and indicate that I'm running at 'high'." Not a fatal issue, and far less worrying than the "not able to charge" alert of the previous day. Drove onwards to see if the problem would clear itself. As we approached the end of a lengthy downhill stretch of road, first one error cropped up, then another. Lost the power-assist on the steering. Then the ABS indicator lit. Then the AWD indicator lit. Then the DSC indicator lit. Then the throttle stopped responding. Was able to get the car off the road using the engine's idle-throttle power. Got it up a very slight grade and into a little shopping plaza's parking lot. As we were rolling to a stop, the instrument cluster winked out.


Once parked, I got out my phone to call the service-facility. They gave us the number of a towing-company to call. Called the tow-company and they estimated a 60-90 minute response. The car was becoming quite warm and stuffy as it sat A/C-less on the open parking lot in the 90° heat and 78% humidity. I decided to see if the windows were at least working. Naturally, they were also stricken. So, we opened all the doors to get some airflow. Noticed there was a McD's in the plaza and opted to seek shelter from the heat in there while we waited for the tow to arrive.


A couple minutes after placing our order for drinks and sitting down, the driver of the tow-truck called to verify our location and let us know he was about five minutes out. Not bad: maybe fifteen minutes from call to arrival when we were originally told 60-90. As he was prepping the Mini to go up on the flat-bed, I called Uber. The driver arrived just as the driver was readying to put the flatbed into its "ready to drive" position. We got to the service-center about ten minutes before our Mini did. By the time the tow-truck driver had offloaded it and turned it over to the service-center, we had the paperwork for our loaner-car in hand. Presumably, we'll know around lunchtime Tuesday what's up with the car. Really hoping it's just a "needs to dry out" situation and not a "need to completely overhaul the primary electrical bus" kind of situation.

C'mon to the 21st Century, Citi

So, recently, I opted to apply for an airline rewards card issued through Citibank. It's been... "interesting," thus far.

For starters, when I followed the application-link that came from my preferred airline, it took me to a Citi-hosted web page. The page itself wouldn't render in any of my normal browsers. I had to switch to a browser with all privacy-plugins deactivated and with most in-built security-settings disabled. Yeah. Good start.

Once I was able to actually login and fill out the form, I received a "thanks: we'll have our decision to you within 7-10 business days" exit-page. Seven to ten days??? For the past several years would-be providers of revolving-credit services have typically been able to make their decisions in less than 7-10 munutes. Why the fuck does Citi take days to do things everyone else takes minutes to do. I mean, that's several orders of magnitude to make the same kind of decision. It's not like they were offering me an outsized line of credit, either. Hell... the companies that provided my my solar loans only took a few minutes to generate their approvals. So, again, "WTF, Citi?"

When I'd applied for the card, I'd assumed I'd have it in hand for my trip to Vegas. Between the protracted decision-making time and the fact that they USPSed the card to me (again, Citi, "WTF: everyone else does this shit via FedEx or 2nd-day USPS because they want to start earning money off me - why you delivering the card via standard ground mail??"), I did not have the card in hand for that trip. Citi coulda made fees on ten days worth of hotel accommodations, several very nice restaurant tabs, quite a few bar tabs not to mention all the Uber rides and concert merchandise. But, nope, they had to be slow.

At any rate, we got home from Vegas and found the new card waiting in the stack of mail our pet-sitter had brought inside for us. I got the new card out of its envelope and activated it via Citi's card-activation portal. I set up all my profile information. I set up my security-verification questions and answers, various pins and other secondary authenticators. And, because I prefer to use my phone - rather than physical cards - I installed their e-wallet. I'd have just used my regular e-wallet, but Citi apparently thinks that only their e-wallet will do (presumably, they don't want to split fee-making opportunities with other e-wallet services), so, "whatever".

Once I'm outside the card's trial period (during which I earn the airline's mileage bonus), I'll probably revert to using my regular card(s). Those cards work with my preferred e-wallet and are just generally better service providers.

At any rate, today was the first farmers market we could hit since getting back from Vegas. It was a "refill the pantry" kind of trip. I figured, "use the new card and start knocking out my obligation towards getting the airline reward." Used the card with eight different vendors with no problems. Got to the last vendor we were going to hit, and my card was declined. Pop open Citi's e-wallet and it tells me "security-hold placed on card: please contact this number."

With much annoyance, I hit the number in the app. It rings through and puts me into their customer service call-tree. First thing it asks for, before routing me, is my credit card number. All I can think is, "seriously? I called from your fucking app and it couldn't have put me into your routing system with that information already populated?" So, I punch in my card number. I then answer the first security question (c'mon, guys, I've got an authenticated device on my person - why aren't you leveraging that capability). I'm then placed on hold while a represetative becomes available. Five minutes pass and eventually a CSR picks up the line.

First thing they ask for is my card number. I point out to them that me reading my card and CCV number out in a public place kind of defeats the purpose of calling in to verify my card's security. They audibly shrug and ask for both bits of info. I supply them. They then ask for further authenticators. I again preface my reply with commentary about the wisdom of being asked for this while I'm in a public place surrounded by randos. Now that I'm sufficiently authenticated, the CSR says that he has to forward me to the correct department.


Mmmmmkay... So, your app had me dial a number that wasn't even the correct department and before you could decide I needed to be routed to a different department, you had to authenticate me?

First CSR does a warm hand-off to the next CSR. Next CSR is apparently wrapped in cotton batting because I could barely fucking hear her. I ask her adjust her volume since my phone's maxed, I'm in a noisy place and she's barely audible. She does so. Once we're able to hear each other ...she asks for my account and CCV numbers. I don't bother to point out the stupidity of having to do so since she was getting me via a warm-handoff from someone that had already collected that information. I don't bother to point out the stupidity of having to audibly dictate that information (again) in a public place. She brings up my information an realizes that she needs to hand me off to yet a third representative.

Second CSR does a warm hand-off to third CSR. If you guessed that the third CSR needed me to dictate my card and CCV numbers, you'd be correct. Further, this CSR needed to send me an SMS to further verify me. Unfortunately, apparently Citi's SMS system doesn't think that my phone number is a valid phone number. So, she can't adequately authenticate me (???) via that method. Fortunately, since I'd set up a bunch of secondary authentication methods when I activated my account, she was able to verify me using one of the yet-to-be-used ones. She then informs me that they need to ground-mail me a paper form that I need to fill out and ground-mail back to them before they can unlock my card. Incredulous, I ask, "why did you issue me a card and provide an online activation mechanism if that wasn't going to be sufficient to actually use my card ...and why did you let me make eight charges before deciding 'whoa, that's enough, there, buddy!'?" She says she's sorry for the situation but she's bound by policy. I note to her that I will be contacting my airline and probably canceling the card once I've claimed my reward. She again states she's sorry that I feel the service has been inadequate and to look for the form in the mail.

Hoorary for quality customer service. Hooray for great security procedures.

Eventually, we complete our errands — doing the remaining transactions with one of my less asstacular credit cards — and return home. After unpacking everything and settling in, I get out my laptop an visit Citi's website. After logging in, it tells me "card is on security-hold, pleas call...". I figure, "worth a shot: maybe they can at least explain this morning's debacle." So, I pick up my VOIP phone and dial the number.

This time, no call-tree an no waiting on hold. Explain basic situation to CSR. He asks for my secondary authenticators so he can open my record. He then asks for my cell number so he can send me a one-time authenticator-number ...their system still thinks my number is invalid. So, he calls me on my number. He rings through, verifying that the number on my account is valid. He updates the information in my account to that effect. Now able to get into the particulars of why my account got put on hold, he notes that they were supposedly not able to validate my SSN. I can only express minor incredulity — "why would you issue a card if there was a problem with my SSN that wouldn't allow me to use my card." He reads to me what they have on file and I validate that the information is correct. This time, his system is able to validate my SSN (where it couldn't previously for whatever fucking reason). He indicates that with things validated, he can remove the hold and that there's no further need for an exchange of ground-service paper-based mails.

While I'm thankful that things are resolved, I ask him why there was so much of a runaround, previously. Obviously, he couldn't really provide an answer to that beyond, "I honestly don't know." I think him for his assistance and we conclude the call. Regardless, I'm obviously sub-impressed with Citi's policies, procedures and IT back-end.

Seriously: if this were 1998 or maybe even 2008, this might have made some kind of sense. As it is, though...

Tuesday, April 17, 2018

I've Married a Toddler

It's with distressing regularity that my wife reminds me that I have married a toddler. She's excitable. She has a very low tolerance for delayed gratification. She has a strong tendency to "mine?" everything. She has a tendency to break and/or lose things in her zeal to explore newly-arrived packages ...whether hers, someone else's or something that's supposed to be a shared possession. All of this was on display, today.

We bought "tickets" to a music festival that's happening near the end of spring. I place "tickets" in quotes because this festival doesn't issue traditional tickets. Instead, they issue bracelets with embedded RFIDs. The festival is multi-day and the RFID-enabled bracelets are your only means of gaining entry to the festival grounds. The festival's ticket FAQs — and the Ts&Cs on your ticket purchase-page — inform you that if you lose the bracelets, damage them in a way that renders the RFID unreadable or render the bracelet unwearable, you're fucked (my words, not theirs). While I imagine you're not actually 100% fucked, it's clear from their wordings that they'll make fixing the warned-against actions a pain in the ass.

At any rate, the parcel containing our "tickets", festival guide and assorted schwag arrived, today. Donna, being her usual, excitable self was wanting to immediately tear into it. I, however, was still in the middle of finishing my day's work. She asked if she could open it while I worked.

Given the amount I've paid for the festival "tickets", hotel, airfare, etc. plus the above caveats around the "tickets" dispositions, the prospect of letting her open the package without me was a "not gonna fucking happen" proposition. After scolding her to stop taking the package apart and to put it down and leave me to finish what I was working on (how this festival is being paid for, neh?), she opted to head over to the neighbor's house for a couple hours.

She came back a few hours later, as I was starting to do my "end of work-session" closing-tasks. She was still antsy and giving me a rushed feeling. Not something I tolerate well at any time, least of all when I'm trying to exit a work-session cleanly. So, as she started to hover, it aggravated me to the point of barking at her to wait while I closed out. She sat down on the couch, package on her lap, fidgeting ...which, since she was still in my eye-line, was continuing to aggravate me.

What she never quite seems to get is that aggravation equals distraction. Said distraction slows the speed with which I am able to do things that require concentration (like closing-out my work-session).

Finally done, I started to get up. Seeing me begin to move, she, of course, interjects with "can I open it, now?" I replied, "not yet," and stalked off to sort out the lights and get my phone's camera ready. I'm not really an "unboxing" kind of person, but I have friends that I know were wanting to see the package since they're unable to go. I also wanted picture-evidence in case anything was damaged or missing.

I started disassembling the package, taking pictures as I went. Interjections of "ooh, what's that," and "can I see that" ...and grabbing at things and throwing "metal hands" while I'm trying to take pictures ensued. While it's great that she's happy about the festival and excited, her expression of it was a bit grating while I was trying to sort out "what's what" in the packaging. Really didn't want to accidentally discard or damage anything important, so I wasn't exactly appreciating the distracting antics.

After I identified what of the now splayed-out contents were tickets and what were other things, she immediately grabbed one of the RFID bracelets. She wanted to try it on to make sure it fit. ...And for some completely unknowable reason, decided it would be a good idea to test out the cinching of one of the bracelets. FUCK!

Fortunately, she hadn't cinched it to the point that it needed to be cut off. She hadn't cinched it to the point that she couldn't get it back on once slid off. When I incredulously asked what the hell she thought she was doing fucking with the cincher, she tells me, "I wanted to make sure it would fit on my wrist".

Yeah, that was not exactly the response that I was expecting. I was a bit dumbfounded by the response, actually. Mustering what credulity I could, I replied, "you were concerned the bracelet might not fit" — presumably by being too small —, "so you tightened it??" Sheepish expression on her face was really all she had left. She babbled some further explanations, but they all made less sense than her immediately prior statements, so I couldn't quite "process" them.

At any rate, everything verified to be present (and now someowhat fucked with) and "documented" I packed the festival kit back up and stuffed it into the case I'll be packing my laptop and other critical items into. I'll have to look at it a bit later to make sure I didn't miss anything in all of the festival's documentation or the welcome material in the kit-box.

Saturday, February 17, 2018

No Color, No Car

It occurs to me, I've never bought a new car that wasn't a color.


My first car was a hand-me-down. It was a grey Chevy Citation.


My second car was the the first new car that I paid for. It was a Regatta Red Nissan Pulsar NX.


My third car was a used car. I had to buy it because my, then 8 year old Nissan had suffered a financially untenable mechanical failure. I needed a car ASAP and needed it for less than the repair-costs of the Nissan. I ended up with a Charcoal Honda Civic.


My next car was a "by choice" purchase. Another Honda Civic, I selected a pearlescent Aztec Green for its color.


Thanksgiving of 1997, I was visiting family in Pennsylvania. At the time, my father was looking to get himself a new car. We stopped by a VW dealership ...that shared space with a BMW dealership. I happened to notice a Z3 in the show room. Hadn't been intending to buy a car - wasn't really even looking for one, but the color caught me. Asked to take it for a test drive. Ended up returning to DC with a (limited edition - one of 300 made globally) Dakar Yellow Z3.


When time came to replace the Z3, I decided I needed something notionally more practical. Of the many cars I tried, none really felt right ...until I took a ride in a co-worker's brand new e46 (2000 model year). He let me take it for a drive and I really liked it. I still wanted a convertible, though, but orders for such were no longer available on the 2000 model year. Put deposit down and ordered a 2001 convertible in "Techno Violet Metallic". Nine months later, it showed up and I traded in the Z3.

Six months later (and just two weeks after 9/11), it was stolen. Was able to order a replacement, but it was a 2002 model year. It arrived in late December of 2001. That's the car I'm still driving, today.


While I've purchased two other vehicles, since then - both for my wife - only one has been a non-color. She insisted on black (she's a goth and generally color-shy) for the first vehicle that we'd hoped would end up being a sprogling-hauler. At least it had (aftermarket) purple and black seats.

When it started to die in 2012, we bought a Mini. Wife, again, wanted a non-color vehicle, but I vetoed. We ended up with Chili Red (but with black "rally" stripes).







Thursday, February 15, 2018

Gotta Wonder...

Ever since the shooting in Vegas, last year, any time a mass-shooting makes the news and I see various people screaming "something needs to be done", I can't help but wonder, "was the shooter's the real intent to prove that there's really nothing you can do to prevent mass shootings":
  • Background investigations? Passed them.
  • Use of aftermarket stuff to increase rate of fire on otherwise non-cyclic weapons? Yup.
  • Using a cache of pre-loaded weapons to obviate the question of limiting magazine-sizes? Yup
  • Using a cache of pre-loaded weapons to overcome the types of heating problems you encounter when you make a civilian-grade weapon operate at near-
  • military fire-rates? Yup.
  • Inclusion of weapons in the cache that wouldn't have been covered by a ban of weapons that *resemble* military-grade weapons? Yup.

The only real thing he "missed" - at least as far as what's made it to news outlets - was including 3D printed weapons, magazines or bump-stocks. ...He also missed out on using homemade bullets. Basically, stuff that's fairly trivially done and no amount of regulation is *ever* going to prevent (at least, not in the case of an adequately-determined malefactors). Stuff that's really only going to get easier to do as technology advances.

I mean, sure, you could try to wholly ban guns, but how well have bans on alcohol and drugs worked out over the years. And, really, that's part of the irony of the "do something" crowd: many of the same people that say "legalize drugs because prohibition just doesn't work" are among the throngs that think that either outright banning all guns or just the "particularly awful" ones will somehow magically work where previous prohibitions have failed.

Am I saying it won't cut down on the number of incidents? No. It would probably greatly cut down on the number of newsworthy incidents. Problem is, it would probably also make it so that when incidents do happen, they're far more likely to be Vegas-style ...or, come by other forms of mayhem (Boston 2013, anyone?).