Thursday, June 28. 2007A Salary Has Its PerksAfter high school graduation, I bought a pretty nice electric guitar, an Epiphone Les Paul sunburst model. At the time, I had a super-cheap little practice amp that became largely irrelevant, since my notions of going to college and practicing during all my free time proved over-ambitious. (It turned out I had no free time, unless one counts that quarter when I nearly dropped out of school.) I haven't seen that amp in a few years now, having loaned it to David for use in pursuit of the endeavor that became Fine Dining. The loan became permanent, but I've always thought it a worthwhile, though paltry, investment in the music they ultimately produced. In the months leading up to college graduation (oh, yeah, I graduated), I began thinking of things I could trade my soon to come paychecks (oh, yeah, I have a job) for. A new chair, maybe a new desk, possibly even eventually a flatscreen tv all made the list, but at the top was a nice new amp that would establish a new era of attempting to not suck at the guitar. Well, the paycheck came on Monday, cleared on Tuesday, and yesterday evening it bought me an amazing new amp, a Fender Hot Rod Deluxe, that should likely be the last amp I ever need to buy (even in the case that I actually keep playing a lot) and whose capabilities are far too great for me to even imagine exploiting at present.
I'm going to start taking some lessons again, focusing on physical technique. For music theory I already have a decent foundation built, and learning scales is something I can do on my own. I have the fundamentals of playing down, too; I have, after all, owned and toyed with a guitar for more than 6 years. Now I'm hoping, this time around I think reasonably, to develop my playing skillz to the point that I can actually play. Monday, April 30. 2007Charged Twice for Gas... Sort OfMuch like my intentions for posting to this blog, I've been meaning to wash my car for months. (You gotta get that road salt off eventually.) As capable as I am at washing a car by hand, and even though I enjoy it a bit now that's it's not a chore, my time is more valuable to me than the seven extra bucks at the pump after a fill-up. So when the gas light came on during my drive home this evening, with the temperature outside still somewhere in the 70s, I knew tonight was the night to finally do the deed, or at least pay a robot to. When I arrived at the gas station, drive-through dinner settling nicely in my stomach, all seemed in order. I slid my debit card through the reader on the pump, then keyed in my acknowledgment that, yes, thank you very much, I'd like a car wash today. Then I pumped a few gallons of ol' number 87 into the tank till the meter read $18.12, a number that, by corresponding to a major event in American history, satisfied my gas station OCD well enough to let me replace the nozzle in the pump. I turned my attention back toward the small LCD screen, apparently a touch slow, still asking me to replace the pump, and I savored the delicious decision of just which level of car wash I'd be indulging in. ("The medium grade will do, I think. Nothing too fancy or ostentatious.") The screen continued to flash again and again, imploring me to please replace the nozzle when finished. "But I have, you damnable machine!" I cried out in my mind. I jangled the nozzle inside its cradle, giving the pump one last chance to heed the input at its sensors before I progressed to more drastic measures, whatever they may have been. I stared a few moments more, impatient, ruing the delay of machine-controlled suds and industrial-strength air cannons, as the flashing black letters demanded I replace a nozzle that could already be no more at home than if the pump were to spontaneous grow an ass up which I could shove the nozzle sideways. It was then that the feminine, nasal, and anticlimactic voice of god bespoke unto me: "Please come inside." Ah-ha-ha! The slight this loathsome machine had visited upon me had not gone unnoticed, and the operator of this fine petroleum dispensery would soon make things right. Ah, the naive fool I was. I would like to make note at this point that I can give no defensible account for the tending of my inner monologue toward the poorer examples of mid-nineteenth century English dialogue. That the voice in my head speaks alone and not amongst a chorus is joy enough to me that I can't begrudge him his faux but foppish affect. Upon entering the double glass doors I took my place four or five deep in line and soon learned that the credit card system for all the pumps had rebelled en masse, and had done so in such an unfortunate way as to leave each patron unaware that anything was amiss save perhaps until the very end, as I had encountered, at which point many drivers simply drove off assuming the best. (Whether "the best" signified a successful payment or not is wholly a matter of conjecture, on a driver by driver basis.) The attendant, all apologies and frantic hand motions, was re-authorizing and billing the card of every customer she could get to walk through the doors. After I'd watched a few such persons become financially squared, it came the turn of a man in line who revealed that he was here for a different reason than the developing brouhaha. It seemed that a few hours earlier he had put ten dollars worth of gas on his card, but the station's system had happily charged him fifty dollars instead, a sum he found to be somewhat steep. I agreed with him, certainly (though no one present actually solicited my opinion on the matter), but my thoughts quickly jumped to curiosity at the possible cause of what must ultimately have been a software-driven mess, and at what connection, though it might seem on the surface that any connection would be tenuous, upon reasoned introspection would surely exist between the afternoon glitch and the evening meltdown. If you've ever used a computer, it's likely you have used what is referred to colloquially as "computer software." Well, it's a well-known fact that computer software is broken, bug-riddled, and flawed, as a rule. (This is where a non-lazy blogger, which I've thoroughly demonstrated I am not, would include links to software project statistics, bug-tracking data, etc. This omission is especially egregious given my field, but I shall live with the guilt.) Even so, in an embedded system such as is in-use at a gas station, which is rigorously verified while in development—there's money riding on it, after all—oh, and it controls high volatile chemicals, too—and is then field tested day-in, day-out near to constant throughout the nation and beyond, the presence of multiple, relatively accessible* bugs in the credit charging system that could be tripped within a few hours of each other, at the same station, is unlikely. This is not a proof that the two errors are related, but a claim that it's probable, or at least that the first error laid the groundwork for the second, more obvious and financially painful (for the station, at least) one. The anatical portion of my mind now at the forefront, no longer conjuring anthropomorphized slights by an indifferent gas dispenser, I wondered if perhaps some accounting package in the pumps' billing system ran into a divide by zero error, or an arithmetic overflow or somesuch, perhaps having been fed some bad data from the remote credit system. Maybe the accounting mismatch arising from a pump convinced it had sold ten dollars' of gas and a credit system knowing it had charged for fifty led to a slowly (in computer terms) propagating error that didn't reach its climax until several hours later, when a confused and disoriented credit system finally gave up, declared "fuck it," and started handing out free gas to everyone that dropped by. Meanwhile, the desperate attendant had gotten on the phone with what must have been the station owner, and had secured for the overcharged gentleman the fairly unsatisfactory option of coming in the following day when the manager could issue a refund—if, of course, the customer could produce some verification from his credit card company that the overcharge had in fact taken place. Apparently, the credit Armageddon laying waste to his store wasn't evidence enough of billing irregularities during the day. The customer, possibly recognizing that forty dollars of Pyrrhic victory was better than no victory at all, took this offer and left. When it came my turn, I paid using a different credit card than with my outside attempt, preferring that if it, my debit card, were to be hit in the aftermath of all this by some massive financial blow, it would, at least, not be immediately hit with a second overdraft fee like a cherry on top. So I left, as best I can tell without stealing gasoline, to make the short drive home unburdened by the glowing ember of the Low Fuel light on the dashboard. But I still haven't gotten my car washed. * - "accessible" in this context refers to the likelihood that, as the software controlling the pumps goes about its business, it will proceed through the exact necessary set of conditions and branches of code so that it executes the portion of the program that contains a bug. Sunday, March 4. 2007OMG OMG OMGI dislike embedding video direct into posts because of the performance-degrading effects it can have, but I have to because Ho-cow-wtf-hells-yes-awesomtacular-nerdgasm!!1! they've released a sequel! RvD2 is out, and it kicks even more ass than its predecessor: If anyone missed the original short then they've been missing out. Also, if you're running IE 7 but and an older (or no) version of Flash, you're probably still missing out on the embedded clip. But I guess that means you don't watch internet videos anyway, you luddite. Edit: I removed the embedded video for load-time reasons. Thursday, March 1. 2007Exeunt Hiatus, Obstinate ProcrastinationBusy busy busy. The quarter's closing down and I'm trying not to get caught underneath it as it does. Last weekend I went skiing, but complete forgot to take pictures of it. As an offering to the blogging gods for my neglect of frivolous posting duties, here's an awesome link to three guys playing the same guitar. MySpace what? Last week I started writing up an account of an encounter I had at the beginning of the week, while it was still icy out and snow was piled high all around. I jotted it down, but didn't post it because I didn't get a chance to revise it at all. I still haven't, or even reread it, but I'll post it now since I won't get the chance for the next couple of weeks to edit it, and it real wouldn't be worth it anyway. Keep that in mind, though!
I felt motivated to write that out last week by guilt over my hesitation. Anyone been in a similar situation where they've realized after the fact that the right thing wasn't the thing they did? For reals, I'm going to discuss recursive descent parsing next time. Thrilling! Tuesday, February 13. 2007Woe Is MeSo, more snow, with some sleet and ice on the side, hit town last night and today. OSU even canceled classes and operations at 1:30. It's a shame the class I'm sitting in started at 12:30 and lasts till 3, and the instructor decided that watching and discussing the film Halloween was so essential that we couldn't let out early. Someone sue on my behalf after I die on the way home. Next up, What the Hell is a Recursive Descent Parser? Tuesday, February 6. 2007Interviewing Often SucksSo, yeah, it's really fricking cold, I'll just toss that out there. Also, sometimes job interviews can be brutal. Today's was an example of the brutal sort. I haven't decided whether to elaborate on it around here or not—this is the public internet, after all—so for now I'll just claim that tomorrow's History of World Economics midterm doesn't leave me the time. In lieu of elaboration, here is what I should have written down in those torturous ninety seconds right at the end: struct Node {
Node* pNext;
int n;
};
Node* CopyLinkList(Node* pHead)
{
if (pHead == NULL)
{
return NULL;
}
Node* walker = pHead;
Node* copyHead = new Node();
copyHead->n = walker->n;
Node* prev = copyHead;
while (walker->pNext != NULL)
{
walker = walker->pNext;
Node* temp = new Node();
temp->n = walker->n;
prev->pNext = temp;
prev = temp;
}
prev->pNext = NULL;
return copyHead;
}
Actually pretty simple, if you know what you're doing. I wasn't very much helped by knowing that the guy after me got 20+ minutes to write it, compared to my one and a half. Way-late Edit: It occurs to me to point out that the Hungarian notation was not my fault. The struct and the function signature were given to me.
(Page 1 of 3, totaling 21 entries)
» next page
|
Currently Reading...Programming .NET Components -- by Juval Lowy The Pleasure of Finding Things Out -- collected Richard P. Feynman On Deck: LinksAmazon.com Wish ListSyndicationBlog AdministrationCalendar
|
|||||||||||||||||||||||||||||||||||||||||||||||||