The .NET Sweatshop

Working day and night to help .NET users get the most out of programming the coolest platform on the planet.

Wednesday, January 28, 2004

If there’s one constant complaint that I get about my blog (OK there may be more than one complaint that I get about my blog, so maybe it’s the biggest complaint), it is that I do not have an RSS Feed. And unfortunately, Blogspot is still not supporting RSS or else I have not have not figured out how to use it. So what’s a good ex-developer to do (besides switch and incur the switching costs)? Write my own code to create the RSS, of course. This actually fits with some side work that I have been doing for PAG to create a feed of patterns & practices of material, so I figured I'd start with that and then my own blog could leverage this work. But I noticed something very interesting as I was writing the code: most RSS feeds are static. I guess that makes sense because it may seem like overkill to build a web application which gives the same data to everyone all day long. However, wouldn’t it be nice to filter the content of an RSS feed or merge them into a way that works for you? I noticed Yahoo has about fourteen different feeds for each different type of news. I can get a little crazy to manage all those feeds and seeing that they’re all coming from Yahoo. My goal was to create a feed that will give you all the sub feeds based on the query string that you passed in to the ASP.NET application. But certainly there is SOME code to start with, right? When I did a search for code to steal, er borrow, to start off my work, I didn’t find any RSS generating code. I’m sure it’s there, but Google wasn’t helping. So, I went at it on my own. I built a small SQL DB and wrote a web service to create CRUD access to it. I developed an Infopath form to let team members submit items for future use (I’ve been dying to do something useful with InfoPath, so this was pretty cool). I created a serializable class that had the same structure as the RSS schema to let .NET do most of the XMLing for me. I then wrote the ASP.NET app to parse the feed for what you need. If no query string is sent, you get the whole Magilla (blocks, guides, webcasts, news, workspaces—man, we do a lot). But when you send a Query String with the letters B and G (so it’d be http://website/page.aspx?filter=BG) , all you get are blocks and guides. If you used the URL http://website/page.aspx?filter=B, all you’d get were blocks. Given we have over 100 things in the database and are constantly adding to it, I think people would like to limit the content they hear about and I think I’d like nothing less than to manage a half-dozen feeds. I just don’t have that kinda time. The code is obviously not that complicated, but I’m so proud of the ability to use one database and one URL and let the ASP.NET application do the busy work instead of me as the dev or my audience as the user. I guess that’s today’s moral, isn’t it? Let your code do the work so that you and your users don’t have to.

Wednesday, January 21, 2004

OK, I haven't stood on a soap box for a while, so what better time than in January when all things are anew. My latest thoughts revolve around the future of Microsoft and how I hope they evolve in their relationship with customers. Having worked at Intel, there's no law that is more near and dear to my heart than Moore’s Law. It has revolutionized the computing industry by constantly increasing processing capacity. The power of enormous mainframes of yesteryear can now be provided by an average laptop. Yet, as hardware performance has increased, the reliability of these systems has decreased. For years, an alarming trend developed where the gain in processing power was countered by the loss of reliability due to the increasing complexity of the software. System crashes are withstood for the sake of accepting this complexity. Internet connectivity has only made this challenge worse. Windows XP marked a huge turn for the better and Microsoft had begun to buck the trend of increasing unreliability. However, with the proliferation of viruses and worms, PCs are still susceptible to more today than at any other time. While Microsoft adopted the Trustworthy Computing initiative two years ago, people still remain at risk and security has become the bane of Microsoft’s existence. According to CNet, Trend Micro, the world's third-largest antivirus software maker, said that computer virus attacks cost global businesses an estimated $55 billion in damages in 2003, a sum that is expected to increase this year. We can sing and dance about enhanced video, audio, etc. , but until it’s safe to go back into the water, Windows will remain threatened by Linux and OS X. But Microsoft knows this and they are spending millions to correct the problem. So everything is hunky-dory, right? Well, not exactly. It's partly an education issue and partly a usability issue. Someone I respect greatly made a comment that our security content shouldn't teach people why something happened, just how to fix their problem. The analogy was that someone who's car needs oil doesn't necessarily want to know what the mechanic needs to do--he just wants it done. I agree to an extent, but as a vehicular idiot, I must confess that I don't appreciate the need for oil changes and I am a little leery of mechanics that work on my car. After all, what else are they doing to my car? What I don't know CAN hurt me--I think most people believe that and as long as they do, it helps to navigate your way around the PC a little bit. After all, people who understand their cars have better driving experiences and people who understand their PCs have better computing experiences. It also makes for a more loyal customer. The more knowledgeable you are about an OS, the less you become about another--witness my feeble attempts to navigate around my wife's grandmother's iMac. And if you think I was bad, you should have seen her. Not to compare a stupid PC virus to cancer, but reading Lance Armstrong's biography, I couldn't help but marvel at the research he did to understand his illness. His self-education was vital to understanding not only what happened to him, but also what was going to happen to him, and how he could best approach the problem. He could've simply said "Doc, just do whatever it takes to make me better." but informed decisions likely saved his life. Like I said, cancer is a world away from a PC virus, but the high-level principle is the same--the more you know, the better off you will be. I'm not saying users should be expected to study the intricacies of the PC, but "knowledge is power". Here's hoping Microsoft makes an effort to teach rather than just fix--maybe then, we can stay out of this constant "react" mode...

