I flipped the switch to turn CoasterBuzz back on a little after 3 a.m. last night, once I was content with the data conversion and had the basic content up.
Being
a one-man show for this kind of thing is a very different experience
than what you see in a team environment. While I don't feel like I've
pulled off any huge feats of programming, I'm reminded that the forum
app clocks in around 10k lines of code, and CoasterBuzz specific code
is around 2k lines. I should probably give myself more credit than I
do. Hacking together a site with a bunch of free apps isn't that hard,
but doing it all from scratch is quite an effort.
By morning I
had found about two dozen "issues," three of which were actual bugs.
The one was a silly mistake amplified by the fact that Google's bot was
hammering the page over and over on ten second intervals. You'd think
the smart people at Google would not let that happen. Once I cleared
those from the log, there were a few things to clean up, and lots of
formatting issues.
The forum search indexing is going a little
slow, and I wonder if there's a better way to do it. I mean, in real
life it wouldn't be an issue because there aren't generally hundreds of
thousands of posts queued for indexing, but I still think about it. I
cranked it up to one topic per second and the server just choked over
disk thrashing. One topic every two seconds seems to be going a lot
more smoothly.
That server has been running now at The Planet
for five years. It's a 2.4 GHz P4 white box with a couple of standard
hard drives and 2 gigs of RAM. I've wanted to upgrade for some time,
but I don't really want to pay more when it's adequate 99% of the time.
Hopefully this will give me a better idea of how the forum performs too. It has been running on PointBuzz
since November, but it's a lower traffic site, and it never really gets
tested. I suppose I'm curious more for me than anyone else. I still
have that little site to sell the forum, but honestly I'm not sure if
I'm that motivated to truly sell it to the world at large, even for a
couple hundred buck in revenue per year. I still wrote it for my sites
first and foremost.
The integrity, or lack thereof, of the the
coaster and park databases bothers me, but that'll be resolved over
time. There are a lot of ugly tools on the back end for me to manipulate
that data, and I'd like to find a way to expose them to users in a
reversible fashion. That was one of my early goals going to back to
2006, and one of the things that created a big hang up for me.
On
July 1, I lost my job. That day I decided that it was now or never if
there was every going to be a CBv4. I threw away most of what I had and
started over. Looking back, there were probably around 160 actual man
hours involved, spread over the two months. I don't think I've been
that focused since I wrote my book. I didn't feel that focused, but all
of a sudden, I put some color around the site layout, it felt more
real, and I was a lot more driven to get it done.
There's plenty
to do, of course, but key word is "enabled." Now the infrastructure is
in place that I can make good on things I'd like to try, whereas, I
used to be bound to the mistakes and limitations of my experience level
of five years ago. Working at Insurance.com made me nuts at times, but
it also gave me a lot to think about in terms of building something
that's easily maintained and scaled.
For now, my brain needs a break. Perhaps I'll go see a movie tomorrow. Maybe then I'll get a job.
Every once in awhile, gosh, once a year at
this rate, I crank out something simple to write for my ancient ASP.NET
site. This year...
Build an RSS feed using LINQ to XML
I haven't done a lot of writing since my book, and I kind of miss it. I just can't find the time to do it.
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.
I'm wondering though, as I now think about going back to work full time, if being a ninja is valuable these days. It's hard to be a ninja at all things (or at least, it is for me), but I find that really getting deep into something is rewarding personally. But is it valuable to employers? While I'm all giddy about ASP.NET AJAX, I've done little more than give MVC a casual glance.
There is always something new to learn, and I find that few developers, unfortunately, endeavor to keep up on it (which exlpains why there are so many COBOL-only devs out there). If you had the time on your hands the way I do, what would you be doing? Girls love guys with computer hacking skills (gosh!).
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).
That said, the documentation situation is bad. It's better than it was circa 2004, but all of the rapid shipping and fragments of the .NET world are leaving the docs a mess. It starts with the MSDN site itself, which has much better search than it used to, but is still heavy and slow because of the treeviews. It also doesn't look right in Firefox, and doesn't retain your preference for programming languages.
The ASP.NET site (which, by the way, also beachballs Firefox on the Mac with every page load making it unusable) has the outline of the new features in v3.5 SP1, and presents you up front with video. Video is not particularly useful when you want to just get to the examples. I go to the link for the browser history feature, and, after the five second beachball, see nothing but a video. OK, so where is the link to the docs? I had to watch the video (which is painful because it's VB.NET, and the presenter is "rusty" on his VB), and then see that it involves using ScriptManager, so I finally can go to MSDN and look up the right methods. I get there and find no examples of how to use the history point related stuff. Lots of wasted time. I end up having to rely on Googling third parties for a decent reference.
About a year ago, maybe more, I recall looking at the mapping stuff for maps.live.com, and how you could integrate maps to your site. I remember it being a lot easier than what Google had at the time. So I go to the site, and start clicking around from the developer link and I can't find anything. All I get is stuff for the "Live Search API." So what is that, and what does it have to do with maps? Why is there a download link for an SDK? I just wanted to call your Javascript like I did last year and get a map in a div. Compare this non-obviousness with Google's page. You're two clicks from a simple HTML file that makes a map.
I'm a huge fanboy of Microsoft's, but this kind of thing frustrates me. I think the company needs a new role: Barrier Detection Monitor. This is a person who, in their product group, would look for things that make it harder for people to use the product. Too often there's something brilliant coming out of Redmond and it doesn't get the use or attention it deserves because of some kind of silly barrier.
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):
More
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.
On
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
Microsoft's platform.
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
times.
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.
So why, oh why, would Microsoft mark JavaScriptSerializer as obsolete? The suggested "replacement" is a lot more convoluted: DataContractJsonSerializer. It doesn't even have a good name. What do contracts have to do with me wanting to just turn an array of strings into, well, an array of strings?
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.
More Posts
Next page »