2007-09-17

It's dead, Jim. (epilogue)

Got an email from Xbox Customer Support:

Good news, your Xbox console has been shipped! You can expect to receive it in 3-5 business days.

For your convenience, your shipping information is provided below:

Carrier Name : UPS
Carrier Tracking Number : 1Zblahblahblah

You may track the status of your package using the UPS website and the tracking number provided above.

Yes, I just got that email, for the replacement console I received 2½ weeks ago. *eyeroll*

2007-09-11

Another week, and all's well

So glad the internet is back, because then I could get the phone call telling me that, yes, there is no change to the status of the wireless wheel retrofit kits. *insert eyeroll here*

To report a problem with your phone, please call...

Our internet service was out this morning. Since we have VOIP, that meant the phone was out, too. So I picked up my cell phone and called 1-800-COMCAST, hoping that if I reported the problem before I dropped the kids off at school, it'd be fixed by the time I came back home to work. The call went something like this:

Please enter the phone number where you have service, or wish to order service.
> ##########

For English, press 1. Para espagnol, numero 2.
> 1

To report a problem with your service, press 1...
> 1

For cable TV, press 1. For internet, press 2. For home telephone, press 3.
> 2

Did you know you can visit our website for service requests? Just go to www.comcast.com/service to chat with a live customer service operator!

2007-09-05

Just wanted to let you know, nothing changed

During the saga of the Xbox 360, I mentioned that I initiated a ticket with regards to my wireless racing wheel. I thought it would be amusing to mention that I received another call about the wheel on Saturday. A message was on my machine saying they needed the serial number of the wheel. I gave it to them when I first made the call, but ok, I'll play along.

The guy who answered the phone this time was generally clueless. He pulled up my account, and then proceeded to ask me what I was calling for, did I want to return the wheel, or have it replaced? That initial question, along with his heavy accent suggesting english was not his first language, did not give me much hope for a stress-free phone call. After several minutes of feeling like I was talking to a mound of silly putty, we got to the point where he asked me for the serial number. This wasn't as easy as it sounds, as the barcoded sticker has two numbers on it, one above and one below, in different formats, and neither is labeled with anything that would indicate which might be the actual serial number. I gave him one that seemed to satisfy him (the same that I decided on over a week ago with the help of the very helpful guy who took my information the first time). Then, again, he asked me what part I wanted replaced. "I don't know what needs to be replaced! All I know is there's supposed to be a 'retrofit kit'." He then proceeds to read me the description of the issue, in full, verbatim, as it appears on the Xbox.com website. And then I managed to end the call before he could ask me again what I wanted him to do.

I'm really hoping I don't keep getting calls from them to tell me that nothing's changed, or they need another piece of information from me that they already have. This is starting to get annoying. It's like dealing with Mr. Short-Term Memory.

2007-09-04

Classmates.com, where nothing comes free

At some point, I signed up for a Classmates.com account. I don't remember exactly what prompted it, but from the onset, I figured it was some place I wasn't going to end up visiting often. For one thing, my high school days weren't exactly full of fond memories (moving around as often as I did, I was always the outsider). But more particularly to this site, even though they advertised that it cost nothing to create an account, every page, every feature seemed to be designed to push getting a paid account.

The extent of this push has only become more apparent as time has gone on. The first was when I got an email from someone I knew. It came in through my Classmates.com account, and I was able to view the message. I thought it would be neat to respond and see what she had been up to in the past decade or so. However, I couldn't respond. That feature is for paid members only. Fortunately, I could see her email address, and I was able to respond to her directly.

It seems this little loophole has not yet been closed, as I got another message from someone very recently. Not only could I see his email, but he typed it in the body of the message as well, when he listed a couple different accounts at which he could be reached. I'm not sure if he did this because it was habit, or because he was also aware of how crippled Classmates.com is to free accounts and wanted to make sure I could reply, in case "view return address" was something that had become hidden from free account holders.

Probably the most annoying was an email I got from the Classmates.com server just this past week. Subject: Who's the mystery signer of your guestbook. "Find out who's thinking of you" the link proclaimed. So I clicked. Apparently, there's a "guestbook" feature that lets you leave a message for someone. However, as I clicked on the link and visited my Classmates.com account, I found that I could not view my own guestbook, unless I paid. The lowest charge one could make was $15 for three months. Thank you, no, I'm not that curious to see what random person happened upon my profile (and considering my guestbook has a whopping two entries over the life of the account, I don't see a burning desire to be able to view that guestbook). For all I know, the message waiting for me is from the Classmates.com server, "demonstrating" the usefulness of this feature and "congratulating" me for giving them my money.

Unfortunately, this may mean that someone is actually trying to get in touch with me, and now they're disappointed or annoyed that I'm ignoring them. I'm sure Classmates.com is hoping for this guilt to coerce me into paying up. It is a shame, but one that I refuse to lose sleep over. I can be found outside of Classmates.com if someone wants to chat that much, and if not, well, it's not worth worrying about anyway.

What's worse, the site now hits you repeatedly with popups (the type that are loaded in the browser window, on top of your content, so you cannot view the page without interacting with the popup), encouraging you to upgrade to Gold status or "reminding" you to join the Classmates Dating network (the close link on that particular popup says "remind me later"). Perhaps the subscription requests would disappear if I paid for an account, but would the dating ads, which have 0% relevance and 100% annoyance to me? Although I can't confirm or deny it, their subscription-pushing behavior leads me to believe I'd have a lot more ads in my face if I spent any more time there.

I also have a LinkedIn.com profile. This site has a lot of the same features, although it seems to be more focused on the networking chains rather than the "who did I go to _____ with" idea -- although that feature is available, too. But the best part is, I have not (yet) been pressured to pay for the basic functionality they've advertised. Perhaps this isn't the more profitable business model, but I do know one thing: I've made a lot more page hits to LinkedIn.com than I ever plan on doing to Classmates.com. And if I ever need LinkedIn.com's premium services, I'll be more willing to pay them for it than I will ever consider Classmates.com.

