Jeff and .NET

The .NET musings of Jeff Putz



My Sites


November 2008 - Posts

Xbox support is completely useless, my console is dead
Like so many other lucky folks, I have the red ring of death. And just in time, I suppose, since the warranty extension ends for me in January.

But I have to add my story about interacting with support the way everyone else does, because Microsoft really needs to be held accountable. The trouble began when I tried to open up a repair request online. It simply wouldn't let me, and told me to call. So I did, and that's where the failure continued.

I speak with what I call the "American broadcaster" English accent, in part because I started my professional life as a broadcaster, and in part because that tends to be the way people in my area speak. We all sound like news anchors! So why is it that these voice recognition phone systems suck at understanding me? They never get it right. I had the same problem last week with the dining reservation system at Disney World. Admittedly, it was comical that phone voice guy is made to try and sound vaguely hip, answering with a "hey" instead of hello.

What's even more amusing, at first, is that the guy at the call center in India is apparently instructed by his scripts to use the same casual hipster tone. It's hilariously bad. Anyway, at first he did the necessary check to see that it was the console and not the power supply, and then tried to put in a repair order. That's when things made another turn for the worse.

For whatever reason, they could not "validate" my address, and couldn't create the order. I've been getting mail and UPS packages here for seven years, so I'm pretty sure my house exists. So he asks me for an alternate address. What does that even mean? I'm out of work, so it's not like I could send it to a workplace. I tell him, no, I don't have another address, so figure it out. He comes back and says he can't do anything about it, I tell him to find someone who can. He tries to get rid of me again, so I tell him to make something happen. At this point, 30 minutes have passed, and I'm getting pretty pissed off. He comes back again and tells me to call back in a few seconds because "my system is updating and I can't generate a repair order."

This is the point at which I go ballistic. This jerk has been trying to get rid of me and I start dropping some four letter words. I've been patient as hell and he's not doing anything to help me. I tell him someone there can call me back when it's convenient for them, because I'm sure as hell not going to sit around on hold again like this. He very nearly hangs up (and I guess I would too, what with my sudden aggressive streak), when I ask him to put me through to someone who can actually help me.

Supervisor guy is just as useless, and wants nothing more than to get me off of the phone. I'm too pissed to be constructive at this point, so I hang up and accept that I just wasted 40 minutes.

I go back to the online request mechanism, and what do you know, now it works, which makes me wonder if they did something after all. I have a UPS tag and I'm sending it away.

I've been relatively apologetic about the high failure rate of the consoles, because aside from this I think the 360 is a pretty great system, especially with the NXE interface. The online service, Arcade and the developer farm system with XNA is brilliant. But support is still shit. I still can't use my real name on Xbox Live because it's a dirty word in their eyes.

In a lot of ways, the Xbox kingdom at Microsoft is representative of the company at large. Even within a specific division, there are these great wins just oozing with awesomeness, while some other area fails completely. It's like Xbox 360 vs. Vista, or Visual Studio vs. Hotmail. Sometimes it's amazing to think these products come from the same company.
Parallels Desktop 4.0 released

Parallels Desktop 4.0 came out today, and although 3.0 was working fine for me, I decided to upgrade right away after reading some initial reactions. At $40, it didn't strike me as a horrible expense.

The first thing that sold me was that it finally supported multiple CPU's. My Mac Pro has four, so naturally I thought it'd be nice to give my Windows XP VM a little more processing power. There's actually a setting now to let the app manage resources for you, but I'm not sure I entirely trust that. Regardless, the usual combination of Visual Studio, SQL Server and such is visibly a little more snappy. I notice ReSharper Intellisense acting faster in particular.

With the initial reports of some speed differences, I admit that I had a silly desire and hope... that RollerCoaster Tycoon 2, in all of its 2002, sprite based assembler glory, would run more smoothly. Before, it was very choppy, almost to the point of not being fun. But what do you know, it runs better than it ever did on my PC's of that era. I'm pleased.

Apparently the upgrade can potentially hose shared Boot Camp/Parallels partitions, but I don't have that setup. So I'm pleased with the little tweaks. The UI is prettier too. The whole product feels more polished.

POP Forums v8 released

After it has been running for nearly a year, and with parts of it rewritten in that time span, I've decided to release POP Forums v8 into the wild and see what happens.

So what's the delay, and what's my problem? Well, there are three issues that have made me unsure about releasing it into the wild.

The first is that I'm not sure what to do with it. Do I sell it, give it away, sell support services... I wasn't sure. Remember that this is an app that I've always built for my own use. Trying to package it up for others makes it more complicated, as you start second guessing how it might be used. At the end of the day, I decided I'd let it go, code available for download, and a request for $95 if you want to use it in production. Honestly, if I sell once license in a year, that's good enough for me.