Wednesday, January 14, 2004

As you've probably heard, the Middleware Company launched the Serverside.NET ( yesterday as a sister site to the For those of you who are not familiar with, it is one of the most successful on-line J2EE community sites. We worked with Middleware a year ago on a completely unrelated project and I always thought of them as really bright guys. When they mentioned they were thinking about TSS.NET, I was really excited and committed to help them in any way possible. So, with the site up and running, we have commited to providing them with unique patterns & practices-related content that they can feature on their site. To kick off their site launch, preview chapters of our upcoming Perf & Scale guide are headlining the brand-new Serverside.NET site. In the future, we will provide them with materials that don’t necessarily fit on MSDN, like beta materials, case studies, interviews, etc. I'm hoping this will increase our exposure to J2EE developers and architects that likely have never heard of patterns & practices. I think our content can really help change people's perceptions of Microsoft in the enterprise. Plus, Middleware’s tremendous ability to generate a thriving community will make this a great new channel for getting more substantive early feedback from a broader audience than we have in the past. In other words, our stuff will get even tighter. I think this is a great step for .NET as a whole and I suggest you keep watching for more great material from PAG on the Serverside.

Wednesday, January 07, 2004

OK so I took some time off from my blog over the last couple of weeks for the holidays. It was a refreshing time to go down to California and enjoy a little sun. Of course, any weather is better than Seattle this time of year. I keep mumbling the mantra “think of July, think of July”. Given that it is now 2004, I’m gonna fall into that same routine that everybody else does in January and look back on the year gone by. Certainly it was an exciting year for Microsoft and patterns & practices. For Microsoft, we introduced Windows Server 2003 and Visual Studio 2003, my trusty Tablet PC, and don’t forget about Outlook 2003, part of the wonderful office 2003 suite. No it’s not a sales pitch ladies and gentlemen but if you do not have Outlook 2003, you are sincerely missing out. I’m even using the speech function of Microsoft work right now to actually make out this blog. Can't beat that, although I think I sometimes feel more comfortable typing rather than speaking sometimes. Alas, I am a child of the PC generation.

As for patterns & practices, we released another set of blocks as well as several pieces of guidance on security, operations, patterns, the whole gamut. I feel like this year we’re really hit a critical mass in the size of our library and I’m looking forward to what 2004 will bring. I think some of my favorite moments happened in Los Angeles during the PDC. I know I already raved about it in my blog previously, but it was so great it’s worth repeating. That memory of the effusive customer response to our content is what helps me get through the rough days where this job gets a little tiring. Thanks to all who were there and I hope to see you at TechEd.

Before I sign off and get ready for a real blog entry next week, since I have you here, I thought I should give you two Best Of’s from the personal side:

--Best movie: Lost in Translation. I know expects the Microsoftie to say it is Lord of the Rings, but I’m sorry. This movie was great!
--Best album: Linkin Park, Meteora. What a great group and so young—I hope they continue to make great music for years to come.