Sure, Classmates.com is entitled to sell their product, and they're entitled to lock up certain features behind a paywall. But when their free services are so limited as to make it almost useless, and they constantly annoy me with ads, they certainly don't give me much incentive to stick around.

2007-08-30

It's dead, Jim. (part 4)

I decided to work from home today. I do this about once a week, because I can, and because I get two hours of my life back on days that I do. A short time after my wife leaves to pick up one of our boys from kindergarten, my dog growls. He does this at almost anything that happens outside -- fortunately it's rarely more than just a little growl. "Moroni," I said, for that is his name, "if it's not the UPS man, I don't want to hear it." Seconds later, there is a knock at the door, and Moroni barks. "Oh. It is the UPS man."

I open the door, and there stands a man in brown with two packages. "The Xbox needs a signature," he says.
"You've seen a few of these?"
"Oh, yeah, it's almost a daily occurrence."

I sign for it and bring the two boxes inside (the other is a Christmas gift for my oldest son -- saw a pretty good deal and decided to get it now). I opened up the 360 and checked its "born-on date" -- September 2006. So I didn't get a new one as a replacement. In fact, I think it might be slightly older. Slight disappointment, but as long as it works, I suppose. I spend a few moments disconnecting the old Xbox and hooking up its younger brother. It powers on fine (except for having to re-sync the controllers, which was expected -- in fact, a piece of paper in the box described the procedure for my benefit), and I go through the "initial setup" screens. It then downloads a couple updates (one on the first reboot, one again when I go through the network setup -- I considered giving it the old 360's IP address, but that confused my switches for a while when I did that with the X1's replacement). I powered it off, slapped my hard drive on it, and powered it back on.