The second problem is one of code worry. I've got 12,000 lines of code that has been written on and off for the past four years. Some of it is good, some of it is not. By putting it out there, I'm subjecting myself to public code review. At the end of the day, I realize that's probably not a bad thing. Besides, it is what it is. I'm not expecting to make a living from it. It is funny though how internally you'll let some things be suboptimal or a little messy, but the moment you have to show it to someone else you bring yourself to a higher standard. God knows I wouldn't write any of it today the way I did four years ago. I've never really spent a lot of time trying to invent a smooth installation process either.

The biggest issue has always been time. That became less of an issue when I got laid-off in July, and enjoyed a good ten weeks of "me time." When I rebuilt CoasterBuzz around v8, I realized that it was a pretty good app that was meeting my needs. Even if I can't extensively support it or do new builds and features every day, it may still have a great deal of value to some people. It makes sense to get it out there.

So there it is. This app, in its many iterations, has been with me now for nine years. It has always been a little ahead of what I needed, and an odd combination of my skill levels over that entire time. I'm confident in what it can do, and I hope that there are others who find it useful as well.

LINQ to SQL: Me too on the "Huh?"

OK, so admittedly I've questioned the usefulness LINQ to SQL, but I'd never stand up and say that it's gotta go. What was really said at PDC? Sure, the entity framework sounds super (I say "sounds" because the write ups for it on MSDN are terrible, and the very few books on it haven't been released yet), but why would you stop supporting something that is so obviously gaining momentum and fandom?

My experience with it is that it's great for simple use and prototyping. The LINQ to SQL class designer is probably the only thing I've ever used to drag-and-drop in Visual Studio, ever. Would I use it in the average corporate setting? Not likely. Heck, I'm not even using it in many personal projects. But it has a lot of great use potential, especially for the one-off line-of-business nonsense that is at the core of so many smaller businesses.

As Chad says in his post, why would you throw this away with a bunch of other things constantly coming down the pipe with varying degrees of adoption? How could you in good conscience throw away a pretty OK solution (I realized it's not perfect), when you've persisted the most evil and wretched construct in the history of programming, the DataSet, for seven years! (Seriously, talk about epic bad drag-and-drop craptastic constructs!)

And yes, the bigger problem is the fear that you're going to ditch something for something else every couple of years, and that's the Microsoft way. People outside the .NET developer community already have that perception, so let's not make it a reality. That kind of move makes you gun shy about adopting anything new. And then we're stuck with DataSets again.

The remedies are: 1) Leave LINQ to SQL in the tool box and 2) Somebody write something that makes sense about the EF and I'll be happy to use it.

On the market... again, and the perils of job hunting

Well that didn't take very long, did it? New gig, no work, back to the streets I go.

I kind of saw this one coming, and I was already looking. I've done one interview already, though the company is concerned that I'm over-qualified. I know that's HR speak for, "Likely to get bored and leave," but I guess I would trust employers to some degree to let the candidate decide that, especially when it's a sellers' market, as it is here. Regardless, quite the opposite of the prior interview to this last job, where I was not qualified enough. I feel like I'm in some kind of limbo!

The problem, to me at least, with the current market is that there are a lot of jobs unfilled, too many even, but they're almost all pursued via staffing agencies that don't add any real value to the employers or workers. The vast majority want the commission. I'm not joking when I say that one particular gig has been pitched to me now by 20 different companies. And when you work through them, you may get $60 per hour while the agency gets $40. On a six month job, that means the staffers get around $38,000 for finding you on Monster and setting up an interview. That's insane.

Where I've been happiest and engaged was at any company that made something for itself. In most cases, they did the hiring themselves as well. I'm starting to wonder if that means that there are actually two job markets, the one that I've been complaining about, and the one I'd like to be a part of. If so, I don't know if that's as great of a market right now.

It's probably time for me to get serious about work in Seattle or Orlando and look for the good companies that will relocate, or telecommute at least.

C# dynamic: A bad idea?

It seems like the most talked about thing on the street for code monkeys coming out of PDC is the introduction of dynamic typing. I'm trying very hard to understand why this is a good idea. Nikhil Kothari makes a good case for it interacting with Javascript from Silverlight, but that strikes me as a fringe case. I guess there's a part of me that is curious to know if this came out of a science project or actual customer need.

With all of the mucking around I've done in Javascript the last two years, given the various AJAX frameworks, I can't say I'll ever be particularly happy about the lack of real types. It's just such a pain to debug. And in C#, ever since the invention of generics, which still clue in the compiler and Intellisense, dynamic typing seems even less useful.

Maybe my biggest fear is abuse. While I've worked in very good shops with solid code review practices and some decent ground rules on coding standards, I've also seen the crap out there. I still cringe at things like DataSets and DataAdapters.

Perhaps my fears are unfounded. I thought using the var keyword was a recipe for death, and now I can't imagine not using it. In the mean time, it'll be interesting to see the various computer science geeks debate this one.

More Posts