Hungarian Notation The Right Way
posted on 2005-05-19 at 22:39:46 by Joel Ross
Joel Spolsky nails it. There's more to his article than Hungarian Notation, but that's what I found that I really liked. If you don't, you should read Joel. He has some great articles and is fairly well known. Not to mention, he's got a great first name!
It’s a long article, and in this day and age, no one reads that much right? You should - you'll find out the history of Hungarian notation. But since most probably won't, I'll summarize it. Hungarian Notation is good to distinguish a variables use, not it's type. Take coordinates for example. Both X and Y coordinates are the same type, say int. But if you are managing coordinates, you don't want to mix those. The compiler won't help you. Nor will "system" hungarian notation - declaring variables as iCoord1 and iCoord2. But declaring them as yCoord1 and xCoord2 makes it pretty obvious if you assign one to the other that it's wrong.
But the compiler won't help you there either. It would be better to wrap those in a custom type so that any cross use would be caught by the compiler. That assumes you have types, unlike ASP and VBScript.
UPDATE: I found a post from Gregg at the MSDN Blogs saying the same thing.
Categories: Development
Using Virtual PC For Development
posted on 2005-05-18 at 22:58:22 by Joel Ross
I finally made the move to start developing in Virtual PC rather than on my main machine. It was a rather smooth transition, actually. But there are a few quirks that I found.
First, I had a Windows 2003 Server already set up with a bunch of tools on it, so going the next step was fairly simple. I had planned to do this before, but I ran out of hard drive space and time a few months ago. Since then, I got a bigger hard drive and some time.
Now for the downside. There are a few oddities that I've run across. Before I installed VPC SP1, I got some odd issues with using Alt-Tab and it being sent to both the guest and host operating system. This mainly occurred when the guest operating system was busy - like building in Visual Studio.
SP1 fixed that problem, but introduced another one that in my opinion is more annoying. My laptop runs at a resolution of 1400 x 1050. It appears that VPC doesn't support that resolution anymore, so I can't go into full screen mode. So now, I'm running it in an almost full-screen mode. I'd rather be able to run in full screen, but at least for now, that's not possible for me.
I had considered using differencing disks, but the more I thought about it, the more I didn't like the idea. Here's a scenario explaining why.
1. Create a base image.
2. Create a differencing disk off of that image
3. Service pack for something on the base image is released, and has to be installed. Now I have to install the sp on the differencing disk (actually, each one that I create - which I plan to be one per client).
Now after the above occurs, imagine that I get a new client. I have to create a differencing disk off of the base, and now to be ready to go, I have to install any updates to the base image before I can even start on a new client, which somewhat defeats the purpose of using VPC for me.
Now, if I were to copy the image, here's the steps I take.
1. Create a base image
2. Create a copy of that image
3. Service pack for something on the base image is released, and has to be installed. Now I install the sp on the copied disk (every one - same as before). I also install it on the base.
Now every new client image I need is copied from a base image that is up to date. Much better. And this applies to more than just service packs - it also applies to tools I have installed on the base image. I can update those as they release new versions or I find new tools to use. Plus, I've also heard that using differencing disks doesn't really save that much disk space.
I guess next would be to post a list of the tools I install. That, and reload my base machine with XP and a light load.
Categories: General
Building .NET Apps With Nant
posted on 2005-05-18 at 22:55:03 by Joel Ross
I just recently posted more details about how I use my Nant script to do some pretty complicated things with Nant, but if you want a nice introduction to build files, you should read Dave Bost's article. It was supposed to be in the May/June issue of CoDe Magazine, but it didn't quite make it. Either way, it's online, and is a good resource to get started using Nant to build your projects.
Categories: Development
What Is Content Management Server?
posted on 2005-05-18 at 22:53:28 by Joel Ross
Stephen Cawood has a nice post describing what MCMS is - from 1999. I remember when MCMS was Ncompass Labs, and one of their sales guys came in and taught us how to use it back in 2000. Since then, I've changed jobs and am still working with it!
Oh yeah. Stephen's post also does a very good job of explaining what a CMS system will do in very simple terms.
Categories: ASP.NET
Signal-To-Noise Ratio On Community Blogging Sites
posted on 2005-05-18 at 22:51:49 by Joel Ross
It looks like Jason Olson caused a little bit of a stir over at GeeksWithBlogs the other day. He posted a couple of posts that he admitted probably didn't belong on the main feed, but they got there. And Jeff Julian, who runs GeeksWithBlogs, took him to task. This started the whole conversation about Signal-To-Noise, which I thought we'd gotten over a year ago.
It's odd. I was just thinking before this happened how I hadn't heard anyone talking about SNR in a long time. And lo and behold, a couple of days later, it's back.
Here's why SNR is important: If you run a community site, you are trying to focus the bloggers to stay on topic, so that your audience sticks around and can find what they want.
Here's why it isn't: Blogging isn't about the topics per se. Blogging is about the person or people you're reading. When you read someone's blog, you're (indirectly) building a relationship with them. You're getting to know them. If the blogger has to restrict what they can say, then you don't get to know where they are coming from, which is bad. As a reader, you lose perspective.
Having said both of those things, this is the precise reason I stopped my main blogging at the 'Dojo. It was too much of a pain to go in and add my posts and remember every time to not syndicate this one. Dave Burke says the same thing, but he takes it one step further, and he says SNR is more important on your own site. He says if you gain users based on technical content, then increasing the SNR is more likely to cause people to unsubscribe. Maybe I'm different, but I rarely unsubscribe from a blog, so it doesn't really affect me. If there's a topic I don't care about, I just delete the post. No big deal.
But for a community site, I think staying on topic is the way to go.
Categories: Blogging
RossCode Weekly - An Introduction
posted on 2005-05-18 at 22:48:14 by Joel Ross
I'm happy to announce a new feature to the site. I know what you're thinking. A new feature? How about just a feature? Ok. I'm finally introducing a feature to the site!
So what is it? I'm calling it the RossCode Weekly, and I'm going to scour the web so you don't have to! That's right. I'll take the time to visit every single website out there, and tell you what you should know about.
Ok. Seriously though. I'm subscribed to over 600 feeds right now, and that grows daily. When Allie was born at the beginning of April, I didn't touch my computer for a week. It was on, but I didn't use it. I had 10,000 posts waiting for me. In those 10,000 posts, I run across a lot of information that I find to be handy, but not enough to create a whole post about it. Now, only a few hundred or so are truly useful to me. And of those, only a subset would be something I would want to share with others.
That smallest collection will be what I will use to generate content for the RossCode Weekly. As it's name implies, each week (probably Sunday), I'll put up one post with the week's top stories that come across my aggregator - what I think are the highlights. Some of it will be stuff you've already seen - some may even be stuff I've posted. But some of it may be something you haven't seen in the past. Plus, it'll be your one stop shop for all that matters in tech! Ok, maybe not, but it'll still be good!
This feature will only be available here. I cross-post a lot of my content elsewhere, but this will only be available on this site. It'll be kind of along the lines of The Daily Grind, but more geared towards info rather than software. And it may change over time as I work out what format works for me, and feedback (not that I get any of that) from the readers.
Look for the first one this Sunday!
Categories: RossCode Weekly
Ads In RSS Feeds
posted on 2005-05-18 at 08:40:45 by Joel Ross
With Google announcing the public availability (sort of) of a beta of Google Adsense for Feeds, it's time to revisit advertising on blogs. I've seen quite a few discussions about advertisements in RSS feeds lately, and I'm wondering something. Does an ad in a feed really turn people off that much?
I'm not stopping my subscription to Engadget, and I know the default argument. Engadget provides good content. But I could do without Longhornblogs. It's got good content, but it's not an "I can’t live without it" blog for me. But I'm also not going to unsubscribe just because they put an ad at the end of the feed.
So, if my feed had ads at the bottom, would you unsubscribe? If your feed had an ad in it, I wouldn't. I don't see a problem with someone getting paid for blogging, and since I'm not going to pay for them to blog, why not let advertisers? If the ads are relevant, then it may actually be beneficial for me.
Now, the next question becomes one of effectiveness. Based on who your users are, it appears that web users are more likely to click through than RSS users. Why? RSS users are coming to the site for your content (well, polling your site for your content). They aren't there looking for something in particular. Just your writing. They aren't in a buying mood.
On the other hand, users who reach your site through the web most likely come through a search engine, and are looking for a particular piece of information. If they find it at your site, and your ads are targeted to that content, the click through is more likely.
The moral of the story? Use context ads on the site, but for your feeds, use content that generally relates to your site.
Lastly, who should use ads in RSS? Should companies use it? Individuals? I don't know the answer. My feeling right now is that companies shouldn't use it, but individuals can if they want to. Why do I feel that way? Companies are putting out blogs for the most part as a PR tool, even if only indirectly. By having your employees get your company recognition on the web, you're getting free advertising for your company. Generating traffic to your corporate site is the goal. Individuals, though, typically aren't selling something, so getting traffic to your site isn't going to generate revenue through sales, so ads in RSS may make sense.
One last thing. Only put ads in your feed if it's full text. If it's not a full text feed, then your feed is an advertisement!
I'm still not sure if I will add them. It's not really about the money. It's more about trying things, and seeing what works. So, if I add an ad to my feed, will you unsubscribe? Why?
Categories: Blogging
Generating Schema Definitions For Nant
posted on 2005-05-16 at 23:55:46 by Joel Ross
Mihir Solanski has the post I have been looking for! He shows how to take your current nant configuration and generate a schema file for it, and if you have NantContrib installed, you'll get intellisense for those tasks too!
Thanks for the tip, Mihir! I've been waiting for this one.
Categories: Development
Digital Grand Rapids
posted on 2005-05-16 at 23:52:44 by Joel Ross
Jim Becher, a good friend of mine, is now podcasting. He's talking about technology and different places to go around Grand Rapids. He's also playing music from local bands.
For his first podcast, it's very good. If you're from the Grand Rapids area, give it a listen, and if you're going to be visiting Grand Rapids, it might be a good way to find out what's going on around here.
Oh yeah - there's a cool mash up of Joan Jett and 50 Cent.
Categories: Podcasting
My Tech Ed Schedule
posted on 2005-05-13 at 10:05:36 by Joel Ross
I spent some time a while ago putting together my Tech Ed schedule. I think I have it done. I'm not sticking to one track, and will be jumping around quite a bit. My schedule also has all of the BOF sessions that I'm interested in. I won't make it to all of them, since I plan to have a few dinners, but I'll try to make most of them. Anyway, here's my initial schedule:
Monday:
9:00 AM - 10:15 AM: Opening Keynote
10:45 AM - 12:00 PM: WEB320 ASP.NET: Best Practices and Techniques for Migrating ASP.NET 1.x Applications to ASP.NET 2.0
12:15 PM - 1:15 PM: GNL001 The New Virtual Labs Program: Customer-Centered Software Evaluation
1:30 PM - 2:45 PM: ARC302 Building and Using a Software Factory
3:15 PM - 4:30 PM: DEV340 Microsoft Visual C# Under the Covers: An In-Depth Look at C# 2.0
5:00 PM - 6:15 PM: PRT331 Content Management Server: Accelerating Your Development and Deployment
6:00 PM - 9:00 PM: Exhibit Hall Reception
Tuesday:
9:00 AM - 10:15 AM: Keynote
10:45 AM - 12:00 PM: ARC305 Code Generation: Architecting a New Kind of Reuse
12:15 PM - 1:15 PM: GNL006 Inside Microsoft: Perspective on Creating Technology for the World with Gordon Mangione
1:30 PM - 2:45 PM: PRT337 Best Practices for Designing and Building Content Management Server Solutions
3:15 PM - 4:30 PM: WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005
5:00 PM - 6:15 PM: ARC308 Dealing with Data in Service-Oriented Architectures
6:30 PM - 7:30 PM: BOF001 Software Factories: Making ASP.NET Server Controls Simpler
7:45 PM - 8:45 PM: BOF019 What are Microsoft Patterns and Practices and Why Should I Care?
9:00 PM - 10:00 PM: BOF025 The Developer Community and the Role Microsoft Should Play
Wednesday:
8:30 AM - 9:45 AM: WEB322 ASP.NET 2.0: Under the Covers - Exploring Internals, Page Lifecyle and the Compilation Model
10:15 AM - 11:30 AM: WEB323 ASP.NET 2.0: Overview of ASP.NET 2.0 (Part 1)
12:00 PM - 1:00 PM: GNL009 .NET Rocks! Live @ TechEd with Visual Studio 2005 Team System
2:00 PM - 3:15 PM: WEB324 ASP.NET 2.0: Overview of ASP.NET 2.0 (Part 2)
3:45 PM - 5:00 PM: WEB340 IIS7: Discover and Move to the Next Generation Web Application Server Platform
5:30 PM - 6:45 PM: DEV380 Enterprise Library In-Depth
6:30 PM - 7:30 PM: BOF035 Innovative Techniques in .NET Development
7:45 PM - 8:45 PM: BOF042 Agile Methodologies with .NET
9:00 PM - 10:00 PM: BOF049 CSS and ASP.NET
Thursday:
8:30 AM - 9:45 AM: WEB325 ASP.NET 2.0: Building Data-Driven Web Sites in ASP.NET 2.0
10:15 AM - 11:30 AM: WEB330 ASP.NET: Using Microsoft Visual 2005 Studio Team System to Build Enterprise Web Applications
12:00 PM - 1:00 PM: GNL010 Behind the Scenes Of TechEd: How Microsoft Deploys 200 Hands-On Labs to 1,400 Machines
1:30 PM - 2:45 PM: ARC315 Preparing Your Application Architecture for a Better Tomorrow
3:15 PM - 4:30 PM: WEB326 ASP.NET 2.0: Going Global Gets Easier! New Localization Features in ASP.NET 2.0
5:00 PM - 6:15 PM: None yet
7:00 PM - 11:00 PM: Attendee Party
Friday:
9:00 AM - 10:15 AM: SEC351 Developing with Least Privilege
10:45 AM - 12:00 PM: DEV325 .NET Framework: Being More Productive with the .NET Framework
I didn't go past noon on Friday because my flight leaves at 1:30, so I probably won't even make the 10:45 session. Anyway, if you're going to be in any of the sessions, let me know, and we can say hi. Of course, this is all up in the air, and I'm sure it'll change during the week.
If Andrew Connell stays with the schedule he has, we'll cross paths a few times - there's 7 or 8 sessions we have in common!
Categories: General