First, I found the settings I could remember -- auto-off, background downloading, XBLA auto-download (apparently that one's also saved with the console), and then I went to Marketplace to download a couple demos. And finally, I fired up the Eternal Sonata demo, the one I had downloaded that fateful night three weeks ago.

As I was playing, my wife comes home. "It's not what it looks like," I said. Honestly, I had no way of knowing it would be here today. I guessed that it was on its way based on the serial number change and the recording at 1-800-4MY-XBOX, but I never received any tracking number or shipment date. It's a very good thing I was home, though, because without someone to sign for it, I'd still be Xbox-less until the delivery coincided with someone being home.

2007-08-28

It's dead, Jim. (part 3)

Apparently there's a little problem with the wireless racing wheel as well. Something about them smoking when plugged in. Microsoft is taking information from people with the wheel so they can send out a "retrofit kit" to correct the problem. Although they have a form for mailing or faxing, I called instead, so I could be sure they got my information. Besides, without a 360, it's not like I don't have anything better to do than sit on hold with 1-800-4MY-XBOX. I called on Friday, and a very nice young man got my information in the system and got a manager to approve it's addition to the retrofit kit queue (the devices aren't ready to ship yet, so they're building a list to send to when available). This apparently took some effort, as he spent a long time trying to get a hold of a manager, but he repeatedly took me off hold to tell me he was still trying, apologizing up and down for the delay. (In retrospect, I suppose he could have just been going out for a smoke instead, but I saw no reason to suspect anything. He certainly had a very helpful attitude.)

Anyway, on Saturday, my wife got a call from the Xbox Service Center, and they left a message requesting I call 1-800-4MY-XBOX. I did so that night. The recorded answering voice recognized my phone number and told me my pending Xbox repair order was open and had been received at the service center, the same status it has been in for a week or so. (Handy feature, since their website is flakier than a pie crust.) I got connected to a live person, who told me the reason for the call was to tell me that they had received my information for the racing wheel, and they don't have anything to send out yet, but rest assured, when they do, I'll get one. Oh...kay... nothing I didn't already know, but... uh, yeah.

Fast-forward to today. On a lark, I hit the service.xbox.com site. I don't know my serial number off-hand, but I was pretty sure it started with a sequence of three zeroes and a nine. But, the serial number registered to me started with one zero and a nine. Sure, I could've been mistaken, but I wondered. Was this an indication that a replacement console was on its way? Others had noted a change in serial number on the web site before they received a replacement. Nothing in my email about a status change or a return tracking number...

I got home, and there's a message on the machine asking me to call 1-800-4MY-XBOX with a reference number. Could it be...? The reference number is different than the one for the original console repair. Don't tell me they're calling me about the wheel again...

The recorded voice tells me that it recognizes my phone number, and that my console has been repaired and should be back to me in up to 5 business days. Well cool. If it takes the same three days it took the coffin to get from there to here, and three days it took to get my 360 from here to there, then I'm thinking it will probably take three days again to go from there to here. The lack of an email with a tracking number is a little unsettling, though. Have they sent it yet? Is it coming? Or is it just "in process", waiting to be put in a UPS box with a tracking number assigned? If I had a tracking number, would I just see "Billing Information Received" for the next few days while they get their act together?

Oh, yeah, the call was about the wheel. "We have your information, we don't have anything yet, we're working on it, please be patient." Be patient? Come on, you called me.

And, I was right. The serial number is different. I remembered the "0009" correctly; the new serial number is very different.

2007-08-14

It's dead, Jim. (part 2)

At about lunchtime today, the coffin arrived. I was telecommuting today, so I was able to grab the 360 (which had been long since disassembled and ready for immediate transport), wrap it up, put it in the box, slap the new label on it, and run it over to the UPS store for shipping. It is now on its way back to McAllen, TX (or should be soon; there's no change yet on the UPS web site for that tracking number) with a scheduled delivery date of 8/17 (this Friday).

8/16 Update: UPS site shows it "OUT FOR DELIVERY" and has updated the delivery date to today (Thursday). Although, the location reads "AUSTIN, TX", which (according to Google) is 313 miles away, so if that's accurate, it might still take until tomorrow to go the "last mile".

8/16 Update 2: I would guess, instead of "OUT FOR DELIVERY", it should've read whatever would indicate that it was being resorted and rerouted. It got rescanned at 8:15pm today with a "DEPARTURE SCAN" from Austin and "IN TRANSIT TO" "CORPUS CHRISTI, TX". That cuts the distance to McAllen by about half (to 158 mi), when it gets there (presumably late tonight). Will it get resorted in Corpus Christi with another DEPARTURE SCAN to a facility in McAllen, or will it go "OUT FOR DELIVERY" from there? A 3-hour delivery route (6 hours round-trip) would be possible. UPS says the delivery will be on 8/17 (again); now I'm curious to see how it gets there.

8/16 Update 3: Apparently it stopped for dinner in San Marcos (30 miles south of Austin), as there's an ARRIVAL SCAN at 9:11pm and a DEPARTURE SCAN at 10:06pm.

8/17 Update 4: Well, the good news is, after spending the night at a bed & breakfast in Corpus Christi, it arrived in McAllen and is now "OUT FOR DELIVERY".
The bad news is, Hurricane Dean is tracking straight for it.

8/17 Update 5: Delivered! 3:25pm, signed by JONES, location: DOCK.

2007-08-10

It's dead, Jim.

Back in November(ish), my Xbox 360 died from the dreaded "Red Ring of Death" -- three red lights and no display. It was very sudden; I had been playing the previous night with no incident, and that night, I hit the power button, and it flashed red. No warning.

At the time, the standard Xbox warranty was 3 months, and mine was a little older than that. The Xbox support person told me it'd be $130 to repair. Instead, I decided to take advantage of the Best Buy replacement plan. $50 for the original plan, plus $60 for a new plan on the new box, and I'm still ahead -- plus I get a new box the same night.

Within the next month or so, Microsoft increased the warranty period to one year, promising refunds for those who paid for out-of-warranty repairs. This, naturally, didn't apply to store-bought plans or other third-party deals, so instead of being $20 ahead, I was $110 behind.

Fast-forward to Monday of this week. I'm playing the space dogfighting game Project Sylpheed. At one point, as one of the other pilots announced we were entering enemy territory, the screen was obscured by red vertical bands. I silently hoped that it was part of the game, but the slightly reduced framerate had me fearing the worst. The mission ended, and I got an invitation to play Shadowrun with some Geezers. On my way out of one game and into the other, I noticed the menus and videos looked fine. More hope, only to be dashed when the games started, and I appeared to be looking at the game through a screen door. I had a feeling that it would be the last time I turned the box on.

I was right. Turning the 360 on, I got one flashing red light, a screen full of text in various languages telling me to call Customer Service, and an error code, E74. I tried unplugging everything -- the hard drive, power cable, network cable, Vision camera -- and turning it on with just the A/V cable and power cable, but there was no change.

It was too late to call 1-800-4MY-XBOX that night, so I called in the morning and set up the repair. That was Tuesday. I got an email update yesterday with a UPS tracking code on the "coffin", and according to UPS, that will be delivered this coming Tuesday.

A couple of silver linings to this cloud. For one thing, it decided to break now, so it's likely I'll get it all fixed up (or replaced) in time for Halo 3, about 7 weeks away. Also, because I swapped my last one for a new one less than a year ago, it's under warranty.

2007-07-31

Dude, where's my DataItems?

ASP.Net coding problem of the day: I have a List of objects, and I have a web page that needs to display them all, allow additions and edits, and save all changes in a batch. Each object has just over a dozen properties, some of which are dependent on others. Also, this is code I inherited from a developer who has since moved on to other things.

What was coded so far was fairly straightforward. There was a user control created with all the TextBoxes and DropDowns, and a page that contained a Repeater control with the user control in it (plus a header and an AJAX CollapsiblePanelExtender to make it look nice and be usable). Most of the code was in place to retrieve the values for the DropDowns, retrieve the object List, and bind the object List to the Repeater. The only thing missing was the actual binding of an object to the user control.

I researched databinding syntax a bit and discovered that the Bind function allows for a two-way binding. I used that in the user control, but I discovered a small problem when trying to bind in the Repeater. Bind attempts to bind a property on the current DataItem, but in the Repeater, what I wanted to do was bind the DataItem (the object) itself to the control. I'm not sure, if I were able to accomplish this, if it would have solved my subsequent problems, but since it wasn't possible, I suppose that question is moot. My only choice was to, in the Repeater, set a property on the user control to <%# Container.DataItem %>.

As I was working with the user control, I found it advantageous to override the SaveViewState and LoadViewState methods, so that each user control saved its associated object in ViewState. (This web app is designed for use on an intranet, so I could afford the extra data transfer.) This would turn out to be my salvation later.

I ran into my first problem when I tried to implement the "Add" button on the page. The Repeater's DataSource is not automatically saved for PostBack, so attempting to add a new object to the List didn't work (the DataSource, and therefore the List, didn't exist). The simple solution was to save the List in the page's ViewState, and in Add_Click, get the List, Add a new object, and re-bind it to the Repeater. The problem was, when I changed some data in the TextBoxes and DropDowns of existing controls, clicking the Add button reverted all values back to their originals.

After much searching (finding many people running into issues with the non-persistence of DataSources and RepeaterItem DataItems), overriding various page- and control-level events, I finally worked out the answer.

The alleged two-way binding doesn't work in this case. Fortunately, the previous developer had already written (most of) a method to populate an object with the values from the on-screen controls, because I would need it. I found that, on PostBack, the Repeater control still contains the controls from the last page load, even if the DataItem itself is lost. So, what I did in the page's Load event, was to have it reconstruct the List based on the controls' copies of the objects (which, remember, were saving them in their own ViewStates). Fortunately, at this stage in the lifecycle, the controls' TextBoxes and DropDowns had already been updated with the changes typed in, so in the control's get accessor for the bound property, I had the control update its object with the values from the TextBoxes before returning it.

In short, the key parts of the code look like this:

MyUserControl.ascx.cs

private MyObject _myObject;

protected override object SaveViewState() {
    object[] vs = new object[] { _myObject, base.SaveViewState() };
    return vs;
}
protected override void LoadViewState(object savedState) {
    object vs;
    if (savedState is object[] && ((object[])savedState).Length == 2) {
        object[] myVS = (object[])savedState;
        _myObject = (MyObject)(myVS[0]);
        vs = myVS[1];
    } else {
        vs = savedState;
    }
    base.LoadViewState(vs);
}
public MyObject MyObject {
    get {
        SaveControlsToObject(_myObject);
        return _myObject;
    }
    set {
        if (_myObject == null) _myObject = value;
    }
}

WebPage.aspx

<asp:Repeater ID='repeater1' runat='server'>
    <ItemTemplate>
        <uc:MyUserControl ID='userControl1' runat='server' MyObject='<%# Container.DataItem %>' />
    </ItemTemplate>
</asp:Repeater>

WebPage.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    if (!IsPostBack) {
        repeater1.DataSource = GetMyObjectList();
        repeater1.DataBind();
    } else {
        //rebuild the data source from the controls
        List<MyObject> myObjects = new List<MyObject>();
        foreach (RepeaterItem repeaterItem in repeater1.Items) {
            MyUserControl myControl = (MyUserControl)repeaterItem.FindControl("userControl1");
            myObjects.Add(myControl.MyObject);
        }
        repeater1.DataSource = myObjects;
    }
}
protected void Add_Click(object sender, EventArgs e) {
    MyObject newObject = new MyObject();
    newObject.someProperty = "initial value";
    ((List<MyObject>)repeater1.DataSource).Add(newObject);
    repeater1.DataBind();
}

Implementation of the Save function is left as an exercise for the user. ;)

2007-07-25

To all legitimate MX admins: Please name your mail servers

I realize my blog doesn't get a whole lot of traffic, but I would like to post this plea to anyone who administers a legitimate mail server that sends email.

Spam sucks. Those of us who run email servers are involved in a constant struggle against the forces of evil. Personally, I run a postfix email server, and I have enabled a series of checks to validate incoming requests. Since turning these on, the signal-to-noise ratio of incoming email is quite high. One of these checks is hostname lookup. My server, when it receives a request from some machine, must be able to find the name of that machine before it will accept email. A failure appears in the mail.log like so (I get a few dozen or so of these per day):

postfix/smtpd[9739]: NOQUEUE: reject: RCPT from unknown[www.xxx.yyy.zzz]: 450 Client host rejected: cannot find your hostname, [www.xxx.yyy.zzz]; from=<spammer@bogusdomain.nul> to=<someaddress@mydomain.nul> proto=ESMTP helo=<another.fakedomain.nul>

Recently, though, it seems there have been some community sites in which I have been interested, but when I try to sign up for them, I can't get the confirmation email (which is often the key to participation). If it was just one or two, I could accept it and move on, but there have been several in recent memory. When I check the mail.log, I can find these attempts with the above error.

While I could turn off this spam trap, or add exceptions for every site from which I want email, I find this unacceptable. There should be no reason for having to go through a configuration change to open myself to spamming, or make individual config changes for every site -- especially when this can be avoided by administrators being responsible for proper configurations. There's a reason this rule exists built-in to my mail server -- because it's a good practice to follow, and it's a practice that spammers are likely to break.

So, if you run a mail server, please make sure your outgoing email server identifies itself appropriately. It's for the common good, after all.

2007-06-26

CyberKnight's MythTV Project

I'm working on a project for my wife, building her a personal video recorder. I've decided to blog the experience, just for kicks. You can follow the progress at the link here.

2007-06-05

You *CAN* say that on TV?

So, apparently a couple celebrities said some dirty words on a FOX show (the Billboard Music Awards shows, back in 2002 and 2003), and the FCC attempted to slap a fine on them.  But the 2nd US Court of Appeals said, no, that was okay.

I get the feeling this date will be remembered as the day the floodgates opened for all kinds of language on public TV.  Or, to quote the article, quoting the dissenting judge and the FCC chairman:

In his dissenting judgment, however, Judge Pierre Leval argued strongly against that particular finding. Apart from disagreeing with the key ruling against the FCC, Judge Leval said that he would "put his money" on the FCC's prediction that any relaxation in the law would give broadcasters a "virtual free pass" for indecency.

"The majority's view presupposes that the future would repeat the past. It argues that because the networks were not flooded with discrete, fleeting expletives when fleeting expletives had a free pass, they would not be flooded in the future," Judge Leval wrote.

"This fails to take account of two facts. First, the words proscribed by the Commission's decency standards are much more common in daily discourse today than they were thirty years ago. Second, the regulated networks compete for audience with the unregulated cable channels, which increasingly make liberal use of their freedom to fill programming with such expletives."

That warning was taken up by Kevin Martin, the FCC chairman, in a fierce statement responding to the court's decision - itself peppered with the F-word.

Mr Martin said he completely disagreed with the court and was disappointed for American families. "I find it hard to believe that the New York court would tell American families that "s***" and "f***" are fine to say on broadcast television during the hours when children are most likely to be in the audience.

He added: "If ever there was an appropriate time for Commission action, this was it. If we can't restrict the use of the words "f***" and "s***" during prime time, Hollywood will be able to say anything they want, whenever they want."

I've long been resisting the digital TV era.  Primarily, I like the fact that I can take a TV to any room in my house, hook a coaxial cable up to the jack, and get all the TV I want.  The thought of having to use (and pay rent for) another box for any TV I want to use just irritates me to no end.  So I've long since dreading the impending doom of analog cable.

Fortunately, it appears that problem has been solved.  If TV gets a free pass for foul language, I will be canceling cable TV altogether.  Can't say that we'll miss it.

2007-04-08

Are they trying to send a message?

This past week, the family went to see the movie Happy Feet, starring Elijah Wood and about six Robin Williamses. The kids liked it well enough, which I suppose being kids and this being an animated feature kind of stands to reason. I thought the penguins were cute, although the music didn't really do that much for me (except for when they broke out in Boogie Wonderland; I may be a child of the '80s, but I was born in the '70s). The one thing I definitely could've done without was being beat over the head with a thick, heavy, blunt instrument with an environmental message tied to it. Yes, much thicker and heavier than the one used by Star Trek IV.

The finer details of their message were still a little unclear. Yes, humans taking all the fish leaves the penguins to starve. Indiscriminate fishing = endangering wildlife. I got that. (Oh yeah, and throw in a little pollution/littering statement for good measure.) But are they saying humans only care about creatures if they do something cute and silly? Or maybe it was simply the cute and silly that got their attention to the existing problem. I think perhaps the dancing theme in the entertaining part of the movie confused their environmentalist message.

There was another message there, too, that may not have been tied to as big of a blunt instrument, but it was still there. When Mumble (methinks Dad got dropped as an egg as well to come up with that name) tries to tell the penguins what is going on, he is cast out by the leaders, who refuse to listen rather than blindly follow their faith in the Great 'Guin. I suppose I'm being a little overly-sensitive -- after all, there's a difference between religious faithful and blind religious fundamentalism, and these characters were clearly of the latter -- but I get a little bothered by the anti-religious movement, probably because it's too often I see the anti-religious use fundamentalist whackos as a springboard to attack all religion. And that annoys me even more, because I do think fundamentalists (including those in this movie) could stand a good hard hit to the head with a thick, heavy, blunt instrument.

2007-03-12

I have to lose sleep over this?

Summary of this article: economists at UC-Berkeley propose that DST provides no "energy saving benefit", by studying recent experiments with DST in Australia (instead of relying on 30-year-old data that supported the recent extension).

The most troubling part I find about the article is this quote:

In the 2005 energy bill, Congress calls on the department to report whether energy consumption drops, as hoped, after the early start of DST. If not, the bill has a provision for the country to return to the old daylight savings calendar. Under the previous law, standardized in 1986, DST began on the first Sunday in April.

So, if I read this correctly, it means if they find energy consumption does not drop as expected, they could change DST back to the prior dates, and we get to go through the whole time zone update thing again.

My guess is that most studies will find no measurable savings in energy, but the politicians will find one that does, and they'll declare victory. More likely that, than to admit they made a mistake, and oh by the way, all the money you spent in adjusting your various computer systems for the new rules was not only a complete waste, but you have to do it all again to change it back.

Last I had heard, this was also going to cause problems with Canada, as they would be out of sync with the U.S. for three weeks out of the year. However, I just checked, and it seems they are following suit. In fact, this site refers to it as the "new North American standard". I would think that, if I were Canadian, that would piss me off to no end, to have the U.S. dictate Canadian time zone policy.

But the whole Daylight Saving (saving nothing; "shifting" is more appropriate) thing pisses me off anyway. Heaven forbid people actually adjust their schedule to get more daylight time when they want it; no, we have to shift the measuring of the cosmos. I'm sure if they could find a way to actually slow the earth's rotation just to get an extra half hour of daylight, they'd pass that into law, too, with no thought to the consequences.

2007-02-01

You don't want to work here, either?

This is an excerpt from a letter I was writing to a friend who's out on a mission, with just a sampling of what I'm putting up with today.


Work hasn't changed. In fact, it's as wee-tawd-id as ever. I had to deploy a new link into Production last week. Now, you might think that adding a link to a page or two wouldn't be that big of a deal. I mean, how many ways could you screw up <a href="http://over.there.com">Go Over There</a>?

Well, let's see. Of course, they wanted a graphic to go with it. But this wasn't added to the design documents. Fortunately, this happened before I got here, so the full-time developer who actually did the work and had to deal with this "undocumented change" was ready and waiting to voice that fight. (It was disappointingly anti-climatic: "Why is this image here?" "I was told to, and they refused to update the document." "Oh, well, fine then.") But the image wasn't aligned neatly with the rest of the page. (Funny, the documentation doesn't describe how the non-existent image should be aligned.) So I got that all lined up, tested it with IE6 (no one's said anything about IE7 yet, which was just released and changes a lot of rules -- even xbox.com doesn't look entirely kosher in IE7), Firefox, and Opera, and called it good.

