Archives / 2008
  • The role I've been looking for

    Last week I started a new job in an architecture role with a small company that does mostly marketing Web sites for some brands you absolutely know. I'm not sure yet if I should say who they are because I don't want to presume to speak for them in any way. Regardless, I've been looking for a position like this for a very long time.

  • 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.

  • 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?

  • 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.

  • Launching QuickTime movies in the player using ASP.NET AJAX framework

    As my dearest friends know, I once existed as a broadcast monkey prior to my life as a code monkey. It gives me great joy that it's finally at least somewhat practical to deliver short-form high definition video via the Internet, even if it is only a couple of minutes at a time. That said, the best bang for the buck in terms of compression is easily H.264, encoded by way of QuickTime. Flash can actually play these files, but it's not practical to do it in-browser when you're talking about something that's 1280x720 or 1920x1080. That's probably why Apple spawns the movies in the player itself. It's a pretty seamless experience, and since "everyone" has iTunes, "everyone" has QuickTime. (If you want to get into some stupid religious debate about this, please, do it elsewhere.)

  • Three-hour marathon interview

    I had three hours of phone interviews today with people from a company I'm very much hoping to work for. That was crazy. It's not any less exhausting doing it by phone. You start to get tired of talking about yourself.

    But I think it went pretty well. The last time I had that kind of marathon was in Redmond. This was a lot different, because these guys seemed genuinely interested in what I was about and what I had done. That's a far cry from Microsoft, who seemed more interested in trying to stump me or give me puzzles to solve. I'm more and more convinced that's mostly useless in assessing the ability of your subject. I felt like it was OK to simply say, "I don't know," when there was something I didn't know.

    From what I can gather, said company is doing some really cool things in the near future, so I'm crossing my fingers. This is the first time in a long time that I've felt pretty good about what a company does, and what it stands for. I'm crossing my fingers.

  • Career: Ninja or super multi-functional

    In my self-employed "summer vacation" without a standard day job, I find myself working on things that I'm interested, a luxury you obviously don't get whilst working for The Man. Some of it is naturally for the now five-years-old CoasterBuzz, which is an embarrassment of a site for me to look at (despite its continued financial success). What I've been into is AJAX stuff, building controls of all things. Every control I build is easier than the previous, and I find myself feeling ninja-like around the AJAX framework. I really enjoy working on this stuff.

  • Microsoft documentation fail

    Before it sounds like all I do is complain, let me first say that the advances in C# 3.0, along with LINQ and ASP.NET AJAX, have made programming more fun than ever. I've spent a lot of time lately using all of this stuff on my own projects, and I'm having a great time. I'm going to make some lucky employer very happy (or annoyed because they're still using v1.1).

  • ASP.NET AJAX: Moving target

    Working with the ASP.NET AJAX framework has been fun. I think the basics are well covered for the most part, and beyond that, your imagination can likely come up with some really interesting UI.

    What's frustrating, however, is the way it has become a moving target. There's the original release, 1.0, as an extension to ASP.NET v2. Then there's v3.5, which comes in .NET v3.5, which includes ASP.NET v2. In the background, we had the "futures" package, and now the forthcoming v3.5 SP1, which has better a version of the history control, so don't use futures. Oh, and the roadmap for v4 was more or less recently released. It's madness. (Oh, and the documentation on MSDN, linked to from the old v1.0 docs, is poorly organized compared to the old stuff.)

    So if you're a developer trying to get up to speed, where do you start? What's really important? For me it's easy, because I do independent stuff that interests me, and I happen to be between regular day jobs. I've been pretty focused on v3.5 and doing useful things with it, like a Facebook-esque auto-complete list (puts a "token" representing a data item in the box that you chose via auto-complete).

    In the corporate world, adoption of anything new is slow. This makes me wonder... who are the people using the latest bleeding edge stuff, and why? Sure, they're the bloggers and authors and such, and the new open Microsoft is getting their feedback, but are they the right people? There are a whole lot of smart people involved, but I wonder if the chaos of versions and service packs and futures and community driven stuff are well connected. (The ControlToolKit's ReorderList control throws script errors in IE of all things for me, which doesn't instill confidence.)

    Sometimes it's hard to just focus on what you have in front of you. I guess with all of the excitement over various pieces of the framework, the latest being the MVC piece, I worry that there is so much going on that there is risk for ASP.NET to become a convoluted mess, and that would suck.

  • The book that started it all

    In order to make some room for my own, more current books, and try to free up more space for Diana, I've been going through my old books and making a stack to ditch or give away. Computer books get so hopelessly useless over time. I came across one book, though, that I've decided to keep, just for nostalgia...

  • Any bets on whether or not JavaScriptSerializer will really be obsolete?

    Anyone who does a bit AJAXy goodness knows that it's nice and easy to transport simple objects and arrays back and forth to your server as JSON pieces. And hey, if you're doing it right, trying not to be uber chatty and keep it all zippy, you probably aren't doing anything that complex in terms of the objects you're shuttling around.

  • Lingering thoughts about the Microsoft interview experience

    It's strange how a number of different posts on my blog get comments practically every day. The big ones have to do with the failure of US education, my HP laptop from four years ago with the broken power jack, Xbox Live support sucking and the entire app/page/control event cycle based on pre-beta ASP.NET v2. A new one has become my post on my experience interviewing at Microsoft.

  • Microsoft interview fail

    Well, I don't have to worry about moving to Seattle, because Microsoft is not making an offer. So now that it's all in the past, I feel like I can talk a little more openly about the experience.

    I won't say which group it was that I was approached by, but I will say that it was not one that I expected. My expertise is largely in the ASP.NET space, and this was a PM gig definitely not in that area. It was initially pitched to me as being heavily related to my experience, so I figured, sweet, I could totally do that!

    The job was actually posted after that, and the written description was a little different than I expected. But still, this was Microsoft, and there is certainly a lot of opportunity there in the bigger picture. And did I mention they were footing the bill for the visit?

    My first interview was actually with one of the .NET PM's, which was cool because I felt like there was more to talk about there, even though I wouldn't be working directly in his group. We talked about how I'd handle a crisis with regard to shipping something, and I gave my best strategy based on my limited knowledge of the organizational structure (it was based on a real problem I'm not allowed to talk about :)). He also gave me a coding problem, which was surprisingly hard to get my head around without Visual Studio. I'm a refactor-until-it-works kind of guy, and boy do I realize that now! But it was still a fun exercise.

    The second interview was with a senior PM in the group I was interviewing for, and that's where my impression of things started to change. The conversation was all over the place, which perhaps was a symptom of going out for lunch. I started to also get the feeling he was very disinterested in me. That's kind of intangible, but I kept getting the feeling I was inconveniencing him in some way. That really put me off. Checking e-mail and using his mobile device while chatting put me off even more.

    From there, he asked me some very vague and abstract questions, leading me in kind of random directions. I know from reading other interview accounts that there tend to be a lot of complex scenarios thrown at you, but they're defined well enough that you can make actionable responses. This was not one of those. I asked a lot of questions, but I wasn't getting what I needed to make any kind of intelligent response. It's like someone asking you, "How would you make something?" It depends on if you're talking about software or woven baskets!

    The third interview was better, but again with the e-mail checking or whatever. Come on, man, I had to come 2,000 miles for this! If you can't do me the courtesy of listening and learning about me, it's really hard to sell myself! I was really put off by that, to the extent that I started to feel like this wasn't the gig for me. Honestly I was so excited about coming to Redmond that I never even synthesized that as a possible outcome. I left the building feeling really let down.

    Not surprisingly, I didn't get the gig. I think the position itself was a mismatch for my background, and that was the first issue. The second is that the quality of the interviewing wasn't particularly good (except for the first guy, who I wouldn't be answering to anyway). I've had far more vigorous interviews that did a better job of assessing my capability.

    Now that I've had a couple of days to think about it, and have a sort of closure with the non-offering, I think I have some conclusions I can draw. The first is to remember what I learned years ago with meat market recruiters who put me places like Progressive (the worst consulting gig I ever had), in that it's a good idea to understand for yourself if the position is right for you in the first place. Just because it's Microsoft calling doesn't mean that the gig is right. Duh.

    Second, while I was disappointed with the experience, it's not a reason to write off Microsoft as a whole. My experience as an author, and as a customer needing a little help, has been awesome. Heck, it has been better than awesome. There are a lot of very smart and passionate people there.

    Is there a big job change in my future? I'm not entirely sure. As I said before, I wasn't actively looking as much as I thought it'd just be a good idea to be on the radar in Washington. It helps to understand what your worth is every couple of years and evaluate if you're getting what you want out of your current job.

    Bottom line, the experience was worth it. And visiting my future brother-in-law and his family was certainly an awesome perk.

  • Interviewing at Microsoft

    So by now it's probably pretty obvious that I interviewed at Microsoft. Truthfully, I haven't been looking for a job, and I tend to like where I'm at right now. That said, I had a series of casual conversations with various people at Microsoft, and out of the blue I got a call asking me to come interview for a program manager position.

  • Anatomy of an ASP.NET site for amusement park fanboys

    This is a post I've meant to write for a very long time. Since 1998, my part-time job of sorts has been to maintain a number of community sites. One of those, started ten years ago, was Guide to The Point. "The Point" in this case is Cedar Point, an amusement park an hour west of Cleveland and about two hours from Detroit. It's home to more roller coasters than any other place on earth, and for people how grow up in the region, it's a summer ritual. In 2004, I joined forced with a friend doing another site, and we called it PointBuzz, inspired in name by my woefully neglected general coaster enthusiast site CoasterBuzz. These sites have become a business to a certain degree, since the ad revenue isn't exactly small coin. And if you can make money doing something you enjoy, why not?

  • Video, Flash and Silverlight

    I've been having a good time messing around with video this week, even though I haven't been able to commit a lot of time to it. As I mentioned before, it's a little frustrating that I essentially have to relearn Final Cut Pro shortcuts and such over and over since I don't do it enough.

    Being a former broadcaster with the salary of an in demand programmer has really allowed me to stay in the loop with video gear and own "real" HD gear. (I have a Panasonic HVX200, for which the major expense is the solid state media.) It's funny how I've thrown a lot of convention out the door with regards to how I edit, since you're not constrained by the "package" mentality of broadcast news. Especially when you're dealing with fanboy type content, you can go with nice long cuts of stuff they just want to see.

    In any case, I've been a QuickTime fan for many years. Back in the day, this was because the Sorenson Pro codec was easily the best in terms of quality. Then H.264 came around, and I declared it as the future years ago, back when most computers didn't have the nuts to even play it back.

    These days, the action has been in Flash, for the obvious reason that it's so universally available. The recent adoption for Flash to playback H.264 QT movies makes it a total slam dunk for me. The primary benefit is one of work flow. It's easy to export these from Final Cut Pro very quickly.

    I've started to play with Flash, the authoring application, to try and hack out a slightly customized video player. As an IDE for writing code, it absolutely sucks. ActionScript is not terrible, but I kept hitting obstacles in trying to get moving. So many articles online are behind subscriptions, and the documentation isn't organized very well. I'd kill for Intellisense.

    Silverlight v2 has a lot going for it, though I haven't had any time to mess with it. I've barely touched Silverlight v1.x. Assuming that adoption skyrockets with the Olympics, I can see moving toward it for a lot of different reasons. Aside from being .NET-centric, the server-side of things have a lot of appeal. I remember the demo for the media server at Mix where they showed how you don't have to stream out the entire file too far in advance when there's potential that part of the video may never be watched. That's awesome stuff. The price is right too (free).

    The only big negative to Silverlight as a video platform, for me, is the work flow issue. I can't quickly and easily get the video there out of the tools I use, and these are tools that the bulk of people in the field are using.

    When I stop to think about it though, I left broadcast about nine years ago, and it's still not quite where I thought it would be with regards to video on the Internet. I mean that in terms of quality, which is no longer a function of CPU power, just bandwidth. Hopefully the US can catch up in that regard.

  • Twitter and more disconnection

    It's weird how bloggers, gossip types and "Web 2.0" company founders and execs have developed into this strange pseudo-celebrity sphere, where many of them are constantly stroking each other. What's unfortunate about it is that the podcasts, blogs and other media I've consumed from the tech world are becoming hopelessly out of touch.

  • "Gonna go ahead and..." Please, stop!

    For the love of God, please, if you do screen casts or live demos, please try to let go of the "gonna go ahead and" verbal crutch. I've noticed countless people who otherwise do amazing demos in person and in video screen casts say this over and over and over and over and over and over (see, it's annoying!). Aside from being Lumburghian and said to be made fun of, it's a huge distraction. It's much, much worse than saying "um" over and over.

  • Observations on VS2008, .NET v3.5 after four months

    Wow, can you believe the new versions have been with us already for one-third of a year? Time flies! I launched a site using the new versions shortly after release, so I'm happy to say that my experience in production has been mostly positive. Here are some loosely coupled thoughts...

  • Leo Laporte and TWIT are getting out of touch: "Web developers don't like Microsoft"

    I was listening to TWIT #136 and, wow, Leo Laporte is totally out of touch. Patrick Norton is not far behind. Listen starting around 36:30. I've found that lately these guys are hanging out in Pundit Valley and completely missing what's going on in the rest of the world. He's actually got the balls to suggest that Web developers don't like Microsoft, and that believing in Silverlight is akin to drinking the Kool-Aid®. Had Leo actually gone to Mix08, I think he'd feel differently.

  • Mix08: Some overall impressions

    I've got two more sessions to go, but while it's fresh in my mind, I'd like to rattle off some overall impressions of this conference. When it's over, I'm going to purge my brain with alcohol, gambling and shows.

    First off, what I dig about this conference is that it's very diverse in its content and target audience. Most conferences are endless code demos that make you want to kill yourself. I consider myself a well-rounded person who enjoys the code, but also the creative side, the business and the culture.

    It also has a bit of a rock star vibe. In addition to Microsoft execs being here, you get the authors of the books you read, "Web 2.0" (I hate that term) types behind major sites changing the way we use the Web, and people everywhere who might build the next big thing.

    And there's something I haven't really touched on, is the conversations in the halls and at meals. Ballmer mentioned that you can get the whole conference, essentially, online, but that's not entirely true. The people you meet are a huge part of what you get out of it. I mean, I met a guy who works for Oprah's studio rolling his own media management software. How cool is that?

    Silverlight is obviously a huge deal at this conference, and for good reason. I admit, I'm drinking the Kool-Aid now. It probably has zero application to my day job, but it's fascinating to me. The very clear separation of code and presentation is exactly what I wish Flash did. That, and I wish Flash used C#.

    This conference is a good blend of now and future. There really isn't anything here that is pie-in-the-sky future porn. Yes, there's a certain level of Microsoft centricity, but that's to be expected since it's their conference. And as a Microsoft developer, I don't mind. Unlike some of the local events though, they're not pushing crap I don't care about.

    Overall, this conference really delivers, and this one was even better than the 2006 event. It's ridiculously expensive, but they do take care of you in terms of food and such. The party sure is a nice touch. They announced that next year's event will be here at The Venetian as well. I hope I can attend again next year!

  • Mix08: The future of advertising

    Like a moron, I didn't realize that the added session on Hard Rock's Silverlight memorabilia site was first, not last, today, so I went to a really boring session on what Microsoft thinks the future of advertising is.

    And the truth is, I don't think they know. The presenter said that the entire process of buying and displaying ads online is terribly inefficient (he neglected to mention it's not nearly as bad as other forms of media). The future is going to work more along the lines of ad exchanges, a la the stock market, which is something we've heard countless times in other places, so there's no new information there.

    The problem as I see it is not a technical one. Sure, there's no question at all that we can achieve better targeting and transparency, but who is going to be willing to share their data in these exchanges? I'm a little skeptical there. For example, can you see Google saying, "Yes, we have about a half-billion ad impressions available for 30-something females who like bowling?" If they were willing to share that, my suspicion is that they'll want a cut for that, and as a publisher, I worry about the revenue being even further diluted.

    Indeed, when you look at the fact that only 5,000 companies buy 90% of the advertising, you start to wonder if it matters.

    I'm in the room now where the Hard Rock demo was, and I'm annoyed. I guess I'll have to catch that one on video later.

  • Mix08: Web 2.0 sustainability

    I just got out of a panel discussion that included the guy from Me.dium, a VC, Scoble, Kevin Rose, and some other guy I don't remember. Interesting discussion, and the general theme was do right by your users, and find the mix of advertising and subscription models to pay the bills.

  • Mix08: Air and gender

    I'm sitting here in Nikhil Kothari's session on ASP.NET AJAX, and he's going through some of the more basic stuff to start. So I'm reading e-mail and kinda scoping out the room. First of all, there's a guy with a MacBook Air sitting in front of me. It's very cool. I couldn't help but notice he was looking at Google Analytics, and that his site has had 14 million visitors and 124 million page views in the last month. Gasp! I guess he can afford that laptop.

    Here's something I did not expect. This is the first session I've gone to that was very heavily code/developer-centric. I'm very surprised to see how many women there are here. It's no secret that this profession tends to be a sausage party, either because of gender tendencies or some kind of discrimination (I honestly don't know or care). The only reason I even notice is because gender and racial diversity in work, to me, feels more like real life. It's hard to explain exactly.

    OK... Nikhil's getting to the good stuff, gotta pay attention.

  • Mix08: Creepy stalker guy

    If you're in the SEO session about to start, and you're trying to take a picture of one of the speakers with your big zoom lens, I'm sitting behind you, watching you. You're being creepy.

  • Mix08: King of Kong screening

    I didn't know they were doing it, but they're screening [i]King of Kong[/i] here. I figured I might as well hang out and watch it and surf for porn on Microsoft's dime. There's a Q&A after the movie... and if it's the guys from the movie (the "champ" is supposed to try and beat the record at the party tomorrow night), I gotta say, they'd make the computer geeks in this building look like well-adjusted lady's men. I mean, this Billy Mitchell guy had a perfect Pac-Man game... every dot, every ghost. Who does that?

    They have an epic sound system.

    Looking around at the crowd for the first time (there are around a hundred people here for the screening), I'm surprised there aren't more Macs around. But the composition is what made it exciting when I was here two years ago... nerds, designer types that look like rock stars, a few suits, lots of 'Softies. I dig that vibe. As I've said before, I picked this conference over others because it's not just endless code demos.

    Really looking forward to this week!

  • A strange tale of HttpApplication.AuthenticateRequest and Trace

    You know how sometimes you think you're pretty sure you know what the sum total of your database shenanigans are in any given ASP.NET page, but you want to make sure? Well, under load it's hard to do a SQL trace and really see what the hell is going on. Because I have all the SQLness funneling through a handful of helper methods in POP Forums (which is so close to a public beta that I can smell it), I figured it'd be easy enough to output the various calls to the Trace in ASP.NET, along with some execution times. Easy it was.