July 2008 - Posts
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.
Joe Stump, the lead architect for Digg, makes a comment that really bugs me, while another is positive, in a recent "my life as a programmer post" (that's the Google cached version... ironically Digg has overwhelmed his own server):
practical advice is that you should learn to know and love design
patterns and avoid GUI’s. I have a real problem with people who say
they know SQL because they’re well versed with an ORM or a DB’s GUI. Go
back and read up on relational algebra and SQL92 before you say you
know SQL okay?I’ll probably get flamed for this, but I think people
should learn a single environment in and out and stick with it. This
might mean you learn Microsoft’s technologies in and out or Cocoa or
LAMP. You simply can’t be an expert in an area of computers without
picking a single environment and sticking with it.
one hand, I give him credit for his comment that you should get to know
a particular platform inside and out. Extra +1 for not flaming
I do not, on the other hand, agree with the
notion that GUI tools are bad. I thought this stigma went away with VB6
(which I suppose is largely responsible for it), but come on man...
there are some tight tools out there and they make it a lot more fun
and efficient to write code. Using them does not equate to not
understanding what's going on under the covers.
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...
This is arguably the book that started it all. I got it in 1999, when I was ready to up the game for Guide to The Point (now PointBuzz).
I wanted to write my own forum app and do some database driven news
stuff. And that's what I did, with a combination of Microsoft
FrontPage, an Access database and a Web hosting account that cost
nearly fifty bucks a month.
The edges of the book are all frayed,
the laminate on the cover is peeling off, the side is just dirty and
the spine is well worn. There were PostIt notes on the pages for the
recordset object and for stored procedures.
That book was the
genesis for the entire lot of professional change for me. ASP was an
absolutely horrible platform, but it was fairly easy to learn. It seems
like the dark ages, but it was entirely new to me. Those were exciting
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.
Scott Guthrie mentioned in a comment to a blog post of his last year that he was going to try and find out why, and petition for it not to be made obsolete, but I couldn't find any resolution beyond that. All I can say is that two lines that do something productive make a lot more sense than creating stream objects and doing a bunch of other work, and I'd rather not have to add such a thing to my own library code.
Yikes, check out the comments following Jesse Ezell's post about tinkering with the iPhone SDK. That's a little tough to read. I'm happy to admit I'm an Apple fan, with a Mac Pro, MacBook Pro, two iPods, an iPhone and an AppleTV. They've got me. Heck, my two-year-old MBP is randomly shutting off and I find myself apologizing for Apple.
But what is with these asshole zealots? I didn't find anything particularly lazy or wrong with Jesse's post at all. I'm a .NET dev too, and have been since the beta days, which makes it the bulk of my career as a code monkey. Learning anything but Java would be a bit of an adjustment for me. So if I were to make a similar endeavor, I'd probably have many of the same concerns. And if the people in the know would call me names and tell I'm stupid, well, that doesn't exactly make me want to jump in and take hold.
I mean, you've got some guy going on about how Intellisense is a trademark. Yeah, no kidding, but who cares? It's a good idea, and one that has been immitated on other platforms. Anyone used to it knows that it makes coding faster and saves trips to the documentation, and sometimes even leads you to class library features you didn't know about. Responding with, "just learn it" is not the way to advocate the platform.
I love this big shiny aluminum quad box next to my monitor, but why is it that the developer "community" associated with it is so toxic? Help the brother out, don't kick him in the nuts.
As of today, I'm officially not employed. The last two and a half years have been an interesting time for me in terms of my professional development, and it's a very appropriate time to close that chapter.
I know that I've told the story before, but here's a recap. Back in 2005, I was having a very strange year in terms of my personal life. My ASP.NET book was released, I was doing consulting work, coaching high school volleyball, and feeling as though I was hitting a plateau in terms of my own programming skills. More to the point, I was bored.
So in 2006, I went back to work on a full-time basis. What sold me was the interview itself. I could tell that the guys I'd work with were a lot smarter than me, and there was a lot to learn. Unlike the consulting work I had been doing, there were plenty of people to turn to when you didn't feel confident that you had good solutions to the problems you faced. That's the kind of mentoring you wish for.
Culturally, I did have a hard time fitting in at times, in retrospect because there are only so many people you need attacking the bigger issues and being responsible for bigger solutions. I was OK with that most of the time, provided I was still learning and getting better at what I did. I have a strong need to feel as though I'm a part of the bigger picture, I guess because it's what I'm used to in my earlier jobs and my personal projects.
It was just in the last two weeks that I think really started to understand that. Several things happened that made me realize it was time to move on (even though ultimately the choice was made for me). The first thing was my trip to interview with Microsoft in Redmond. It doesn't matter that they didn't offer me a job, because it was a wake up call that reminded me I had options. The second thing was the assignment to a project where I'd be batting clean up, because it was the kind of project I'd endeavored in countless times before in my own work or other jobs. That led me to believe that perhaps my opportunities for learning were decreasing in number. And the third thing that happened, was an e-mail message from a co-worker, who thanked me for helping him on one of his projects. He thanked me for beign patient and working through his issues. As much as I think I try to not rely on external validation, I can't deny that made me feel good.
Collectively, I've come to understand that it was time for something else. I have no idea what that else is, and honestly, this being Jeff Putz week (tomorrow is my birthday), I don't even care to think about it at the moment. For now I want to relax and reflect on the great experiences I had, the friendships, the 1337 code I wrote and the fact that I can get up whenever I feel like it tomorrow!
When I started the job, I got into the habit of bringing my Wired magazines to work, to take to read at lunch or whatever. Over time, they started to stack up. The stack got to 30 issues high. It was a pretty good run.