Then there was the requirement that this new text link (in addition to the graphic in the middle, a new text link should appear on the left) should replace this other link, not be shown in addition to it. Whoops, the developer missed that one. No problem. Go through the thirty-two files and comment out the link. (Yes, apparently, there are eight files that draw the left side, depending on what you have clicked; times four, one copy for each environment in the deployment chain.)

Gets to User Acceptance Testing. Bug gets filed about text overlapping in Mozilla. Eh? But it works in Firefox. No, not Mozilla Firefox, just Mozilla (the one that uses the old Netscape Navigator logo). Apparently the two browsers don't work exactly the same. So, I download Mozilla, view the page, note the problem, start playing with the tags to see what's throwing it off (yep, it's that non-existent image again; whole lot of work for something that shouldn't exist), fix it, and set up to deploy.

I don't know what I'll do if they find a bug in Mac IE or Safari; we don't have a Mac available.

So, we schedule the Production build. But before we go there, someone just happens to notice that there is a link missing in the secured site. (Most of the changes, including the non-existent image, were to the "unsecured" site (i.e. the login page, something they see before entering a username and password to get into a secure area), but there were a couple changes in the secured area.) What happened? Well, apparently there was a change made in production, deployed from the production maintenance branch, but that change was not added back to this development branch. Short answer, if we deployed, we would remove something that should be in production (and, in fact, is, as of now).

