March 2004 - Posts
There was an interesting little piece on MSN today about taking time off to do, well, whatever. I can't tell you how long I've wanted to do that, on my own terms. Now that I've been laid-off a number of times, not working isn't nearly as scary as it used to be.
That article was a little more geared toward people who have no alternate income to sustain themselves. That's not really me. I've got a little money coming in from my freelance consulting and my sites, so I won't starve. It's looking positive that I'll have a book contract soon, and the publisher's marketing people think it could be huge. I'm looking into coaching high school volleyball again as well (I coach the more interesting, more competitive junior Olympic ball now, as organized under USA Volleyball). Bottom line is that I'll have lots to do, and it will mostly be things I like to do.
There is of course the risk that I'll have negative cash flow, for who knows how long. The upside of this though is that .NET jobs are plentiful in my area, and at some point later in the year, having a book to your credit might not make you rich, but it's a nice touch that few developers have on their resume.
All told, I think there are a lot of opportunities, I just have to accept that living the J-Pizzie lifestyle will be a bit less extravagant than perhaps I'm used to, for the time being.
Anyone else go through this process of self-discovery and self-employment?
What the heck, I'll jump in. Reading from Keith Warren and Frans Bouma, I think the two go to extremes in describing what they see as the issues surrounding the Microsoft and EU case. The reality is probably somewhere more in the middle.
Yes, Microsoft is a convicted monopolist. They used their position to shut out or (allegedly) reduce the effectiveness of their competitors. I don't entirely get how the US arrived at that conclusion with Web browsers, seeing as how no one has ever paid for a browser (or at least they shouldn't have). Over the years I bounced between IE and Netscape, and never paid for either one, and my use of these browsers did not benefit either company.
The EU case is weird because it wants to decouple the Windows Media Player. I admit, I don't have any research, but has this tactic affected the success of QuickTime or Real? I can't speak for the masses, but I don't use Real because the player sucks and is bloated with ad nonsense. I do use QuickTime exclusively for my video needs, in part because it's the basis for pro video tools like Avid (which I use), and I can make the cleanest and most pretty video files encoding with Sorenson. The point is, startling as it might be, that if these other formats aren't as successful, it might be the quality of the product, not Bill Gates.
Flip that case even to the server side. Yes, my Win2k3 server has Windows Media Server. I use it for some purposes, but the preferred format for me is still QuickTime via simple HTTP streaming. Works like a champ.
What's troubling about this EU decision is that it dictates business decisions. I like that MS bundles a browser and a media player. Has anyone bothered to ask consumers if they like this arrangement? Does anyone care that the biggest complaintants in these cases are competitors that want to litigate their success (or compensate for failures)? Has anyone considered that the Windows Media formats have been submitted to standards bodies? What actual affect does bundling have on consumers that causes the big evil empire to thrive? I'm still looking for those answers.
And look at what Apple bundles with OS X now. I would argue that there's more there than in Windows (and much of it is better quality). Why not bust Apple? Because they don't have a majority market share? If that's the case, then the EU (and our own DOJ) are beating up on Microsoft because they're number one, and that's wrong.
I say let market forces determine the outcome, not government. If it weren't for the many shortcomings of Windows, Linux wouldn't be gaining in popularity, and Apple wouldn't see people buying into the switch campaign.
Craig Andera blogged about leaving GotDotNet, presumably its workspace feature, for SourceForge. The ASP.NET forum team also moved out of there recently. I'm surprised it took that long.
The shortcomings of the workspace feature didn't come even remotely as a surprise to me. GDN reeks of neglect, and it was in pretty poor shape in its first iteration, not to mention appears relatively unchanged since it debuted in 2001, or earlier. That's a real shame, because it was the first .NET community I really got active in. Even to this day, I know I've made more posts there than on www.asp.net. It had a great community in the early days.
I know I'm going to be called a hypocrite (considering how frequently I complain about feature-bloated forum software not making up for a lame community), but the site has always been in a pretty sad state of affairs. If you weren't frequently getting errors, the site was slower than Dubya trying to spell “nukeular.” It was pretty much not usable much of the time, and it doesn't matter how good your community is when the site is that technically poor.
The PM's and such started to get active on there and listen to feedback, only to disappear or change. One question that no one could answer was, why is GDN its own little kingdom, separate from the teams running www.asp.net and WindowsForms.net? That never made sense to me.
Then there was the whole technical side of the site. For something run by Microsoft, it was about as far from a good example of how to build stuff that you can find. Pick any page, especially the forum pages, and have a look at that viewstate in the source. Yikes!
What a bummer. It was a good idea executed very, very badly.
A couple of weeks ago I was rambling about code-behind and Whidbey. The reason for the rambling was that I was starting to think about how I'd build the next version of POP Forums.
Honestly, my goal in the last version was to build a class library that did the heavy lifting, and if you didn't like the UI, you were free to do whatever you wanted with it. I think that attitude came from the fact that users of my sites like a nice clean, light-weight, easy to use forum, even though the various PHP heavyweights are feature heavy. As is the case with many apps, sometimes there are more features than you really need, but that's a topic for another day. The last UI that I did is reasonably featured, but in my own projects I rarely use half of it.
That discussion had a lot of interesting comments, and it led to other discussions in other blogs and forums. Jerry Pisk made the interesting comment that all of this dreaming and evangelism about separate code and UI in the current version of ASP.NET is puppy cock (OK, that's not what he called it, but that was the tone). I tend to agree with him. I mean, you've got all those references in your old school code-behind to the controls on the page. Like any other page is every going to inherit that class!
The thing I really overlooked at the time was partial classes. After playing for a bit, it's pretty clear to me that with the UI I will provide (keeping in mind that I'm more worried about the core class library), that using partial classes is a pretty good idea as the new “code-behind” (or “code-beside” or whatever the hell it's called in the end). I know that a lot of die hard application developers aren't fond of this model, but just as it's hard for a script monkey to go OOP, it's hard for those of us in the “enterprise” (please show your membership card ;)) to look at what's most practical.
My audience is still going to be the casual coder that runs a site on underwater basket weaving. If they want to tweak the forum and mess with it, then this partial class model is perfect for that. For the really hard-core, you can always dig into the core classes to alter the way they operate.
That leads me to my next decisions regarding the use of data. Do I use ObjectSpaces? Do I create data objects that can be used declaratively? Lots of choices.
You know you're losing your hacker mentality from long-term exposure to the “enterprise” when you start thinking about doing design documents for your little hobby projects like this. That's yet another topic for another day!
I'm at that point in my book where I need to write about delegates. While I do “get” delegates, it's really hard for me to put into words what they are. Every example I've seen in other books does a poor job of it, in part because the descriptions are so abstract that you end up scratching your head and wondering why you'd ever ever need one.
So before I spoil your thoughts with the direction I think I want to go, you tell me what you'd say. My audience is ASP.NET developers making the leap to OOP, probably from more of a script-heavy background.
What do you think?
By the way, what's the syntax for generics (Whidbey) in VB.NET?
I've thought a lot about the culture and experience of the .NET community at large lately. Between the book I'm trying to write, the site I'm trying to maintain (about time to write something new for it!) and the communities I try to be active in (Sitepoint, as well as my own), obviously I think about such things quite a bit. Consider also a number of blog entries about who Microsoft should target with their tools, and the resulting elitist discussions.
I think that yes, it's safe to say that there are various levels of developer skill. In online communities, these different classes interact in different ways. More advanced developers tend to blog more. Hobbyists and mid-level developers tend to hang out in various forums. The two groups seem to rarely intersect.
I'm just as much to blame for that. I've had little spurts where I've tried to stay active in the www.asp.net forums, but some days it can suck the life out of you when you answer the same questions over and over again. When you see people taking the “wrong” approach for something, you get even less interested.
So what do we do about this? Really, none of us have any obligation to help people out (although that's crap, because we all started somewhere way down the hierarchy ourselves). I would challenge you, the .NET guru, to help out anyway. If every guru spent even ten to 15 minutes a day answering some questions, imagine the quality of people in our community overall.
What not to do is propagate some kind of elitist snobbery. That's lame. I'm not suggesting that everyone should like you, or that would even be important to you, but flaunting your worthless-where-I-live certification around and belittling the hobbyist code monkey because you demand six figures a year doesn't really make you very cool, and you certainly won't win my respect.
If you've ever read Fast Company, you know that they have very brief pieces on "influential" people, basically including something important they have to say. Well, this one really stuck with me:
"No progress is made without being unrealistic."
-Eric Lander, Professor of Biology, MIT
That's enormously profound to me, because being realistic is what's currently holding me back in life.
See, I'm a creative person that needs to participate in the act of creation to feel like I'm making the most of my time. When I don't have that, the "work" that I do is substandard or causes me to appear lazy and unmotivated. I have all these things swirling in my head that I want to do, and in the long-term, some of them might even allow me to make a little money.
But up and quitting my boring contract gig seems unrealistic because, well, my other endeavors don't exactly pull in a ton of cash. Since I can't be unrealistic, no progress is made, and I'm stuck.
Indeed, I suppose I don't take a lot of risks, which is ironic because it was risk that got me to this level of income in my field in the first place. I'm a freakin' broadcaster in the world of code monkeys. I was never realistic about "making it" in this field, but yet, here I am.
Progress really needs a kick in the ass right now.
Scott Hanselman makes the point that the slipped ship date of Yukon and Whidbey is not the end of the world. He's right that, indeed, this is not the end of the world. It's not particularly good for it either.
First of all, Scott, implies that what's good for him is good for everyone because he's shipping product right now. Good for him! He also suggests that “many” of us have a platform that we haven't fully exploited. Tell that to Paul Wilson, who has implemented Whidbey-esque stuff like master pages and ObjectSpaces himself (and is hopefully making a buck or two in the mean time). Heck, I've found an actual verified bug in the framework (which oddly enough still hasn't been documented with a KB article, nearly a year later), so I'm thinking I've gone deep enough with what I have.
If the reason behind the delay was one of development, I might be able to live with that. The now infamous eWeek article, however, seems to indicate that it's not a development issue, but rather one that is purely marketing, pairing the release of Whidbey with Yukon. How annoying is that, when those of us who have acquired Whidbey are impressed with its stability, and pre-beta at that. Members of the .NET team (which have been rather quiet in their blogs lately) have said that they're excited about how clean the first beta will be. That's encouraging.
I guess Scott and those that agree with him either don't use the ASP.NET designer or don't care that it mangles everything you put into it. It's a nightmare for me, because I sell (and giveaway) stuff that people will tweak, hack and change. It gets really hard to support that stuff when VS has messed with what you think they should have.
Make no mistake, I'm not “angry” or anything. My fingers and toes all seem to be intact and the sun did rise this morning, but I still want the product that will make my life easier.
Reading this blog entry from Jason Mauss, I think he misses the point of all the complaining surrounding the Whidbey delay. OK, maybe not all of the complaining, but certainly my complaining.
The information behind the delay, coming from Tom Rizzo anyway in the eWeek article, is that they want a simultaneous release because that'd be really cool. If that's not true, then someone needs to do some damage control for Rizzo.
That's the core of the soreness I'm sure for most people. Whidbey isn't perfect now, but it's sure in remarkable shape for something that isn't even beta yet. Us ASP.NET developers in particular have had to “fight” with Visual Studio and work the way it says we should, not the way that makes sense for us. Whidbey fixes that.
The related issue is that the new features can solve real problems today, in far less time than if we had to deal with them ourselves. Master pages, membership, personalization... these are all things that make our lives easier when responding to our customers. Sure, Microsoft can't be blamed for not delivering these things, but it's too late, they put them out there for us to see, and now we want it. This isn't an emotional issue, it's an issue of us being able to work better, work faster and make more money.
It's all about the bling for me. I could care less about using exciting new stuff for the sake of being exciting.
I read this post from Gus Perez, and to be honest I'm still shocked every time I read something like this.
Maybe Gus sees work differently than I do (and no offense to Gus, as he's obviously a cut above most employees), but I can't understand people who are OK with the dusk-till-dawn work lifestyle. No job I've ever had was that important to me. I generally hope to derive some pleasure from working, sure, but the center of my life at least is family (well, my wife anyway), hobbies and such.
That's probably the thing that has kept me from really going all out to be 100% independent. At the end of the day, the job doesn't matter the most. It seems that only Americans miss this point. That's a weird cultural phenomenon too, because although we allegedly work harder and work more than our European and Japanese counterparts, we still trail behind in certain markets.
What's important to you?
More Posts Next page »