Archives / 2004 / April
  • Time off from all work, without a long-term plan. Ever do it?

    My wife and I, now around 30 each, have contemplated going away for a month. I'd be leaving a well-paying contract job (that sucks the soul out of you) and I have no plan on what I'll do when we return. I make a little money from my Web sites through advertising, at least enough to pay the mortgage.

    The plan is to take in some theme parks, concentrate on writing my book and just get away from the world for a bit, in another state. I'll likely acquire some debt, but nothing crushing, and if I can't really make a go of it on my own, there are a lot of jobs in my area.

    Have you ever done something like this? How'd it go for you?


  • Microsoft haters, categorized

    I love it when people talk about Microsoft haters, then get responses from said people that illustrate their point. Good times. John Topley has this round.

    The stuff about squashing competitors is something I never get. I mean, can we just for a moment consider the possibility that those “squashed” had inferior products or poor business models? That's usually what comes to mind when I think of Netscape.


  • Exhibit 13

    The Blue Man Group live rock tour was on the "free view" channel on DirecTV. Pretty intense show. I picked up the CD, also good stuff.

    They ended the show with "Exhibit 13." I think you'll figure out what it's about.


  • CSS will be the death of me

    You know, I really like CSS, and it makes live easier in so many ways. Unfortunately, because I haven't spent a ton of time with it, it's also a pain.

    Formatting is easy, and works predictably across all browsers. It's the layout stuff that often frustrates me. This time around, I'm trying to plug in POP Forums into an existing page. I thought the CSS I ship with the UI was pretty easy going, and I've dropped it in other layouts before, but it's not cooperating with my current project. The biggest concern is that setting the forum tables and/or divs to 100% makes them 100% starting from the left margin, which means they bleed off the right side.

    I know it's something simple, but like regular expressions, I frequently can't concentrate long enough to get the right formula!


  • Externalized rules and generated code

    Another team at the company I'm contracting for just did some of the first work in creating a new system (it will take years to complete, replacing a COBOL system). They did a little performance testing and they were surprised when it reached only 10% of its target performance metric. Ouch.

    A lot of what they're doing is rule-based. The rules are created with a tool developed in-house, and code is generated from it.

    Aside from this kind of development being less fun (in my opinion anyway), it absolutely scares the hell out of me that this is the kind of performance they've encountered. It's pretty scary even. One of my theories is that none of the data being moved around is strongly typed, so all of that casting (especially with tons of ArrayLists abound) is bad news. I'm not an expert in that area though, and can only repeat what I've read in various performance texts.

    I do really think that externalized rules are a good idea. I'm just not entirely convinced that they can be converted into fast, efficient code, and frankly I've not read any research on the topic one way or another.


  • Help on class design patterns

    Having gone to college for journalism and not anything computer related, I've been exposed to various class design patterns in various books, none of them really jumping out at me as, “Wow, that deserves its own name and maybe a book!”

    What are some broad object-oriented class design patterns that you follow? If you happen to see any good write-ups on them, I wouldn't mind seeing that as well.


  • I'm a total slacker

    Maybe that's not being fair to myself. But I started in early January, blasted up some articles and started linking to newsworthy ASP.NET stuff. Then it stopped.

    It stopped for a lot of reasons, not the least of which is the contract gig that is sucking the life out of me. Add in the volleyball coaching (my girls come second only to my wife), the planning and accounting for two forthcoming CoasterBuzz Club events, nice weather, the last episodes of 24 and Alias, a small site development contract and a super-secret project to replace one of my other sites (oh, and I still want to do a junior Olympic volleyball community site), and you can see where my time goes. Now I've got my book to write as well.

    The difference in this site is that I need to feed it regularly. Sites like CoasterBuzz, with 10,000+ visitors every day, feed themselves with contributions from its community.

    All this stuff interferes with other things too. My diet is at a stand-still since I started this job. I'm not concentrating on eating right or exercising. I'm not cleaning the house regularly like I should be (a problem for marital relations to be sure).

    There is an upside though... I'm not one of those people who pours 50 hours a week into that job. Billing hourly, I do the 40 hours and pursue the other things I enjoy. It'll be interesting when they decide to offer a full-time gig, to see what they offer. My other pursuits are finally starting to generate a little revenue, and I might decide to instead pursue those so “the man” is me. Exciting times!


  • Standard yet proprietary?

    Help me out here... “proprietary XML schema?”

    How is an XML schema proprietary? I mean, XML is XML, and the whole point is that it can describe pretty much any data. Yes, Microsoft obviously has IP rights to a schema, but I don't see how it's “proprietary.”

    Wow I'm bored today...


  • Community development and getting questions answered

    Josh Ledgard made a brilliant post where he took inventory of the issues surrounding the Microsoft community. I'm glad to see this because I think we're at a critical point in the .NET world where we're hitting critical mass and we need more qualified people to work. People get qualified by working in community, in my opinion. Josh's observations need to be looked at, so that we don't end up with another “look at me” Channel9 thing (days later, I'm still not impressed, but they also had a save the world hype to live up to).

    Two generalizations hit me as most relevant. The first is that too much volume is bad. I think when you run or lead a community you frequently forget that, but it's not a contest. The ASP.NET forums have almost too much volume, unfortunately. I would be curious to know, however, what percentage of visitors there post or just read. I know from my experience at CoasterBuzz, which is just social and not technical, that not all 10,000 daily visitors are posting. It probably isn't more than a hundred.

    The other thing that stands out is that, the way Josh sees it, there should be some kind of better medium that is a cross between Web forums and Usenet. I personally have never liked Usenet much, at least not since the proliferation of Web forums, but there are some obvious aspects of the two that could be combined into a better product. That's stuff I think about a lot, but my disregard for Usenet has kind of prevented me from seeing that.

    One other thing I guess is that online communities, regardless of the topic, need to breed a culture or protocol where people do actually search for an answer before asking the question. You'd think that since people land in these communities from a search engine that searching them would be obvious, but I know in practice that it's obviously not!


  • The coding models in Whidbey

    I'm loving all of the discussion about how we “should” write code in our ASP.NET apps in v2.0. I guess the shocker is that a ton of people are open to the inline code and partial class/code-beside model (Andy Smith got me thinking about this).

    Whenever someone brings up the topic, the “purists” of course speak up and talk about how code-behind is proper or whatever. Like Andy said, I've been saying for years that the alleged code separation this model provides is a fallacy. He also said what I've been trying to put my finger on for a long time: The model suits the tool, Visual Studio, not the platform itself. Very insightful.

    Between my book and thinking about POP Forums, I'm interested to see what people will consider the best practice, especially since “best practice” is part of the book's working title. My developing opinion is that the code-beside method, with the page linking to a partial class, is the best method for development in the event that you have designers and coders working separately. I think in good app design you do all of your heavy lifting in totally separate classes anyway, so I would expect that your partial classes, the glue between UI and logic, would be fairly light in code.

    However, if you're a one-person development team, then I don't see any reason not to just use the inline code. Again, your code there should be minimal anyway. In fact, if you decide to get into the declarative model of coding, as the ASP.NET team seems to advocate with all of the new controls, you might have even less code on your page. Using the forums as an example, what if I had a control that you declared in the page that got a list of topics to bind to a repeater?

    It's very exciting. It challenges what we've been doing, and improves on it. It gives us the options to not change at all, if that's what you're about. I can't wait for this stuff to be licensed live.


  • Reboots suck

    When is Microsoft going to figure out how to roll-out patches that don't require reboots? It's hard to pitch the reliability of Win 2k3 Server when you have to reboot every couple of months. It gives the Linux nuts a reason to kick sand in your face too. Granted, it pulls my sites off the air for all of two minutes, but that's two minutes too long.

    The longest I went was three and a half months on my current box, no problem. Everything still appeared healthy and I didn't need to cycle any services or anything. It would've been cool to go longer.


  • Back off Liz... let the consumers decide on Gmail

    A California senator (will I ever be able to see that name without thinking “cal-ee-fown-ia” again?) wants to legislate blockage against Google to prevent them from launching Gmail.

    Now, let's ignore for a minute whether you think they're violating privacy or whatever (and I still think people are over-reacting). Why does someone need to legislate this? I know it might come as a total shocker, but consumers might actually be able to decide for themselves whether or not they want to use the service when it's open for business.

    Personally, I plan to use it. Hotmail and Yahoo are just too graphic intensive. I could care less that a machine is scanning my email, and I really don't buy into the black-helicopter-conspiracy theories that Google is up to something sinister. If it turns out they give me reason to suspect that, then I'll stop using it at that time. I just don't need some legislator in California deciding for me.


  • System.Web.Mail in v2: Ditching CDO?

    I haven't had a reason to use it yet, so I have to ask... Is System.Web.Mail actual .NET code in v2 of the framework or will it still be a wrapper around CDO?

    Back in the day, circa 2001, I guess I didn't care one way or another, but I was just reading in a forum about how someone was having problems with their Win2k3 config and couldn't send mail. Relatively easy as it is to write networking code (and semi-easy to speak SMTP), I don't understand why this wasn't just its own self-contained code in the first place.


  • Writing the book

    Got the contract to a place I'm happy with it, and it's time to get beyond the three chapters I have so far and write an ASP.NET book! I'm looking forward to the entire process.

    One thing that I hope to stay mercilessly focused on is the target audience. This is going to be an ASP.NET book that targets Web jockeys with a script background that might not think in terms of overall application design (read: OOP design). The first three chapters are pretty critical to setting all of this up, which is why I wrote them as part of the proposal. So far, so good, showing them to people I've worked with that I'd consider the target audience. Now the challenge is to deliver that throughout. It has to not only explain the concepts, but sell them.

    If the thing sells 10,000 copies, I'd be thrilled. If it can see print before the end of the year, I'd be even more thrilled. We don't have a solid time table yet, but as long as it beats the Whidbey release, I'll be pleased. That would give it a shelf life of maybe two years if I'm lucky.

    You know, it'll be the most real when it has an ISBN number. :)


  • No more Leo on TechTV

    Leo Laporte, of TechTV fame, said last Friday in his blog that he no longer works there. That's a real bummer. Sounds like the former owners (they were just bought by Comcast) tried to hold his earned shares hostage if he didn't agree to a better contract.

    I have to admit that at times he'd get on my nerves because he wouldn't always let people just talk. Aside from that though, he is credible, personable and obviously loves technology. He is the real thing, and the only true “TV star” on that network.

    Hopefully when Comcast has set up shop, they'll realize the network needs him. Or they'll decide to make it Morgan Webb 24/7, which would also be OK.



  • Tampons, Google and privacy

    So I'm reading all of this stuff on (from AP) about how Google will be “reading” e-mail to serve ads and that it's bad, immoral and will lead to the spread of Ebola or something. Wow do people need to get a grip.

    You know, my mail server reads my clients' e-mail all of the time for the purpose of weeding out spam. Come to think of it, so do the other free e-mail services. But now, it's bad because the same process is being used to serve relevant ads to you. Huh. I'm not seeing the connection there to how this will contribute to the fall of Western Society.

    Have you watched TV lately? Probably, I should think. I've seen a lot of tampon commercials. I've seen a lot of pad spots too (with wings). The funny thing is that I have wrinklies, and as such have no need for these feminine products. The advertiser has wasted money on pitching a product that I don't need or want, and all I get out of it is an opportunity to make jokes about it on my blog.

    To date, Google has offered advertising that is relevant in the context of the content you're viewing. It's pretty cool when I look at, say, a motherboard review, and the ad has links to a vendor that has it at low, low prices. Very convenient. Sure beats the tampon ad. In fact, advertising isn't that evil when it sells something that appeals to me. I like to buy stuff. Who doesn't?

    The application of the same concept to my e-mail isn't offensive to me (though I can see already that, the way my friends think, I'll get a lot of sex ads, assuming Google allows them). I'm guessing that Google isn't going to ask me for my social security number or my address, so even if they profile “me” via e-mail, a la Doubleclick back in the day, who cares? There is no human intervention, and it's not like someone is gonna stop me at the mall and say, “Hey, you and your friends have a dirty mind. By the way, did Amazon handle that return adequately for you?” No person at Google is going to say, “We've got that Jeff Putz guy now! We'll expose him as a pervert and frequent Amazon merchandise returner!“

    People get all freaked out by the most ridiculous things.


  • Fanboys, a better Microsoft and Channel9 revisited

    I got exactly what I expected when I called Channel9 stupid. Heck, it even got Scoble to notice. So now that someone is listening, let me go deeper. (Also... a shout to G. Andrew Duthie for mistakingly identifying him a 'Softie. My bad! For some reason I thought you were part of the team, but then I get a lot of people confused because a lot of authors, ASPInsiders and such have pretty good access to what's going on.)

    First off, let me say I used “stupid” intentionally get actual discussion started. It's a strong word, but people react strongly to strong words. I'm not out to poo-poo someone's idea just for the sake of doing so, but all of the me-too's were, well, I guess kind of annoying. Contrary to what Colin Ramsay says, I'm not shortsighted and it has nothing to do with my testicular fortitude or comfort level with the community at large. Come on... I'm only 30, and not ready to be set in my ways.

    I'm pleased to say that some people see what I'm getting at, and furthermore got me thinking about additional things. There were also a great deal of fanboyisms that don't really help, like, “Nobody is forcing you to visit Channel9.”

    No one responded to my initial point that the kingdom fragments around Microsoft lack cohesive vision, and that's a problem. Demonizing “marketing” and repackaging it as “communication” or “evangelism” seems kind of silly to me, yet that's what the “Channel9 Doctrine” essentially is.

    Developers are notoriously poor at marketing. Maybe there's some psychological nonsense or personality typing that explains this, but if you've ever had to interview IT people, you know what I'm talking about. It's not a flattering stereotype, but these otherwise brilliant professionals suck at selling themselves. They suck at selling their best ideas to managers, and thus, managers make bad decisions that don't make sense that the developers then have to implement. If you've worked in any corporate environment, you know this to be true.

    Getting beyond this in the corporate environment requires people who are brilliant developers and brilliant marketers. They're a rare breed, and I don't think I qualify for the title either. I've worked for them before, and they've convinced CTO's, COO's and CEO's to take a path that makes the most sense from our keyboards, not what some quasi-tech savvy manager thinks.

    The division between marketing and developers isn't a surprise at all. We've all had to meet impossible expectations sold by sales and marketing people. We live at separate ends of the hall or in entirely different buildings. Half the time they end up making more than us. No wonder people think marketing is a dirty word. (You might also chalk it up to the brilliant folks who slapped “.NET“ on every other product a few years ago.)

    Getting back now to my last post, there eventually has to be some kind of overseeing direction to guide the ship. Google seems to be pretty good at this. They have all kinds of entrepreneurial efforts, some of them public, but at the end of the day they have to tie into the big picture to be viable. That's why Gmail will generate revenue on ads, just like their search results, news and Usenet access.

    Channel9 is another effort that isn't part of the big picture because there isn't a clear big picture.

    As an aside, the content strategy is kind of poor as well (as Jerry Pisk mentions). That's something I'm not shy about agreeing with because my background is broadcast video, from long before the Internet lured me away with dollar signs (and unemployment checks). If I excuse for a moment the horrible sound and lighting, the medium is not well suited for a development community. I don't watch the other streaming programs onilne (MSDN, Rocks!, etc.) either because, as Jerry put it, “You can't consume the information at your own pace, you can't search it, you can't quickly find what you need, you can't link to a specific piece of information in it.” Maybe some day we'll get to a point that has changed, but we're a long way from it.

    The most useful applications of online video, news and porn, are mostly pay services now, because they're valuable to their respective audiences, enough so that people will pay for them. I can't think of any other video I'm interested in seeing online (not that I'm looking at porn ;)).

    In the roller coaster enthusiast community, Cedar Point reigns supreme as the most popular roller coaster-oriented park in the world. People like me are accused of being fanboys all of the time when we stick up for the park and justify its popularity. However, its biggest fans are also its biggest critics, myself included. I'm a Microsoft fanboy. The difference is that I'm not going to let something I care about just go through the motions of being great when it's not. The Java community has been doing this for years, and it's not helping them. If you've lived with the crap that is the Visual Studio ASP.NET designer for two years and not said anything, you're part of the problem.

    Do your fanboy duty and think about it before you say, “Me too.”



  • Why Channel 9 is stupid

    Yeah, that's right, I'm not going to fit in with all of the “me too” crowd. Channel 9 is stupid.

    I mentioned awhile ago that GotDotNet has been a failure of sorts, partly for technical reasons, but partly because it's another fragmented kingdom at Microsoft. In addition to GDN, we have ASP.NET and WindowsForms.NET. All three went off to do their own thing, and clearly never talked to each other.

    Now we have this Channel 9 thing, which is supposed to offer some kind of insight into how Microsoft's developer folk work, and allow us to talk back to them. Sounds pretty good in theory, right? I don't think so.

    I can't really speak for all areas of development, but right now I think that I get a pretty good insight into how things in the ASP.NET are going on via the blogs of people like Rob Howard and G. Andrew Duthie, as well as a number of non-MS bloggers who also participate in the forums at ASP.NET.

    Should I now go to this new site (with the ridiculous avatars down the left side) because it looks cool and trendy, and everyone thinks it's a good idea? Is there a mandate that the people in the ASP.NET sphere go there and participate? If there's not, then it's just one other place I'm really not that interested in going. I can barely keep up with the other content I want to read.

    They post that they want to “move beyond“ newsgroups and blogs or whatever. That's a joke. The protocols change, but when you stop and look objectively at the Internet today, we're just using rich text editors now to post to Usernet and .plan files. Let's not kid ourselves.

    Here's the thing, for years we've complained about marketing getting in the way of the real point and purpose of product. That's a valid concern, and certainly the only problem marketing causes these days is delays (because we shouldn't need to wait for Whidbey). However, now with Microsoft fostering this entrepreneurial spirit, kingdoms rise from the dark corners of Redmond without any regard to what's already going on elsewhere. For all the evil that marketing allegedly is, at least there's some kind of coherent strategy there. But then again, they post right on Channel 9 that marketing has no place there.

    It could get more ridiculous, or the kings of these kingdoms could all sit down together, put their egos aside, and decide how to consolidate their resources and serve the market segments they cater to more affectively. That sounds like marketing, I know, but modern marketing is more of a two-way street than it ever has been, especially since that Internet thing came along.


  • I am an author!

    It's official... I'm getting a contract for my book proposal today, and with the publisher that I think is tops in .NET books right now. Even more exciting is that their marketing people think it will be a big seller. How cool is that? I hope I can deliver on that.

    So I'm wondering if, as a first-time author, I should take what they give me (provided it's reasonable, and yes I've read Scott Mitchell's advice) or if I should negotiate something more. It's not my intention to get rich off of this thing, because I know how realistic that isn't, but I do want to get a fair deal. Just having something on the shelf at Border's with my name on the spine is good enough for me, and it'll certainly help establish a little credibility.

    I feel pretty good about the project and what it will contain. Right now I'm trying to spend more quality time with Whidbey because it does offer (not exactly change) a lot of different ways to do things in ASP.NET.

    Two and a half chapters down, about a dozen to go!


  • Breaking ObjectSpaces out of .NET Framework

    I noticed a string of posts today about breaking out ObjectSpaces from Whidbey (I happened to see Paul Wilson's first). That's an interesting development.

    I guess I can understand why. It really does tie a major feature to a specific database, and doing so would probably fuel an already hot fire about Microsoft and bundling. As long as it's still available, I guess I can't say I'm really bothered one way or another.

    O/R Mapping is fascinating to me. Personally though, I happen to think you may get better performing code if you have some kind of code generation tool writes classes that map to data. I don't have much experience with code generation, but it sounds like a neat idea. That said, O/R mappers offer you a great deal more flexibility in terms of keeping your database schema more fluid when you're prototyping or taking the guerrilla approach to writing code (which I'm guilty of doing).


  • Contemplating declarative controls

    I was thinking last night about all of the new declarative controls in ASP.NET v2. Things like the data source I find fascinating, because they require even less code to deal with. Putting aside the debates about the “right” way to separate your application layers, I think these are great for John Q. Programmer Jr.

    So naturally this got me to thinking about the UI for POP Forums. I was excited in the last version to have a nice class library and totally separate UI. I'd like to think the entire package is pretty easy to modify and tweak in whatever manner you like. The downside is that there's still a lot of code.

    Certainly I thought at various points about building my own data-driven controls that you could just drop in the page, but then I'd be where the forums were, and that is not beginning to mid-level developer friendly. That forum is a nightmare to maintain and decipher if you're not familiar with building your own controls.

    So I started to think about building my own version of the data source controls, dropping them on a page and binding them to a control on the page, like a DataGrid or Repeater. This starts to sound good because it puts the “heavy lifting” of the UI in a control without tying you to a certain format. That repeater could be templated any way you want. The net effect is that there's even less code.

    This is all just fanciful speculation about stuff at this point, but what do you think? If you put your architectural philosophies aside for a moment (something I have a hard time doing myself), is this kind of thing a good idea?