So we should just postpone the release until the code can be reconciled, right? Absolutely, if Marketing hadn't already published that this new link would be available. It's the age-old problem in this field. Marketing makes a promise, and we have to deliver. Fortunately, Marketing only promised the link on the unsecured site, so we could deploy that half of the project, and deploy the second half the next night.

I went home, prepared to call in at 8pm to a conference number while the deployment happens (standard procedure, get everyone involved to be present -- physically or virtually -- in case something goes wrong). As I'm listening to everyone going about their business, I learn that sometime between the time I left (about 5:30) and the deployment time, it was determined that there should be disclaimer text below the link graphic. (I've heard that came from the CEO, so it's not like just saying "no" was much of an option. And neither was postponing deployment to properly deploy the disclaimer text. Not a lot of space between this rock and this hard place.)

Ok, the next day, we get the secured code reconciled, and schedule the deployment. Since it is just a code change, this can be done mid-day (site content changes take down the site during deployment; code changes do not), and we were told to schedule the deployment for 4pm. At 1pm, we receive the final decision from a list of emails we didn't know were going back and forth all morning. The conversation goes something like this:

Business Users: What happened to the other link?

Product Manager: We removed it, per the requirements.

BU: But now people can't get to that link! We need it back!

PM: You signed off on the requirements, saying you'd give the URL to those who needed it! If you want it back, it is a change to requirements. So what do you want?

BU: Put it back.

So, I make the change, restoring the link in the thirty-two files that I had to remove because it said to in the requirements. So it's almost 2pm. We have a deployment at 4. I check the files in and request an immediate deployment to Test and UAT to get it ready for deployment. That goes something like this:

Project Manager: Get this out there immediately!

me: Get this out there immediately!

Source Control Management: Where are the release notes?

me: They need release notes.

PM: Forward on the email.

me: Here's the email.

SCM: These are emails, not release notes. I'm not deploying.

me: They won't accept this.

PM: (creates a change request) Here's the ticket number. Use that in release notes.

me: (creates release notes) Here are release notes.

SCM: (has gone home for the day)

At least now I know what a ping pong ball feels like.

This was the point where I let the PM talk to the manager in SCM and "let the grown-ups talk". Having me run back and forth wasn't doing anybody any good.

The weekly deployment meeting, which happened to be the next day, was entertaining as well.

Source Control Management: You didn't follow procedure.

Full-Time Developer: What procedure? We've never had this restriction before.

SCM: It's common practice.

FTD: What common practice? This is all new to us!

SCM: How did you get it deployed anyway? We didn't stage it for production, just test.

Deployment Manager: It was the same set of files; we didn't need a special stage for production.

SCM: You're supposed to get it from us. Otherwise, what's the purpose of SCM? (obvious pouting in tone of voice)

DM: SCM is supposed to be available for deployments. You went home!

SCM: My boss told me to go home!

All this for a stupid little link.

Did I mention that the project manager mentioned they were looking for full-time .Net programmers, and that she had mentioned this to the account manager about my status (contract to hire or not, and when I'd be available to hire)? She said she had no power to make any offers, but she was talking to me as if the offer would be coming. It was an effort not to laugh out loud. My poker face must be better than I thought, or she's just good at ignoring facial expressions. (Probably the latter; she's one of those who, once she gets talking, there's no stopping the locomotive.)

Hmm. You know, it's just possible that work would go more smoothly if they didn't randomly decide to take the database down for the day to "reload data", during the day, with less than a half hour's advance notice, sent only to a handful of people who don't seem able to forward that information to those of us trying to work within that half hour.

6 November

Back at work. Checking email. Hmm, a defect, let's see. This link doesn't appear on this form. Let's look up the requirements. Ah, link is "TBD". Well, I suppose if they want to see a link there, I can put it there, but somehow I don't think they'll like "TBD" as the target.

What else? Ah, a message from my PM, asking to please send the results of a test I was asked to run on Friday. I guess I'll reply, and attach the test results I sent to him Friday afternoon. This man is the master of chaotic management. How anything gets accomplished, I'll never know. But it probably fits with the rest of the company, which is likely why the other huge project of which I actually wanted to be a part is shutting down due to lack of progress. Lucky. They all get to move on to new projects, and I'm stuck here through Q1.

Oh neat. The DBAs decided to take our development database offline. Funny that I only hear about this decision in passing from one of the testers.

And I seem to be the designated release manager for the development team. And part of that is just "knowing" when code should be deployed.

Oh yeah?

I have put a fresh build on DevInt and have requested the move to System Test at 3pm. I will send out an email when I hear from ITSWS that the move has completed. When I receive confirmation that everything looks good on System Test and everyone approves deployment, I will schedule the move to UAT.

Thanks,

Want to take bets on how many people take notice? I can bet on one, only because he complains about process and lack of communication more than I do. And he has about as much power as I do to make people actually listen.

7 November

Ok, I've officially decided that I really dislike this job. When it's not even 9am and I feel the need to smack somebody, then something is definitely wrong. Apparently, two of the pages on their site are really serviced by a completely different provider at an entirely diffrerent URL. So the project we have that changes the header for the site isn't working on these other two pages (gee, imagine that). I raise the issue to those who might actually have the authority to coordinate, and after their emails go down a completely different tangent and I spell out the problem (and the possible solution on their end, since we have no control over their code), I suddenly receive no emails.

And this morning, they want to know when they can expect to see it working. "How about, after it's fixed?" I want to shout.

Incidentally, this is the same project that the Microsoft consultant put together. I seriously doubt he had any more knowledge about these two pages and how they work than I did up until yesterday, so I'm not saying it's his fault at all; I just find it an... "interesting" coincidence.

Wow. And it just keeps getting worse. For me to even attempt to give a play-by-play of what is happening now, putting the proper context around it, would be an exercise in futility. But in an quick summary: the release management person who was pouting back towards the beginning of this letter, is again deciding he won't do a release without a detailed description of every file that was changed; the tool that the Microsoft guy wrote to deploy SharePoint lists has a serious flaw in that it builds an XML document by simply concatenating user-entered strings (want to guess what happens when one of the user's values has an "&" in it?); the resident architect said to fix the problem with the images on the external site, all we need to do is send them the logos, because otherwise we have to pay them to update their code (note that (1) these logos are uploaded by users, so it'll be a changing list that now we have to somehow maintain across two systems, and (2) it won't magically fix the fact they're putting the URL in the WRONG PLACE); and the testers are all wondering why the latest updates haven't been deployed yet, and when that will happen.

And it's only Tuesday.

2006-12-05

The arrival of 3.0

I've been leaving work at 4:30 lately, because that's the end of my 8 hours (being a contractor, time is very key in my day, and overtime is generally not encouraged unless it's needed, which I understand) and with my wife needing extra help at home, leaving at that time I can usually beat the worst of rush hour and make the drive home in about 20-25 minutes.

Today, I had lunch with a couple buddies, and since that took billable time away from my day, I decided I should try to stay later today. Called the wife at about 4:30, everything was fine at home, told her I'd be a little later.

At 5:05, she calls me to tell me her water broke. I leave work immediately, cursing the time and the traffic I know I'm about to hit. She goes to call the doctor and a friend who would watch kids 1.0 and 2.0 while we booted up 3.0.

At 5:35-ish, she calls to check on my progress. Which is minimal. She is in labor and contractions are several minutes apart. She tells me she is going to lay down and see if the contractions ease off, while calling her friend and seeing if she can come and get the kids. I drive the rest of the way home gripping my steering wheel in a rage, mentally beating the other drivers on the road into a bloody pulp (especially those who feel like they have to come to a near stop because of a cop, who has someone pulled over, not on the street on which we're driving, but on a SIDE street).

The friend comes over with her kids, sends all four of the kids to the basement to play, and refuses to leave until I get home.

Nigh unto 6:00 (for those keeping score, that's nearly an hour for a 25-minute drive), I get home, swearing up a storm (which, for me, is not usual behavior). I find that the friend is on the phone to 911, with my wife in heavy labor. The baby is coming; driving to the hospital is no longer an option. I throw my backpack across the room and begin running all over the house, grabbing a few dozen towels from the linen closet, helping the wife get undressed, trying to find things that the 911 operator is telling the friend to find. (At one point, I was asked for a thick shoelace. Not sure why, but I was incredibly frustrated to find that none of our shoes even have shoelaces! Except my own tennis shoes, which I couldn't seem to find at the time, of course.)

While friend is helping wife get through the next couple minutes, hoping the paramedics arrive quickly, I grab my wife's cell phone to call her OB. Of course, she hasn't kept it charged, and it was near empty. Enough to call, though. I get the recorded greeting, which I can't quite hear with the depleted battery and trying to run around on the emergency medical scavenger hunt, so I'm not sure what buttons to push ("If you need <something something>, press *70", etc.) until I hear what sounds like "To talk to someone immediately, press 0". I press 0. Couldn't have been less than five minutes later (which of course seemed like an eternity), someone FINALLY comes on the line. I can barely hear her, so I'm trying to tell her that we're already having the baby, fire department has been dispatched, we'll be at the hospital when we can. I think she tried asking a couple questions; to be honest, I don't know if I answered them or not; I could barely hear her anyway.

Finally, as I'm off to find a nose sucker (which we actually have and I actually knew the location of), the baby is delivered. Within a minute, the paramedics arrive and check everyone out. I find another room and break down in tears, cursing myself for staying late, cursing myself for not getting home fast enough, cursing myself for not being with my wife instead of running around the house trying to find what is needed (and generally being ineffective at that).

Anyway, wife gives friend keys to the house (bags for the kids are already packed), friend offers to lock up when she takes the kids to her place for the night, wife leaves for the hospital in the ambulance, and I follow a few minutes later.

I get to the hospital, make my way to Labor & Delivery, ask for my wife, and she's not there. But they got the message and led me to the room where they were expecting to put her. I sit there wondering how in the world I beat the ambulance to the hospital, until she arrives in the next ten minutes or so. (Turns out the ambulance driver had never been to this particular hospital, missed the exit off the highway, came back, got to the hospital, unloaded my wife, realized they were at the wrong entrance, loaded her back in the ambulance, drove around to the emergency entrance, unloaded her again... Kind of amusing, especially since there was no rush at that point.)

But I'm very thankful to be able to report that everyone is doing just fine.

2006-06-12

We missed the whole first trimester?

My wife has been really late with her cycle this year. Normally, she's pretty irregular and long anyway, but after a couple months, she decided a pregnancy test would be prudent. She ended up buying a pack of 3 and used one. Result: Negative.

A few weeks later, she was feeling a little nauseated, had some other possible-pregnancy symptoms, and still no cycle; so she used the second test. Result: Negative.

Now, she had put on quite a bit of weight over the past couple years. We figured it was probably her body telling her it was well past time to do something about that. So, we both started dieting (as I have a few pounds I could do without, as well). Her low-carb diet started with a two-week "boost" period, where everything was limited to an extreme, only to be brought back to normal more slowly later. The nausea was especially bad at this time, but she figured the diet was really stressing her body out. When the nausea persisted for the third or fourth week, I started pressuring her to call her doctor, as that's a long time to feel sick. (She's as stubborn as most men when it comes to seeing a doctor.)

So, Sunday, she decided maybe she'd try the last pregnancy test. It had been six or seven months by this point. Result: Positive.

So, at last, she made a doctor's appointment (although instead of her general practitioner, it was an obstetrician), and they did a quick ultrasound. The size of the baby surprised both her and her OB. Estimated age: 12 weeks. She's scheduled for a full ultrasound on Friday to get more definite measurements, but it seems that the first trimester has already come and gone before we even knew it.

Near as we can figure, we conceived almost immediately after she used her second pregnancy test, back in late February. At least now we know why she's been so consistently nauseated.

Addendum: A full ultrasound and measurements estimate the baby's age at 14 weeks, with a due date of mid-December.

2006-05-29

Don't forget your parka.

This weekend was my first long-distance trip in the hybrid. My good friend Spencer is having his missionary farewell sacrament meeting. A great excuse to go to Utah for a weekend. Denver to Salt Lake. Approximately 550 miles. I should be able to do that on one tank of gas.

So I'm packing clothes and such for my trip. Weather in Denver has been in the 80°s. Short sleeve shirts should be fine.

Fast-forward a bit to the trip. I didn't quite make it on a single tank. Going across Wyoming, I hit a lot of wind. Strong winds blowing from head-on to crosswise. I averaged maybe 34 MPG across Wyoming. Not horrible, but certainly nowhere close to the 50 I was boasting.

I noticed on my way that the temperature started dropping. Maybe I could've saved a little fuel if I turned off the A/C and opened a window. Unfortunately, the temperature drop was accompanied by rain, all the way to my in-laws' in Kaysville. When I got close, I decided to fuel up again, so the next morning I could make it to southern Salt Lake without any worries. I open the door and it's BITTER COLD. The gas pump wouldn't read my credit card, so I had to pay inside. A TV behind the counter is talking about the weather, announcing a SNOW ADVISORY for the foothills. WTH?! (Please note the second paragraph, above, for a further clue of why this is a problem.) Up until this point, my car was running the A/C to keep the interior of my car cool. After the air exchange getting gas, it was now running the heater.

After staying overnight at my in-laws', I got ready to drive south, watching the weather go from simply overcast, to rain, to hail, and back. And still cold. My father-in-law offered me a jacket, but I declined. I was planning on leaving for home straight from Salt Lake, and I was going to be inside anyway, right? The drive down wasn't too bad, although there was one instance where a cop car with lights on was going 35 in one lane of traffic -- and all four lanes were keeping pace behind him. ??? It's really annoying when the sight of a cop makes people slam on their brakes and suddenly go 10 MPH under the speed limit, but this was the most extreme example I've seen in a long time. Utah drivers. Sheesh.

I ended up getting to the church about 45 minutes early. I'd rather over-estimate my drive time than under-estimate. I thought the weather would have more of an effect on the commute, but perhaps the fact that it was Sunday in Utah made up for it. As I waited in the parking lot, the hail came down again. ::shakes head::

Sacrament meeting was awesome. The opening hymn was Let Us All Press On, one of my favorites. Spencer's talk was great, too. It was ::consults thesaurus:: wonderful to hear his testimony. Despite the lack of micromanifestations and an explanation of his albino East Indian appearance, it was worth the trip. And the closing hymn was God Be with You Till We Meet Again, and the organist stopped playing during the last chorus, so we sang that a capella. WAY cool.

After sacrament meeting (apparently blowing off Sunday School and Priesthood/Relief Society is some kind of 7th Ward tradition) was food and stuff at the Bagley home. Outside. Once again, I refer you to the paragraph above. I got to meet some of Spencer's friends, who were all pretty cool. They didn't seem at all put out by having a 33-year-old in their midst. Unfortunately, during that time, I ended up dropping my laptop on the Bagleys' tile entryway. The corner of the long-life battery that sticks out of the back for an inch or so took the full force of the impact. Fortunately, the laptop itself was undamaged. The battery case is cracked, however. It appears to be working still, but I think I'll be getting a replacement, just in case.

The drive home was better. There was a lot less wind, and it was more behind me than in front of me. I averaged about 54 MPG on the return trip. I was listening to the scriptures on the way home, sort of. To keep myself entertained, I was doing a little MST3k. I'm sure that requires a talk with the bishop. It was made worse by the fact that I had Skeletor saying "And he prays!" stuck in my head. (To preserve your sanity, don't click here -- thanks, Allison.)

I got home at midnight. The temperature was 61°, which was the warmest temperature I'd seen since first crossing the continental divide in Wyoming the day before.

I did record Spencer's talk and take pictures at the reception thing, for all posterity:
TALK mp3  warning – slow link
PICS:

2006-04-30

Ok, so I do want a 360.

So, my wife looks at the entertainment center one day and says, "I think a 360 could fit in there."

Yeah, I know, I wanted to completely replace the old Xbox, I wanted to wait for all the bugs to get worked out of the system, I wanted to wait for everything to be compatible. I wanted to wait for the first price drop, and for a lot of games to be available.

But I gave in. I took my birthday money, went to Best Buy, and bought one. And yes, the 360 fits just fine on top of the Xbox. And yes, it is a lot of fun.

And not a month later, they announce the first major hardware revision, that will make the 360 run cooler and with less power than the original. Oh well. I suppose if it's that important, my 360 could have an unfortunate "accident" and need replacing. (Best Buy product replacement plan. Sometimes it seems too good to be true.)