Jeff and .NET

The .NET musings of Jeff Putz

Sponsors

News

My Sites

Posted: by

Comments

Matt Hawley said:

Welcome!
# February 12, 2004 10:03 AM

Colt said:

Welcome aboard Jeff :)
# February 12, 2004 10:36 AM

Matt Hawley said:

I had this same conversation in comments. Someone told me it would be better to do all business logic within SQL stored procedures rather than in the BLL calling different stored procedures within a transaction. Sometimes I just wonder if these people have real programming experience in the enterprise world.
# February 13, 2004 11:40 AM

Mathew Nolton said:

In general, I tend to see people go after certicications when they lack professional experience (but not always). Personally, I still go for professional experience when I am judging someone for a position.

As for business logic in your data tier. no way....data is just that. Data. Your business logic layer is for business logic.

-Mathew Nolton
# February 13, 2004 1:33 PM

Darrell said:

Sometimes you can't go for experience. Do I want someone who has done nothing but VBScript for 7 years over someone who has been programming .NET for 2?

It depends. I usually hire for motivation, teamwork ability, intelligence, and ethics. With those skills, the employees can learn anything they need to.
# February 13, 2004 2:40 PM

Darrell said:

Oh, and certification is a sign of motivation.
# February 13, 2004 2:40 PM

jeff said:

That's where I disagree. Maybe I'm just too fiercely independent (or too much of a hard-ass for my own good), but I look at it as buying into Microsoft marketing. :)
# February 13, 2004 3:20 PM

Tim Marman said:

What's very dangerous is that two of my favorite local watering holes both have WiFi now (one offers it themselves, the other comes from a resident upstairs).

This could get ugly sometime soon.
# February 13, 2004 9:55 PM

Shannon J Hager said:

You should be able to pick up a copy of a Post-PDC/Pre-public beta build at DevDays.
# February 16, 2004 12:52 PM

Julie Lerman said:

Not quite. [Unless something has changed in the last few weeks,] DevDays is PDC bits! I asked the person who was responsible for arranging for the bits to be distributed and was told it's the same as PDC.
# February 16, 2004 2:46 PM

Alex Lowe said:

It is the same as the PDC.
# February 16, 2004 3:34 PM

Shannon J Hager said:

I have read in at least 2 places that it was going to be a newer version.
# February 16, 2004 6:04 PM

Michael Carr said:

My favorite Windows-based video editing software is Vegas Video by Sonic Foundry/Sony. It's by far better than anything else I've seen.

On the bottom of my list would be Adobe Premiere... not sure why everybody likes that one so much.
# February 16, 2004 6:51 PM

Jeff said:

Agreed. Permier exists only because people like Photoshop and it's cheap, relatively speaking.

Vegas is pretty good stuff. Not as clean as Avid, Media 100 or Final Cut, but good stuff.
# February 16, 2004 7:13 PM

Brian Desmond said:

We've got two Avid editors at school - a G5 and a G4. The person that does our video editing is going to show me how to use one of them this week - looks pretty intuitive from what I've watched. Hope this is actually the case.
# February 16, 2004 11:09 PM

Jay Glynn said:

Noise canceling headphones. The best 50 bucks I've ever spent.
# February 17, 2004 8:49 AM

Doug Reilly said:

I have one day a week at a client site with cubes, and I use my walkman. It is noise, but at least it is noise I like...
# February 17, 2004 9:11 AM

Philip Miseldine said:

I am that guy you are referring to :)

I did insist that what I said wasn't necessarily best practise in the "real world", and that I did have no experience in the enterprise market...after all, I'm only 23 and I decided to get academic experience before I entered the workplace.

People can only go on what I have experienced. Pratical real life experience takes time, and yes, it is vital IMHO. I just haven't the experience yet, but education helps you prepare and learn how to adapt to new technology and new ideas, as well as learning how to research (in the case of a PhD).

Certification is education, and certainly achieving a certificate shows the key skills of learning, digesting, and being motivated to pass the course. Financial considerations aside, it can only improve one's own ability and interest. I can't see the real problem.
# February 18, 2004 10:18 AM

Philip Miseldine said:

And, if you read the thread, you'd see I *did* accept those points you raised. And I *wasn't* sure I was right. That is misrepresenting what the situation was. I was asking why I was wrong, not enforcing I was right.

Being constructive is far better than being overtly critical...
# February 18, 2004 1:22 PM

Jeff said:

You assume that the story is about you and that Sitepoint is the only place on the planet that I post.
# February 18, 2004 2:06 PM

Philip Miseldine said:

Call it deductive reasoning ;)
# February 18, 2004 2:11 PM

Chris (d) said:

I would to agree with Philip ;o)
# February 19, 2004 5:02 AM

Steve said:

Build it and they will come. Just put a .NET logo on your marketing material and its sure to sell ;-)
# February 19, 2004 10:01 AM

Robert Scoble said:

The antidote is a Tablet PC. Particularly the Toshiba M200.
# February 21, 2004 10:58 PM

Lotas Smartman said:

Hmmmm. thank (insert your icon of worship in here) i dont read the same places you do! :P
# February 25, 2004 10:14 AM

TrackBack said:

# February 25, 2004 9:55 PM

TrackBack said:

# February 25, 2004 9:56 PM

Thomas Tomiczek said:

Very well said. When I saw the pictures, I thought immediatly that the people working there must by the "typical american idiots" as they are envisioned in the world. Kids which have achieved nothing in their life and date to disrespect someone who built one of the most successfull businesses in history.

You do not have to agree with him, but you could at least show some respect.
# February 26, 2004 10:39 AM

R said:


I agree with Thomas .. but surely it's harmless fun? Is Mr G really likely to get *that* upset about some jibes about ancient history? He's a target BECAUSE of who he is, in the same way that celebrities are the target of the papparazzi ...
# February 26, 2004 10:47 AM

Jason Alexander said:

Yeah, I was really pretty disgusted with Ajay's post, as well, and really thought it threw a bad light on his University, personally.

I'm always of the mind, "If you can't say anything nice, don't say anything at all.", but unfortunately not everyone is engrained with the manners that they once were.
# February 26, 2004 10:48 AM

Jeff said:

At issue isn't if someone hurt his feelings. The real issue is that a bunch of snot-nose know-it-alls think they know better in the face of one of the most influential people in the history of our industry. It doesn't even matter if you think he's brilliant. Few people have ever had more influence on anything.

I think George Bush is a moron, but he is the president, and if I could hear him speak in person, I wouldn't miss the opportunity and I'd be respectful. It's just what we do in a society like ours.
# February 26, 2004 11:07 AM

George Chernyha said:

I wanted to read Ajay's post but it seems to have gone missing.
# February 26, 2004 1:52 PM

Ajay Juneja said:

http://weblogs.asp.net/ajuneja

It's right here :)

Oh and Jeff, cut it with this disrespect thing -- you need to lighten up and have some fun sometimes.

Also, a talk entitled "Solving the Hardest Problems in Computer Science" should have more content on that topic than be a marketing spiel.

I'd also argue Steve Wozniak had as much influence as dear Bill, and he wasn't smacked down cause his talk had CONTENT in it.

You're right, students at CMU don't take well to sales pitches whether they are from Gates or otherwise.
# February 26, 2004 8:14 PM

Ajay Juneja said:

Oh, and I made the most talked about posts list... 1400+ hits... not bad :)
# February 26, 2004 8:15 PM

Jeff said:

Whatever dude... you don't know anything about me or my ability to have fun. If you're going to make an argument, do so as a grown up and try not to resort to personal attacks.
# February 26, 2004 9:34 PM

Ajay Juneja said:

Where was there a personal attack on anyone?
I made reference to his talk being bad, not Bill being bad.

Bill's a huge philanthropist, and I certainly admire and respect that.
# February 26, 2004 10:37 PM

Jeff said:

Not to him, to me! Move along now...
# February 27, 2004 7:49 AM

Scott Mitchell said:

A bit of shamelss promotion, but........

Requisite reading for anyone who is wanting to write a computer trade book:
http://scottonwriting.net/sowblog/posts/146.aspx

# March 1, 2004 4:22 PM

Jeff said:

I read that before I even contemplated writing the proposal. Sadly, I did it anyway even though I knew what I was getting into!
# March 1, 2004 5:15 PM

OmegaSupreme said:

LOL
# March 2, 2004 9:29 AM

Jason Salas said:

Great post, Jeff! RTC is my favorite game of all-time! Yeah, a friend and I were commenting about how one dude did the whole thing on his own...amazing!

Jas
# March 3, 2004 5:58 PM

TrackBack said:

# March 3, 2004 10:16 PM

Rory said:

Jeff -

A lot of what you say is quite interesting, and I agree with some of it.

However, consider this statement:

"if you want to consume a Web service from Amazon or Google in your app, reading docs on either one would never lead you to believe that you could treat these as object-oriented services."

Web services are still very much a mucky-muck sort of thing. They're messy, and they're tough. Is this something the hobbyist is even going to get into?

I realize it's only one example, but I think it's important to consider. When I think of a hobbyist, I think of someone who just wants to throw some data on the screen, organize their CDs, or whatever. I don't think too much about people who are trying to deal with web services. I think that once you even know what a web service is (as many in our profession don't), you've already gone beyond being a hobbyist.

It might just come down to definitions, though - what I consider to be a hobbyist might not be what you consider to be a hobbyist, and therein lies the confusion.

Still, though, I didn't mean any ill-will towards anybody, and I'm certainly not a CS degree coder. My roots are firmly grounded in the hobbyist camp - but, my hobbyist days were spent trying to rise to the level of the professional because I *knew* that I wanted to code.

Maybe that's the difference that helps define a hobbyist coder: A hobbyist coder doesn't want to be a coder, but must become one for a short time in order to get something done, whereas the non-hobbyist, even though he/she isn't getting paid, has every intention of becoming a coder.

I don't know, though. ::shrug::

It's a tough topic :)
# March 4, 2004 11:08 AM

-e said:

I don't think its a simple thing. I am in this field because of a hobbyist start - how else did any of us end up here, if not writing crappy games on our TI/C64/XT/etc.? What else could have driven us to the path we are now on? Sure - there are exceptions, but I bet the bulk of professional developers started out as hobbyists as kids.

That having been said, I am geeky enough to admit that I probably would have done it anyway.

So I don't really wish to argue that point.

But I do want to point out that SharpDevelop is free, and to get a copy of C# or VB.Net is under $100 (sure, it has its limits, but we're talking hobbyist). And my copy of VS.Net Pro cost me about $350 - not cheap, but not prohibitive, if you really want to play. I mean, how much money did those golf clubs, skis, or mountain bike cost you?
# March 4, 2004 11:20 AM

Jeff said:

Why would a hobbyist use an Amazon Web service? Because they want to make money, and hosting a high-traffic site, even if it's your hobby, is not cheap. When I started CoasterBuzz.com four years ago, I never expected to be serving pages to 10,000 people every day, but here I am. I make more money on that hobby than my mother does as a nurse.

And I have a six-figure career now too. Not bad for someone who went to school for radio and TV.
# March 4, 2004 11:23 AM

Ken Robertson said:

VS is not necessarily expensive for the hobbyist if they are in college. I bought my copy through my campus's MSDN Academic Alliance for $13.
# March 4, 2004 11:55 AM

Jason Bunting said:

Jeff,

I am interested in your last comment about how you make "more money on that hobby than [your] mother does as a nurse."

But then, I went to your coasterbuzz.com site and noticed this quote:

"Is POP World Media just out to make a buck?
It would be nice if we could, but not likely. We've already spent thousands on hardware and software, so at this point breaking even would be nice!"

Maybe you should update that text now that you are apparently making money. :P
# March 4, 2004 11:57 AM

Jeff said:

I guess I should change it! Making money is I suppose relative, as I still have some lingering debt to eliminate from things like SQL Server licenses and MSDN subscriptions.
# March 4, 2004 12:37 PM

clutch said:

Eeh, I have a similar issue. I get called a "know it all" because I typically have the correct answer for a given problem. This, however, is a statistical anomaly. If I don't know something, I just simply state "I don't know", and people around me forget about it. So, while I might appear to be right > 95% of the time, it's only because I am answering < 40% of the questions coming to me. Think I might have better luck making up answers to everything, and being wrong more often? You just can't win, ever.
# March 6, 2004 2:36 AM

Scott Galloway said:

Well, it doesn't have to be in the same file - that just happens to be the default option in the Alpha Version. The code-beside model (using Partial Classes) in Whidbey is a great improvement though. Code beside is still compiled to an assembly...
# March 9, 2004 1:07 PM

Paul Wilson said:

But code-behind in Whidbey (also now called code-beside) does require the cs/vb files to be deployed, which is compiled on demand, and which no longer needs to be manually rebuilt when you make small changes. Of course there is also a way to pre-compile, but so far with Whidbey this also pre-compiles the aspx pages and only leaves a stub so that you can no longer make even aspx changes on the fly! I'm hoping there will be an in-between state, like we have right now, that only pre-compiles the code-behind, but I haven't heard anything that has acknowledged even the need for it.
# March 9, 2004 1:11 PM

Jeff said:

I realize what VS is doing by default... that's not the issue. The issue is what's best (and easiest) for my audience. Those of us that are more experienced often forget the vast majority out there who don't yet have the same skills.

There's a reason that the "official" ASP.NET forums are not as popular as they could be, and where you do see them deployed they haven't been altered in any way. You have to know what you're doing and understand a lot of things that the novice wouldn't to hack in there and change stuff.
# March 9, 2004 1:18 PM

Scott Galloway said:

To be honest, I think the 'official' ASP.NET forums are just fine - the Starter Kits are more designed for learning from whereas for forums are primarily designed to run the ASP.NET forums. Personally, I like the design, it really is a pretty nice, scalable and extensible design which would be pretty difficult to duplicate using in-line coding. Personally, I don't use the in-line coding approach in my applications - priamrily because I like to maintain the separation inherent in using code-behind (the View-Helper approach).
# March 9, 2004 1:55 PM

Shannon J Hager said:

I have grown accustomed to the code-behind model and don't like the looks of the way it seems Whidbey may force me to work. Currently, all 'real' code goes into my code-behind cs files and all I deploy from the test to production servers are the aspx, asax, and config files. Any minor changes in the layout can be done in the aspx without recompile, but that isn't an issue for me because all changes are first done on the test server and the compilation on the local network isn't time-consuming at all. I deploy from test to production servers using Steve Sharrock's ASP.NET FTP Deployment tool (http://www.dotnetftp.com ), which automatically selected any changed files and skips cs, resx, and other files not needed on the production server.

I know that Whidbey is going to have built-in functionality to replace Sharrock's tool, but will I now have to deploy *all* files to the production server?
# March 9, 2004 2:38 PM

Alex said:

Pretty obvious, but with separate files you can have a designer work on the HTML, layout etc. without having to worry about him/her making a mess of your vb or cs code.
# March 9, 2004 2:52 PM

Scott Galloway said:

Shannon, Whidbey doesn't force you to work in either way - code beside does rule (you don't have to declare controls in the 'code ' file etc...) - you can continue to work as-is you can even keep using code-behind if you really want to (I personally can't wait for code-beside to arrive). In short, Whidbey gives you more options - but it never forces you into a way of working...
# March 9, 2004 3:57 PM

Jeff said:

I still think you guys aren't seeing the flip side. Forum applications, I'd venture to say 95% of the time, are on sites run by someone catering to a niche audience. They don't have "designers" and "programmers," there's one guy/girl. They aren't building enterprise-class n-tier applications.

The IBuySpy and starter kits have code all over the place. It kind of sends a mixed message about what you're "supposed to do." Certainly I just assume keep everything as is, but only because it makes sense to me. I like using code-behind as well. I suppose I can offer different versions in different configurations, since it's just grunt work to move the code around.
# March 9, 2004 4:12 PM

Scott Galloway said:

I don't really agree with the approach you're espousing - it's very much the approach which used to be taken with ASP - so lots of code in-line. The Web Matrix approach is a lot more like the one you mention so mixed code / presentation and I aggree is ideal for the 'hobbyist' - but I really do not think it's necessarily the 'best' approach in terms of flexibility and / or security for anything like commercial level applications (which after all the market to which Microsoft sell their Servers - and therefore ASP.NET). The code-beside model which Whidbey allows in my opinion really does give the best of both worlds - it really 'feels' like you're working on a single file - but it does require compilation (which catches many errors).
# March 9, 2004 4:36 PM

Jerry Pisk said:

Asp.Net does not even come close to separating logic from presentation. The fact that you can have two files, one with code and one with HTML does not make it an MVC platform, those two files (logic and presentation) are stil tied together. And don't even get me started on post backs (to the same page that generated the input view).
# March 9, 2004 4:44 PM

Jeff said:

I agree with Jerry. Suggesting that code-behind really seperates anything I think is being liberal with your interpretation.

Having a code block at the top of your page is NOT like ASP.old, not by a long shot. It's not inline code, it's a block at the top. I think there's a huge difference.

Remember... I agree that "the right way" is with traditional code-behind, but you can't really identify what's right and wrong without really exploring the good AND bad with the opposing view.
# March 9, 2004 7:11 PM

clutch said:

I like using the code-behind methodology. It's easier to read, and easier for me to maintain. The idea of mixing all of my HTML code with my methods is not very appealing. This scrolling through the code and reviewing it a hassle, unlike now where I know that all of my presentation stuff is on one page, while my methods are on another. While the term "separation" might be considered liberal, I think of it as somewhat accurate. It is separating the HTML/presentation code into another file, and away from most of the "hard code" stuff that makes it go. I hated the days of scrolling around in Vis Interdev to get things done, and while the current idea isn't quite the same (mixing bindings with the HTML constantly, rather that simply performing this at the top of the page with the rest of the handling code), it still feels the same.
# March 10, 2004 1:22 AM

TrackBack said:

You've been Taken Out! Thanks for the good post.
# March 10, 2004 1:42 AM

Shannon J Hager said:

I wouldn't call it "seperation" in the same sense that a DAL and a BL Layer are seperated, but the code for the aspx page *is* seperated more when using the code-behind model than using inline. I honestly don't know how Dreamweaver handles inline code but my graphic designers have no problem at all diving into aspx pages right now using the codebehind model and the fact that the "real" code is in the .cs files makes me a lot more confident because those guys know not to touch anything other than aspx files.
# March 10, 2004 4:09 PM

OT-hater said:

Unfortunately, it's all too common in the technology industry that we're expected to work massive overtime. Whoever came up with that idea needs their ass whooped. Occasionally it's ok, but if you consistently have to work 50 hour weeks to get your job done, then there is something wrong with the way your business is being run.
# March 11, 2004 10:09 AM

Oleg Tkachenko said:

Sounds like you're not a geeky kind of person ;)
# March 11, 2004 10:22 AM

LeeB said:

I couldn't agree more!

The developer improvements in ASP.NET Whidbey are real timesavers. I don't want to write my own MasterPages or membership classes any more. Not when I know MS have done this! I want to use the master pages designer and actually see what my page looks like.

I don't care about Yukon, I'm happy to use SQL2K.

Many, many people seem to be in general agreement with the above. Come on Microsoft have a read of http://weblogs.asp.net and listen to some customer feedback!
# March 11, 2004 10:22 AM

denny said:

Hey Bill and Steve read the news.... get with us developers in the trenches.
# March 11, 2004 10:31 AM

Jerry Pisk said:

All I can say - we live in a fairly free world, if you don't like to work too hard just move to France, where you're only allowed to work 35 hours a week. It must be great to live there ;) And you can work at all those great French software houses...
# March 11, 2004 12:27 PM

Frans Bouma said:

Exactly.

As a related question: Am I the only one who finds it weird that all the MS bloggers here haven't mentioned a single word on this issue? They all babble along as if nothing happened...
# March 11, 2004 4:30 PM

Josh said:

Frans - it is obviously (at least from Rizzo's remarks) a marketing decision. What do you expect to hear from the Microsoft bloggers? That is the part of the company that they have no control over, and are probably at odds with themselves.

And Jeff - you're explanation makes it seem like you wish Microsoft hadn't shown what they are working on, because it only frustrates you. My suggestion is that maybe you shouldn't go out seeking the latest info, and just stick to RTM products. That's my strategy with movies - I hate it when friends try to show me "sneak peaks" of a cool movie coming out in a year. I may be anxious about a movie, and I know there is plenty of details available on the internet somewhere, but I choose not to read it. I'll see the movie when it is released.
Are you saying you are working worse, slower, and making less money now that you know what MS has in mind for its future products? If so, stop paying attention. I know plenty of .NET developers that have no idea what is in Whidbey, because they don't go seeking out that information.
# March 11, 2004 5:03 PM

Jeff said:

Whatever... don't make it my problem. Visual Studio has been broken since the day it was released in terms of Web development. I have an annoying client right now that read about standards compliance and validators and he gets his panties in a bunch because <HR> isn't correct markup, but <hr /> is.

So yeah, I should stop paying attention. That would be a fabulous career move on my part. Good thinking.
# March 11, 2004 7:12 PM

Shannon J Hager said:

You seem to be under the mistaken impression that Whidbey can solve your problems today. It can't. Not next week, either. Maybe when it hits Beta 1, but that is NOT today.
# March 11, 2004 8:27 PM

Jeff said:

According to you? It sure seems to work for me.

What's with everyone telling me what I need?
# March 11, 2004 11:13 PM

Shannon J Hager said:

According to Microsoft, Whidbey is not yet beta quality. According to the presenters at DevDays today, Whidbey is not yet beta quality. I saw 3 versions of Whidbey demonstrated today, all 3 with different feature sets, none with the full set. None working well enough to be considered beta quality. None of them with fully working features (i.e., one build had Whitehorse but it was not fully functional, the presenter explained, mentioned, and pointed out a few features that are almost there or are there but just don't work yet).

If Whidbey works for you, either you have a newer version than any I've seen or heard of, or you're not working it very hard.
# March 11, 2004 11:42 PM

Frans Bouma said:

Shannon: Within a few weeks the alpha tester group gets new bits of whidbey, we'll see what's true / false of what's working and what's not.

It's definitely not feature complete as new features are still debated in the alpha tester forums, but it gets close. Being not-feature complete means that it is not beta yet. Beta 'quality' means nothing btw. Beta means: feature complete, let the testing begin.

Whitehorse is an add-on to vs.net, not a main part. Whitehorse was barely runnable in the first alpha we saw. But it's March, not October.

No matter what, the pushback of the release date creates a big problem. ASP.NET development IS broken in vs.net 2003, the HTML editor is horrible. It might sound weird, but ASP.NET is the major .NET feature which makes people use .NET in the first place: a lot of websites currently using ASP and for example Oracle are ported to ASP.NET.

If developers have to wait for more than a year before a decent ASP.NET editor is released, what to do? And don't expect a 3rd party editor which solves the problems: any 3rd party editor developer knows that ASP.NET 2.0 totally changes the picture.

As an O/R mapper vendor I should be glad Objectspaces is pushed back for more than a year. In a wicked way I am, but just a little, and for the most part I'm not all that happy with this delay. .NET 2.0 solves a lot of problems and can bring a lot of good things I really need but now I have to wait for a long period of time before I can start updating the code with f.e. generics, true IXmlSerializable support, design time databinding of my objects etc.
# March 12, 2004 4:04 AM

Jeff said:

Of course, Shannon... I must be imagining things. Thanks for setting me straight.
# March 12, 2004 8:24 AM

Josh said:

Jeff - I wasn't trying to make an attack, I don't think my tone came across correctly. I was honestly offering that (ignoring pre-release material) as a valid solution which really does work for a lot of people. I was responding to your specific statement:
"but it's too late, they put them out there for us to see, and now we want it"
That, to me, sounds like you are sorry that you know what they are working on.
# March 12, 2004 10:59 AM

Alex Hoffman said:

I, like most normal people, value things other than just work. To do otherwise, is clearly disfunctional and represents a skewed value system.
# March 14, 2004 5:20 PM

Wallym said:

BTW, I use the VS.NET designer alot. I agree that it has bugs. I have lost code, just like everyone else. I have also lost code with other development tools. I save often and I do my best to use source-safe as much as possible. Yeah, I know it is a pain and problems like this need to be fixed.

Regarding the stability of Whidbey, I am impressed that the PDC bits are as stable as they are. I remember the PDC bits from Jul 2000. VS.NET keeled over every couple of minutes on me, if it didn't fail almost immediately on load. However, I have found several limitations in the PDC 2003 bits. While I am impressed at their stability within an alpha state, I would hold on anything else until further releases are made available. I do like some of the changes that I have read are coming.

And I do wish that MS would release a SP for .NET 1.1.

I love you last statement about fingers and toes.........

Wally
# March 15, 2004 10:40 AM

Christian Romney said:

Furthermore, people lose site of the fact that it's not just about the IDE. Server controls don't produce valid xhtml no matter what editor you use. Even notepad won't make <asp:textBox /> render an <input /> with a closing tag.
# March 15, 2004 11:34 AM

TrackBack said:

You have been Taken Out! Thanks for the post.
# March 15, 2004 11:29 PM

TrackBack said:

You have been Taken Out! Comments about your post on this link. Thanks!
# March 17, 2004 11:03 PM

Scott Willsey said:

Have to disagree with Scott Galloway's view that "the 'official' ASP.NET forums are just fine"... they are full of bugs, unfinished features, and are NOT plug and play, which means you have to be somewhat technical to get them working, generally.

At least, this was my experience the last time I looked at them.

As programmers, we tend to overlook problems that we can easily identify and fix... not so with end users. As Jeff says, most people running forums aren't programmers and don't want to be, they just want a community set up for whatever it is they are really interested in, and generally programming it ain't.
# March 18, 2004 4:02 AM

Jason Haley said:

Very nicely put.
# March 19, 2004 8:35 AM

James Crowley said:

I'm not entirely sure whether I'd agree with all of that. Sure - advanced developers certainly do blog more (though I blog, and wouldn't class myself as an "advanced developer"), write more articles, and as a result maybe have less time to devote to answering questions in a forum. But surely blogs are an equally valuable resource that perhaps need to be promoted more as such? Certainly articles and tutorials are.

When running Developer Fusion (http://www.developerfusion.com/), I used to spend a long time answering questions posed by our visitors - but now we have a strong community, and although I do "pop in" at least a couple of times a week, I don't devote as much time as I used to - because I know others are also spending time answering questions. I certainly don't feel that by spending less time answering direct questions, I'm contributing less - I'm just contributing in different ways.

Having said all that - I do see your point to some extent. We certainly don't want to reach a point where "advanced developers" won't "lower themselves" to answering questions in a forum - nor do we want to prevent less experienced programmers from having a blog or writing articles. But fortunately, I don't think we are at this point.

There are always exceptions to the rule, but in general, I think it's incredible how many people are willing to devote enormous amounts of time to helping out - in whatever way they can.
# March 19, 2004 11:01 AM

Memi Lavi said:

I would define a Delegate as a pointer to a function. It defines the signature of the function, but it's not the function itself.

One scenario in which I used delegate was this:
I had a base page which had a method that iterated hierarchicaly through all the controls on the page (would you believe that there is nothing like that built in the ASP.NET page model?) Problem was, I needed to tell the method what to do with all the controls it finds. For example, sometimes I wanted to put all the control values in a Name-Value collection. Sometimes I wanted to disable all these controls. And there sure will be other uses for this method.
What I did was to define a delegate that accept as an argument a WebControl, and add a parameter of this delegate type to the iterating method. Each time I needed this method, I created a new method with the same signature as the delegate, and passed its address to the iterating method. The iterating method then called the delegate with the appropriate parameter whenever it encountered a control on the page, and the new method did whatever was needed with this control.

Hope it helps.
# March 22, 2004 2:42 PM

Jason Mauss said:

Jeff - I wrote this article for my site a long time ago: http://www.vsdotnetguru.com/Articles.asp?aid=9

The analogy seemed to be well received. Feel free to steal it if you want.
# March 22, 2004 3:02 PM

Paul Wilson said:

# March 22, 2004 3:19 PM

Julie Lerman said:

When I was first moving from VB6 to .net, delegates was something that I just could not get a handle on (no pun intended). I looked everywhere for an explanation that worked for me and it finally clicked when reading Matthew MacDonald's "The Book of VB.NET" (no starch press). I have sinced passed the book on to someone in my user group so I can't give you the exact reference. But whatever it was that he wrote was just the right analogy for me.
# March 22, 2004 5:56 PM

AndrewSeven said:

I kind of like the dictionary.com entry ;)
http://dictionary.reference.com/search?q=delegate

Events are a little more concrete, they might be a good way to sneak up on the delegates.
# March 22, 2004 7:28 PM

Johnny Hall said:

Try this. I always point my new .NET guys here first...

http://www.sellsbrothers.com/writing/default.aspx?content=delegates.htm

# March 23, 2004 11:19 AM

TrackBack said:

# March 23, 2004 3:21 PM

denny said:

yep that viewstate is *HUGE* !

but there are folks using the message areas.... Heck I have about 1,090 ish posts up there ....

but it would be nice to see some updates to it and so forth...
# March 24, 2004 3:27 PM

Frans Bouma said:

"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."
An ex-MSN manager once told me: there is absolutely no vision nor toolset that is shared among all the teams running all those websites. Every team has its own CMS, running the site using its own graphics, templates and rules.

So it really doesn't surprise me that there are so many different sites ran by MS for .NET which are completely different and use all a complete different system to run the site etc. ... in short: are not working together.
# March 24, 2004 3:28 PM

Chad Humphries said:

I agree it came off as being poorly executed. Although I have some qualms with the look and feel of sourceforge it's very stable and a much better example of how to pull this type of system off. The only thing I dislike about sourceforge is the forums/messageboards are practically useless.
# March 24, 2004 3:49 PM

M. Keith Warren said:

Ding Ding Ding - We have a winner :)
# March 25, 2004 3:41 PM

CC said:

A fair and open fight between Linux and Microsoft sure would be nice to see, but I doubt it'll ever happen given Microsoft's relunctance to leave anything to chance. You never know, they might not win ;)
# March 25, 2004 4:13 PM

Darrell said:

CC - define fair and open. The definition of business strategy is putting yourself into a position where the competition is tilted in your favor. You cannot use illegal means to do it, though. What the EU seems to be doing is trying to make business strategy irrelevant. That will only hurt consumers in the end.

There's a reason that capitalism works, kind of like there's a reason that the theory of relativity works. They're both grounded on how things (in business or in nature) actually work. The EU might try to fight it, but eventually capitalism will prevail. Just look at Soviet Russia's downfall for the biggest example.
# March 25, 2004 4:59 PM

Thomas Williams said:

G'day Jeff- thanks for the view you've put forward. I like your point about Apple and what they bundle. Why aren't people complaining there?

There are other viewpoints/reactions/rants around, I reckon yours is pretty balanced and I personally agree with what you're saying (Frans does makes a good point about integrating vs "shipping with"/can be removed by OEM).

Thanks for clearly articulating it like this!
# March 25, 2004 8:44 PM

Frans Bouma said:

"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."
This is nice in theory, but in practise it will not work if a monopoly power is in place. You can't deny that MS has 90+% of the desktops and is the no.1. choice when you buy an OS with a computer (or better: when you buy a computer, almost all people expect windows with it).

Like 100% government regulation doesn't work (communism), 100% market regulation without any law doesn't work either (USA '10-'40). The EU has laws but not that restrictive that business isn't possible. Still the laws are there, as simple as that. I can assure you, companies have more freedom in the EU than muslims have in the US.
# March 26, 2004 2:51 AM

Jeff said:

It's not a theory, it works. We have natural monopolies like cable companies and phone companies, where it's cost prohibitive to duplicate the same systems they own and compete. But you know what? Those monopolies found competition in the form of satellite and wireless, respectively. The monopolies have been forced to adjust, and consumers win with choice.

Your Muslim comment is offensive and inappropriate.
# March 26, 2004 8:11 AM

TrackBack said:

# March 31, 2004 9:58 PM

OmegaSupreme said:

Wow cool congrats :D Whats the book about ?

Im looking for a good .net book right now, something a bit different from the usual. Im sick of most of them covering the same things ad nauseum .

Anyway best of luck with the book.
# April 2, 2004 10:48 AM

G. Andrew Duthie said:

Whether you should negotiate or not is not something anyone's going to be able to tell you without knowing the details of the contract you've been offered (not suggesting you should post those here, BTW). I can sympathize, though, because it can be hard for an author to know whether or not you're getting a good deal, which is why I use an agent. The advantage of an agent is that they know, from years of negotiating contracts, what's usual and customary, and how much more they can push for over what the publisher initially offers. It's pretty unusual for a publisher to make their best offer initially, but without knowing what's usual and customary, you end up essentially negotiating blind.

Without an agent, what it ends up coming down to is whether you're willing to write the book on the terms you've been offered. If you are, then negotiation is less important.
# April 2, 2004 11:01 AM

Greg Robinson said:

My advise, make sure you get paid, period. I wrote for WROX, never got paid.
# April 2, 2004 11:32 AM

sikandar said:

hi
i am an ordinary person & i want to develop my personality. i am always looking sad & can`t study very well & beside that people makes alot of joke of me, & this thing make me embarassed. so please solve my this problem thanks.
if u have any sooution then please send me mail on my e-mail address ( awansikandar@hotmail.com ).


Sikandar
# April 2, 2004 12:57 PM

Steve K. said:

Jeff,

Congrats. I just posted something last week that may be valuable to you in my weblog. Basically, a colleague of mine says go for the largest advance possible.

# April 2, 2004 4:23 PM

Shannon J Hager said:

I would make sure the contract is for this book only. That way your next book (assuming there is one) will be under a new contract that will be forged by your insight gained experience with this contract. Don't worry about being a diva yet, if you're worth it, you'll earn it quickly.

If this is a 1-shot wonder deal for you, the above doesn't apply and you should squeeze every penny out of it. :)
# April 3, 2004 12:30 AM

TrackBack said:

# April 6, 2004 9:37 AM

Snorrk said:

I agree up to a point -but It's all about reform.

Experimenting with ways to communicate with the community at large is not a bad thing. I think that C9 is a very ambitious project and I watched all the video clips with great interest. I'm going to be watching C9 evolve and hope it will reach its potential.

The point about the kings sitting down and consolidating their resources isn't very good - unless you can tell us right now what is and will be the best way to communicate with the community, I suggest you give them a break and let them experiment a bit.

Nobody is forcing you to visit Channel9..

>S

# April 6, 2004 9:51 AM

senkwe said:

Ouch, so now it's "stupid" for MS to simply try something new?
# April 6, 2004 9:57 AM

AndrewSeven said:

Repeated failures in community building have lead MS to a process of continual re-invention (ahem) of community sites. This does not solve the problem.

Its a blog and a forum and a bunch of aother things, it has not moved beyond anything.

Try moving beyond marketing and into the truth.

Please don't market annother .Not
# April 6, 2004 10:03 AM

Sahil Malik said:

I sort of agree.

I read a blog yesterday that windowsforms.net had 1/100th of the number of users as asp.net did. Curiously enough, as a big time techie junkie, I hadn't even heard about windowsforms.net .. come to think of it, why did I know about asp.net .. because a technology called "asp.net" was marketed (exactly that name). For windowsforms.net, why isn't it winforms.com?, or windowsapplications.net? or nonasp.net?

msdn.microsoft.com was good enough, and I wish all this content somehow branched from there. Now I have 5 competing sites to check. At most they should have segregated windows forms and asp .. but channel 9 is taking it too far. .. soon we'll have a channel 8,7,6...... .. ..
# April 6, 2004 10:10 AM

Marc Orchant said:

OK... graphically it's abit over the top but hardly stupid. It's a nice blend of mediums and puts a pretty human face on the participants. Give it a little time to mature and shake out the inevitable 1.0 issues before condemning it.
# April 6, 2004 11:30 AM

Henry Erich III said:

Everyone can have an opinion of Who, err heh What is stupid, right Jeff?
I personally love it because I can talk to "The Microsoft."
Maybe im just stupid though...
# April 6, 2004 12:02 PM

G. Andrew Duthie said:

Jeff,

Thanks for the nod. I do want to clarify that I am a non-MS blogger, since your post seems to lump me in with Rob as an MS blogger. I'm very happy to be considered in the same sentence as Rob as a source for ASP.NET info, but I didn't want anyone to mistakenly think that I'm a 'softie. :-)
# April 6, 2004 12:02 PM

Ryan Dawson said:

I like channel9. I like videos as opposed to reading (sometimes). What is stupid about that? You say that you would rather read their blog -well, I didn't know Bill Hill had a blog.
# April 6, 2004 12:14 PM

Colin Ramsay said:

"he 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."

How can you compare a textual medium to an entirely visual one? Video allows tonal inflection, body language. It's the peak of that old adage "a picture tells a thousand words".

You come across as someone who is spitting the dummy because you don't like something new. Someone who doesn't like their culture being re-invented because they are comfortable with the status quo.

If you don't want to watch Channel 9 then please don't. But to proclaim it as "stupid" only serves to demonstrate your shortsightedness.
# April 6, 2004 12:37 PM

Jerry Pisk said:

Video is a very good marketing tool. But it's useless for developers, which I think that's the target audience. 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. Personally I think Channel 9 is pure marketing, Microsoft needs to show that it listens to developers without the need to actualy do so (just read the blogs here about updates to VS, .Net framework and so on).
# April 6, 2004 12:58 PM

TrackBack said:

# April 6, 2004 2:19 PM

Dan K said:

no biggie, but ROCKS! is an AUDIO show..
# April 6, 2004 2:52 PM

TrackBack said:

# April 6, 2004 2:58 PM

Jeff said:

I know... I didn't make that clear, my bad. Edited.
# April 6, 2004 2:58 PM

Jason Mauss said:

Well said...sorta the same thing I think over at my blog.
# April 6, 2004 3:09 PM

Bruce Hafner said:

OK - maybe there are problems here. Maybe it might not get used....but here is what I see as the point (from a Non Microsoft Employee)

Too often in business...especially if you sort of control or drive an industry you tend to ignore the needs of the user base. In fact often you get a sort of Techno - pompous crowd ...sort of an elitist thing going on. Well Get over it. Often in life we get where we are by chance, locality, a friend etc. Development, technologies, groups get a sort of inbreeding think going on.

This is a great opportunity for the average user to give some feedback here and there. Even if only one great idea gets exchanged out of 150 bonehead ideas it is really well worth it.

Just my thoughts
# April 6, 2004 3:09 PM

TrackBack said:

# April 6, 2004 4:03 PM

TrackBack said:

# April 6, 2004 4:03 PM

TrackBack said:

# April 6, 2004 4:04 PM

TrackBack said:

# April 6, 2004 4:04 PM

Jerry Pisk said:

Bruce, you have tons of ways to give Microsoft feedback. Newsgroups, MSDN articles have forums, there's tons of "wish" e-mails at Microsoft, you can call them, you can send them a letter, you can comment on their employes' or groups' blogs. Do you really need yet another way? Especially since most of the existing feedback is going directly to Recycle Bin...
# April 6, 2004 8:04 PM

Robert Scoble said:

Jerry: I totally disagree that feedback goes into the recycle bin here. Absolutely not the case at all.
# April 6, 2004 8:10 PM

M said:

Robert, feedback through you might not go to the bin, but lots of it does, or at least is perceived to. I work for MS and *I* don't know how to give feedback to most products externally (internally, I'd jump onto autodl, join the appropriate alias and hope someone notices my comments). If I were a customer I would have no idea how to give feedback on a specific product, and if I did, and even if it were listened to, I bet 99% of the time there would be no feedback loop.

In my days before working for MS, I got involved in a beta for a competitors product. I had an idea for an improvement, it got to the dev responsible for that item, we worked back and forth on that idea, I was sent private builds containing this feature, and it made it to the final product. I don't see that sort of thing happening with MS. The perception of stuff going to the recycle bin is a problem.
# April 6, 2004 8:41 PM

TrackBack said:

BillDay.com &raquo; Channel 9
# April 6, 2004 8:52 PM

Rich Ersek said:

I think Snorrk has it about right. There are a lot of experiments going on right now and there will be more. Snorrk points out that one reason is that noone can know in advance what's going to work best. Another reason is flexibility - if MSDN had a framework that allowed experimentation and ease of posting content, then perhaps we could do all these things in one place. However, it's a lot easier to just put up and maintain an ASP.NET and for some other group to put up their own thing - for now.

So what does the future look like? It could be a lot of independent sites, which isn't all bad since Microsoft is a big company with many different types of customers. Do you think Xboxers would be happy to be directed to a place like MSDN for their forums? My guess is that some things will take off, some will die and others will consolidate.

For now, let's play a little. That was the fun of the internet and WWW in the first place.
# April 6, 2004 8:52 PM

TrackBack said:

Take Outs for 6 April 2004
# April 7, 2004 12:04 AM

TrackBack said:

# April 7, 2004 1:50 AM

Tim said:

I, personally think chanel 9 is a good idea. Weather or not it will actually turn into something good or not has yet to be seen. Its far easier to sit around and discuss what should be done as opposed to actually going out there and doing it. I think Jeff has a point though. This is just another 'resource' that we can all invest countless hours into reading and posting, but for what purpose? Will the chanel9 team be able to take this good idea and build it into soemthing that will benifit thoes in the chanel9 community, or will it just be one big wouldn't it be nice-fest?
# April 7, 2004 2:36 AM

Mike Schinkel said:

Damned if they do, damned if they don't. MS is often bashed for lack of innovation.
Can't innovate without trying new things. I like that they tried it, even if it does eventually suck (not saying it will or won't.) Babe Ruth struck out more often, because he swung the bat more...
:-)
# April 7, 2004 4:06 AM

Stuart Radcliffe said:

I've been wrestling with my thoughts on this for a while. I know what I should be doing but the route is not obvious.
# April 7, 2004 4:11 AM

Dennis said:

While we're at it, maybe we should tap your phone, so we can better target your junk mail.
# April 7, 2004 3:09 PM

Jeff said:

Please... that's not even in the neighborhood of being the same thing.
# April 7, 2004 4:00 PM

TrackBack said:

# April 7, 2004 4:07 PM

Dennis said:

Why not in the neighborhood? I expect my email to be a private communication between me and someone else. Just like my phone.

The only thing different is that Google is providing GMail for free, but if they offer to pay for my phone if they can tap it, I won't be doing that either.

I would say email is *worse*, since it's so much more easily archived and indexed. Yeah, my ISP server necessarily holds my email for a while, but they don't archive it, search it, and try to extract profiles based on it.

I guess you could make an argument that email normally passes in the clear on a public network anyway, but the lack of archiving and searchability makes it reasonably private unless someone goes to an awful lot of trouble.

And personally, I don't care to have ads better targetted to me, anyway. I'd rather they be totally irrelevant, so I'm more likely to save my money. If I want something, Google already does a good job of finding what I ask for.
# April 7, 2004 5:28 PM

Jeff said:

Your phone is on a huge network where people are listening, maybe even the feds. Your mail can be outright stolen from your mailbox or fall off the truck. Even if you get it, unless you burn it, it probably goes to the garbage or a recycling plant. All kinds of actual people touching your sensitive "data."

Again... who is touching your e-mail on Google? No one... it's all machines. It's not the big deal that the people in the linked article make it to be.
# April 7, 2004 7:14 PM

Dennis said:

Stealing from my mailbox is a federal crime. It's unlikely to "fall off the truck." I shred my sensitive mail before throwing it out. Listening in on my phone is also a federal crime, unless you are a law enforcement officer with a warrant (though that's been weakened lately, sadly enough).

Compare that to Google, saying that as a matter of course they're going to keep my private communications around forever, index them, and use the data for profit. If they were the phone company, they'd go to prison for that.

And you still haven't told me what's so different about a phone tap. If we had voice recognition software looking for keywords, and automatically sending you junk mail about tampons if you used that word in conversation, would you be okay with that? If we also stored recordings of every phone conversation you ever have, for easy retrieval by whoever's interested, would that be fine too?

# April 7, 2004 8:07 PM

Scott Mitchell said:

He's on the radio on KFI 640 on Saturdays and Sundays, IIRC. It's an LA radio station. You can listen live on the Internet at www.kfi640.com, if you're interested.
# April 7, 2004 9:00 PM

Jeff said:

I did tell you what's different about a phone tap... it's a human being. There is no mechanical indexing of phone conversations, so why would you even compare it to that? Furthermore, at no point has Google said they're going to "keep my private communications around forever, index them, and use the data for profit." Whatever Google will have "recorded" is not available for "easy retrieval by whoever's interested."

Give the black helicopters a rest...
# April 7, 2004 9:32 PM

Dennis said:

Um...they said they'll keep it after you close the account. They said they'll serve ads to you based on the content of your email. This is precisely analogous to the questions in my last paragraph. So what do you think? If a computer tapped your phone and sent you junk mail, based on keywords, and archived all your phone calls on a giant hard disk, how would you feel about it?



# April 7, 2004 9:47 PM

Jeff said:

Whatever dude... you're going to think what you're going to think. Read the privacy policy:

"You should be aware, however, that residual copies of information may remain stored on our systems even after the deletion of information or the termination of your account."

"Residual" to me means that it's lingering backup stuff. Your fears are nonsense:

"We will never rent, sell or share information that personally identifies you for marketing purposes without your express permission."
"We serve highly relevant ads and other information as part of the service using our unique content-targeting technology. No human reads your email to target ads or related information to you without your consent."
"Google will never sell, rent or share your personal information, including your Gmail address or email content, with any third parties for marketing purposes without your express permission."
"A limited set of employees are authorized to access user accounts, they are educated about the importance of maintaining user privacy, and their access to user accounts is recorded."
"We implement technology and procedures to try to make sure that external parties cannot access or modify users’ personal information on our servers."

You keep trying to make a case for conditions that don't exist.
# April 7, 2004 10:40 PM

Alex Barn said:

it is about the customer perception.
# April 8, 2004 3:19 AM

Dennis said:

"We serve highly relevant ads and other information as part of the service using our unique content-targeting technology. No human reads your email to target ads or related information to you without your consent."

So...junk mail based on computer-extracted keywords from your telephone calls, ok or no? Simple question. No answer?

As for the rest, Yahoo has arbitrarily changed their privacy policies, and sold information they previously claimed they wouldn't. Don't see why Google is necessarily any different.
# April 8, 2004 8:33 AM

Benjamin J. J. Voigt said:

I believe genarally the best way to give feedback to a particular product is probably the newsgroups. Lots of devs hanging around and many MVP's/RD's which can carry your message to the right people, plus newsgroups have a structure which can be analyzed and searched. Blogs are probably the second best option, but you'd find the right blog to go to.

I've been thinking a lot about how Channel 9 fits into the MS space, I've send my roomy and some other dudes off and confront them with the three big community concepts because I wasn't sure how to feel about it. After some more discussion at work, I'm pretty sure Channel 9 is not bad in the sense you are pointing out.

I'd not go to C9 for product feedback, but for entertainment! Socialize at C9 find a newsgroup or a blog for technical discussions. Of cause this is nothing official, but thats how I'd handle it.

I'll blog some more on this topic later on, but for now: We _will_ stop establishing yet an other forum, at least we are trying hard to stop.
# April 8, 2004 9:07 AM

Jeff said:

Socialize, eh? I guess that's cool. I guess when I want to socialize it's with people who are not in any way shape or form involved with computers! :)
# April 8, 2004 9:17 AM

Jeff said:

/me Smacks forehead in disbelief

Who is sending you junk mail? NOBODY. Again, you keep creating conditions that don't exist. We're talking about an ad on a Web site for a service that you don't pay for.
# April 8, 2004 9:20 AM

Dennis said:

I used junk mail because *lots* of people already send that to me, but you could transform to whatever method of advertising you consider most equivalent. Bottom line, they are giving you ads based on content that's supposed to be private. If someone, in some way, is advertising to you based on a computer listening to your phone calls, is that okay? If they offer a free phone line on that basis, would you take it?

In any case, an awful lot of people agree with me, it's hardly "black helicopter" stuff: http://www.wired.com/news/business/0,1367,62976,00.html?tw=wn_tophead_6
# April 8, 2004 10:58 AM

Jeff said:

If, if, if. This isn't a phone. It's not junk mail. It's a poor analogy. Good for people that agree with you, I still think they're over-reacting.

At the end of the day, if people are that worried about it, they simply don't need to use it.
# April 8, 2004 10:59 AM

TrackBack said:

# April 8, 2004 1:52 PM

Dennis said:

Yes, it's not a phone, that's an analogy, though I still don't get why you think it's a poor one. In any case, here's John Gilmore's analysis of their privacy policy:

http://craphound.com/gilmoreongmail.html
# April 8, 2004 4:25 PM

Thomas Martinsen said:

Looking forward to see your book on the self!
# April 13, 2004 9:54 AM

TrackBack said:

# April 13, 2004 10:56 AM

Drew Marsh said:

The thing is, when you sign up for GMail, you know this is how it works. How could anyone say it's a violation of privacy when, as you sign up for the service, you are told that this is how it's going to work? People that argue the privacy card on this one are just reaching.
# April 13, 2004 1:13 PM

Darrell said:

Yeah, at least Google is more upfront than many other companies about their privacy policy and practices.
# April 13, 2004 2:14 PM

Alex Barnett said:

Agreed.
# April 13, 2004 2:25 PM

scottgu said:

Hi Jeff,

For Whidbey (V2), the System.Web.Mail class will still use CDO internally. There is some work going on to support a native SMTP stack for post-Whidbey -- at which point in time the System.Web.Mail class will probably switch to using that internally instead.

Thanks,

Scott
# April 13, 2004 2:44 PM

Jeff said:

Cool and the gang... good to hear. I thought about writing my own SMTP component after I read Wrox's "Professional .NET Network Programming" because they more or less provided starter code. The issue then became that looking at the SMTP spec and the million return codes were a bit daunting to implement. It might be a "simple" protocol but it's a lot of bases to cover!
# April 13, 2004 3:33 PM

Stefán Jökull Sigurðarson said:

Try comparing the time it takes to apply a patch on a Windows 2003 box and reboot it to the time it takes to install a patch on a Linux box. The Windows server reboots in less than a minute while a Linux box, if it requires rebooting has a downtime of a few minutes. People should take a look at the total length of the downtime instead of the length of the uptime, i think you'll find them quite similar :)
# April 14, 2004 11:09 AM

denny said:

the root of this is what is beeing patched....

*EVEN UNIX / LINUX* has to reboot if the code is used in a live running process that you can't halt.

the windows problems are:

1) what services to halt to unlock the dll?
2) dlls that you can't unlock due to OS dependancy issues.

heck the re-boots are way down from say NT 4.0 days.....

but yea the whole OS needs to work a bit like the "rolling-restart" of an ASP.NET web site
where a new appdomain is created and the callers on the old app domain exit and then the old domain halts.

BUT at SOME POINT you have to reboot of you are patching the OS core.
on any system....
# April 14, 2004 11:54 AM

Drew Marsh said:

If you can figure out how to dynamically replace any of the dlls that are being upgraded in the processes that are actively using them I'm sure Microsoft would love to see your resume. ;) I'm pretty sure this is technically possible, but I don't think the OS supports it today.

So with that in mind, you'd have to at least cycle all the processes on the machine in order to ensure that all processes are using the latest versions of whatever dlls were updated. In that case, it sounds like a reboot would be easier to me. :)
# April 14, 2004 12:50 PM

Jeff said:

Hey... I didn't say I knew how, or even care how. It's just something I want as a customer. Customers are allowed to comlpain, right?
# April 14, 2004 1:28 PM

TrackBack said:

# April 15, 2004 10:56 AM

Scott Galloway said:

Very interesting, the ASP.NET forums (where I've been lurking of late) certainly suffer from many of these issues, the "TOP" rating is badly abused - put simply it rewards useless posting (the number of 'I agree' posts over there is getting nuts). The search functions over there too are pretty nasty - one biggy, try putting in a search term and hitting 'Enter' - unexpected isn't it!. Try doing that inside a forum, that generates an error page the vast majority of the time. That said though there is a lot of good information over there and if people just spent two minutes trying to use the search, a good 80% of the posts could be avoided. It has a FAQ forum (IMHO this should be a post at the top of each forum, most of them have between 20-30 recurrent questions, answering them in one place would again stop redundancy).
# April 15, 2004 11:19 AM

Jeff said:

Don't even get me started about "top" members. That's the single most useless "feature" any forum has ever had. It doesn't do anything to facilitate discussion. Does anyone remember discussion? :)
# April 15, 2004 12:40 PM

jledgard said:

Thanks for your feedback. I'll be interested in reading what you think about my proposed solutions.
# April 15, 2004 12:56 PM

ed said:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<document>
<title>Proprietary XML schema Example</title>
<date>2004-04-15</date>
<body type="base64 proprietary enhancement"> TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0
aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1
c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0
aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdl
LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
</body>
</document>
# April 15, 2004 6:21 PM

Jeff said:

But it's still XML...
# April 15, 2004 9:48 PM

AndrewSeven said:

The word "Windows" is a proprietary trademark, but it is still English.
# April 15, 2004 10:01 PM

IM said:

Proprietary binary format: I mean it's still just bytes?
Fink about it.
# April 16, 2004 4:48 AM

Jeff said:

So what you guys are saying is that Visio files are just binaries wrapped in XML? If that's the case, that pretty much makes it pointless to use XML.
# April 16, 2004 7:55 AM

ed said:

Exactly jeff. Its more of a to ride the XML buzzword craze than to actually use it for its advantages.
# April 19, 2004 2:37 PM

Scott Galloway said:

Shame, it was shaping up to be a really good site, some of the articles cover stuff better than I've seen anywhere else...
# April 20, 2004 9:23 AM

Jeff said:

I should add that I'm not abandoning it... I just don't think I'll have time for another month or two to get back to writing it.
# April 20, 2004 10:10 AM

Mark Hoffman said:


I hear ya man....I read your post and thought "hey! That's me!" I've got a long list of writing projects, books to read, code to write, etc, but that whole "making a living" thing always seems to get in the way.
# April 20, 2004 10:20 AM

Scott Galloway said:

I have one book which stands out which is .NET Components by Juval Lowy (http://www.amazon.co.uk/exec/obidos/ASIN/0596003471). There's also Patterns Of Enterprise Architecture by Martin Fowler (http://www.amazon.co.uk/exec/obidos/ASIN/0321127420) - but neither really give a start to finish view (one is too low level, the other too high). There is also the C# Class Design Handbook (http://www.amazon.co.uk/exec/obidos/ASIN/1590592573) haven't read that yet though...but the review seems pretty good!
# April 20, 2004 1:34 PM

Phil Weber said:

# April 20, 2004 2:13 PM

Jerry Pisk said:

You're crying on the wrong grave, what you're describing is IE's buggy support of CSS. You have two options - use strict HTML DOCTYPE, that will fix the problem in IE6+ or use a trick to work around that issue, surround your 100% wide element with an extra div, that will have no width, no margins, no padding and no border.
# April 23, 2004 4:00 PM

Jeff said:

Good call! You're my hero!
# April 24, 2004 10:05 AM

moose said:

Then why have Microsoft settled so many legal disputes out of court for just this type of action?

I'm in no way a Microsoft hater, but I'm also not a Microsoft fanboy.
# April 27, 2004 1:02 PM

Jeff said:

Probably because it's less expensive and less distracting in the long run. Settling a suit doesn't make you guilty. Sometimes it's just easier to make it go away.
# April 27, 2004 1:05 PM

moose said:

Settling 4 or more shows problems in their practise.

Losing their anti-trust case in the US to have it appealed by a Bush administration (coincidence? I think not), getting landed by a EU anti-trust case...

Its not all bad luck and resentment, its obvious bad practise. Even Microsoft admit as much in recent years...settling so many for so much almost proves as much.

You dont pay billions to settle out of court if you're not guilty.
# April 27, 2004 1:31 PM

Scott Sargent said:

Here's what i would do, If you're on a contract that's paying fairly well put half - 2/3rds of your $$ away in an account that you can't get to via check cards/debit cards etc.. do this for about a year or so, if you're successful after about a year you'll have about six months pay if not more in there. With that kind of money to play with you can take a month off and not worry about work. I did this (the saving part) over the last two years, I plan to take a month off this summer and i can't wait.
# April 28, 2004 9:00 AM

Jeff said:

Actually... I was thinking about going by the end of May. No way in hell am I going to waste six more months of my life on this job. No money is worth being bored out of your mind and not challenged.
# April 28, 2004 9:14 AM

uber said:

I've thought about it. In fact, I'm moving to Korea for the summer, starting in June. I'll be leaving a good job in New York City for this, but it's something that I've wanted to do for a while.

It's your life, and if you want some time off, then I think you should take it.
# April 28, 2004 9:48 AM

G. Andrew Duthie said:

My wife and I both stopped working almost entirely for around 2-3 months after our son was born. It was great, and we were very fortunate to have been in a position to do that. My only regret was that I did not start looking for additional work as early as I should have, so experienced a little anxiety towards the end of that period. If you plan to take the time off, it's probably a good idea to either have a plan in place for finding work when you want it, or having enough socked away to cover an additional month or two of expenses while you look for work.

# April 28, 2004 9:57 AM

Fabrice said:

Is leaving work for a month that extraordinary in the US? This is something that can be done here in France without quitting your job.
# April 29, 2004 5:16 AM

moose said:

For someone supposedly used to contract work, you don't half moan about job security on this blog. Get a salary and get benefits like paid holidays. Sheesh, why not discuss it with your wife, instead of on a technical blog?
# April 29, 2004 6:56 AM

Jeff said:

I'm sorry, "Moose," was someone forcing you to read this? That's what I thought.

Fabrice: Yes, taking a month off is unusual here in the states. Our culture is weird here, where people are expected to work 2000+ hours a year. I have a feeling that a lot of people will get to their golden years and wonder, "What the hell did I do with my life?"

Obviously I don't want to be one of those people!
# April 29, 2004 7:58 AM

Kent Tegels said:

Couldn't agree more. Good post.
# May 5, 2004 12:39 AM

EUgenio said:

One of the best quotes I heard about the subject, referring to the code, is:
"You couldn't expect much from something that has the primary function to execute, not to convey knowledge".
# May 5, 2004 5:15 AM

Doug Reilly said:

The joke about most corporate hiring practices is they seperate the wheat from the chaff and then hire the chaff...
# May 5, 2004 2:04 PM

Wallym said:

I hope that I did not imply the wrong thing. I do not think it is a bad thing that immigrants are looking for jobs. I see it as a natural progression. I have no problem with someone that can do my job better than me for the same money or the doing the same job for less money. If they can meet either requirement, then they deserve to get my work. That could be in electrical engineering, software development, or somewhere in between. "More for less" is something that I have tried to live by for a long time. I expect others to do the same.

I am merely stating that I do not agree with what Dr. Barrett is saying.

Wally
# May 5, 2004 9:14 PM

Stefano Demiliani said:

The previous build was terrible, too much unstable. I hope this could be better :)
# May 6, 2004 10:01 AM

Hendrik Swanepoel said:

I have printed and binded the dofactory pattern examples into a reference. I ave also included these examples into the bind, they are real-world, non-software examples of patterns:

http://www.agcs.com/supportv2/techpapers/patterns/papers/patexamples.htm
# May 7, 2004 3:23 AM

Matt Hawley said:

I guess its okay, now, that Leo left TechTV the other month.
# May 7, 2004 9:05 AM

Jeff said:

He didn't leave as much as the former owners were trying to screw him out of what he was owed. In the end, he actually comes out on top though I would think, because he owns "shares" of TechTV, which I assume Comcast has to convert to Comcast stock in the acquisition. He has been back on Call For Help for a few weeks now.
# May 7, 2004 9:14 AM

Duncan Mackenzie said:

Oddly enough, when I wore mine (from the PDC, but same idea) the barista at Starbucks knew exactly what it meant... turns out she had learned about it as part of a college course. But yeah, in general it just raises more questions than anything else :)
# May 10, 2004 12:49 PM

Bob Mixon said:

Jeff,

I agree completely. In addition to the tools you mentioned (which I use regularly), don't forget log4net! :)
# May 12, 2004 1:48 AM

michael said:

Nice site, but don't forget...

<% @Page Trace="False" %>

:)
# May 13, 2004 8:27 PM

Jeff said:

Uh... the trace isn't on. Why would you see trace info?
# May 13, 2004 10:30 PM

Brad! said:


Sorry for the late comment, but let me say --

If you don't ask, you won't get it.....

Having been in acquisitions and worked as an associate publisher for a major computer book publisher, I can say that if you don't ask for something, you won't generally get it. It is amazing how many people didn't/don't ask for better rates or for changing in a contract. Even if you do ask, the publisher may say no. That is why you ask twice <G>.

As you mentioned, Scott hits on some of the issues. Things to ask about -

- higher advances
- higher starting royalties
- scaled royalties -- if the book sells more copies, your percentage should go up.
- lower reserve percentages
- more frequent payments (if they are larger gaps than monthly)-
- more free copies
- better deadlines
- guaranteed first options on revisions

Again, if you don't ask, you won't get. It was amazing to see how many author's (and even agents) didn't ask for better deals. Even if they always get a 'no', they should still ask.

Congratulations on your book deal if it did come through. Writing a book is a lot of hard work, but when you get the printed copy in your hands, you realize the work was worth it.

Brad!




Brad!
# May 17, 2004 11:01 AM

Jeff said:

Yep... it came through, and yep, I did some asking. I got more out of it, you bet!
# May 17, 2004 1:39 PM

Jim Meegan said:

I am a new commer to ASP.net. I have a question that you may be able to give somee insite to. I am reading the book Developing Web Applications with Microsoft. In some cases they build separate Class files and in some cases they put he classes right in the behind code file. Why would you want to put classes there? Would it not make sense to always have them in their own file so you could use them elsewhere? Does not putting them in the behind code file defeat the object oriented approach?

Thanks for any insight Jim
# May 18, 2004 10:25 AM

Joe said:


I think some people just have more energy than others. I am a runner, and have competed in olympic distance triathlons as well as 30 mile trail runs. I actually think it is fun. You have to enjoy that feeling of total exertion. Some people think it's crazy to run 30 miles on a trail, but others don't stop at thirty... they go on for 100 miles. It's all relative to your energy level. It is from this frame of mind that I write the following.
It is possible to work 60-70 hours a week and still have time for your wife and kids. That is if you only need about four hours of sleep a night, and don't mind staying up 24 hrs. at least once a week. You really do get used to it. It's not for everyone though. Some people just can't take it. I am 39 y/o and have been doing it for a couple of years now, and it has become easier over time. This allows me to make 100,000 + a year and still enjoy my family. believe it or not, I still have time to go camping and waterskiing in the summer. Most of my overtime shifts are from 11 pm to 7am, and regular shifts are 12 hrs.(rotating days and nights) It really helps to stay fit. We have a fitness room with weights and cardio equipment where I work. If I can sneak in at least three workouts a week (usually about one hour and fifteen minutes each) I feel great. I know that someday I will have to slow down or might burn-out, but for now it's working out great.
# May 18, 2004 5:06 PM

Joseph said:

Personally, I would leave it as is, even if that meant that it was not a standard API. Too often I find that being locked into someone else's idea of how to code something just doesn't suffice. In fact, that has been my biggest block to finally learning VB - that I prefer to just build everything that I can by hand.
# May 21, 2004 9:24 AM

Steve said:

Very glorious indeed! ;-) Can I be next....
# May 21, 2004 9:29 AM

bilbo said:

congrats! move forward and kick some ass!
# May 21, 2004 9:33 AM

Puleen said:

Congratulations, now if only most of us can realize that sooner and act upon that realization, we would become true masters of our own universe.

Cheers
# May 21, 2004 9:33 AM

M. Keith Warren said:

Today is also the day you learn how hard it is to get out of bed when you dont necessarily have somewhere to be.

Good Luck! Welcome to the club.
# May 21, 2004 9:35 AM

christoc said:

Congrats Jeff! I had the very same day about 3 weeks ago now. Not out on my own, but off to a new opportunity. So far the first week has been great!
# May 21, 2004 9:36 AM

Matt said:

Congrats. A day-job coworker/side-gig partner just quit his job last Friday. He's been IM'ing me all week from coffee shops, asking me how my status reports are going, did I fill out my timesheet, etc. He's trying to blog it as well: http://www.thinkfirst.biz/blog/
# May 21, 2004 9:55 AM

Sonu Kapoor said:

All the best.

Sonu
# May 21, 2004 10:15 AM

Siva Mateti said:

Also, today is the day where there will be no weekends.
# May 21, 2004 10:17 AM

Jeff said:

...Or weekdays. You're talking to someone who has made it an art form to make as much as possible while doing as little as possible.
# May 21, 2004 10:25 AM

OmegaSupreme said:

Today is a good day. Congrats and good luck :D
# May 21, 2004 10:30 AM

brady gaster said:

YES! Very awesome indeed! I wish you the best of luck, glorious blessings abound that will make your dreams realities, and a most vigorous vote of hopefullness for all of your aspirations!

GO NUTS! DO IT YOUR WAY!
# May 21, 2004 10:35 AM

brad said:

I hear and understand the relief in your words. Monday is the day that I give notice, so that two Mondays after that I will say:

-Today is the day that I voluntarily quit my day job.

-Today is the day that I accept the financial risks of working for myself and take a real stab at making it work.

...
# May 21, 2004 10:44 AM

Girish said:

Best of luck
# May 21, 2004 11:08 AM

SBC said:

Great!! It's also my birthday today!!
# May 21, 2004 12:45 PM

Vic said:

Congratulations. Thats great to hear.
# May 21, 2004 4:07 PM

Addy Santo said:

Good luck!
# May 21, 2004 4:16 PM

Brian Moeskau said:

Thanks for the note on my blog -- I thought I'd return the favor. I have to admit that even though I've only been free from The Man for a week now, it's been a great week! I am actually working more now in terms of hours, but it just feels so much better knowing that I will reap the rewards of my effort (in theory...) It somehow doesn't even feel like work to me, but I guess that's how it feels to be doing what you truly love. Now if I can just get some income going, I'll be golden :) Best of luck to you.
# May 22, 2004 7:51 PM

Josh Baltzell said:

Best of luck to you. I figure that as soon as I triple my programming knowlege it may be time to take that dive. I wish you the best.
# May 22, 2004 9:15 PM

du8die said:

Congrats Jeff.

I'm looking forward to the book.

du8die
# May 22, 2004 9:48 PM

Sandeep said:

Best of luck!

I wish I had your guts. And yeah, looking forward to your book! :-)
# May 23, 2004 7:21 AM

Michael Moncur said:

See their rock show live if you ever get the chance. It was amazing.

The original theatre show is great too.
# May 25, 2004 5:06 AM

pete said:

Your wrong, he didn't make it by himself at all! Go to the following website and check it out. www.balderdash.com
# May 25, 2004 11:12 AM

Jeff said:

I'm not wrong at all. He did write the game himself. I know because I asked him personally.
# May 25, 2004 12:04 PM

TrackBack said:

# May 25, 2004 5:37 PM

TrackBack said:

# May 25, 2004 5:38 PM

Ian said:

Jeff,

Just been reading some of your blog.

All I can say to you, is best of luck - your ealier comment, "bored out of your mind - and not challenged" rang several bells.

Know exactly where your're coming from - left my job last week. Great feeling (for now at least...).

Anyhowz, good luck to ya !!!

# May 25, 2004 6:39 PM

michael said:

Hey Jeff - nice to hear that self employement is going well. Maybe one day I'll have that luxury to work for myself...only time will tell.

Anyway, I noticed the mention of your other site, which is very interesting, and I recently posted a blog about one of your articles here: http://www.melloblog.com/Feedback.aspx?BlogID=69

Good luck!
# May 25, 2004 9:27 PM

Sonu Kapoor said:

All the best man.

Sonu Kapoor
# May 26, 2004 10:34 PM

Jerry Pisk said:

The question is - will it be a web based interface or are you going to be able to use the regular client (integrated with your favorite IDE) to access VSS database over HTTP?
# May 27, 2004 7:39 PM

Sonu Kapoor said:

I uninstalled it too today :) It had some problems when using a radiobuttonlist control in asp.net. Really strange.

Sonu
# May 29, 2004 12:02 AM

TrackBack said:

# May 29, 2004 12:29 AM

Stefano Demiliani said:

Curious... :) I'd like to have an explanation... Java Runtime Environment seems strange.
# May 29, 2004 2:53 PM

Jeff said:

Similar thing happened on my laptop, only it was another app. Whichever thing you uninstalled last that uses that component appears there.
# May 29, 2004 3:23 PM

TrackBack said:

# May 30, 2004 12:57 AM

Ben Delorean said:

For the past 5 days now Ive been denied access to my hotmail account because of Microsoft's .NET crap!!
# May 30, 2004 3:24 AM

Andrew Pechersky said:

A lot of people have such a problem.
I looks like they've changed assembly format a bit and NUnit can understand it.
The ugly (but working) solution is to use Mono port of NUnit.

Good Luck!
# May 31, 2004 4:06 AM

Jamie Cansdale said:

I have just managed to get NUnitAddIn working with Visual Studio 2005. If you drop me a note I'll send you a link when it's ready.

http://weblogs.asp.net/nunitaddin/contact.aspx
# May 31, 2004 4:32 AM

denny said:

this is a classic ...

"it Depends" :-)
# May 31, 2004 3:26 PM

Jerry Pisk said:

Denny's right, it depends. Usually the data access layer throws an exception (since using "magic" values is not a good thing to do) and the UI catches it and shows an error message. So I guess I would go with throwing an exception - unless not having a record is a normal operation, such as returning a list of search results, as oposed to returning a record to edit.
# May 31, 2004 9:56 PM

Paul Speranza said:

# May 31, 2004 10:57 PM

Aaron Junod said:

You can also specify a config file in an .nunit file. This allows you to use the same config file if you so choose, and then use the .nunit file later from either the console, or the gui. re : http://blog.iceglue.com/archive/2004/05/12/168.aspx
# June 1, 2004 8:27 AM

alexio said:

i cannot wait i have seen the first movies and its a better game than the first and the second i hope it will be coming too for the playstation 2
# June 1, 2004 1:08 PM

steven said:

Hi there,
I'm just having a little trouble with this - trying to get the example from Steve Padfield's article working.
Have put your line in: HttpWorkerRequest wr = new SimpleWorkerRequest("/webapp", "c:\\inetpub\\wwwroot\\webapp\\", "default.aspx", "", tw);

...but get this exception:
System.Web.HttpException : Invalid use of SimpleWorkerRequest constructor. Application path cannot be overridden in this context. Please use SimpleWorkerRequest constructor that does not override the application path.

Can't find anything on google about it - - did you see this when you were trying things out?
Any ideas very gratefully received!
Thanks
S
# June 3, 2004 11:45 AM

Jeff said:

My example was on v2 of the framework, the alpha (May build). I don't think the current versions have the same overload, and as such you'd need to use Steve's code.
# June 3, 2004 7:54 PM

TrackBack said:

# June 4, 2004 11:30 PM

TrackBack said:

# June 5, 2004 5:19 PM

Kevin Dente said:

Because abstract classes are easier to version. You can add a new virtual method to a base class without breaking existing code.
# June 7, 2004 4:57 PM

John said:

How does it extend the network to the Xbox? The only ethernet jack is for input from your cable modem/DSL router.
# June 7, 2004 8:46 PM

Jeff said:

Or any router... it doesn't care.
# June 7, 2004 10:29 PM

Alex said:

Yep...I want one too. Ever since I got my license, the only thing I use my iPod for is a stereo since I don't have a bus ride or walk to the bus stop.
# June 8, 2004 2:20 PM

Matt Hawley said:

You're not alone... a ton of times I just see the "stupid" posts sit there with no responses...then someone feels bad for them a week later and answers it. Maybe "Googling" just isn't the household buzzword we developers know it to be.
# June 8, 2004 3:54 PM

Brian Carroll said:

You're obviously not alone...

http://www.redcoat.net/pics/answer.gif
# June 8, 2004 4:25 PM

Scott C Reynolds said:

I get this from my friends all day long. "do you know how to do x in y?". "What's the function for blah in yadda"? and so on. So I've taken to just putting together a google search URL with the question and pasting it back through the IM window.
# June 8, 2004 5:03 PM

TrackBack said:

# June 8, 2004 6:44 PM

michael said:

# June 8, 2004 8:43 PM

TrackBack said:

# June 8, 2004 8:58 PM

Justin Long said:

Yes, G4 TV sucks. I use to love watching tech tv but now I can't even stand to see the channel in my guide. I foresee many sad days ahead for those that liked tech tv.
# June 9, 2004 1:37 AM

Raj Kaimal said:


Smack on your head. How could you have missed this?

First time I used this was to put things in the Context.Item dictionary and perform a Server.Transfer.
# June 9, 2004 10:02 PM

Jerry Pisk said:

Can you try what happens if you have two public classes in one file and what will happen if you have a partial class in five files? Will it rename the other files as well?
# June 10, 2004 3:43 PM

Jeff said:

Good question... I haven't tried.
# June 10, 2004 6:04 PM

Josh Christie said:

Amen to that! Protectionism will only weaken the US software industry over the long term which will result in even less jobs. If your job could easily be send overseas, work on improving your own skillset and gaining experience that will make you more valuable rather than pushing to have your job artificially protected by laws against offshoring.
# June 11, 2004 8:47 AM

Jason Salas said:

Actually, for every reason besides the pay, I totally love my job. I'm a marketing guy, so I got into media because it was the most visible industry of those here on Guam. I'd been doing web design for years and started writing code out of necessarity because trying to run a high-end news site with the "File ==> Save As..." method of archival was way too daunting a task.

I get to integrate TV, radio and the Web, which is great fun. We're also not the most advanced shop in the aggregate, so I have total freedom to build new stuff, not being limited by migratory concerns of old platforms. It's really a labor of love. :)
# June 13, 2004 1:44 AM

Jerry Pisk said:

Database, since memory is not shared between load balanced servers. There's really nothing to think about here, Application state is not even an option.
# June 13, 2004 5:42 PM

Scott McCulloch said:

Anonymous Users:-

Cached for defined period (60 seconds), then persist to database. Use a cookie to to assign a temporary ID so subsequent requests are not recorded as a seperate ID.

Registered Users:-

Whidbey Style:-

GetUser(bool isOnline)

----

Take a look at the new forums for an example.
# June 13, 2004 7:33 PM

Mark Davis said:

G4 sucks the big one, I have to admit that some of the g4 shows are interesting but the reviews these people make are pretty freaking stupid. They point out key elements of a game and take points away for it. example: 2d fighting games like Street Fight VS SNK lose points for being 2d. 2d graphics make the game what it is.
# June 14, 2004 7:47 PM

Fredrik Normén said:

Hi Jeff,

Have in mind that the paging methods maybe will be removed from ADO.Net 2.0, because of customer feedbacks. MS uses cursors to handle the paging and that will affect performance.

"The implementation of paging was based on cursors, and both internal and external customer feedback indicated that it was not going to deliver the performance and scalability that our customers require. So we decided to remove the feature from the next release. We’ll continue working on the issue, and assuming that priorities don’t change, we probably come up with a better, integrated paging solution in a future release." - Pablo
# June 15, 2004 1:50 AM

Jeff said:

Where did you see that?
# June 15, 2004 9:27 AM

kevin white said:

I hear the CD has some DRM embedded in it to prevent ripping.
# June 15, 2004 5:21 PM

mix meister said:

DRM? i see over 200 seeders for the new album already.
# June 15, 2004 6:25 PM

Jeff said:

Uh, ripped it with iTunes as soon as I got home, listening to it on the iPod now.
# June 15, 2004 6:26 PM

Stefán Jökull said:

1.69$/gallon.. you have it good.. we in Iceland have to pay about 5.3$/gallon (comparing to a US gallon af course) :/

The new Beastie album rocks though! Nice evolution from Hello Nasty.
# June 15, 2004 9:04 PM

Fredrik Normén said:

The last section in my previous feedback was from Pablo Castro, Program Manager at the ADO.Net team, I ask him about it.
# June 16, 2004 1:50 AM

jollyone said:

i agree it sucks, even the webiste sucks. How could they get rid of Call For Help, that was one of the better shows and it recieved a lot of ratings. G4 is killing the TechTV image, name, and the Technical Television Image.
# June 16, 2004 3:20 PM

df said:

I think the issue is not that someone had to discontinue a free service, but in the way it was closed down without notice.
# June 16, 2004 11:34 PM

Jeff said:

But what difference does it make? I mean, what are you really going to gain by knowing ahead of time?
# June 17, 2004 12:10 AM

Joel Polkinghorne said:

Don't just complain here, really let Comcast know how you feel by signing this petition. Its time we actually did something besides gripe in forums. Please sign and pass the URL on to all your friends!

http://www.PetitionOnline.com/techback/petition.html
# June 17, 2004 12:52 AM

Jeff said:

That will do exactly nothing. They didn't buy a network without a plan they thought made sense.
# June 17, 2004 1:09 AM

!vo said:

I agree with df.
When you know in advance, you are able to save your work and even search for an alternative.
The people on weblogs.com aren't even sure if they will get a backup of their content, wich is still their intellectual property.
# June 17, 2004 2:57 AM

Shannon J Hager said:

What do you gain by knowing in advance? The ability to backup and move your site. You act like this is no big deal. You either don't care at all about the content you have on this blog and wouldn't mind losing it or you are smart and responsible and have your data backed up.
# June 17, 2004 3:31 AM

Jeff said:

But the majority of complaining I read had nothing to do with getting the content off, it was all about complaining that the free service was gone.

And sorry, but if the TOS was even remotely standard, the person running the server owns your post when you make it, not you.
# June 17, 2004 9:18 AM

Adam Hill said:

And it was by no means *free*. Dave got a lot of juice by getting the bloggers to use Radio (Userland's blogging software) at 49.95 a pop (there is no other way to post to a Manila site IIRC)and he got a lot of juice from saying, look at our cool server software, we are hosting 3K blogs. Look at all our satisfied customers.

Dave was the owner of Userland (it is now owned by his brother) and is arguably the titular head as well. This was not joe random user shutting down a blogging service it was the proclaimed 'godfather' of Blogging. He had time to travel to Amsterdam last month, a quick note about impending doom would have been nice.

Forewarning would have gone a long way to help people backup their data. (Note: Dave exempted 2 A-List bloggers - Scoble and Doc Searls) The hoi-polloi were not so lucky :)
# June 17, 2004 12:34 PM

Jeff said:

I guess that puts things in a little more perspective. It still implies though that there are certain customer obligations there that I'm not sure actually exist.
# June 17, 2004 12:59 PM

Josh Christie said:

While agree it's a shame that our government wastes so much money, I don't think Ben Cohen's global politics for dummies lesson is a good source for perspective. This is the same guy who wrote the article below ONE WEEK before September 11th 2001 in a stunt to show that America faces no enemy threats.

"ENEMY WANTED. Serious enemy needed to justify Pentagon budget increase. Defense contractors desperate. Interested enemies send letter and photo or video (threatening, ok) to Enemy Search Committee, Priorities Campaign, 1350 Broadway, NY, NY, 10018."

He then started the article with this:

"Here's the deal: We know our politicians have their work cut out for them. They need to find an enemy to justify maintaining the Pentagon budget as if the Cold War never ended. But the pool of credible enemies is evaporating. North Korea is even going diplomatic...."

In the animation, he argues that world hunger could be solved with just a little more money. He must have forgotten about Somalia and Rwanda where the hunger problem is caused by violence and cannot be solved by simply buying more food and mailing it over there. He may be surprised to find out that many of the 40 oreos in the Pentagon's budget go to peacekeeping missions where our military ensures food actually gets to the people who need it.
# June 17, 2004 3:44 PM

Jeff said:

Right... just like we're doing the right thing in Sudan, right? What's missing from that situation besides oil?

Your example is ludicrous. $40 billion didn't prevent 9/11. $100 million wouldn't have prevented it. "Global politics for dummies" it might be, but when the GAO puts out a new report every other week about the waste in the military, I get a little pissed. If you're OK with pissing away money when we've got plenty of crisis here, that's your right, but I'm not willing to turn and look the other way.
# June 17, 2004 6:09 PM

Josh Christie said:

Jeff, I did not state or imply that $40 billion (or anything else) would have prevented 9/11 and I agreed with you that our government wastes a lot of money. Believe me, wastes of tax dollars infuriate me too whether it's in the military or one of the many domestic 'pork' projects. I'm not sure why I'm being accused of turning and looking the other way.

My point was that Ben Cohen was dead wrong about America's lack of enemies in 2001 and is now oversimplifying world hunger to say that it could be solved by cutting the Pentagon's budget by a couple billion dollars. I'm not saying we shouldn't help people in need around the world. I've spent several months in third world parts of Mexico building homes for such families, myself. I'm just giving my perspective on Ben Cohen's assertions that the world's problems could be solved by cutting the Pentagon's budget.
# June 17, 2004 10:33 PM

Jeff said:

A lot of people said the Lakers would sweep the NBA Finals too. Regardless of what he thinks we can solve, the sheer disproportion is enough to make anyone a little pissed off. I think that's what he's really going for.
# June 18, 2004 10:29 AM

david said:

i agree at so do the people at the url come here if you are againsed the g4 ttv merger
# June 19, 2004 1:07 AM

Kathleen Bremner said:

I think channel 9 isent stupid I think channel 7 is stupid since all it is News! :)
# June 19, 2004 5:45 PM

john said:

i just want to connect my xbox live with my airport network with my sbc dsl connection. any router recommendations?
# June 19, 2004 5:50 PM

Brad said:

Kindered spirit alert. I salveged an old CPi 366 from the dumpster at work and I find I use it all the time for writing proposals, surfing, email etc. Anyting but Visual Studio, as I suspect it would just be a pig.
# June 19, 2004 7:04 PM

Damian said:

There are two good reasons for it..


1. Someone gets a post in between the person you are replying to. Result : Your post doesn't make any sense and you look silly.

2. The person you are replying to edits or deletes their post. Result : Your post doesn't make any sense and you look silly.

# June 20, 2004 10:51 PM

- said:

3. Quoting is the default behavior in many clients
# June 20, 2004 11:18 PM

Damian said:

Adam has got a few things wrong there.

Manilla can be posted to directly, like this site. It's a server hosted blogging platform. This is what was running on weblogs.com for free.

Radio pushes static html to radio.userland.com, which hasn't been turned off, it's part of the radio package.
# June 20, 2004 11:50 PM

Jeff said:

We're not talking about a client, we're talking about a Web-based forum.

Quoting is largely the act of people that don't remember how to write. It's easy enough to start a post with, "Regarding such and such," or whatever.

The bigger picture problem is that people don't remember how to communicate because the instant gratification of the Internet requires less out of them.
# June 21, 2004 1:17 PM

TrackBack said:

# June 21, 2004 6:05 PM

anon said:

The latest version of freetextbox has Cross-browser support (Mozilla 1.3+, PC/IE 5+)
# June 21, 2004 10:06 PM

Adam Kinney said:

Congrats, man! Stay Strong.
# June 21, 2004 10:27 PM

Jeff said:

I'm aware of that... that's what I said.
# June 21, 2004 11:29 PM

Jon Galloway said:

You might want to check if HTMLArea does the same thing. It's also cross-browser. I'd guess that it's probably just dressing up content-editable like all thes controls seem to do, so that would mean it's probably different HTML on each browser, but it might be worth checking. HTMLArea: http://www.interactivetools.com/products/htmlarea/
# June 22, 2004 1:38 AM

Jeff said:

Upon closer inspection, FreeTextBox appears to parse the crappy IE HTML into "real" HTML, so it might be easier than I thought!
# June 22, 2004 10:07 AM

OmegaSupreme said:

Yeah can't beat the real heavy, casino style chips. I'm sure they'll be a good investment over a few poker nights, definatley worth it.
# June 23, 2004 11:37 AM

TrackBack said:

# June 24, 2004 12:51 AM

tobester said:

Whew! I thought I was the only one who thought that the merger really sucked! I'm glad know that alot of others hate it too. I used to be an avid techtv wathcer and now my wife just asked me why I no longer watch the channel. The answer is because it's unbearable! Utterly Dreadful what they have done! Have they no plan or judgement that the idea is to attract viewers, not repel them? I think the term "Ass-Backwards" is so appropriate for this merger.
# June 25, 2004 10:28 AM

ND said:

People are stupid ignorant jerks. You just have to live with it.
# June 26, 2004 12:47 PM

denny said:

Uhhhhhhhhhhggggggggggggggggg!

too many big viewstates make me ill!
# June 27, 2004 5:59 PM

Damian said:

That's awesome. It's nearly as good as www.dotnetnuke.com
# June 27, 2004 6:21 PM

Jeff Perrin said:

I once wrote an application that was initially doing a 'SELECT * FROM table...' to show a list of all the clients that were in the database via a datagrid. I changed it eventually, but I forgot to upload the new version of the software to the client's server, so when we imported all of their old data (about 5000 clients) the page would take about a minute to load, complete with about 8 megs worth of viewstate. Their sysadmin must have thought I was a complete tool for a few hours there... ;)
# June 27, 2004 11:21 PM

Chad Myers said:

Declarative programming may be great and all, but you lose all control over everything.

I'm a big code-only (all code-behind) kinda guy where you can control the viewstate of everything by choosing when to add it to the master control hierarchy
# June 28, 2004 12:37 AM

Addy Santo said:

Thanks Jeff, a screen full of base64 binary was exactly what I needed, this has been immensely informative and useful.

not! :)
# June 28, 2004 12:46 AM

Dave Donaldson said:

No wonder it's so damn slow :-)
# June 28, 2004 1:18 AM

Keith Reid said:

Oh yea? My GDN viewstate is better:

dDwyMDY4MTQ0OTQ4O3Q8O2w8aTwwPjtpPDE+Oz47bDx0PDtsPGk8MT47aTwyPjs+O2w8dDw7bDxpPDA+Oz47bDx0PEA8R290RG90TmV0OiBUaGUgTWljcm9zb2Z0IC5ORVQgRnJhbWV3b3JrIENvbW11bml0eTtcZTtcZTs+Ozs+Oz4+O3Q8QDxcZTtcZTs+Ozs+Oz4+O3Q8O2w8aTwwPjtpPDQ+O2k8Nj47PjtsPHQ8O2w8aTwxPjtpPDM+O2k8Nz47PjtsPHQ8O2w8aTwwPjs+O2w8dDw7bDxpPDM+Oz47bDx0PDtsPGk8MT47aTwzPjtpPDU+O2k8Nj47PjtsPHQ8cDxwPGw8Rm9udF9TaXplO18hU0I7PjtsPFN5c3RlbS5XZWIuVUkuV2ViQ29udHJvbHMuRm9udFVuaXQsIFN5c3RlbS5XZWIsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhPFhYLVNtYWxsPjtpPDEwMjQ+Oz4+Oz47Oz47dDxwPHA8bDxXaWR0aDtfIVNCOz47bDwxPDIwMHB4PjtpPDI1Nj47Pj47cDxsPG9uS2V5UHJlc3M7PjtsPGphdmFzY3JpcHQ6U3VibWl0U2VhcmNoX2N0bDFfU2VhcmNoQm94MSgpXDs7Pj4+Ozs+O3Q8cDxsPG9uQ2xpY2s7PjtsPGdvU2VhcmNoX2N0bDFfU2VhcmNoQm94MSgpXDs7Pj47Oz47dDxAPF9jdGwxX1NlYXJjaEJveDE7X2N0bDFfU2VhcmNoQm94MV9UZXh0Qm94UXVlcnk7L1NlYXJjaC9TZWFyY2guYXNweDtfY3RsMV9TZWFyY2hCb3gxO19jdGwxX1NlYXJjaEJveDE7Pjs7Pjs+Pjs+Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8O2w8aTwwPjs+O2w8dDw7bDxpPDE+Oz47bDx0PHA8bDxfIUl0ZW1Db3VudDs+O2w8aTw1Pjs+PjtsPGk8MD47aTwxPjtpPDI+O2k8Mz47aTw0Pjs+O2w8dDw7bDxpPDE+O2k8Mz47aTw1Pjs+O2w8dDxwPDtwPGw8b25DbGljazs+O2w8ZXhwYW5kaXQoJ19jdGwxX1JpZ2h0TmF2aWdhdGlvbk1lbnVfTWVudVNlY3Rpb25zX19jdGwwX1NlY3Rpb25QYW5lbCcpOz4+PjtsPGk8MD47PjtsPHQ8cDxwPGw8SW1hZ2VVcmw7PjtsPC9pbWFnZXMvbGVmdG5hdl9hcnJvd3VfbmV3LmdpZjs+Pjs+Ozs+Oz4+O3Q8cDxsPG9uQ2xpY2s7PjtsPGV4cGFuZGl0KCdfY3RsMV9SaWdodE5hdmlnYXRpb25NZW51X01lbnVTZWN0aW9uc19fY3RsMF9TZWN0aW9uUGFuZWwnKTs+Pjs7Pjt0PHA8O3A8bDxzdHlsZTs+O2w8ZGlzcGxheTpibG9ja1w7Oz4+Pjs7Pjs+Pjt0PDtsPGk8MT47aTwzPjtpPDU+Oz47bDx0PHA8O3A8bDxvbkNsaWNrOz47bDxleHBhbmRpdCgnX2N0bDFfUmlnaHROYXZpZ2F0aW9uTWVudV9NZW51U2VjdGlvbnNfX2N0bDFfU2VjdGlvblBhbmVsJyk7Pj4+O2w8aTwwPjs+O2w8dDxwPHA8bDxJbWFnZVVybDs+O2w8L2ltYWdlcy9sZWZ0bmF2X2Fycm93ZF9uZXcuZ2lmOz4+Oz47Oz47Pj47dDxwPGw8b25DbGljazs+O2w8ZXhwYW5kaXQoJ19jdGwxX1JpZ2h0TmF2aWdhdGlvbk1lbnVfTWVudVNlY3Rpb25zX19jdGwxX1NlY3Rpb25QYW5lbCcpOz4+Ozs+O3Q8cDw7cDxsPHN0eWxlOz47bDxkaXNwbGF5Om5vbmVcOzs+Pj47Oz47Pj47dDw7bDxpPDE+O2k8Mz47aTw1Pjs+O2w8dDxwPDtwPGw8b25DbGljazs+O2w8ZXhwYW5kaXQoJ19jdGwxX1JpZ2h0TmF2aWdhdGlvbk1lbnVfTWVudVNlY3Rpb25zX19jdGwyX1NlY3Rpb25QYW5lbCcpOz4+PjtsPGk8MD47PjtsPHQ8cDxwPGw8SW1hZ2VVcmw7PjtsPC9pbWFnZXMvbGVmdG5hdl9hcnJvd2RfbmV3LmdpZjs+Pjs+Ozs+Oz4+O3Q8cDxsPG9uQ2xpY2s7PjtsPGV4cGFuZGl0KCdfY3RsMV9SaWdodE5hdmlnYXRpb25NZW51X01lbnVTZWN0aW9uc19fY3RsMl9TZWN0aW9uUGFuZWwnKTs+Pjs7Pjt0PHA8O3A8bDxzdHlsZTs+O2w8ZGlzcGxheTpub25lXDs7Pj4+Ozs+Oz4+O3Q8O2w8aTwxPjtpPDM+O2k8NT47PjtsPHQ8cDw7cDxsPG9uQ2xpY2s7PjtsPGV4cGFuZGl0KCdfY3RsMV9SaWdodE5hdmlnYXRpb25NZW51X01lbnVTZWN0aW9uc19fY3RsM19TZWN0aW9uUGFuZWwnKTs+Pj47bDxpPDA+Oz47bDx0PHA8cDxsPEltYWdlVXJsOz47bDwvaW1hZ2VzL2xlZnRuYXZfYXJyb3dkX25ldy5naWY7Pj47Pjs7Pjs+Pjt0PHA8bDxvbkNsaWNrOz47bDxleHBhbmRpdCgnX2N0bDFfUmlnaHROYXZpZ2F0aW9uTWVudV9NZW51U2VjdGlvbnNfX2N0bDNfU2VjdGlvblBhbmVsJyk7Pj47Oz47dDxwPDtwPGw8c3R5bGU7PjtsPGRpc3BsYXk6bm9uZVw7Oz4+Pjs7Pjs+Pjt0PDtsPGk8MT47aTwzPjtpPDU+Oz47bDx0PHA8O3A8bDxvbkNsaWNrOz47bDxleHBhbmRpdCgnX2N0bDFfUmlnaHROYXZpZ2F0aW9uTWVudV9NZW51U2VjdGlvbnNfX2N0bDRfU2VjdGlvblBhbmVsJyk7Pj4+O2w8aTwwPjs+O2w8dDxwPHA8bDxJbWFnZVVybDs+O2w8L2ltYWdlcy9sZWZ0bmF2X2Fycm93ZF9uZXcuZ2lmOz4+Oz47Oz47Pj47dDxwPGw8b25DbGljazs+O2w8ZXhwYW5kaXQoJ19jdGwxX1JpZ2h0TmF2aWdhdGlvbk1lbnVfTWVudVNlY3Rpb25zX19jdGw0X1NlY3Rpb25QYW5lbCcpOz4+Ozs+O3Q8cDw7cDxsPHN0eWxlOz47bDxkaXNwbGF5Om5vbmVcOzs+Pj47Oz47Pj47Pj47Pj47Pj47Pj47dDxwPHA8bDxUZXh0Oz47bDxHb3REb3ROZXQ6IFRoZSBNaWNyb3NvZnQgLk5FVCBGcmFtZXdvcmsgQ29tbXVuaXR5Oz4+Oz47Oz47Pj47dDw7bDxpPDc+O2k8MTE+Oz47bDx0PDtsPGk8MD47PjtsPHQ8cDxsPF8hSXRlbUNvdW50Oz47bDxpPDU+Oz4+O2w8aTwxPjtpPDI+O2k8Mz47aTw0PjtpPDU+Oz47bDx0PDtsPGk8MD47aTwxPjtpPDM+Oz47bDx0PEA8Ni8yNDs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8RjhDb250cm9scztodHRwOi8vRmlndXJlOFNvZnR3YXJlLmNvbS9GOENvbnRyb2xzLmFzcDs+Pjs+Ozs+O3Q8cDxwPGw8TmF2aWdhdGVVcmw7PjtsPGh0dHA6Ly9GaWd1cmU4U29mdHdhcmUuY29tL0Y4Q29udHJvbHMuYXNwOz4+Oz47Oz47Pj47dDw7bDxpPDA+O2k8MT47aTwzPjs+O2w8dDxAPDYvMjM7Pjs7Pjt0PHA8cDxsPFRleHQ7TmF2aWdhdGVVcmw7PjtsPFNuLiBBU1AuTkVUL0MjIFVJIERldmVsb3BlcjtodHRwOi8vd3d3LnlvaGl0LmNvbTs+Pjs+Ozs+O3Q8cDxwPGw8TmF2aWdhdGVVcmw7PjtsPGh0dHA6Ly93d3cueW9oaXQuY29tOz4+Oz47Oz47Pj47dDw7bDxpPDA+O2k8MT47aTwzPjs+O2w8dDxAPDYvMjM7Pjs7Pjt0PHA8cDxsPFRleHQ7TmF2aWdhdGVVcmw7PjtsPEtpbmV0aWNhUlQgLk5FVCBDb21wb25lbnRzIGFuZCBTb2Z0d2FyZTtodHRwOi8vd3d3LmtpbmV0aWNhcnQuY28udWs7Pj47Pjs7Pjt0PHA8cDxsPE5hdmlnYXRlVXJsOz47bDxodHRwOi8vd3d3LmtpbmV0aWNhcnQuY28udWs7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDM+Oz47bDx0PEA8Ni8yMjs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8Rm9vbGluZyBWUyB0byBkZXZlbG9wIEFTUC5ORVQgYXBwbGljYXRpb25zIGluIGh0dHA6Ly9sb2NhbGhvc3Q7aHR0cDovL3d3dy5ob3d0b2RvdGhpbmdzLmNvbS9zaG93YXJ0aWNsZS5hc3A/YXJ0aWNsZT03Mjg7Pj47Pjs7Pjt0PHA8cDxsPE5hdmlnYXRlVXJsOz47bDxodHRwOi8vd3d3Lmhvd3RvZG90aGluZ3MuY29tL3Nob3dhcnRpY2xlLmFzcD9hcnRpY2xlPTcyODs+Pjs+Ozs+Oz4+O3Q8O2w8aTwwPjtpPDE+O2k8Mz47PjtsPHQ8QDw2LzIyOz47Oz47dDxwPHA8bDxUZXh0O05hdmlnYXRlVXJsOz47bDxBU1AuTkVUIHVwbG9hZGVkIGltYWdlcyBhcyB0aHVtYm5haWxzO2h0dHA6Ly93d3cuaG93dG9kb3RoaW5ncy5jb20vc2hvd2FydGljbGUuYXNwP2FydGljbGU9NjgyOz4+Oz47Oz47dDxwPHA8bDxOYXZpZ2F0ZVVybDs+O2w8aHR0cDovL3d3dy5ob3d0b2RvdGhpbmdzLmNvbS9zaG93YXJ0aWNsZS5hc3A/YXJ0aWNsZT02ODI7Pj47Pjs7Pjs+Pjs+Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8cDxsPF8hSXRlbUNvdW50Oz47bDxpPDU+Oz4+O2w8aTwxPjtpPDI+O2k8Mz47aTw0PjtpPDU+Oz47bDx0PDtsPGk8MD47aTwxPjtpPDM+Oz47bDx0PEA8Ni8yMzs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8Q3VzdG9tIERhdGFzZXQgRGF0YSBFeHRlbnNpb24gZm9yIE1pY3Jvc29mdCBSZXBvcnRpbmcgU2VydmljZXMgKFZCKTtodHRwOi8vd3d3LmdvdGRvdG5ldC5jb20vQ29tbXVuaXR5L1VzZXJTYW1wbGVzL0RldGFpbHMuYXNweD9TYW1wbGVHdWlkPTA5Zjc5NWFjLWJhMGMtNDNjZS04YTc2LTQ0NTlkZTljMThkYTs+Pjs+Ozs+O3Q8cDxwPGw8TmF2aWdhdGVVcmw7VmlzaWJsZTs+O2w8aHR0cDovL3d3dy5nb3Rkb3RuZXQuY29tL0NvbW11bml0eS9Vc2VyU2FtcGxlcy9EZXRhaWxzLmFzcHg/U2FtcGxlR3VpZD0wOWY3OTVhYy1iYTBjLTQzY2UtOGE3Ni00NDU5ZGU5YzE4ZGE7bzxmPjs+Pjs+Ozs+Oz4+O3Q8O2w8aTwwPjtpPDE+O2k8Mz47PjtsPHQ8QDw2LzIzOz47Oz47dDxwPHA8bDxUZXh0O05hdmlnYXRlVXJsOz47bDwgQyMgRGVtb25zdHJhdGlvbiBQcm9qZWN0IGZvciB1c2Ugd2l0aCBLaW5ldGljYVJUIE9QQyBDbGllbnQgLk5FVCBDb21wb25lbnQ7aHR0cDovL3d3dy5nb3Rkb3RuZXQuY29tL0NvbW11bml0eS9Vc2VyU2FtcGxlcy9EZXRhaWxzLmFzcHg/U2FtcGxlR3VpZD02ZDBhOTc0ZS03NzBmLTQ2OGQtYWE2My01NjNmYWRhODJmZjI7Pj47Pjs7Pjt0PHA8cDxsPE5hdmlnYXRlVXJsO1Zpc2libGU7PjtsPGh0dHA6Ly93d3cuZ290ZG90bmV0LmNvbS9Db21tdW5pdHkvVXNlclNhbXBsZXMvRGV0YWlscy5hc3B4P1NhbXBsZUd1aWQ9NmQwYTk3NGUtNzcwZi00NjhkLWFhNjMtNTYzZmFkYTgyZmYyO288Zj47Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDM+Oz47bDx0PEA8Ni8yMjs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8ZGF0YWJhY2t1cCAtIEJhY2t1cCBhbmQgcmVzdG9yZSBNcyBTcWwgU2VydmVyIGRhdGFiYXNlcztodHRwOi8vd3d3LmdvdGRvdG5ldC5jb20vQ29tbXVuaXR5L1VzZXJTYW1wbGVzL0RldGFpbHMuYXNweD9TYW1wbGVHdWlkPTRlNmU4YzM4LTUwYjUtNDY1ZC05ODhlLTU3ZWM1MjYxYmYwYzs+Pjs+Ozs+O3Q8cDxwPGw8TmF2aWdhdGVVcmw7VmlzaWJsZTs+O2w8aHR0cDovL3d3dy5nb3Rkb3RuZXQuY29tL0NvbW11bml0eS9Vc2VyU2FtcGxlcy9EZXRhaWxzLmFzcHg/U2FtcGxlR3VpZD00ZTZlOGMzOC01MGI1LTQ2NWQtOTg4ZS01N2VjNTI2MWJmMGM7bzxmPjs+Pjs+Ozs+Oz4+O3Q8O2w8aTwwPjtpPDE+O2k8Mz47PjtsPHQ8QDw2LzIxOz47Oz47dDxwPHA8bDxUZXh0O05hdmlnYXRlVXJsOz47bDxDdXN0b20gQ29udHJvbHMgOiBJbmhlcml0ZWQgVGV4dENvbnRyb2w7aHR0cDovL3d3dy5nb3Rkb3RuZXQuY29tL0NvbW11bml0eS9Vc2VyU2FtcGxlcy9EZXRhaWxzLmFzcHg/U2FtcGxlR3VpZD05OGZhZTQ1ZS03M2M1LTQ3MWYtYjExOC03M2MxZjI1ZTg1ODY7Pj47Pjs7Pjt0PHA8cDxsPE5hdmlnYXRlVXJsO1Zpc2libGU7PjtsPGh0dHA6Ly93d3cuZ290ZG90bmV0LmNvbS9Db21tdW5pdHkvVXNlclNhbXBsZXMvRGV0YWlscy5hc3B4P1NhbXBsZUd1aWQ9OThmYWU0NWUtNzNjNS00NzFmLWIxMTgtNzNjMWYyNWU4NTg2O288Zj47Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47aTwxPjtpPDM+Oz47bDx0PEA8Ni8yMTs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8QnVpbGQgUnVsZXMgRVg7aHR0cDovL3d3dy5nb3Rkb3RuZXQuY29tL0NvbW11bml0eS9Vc2VyU2FtcGxlcy9EZXRhaWxzLmFzcHg/U2FtcGxlR3VpZD1hMzMyNmViMy1hNDY4LTRmNjctOTFhOC1mODQ0NjlmYzQ5ZTI7Pj47Pjs7Pjt0PHA8cDxsPE5hdmlnYXRlVXJsO1Zpc2libGU7PjtsPGh0dHA6Ly93d3cuZ290ZG90bmV0LmNvbS9Db21tdW5pdHkvVXNlclNhbXBsZXMvRGV0YWlscy5hc3B4P1NhbXBsZUd1aWQ9YTMzMjZlYjMtYTQ2OC00ZjY3LTkxYTgtZjg0NDY5ZmM0OWUyO288Zj47Pj47Pjs7Pjs+Pjs+Pjs+Pjs+Pjt0PDtsPGk8ND47aTwxNj47PjtsPHQ8cDxwPGw8VGV4dDs+O2w8wqkgQ29weXJpZ2h0IDIwMDQgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgUmlnaHRzIFJlc2VydmVkLjs+Pjs+Ozs+O3Q8O2w8aTwwPjs+O2w8dDw7bDxpPDA+Oz47bDx0PDtsPGk8MT47PjtsPHQ8cDxsPF8hSXRlbUNvdW50Oz47bDxpPDU+Oz4+O2w8aTwwPjtpPDE+O2k8Mj47aTwzPjtpPDQ+Oz47bDx0PDtsPGk8MT47PjtsPHQ8cDxwPGw8TmF2aWdhdGVVcmw7SW1hZ2VVcmw7VG9vbFRpcDs+O2w8aHR0cDovL3d3dy5hc3BhZHZpY2UuY29tOy91aS9jb21wb25lbnRzL2NvbnRyb2xzL0NvZGVXaXNlL0ltYWdlLmFzcHg/bWVtYmVySWQ9MTI4O0FTUCBBZHZpY2U7Pj47Pjs7Pjs+Pjt0PDtsPGk8MT47PjtsPHQ8cDxwPGw8TmF2aWdhdGVVcmw7SW1hZ2VVcmw7VG9vbFRpcDs+O2w8aHR0cDovL3d3dy5jLXNoYXJwY29ybmVyLmNvbS87L3VpL2NvbXBvbmVudHMvY29udHJvbHMvQ29kZVdpc2UvSW1hZ2UuYXNweD9tZW1iZXJJZD0xMDk7QyMgQ29ybmVyOz4+Oz47Oz47Pj47dDw7bDxpPDE+Oz47bDx0PHA8cDxsPE5hdmlnYXRlVXJsO0ltYWdlVXJsO1Rvb2xUaXA7PjtsPGh0dHA6Ly93d3cuY29kZXByb2plY3QuY29tOy91aS9jb21wb25lbnRzL2NvbnRyb2xzL0NvZGVXaXNlL0ltYWdlLmFzcHg/bWVtYmVySWQ9MztDb2RlIFByb2plY3Q7Pj47Pjs7Pjs+Pjt0PDtsPGk8MT47PjtsPHQ8cDxwPGw8TmF2aWdhdGVVcmw7SW1hZ2VVcmw7VG9vbFRpcDs+O2w8aHR0cDovL3d3dy5kZXZ4LmNvbTsvdWkvY29tcG9uZW50cy9jb250cm9scy9Db2RlV2lzZS9JbWFnZS5hc3B4P21lbWJlcklkPTE5O0Rldlg7Pj47Pjs7Pjs+Pjt0PDtsPGk8MT47PjtsPHQ8cDxwPGw8TmF2aWdhdGVVcmw7SW1hZ2VVcmw7VG9vbFRpcDs+O2w8aHR0cDovL3d3dy53aW50ZWxsZWN0LmNvbS9mb3J1bS9tYWluLmFzcDsvdWkvY29tcG9uZW50cy9jb250cm9scy9Db2RlV2lzZS9JbWFnZS5hc3B4P21lbWJlcklkPTExMDtXaW50ZWxsZWN0Oz4+Oz47Oz47Pj47Pj47Pj47Pj47Pj47Pj47Pj47Pj47Pg92qUdAf4qKqlWF/iyZ26E2Wh4+
# June 28, 2004 1:18 AM

Marc Lee said:

I hate G4techtv. I want TechTV, TechTV go alive! TechTV go alive! TechTV go alive! TechTV go alive!
# June 28, 2004 5:21 AM

Nikhil Kothari said:

A bit about view state improvements in Whidbey at http://www.nikhilk.net/Entry.aspx?id=36
# June 28, 2004 9:58 AM

Daniel Cazzulino said:

Hehe... I found that many referrers coming to my posts were searching google for "performance", and very few actually looked for "performant", so that's basically why you win ;)
# June 28, 2004 8:59 PM

rick said:

Visual C#.Net had the same no-class-library limitation. However, I found that it could open and use them just fine, just not create them.
# June 29, 2004 7:58 PM

DJ said:

I don't know what's worse, the silly comments or the fact that they get modded up to "Insightful". That's the real indicator of the site's membership.
# June 29, 2004 9:15 PM

Jerry Pisk said:

Jeff, your comments are as retarded as theirs.

And if you think using mouse is the best thing ever happend to programming think again. Just today I was moving the output directory of one of my projects (five assemblies and few config files). I would have to shoot myself if I had to do that in Visual Studio, according to you it's a lot better to spend half an hour clicking in endless dialogs than changing a single line in a nant build script?

And you've obviously never used Eclipse, it's a lot better IDE than anything Microsoft has ever done. It's better because it's done by programmers, and it's not targeted to beginners (think people who drag a database onto a web page and wwonder why their data updates are so slow). It may have a lot less fancy stuff but when it comes to writing some code it wins. I don't think Eclipse has to worry, especially not because of Microsoft's release of express visual studio pieces - they're pretty useless for serious work anyways. They're just eye candy for programmer wannabes.

And personally - the moment Sun releases their control over Java I'm switching. the whole mindset of Java developers is different, it's not about dragging icons with their mouse to create applications, it's about doing it right, understanding what the code does. It's definitelly a result of Microsoft targeting non-developers and letting them think they can write code as well, the actual platforms are pretty much the same, they both have their pros and cons.
# June 29, 2004 9:57 PM

Joshua Flanagan said:

Heh, I like this line from Jerry's post "[Eclipse] is better [than VS] because it's done by programmers".

I wonder if he really believes that Visual Studio was created not by programmers, but some sort of "immaculate compilation".
# June 29, 2004 10:03 PM

Jeff said:

Hahahaha. Wasn't that a Madonna album?

People like Jerry make it religion and attempt tp place everything in a world of absolutes. He finds one thing he can't do and the whole tool is useless. Even better, if a tool offers visual shortcuts, it means that you can only use those and you're a poor programmer. These are "obviously" the rules and the holy truth!

See you on Slashdot, Jerry! I've got code to write!
# June 29, 2004 10:13 PM

Alex Papadimoulis said:

Amen. I've been meaning to write up a anti-slashdot post but have simply stuck to mocking it with my coworkers. Here's a ludicrous comment I just came across:
"The number of people affected by Microsoft's crimes against humanity number in the hundreds of millions. I'd even go as far as to say that if Bill Gates had been inside one of the Twin Towers when they fell, the other lives lost would have been worth it."
http://developers.slashdot.org/comments.pl?sid=112349&cid=9530045

It is nice to remember that the overwhelming majority of /. readers are out of work. heh.
# June 29, 2004 11:24 PM

Jeff said:

Out of work, eh? Hating Microsoft isn't something you get paid for? I was not aware of that.

It's fun every once in awhile to get under their skin and mess with them. They get so worked up over this stuff, and I can't for the life of me understand why. When I don't like a product, I either move on to something else or I tell the manufacturer what I don't like about it. Sometimes, they listen! (See: An HTML editor/designer than doesn't suck in VS 2005!)
# June 29, 2004 11:38 PM

mareol said:

Who do we write to bring back Call for Help?

I tried 7 emails to g4 tech and all I get is automated generic responses.
# June 30, 2004 1:34 AM

Jerry Pisk said:

Hillarious, I don't read slashdot and I'm the only one in my company pushing Microsoft's technologies. But because I think Eclipse is better than VS I'm bad... As I said, you guys are no better than /.ers.
# June 30, 2004 3:03 AM

Russ C. said:

Quote:
we're shipping people in from all over the world to fill .NET jobs in the Greater Cleveland area.

This jumped to my attention. Do you have more Information or a Website ?
# June 30, 2004 5:07 AM

Jeff said:

Russ: Check Monster, CareerBoard.com, FlipDog, etc. Heck, Progressive Insurance alone requires a small army and they'll move the right people.

No one said you're "bad," Jerry. You just make generalizations about the tool and engage in developer snobbery. That's pretty lame. Those "wannabes" might some day occupy the next cube or office. Perhaps it would be more constructive to help them out instead of dismissing them, eh?
# June 30, 2004 9:13 AM

Jason Mauss said:

man...thanks for saying this. I know it might not be a popular position to take but, you're right.

To make the developer community better, I think we should all be trying to help educate "the n00bs" (as you say) so that next time they will know better. It's like I say in my mantra for DevCampus, allow them to learn from *our* mistakes, not their own.

http://weblogs.asp.net/jamauss/articles/AboutDevCampus.aspx

Good post Jeff, thanks.
# June 30, 2004 1:30 PM

Andrew said:

The bottom line is: using the right tool for the job!
# June 30, 2004 2:48 PM

Jerry Pisk said:

Jeff, you nailed it, that's exactly what I'm worried about. That I'll have to work with somebody who says he's a good programmer because he knows how to drag a database connection onto a web form. I have done so much code fixing after people like this in my life that I think it's time to stop letting people think everybody can do it. I think we would all benefit from teaching people how to write good code, by teaching those newbies how to do that instead of giving them tools that don't require them to think about what they're doing.
# June 30, 2004 3:22 PM

David Hayden said:

Well said, Jeff.

I think a number of those snobs may be concerned with job security and their self-given "elite" status as the barriers to becoming a developer are being torn down. Tools are less expensive and often free. Information can be found everywhere as opposed to expensive books and conferences. And, a lot of development (not all development) has less to do with the low-level "plumbing" we had to deal with in the past.

Thanks to all the countless and most excellent developers behind-the-scenes (the non-snobs), who build tools, controls, components, and share their knowledge with the community. They make it possible for the "n00bs" to get their feet wet, feel a sense of accomplishment, and learn development at a higher level as they begin their journey.

In the end, those people that give will always receive more in return and live a happier and richer life. The "snobs" will just fade away.
# June 30, 2004 3:47 PM

Jason said:

I've been using VS for over 7 years and I have never even tried to "drag a database connection over to a webform". I find that even after I remove/disable the visual designer enhancements, VS is a terrific development environment. I think that changing the build output directory would take... let me visualize here... right click, left click, left click, type new directory, left click. OH MY GOD PLEASE WASTE MY TIME!!!! :-|
# June 30, 2004 3:48 PM

Shannon J Hager said:

yeah, snobbery is bad, of course, but don't try to gloss over the fact that MS pushed VS.NET for years (and STILL ARE as recently as DevDays2004) by showing how you could simply drag a table onto a form. Those "ease-of-use" features write terrible code, create terrible habits, and are close to the exact opposite of how you should be writing the program if you are actually going to use it anywhere other than on your own desktop. Forsaking quality code and practices in order to sell users via "Gee-WYSISYG" features is a Bad Thing and has done more damage to .NET than good.
"Job security" is FAR from the problem. If these features were good enough to use in production code, we would all be using them.
# June 30, 2004 5:40 PM

Shannon J Hager said:

I think Jerry may be right about the Express series being for wannabes. We need to remember that we were all wannabes before we were 'real' programmers, though, right? I hope so. If you're doing doing this job without wanting to, you should switch careers.


As for Slashdot, if you look for things to piss you off, don't worry, you'll find them. If you look for ASCII goatse art, you'll find that too. Instead of wasting your time, though, you should do it right:
http://hdconsultants.us/archive/2004/06/02/HowToReadSlashdot.aspx
# June 30, 2004 5:45 PM

Jerry Pisk said:

Jason - I was doing it for a number of different "projects", not just one. That's the whole problem, VS is ok for simple things, where changing the output directory is a matter of few clicks. But doing it ten times as oposed to editing a line in a build file is not the way to go. Btw my way is open a file (a double click), type in new directory, hit Ctrl+S while you're typing and Ctrl+F4. A lot faster than clicking...
# June 30, 2004 5:48 PM

Joshua Flanagan said:

Jerry, the new VS 2005 project file uses MSBUILD - which is similar to NANT. Are you sure it isn't just as easy as opening a file and changing a line, with the new file format?
# June 30, 2004 10:22 PM

Jerry Pisk said:

Yes, with VS 2005 it is, MSBuild is just a knockoff of Ant. And it only confirms what I'm saying all the time. Even Microsoft gets it, now if only all their evangelists would :)
# June 30, 2004 11:13 PM

Jerry Pisk said:

Oh and Jeff - you say nobody said I'm bad for my opinions. Don't you read your own blog? Don't you remember what you post? http://weblogs.asp.net/Jeff/archive/2004/06/30/169962.aspx - it's titled "Developer snobbery is bad for everyone" and it says I'm reeking of developer snobbery.
# July 1, 2004 1:59 AM

Karl said:

As far as I can tell, this has extremely limited capabilities. Namely, an HttpRuntime is never created, which renders all but basic unit testing useless.
# July 1, 2004 11:17 AM

Jeff said:

Useless? If I can store things in the cache, the only thing I've encountered that I need, then it's not useless at all. Just because you don't see a use for it doesn't mean other people might not.
# July 1, 2004 12:08 PM

Eric Newton said:

You mean a POP3 or IMAP4 client right?

As far as I know SMTP is more of a "Receive and possible forward" protocol, not neccessarily for retrieving?
# July 2, 2004 1:30 AM

Eric Newton said:

I agree mostly with your points, just one thing though:

The VB.Net developers tend to write shoddy code... this is a generalization that is obviously not 100% true, but when I work with "VB only shops," I'm always explaining how things REALLY work and why this piece of code works for this one situation but will possibly fail later on...

I dunno, I try not to be a snob about it, but I have yet to see a "tight VB coder"

And frankly I hated the "drag onto the form" SqlConnections and DataTables and such... OMG connection string management NIGHTMARES!
# July 2, 2004 1:35 AM

TrackBack said:

# July 2, 2004 1:51 AM

Eric Newton said:

Heh... nikhil couldnt let this go unanswered ;-)
# July 2, 2004 1:56 AM

Jeff said:

Yes, that's true. Who said anything about receiving?
# July 2, 2004 10:44 AM

Zach said:

Techtv has died :'( everything that was good is gone, the g4tv ceo cancelled everything that he didnt see as needed or "hip". Everything on g4 is exactly the same, they basically kept all of the g4 shows and cancelled half of the techtv shows (thankfully the screensavers is still here). But they'll be moving to LA and patrick is leaving to get married.


Someday they'll realize the mistake they made.
# July 2, 2004 1:08 PM

twppie said:

Anyone know who the idiots are behind the debacle?
# July 3, 2004 5:04 AM

AndrewSeven said:

Thanks
# July 4, 2004 10:52 AM

TrackBack said:

# July 4, 2004 11:35 AM

Eric Newton said:

damn thats a lot of events.
# July 4, 2004 6:49 PM

William D. Bartholomew said:

The SMTP bit isn't too hard, but it's the MIME for attachments that isn't fun.
# July 5, 2004 1:24 AM

Jeff said:

Agreed! I started to look at some of open source implementations and decided that going that far would cease to "fun!"
# July 5, 2004 9:32 AM

MikeG said:

Tech TV definately kicked ass. I must agree with everyone as far as the programming goes, it sucks. I am very angry with this merger. It should have never happened. This channel should have been known as TechTVG4. G4 obviously don't know what they are doing. They need some of the execs from TechTV to show them how G4 how it is done. We should all get together and voice our dissatisfaction with the product.
# July 6, 2004 1:09 PM

TrackBack said:

# July 6, 2004 1:54 PM

Wallym said:

According to my sources, the eight ball says "Don't believe your eyes."

Wally
# July 6, 2004 8:22 PM

Jeff said:

That's the problem... everyone has "sources" but I have an old theory about such things.

"Those who know don't talk. Those who talk don't know."
# July 6, 2004 9:35 PM

Euchre said:

It would appear from the threads on the G4TechTV forum (which is really just the G4 forum) that G4 has it's own unique fan base and that the two demographic groups will not merge. This says to me that Comcast has successfully done what corporate committee decision often does: take two profitable entities they do not understand, combine the worst of each, and destroy it all in the process.
The heart of the tech industry in the US is San Francisco, so they move the whole operation to LA which is the home of neither gaming nor tech.
G4 was not nearly as powerful as TechTV, and didn't have the same variety of successful shows, so they are mostly keeping G4 shows.
The G4 site is busy and very difficult to navigate. TechTV's site was not ideal, but was functional and much more visually appealing. The G4 site despite not having content oriented graphics takes longer to load. Which site's design is more prevalent in the current one? G4.
One thing is guaranteed, executives never admit mistakes, nor do big corporations. Don't expect TechTV to be saved by Comcast reversing itself, they won't.
# July 7, 2004 12:45 PM

TrackBack said:

# July 7, 2004 3:18 PM

Scotty said:

This has to be the worst move that Comcast has made.
I was hoping that perhaps a little of TechTV would wear off on G4, and create something like a happy medium.
However, even after some time, Tommy Talirico's slime is dripping off of the entire channel. I miss my TechTV. I agree that G4's production was horrible before the merger, but the channel served a niche with 12-20 year old boys that had time to game all day. Plus, it was a good billboard for EBGames.
TechTV was serious enough to cover the real meat and potatoes of computerdom. Everything from the dark arts to beginners help was covered, and it was presented in a grown up manner that didnt' talk down to anyone from the newbie to the professional.

Since then, I have only really seen G4 programming on the channel. I miss my Screen Savers marathons, I miss my CFH, Nerd Nation, and so many other shows that seemed to have been replaced with lame ass re-runs of G4TV.com, Filter, and the rest of the G4 drivel.

Hell, my local Time Warner cable provider even moved the channel from 44, which is accessable to almost everyone, to channel 141. It just no longer matters.

I'm going to miss TechTV, I was a fan even in the days of ZDTV.
# July 8, 2004 2:35 PM

df said:

Before wireless we went out on the deck and enjoyed the morning without being chained to a laptop :)
# July 8, 2004 2:41 PM

Alex Papadimoulis said:

... or we installed weather-proof CAT-5 outlets next to the power :-D.
# July 8, 2004 3:38 PM

tim said:

yup, this is the worst thing that could happen to a computer geek like me...how 'bout you?
what do you say we boycott the g4 advertisers or flood their offices with "bring back nnn programs"...??? i dunno...g4 sucks plain and simple. a dim shadow of the tech tv that we got used to. just stop watching , i guess.
tim
# July 9, 2004 1:29 PM

Tommi said:

Hi,

I've looked at these articles and alltough they are not .NET articles, they outline some different approaches to storing tree data:

Storing Hierarchical Data in a Database
http://www.sitepoint.com/article/1105

Four ways to work with hierarchical data
http://www.evolt.org/article/Four_ways_to_work_with_hierarchical_data/17/4047/index.html
# July 10, 2004 4:35 PM

Scott Galloway said:

I'm currently working through this problem myself actually, the book 'Joe Celko's Trees and Hierarchies in SQL For Dummies' is just awesome for this covering pretty much every which way you can do this. In addition to the sitepoint one Tommi mentioned above, this one: http://www.intelligententerprise.com/001020/celko.jhtml?_requestid=273960
covers Joe Celko's approach using 'Nested Sets'. It is still worth getting the book though as he gives more recipes for stuff like updating and how to avoid problems with frequently changing sets.
# July 10, 2004 5:43 PM

Scott Galloway said:

Should be 'Joe Celko's Trees and Hierarchies in SQL For Smarties' :-)
# July 10, 2004 5:45 PM

Marcel said:

Loved Managed DirectX9 Kick Start! As you pointed out this book was indeed a bit thin on the theory but it really does provides a great way to get into Managed DirectX programming.

Lately I visit Waterstones in the UK often for books on Games programming. They always have excellent books on the shelf on this subject. Like Mason McCuskey's Special Effects Game Programming With DirectX :-)

-- Marcel
# July 10, 2004 6:33 PM

Scott said:

Look on the bright side, after you read a Wrox book you still don't know everything there is to know. There's still all of the errata to read. :) It's like reading the same book twice with different content!
# July 10, 2004 7:16 PM

MrBrett said:

Hi

I created an SQL sproc quite a while ago which dealt with this. Basically you pass a temporary table of items with just IDs and Parent IDs (and some other extra data), and then the sproc sorts the hierarchically for you with the exact tree index that the nodes would be in a .NET treeview. Therefore you have no recursion necessary in your .NET code at all, you just create the nodes as you iterate over the dataset.

- Brett
# July 11, 2004 12:00 AM

Freddy said:

G4 - TV for MORONS
# July 11, 2004 11:59 AM

VGA said:

Here[1] I've posted how this is improved in Whidbey.

And I was first than Nikhil :-P

At least is nice to see that I wasn't wrong!! :-)

[1] http://weblogs.asp.net/vga/archive/2004/05/26/WhidbeyWillBringsUsAShorterViewstateGuaranteed.aspx
# July 12, 2004 3:20 PM

Nathan said:

Please vote, at:

http://www.vbforums.com/showthread.php?s=&postid=1734910

I also think it sucks
# July 13, 2004 12:26 AM

McMike said:

I've seen countless complaints about G4TechTV's recent decisions to cancel shows and promote former G4 shows in their place. I agree wholeheartedly and that's how I found this board. But is there anyone out there who disagrees?

Surely if the G4 people decided to axe so much of TechTV they must have figured they'd GAIN viewers in the long-run, right?

I only watch "The Screen Savers" anymore but I can't stand Roger from Call For Help nor the stupid comments btwn Kevin and Sarah (we KNOW you're a couple. You don't have to keep shoving it in our faces!). I miss TechLive and SpySchool. I miss the late repeats (on the West Coast) of TSS since I'm not home when it first airs (4 p.m. PST). I was even starting to dig "Nerd Nation".

G4 sucks. The cancellations are a decision they made they won't reverse, so there's no use for petitions or anything else. Fight the power by just plain not watching. I have the feeling they're going to freak in a few months when they see the ratings have dropped dramatically.
# July 13, 2004 12:43 AM

Jon Galloway said:

I've noticed this effect, too - the computer book isle at the bookstore isn't near as exciting.

I think (for me) that's party due to the huge amount of content on the internet, and especially in technical blogs. Books seem like a very inefficient way of getting information now.
# July 13, 2004 4:35 AM

dj said:

I am 14 well I will be 7-17 and what do I get for my b-day screen savers move to LA that sucks big time I was a fan back from zdtv I was not thrilled when zdtv moved to techtv but it rocked compard to this I am shore nothing will happen or all the techtv fans will stop watching and then them will pull the network because of money but that is just me any how I am glad to see I am not the only one how hates the merge but the first thing they have to do is fix hat web site it sucks ass!!!!!!!!!!!!!!!!!!!!!
# July 13, 2004 4:24 PM

p_skiddy said:

g4 sucks I hate all of their shows
# July 13, 2004 4:25 PM

TrackBack said:

# July 13, 2004 11:55 PM

Jerry Dennany said:

On the contrary - I was reading a recent study that showed that the teen population has a great deal of disposable income, courtesy of their parents and after school jobs. They are also more succeptable to advertising.

Just a thought...
# July 14, 2004 11:17 AM

Jeff said:

Having disposable income and having something to sell the kids are two entirely different things. You can't sell them new cars, computers, prescription drugs, or get them to buy IBM and Oracle services. Those are the big money advertisers they've lost.
# July 14, 2004 12:43 PM

@sscore said:

I always thought TechTV should move in a direction that is MORE technical and caters to more of the "harcore geek" . the screensavers is good, but in all reality for computer noobs.
Now that it is G4 tech TV it's just a big fukn advertisment for x-box games. I dont know if you noticed but the tech tv staff is now barred from talking about "controversial" subjects like modchips, making game/dvd back-ups/ p2p or anything else that might piss off g4's advertising purchasers.

I've never met anyone that enjoyed tech tv and also liked G4.
as a matter of fact everyone I know that likes techTV HATES G4
# July 14, 2004 5:18 PM

McMike said:

But @sscore: do you know anyone who likes G4 but not TechTV?

I'm hoping that in a few months Comcast will notice that ratings have dropped dramatically and will "bring back" shows they cancelled that viewers liked. Maybe that's just wishful thinking. By then it would have been months since I watched G4TechTV, so how would I know those shows are back on. I can't bare to watch G4TechTV now! It's hosts are annoying and its shows are juvenile. Just the kind of thing their targeted demographic is looking for (teenage EBGames customers). No offence.
# July 14, 2004 11:47 PM

Andy said:

Comcast execs do not care about your opinions. They care about money. They have made such obscene profits from their cable rip-off, that they can buy anything they want. Buying techtv concentrates gaming advertiser revenues, so they can make more money. Techtv is gone. If you want technical information, you may have to read a book. Good Luck
# July 14, 2004 11:49 PM

Chad Myers said:

We never had many pizza joints. I remember the Dairy Queen's always having some games.

I think the problem is, they don't make good arcade games anymore. They're like $2 a game and they suck you into long games. Gone are the days of a quick Pac-Man or Galaga 10-15 minute bout with the computer.
# July 15, 2004 12:15 AM

TechTV fan said:

I agree with you all my friends. I loved TechTV too. I used to watch five hours of TechTV!!!!!!!!!! And now I watch Discovery! This mother f***** G4 people suck d***. They can’t do s***. They suck at; editing, and broadcasting interesting and helpful shows. I can’t believe what happened to those TechTV People. Soon this mother f****** will lose everything!!!!!!!!!!!!!!!! If there was something to do to bring TechTV back, I hope everyone will participate in.
# July 15, 2004 2:52 AM

TechTV fan said:

and these idiots even moved the channel tooooooooooooooooooooooooo?!?!?!?!
# July 15, 2004 2:55 AM

ed said:

no.
# July 15, 2004 4:42 PM

Eric Sink said:

OK, so shareware doesn't work for *you*.

Ask Thomas Warfield how much money he makes from Pretty Good Solitaire.

# July 15, 2004 4:42 PM

fubar said:

http://www.sqljunkies.com/How%20To/D7CAED46-CCAC-4FF7-B528-B2E9A274B71C.scuk

Best way I've seen to deal with this sort of data.
# July 15, 2004 4:54 PM

Jason Olson said:

In no way is Shareware dead. Perhaps, it is operating at a slower pace than it did in the early 90s. However, I think the distribution model coming with Longhorn can change all that. One thing is for sure, there is less room for a successful homebrew game in today's "big-budget" gaming industry.

However, I think where we will find most of the innovative games when it comes to gameplay is through mass-distributed gaming made possible by Longhorn. Sure, it's nice to play a well-developed game on MSN or Yahoo, but how much cooler would it be to send the game to a friend via Chat or Email. Imagine chatting with a friend, and having him ask "You wanna play a game?". And when you say "Hell Ya", you can dynamically download that game and play it with him right there.

Anyways, I'm a farcry away from a game analyst so I could just be tossing a lot of BS your way with all this talk. So, take it for what it is worth.
# July 15, 2004 5:18 PM

William Tech TV LOVER G4 hater said:

TECH-TV was a network about technology NOT GAMING. Two vary different networks have be fused and TECH-TV has suffered a grate loss. Its life. Evey time I turn on the TV I get angry at the BS channel "G4TTV". I think G4 should rot in, well i think you know whare i'm going.

You are all wrong, This was a take over

http://www.petitiononline.com/ccgttv/petition.html
http://www.petitiononline.com/ttv00814/petition.html
http://www.petitiononline.com/52404/petition.html

I signed. will you?
# July 16, 2004 3:22 AM

Philip Miseldine said:

I remember in the 90s I wrote some little applications that I sold for $10 a pop. They actually became pretty successful, even having a set of cracks developed for them by the pirating community (kind of an honour eh? :))

My experience was, a lot of people will pay for something they use as long as the barriers are removed. Charge a small fee, a fee small enough for people not to think twice about the charge. I found $10 a license worked really well. Maybe I could have upped the charge, who knows, I'm not a business mind by any means :)

There were free products available that did similiar, but concentrating on service, care, and the areas where free software can't compete...it did me alright, at least :)
# July 16, 2004 7:30 AM

Paul Speranza said:

My rule of thumb is get it on my machine and try it out. If I find myself using it on a steady basis or if it is truly useful but only once in a while, then I'll buy it. I have no software on my machines that I didn't pay for if it's not free. Gee, I am fully licensed! That feels good.
# July 16, 2004 8:16 AM

Michele said:

I've got a new strategy. I've started watching just long enough to get the names of the advertisers on G4TechTV, and inform THEM of the boycott!
# July 16, 2004 12:40 PM

Jake S said:

I'm glad I found a good place to vent my hatred of G4. Everything has been screwed up since G4 showed up. I knew it was going to be bad when I saw the commercials for the merger, but I didn't sense anything this terrible. Out of about the dozen G4 shows they've added, I only like one (I don't mind admitting it), which is Filter. Other than that, all of their shows are horrible! I enjoy video games, but, like most of you, I don't want to watch a show where they show the screen of someone playing a new game for 30 minutes. Also, even though I didn't always understand it, I enjoyed watching shows like Call for Help where they talk about the technology behind the games and computers. I'm proud to say that I only tune in for one G4 show. Other than that, I only watch The Screen Savers, X-Play, and Unscrewed all three of them, of course, were watchable back with just TechTV. One of my main fears about the future TechTV is that even if people quit watching G4 shows, we could still lose TechTV shows because the entire network could be cancelled then.
To sum it all up: The G4TechTV merger was a terrible idea and, sadly, I doubt that it will ever become as good as TechTV was. Well, I feel a little better now...
# July 17, 2004 3:36 AM

sam said:

OK, you are top on the google search for "airport express xbox"
does the xbox manage to network using the airport express ethernet connection?
I cant find anyone saying this does actually work (though a few think it may)
does it work??
# July 18, 2004 10:51 AM

sam said:

looking on the web, i have found a macworld editorial that discusses the capabilites of the airport express. It can act as an ethernet bridge, but only when connecting to an airport extreme or express based network.
The bridging functions are not part of the IEEE standards, and are therefore different for each manufacturer.

http://www.macworld.com/forums/ubbthreads/showflat.php?Cat=&Board=editorsnotes&Number=231664&page=0&view=collapsed
# July 18, 2004 11:06 AM

Bob said:

Both networks had small budjets and way too many reruns, I wish more of those specialized channels would merge and conservere the bandwidth. I just worry about more content being controlled by the cable/satellite companies. As far as advertising goes, who watches commercials these days anyway?
# July 19, 2004 12:45 AM

Josh Robinson said:

Jeff, That post is actually very refreshing! Work/life balance and a belief in what you are doing are essential ingredients. Money is nice and there is some minimum, but you cannot sustain that excitement of eagerly showing up for work every day unless you really believe that in some way your are making the world a better place, even if it is through computer programming. Best of luck to you. BTW, although I enjoyed Masters of Doom, I found it to be somewhat tragic and depressing because those guys never came up for air. Wasn't sure if it was just me that thought that. . .
# July 19, 2004 1:54 PM

Chad Myers said:

Hold on to that wife, never let her go no matter what or how smart you may think you are at any give point in your life.

She's a keeper if she's willing to be stepped on as your foundation as you spring out to find yourself.

At some point she'll probably have a similar crisis and need to step on your shoulders and launch herself. Make sure you're there for her and you put everything you're doing aside for her.

Do these and you will always be happy no matter how much money you have, what kind of house you live in or how many cars you have in your garage.
# July 19, 2004 3:15 PM

Robert W. McLaws said:

You can't access it like that. You have to assess it programmatically through the TopNav object, which is the ID for your LoginView control. Migfht want to switch to design view and read the context-sensitive help.
# July 19, 2004 4:30 PM

Justin Lovell said:

It is not a bug. It is by design. Basically, they are using templates which is NOT part of the control tree UNTIL the control says it is. The control normally decides the point that the controls are part of the control tree is during the PreRender stage of the life cycle.

The better solution instead of waiting for the PreRender stage of the life cycle to come by is to migrate the controls into custom templates, port it into an user control or port it into a server control.

I am pretty much sort of time and will respond latter with more details... maybe even write a blog post about it :-).
# July 19, 2004 4:34 PM

torvalds said:

good post man..
# July 19, 2004 4:42 PM

ray l said:

i'm glad to see that there are a few of us that don't like what is happening.

techtv was something i looked forward to seeing, i would even wait through some of the "paid programming" to be sure i got all that tech tv had to offer.

now i have a difficult time sitting through the really bad g4 stuff to see the tech tv programs.
i would rather see re-runs of the tech tv programming, than watch the g4 stuff.

and the move to L.A.?
that's a bad idea.

i liked watching the familier backdrops when the tech tv crew would be doing the outdoor scenes in and around the san francisco bay area.

L.A. is just too hot and unfreindly for me to feel comfortable there, even if it's just on the tube.
# July 19, 2004 7:00 PM

Jeff said:

If that's "by design," then it's a crappy design. The whole idea here is to take a step out of showing some portion of the page based on whether or not the user is logged in. Prior to this I'm sure we all used Panel controls to "turn off" stuff we wanted to show by setting the Panel's Visible property to false. If this doesn't work like that, it's useless.
# July 19, 2004 7:32 PM

blaze said:

NB. I know this rambles far too long-- feel free to cut the post as you wish=============

I feel as if a great friend has died--and all that remains is pleasant memories.
Reading the thread reveals the frustration of the ole' TechTV faithful--alot of ranting sprinkled with some resignation that it's all over.

It appears that Comcast has a mission vastly divergent from what Tech TV (exec level) had, and whoever controlled Tech TV 'sold-out,' (or got duped).

The influence of the adv $$ and/or ratings seem the vulnerable avenues to attack, (turning some gaming strategy back in G4's faces).

Bottom line remains "money, money, money makes the world go 'round."

The only way to pressure for change is to appeal to someone, some competition???, with a profit motive significant enough to turn heads.

1. To just simply boycot advertizers doesn't send a strong enuf msg---They need to know who we are, and why their adv $$ are being mis-spent--

2. Not all the adv companies are targeting Tech TV viewers- but the CDW, Dell, Gateway, etc execs might notice a coord expression of 'anger'--

3. Impact from ratings drops (don't watch G4 junk) should further drive down adv$$ for Comcast--sure they'll still have G4 advs- but only that.

4. We need a new voice in the wilderness (w/major resources) to seize this opp, pick up the pieces of Tech TV (under a new ID) and separate from Comcast, and fly.

5. Can cable/satellite companies help?? Any public service avenues that could promote tech ed channels (ie: like Leo's 'Tech in the classroom' segments on CFH?)
# July 19, 2004 8:56 PM

Thomas Williams said:

G'day Jeff, thanks for the honest and reflective post. I'm glad you can say that it's fun to be you again! Me, I'm trying to work on number 2 (self esteem based on what I do) because I don't believe it has to be that way.
# July 20, 2004 2:42 AM

Josh Christie said:

Great post, Jeff! I'm looking forward to hearing more about how your book is coming and what you think it will mean for your long term goals/plans. Do you intend to get back into contract work at some point?
# July 21, 2004 9:30 AM

Dennis said:

You Are Right! It is not just computer books. Is all technical books.
Because the publishers make more on Women Romance Novels than all other
books combined.
# July 21, 2004 3:18 PM

Jeroen van den Bos said:

Why do you order your books by publisher instead of by topic? Whenever I'm looking for a book on my shelf I'm usually looking for a specific topic, not for a specific book of which I also happen to know the publisher :)
# July 21, 2004 4:18 PM

anon said:

Thanks for your candor, talking about issues not many people in development or professionals careers talk about. Yet these are at a level higher than the work with which we fill our life.

I have, many a time, reflected on these and must applaud you for recognizing and identifying them clearly, and more so acting upon it. Thanks. This will be an inspiration to me.
# July 21, 2004 4:33 PM

Jeff said:

That's almost entirely coincidence. For the longest time it was the Wrox books that got the better reviews. Besides, those skinny books had depth that no other publisher was willing to tackle on short-runs (and it's probably part of the reason they crashed and burned financially).
# July 21, 2004 4:47 PM

Jay Glynn said:

I see 2 that I wrote chapters for and 1 that I did the main outline and reviewed. I knew someone had to buying them....

Jay
# July 21, 2004 9:04 PM

Justin Long said:

Your not the only one that has all those wrox books, To bad wrox got bought out they had a good thing going. Anyway here's all the stuff on my shelf just for you: http://blog.dukk.org/posts/151.aspx
# July 22, 2004 12:06 AM

TrackBack said:

# July 22, 2004 6:45 PM

Labes said:

The merger really brought me down. The only show I really watch andymore are TSS, and sometimes X-Play (Still like the name Extended Play better though...). Haven't seen much of a difference from X-Play though.

TSS... oh boy, where to start. First, I don't know if Leo got kicked from the "anchor" or whatever position or he dropped back on his own. He still has a little segment but, hell, he's the guy that basically started the show, he had been with it as front-man for like 5 years or something like that. Kevin... I like him, I just liked him better as "the dark tipper" when he had a little segment on the show about modded PS2/X-Box and the like. I'm not a fan of him doing the front work, but whatever. I kinda miss Martin being on the show, but the few episodes of Unscrewed I've found mildly humorour.

C'mon, bring back the old line up. Really made it good when I got home from work or school to relax and find myself watching people who know about computers. Oh, btw, what happened to Yoshi? He still on TSS? I just haven't seen him after he put a window on a CD-ROM, or whatever it was...
# July 22, 2004 9:39 PM

Robert W. McLaws said:

Um, guys....

LoginControl.UserName
LoginControl.Password

What else do you need? You can template the control at runtime. Use a skin.
# July 23, 2004 12:48 AM

Jeff said:

Um... it's not good enough?

Not only will I not use the login control, but there's a lot more to put in there, like endless examples of customized content for a logged in user.
# July 23, 2004 1:11 AM

Eric Foronjy said:

I'm so pissed off, I didn't understand for the last few months why techtv was sucking, and what all the g4 crap was. I will never watch that channel again. WTF.
# July 23, 2004 3:55 AM

Jim Bolla said:

That is disappointing. The LoginView looked real handy. If my controls aren't available to me then its just stupid. It doesn't seem like it would be that complicated to make it work the way we all expect it.
# July 23, 2004 11:32 AM

Josh Christie said:

I couldn't agree more. Orin Hatch has been in the RIAA's back pocket for years and repeatedly demonstrates that he doesn't understand technology. This is the same guy who wanted to allow the RIAA to hack your computer (his term was "blow up your computer") if they suspect you of sharing copyrighted files. No proof would have been needed and if you were hacked by mistake you'd have very little recourse against the RIAA. Advocating such vigilante justice shows his understanding of the justice system is on par with his understanding of technology.
# July 23, 2004 3:32 PM

David Crowell said:

The law can hold anyone responsible for ANY technology that INDUCES people to break copyright law. Does that apply to usenet software also? How about a web browser? Email client?
# July 23, 2004 4:00 PM

Jim Bolla said:

"The law can hold anyone responsible for ANY technology that INDUCES people to break copyright law. Does that apply to usenet software also? How about a web browser? Email client? "

Why stop there? How about electricity? Telephone/cable lines?

Know what INDUCES me to download music more than anything else? Lack of variety on the radio and outrageous CD prices.

PS: Dear RIAA goons: I still buy more cds than anyone I know. My collection is well over 300. I lost track after I had to start boxing up old cds and putting them in the closet cuz I ran out of room in my media rack.
# July 23, 2004 4:14 PM

Very Angry Person said:

What in world is going? G4 is a dumb show point blank! I will miss techtv........:-(
# July 24, 2004 3:13 PM

TrackBack said:

# July 25, 2004 5:44 AM

Suntor Gecko said:

I'm kind of taking the view that the Whidbey release is a two progned beast. It has Generics,Iterators,anonymous methods et al for the purist programmer, then it has all these Easy peasy controls that my Mom could build a web site with. I'm tending to regard these new controls with a view of never using them, as you just don't have full control over your data flow. I may use an objectdatasource at best, but can I trust the SqlDataSource to flow my data in the best possible way, or should I be using it just because it's quick and dirty and makes life easier. The objectdatasource creates a new instance of your object for every method invocation, probably not a major problem in the greater schema of things, but I could develop a flow that perhaps just held one reference that holds some state between calls for example. I can't argue that these controls are neccessarily bad, just that perhaps they should be used judiciously. I just don't like full control being removed from my fingetips, and I really look forward to other peoples comments on the new controls.
# July 26, 2004 9:06 AM

DonXML Demsak said:

I get the same thing all the time, and not only via phone calls. I regularly get them via email. My other issue is that even though I explicitly say that I am not looking for work outside Northern Jersey, I get calls and emails for spots all over the US (and even India).
# July 26, 2004 6:30 PM

Alex said:

I had a feeling you got that CoasterDynamix kit for free.
# July 27, 2004 12:07 AM

Jeff said:

Considering what I normally bill on an hourly basis, I can assure you it was far from "free."
# July 27, 2004 12:11 AM

Alex said:

How long could you have possibly spent on their site?
# July 27, 2004 11:32 AM

Zach said:

I say we create a paypal account to donate money to. Then when we reach a certain amount of money we start an anti-G4 string of commercials. And better yet put them on there channel!
# July 28, 2004 4:19 PM

Zach said:

Tis a sad day indeed..
# July 28, 2004 4:19 PM

ezekial45 said:

One of the worst business decisions ever, next too AOL-Time Warner. Comcast only did this to get a hand in the Gaming business, This led to the creation of G4. But it was a Dud when it first aired. Comcast only wants TTV's TV reach for G4. But people are still turned off by G4's programming and now TTV has gotten into the mix. But Comcast are starting there own On Demand Gaming service. So if that is more profitable then This channel then they will mostlikey Dimantle it.
# July 28, 2004 6:26 PM

ZP said:

Now this is piddly. Come on, why you have to down it at all? If you don't like it? Don't read it and stfu.

Channel9 is a very informative website. The video format is a nice break and allows you to sort of sit back and take in the information comfortably.
# July 29, 2004 4:37 AM

Heather said:

If the job isn't terribly enticing, they have a better chance of getting you to call back by not saying much about the job at all. Couple that with the fact that they are probably calling a large number of people (that's not to say that you weren't at the top of their list) and you get a short message. Few people call back either way.

And despite the fact that some people say they won't relocate, many will change their mind for the right company or position and the recruiter isn't losing anything by giving it a shot.

Generally, they are just trying to start a dialogue and apply the "sell" after they understand a little more about you and what you are looking for.

I'm not saying that it's the most effective way, but it's how the recruiters think about it. I have to admit that I have left some vague messages when I recruited for other companies, but now that I recruit for Microsoft, I get more returned calls.

Good luck with your book!
# July 30, 2004 6:33 PM

fuck comcast said:

fuck comcast never wach there stuff i hope they die G4 sucks big time it should win an award for sucking so bad, i just came back from my summer vacation and to find that there are like 0 reruns of techtv shows and that all G4 shows suck just plane and simple G4 sux making G4-TEchtv sux and i fucking hate comcast now fuck them i want to know the ceo cause im going to fuck his wife.
# July 31, 2004 11:32 PM

TrackBack said:

# August 2, 2004 11:06 PM

Matt said:

The difference is if you steal an expensive car you deprive someone who does want to spend the money of one.
And do you have any evidence that these people won't buy the game? Many of them may be copying it for the "I had it two days earlier than you" brag factor.
# August 2, 2004 11:40 PM

Jeff said:

Typical response from someone that doesn't seem to get it.
# August 3, 2004 12:23 AM

Don Newman said:

I'm sort of on the middle ground on this one. Piracy is getting out of control, but so are some software prices. That doesn't mean that I advocate stealing software. I'm a developer as well and if somebody stole my code (including compiled versions) I would be pissed as hell. As a consumer I realize I have an option of being a company's customer or not. I use Paint Shop Pro instead of Photoshop because of price factor and PDF995 instead of Adobe to create PDF documents. I might lose out on a little functionality, but I chose to for the money I save.

I have to admit that I do occasionally use unlicensed software for short term evaluation. This is when a company does not provide enough details on the software nor do they provide a demo of it for evaluation purposes. If I can't find a copy of it somewhere I assume it is of no value to anyone. If I find a copy to try out and find I like it, I buy it, if not it gets uninstalled and the search for a different solution continues.

Games are a whole different situation. Whatever the genre of game, if you can't afford the ones out there, don't play them. There are tons of options for other titles available for free or as shareware or some other way to fit it into your budget.

I would like to add that software piracy IS different than stealing a car or other physical good. If a person copies a program it does not remove the original. If they wouldn't have purchased the software if it wasn't able to be pirated, then nothing is really lost except a user. Chances are that those who have pirated a copy of Doom 3 would have bought the game otherwise and likely will not now. Profits will have been lost and that will result in the next game increasing in cost and lack of motivation for additions to the game. The pirates have ultimately hurt their own community.
# August 3, 2004 1:44 AM

Drazen Dotlic said:

Id has not announced yet release date for the demo. Many people, myself included, want to see how fast the game is on their hardware and will probably download pirated version to see for themselves. Besides, shipping dates here in Europe are 10 days behind US, so the wait is unbearable.

That said, many people will never buy the game, but that is the reality - Internet (high speed) giveth, Internet taketh. As much as Internet helped the pioneers of shareware (Doom was one of the, if not THE first game to be offered this way)), it is now being (ab)used against them.

We should all learn to adapt to this situation, as it is not going to dissappear and is probably only getting worse. Hopefully, percentage of those who will never buy under any circumstances is a lot smaller than percentage of those who can be "persuaded" either by better pricing, availability, support or general quality of what we produce.

Btw, I noticed one strange irregularity (usually it's the other way around) - Doom 3 is cheaper if ordered through Amazon.co.uk than over Amazon.com - in US it is 54.99$, in UK it is 24.99£ which is about 45$
# August 3, 2004 2:18 AM

Andy Smith said:

These methods have been moved inside the ClientScript property on Page.
# August 3, 2004 2:48 AM

Justin said:

Those people who are truly doing evaluations aside I've heard people make the "no body is deprived" argument before and it strikes me as rationilizing theft; it's just easier to do since the goods are intangible. I'll stay with the car analogy. What happens when there is a surplus of luxury cars? If the entire market for a Cadillac is 10 people but there are 11 cars produced does that mean somebody can steal that 11th car just because none of the original paying market was deprived?

At what point did lack of a physical medium make it okay to steal content? Take some random college student who has downloaded all the tracks of the latests Metallica CD, if you were to take them to a Wal-Mart I would wager 99.9% of them wouldn't even consider shoving it down their pants and walking out the door. Record labels can crank out CDs until the cows come home so the deprivation argument doesn't really hold water for the cheap stuff either.
# August 3, 2004 3:15 AM

Bill said:

If you can afford to buy but choose to steal then that is far worse in my eyes than someone from the far east on a few $'s a day downloading something that they would never have been able to afford. Comparing the situation to a car or placing a $ value to the cost of piracy is no more valid than someone comparing software piracy to starving africans eating grain they didnt pay for themselves.

There is the problem, the world is not equal, so why do some software companies treat all thier customers as equal ? Coca Cola dont sell a bottle of coke in Somalia for the same price as they do in USA, if they tried that they wouldnt sell much and likely they would create a market for fake bottles of Coke. Software like Coke is extremely cheap to replicate especially if you use local labor or bandwidth.

Which leads us to the second problem, why are these companies not embracing todays technology rather than fighting it. It is perfectly possible for Id to offer a downloadable version of Doom 3 from the day after it went Gold and they could also be offering it cheaper to purchasers from poorer countries. So why dont they ?

Stealing is wrong but until Id and others have solved these 2 problems they have as much sympathy from me as someone who leaves thier keys in thier car ignition.

Microsoft , IMHO have a well thought out policy (or maybe its experience) and seem to realise this, which is why they offer downloadable software, educational licenses and cheaper regional versions of some software. They also know that the more people that have thier software the more people will buy it, the same applies for networked pc games and even games consoles (which is why Sony turned a blind eye to mod chips for so long)
# August 3, 2004 3:57 AM

Frans Bouma said:

I agree with you, Jeff, however I won't call it 'stealing', as it technically isn't. It's unlicensed usage. You may (at least here in The Netherlands, and I'm sure in the rest of Europe it's the same) have a copy but you may not use it unless you have a license.

That aside, the amount of piracy of Doom3 isn't different from the amount of piracy of any other game. Often a game is released into the warez scene before the official release, as groups often have suppliers early in the chain, like working in distro companies or stores.

Activision also made a mistake: In Europe we have to wait 10 days till we can buy it (august 13). Those 10 days are not for translating the manual into 20 languages, that takes much longer than that. (UK can have the same manual even). Also boxes with descriptions in various languages can be pre-manufactured (they are) way before the game is done.

Why the delay? In Europe there are highly sophisticated CD duplication factories, we don't need to wait till a big ship arrives in Rotterdam to deliver the games: fork the master over to a factory here and manufacture the game locally.

Due to that delay a lot of eagerly waiting folks in Europe and elsewhere in the world have a choice: download or wait 10 days. Some can't stand the wait when they can download it as well.

Valve has thought of this and came up with a solution: Steam. The minute the game is gold you can download it from Steam. Great concept and really using 21st century tech.

EA will release the sims 2 worldwide on the same date as well. It IS possible. It is also, sadly, necessary to do so to avoid a lot of downloads.

Besides that, we have to pay 55EURO for the game here. Money is not that important to me, but for gamers who don't have a lot of money, it can be too much. If you take into account what the dollar - euro rate is at the moment, you get a pretty well idea how europeans get ripped off by Activision.

But hey, it's doom 3. Although a lot of people already reported the dull gameplay in the second half, I'm still going to buy it :)
# August 3, 2004 4:17 AM

Jerry Pisk said:

I never understood the argument that thieves would never buy that game (software, cd, whatever) anyways - why exactly are they stealing it then? It's obviously something they do not want (otherwise they would buy it), so why are they stealing? IMHO they're just trying to find excuses for their stealing.

As for stealing cars - why exactly is it different? Cars cost money to make, so do games. Strangly I don't see many people who advocate stealing as harmless crime giving away their work for free...
# August 3, 2004 4:49 AM

Guy Murphy said:

The matter isn't a moral one, it's a business one.

If your business model wont sustain contact with the real world the fault always lies with the business model never with the real world that refuses to comply with your business model.

If you come to launch with no demo you fuel desire for people to get their hands on your product. There's a pro... the fueled desire hopefully equates to a rush to the shops on launch... and a con, in that people will seek other means to obtain your product if they're available.

If you have brought to the highest pitch you can desire for your product and you stagger release globally (as often occurs with Europe), then in the age of the global ecconomy you're a bloody idiot and point blank deserve to get your knuckles rapped.

If you decide to mark-up the price at a premium in a region simply because your distributor has developed the habit with all types of media from games to book of translating 1 for 1 dollars into pounds sterling, and then translating the sterling into Euros at the exchange rate when dollar to sterling hovers around 1.5.... effectively screwing your customer just because your can... if your customer decides to screw you simply because they can you don't get to call foul, you get to suck it up the same way they do.

If your business model doesn't survive contact with the real worl.... change your business model.
# August 3, 2004 4:52 AM

Frans Bouma said:

"As for stealing cars - why exactly is it different? Cars cost money to make, so do games. Strangly I don't see many people who advocate stealing as harmless crime giving away their work for free..."
Theft is taking something away from someone else. Person A has object X. Person B steals X from A. A doesn't have X anymore.

Running a pirated game isn't theft as it doesn't steal anything away from the creator. It's more like using a service (hiring a consultant for example) and not paying for that service.

Note: I'm against piracy but I'd like to state also that piracy isn't theft. Please use the proper terms which are also used in court.
# August 3, 2004 6:02 AM

Jeff said:

I knew it would take virtually no time for someone to answer! :) Thanks!
# August 3, 2004 9:38 AM

Alex Papadimoulis said:

As Frans said, software piracy is not stealing ... just as Assault is not Burglary. Piracy is generally carries no penal consequences (but plenty of civil) while stealing most certainly does. There are clear conceptual and legal differences between the two ... just because one mentally equates the wrongness of the two acts does not make them the same.

As much as we all hate software, those who equate it to stealing ... is it fair to charge a kid Grand Theft for downloading 3D Studio Max because he wants to make models for Unreal?
# August 3, 2004 10:06 AM

Alex Papadimoulis said:

... I really should proof what I write before hitting that submit button ...

"Piracy is generally carries" --> "Piracy generally carries"
"As much as we all hate software" --> "As much as we all hate software piracy"
# August 3, 2004 10:08 AM

Chris McKenzie said:

"Theft is taking something away from someone else. Person A has object X. Person B steals X from A. A doesn't have X anymore. "

This is wrong. You haven't been reading your John Locke, tsk tsk. :)

To define theft, you must first define ownership. Ownership is the right of use and disposal of some asset. Assets are not defined as "tangible." They can be tangible or intangible. They can be a piece of land, a clock, a copyright, a patent, or a trademark, or any endless number of other things. Ownership can only be transferred by the owner--the right of use *and disposal.* Most often, ownership is transferred from person to person by means of an agreed upon trade. Sometimes this trade is arm's-length--i.e., 1.99 for a burger at McDonald's. Sometimes the trade is extremely complex and represented by a legal document--i.e., a contract.

Theft is the appropriation of another's property either as a failure to gain approval from the owner.

Notice how vague all this is. It leaves the particulars to definition. To apply it to this specific case--ID software owns a software product, for which they will trade a copy to another person for a certain amount of money. Anyone that obtains, without Id Software's permission--which means without paying for it, or having permission by some other means, a copy of DOOM 3, has stolen from ID software.

To the person that said that this is a moral issue--I obviously don't agree. It's a profoundly moral issue. If you advocate that others should be able to appropriate your property without your permission, then it doesn't matter if that property is tangible or intangible--or if the person is doing it via a software download, or by burgling your home. Ownership, property rights--these are principles; and the slightest abrogation of these principles destroys them outright. It's either-or. Either I have the right to dictate the terms by which I will transfer ownership of my property, or I don't.

Great blog, Jeff.
# August 3, 2004 10:44 AM

M said:

Yeah, but you forgot about the girls on the "G4TV.com" show...talk about a bad show...their target audience must be 12-14 year-olds.
# August 3, 2004 11:04 AM

TrackBack said:

# August 3, 2004 4:17 PM

Steve said:

One of the nasty problems with software is that they violate the sense of fair use that consumers have taken advantage of for years. When one of my friends goes out and buys a new Metallica CD, we're all going to physically make a copy. Until the digital revolution, the right to make bootleg copies to distribute to family and friends was clearly outlined by the law. To this day, people swap CDs, DVDs and books with each other in the physical medium and we accept it.

The problem with software is it doesn't exactly work like that. While content providers should suck up and deal with the swapping of physical media, its very unreasonable for them to suck up and deal with digital swapping, where the potential audience per asset sold is much much higher. At the same time, software has imposed the concept lately of "1 copy, 1 user", which flies in the face with the rights consumers have had for generations. Why is it okay for me to trade XBox games with friends, but not okay for me to trade PC game CDs with friends.

When you couple this with the fact that productive software ala MS Office / Photoshop / Visual Studio / etc tends to be priced towards corporate buyers instead of consumers, you end up creating a market where people almost have to rationalize stealing software ala "Its okay for me to use MS Office at home, because my employer got a copy at work, and 90% of the things I'll do at home with it are for work, so its unfair I should have to buy it".

Personally, I keep a physical media rule. If a friend lets me borrow his CD, I'll rip it so I can have a copy for myself, likewise with movies. In terms of software - if someone lends me the Doom3 CDs, I'll play them without buying, but I won't make a copy, so when I give the CDs back to my friend, the game won't work for me anymore. Since that works in the same spirit as "Sure you can borrow my book", I feel fine doing it.

I think the people in this country need to have a serious talk about fair use and media - its unreasonable to think that consumers should blindly accept their fair use rights being revoked by media companies, and its probably similarly unreasonable to think that they'll boycott media empires when its basically a giant monopoly. Is civil disobedience the right answer? Maybe. And for that reason, while I don't participate in software piracy any more than I admitted to above, I don't tend to smack down on those that do.
# August 3, 2004 4:52 PM

Jeff said:

Dude... what you describe is not even in the neighborhood of "fair use." You should look it up some time.
# August 3, 2004 5:26 PM

Jerry Pisk said:

Fair use applies to something you own, which in most cases means something you paid for. Copying a game from a friend is not fair use. There are other fair uses, that do not require you to own whatever you're using, but those do not apply here, they're things like satire, political speach, news and so on... Copying a game from a friend (or a rental place) is not fair use, no matter how much you want it to be.
# August 3, 2004 5:48 PM

Frans Bouma said:

"Notice how vague all this is. It leaves the particulars to definition. To apply it to this specific case--ID software owns a software product, for which they will trade a copy to another person for a certain amount of money. Anyone that obtains, without Id Software's permission--which means without paying for it, or having permission by some other means, a copy of DOOM 3, has stolen from ID software. "
Not here in The Netherlands and other countries in Europe and if Im not mistaken also in the US. You may own a copy of DOOM3, you are just not permitted to use it, distributed it or sell it. You may own the copy though. Please read into this before you make a claim. As a software vendor I have done a deep investigation into what software selling really is and what you can do and should do as a software vendor, i.e. what do you sell and what that means and thus what it means to users buying what you sell and what they can do with it.

With software, the user owns nothing but a license. A software vendor sells a license to use a copy. It doesn't sell anything else. A user therefore can only own a license. A person who buys DOOM 3 in a store, buys a license, a license to use the copy he gets with the license.

What does a person get when he downloads the iso's from a website? A copy, without a license. The user doesn't get a license, thus doesn't steal anything, as the user doesn't steal a license, the ONLY THING a user can buy!.

The person who downloaded the iso's can however try to run the game, with software which makes this possible (a crack, serial generator or what have you). When the person after applying these programs runs the downloaded software, the person violates the DMCA in the US by applying a crack to a piece of copyrighted software and furthermore violates teh copyright law in the country he is running the software in.

That's it. It might sound weird and not fair to the software vendor, but that's how the law works. I didn't make these, your government did.

Another aspect comes into play when the user downloads the iso's using bittorrent or other p2p network. These networks often share the downloaded files also (Bittorrent does this while downloading!). This means that a downloading person is also SPREADING the copy again.

This is a more severe violation of the copyright law, as you may not distribute copyrighted software without a license to do so. Often people don't think of this aspect when downloading a pirated copy.

I saw Jeff wrote another piece on his blog about this. I'm not sure if he refers to me when saying some people want to downplay piracy. I certainly don't have that intention, however I find it close to stupid when people are not realistic about this. Although I wish we could live in a world where we wouldn't need a lock on our door, the reality is different: give a person who doesn't want to pay for things (services/goods) an oppertunity to use services/goods without paying for them and they will take that oppertunity. I.o.w.: software vendors should be aware of the fact that piracy will happen and should work hard to make the oppertunity as low as possible.

The last thing I want to add: please, if you all want to discuss this on a higher level than throwing mud, use the proper terms as they're also used in court and in any decent law book. As stupid as it might seem, piracy as in unlicensed usage of a piece of copyrighted material isn't theft, it's unlicensed usage of copyrighted material.

The weird thing is: you can't say any pirated copy will be one sale lost. Perhaps the pirated copy will make the user aware of the great game and make him buy a license after all. This is not a lame attempt to make it look less bad, it is just an illustration of how things can be seen.

Unlicenced usage of copyrighted material is something that's wrong, as stated in the copyright law.
# August 3, 2004 5:49 PM

Frans Bouma said:

"downplay piracy" I meant: make it less severe and bad as it really is. I find piracy bad and don't want to make it less bad than it really is. Just a disclaimer for the possibility I used english words wrongly :)
# August 3, 2004 5:52 PM

Steve said:

Fair use, as defined by the United States Supreme Court, hasn't changed much insofar as copying rights since Sony Corp v. Universal City Studios, 464 U.S. 417 (1984) (Docket Number: 81-1687), the infamous Betamax case - In that case, the bench ruled that copying to/from physical media caused minimal harm to the value of the copyrighted work. Although they did not expressly reserve the right of consumers to copy works, by denying Universal a criminal and/or civil antidote to their grievances, they effectively did. In more recent times, Kelly v. Arriba Soft Corporation (1999 U.S. App. LEXIS 1786) upheld the doctrine that even in the digital age, free distribution of reduced quality copies of media is appropriate and governed under fair use. Even in the Napster case, althought Napster obviously lost, the court found for the plaintiff on the grounds that Napster violated the copyholder's right to distribution, and to mass reproduction - the court ruled that the other three points were permitted under fair use (upheld by the 9th Circuit).

Stepping back from straight-letter law for a second, this is exactly what society has been doing with books for hundreds of years - to a significantly greater extent when you consider libraries. If you can honestly tell me that its wrong to borrow a technical book from a coworker's bookshelf then you've been deceived by mass media, my friend. Fair use for media rights applies equally across ALL types of copyrighted media. Software is a tricky point on it since software is not a passive media and thus subject to patent over copyright, and the jury's still out on that one.
# August 3, 2004 6:00 PM

Steve said:

Re: Copying.

I don't think copying software is fair use. Its not a passive media and isn't acknowledged as a consumer right as "legitimate bootlegging".

But I didn't say I did copy games - I said I'd borrow them without copying. Although shrinkwrapped liscense may have problems with that, that doesn't make it illegal by any stretch of the imagination. In fact, maintaining the view of physical media space shifting (the right to give a book to a friend), I submit its wholely legal solong as multiple parties can't use the same software at the same time.
# August 3, 2004 6:02 PM

Jeff said:

You know that's not what anyone here is talking about, so why are you trying to take some intellectual high road that has nothing to do with piracy? See: Jerry's post. Ten people download the game and play it, that's piracy.
# August 3, 2004 6:07 PM

Steve said:

????

We're defining piracy. I agreed in my first post that downloading games will-nilly off the net and playing them was piracy. You said that the idea of playing a game from the original CD you didn't purchase wasn't fair use. I was just responding.
# August 3, 2004 6:22 PM

Jeff said:

No, you're bringing fair use into an issue that has nothing to do with fair use. You're arguing about Coke vs. Pepsi and we're talking about piracy.
# August 3, 2004 6:33 PM

Steve said:

Fair use applies to software, especially games, because games more than any other software lie on the cusp between patent (where the law favors of the inventor and corporations) and copyright (where traditionally the law favors the consumer).

Consider how its legal to rent a game at Blockbuster - Back in 1987, Nintendo saw the idea of multi-use copies of their games to be an infringement of their rights as the producer/inventor. But the courts ruled, based almost entirely on fair use, that Blockbuster was free to distribute Nintendo's games in time-share fashion to a mass audience at a fraction of the original cost of the product. While the court restricted the right of Blockbuster to do this, Nintendo lost ultimately. Blockbuster was able to force its business distribution model above Nintendo's, even though Nintendo was the copyright holder for the software.

That distribution model is conventional wisdom today - everyone thinks in terms of renting media. But what's interesting is that Blockbuster is not required by law to distribute with a cost - if Blockbuster wanted to lose money, they're more than legally capable of giving everyone free game rentals. The only condition is that they are forced to buy a copy of the original game from the publisher. Congress stepped in and said that if you're going to redistribute the game for commercial reasons, Nintendo could sell Blockbuster the game at a very very very expensive rate above and beyond the rate presented to normal consumers. But if Blockbuster has the right to redistribute at no-cost (even if that model causes economic damage to the copyright holder), and I'm a consumer, if the rule of thumb that a consumer customer always has more rights than a corporate customer is valid (and that's always been the rule to-date at least), than I can also restribute my purchase, just on a smaller scale.

In the end, it means that no one knows who's right in the software wars. Conventional wisdom tells me that mass distribution above the scale Blockbuster stores are capable of is not a protected consumer right, but the courts haven't defined it as piracy yet. Just because Microsoft and Nintendo Power say sharing games is wrong doesn't make it so.

On a completely seperate side-note, Coke and Pepsi have nothing to do with intellectual property since recipes aren't protected content.
# August 3, 2004 6:59 PM

Jeff said:

What are you talking about? Fair use has zero to do with some kid downloading software that he didn't pay for and using it.
# August 3, 2004 7:17 PM

Steve Hall said:

I think that part of the problem with piracy is simply the word itself. Esp. with children, it invokes in some non-critical-thinking minds a romanticized notion of "leveling the playing field" or righting some sort of wrong. In this country, we've been inundated with this imagery in the form of movies whose main characters are swashbuckling pirates and "robin hoods" who (even though they're plainly STEALING) are sympathetic in their actions.

Thus, its no surprise to me that a lot of people are sympathetic towards those that are doing something "heroic". This form of hero worship is obviously misguided and is simply an example of "social engineering" at its WORST.

The real sad part of this romanticized theivery is that almost every single under-30 programmer I've known in the past 10 years has professed to abide by the same so-called value or moral. ("If I can't afford it, I'll simply get a copy from my friend!") When I ask them if they've ever written any software that they've had stolen while they were trying to get paid for it, they always say:

"Well, NO! I've NEVER had anything stolen!" (usually in a state of denial...)

to which I always respond:

"How would you feel if another programmer had his hand in your pocket taking money out of your wallet?!?!?!"

to which they always respond:

"Well, that's JUST NOT RIGHT!"

The hypocrisy of their viewpoint usually doesn't phase them ONE BIT!

Unfortunately, I have had my intellectual property stolen several times in my career. I GUESS it's just a matter of perspective!

Personally, I don't feel like being pick-pocketed by fellow programmers is the greatest feeling to have about one's own profession... It's starting to make us look worse than a bunch of bottom-feeding lawyers!

Professionally, having interviewed hundreds of applicants for programming positions over 30 years, this is one key indicator of their level professionalism that affects my hiring recommendations. Most corporations and even small companies (who have much MORE to lose!) most definitely do NOT want programmers on staff who have a predilection towards STEALING, since they're the most likely to GIVE AWAY the company secrets, if not "samples" of products.
# August 3, 2004 8:36 PM

Steve said:

I think we all agree software piracy is bad. We just don't agree with the definition of piracy.

Before I fell in love with writing high-traffic data servers, I was a game developer for a small game shop. We were paycheck to paycheck (and in the end, I went 8 months without getting a penny in compensation). Through our updater usage statistics, we knew a huge portion of our users had grabbed our games off of Warez - so I do know the sting of pirated goods.

On the same note, even if it meant a lost sale, I'm okay with the idea that a roommate could lend his game CD to his roommate. If I had been a PS2 developer instead of a PC games developer, we wouldn't be having this conversation, because its universally accepted that physical media can be lent, traded and resold without violating the rights of the creator. But somehow, because its "Giants: Citizen Kabuto" on a CD instead of a PS2-enabled DVD, the rules for fair use change? I don't think so.

My morals as far as piracy are defined through consistency - Scanning a book and putting it on a torrent linking site is contributing to the piracy of that book, as it would be for music, movies, games, or any other kind of software or media. But exchanging physical copies with close friends is not piracy in my book, and for the time being at least, the legal system seems content to view it the same way.
# August 3, 2004 9:32 PM

Steve said:

(I wasn't implying I was on the Giants team - I wish. I just picked that for an example because I replayed it last weekend. I worked for a small European game shop making Robin Hood games)
# August 3, 2004 9:34 PM

Steve Hall said:

It's good that some (like the other Steve) are capable of distinguishing between fair use (lending out their own copies of a "work" whether it's a book, music CD, game CD, etc.) and copying for the purposes of stealing. The part I'm having trouble with are the music and film industries) that insist on trying to invent ridiculous copy-protection schemes trying to make it impossible to backup copies of music or movies.

This is especially troubling with movie DVDs, since they're dual layer and there's a sizable percentage (>1%) that are either crap on day one or turn to crap after a few playings within the first year or two. (The problem is the bottom layer of the two layers not being readable by all players or simply degrading more and more each time it's played due to the heat-cycling of the el cheapo stamped aluminum sheet...)

Of course, the movie studios try to counter this common quality complaint by pointing to their crappy warranty, which is usually only 90 days... Of course, the movie industry would just rather we buy a second copy rather then go through the hassle of returning a defective DVD to the studio return office.

To make things worse, a lot of my music CDs that are over 15 years old are now starting to show evidence of degradation. But the music industry surely just wants everyone to replace their music collection every 15-20 years...

This fair use issue sticks in my craw and they need to address the quality problems in manufacturing (such as replacing their stamping master dies every 100,000 impressions rather than every million impressions) and provide a 10-20 year media defect replacement warranty.

After taking those steps, then maybe we could accept the idea of not being able to copy the media for fair use backups.

The argument against software being copyable for fair use backups goes away if we accept the idea of license keys and activation. It turns it from being a fair use "copying issue" to a fair use "use issue"; which I can live with.

This is why I endorse software activation: it helps to remove the complaint that users want to make backups in case of future reinstall. Granted, calling a software vendor to beg for a new activation key isn't fun, but that's the least of my problems if I'm reinstalling the software.

Now would the music and movie industry benefit from borrowing the software industries license-activation scheme? Maybe so, but it would take everyone replacing all the music CD and movie DVD players already in existence just to implement an activation scheme. Thus, they're kind of stuck with solving the fair use issue by improving quality and defect returns.
# August 3, 2004 11:32 PM

Matt said:

Jeff should know that 40 to 50 percent of all software, even in the best countries, is pirated. The sorts of opinions he's seen in his comments simply reflect that. Yet he has the hide to call his commenter's naive!
The reality of the situation is that a very large proportion of the community feel they're being taken for a ride by large intellectual property companies - charged exorbitant prices for product that's not really worth it especially given the draconian restrictions on it.
In some cases it's easier to run pirated software than the real thing because of stupidity like copy protection and activation. And it is stupidity - you piss off real customers without reducing piracy.
The IP industries need to a) respect their customers instead of treating them like thieves b) charge realistic prices for their products
# August 4, 2004 12:49 AM

Matt said:

And that crap about letting the market decide which products to buy - it actually already is.
The market has decided that software is 40-50% overpriced, given current non payment rates. It's time to recalibrate your price gun, Jeff.
# August 4, 2004 12:51 AM

Steve Hall said:

I disagree with Matt that high prices justify stealing...

Contrary, MOST retail software has been greatly lowered in price over the last decade. E.g., Norton Utilities and PC Tools 8-10 years ago was MSRP $150. Now Norton Systemworks, which is really several bundled products, can be had for $40, and is only $20 for annual upgrades. Other software is simiarily priced. (Does anyone remember paying $250 for a rather limited capability C compiler for PC DOS? Or the $500 for the first few releases of the Windows SDK, which is now FREE? Versions of Unix clones ran $500-1500 10-15 years ago...) The majority of these now-low-priced products are "mature products" and have a far smaller yearly reinvestment into new releases. Thus, the ISVs smartly lowered their prices, since they've gotten a fair ROI many years ago.

But, there are some companies that are "one trick ponies" and have invested an enormous amount of money in developing their single product. What do you propose those companies should do? Price their products at a price-point such that they NEVER have a positive ROI and become profitable?

Granted, some companies are trying to milk the proverbial ROCK well beyond fair market pricing, esp. if they are a monopoly. Those greedy companies either wise up or lose customers...even IF they have a great product.

In short, high prices are STILL NOT a moral or legal excuse for STEALING. Understandibly, developing countries deserve somewhat lower prices, but they should NOT be endorsing thievery by NOT enforcing world-wide copyright law.

The thing I still don't understand is why so many programmers in developed countries (US and Europe) would rather STEAL from their fellow programmers...and try and justify it based upon what prices are like in some OTHER market (e.g., China). We in America and Europe are quite capable of paying for most retail software. We just CHOOSE to steal it instead!
# August 4, 2004 1:59 AM

Frans Bouma said:

"What are you talking about? Fair use has zero to do with some kid downloading software that he didn't pay for and using it."
True, but neither has theft. If you want this discussion to go somewhere, please use the proper terms or, ... well, don't start a discussion about it.

I have great respect for you, Jeff, but the way you're handling this is beyond belief. The 'Steve' guy in this thread is right and you know he is, it's just that you want everyone to acknowledge that your definition of piracy and the connection with theft is the right way to deal with this. It's not.

The discussion is very important, but how you're handling it, it's going nowhere.
# August 4, 2004 5:15 AM

Steve said:

I also disagree that high prices justify stealing, at least in the US - if someone from Iraq told me he/she stole copies of Visual Studio so they could play in the digital age at the same level I can, I'm apt to turn a blind eye to it.

That said, I do think software prices are too high for the most part, mainly because the software I need to work at home is priced outside the range I can afford as a person. Granted, my software needs are above and beyond the normal user, but if I were to take my work home with me, I'd need MS Office, Visual Studio, VMWare or Virtual PC, a couple different copies of windows to run in virtualization, and a couple SQL Server liscenses (Maybe my companies MSDN Universal subscription gives me liscense to bring that software home - I'm not sure and I'm too lazy to find out for sure so I don't do it). That said, even for my dad, a copy of Windows + Office + Photoshop is ~1000 bucks, which is way beyond what he's willing to pay. Since Microsoft has to date held a veritable monopoly on the market, there's not much he can do besides cough up the money, steal the software, or not do work at home.

Competition in the market is changing that, though - Gnome 2.6 + OpenOffice + Gimp satisfies my dad's needs, and Microsoft and Adobe know it. As a result, you see things like home edition pricing for Photoshop and Visual Studio Express Editions popping up to solve those needs. SQL Server Express can replace any SQL Server desktop setup better than MSDE could. Companies are quickly becoming wise to the idea that they need to market differently to consumer customers than they do to Enterprise customers. Inherently, I think a competitive market solves the ills of overpriced software by itself and as long as the market remains competitive, I'd like to think most adults would rather buy an affordable copy of software legally instead of stealing it. If you couple in strong technology incentives like DRM that protect a companies IP without overly restricting the user's rights, I think the market will balance itself out. But as soon as companies try to gain draconian control over the market again, theft is what you'll see.

Of course, you could point out that Id Software is perpetually nice to the gaming community at large, and people are still stealing the game in droves - I think its mostly teens (I hope at least) and good DRM like the kind that GarageGames embeds in their games is still needed to remind gamers that there's not a penguin emblem on the front of the box. But like I said, Id has to balance their DRM - if its not fair, people will break it out of what can almost be described as a sense of social spite.

Jeff - on a personal note, sorry if I was being an ass yesterday. I didn't mean to come off sounding haughty quoting court cases, I just meant to back up what I was saying and give you a chance to look them up, come back, and tell me I was reading it wrong. Also the jab at your Coke v Pepsi analogy was uncalled for. I'm just very "excitable" on this subject because I think the entire way we will view IP for the next century finds its roots in the next 5 years and I overreacted when you called me out on not knowing what fair use meant. Still not an excuse though.




# August 4, 2004 10:44 AM

TrackBack said:

# August 4, 2004 10:55 AM

Shannon J Hager said:

You have to expect people to correct you when you say something that is wrong like "downloading [xxx] is like stealing [yyy]".

Running a redlight != speeding.
Copyright infingement != theft.
Making a photocopy of a magazine != stealing a magazine.

You made legal claims that were false. The crimes committed are not the same in America [and many other countries] nor would they be prosecuted the same in America [and many other countries].

I do not know where you are from. You say there is no difference there, but I am not familiar with your laws, so I'm not saying you're wrong about your legal system, just that in many countries, what you said is very wrong.

And your claim that people who download the game would have bought it is wrong (I know at least 1 person who proves this rule and surely you know someone who has downloaded a Britney Spears song but would never think to consider buying it). Your claim that nobody who downloaded the game will also buy it is wrong (I know of a least one person who proves this rule, MANY Europeans who preordered the game are downloading it due to the 10-day wait they are currently enduring).

Your moral claims may be completely correct but many (most?) of your factual analysis is incorrect and, if you care about the true at all, you should welcome those who correct you (and correct those who are wrong with facts, not incorrect statements).
# August 4, 2004 11:47 AM

Zk said:

Well, here's one thing to consider. I never would be the professional designer/developer I am today if I didn't use 'extended evaluations' of Photoshop, ColdFusion server, and various other softwares over the years, including VisualStudio.NET, SQL Server and other such high-end Microsoft products. I now own my own MSDN Universal subscription, but I never would've gotten into the position to be able to do such things w/o borrowing a few programs from work and the Internet over the years.

I'd go as far as to say that for designer and developer applications, hobbyist 'warez' is very good for their business. Microsoft recognizes that and is presenting the Express line or products to make it easier, and legal, for that particular market. Other companies really should take notice.

Now, games and what not... no such benefit to the company.
# August 4, 2004 11:56 AM

Shannon J Hager said:

Zk: you should do a poll and see if pirated games lead to game purchases. In my experience (not as a pirate, I own/play/download no games but my friends do), pirated copies are closer to Express versions than your pirated Photoshop copies. the PS copies are 100%, pirated video games rarely work online and are thus the 'sample' that get people hooked and cause them to buy Halo to play online instead of by themselves.

The Record industry, near the end of the cassette tape era, estimated that 1/4 of their sales were due to people who had casette copies and wanted the real thing, a far cry from the "home taping is killing the industry" cries that dominated the 80's (and continue today in new forms).
# August 4, 2004 12:06 PM

Zk said:

There is some truth to that. Especially, as you pointed out, in online gaming. Usually something that can be taken care of with a good CD-Key generator. (Except in the case of MMOGs. In that case, piracy is rarely even an option.)

And while warez usage of Photoshop might not always turn into a direct sale from that particular person, it does mean there's a lot of people using it and making it that much more likely to be used by a company they work for. (And companies are *usually* better about buying their software. If not.. you can always snitch. *rolls eyes*) These applications are often seeing a benefit from (individual) warez, whether they recognize it or not.
# August 4, 2004 12:16 PM

Justin said:

"Your moral claims may be completely correct but many (most?) of your factual analysis is incorrect and, if you care about the true at all, you should welcome those who correct you (and correct those who are wrong with facts, not incorrect statements). "


What is the point of having laws if they allow people to get away with morally corrupt acts by splitting legal hairs? Theft != copyright infringement maybe true but few people believe that their legal system hasn't let somebody down at some point. Why can't people stop hiding behind legal semantics and take a step back and say "is what I am doing right or wrong?"
# August 4, 2004 12:43 PM

Frans Bouma said:

"What is the point of having laws if they allow people to get away with morally corrupt acts by splitting legal hairs? Theft != copyright infringement maybe true but few people believe that their legal system hasn't let somebody down at some point. Why can't people stop hiding behind legal semantics and take a step back and say "is what I am doing right or wrong?""
... because then it's not clear what everybody's talking about. Realize that people participating in this 'discusion' are not from the same country, and it might come as a shocker, but the US laws are not the laws of a lot of other countries (and vice versa).

The whole refusal to just use the right semantics makes this whole 'debate' a weird way of venting some steam as it seems.

Oh, and what's morally right is NEVER a guideline for what is LEGALLY right. What americans find 'morally right' is not in sync with a lot of other countries and vice versa.

As I said before: Piracy, or better: copyright infrigment, is bad. However if you don't have the decency to call it copyright infrigment, what is 'piracy' then? copying a dics? copying a file? running a program? sharing a file over the network? oh, all of these? What if I embed a piece of GPL-ed code in my application without saying I did. That's also copyright infrigment, and of the same kind as running a copy of Doom without a license. If you think it isn't, you don't have a clue what piracy really is. THAT's why it is so important to define what's discussed so you can focus on how to solve it, instead of what someone finds morally right.
# August 4, 2004 12:56 PM

Justin said:

Frans,
I agree with you as far as the legality/morality disconnect goes and I also realize that American laws end at the border. Which is precisely why I find the whole "this is copyright infringement but not theft" to be a straw man argument.

Here is what it comes down to for me. Is somebody getting screwed out of what they expected to get when they put their creation out in the market place?
# August 4, 2004 1:11 PM

Scott said:

Because "right" and "wrong" have different meanings depending on the context Justin. In some places it is "right" to put mayonase on a hamburger, in most civilized places that's "wrong' however. Everyone knows that ketchup and yellow mustard go on a hamburger. ;)

Some countries handle copyright law differently than the U.S. does. So what you may consider theft may only be copyright infringement in a !U.S. country. But, even you said it yourself Jeff. When you stated the consequences for discovering someone had copied your software without paying for it you said you'd "sue them", not press charges. "Sue them". You can only sue in a civil court and you can sue for just about damn near anything. So you obviously don't consider software piracy to be illegal or you would have said "press charges". But what charges would you press? burglary? Battery? Forceable sodomy? Jaywalking? What statute applies towards software piracy?

I consider downloading a game without buying the physical media or paying for it in some manner de facto stealing. I also think I have the right to make a back up copy of the physical media my software comes on since my license to use the software is not dependant upon the physical media. In other words, if my CD-ROM breaks (like it did with my first copy of Unreal Tournament) I want to be able to instal the software from my back up copy. Same with DVD's, if someone spills acetone on my Spider Man DVD (my wife is no longer allowed to do her nails near the DVDs and I have to keep my DVDs in their cases) I should have the right to have a back up copy of my paid for copy of said movie. That's fair use. Fair use has a place in this dicussion because the same copy mechanism that allows a warez king to distribute the latest version of Doom3 allows me to make a fair use backup copy of Doom3. By getting rid of the warez kings ability to copy the game, we remove my right of fair use. That's like saying, "Well the KKK put up a website denoucing blacks and encouraging people to kill them so we better let the government take control of everything published in the U.S. on the web". Just because some people abuse their rights, doesn't mean anyone has the right to take away my rights.

I didn't pay for my copy of Windows XP Home. I got it for free for doing a useability study at MS. It cost too much so I didn't buy it. I'm not spending $500 on MS Office, so AbiWord goes on my machines at home (they're mostly Linux machines anyway). Just stating my personal position before Jeff accuses me of being a pinko commie who's out to steal music and thinks all property must be communal.
# August 4, 2004 1:16 PM

Justin said:

Fair Use has reared its ambiguous head again. Why does shutting down warez sites rob you of fair use? Nobody is guaranteeing you access to warez sites when you purchase a game so the expectation that they will exist isn't reasonable. And since you specifically mention that its there for legit backup purposes the argument I'm trying to make doesn't affect you.

"Because "right" and "wrong" have different meanings depending on the context Justin"

Stealing a loaf of bread to feed your family. That is case for context. Downloading Doom 3 because you don't have $55 dollars on hand doesn't have alot of wiggle room for contextual interpretation (note that I specifically state somebody has shown disregard for compensating the producer, this isn't a fair use thing.)
# August 4, 2004 1:29 PM

Shannon J Hager said:

"What is the point of having laws if they allow people to get away with morally corrupt acts by splitting legal hairs?"
Because, at least in America, we do not punish moral infractions as crimes on a 1:1 basis.

Is lying morally wrong? Is it illegal? Should it be?
Is disobeying your mother wrong? Is it illegal? Should it be?
Is downloading a shoddy mp3 of a song I have on CD in the next room morally wrong? Is it illegal? Should it be?
Is marrying more than one woman morally wrong? Was it always? Does "morally wrong" change over time? Should it? Who decides?

Morals != laws.

If you don't want us to attack that straw man, don't set it up for us. If it's not part of your message, don't mention it. If you only want to discuss morals, don't discuss laws. If you say something that is wrong (even if off-topic), you can not say that we shouldn't correct you. And vise-versa.

For the record, I never said copyright infringement nor theft were morally nor legally okay. I was just correcting your incorrect assertions regarding them being equal.
# August 4, 2004 1:33 PM

Justin said:

I have no problem leaving the legal system out of the discussion altogether since it fails people so often. I whole heartedly agree that morals and laws are not the same, but everybody was zeroing in on the letter of the law that they lost site of the actual argument.

Jeff's complaint was of a moral nature and not a legal nature. People use the intersection of morals and laws as a dodge or a justification. And as far as the changing of moral standards over time goes was it ever okay to grab somebody's wallet and take a 20 out? Will it ever be okay? Actual fair use aside whats the difference?
# August 4, 2004 1:47 PM

Steve said:

Piracy != Theft. In ye days of old when pirates were swashbuckling dudes with parrots, piracy was theft, but its not today. We use two different words for the acts for a reason. I can't describe the difference any better than Frans' did in the response to the first post in this series (http://weblogs.asp.net/jeff/archive/2004/08/02/206421.aspx#207356)

What we're talking about is what rights to do have to the liscensed use of the work at hand. That's what fair use is. Although shrinkwraps tend try to imply otherwise, all rights not specifically and explicitly reserved for the content creator are reserved for the consumer - its the root of all modern law. And even if the EULA on the shrinkwrap explicitly does pretend to reserve certain rights, the courts have historically ruled that doesn't neccesarily make it the case.

Honestly, morality doesn't play into it very much at all, because the liscensing of media is not something society has agreed on in the slightest. Media rights as we know them today are a new invention, having only been invented by Congress around 1910 to figure out how to keep musicians in business when recordable records were invented (Before that, everyone read books at libaries - its hard to imagine more public sharing than that). Media rights until about a decade ago revolved around a physical media which you could loan, trade and exchange. Digital rights are a new idea - Congress hasn't approached them yet and society at large is just now beginning to think about them at all. If you ask a dozen different people at random on the street what they think, and each of them gives you a very different answer, you can't even begin to make a decision as to what is socially moral.

Like I've said before, if we were talking about the Doom3 version for the XBox, this would be a moot topic. I don't have to buy a different copy of the game for my girlfriend so she can play it too, just like I didn't have to buy a copy of the DaVinci Code for myself either, since I could just read hers.

This isn't a moral rationalization for "stealing" - its simply an indicator that we don't know what's right or wrong in this field yet. I think most people would agree that being able to go online and download a game or a book or music from someone you don't know completely anonymously and without regard for the copyright owner is probably wrong. But that's on a macro uncontrolled distribution scale. I think at the same time, if you asked 10 people on the street, "Is it okay to install a game you bought on your girlfriend's computer in addition to your own", I think 9 out of 10 of those people will respond with a resounding "Yes". After all, that's what we do with everything else, so why is software any different.

Look at iTunes - you can share music you buy with something like 7 or 10 other machines, even if those machines aren't yours. Look at the new Tivo model, being able to record live tv and distribute it to up to 10 different PCs. Media companies know that sharing exists and that everyone expects it, and the businesses that excel at what they do in the digital age are the same ones that are embracing that.

Software companies obviously want people to buy 1 copy per 1 user, sometimes even multiple copies for 1 user across multiple machines. Just because that's what's fiscally best for that company doesn't mean its what's right for society, and it certainly doesn't mean its what's morally correct for society. No one today thinks that AT&T being forced to allow competitors to manufacture phones to plug into the AT&T wires was a bad decision - it created huge new booming markets that advanced technology and benefitted consumers, and increased AT&T revenue ultimately. Similarly, no one disputes that the decision that consumers could be allowed to own VCRs - in fact, the very people that sued claiming it would destroy them now sell more movie tickets than ever before, AND make an additional 120% gross profit over box office receipts on the medium they tried to destroy. Not to mention the obvious benefit for consumers.

Right and wrong doesn't really have a place in this argument yet. The social morals of tomorrow are defined by the laws of today, and the laws of today are defined by combining user rights (on both the consumer and inventor's side) with economic forecasting. Most of us are hazy on this issue now, but perhaps 20 years from now, this is the default distribution model of software. I don't know, and neither does anyone else.

# August 4, 2004 1:59 PM

Justin said:

"And even if the EULA on the shrinkwrap explicitly does pretend to reserve certain rights, the courts have historically ruled that doesn't neccesarily make it the case."

If that was true everybody with illegal licenses of MS products would be able to fight fines levied by the BSA.

"Honestly, morality doesn't play into it very much at all, because the liscensing of media is not something society has agreed on in the slightest."

I'm going back to the legal aspect of the argument for moment here. I hate to break it to you but just because you don't agree with the laws on hand doesn't mean society hasn't decided. This society is governed by laws, whether good or bad, so from a societal point of view it has been decided. Not to add undeserved weight to the agument but abortion is one of the most polarizing topics out there. Millions disagree at a personal level but since it is allowed (in most forms) legally it has been decided at the societal level. That is not to say that laws won't change but for the here and now it has been decided.

"Digital rights are a new idea - Congress hasn't approached them yet and society at large is just now beginning to think about them at all"

DCMA, it may suck but Congress has approached it.

"I don't have to buy a different copy of the game for my girlfriend so she can play it too, just like I didn't have to buy a copy of the DaVinci Code for myself either, since I could just read hers."

But software is unique in that you can both utilize it at the same time. The delay in use of the book is the trade off of not buying your own copy (unless you two happen to be sitting next to each other for all you nit pickers out there)

"Look at iTunes - you can share music you buy with something like 7 or 10 other machines, even if those machines aren't yours."

That is part of the contract, Apple has deemed that to be okay it doesn't have anything to do with warez.

"Media companies know that sharing exists and that everyone expects it, and the businesses that excel at what they do in the digital age are the same ones that are embracing that."

That maybe true. But that doesnt mean you can arbitrarily force sharing on company that has chosen not to embrace it. Mentioning any business benefits to sharing or advances in technology only rationalizes what a content producer has specifically rejected when they worded their EULA. Just because you say to yourself "this will be good for them in the long run" doesn't justify your actions.

"Right and wrong doesn't really have a place in this argument yet. The social morals of tomorrow are defined by the laws of today, and the laws of today are defined by combining user rights (on both the consumer and inventor's side) with economic forecasting. Most of us are hazy on this issue now, but perhaps 20 years from now, this is the default distribution model of software. I don't know, and neither does anyone else."

I myself know what theft (or whatever bullshit legal term somebody applies) is. I don't have to wait 20 years to figure out what right and wrong is. If the rest of society does then that doesnt bode well.
# August 4, 2004 2:51 PM

Gabe Halsmer said:


Jeff, all I have to say is amen brother. Preach on!

Capitalism is the greatest economic system the human race has ever discovered. But I'm just a little worried that an entire generation is growing up in complete ignorance of why or how it works. So many retards. Lets hope that age brings them wisdom someday, otherwise are society is f-----.

An yes, a quote from Ayn Rand is definitely in order...

"There was a time when men believed that 'the good' was a concept to be defined by a code of moral values and that no man had the right to seek his good through the violation of the rights of another. If it is now believed that my fellow men may sacrifice me in any manner they please for the sake of whatever they deem to be their own good, if they believe that may seize my property simple because they need it--well, so does any burglar. There is only one difference: the burglar does not ask me to sanction his act."
# August 4, 2004 3:02 PM

Steve said:

"If that was true everybody with illegal licenses of MS products would be able to fight fines levied by the BSA."

Microsoft's shrinkwraps have held up pretty well to date, but Microsoft also has a very smart legal team that wrote those EULAs - there are plenty of other companies who have had their EULA struck down in part or backed off prosecuting abuses of their EULA because they were pretty certain they would lose.

"I hate to break it to you but just because you don't agree with the laws on hand doesn't mean society hasn't decided."

They have decided. 20 years ago. See my response to Jeff here (http://weblogs.asp.net/jeff/archive/2004/08/03/207283.aspx#207365">http://weblogs.asp.net/jeff/archive/2004/08/03/207283.aspx#207365) and here (http://weblogs.asp.net/jeff/archive/2004/08/03/207283.aspx#207365">http://weblogs.asp.net/jeff/archive/2004/08/03/207283.aspx#207365). While those cases do not specifically target digital rights, the Supreme Court hasn't changed its tune yet - not to say they won't, but until then, the law is more friendly than most software companies would like you to think.

The DCMA is Congress approaching the digital rights problem, but the DCMA does not affect copying at all - the DCMA is entirely about circumvention. Under the DCMA, its illegal to develop a technology to circumvent copy protection, but its not illegal to copy something if there is no copy protection scheme in place. By my understanding, the DCMA also only applies to technical circumvention schemes, so writing a program to generate keys to break MS software violates the law, but copying the CD key from the sleeve on someone else's box isn't. The INDUCE Act is targetting that form of copying, but it hasn't been passed yet (and God-willing, it won't ever).

I'm not condoning stealing CD keys off Usenet, I'm just saying the law hasn't approached that yet.


"But software is unique in that you can both utilize it at the same time. The delay in use of the book is the trade off of not buying your own copy (unless you two happen to be sitting next to each other for all you nit pickers out there) "

By that logic, my girlfriend can install Doom3 on her box so long as she isn't playing it at the same time I am. Software companies say even that's wrong.

The whole argument in the other thread started when I said that I'd play Doom3 for free using a friend's CDs, but I wouldn't copy the CDs. By the time-sharing argument, I'm allowed to do that (and btw, I agree I'm allowed to do that) because he can't play Doom3 while I'm using his CDs, and vice versa, but some posters thought that was piracy.

"That is part of the contract, Apple has deemed that to be okay it doesn't have anything to do with warez. "

Fair nuff, that's one company's policy and not law. But it is an indication of the priorities of consumers. Apple did a number of studies that showed that iTunes users stopped pirating music off of p2p networks, so they seem to have developed a model that keeps users honest. If consumers don't buy a model, supported by law or no, it'll fail - you just can't make a felon out of 75% of a nation's population. On a similar note, the government had to allow the law to be completely redrafted because the consumers didn't accept it.

"That maybe true. But that doesnt mean you can arbitrarily force sharing on company that has chosen not to embrace it."

Tell that to Blockbuster who forced Nintendo to accept the idea of game rentals. Legally, Nintendo couldn't stop them despite the fact that it interfered with their right to reproduction and distribution of their work. As it turned out, game rentals caused a massive surge of business in the gaming industry and made billions of dollars for lots of different parties - I think if you look back historically, at every point where fair use won out over a companies attempt to wrest control away from consumers, the resulting oppurtunities that became available caused an explosion of new business and greatly expanded the market for the original product.
# August 4, 2004 3:25 PM

Shannon J Hager said:

Sorry, I got "Jeff" and "Justin" confused above; I thought they were the same person.
# August 4, 2004 3:31 PM

Jeff said:

Shannon: I think you're confused... I didn't say anything about laws or that anyone would buy something that they stole. I was arguing quite the opposite. I gave no "factual analysis," only my opinion. Perhaps you should re-read the previous posts.

Scott: Can you show me where I called you names? If you can't show me, why don't you stick the the discussion?

I think Justin pretty much poked holes in everything Steve had to say, and rightly so. Mob rule doesn't justify stealing. Gas prices are too high, but if I gas-n-go, I can get to know the county jail and lose my license.

It's staggering first that some of you want to play a game of semantics, especially the nonsense that piracy isn't the same as stealing, but you can't with a good conscience tell me that it's OK for kids to download Doom and play it for free.

It is a moral issue, and if "society" didn't have a position on it, we wouldn't have laws and international treaties governing it. Because some piece of IP may be digitally duplicated perfectly does not mean you are free to do it. If you believe it does, that's exactly why we have to deal with DRM, copy protection and product activation in the first place. None of those "solutions" would exist if IP rights were respected.
# August 4, 2004 3:36 PM

Steve said:

Gabe,

When did consumer rights become uncapitalistic? The Telecommunications industry has exchanged somewhere near a trillion dollars since AT&T was forced to allow competitors the right to create products which attached to its network. Today the movie industry sells more movie tickets than ever before at a higher price than ever before, and despite that, the majority of their profit comes from tape and DVD sales, an invention they didn't want. Audio tapes outsold records on the order of 17 to 1, making the music industry really glad they didn't win the lawsuits allowing tape recorders.

For those EQ players out there, Sony used to make it impossible for a player to sell their character to another player. After the realized it was impossible to crack down on, they realized "Hey, these people are willing to plunk down $1000 on a pre-built character, I bet they'd pay another $40 to switch servers to get away from the people who know they aren't the real deal" - Result. Sony made an extra couple mil in a year on that policy alone (if I remember correctly, it added up to being something like 7% of their gross operating profit on the game last year), Ebay made hundreds of thousands of dollars on commisions, and several player auctions sites went from being hobbyist sites to profitable multi-million dollar enterprises just by allowing people to trade ficticious assets (I don't understand it either).

I'm not advocating making software free, although the companies that embrace that approach aren't doing too shabby for themselves right now. I'm just saying that the more rights you give consumers, the more money they spend. I think its hard to get any more capitalistic than that.
# August 4, 2004 3:39 PM

Zk said:

Trick question. Who do you think suffers the most from Photoshop piracy among individuals and hobbyists, Adobe or Jasc?
# August 4, 2004 3:56 PM

Justin said:

"By that logic, my girlfriend can install Doom3 on her box so long as she isn't playing it at the same time I am. Software companies say even that's wrong."

Again we are back to fair use which implies that a license fee was paid at some point and therefore fair use can be justified and license agreements may need to change as a result. My whole beef is content producers who see nothing when somebody grabs whatever app off the net.

"If consumers don't buy a model, supported by law or no, it'll fail - you just can't make a felon out of 75% of a nation's population. On a similar note, the government had to allow the law to be completely redrafted because the consumers didn't accept it."

Market acceptance doesn't negate laws, the market has overwhelmingly accepted alchohol sales but that doesn't make drunk driving legal.

"Tell that to Blockbuster who forced Nintendo to accept the idea of game rentals."

But Nintendo did get paid for each copy that Blockbuster acquired. They may have saw what Blockbuster was doing and been unhappy but nobody robbed them of the value they placed on those games when they put them on the market.
# August 4, 2004 3:57 PM

Frans Bouma said:

Shrink wrapped licenses are not valid in in the EU. Just a FYI.
# August 4, 2004 4:15 PM

Steve said:

"Market acceptance doesn't negate laws, the market has overwhelmingly accepted alchohol sales but that doesn't make drunk driving legal."

I agree market acceptance doesn't negate laws, but the analogy is silly. Drunk driving laws have public safety considerations in mind, the government interferes with individual rights in the name of public good insofar as safety all the time. Also, while people may like alcohol, people across the board hate drunk driving.

That said, keeping with the alcohol analogy, market acceptance forced Congress to redraft the Constitution to repeal less than 13 years after the original amendment was passed. Most texts I've read on the era have widely acknowledged that had people not been drinking alcohol anyway, Congress would not have acted so swiftly.

"But Nintendo did get paid for each copy that Blockbuster acquired. They may have saw what Blockbuster was doing and been unhappy but nobody robbed them of the value they placed on those games when they put them on the market."

Really? Nintendo was trying to sell games to people for value X. Blockbuster bought copies of the games and rented them to people for value X / 10. Players would rent a game and then not buy the original because they'd already beat it, which Nintendo contended was causing significant economic damage to their business model.

Of course, Blockbuster won, and the result was that 10x the households bought Nintendos because the cost per game played had effectively increased - this in turn spawned the production of more games which in turn increased console sales, and eventually a whole slew of serious competitors in the industry. The end result - gaming consoles are in every household (sometimes multiple), consumers have thousands of games to choose from, and the game industry grosses over 6 billion dollars in game sales per year in the US alone.

"Again we are back to fair use which implies that a license fee was paid at some point and therefore fair use can be justified and license agreements may need to change as a result."

I actually think we agree more than we disagree. We both agree downloading software off Usenet is bad. I just submit that swapping and lending of media on a small scale is fair, and based on prior historical evidense, very health for the industry.
# August 4, 2004 4:19 PM

Steve said:

s/effectively increased/effectively decreased

"cost per game played had effectively increased" is backwards.
# August 4, 2004 4:22 PM

Zk said:

One last point. A young 'hobbyist' (let's say 15-20 years old) downloading a pirated copy of something like Photoshop or VisualStudio (3D Studio, Illustrator, whatever) is actually the best investment for the companies that make that software. Typically, money isn't really being lost at that time, since the chances of them buying it at that time are very slim, but there is a very real potential of money lost in the future when they're in now programming in Java instead of C# or in a position to recommend software purchases for a company. Or, worse.. they're working at Macy's instead of being a graphic designer.

This person will have experience and knowledge with something they normally wouldn't have been able to and that translates into cash for the software companies.

Where piracy actually hurts the software companies (for apps, not games), is when people mass produce copies and sell them or when companies don't buy the licenses they're required, etc.

Like I said earlier, the only reason I'm even in a position to buy my MSDN subscription, or recommend to my company that they buy X number of licenses for ColdFusion, Photoshop, VisualStudio, is because I had access to learn that software before I was ever able to purchase it. My early piracy earned all those companies way more money than they ever lost on me not buying their software to begin with (which, is $0 lost since I would never have been able to buy any of that originally.)

Not everyone learns in college.
# August 4, 2004 4:30 PM

Chad Myers said:

The problem is, software costs a lot to make, but it's value to the user is significantly less than what it costs.

So vendors try to charge what it costs to make and it's just ridiculous for consumers.

If milk vendors sold a gallon of milk for $50, people would steal milk and you know what, I'd probably think that was OK because pay $50 for milk is tantamount to theft.

Software vendors need to figure out how to not charge ridiculous amounts of money for software. Until then, people will steal.

$12-15 for a CD = bad
$200 for an OS = bad
$50 for a game = bad
# August 4, 2004 6:37 PM

Chad Myers said:

Oops, I mean:

"selling milk at $50 is tantamount to theft of the consumer [bilking them unnecessarily]"

not

"milk is tantamount to theft".
# August 4, 2004 8:37 PM

Krystoferq said:

Did I steal it? yes, yes I did. Did I then go pick up my copy from the local retailer? Yes, yes I did. All of my friends also had copies obtained less than legally from me, and have all bought their copys as well. Is this indicative of all downloaders? No clue. Do I on a regular basis download games illegally? Every single title I consider buying. EVERY SINGLE ONE. Do I then purchase them? Sometimes. More often than not, I play the game for 10 minutes and see that yes in fact, its a pile of garbage, and I've saved myself $50. I stopped buying games first after getting Quake 3 and being sorely dissapointed. Do I feel even the slightest guilt for this? Zero. How many titles, games, cds, movies, so on, have you personally purchased and not gotten what you felt you paid for? If everyone made a counterclaim for damages from all the shoddy releases, it would put a serious dent in the market, mark my words. I don't care what the law says. I don't care what the RIAA says. I will continue to preview my software, audio and cinema selections illegally before I consider purchasing them. Every copy of anything I have thats been downloaded I have a retail copy of as well. So let them come kick in my door. I'll kindly flip them the bird. I'm sure I'll be flamed for admiting to stealing a game that is so beloved, but I don't care. My reason for stealing may or may not match that of others, but i'd like to think there are quite a many people in the same boat as myself.
# August 6, 2004 4:12 PM

William Tech TV LOVER G4 hater said:

I hate to say this but i dont think TECH TV is coming back. It was good while it lasted.

(i like the paypal idea)
# August 7, 2004 1:01 AM

William Tech TV LOVER G4 hater said:

-sob sob- fuck comcast
# August 7, 2004 1:03 AM

peterpan said:

What can i say, which has not already been said?. I will just add my opinion on the issue. As far as piracy goes, you must look at it from both angles, "the consumer" and the "software Companies", as they are the parties involved in the process. The software company invests capital into software development, this is done in order to yield a return, and preferably greater one then the invested capital. When the product is a good one the profits are generally proportional to how good. In this sense its a business venture to come out with a gain in the end. The consumer, can be looked at either as a whole in groups or as a single entity. As a single entity the consumer really doesnt contribute to the gross return of the software company, The consumer however can greatly increase the potential of revenues for the software company, if the product was satisfactory, the single consumer cna spread information to others and therefore generate more sales or pirates.. On the whole, more operation lisences will be sold if hte product is good. Piracy in its own right takes on the role of a medium to spread information. If the product is good then the product is accepted, amongst pirated circles as well as non pirated circles, but the pirated community is also the same community which buys the product. Not all, some people as mentined ealrlier can not afford any software, nevertheless, they can only benefit the software company by pirating the software, as they would never be capable of buying it outright... This means in the final result it is not cirtain that pirating software at the current state in time is a bad thing. It is a system in place to protect the consumer from bad software, as well as benefit the software company by providing free advertising which reaches consumers who will purchase the product. I personally feel as long as the laws allow the consumer to preview the products i nthis way, it will continue and even become more envolved... Dooom 3 is a great game, i will buy it.... As I am sure many others will... what can be said about all this, its reality, and its too complicated to discuss really, the bottom line is, unless people are jailed and fined on a mass scale... the software companies and the consumer must come up with a different solution.. as the spread of computer continues this piracy can only grow... who knows some day things may change not today though and i cant complain
# August 7, 2004 1:06 AM

Jeff said:

Yeah, I really respect the opinion of someone with such stellar grammar and spelling. Krystoferq might be a thief, but at least he can communicate normally. The idea that piracy protects the consumer is the single most stupid thing I've heard on the subject.
# August 7, 2004 1:41 AM

jim said:

YEAH!! Just downloaded my very own copy of doom3 gotta go install now. I'll probly do that while listening to my downloaded mp3s on my downloaded windows OS. Don't you love the internet? Ever heard the saying retail is for suckers?
# August 7, 2004 2:44 PM

Michael Mitchell said:





That Paypal idea does intrigue me. I'm pretty sure you've all seen those commercials for a company called HotWire.com. They show 6 pictures, and a miniature plane being guided by a guys hand over the company logo (Did you notice that the girl falling on the bed looks like Laura Swisher?). Well, if say, 100,000 people would donate just $1 apiece to the "Save TechTV AD Campaign" fund, that's be one hundred thousand dollars. I know that there's way more than 100,000 of us that support the wonderful network that was TechTV. We must stand for ourselves, and prove to Comcast, as well as every other big corporation, that this nation was founded "To the people, by the people, and for the people." and not "for greed and for money" as these corporations seem to think. This can only work if we stand proud and speak as one voice. Alot of things I used to love have been taken away from me, and TechTV seems the only one that I have even a slim chance to bring back. Now, if we were to seriously create a "Bring Back TechTV Ad Campaign" Paypal account, i'd personally save up and donate as much as I can, whenever I can, where ever I can to this cause. I strongly feel that us Tech geeks possess much greater power than Comcast thinks we do. Well, i'm NOT going to lay down and take this like a fool. I am NOT going to watch this faceless, nameless "G4TechTV"! Even in the case that this didn't work, I think it would be a great to say that we, as one community, tried. We tried to preserve what we love in our lives: A great Tech network that brought us the highest quality programming possible (Well, except Robot Wars. . .screw that show).

Thank you all for reading what I had to say. God bless you.

Michael Mitchell.

If anyone would like to contact me, my yahoo messenger address is:
AmadeusK545

My email is: Amadeus2490atyahoo.com
(That's so that the bots that crawl through messageboards can't spam me. Replace the "at" with the familiar "@" sign.)
# August 7, 2004 7:59 PM

Frans Bouma said:

You ran into one of the many traps with caching. In the O/R mapper world the group who thinks caching is for speeding things up gets smaller and smaller and for a reason: it doesn't make things faster, it's only nice for uniquing (one object per entity in the complete app). It actually makes things slower, as every bulk query has to be scanned completely for cache hits. (you have 50 customer entities in the cache, you ask for all customers (or any group of customers), you can't simply return all 50 customers in the cache, you have to pull them from the db, match them one by one with the ones in teh cache, update the cache, and return the results after that.

If you look for efficient caching for fast-speed internet pages, you should use another trick. (well, you have the option for a couple of tricks actually). One of the best is the 'render the complete site every X seconds/minutes'. This is how slashdot works for example. What they do is both as simple as effective:
they render the complete site, or parts of the site (which are embedded in pages) every minute. If the hardware they have can render the complete site every 20 seconds, they can serve the site to a very large audience without experiencing slowdowns. Also, the visitors have a delay of 1 minute or less to see their content up. In reality they render parts of the site in real time and other things once per minute (front page) or once per 20 seconds or so (comments).

If the traffic gets too high, you increase the interval to say 2 minutes. It's that simple :). The fun thing is: even if there is a slight delay, users won't notice.

Another trick is using cached HTML in the database and using views. You speak about a forum. The actions which are the heaviest are: read threads per forum + statistics (who posted the last posting, when etc.) and read a page with message in a forum thread. These actions are done a lot of times and way more than there are post writes. For my forum I use per posting a text field for the posting text and a text field for the HTML, which is the text parsed by the UBB parser to XML, converted with an XSL to html. I then use a couple of views which pull the data for viewing (for example a threadlist or a page of postings). They do a simple select and the results can be bound to a repeater control without postprocessing. The ASP.NET cache can then take care of page changes, for example invalidate every minute.
# August 8, 2004 5:18 AM

Karl said:

Jeff, I hope you get more feedback on this...I've had the same thoughts over the past couple of weeks. Sticking with the forums example, one of the things I've played with is using delayed creation:

private int userId;
//by FX Cop standards, this probably ought to be a method
public User User{
get{ return UserUtility.GetUser(userId); }
}

The advantage I see here, is that you don't have to worry about whether you have the most-up-to-date user in your Post class, but instead in your UserUtility class

UserUtility.GetUser would be implemented as a cache lookup/hit database. UserUtility.Update() would call User.Update() to the database, and update the cached object, so subsequent calls to UserUtility.GetUser() return the updated user.

It'd be good if paul wilson could jump in on this one...
# August 8, 2004 10:12 AM

Jeff said:

Frans: The problems that you describe aren't really the problems that I have. Actually, I don't have any problems at all the way I work things now, I'm just thinking in terms of making things more intuitive for the programmer and efficient at the same time. To make the blanket assertion that caching makes things slower is incorrect if I can demonstrate that my app is slower without it.

Karl: Actually, that's kind of the way I do things in the forum now (see the class library docs at http://www.popforums.com if you're interested). If you look at a topic, the posts are all cached as an ArrayList of Post objects. The UI fills in the user details on each post individually by looking up People objects based on Post.PeopleID. This would be ridiculously inefficient if the People data wasn't cached, but since it is, it's insanely fast.

Truth be told, the only reason I think about this at all is in the case of spreading out the load across more than one server. To do that in my app you'd have to turn caching off, which means the above mentioned topic display would be dog slow. The flip side of that is that I wrote the forum for myself first, and there's little to no chance I'd ever need to run the app across more than one server, and I doubt any of the thousands of people that download it every month would need to either.
# August 8, 2004 12:34 PM

Brian Desmond said:

Have you tried ebay? There is always a ton of used networking gear on there.
# August 8, 2004 2:22 PM

Jeff said:

Yep... tried it many times. No bites!
# August 8, 2004 2:37 PM

TrackBack said:

# August 8, 2004 6:49 PM

Jason Mauss said:

Would a view be in order here?
# August 10, 2004 2:40 AM

Justin said:

Not tested but should be pretty close...

select t1.ImpressionCount, t2.ClickCount, t1.ServeTime
from
(SELECT COUNT(*) AS ImpressionCount, CONVERT(nvarchar, Impressions.ServeTime, 101) AS ServeTime
FROM Impressions
WHERE Impressions.CreativeID = 15
GROUP BY CONVERT(nvarchar, Impressions.ServeTime, 101)) t1
inner join
(SELECT COUNT(*) AS ClickCount, CONVERT(nvarchar, Clicks.ClickTime, 101) AS ServeTime
FROM Clicks
WHERE Clicks.CreativeID = 15
GROUP BY CONVERT(nvarchar, Clicks.ClickTime, 101)) t2
on t1.ServeTime = t2.ServeTime
order by t1.ServeTime

... t1 and t2 are derived tables. Hope this helps. If this doesnt work post from sample insert statements and I'll fix it.

Justin


# August 10, 2004 3:36 AM

LeeB said:

I'm not sure if it's the most optimised query possible but something like this should work:

SELECT DISTINCT [ClickTime],
(SELECT COUNT(*) FROM [Clicks] WHERE CONVERT(nvarchar, [ClickTime], 101) = [r].[ClickTime]) [ClickCount],
(SELECT COUNT(*) FROM [Impressions] WHERE CONVERT(nvarchar, [ServeTime], 101) = [r].[ClickTime]) [ServeCount]
FROM (
SELECT [CreativeID], CONVERT(nvarchar, [ClickTime], 101) [ClickTime]
FROM [Clicks]
UNION
SELECT [CreativeID], CONVERT(nvarchar, [ServeTime], 101)
FROM [Impressions]
) [r]
WHERE [r].[CreativeID] = 15
ORDER BY [r].[ClickTime]

Lee
# August 10, 2004 3:47 AM

denny said:

I have mostly given up on the whole mess, each time I check they are still running old taped shows @7pm easteren time.

they have had like what 3 weeks now to do a live show.... still no live shows.

I think TSS is dead and it's just taking them time to bury it.

sad....
# August 10, 2004 9:25 AM

Julie Lerman said:

Jeff - "I'm not disciplined enough to really become a guru" .... c'mon. Nobody can be an expert at everything. you need to read this AGAIN today: http://www.secretgeek.net/inadequate.asp :-)
# August 10, 2004 11:01 AM

John said:

I'd go with the UNION query as well.
# August 10, 2004 2:44 PM

Jeff said:

The UNION query took 2:30 minutes... that's not an option. The first one took one second. Guess which one I'll use? :)

There is one problem, and I'm not sure if I can address it in SQL. In my test data (a three month ad campaign), I have one day where there are no clicks, and as a result, no row is returned for it even though there are impressions that day. I'm fuzzy on joins... can the query be changed to include that day?
# August 10, 2004 8:24 PM

ozczecho said:

What about tabbed browsing. Your comment is like saying Word 6 was the pinnacle of word processing so lets not update it any more.
# August 10, 2004 10:05 PM

Matt said:

Shhhh. You'll encourage the crazies to come here and say that Word 6 was the pinnacle of word processing.
# August 10, 2004 10:17 PM

Matt said:

And (more on topic) IE should add tabs. Perhaps as an optional download?
Don't point me to Maxthon. Tried it and don't like it. Add tabs along the lines of firefox but without the bloat of Maxthon (have you looked at Maxthon's interface. The menus, dialogs and toolbars are crammed with rubbish. IE could and should provide tabbed browsing with a nice, clean interface)
# August 10, 2004 10:20 PM

Scott said:

Spoken like someone who has always been able to force the user to only use IE as their web browser or as someone who is only developing WinForms applications. ;)
# August 10, 2004 11:24 PM

Jeff said:

Nonsense... everything I've built in the last few years has worked in every browser. They work fine.
# August 11, 2004 12:17 AM

don@ghostdev.ca (Don Newman) said:

I must be one of the few insane people that doesn't like the idea of tabbed browsing. I surf in the form of threads and use my back button to navigate forward and backward, alt-tab to get between my threads of thought, and shift click to fork off on a new thought. I also don't like XP grouping my programs on the taskbar as it helps to give me a chronological order to the things I am doing.
# August 11, 2004 12:32 AM

Stephane Rodriguez said:


You've got to be kidding right?
From a usability perspective, IE is a raw pile of shit. Clicking all the time, that's what you do. There are much better user interfaces available out there, those that won't bother with "ActiveX prompts all the time, if you happen to have disabled those for security reasons and IE will keep telling you to go eat shit any time and forever". There is alos those little things that force you to click in some client area before you are able to scroll. How do you call this? "so 90s".

Tab browsing is notably absent.
The bookmark manager is buggy.
The list could go on very easily...

0.5 cent


# August 11, 2004 3:22 AM

Russ C. said:

"Browsers don't really need any features other than the row of buttons, bookmark management and compliance to standards."

Well, that last part indicates why you need a new version of IE!

Sorry, but its true.
# August 11, 2004 3:43 AM

LeeB said:

How about a combination of the two to get results when there is a click value and no impression value. This should be a bit quicker than the UNION but uses a LEFT JOIN to 'preserve' NULL values for a particular day...

SELECT [r].[ClickTime], [t1].[ImpressionCount], [t2].[ClickCount]
FROM (
SELECT [CreativeID], CONVERT(nvarchar, [ClickTime], 101) [ClickTime]
FROM [Clicks]
WHERE [CreativeID] = 15
UNION
SELECT [CreativeID], CONVERT(nvarchar, [ServeTime], 101)
FROM [Impressions]
WHERE [CreativeID] = 15
) [r]
LEFT JOIN (
SELECT COUNT(*) AS [ImpressionCount], CONVERT(nvarchar, [ServeTime], 101) AS [ServeTime]
FROM [Impressions]
WHERE [CreativeID] = 15
GROUP BY CONVERT(nvarchar, [ServeTime], 101)) [t1] ON [r].[ClickTime] = [t1].[ServeTime]
LEFT JOIN (
SELECT COUNT(*) AS [ClickCount], CONVERT(nvarchar, [ClickTime], 101) AS [ClickTime]
FROM [Clicks]
WHERE [CreativeID] = 15
GROUP BY CONVERT(nvarchar, [ClickTime], 101)) [t2] ON [r].[ClickTime] = [t2].[ClickTime]
ORDER BY [r].[ClickTime]

Lee
# August 11, 2004 4:52 AM

Sigurdur G. Gunnarsson said:

If you think IE6 is 100% standards compliant, think again. For example it has numerours bugs in CSS rendering.
# August 11, 2004 6:13 AM

dru said:

Yes, please fix the CSS support!
# August 11, 2004 8:04 AM

Phil Scott said:

Yeah, spend some time trying to do a non-tableless design and you will quickly realize that IE has some show stopping bugs when it comes to layouts. I've spent two days trying to force IE to render something properly. The solution is to use tables for layouts, which was a hack 4 years ago and could be avoided altogether if it IE got its shit together.

Here's a good write up on Stopdesign called "The IE Factor": http://www.stopdesign.com/log/2004/01/26/ie_factor.html
Doug has a good write up about one particular bug that I've ran into a couple of times myself: http://www.stopdesign.com/log/2004/01/30/ie_factor_example.html

Spend some time on web designer's weblogs and you will see at least one post a week about working around bugs in IE's CSS rendering. They aren't asking for new tags, they just want the freaking floats to work right.

BTW, here's a work around for the three pixel bug that pops up when you use floats: http://positioniseverything.net/explorer/threepxtest.html
# August 11, 2004 8:11 AM

Phil Scott said:

Did I just write non-tableless design. Just shoot me now.
# August 11, 2004 8:13 AM

Jeff said:

As it turns out, I used a FULL JOIN and an ISNULL function to return 0 instead of null. Thanks for your help, everyone!
# August 11, 2004 10:26 AM

Garrett said:

Ok Jeff, You are crazy.

"... Browsers don't really need any features other than the row of buttons, bookmark management and compliance to standards ..."

Browsers need more features. Of course they do.

Admittedly, after SP2 IE gets quite nice. Blocked Popups, Blocked Asinine ActiveX controls. Very good.

Things IE Still needs:

Tabbed browsing. This is one of those things that if you like it, it is the best thing in the Universe. I prefer the way CrazyBrowser (an IE derrived browser) works. Simple, plain, but very useful. Oh, make sure the middle button closes a tab.

Ad Blocking. Ok, I can't really see Microsoft putting this in, but the Mozilla Extension AdBlock is the greatest thing since SlicedBread... er Tabbed Browsing.

Web Developer Tools -- See http://www.chrispederick.com/work/firefox/webdeveloper/ for what this is. It is possibly the most useful tool for helping with development of web apps I've used in years.

Well, since you brought it up : "compliance to standards" . I'd love to see IE be compliant. Been waiting for 8 years now...

Feh
# August 11, 2004 10:35 AM

Chris Szurgot said:

One reason I like Tabbed browsing is when I'm reading my list of sites in the morning that aren't RSS ready (yes, I still read some of those) and it's easier to do that when you can manipulate the browser windows within the same program instead of having to go to multiple windows to do it.

Look at it this way. RSS Aggregators were created to keep RSS feeds consistent, and you use Visual Studio to keep all of your development in one place, thing of this as the same thing. Logically grouping one task.
# August 11, 2004 10:51 AM

firefox said:

People are still talking about IE..who cares about it...what a joke.
# August 11, 2004 11:26 AM

lynn eriksen said:

Jeff, is there really anything in the .Net framework 1.1 that is missing that is a showstopper, that keeps things from rolling out? You can create updateable Smart Clients with it as it is now. You can do ASP.net authentication/authorization by writing your own controls and DB as it is now. You can use Enterprise Services to handle transactional components - right now. You can create your onw strongly type collections - right now. Lets take a further look into the future - why do Indigo if webservices works well now. Why do XAML if Windows Forms is adequate and improving. Why create the MBF? - I can roll my own components. Why do objectspaces? Why do WOE? Why should MS take the .Net platform further at all - after all 1.1 is very good. But if 1.1 is good enough, why are we .Net developers so eager to get our hands on .Net 2.0? Why were people so upset when objectspaces was delayed to longhorn?

Now, lets try this - why have full CSS 2.0 support in IE? Why have better JavaScript/DOM support in IE? Why support PNG transparency? Why support SVG? Why have tabbed browsing? Why have popup blocking? Why have improved security?

The same answers apply to IE that also apply to .Net - it's a matter of providing developers with the ability to provide a product that delivers greater value and an enhanced experience for end users. This acts to create a need for MS products - which is not wrong. An improved IE would not necessarily necessitate this, unless it was tied to Longhorn which would act as a selling point.

I'm tired of hearing about why IE is just fine - but everything else MS does needs to be improved. Lets stop kidding ourselves and admit that IE is not a money maker for MS and for the past 2 years has been quite a liability. This is why we don't see IE fever at MS like we once did. It's okay - but for MS to live in denial about this is absurd.



# August 11, 2004 11:29 AM

Jeff said:

Yeah, it's not a money maker and is a liability. So? Comparing developer technologies to the browser is like comparing a hammer to a Cray.

My point stands that IE is 99% adequate from a developer and use standpoint. It's a hammer.
# August 11, 2004 12:27 PM

Rob Chartier said:



Maxthon (MYIE2) is bloated? With this very blog page alone, loaded up in both browsers there is little or no different in memory utilization.

MyIE2/Maxthon is where its at. Tabbed browsing, a whole list of plugins, popup blockers, automatic searching and highlighting, undo, skins, the list goes on.

Anyone who is satisfied with the current version of IE and is still using it is crazy. Upgrade to Maxthon!
# August 11, 2004 12:28 PM

Jon said:

I appreciate having the "option" to use tabbed browsing. I use FireFox as my main browser mainly because it allows tabbed browsing and it has built in pop-up blocking without installing spy-ware (a.k.a. Google toolbar). I use IE because I develop ASP.Net applications and our company uses IE. I agree that IE is adequate for developers, but if some features from other popular browsers could be added into IE I might use it for things other than checking that my Intranet site will look good for Bob in Accounting.
# August 11, 2004 12:45 PM

Travis said:

"written from scratch" MS is too far deep into the current bloated codebase for a re-write. I doubt this will ever happen.
# August 11, 2004 2:37 PM

Jeff said:

ASP.NET doesn't need IE, save for maybe keeping scroll position on post-back (in which case I'd say your design isn't right in the first place to require that).
# August 11, 2004 3:45 PM

Lerch said:

I'm with Jon: I switched to Mozilla as my main browser at home because it runs substantially faster than IE on my system and because I've come to love tabbed browsing. I develop for an all-IE intranet at work.

You say, "The only real missing "feature" anyone could come up with was the lack of tabbed browsing. This, to me, is a weird cultural thing with Windows users. You are all aware that in Windows, we can have, well, windows, right? In addition to the comment about alt-tabbing about your applications, big and multiple monitors allow you to spread out Windows and move about them. It floors me that there are people that browse full-screen at 1280x1024.....I've never seen tabbed browsing as a feature because I never understood confining browser windows inside of another window."

To me your comments exibit a strange kind of bias, maybe a developer bias. Most users don't have multiple monitors. I run a 21 inch monitor at 1600x1200 and you're right, I don't run anything at full screen except for Visual Studio.NET, and that only when I've got the solution explorer, the class view, the code and the designer going. And besides...who cares what a user "should" do (i.e. use multiple windows and alt-tab or the icons on their start menu). If they want tabbed browsing, why not give it to them?

Beyond all that, I thought I'd tell you how I use tabbed browsing in Firefox. With IE, there would be times where I'd have twenty browser windows open, especially if I'm reading a news page like news.google.com or a zine like netsurfer digest or a blog like yours. I'll see an interesting link to investigate but want to keep reading the main text, so I right cllick or shift-click to open it in a new window (I do this so often that I programmed my wheel to be a shift so I could shift-click to open content in a new window with one hand). But again, then I'd end up with browser windows all over the place. If I got distracted or had to look something else up,

With tabbed browsing, I will usually sort of keep my browsing categorized. i.e. I'll have the blog and all the interesting links from the blog open in one browser, the zine and all the interesting links in the zine open in another browser, etc. Maybe it's silly, but I love it and wish IE had it.
# August 11, 2004 4:45 PM

Jeff said:

OK... so some of you want that feature, and you get it in other browsers. So why then are you looking for an upgrade if another product meets your needs?

And as for CSS compliance and table-less design, SuicideGirls.com is all tableless, works in IE and all other browsers I've tried it on, including Safari. Do they understand something about design that the rest of you don't?
# August 11, 2004 5:30 PM

Jon said:

You are correct that ASP.Net does not require IE, however, our company has "standardized" on IE as "The Browser" so I must develop for IE.

Other browsers do have the features I want and I do use them when given the choice. Some companies I have worked for will not let users install software and only let them use what the company has approved. Many times this means browsing with IE. So if I'm stuck using IE, why not ask for an upgrade for features I find useful?
# August 11, 2004 6:17 PM

Jon said:

Almost forgot: ASP.Net DOES require IE for client side validation. In version 1.0 and 1.1, client side validation will not work in Mozilla or FireFox. See this article for more information: http://aspnet.4guysfromrolla.com/articles/051204-1.aspx
# August 11, 2004 6:24 PM

Eric Newton said:

Personally, I'm not crazy about even trying to think about writing software that works "EVERYWHERE"

Avid works harder on making the product better instead of compatibility, I can dig it...

Never used it but I've heard its very good... so hopefully they'll fix the problem, but until then No SP2 for the Imagers!
# August 12, 2004 7:12 PM

Geoff Appleby said:

Looks good to me. Stringbuilder kicks ass, doesn't it? :)
# August 15, 2004 10:49 PM

Chad Myers said:

I'm more curious about AppendFormat(). How big of a hit does that take out of the works?

For example:

builder.AppendFormat("{0} \n", word);
# August 16, 2004 12:51 AM

Eric Newton said:

well, APpendFormat is obviously using String.Format under the hood, so there's a cost factor involved in tokenizing the "Format string" and inserting the values into the resulting string [which ironically uses StringBuilder itself! go figure... kinda like Alabama cousins]

Supposedly you can also use a string[] to build a set of strings, typically staggered as literal/changable/literal/changable etc and it's even faster than stringbuilder:

<code>
string[] full = new string[1000];
string[] test = new string[5];
for(int i=0; i <= 1000; i++)
for( int j=0; j <= 1000; j++ )
{
test[0] = "The current value of I is ";
test[1] = i.ToString();
test[2] = ". The current value of J is ";
test[3] = j.ToString();
test[4] = ".\n";
}
full[i] = string.Concat(test);
}
Console.WriteLine(string.Concat(full));
</code>
# August 16, 2004 2:20 AM

Aapo Laakkonen said:

In Java World there used to be huge debates whether to use string concatenation or StringBuffer class. Currently as Java compilers have got more mature these conversations doesn't arise as often as they used to. And, yes you get same performance with both techniques. Java Compilers replace repetive string concatenations with string buffers. I see no reason why this feature has not been implemented in .NET. If you ask me, StringBuffers have no use if you have compiler smart enough to deal with this issue.
# August 16, 2004 4:48 AM

Darrell said:

Jeff - works great if you have a developer that is actually going to append 1000 strings on different lines of code (hopefully even the slightest code review would catch that). If you have a lot of concatenations using the + command you will see using reflector that only 1 concat is called under the hood.

At some point in time the overhead of StringBuilder outweighs its usefulness. That is the point around which guidance need be given. I've heard somewhere around 5-10 concats is where StringBuilder gains enough of an advantage to use it. Your mileage may vary.
# August 16, 2004 10:35 AM

David Hayden said:

I can't agree more with Darrell.

A lot of the "religious" wars have to do with performance. We always here - don't use dynamic SQL, use stored procedures. Don't use foreach, use a for loop. Don't concatenate, use StringBuilder. Don't use the DataSet, use the DataReader. Don't access DataRow fields by column name, access them by index, don't use O/R Mappers, build your own data layer, etc., etc., etc.

Certainly it is important to know the trade-offs in performance when building the application, but it is important to know at what point one actually sees a performance hit and understand that the performance hit may be acceptable from a maintainability and cost standpoint.

Not every website is Match.com. Not every application is SAP.

You seem like a very pragmatic developer, so I suspect you will touch on those areas of reality when appropriate.
# August 16, 2004 12:20 PM

Nat Luengnaruemitchai said:

Try...

string.Join(" ",words) instead of the inner loop. Might be even faster :)
# August 16, 2004 1:19 PM

Jim Hughes said:

To be even more dramatic (and line by line code equivalent):

result = result + word + " ";

should read

result = result + word;
result = result + " ";

It's not fair to optimize the "bad" code! After all, the StringBuilder has to do it in two lines!

With my proposed change:

Before:
00:00:17.9078928
00:00:00.0100156

After
00:00:35.7356608
00:00:00.0100156
# August 16, 2004 1:53 PM

TrackBack said:

# August 16, 2004 3:31 PM

Frans Bouma said:

However:
string f = "Foo";
string b = "Bla";
string s = f + b;
beats:
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0}{1}", f, b);

Stringbuilder is not always 'the right way' ;)
# August 16, 2004 3:41 PM

Brian said:

What would you say is a situation where sprocs would be the "wrong" thing, and what would the alternative be (or have you covered this on your blog before?)?

# August 16, 2004 3:48 PM

Richard Dudley said:

I can think of one instance. if I were writing an assembly--say a DNN module--that would be used with one of several databases, I would be inclined to write a single data provider that used parameterized queries. This way, one DP could be used with MySQL, Access and SQL Server. No changes would be necessary other than a connection string in the .config file.

There are certainly efficiencies to be gained by using the special classes for SQL Server and sprocs. But, parameterized queries would provice much of the defense against SQL injection that sprocs do, and I could spend the time I save writing another assembly.
# August 16, 2004 4:20 PM

Brian said:

Thats a good point. Are there any reasons not to use sprocs in a SQL Server-only environment?
# August 16, 2004 4:24 PM

Jeff said:

I think you ask the wrong question. What's a good reason, other than preference? If I have an app that queries "SELECT Name FROM People WHERE ID = @ID" all day long, there is no measurable benefit to using a stored procedure.
# August 16, 2004 4:35 PM

rick said:

There's no hard rule for anything. Stored procedures are great unless you want highly dynamic queries or database independance. But, if you have an operation that includes multiple queries, I would much rather put that in a procedure.

Personally, I don't go for the database independant thing, I'd rather code my app to use the provider to its best abilities. I rather like .Net 2.0's DataSource controls.

The best thing is to evaluate your options and pick what's best for what you're doing.
# August 16, 2004 6:14 PM

Jon said:

One reason to use stored procs is to lock down the talbes in the database. You could deny INSERT, UPDATE, DELETE for a table and only grant EXEC to a few stored procs to handle inserting, updating, or deleting. This may seem paranoid, but in a production environment it would not be unreasonable.
# August 16, 2004 7:30 PM

Jeff said:

Paranoid is right. Seriously, if someone is clever enough to break into your system (particularly in a Web environment) to start executing whatever code, SQL security is the least of your worries.
# August 16, 2004 7:39 PM

Jon said:

It is called defense in depth and it can buy you some time if your system is ever compromised. In some cases I would rather err on the side of caution - particularly if the data is sensitive.
# August 16, 2004 7:54 PM

TrackBack said:

# August 17, 2004 3:49 PM

jayson knight said:

finally, someone else who thinks the same thing i do. the site looks almost amateur'ish. it's almost ruined the olympics for me as i never know what's on, or when. oh well...hunt and peck.
# August 18, 2004 12:18 AM

Eric Newton said:

dont do it for less money, do it for more because it would be better ,right?
# August 18, 2004 12:51 AM

Eric Newton said:

Jon: its paranoid to lock down every single table that way, although I'm not saying you specifically said that. Granted, there might be a "CreditCardTransactions" table that is highly sensitive, and in that case, you should only need an "INSERT" procedure... but all in all, you probably should be encrypting the data, storing it as varbinary so its also not recognizable on the wire, etc etc etc.

I believe in creating a sproc for a complex query, or one with a lot of parameters. Then the additional pain of versioning the sproc's interface is outweighed by the potential benefit of efficiency and speed.

Anybody who tells me you should only use sprocs for data access is gonna get a one finger salute from me.
# August 18, 2004 12:49 PM

Jon said:

Nice to know you're a flexible person. Anyway, I was not advocating the use of stored procs for data access to every table. Just because you have a hammer shouldn't make everything look like a nail. In design there are always trade-offs and I just wanted to point out that *sometimes* using stored procs for data access is the way to go.
# August 19, 2004 12:35 PM

TrackBack said:

# August 19, 2004 8:05 PM

Kulin said:

I thought SP2 was supposed to allow 2 users to login simultaneously. I've looked high and low but I can't seem to find any options that enables that. Did they end up not going with it after all?
# August 19, 2004 8:40 PM

anon said:

Might be SP2 limiting the number of incomplete outbound connections. It will have a max of 10. Check your system event log.

http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2netwk.mspx#XSLTsection127121120120
# August 19, 2004 8:47 PM

Aapo Laakkonen said:

I'm not sure, but I can see a few problems with this:

1. It doesn't scale as the threads are all from the same thead pool (ie. it takes thread from the same pool that ASP.NET uses, I think). And you don't own the pool, so you cannot explicitly say what's happening.

2. It prevents Garbage Collection, in your case the whole object is hold on memory until you explicitly free appHandles.

3. I'm not sure where your mailer needs HttpContext. Could you just instatiate new object with the parameters you need and execute it as a thread (but take the thread from somewhere else or you are not gaining anything in scalability, only in response times)? I think that this is a good place for Message Queue, eg. MSMQ.

You should also know that one single request can be handled by multiple threads in ASP.NET. (That's why you cannot use [ThreadStatic] attributed data types in ASP.NET.)
# August 20, 2004 2:38 AM

Daren said:

Jeff, Data Execution Prevention is currently a SP2 + AMD64 feature, as it requires cpu support, Intel are adding it later in the year i believe.

Kulin, I think the 2 logins was mainly to boost smart screen sales, but as they've been shelved, i guess that got shelved too, shame cos i was looking forward to that feature too.
# August 20, 2004 3:03 AM

Jeff said:

The mailer needs the context to get settings and cached items.
# August 20, 2004 3:04 AM

Jeff said:

Not true... I realize that the AMD's do this in hardware, but this is being plugged as a software version of that.
# August 20, 2004 3:05 AM

Aapo Laakkonen said:

> The mailer needs the context to get settings and cached items.

So, can you just retrieve those settings? Can't you get the settings by using ConfigurationSettings.AppSettings for example? Or what do you mean about settings? What about cloning those objects that you need in a child thread?

Keep in mind that your child thread does not own HttpContext, so it should not try to modify it. And the HttpContext is meaningless after main thread finishes the work. HttpContext is only maintained by ASP.NET threads (so that the threads (the ASP.NET threads) that process the request (one single request) can share data throught HttpContext. I don't know how it's implemented and even if I knew i would not depend on it.

Executing your own threads in Web environment (ASP.NET, Java Servlet, etc.) is hardly ever a good idea. I think that you should redesign the code so that you don't have to do that.

There are many choices:

- Message Queues
- Separate Service that polls eg. file system or data base changes on timely fashion.
- Database might provide some tools
# August 20, 2004 3:52 AM

Jeff said:

It frequently needs to get data from Application and Cache.

You say that it's "hardly ever a good idea," and not to use HttpContext, but you don't give any reasons why. I'll take your advice if you give me a reason, but "I say so" isn't really a reason.

In fact, this technique is used quite a bit in the ASP.NET forums, only without the handle. I'm not sure why it works for that app without it but not mine.
# August 20, 2004 10:22 AM

Aapo Laakkonen said:

> You say that it's "hardly ever a good idea," and not to use
> HttpContext

I say, it's hardly ever a good idea to execute your own threads in a web environment. And I say that you should not use objects that are not managed by your own thread or thread pool. I mean it as a general principle. It's not written on a stone and you can do whatever you want, but these are dificult things to handle properly as you cannot know what happens behind the scenes (and the behavior can change - eg. configuration, multiple processors, asp.net version). And HttpContext is particularly bad example. HttpContext is object for a request.

Example:

(Note: HttpContext Encapsulates all HTTP-specific information about an individual HTTP request.)

1. Request comes In (RequestContext is Created and it has a meaning)
2. You start your own thread and pass a HttpContext to it.
3. Main thread continues other stuff / Child thread does its stuff
4. Main thread ends. REQUEST ENDS!
5. Child thread continues its stuff
6. Child thread uses HttpContext

WHAT CONTEXT? There isn't any request anymore, it was served and gone and the child thread missed the train.

This was my point.

> In fact, this technique is used quite a bit in the ASP.NET
> forums, only without the handle.

Umm... Can you so my some code?
# August 20, 2004 11:32 AM

Yves Reynhout said:

There's nothing wrong with doing multi-threading in a web application. The availability of the HttpApplication, the Cache and the curent HttpContext is something to be concerned about.

With GCHandle.Alloc you're effectively prohibiting the GC from collecting the HttpContext (but this technique is normally used from unmanged code). Why aren't you passing a reference of HttpContext.Current to your thread (via a worker object)? Here's a little console app that demos the technique (not using HttpContext ofcourse). Even though my main thread dies, the Context object is not collected because another thread is holding onto it.

using System;
using System.Threading;

namespace ThreadTester {
class Default {
[STAThread]
static void Main(string[] args) {
new MyWorker(new Context());
Console.ReadLine();
}
}

public class Context{
public DateTime Then{
get { return _then; }
}DateTime _then = DateTime.Now;
}

public class MyWorker{
Context _context;
public MyWorker(Context context){
_context = context;
Thread thread = new Thread(new ThreadStart(DoWork));
//thread.IsBackground = true;
thread.Start();
}
private void DoWork(){
while(true){
Thread.Sleep(TimeSpan.FromSeconds(5));
Console.WriteLine("Now:{0} Then:{1}", DateTime.Now, _context.Then);
}
}
}
}

And here's the "same" code in a web app:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Threading;

namespace ThreadTester {
public class MyWorker{
HttpContext _context = null;

public MyWorker(HttpContext context){
_context = context;
Thread thread = new Thread(new ThreadStart(Run));
thread.Start();
}

public void Run(){
while(true){
System.Diagnostics.Debug.WriteLine(String.Format("Now:{0} ApplicationCount:{1}", DateTime.Now, _context.Application.Count));
Thread.Sleep(TimeSpan.FromSeconds(2));
}
}
}

public class WebForm1 : System.Web.UI.Page {
private void Page_Load(object sender, System.EventArgs e) {
new MyWorker(HttpContext.Current);
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e) {
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent() {
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
# August 20, 2004 1:02 PM

Eric Newton said:

since it seems all you want is the Cache, which lives through any Context's, why dont you just reference the Cache at the beginning instead of all this potential problematic code?

Init
{
MyStaticCache = HttpContext.Current.Cache;
}

because if you try to use the Context.Request or Context.Response you'll basically be in undefined territory...
# August 22, 2004 1:47 PM

Jeff said:

What's problematic about it? The last version works and works fine.
# August 22, 2004 2:21 PM

Jerry Pisk said:

Bye bye blind and vision-deficient users. You're not welcome.
# August 22, 2004 2:33 PM

Jeff said:

I guess they'll have to e-mail someone to get registered. I've had too many automated attack attempts to not do something, so if you have a more clever solution, do let me know.
# August 22, 2004 2:43 PM

TrackBack said:

# August 22, 2004 3:24 PM

matthew said:

please use an in-memory temporary table. it is much faster. (declare table @blah (gfghfghf int, gfdfgfd bigint))

you are using disk temp tables here
# August 22, 2004 9:38 PM

Jeff said:

This appears a better alternative:

DECLARE @Sort datetime
SET ROWCOUNT 5001
SELECT @SORT = LastPostTime FROM Topics ORDER BY LastPostTime DESC
SET ROWCOUNT 30
SELECT * FROM Topics WHERE LastPostTime >= @Sort ORDER BY LastPostTime

As mentioned in this article:
http://codeproject.com/aspnet/paginglarge.asp

The flaw is that it doesn't work right unless the sorting column is unique, but somehow I can't imagine that any two topics would be updated the same millisecond. I'll give the cursor method a shot too.
# August 22, 2004 10:55 PM

Don Newman said:

As long as there are other means to make a site accessible for registration, I wouldn't consider that a faux pas. I know that I tend to forget about accessability in a site and probably have far too many graphics without alt tags. For sites that use graphical buttons for navigation, that would be a far greater mistake.

DoS attackes come in many forms now. I blame the people behind those for making the internet a more difficult place than it has to be. Maybe the solution would be to simply have everyone get a digital signature with which they could apply for a license to connect to the internet which would then be registered with their ISP to gain access. Do bad things and your license gets revoked. Now which would be worse, a policed internet or a site requiring visual ability?
# August 22, 2004 11:53 PM

Frans Bouma said:

@Matthew: no that's a myth. A temptable is faster with bigger resultsets.

@jeff: with a table with 2 pk fields it gets trickier. Also, if you want to sort your results (some people want that) on a given set of fields it is not working. This means you have to create 'special cases' code for these cases, which is not preferable.

---
However, most paging solutions work without a big problem in most cases. You see, the people who test them try to page through a table with hundreds of thousands of rows and then say 'this one is faster/slower'. But, in practise, no-one will do that. You will filter on the 100,000 rows and page through that resultset, which is most likely a lot smaller.
# August 23, 2004 3:57 AM

Brian said:

Here is the way i see it. Bob downloads the video game, being the hacker / gamming fanatic he is, has to be on top of all the latest games. Downloads it and plays it. Sees how awsome the game is ( or any other software for that matter) and then tells all his friends how awsome this game is. lets say he tells 10 people, 3 of which are computer guru's so those 3 download the game, but the other 7 decide oh i guess i should get the game since bob said its awsome and bob knows what games are good. so those 7 people go and buy the game, and they tell their friends. So now we have 10+ people who have the game, But they wana go play together and typically, pirated games cant be played together atleast not online, so those 7 people and their friends who bought the game get to play, but bob can either 1 buy a copy, or not play with his friends. Either way from 1 person downloading the game ahead of time, or even after it came out, since he told his friends people who were less inclined to buy the game now bought it. There for Piracy is not all that bad. There is a reason why software is so expensive. The software manufactures know that people are going to download or copy their software, so to compensate that inrease the price 2-4 times the amount they want to sell it for. Now on that note. CD's cose pennies to make, and "program" the software onto it. The millions of dollars they spent making the software with a cost of pennies per copy, they make back the money anyways. Just not as much but they still make a profit. If they didnt make a Profit then the companies would be out of business. Windows XP, was downloaded way more times then Doom3, and you dont hear Bill gates complaining. ( he is just incoded the new service packs with the famouse illegal serial numbers and doesnt allow them to be installed) He is smart. Instead ot Crying he solves the problem by making patches not work for Illegal copies. Even tho MANY people think that piracy is bad, it does have its benifits.
# August 23, 2004 4:26 AM

matthew said:

frans do you have any benchmarks, and can you define 'big'? And does it depend on the amount of RAM in your server.
# August 23, 2004 4:44 AM

Ramon Smits said:

YOu could speed up your query by definining a primarykey in your temp table. This will speed up the join operation in the second query because the optimizer will use the sorted unique ID column of your temp table for lookups. Maybe not that noticable with a pagesize of 30 but will be evident with larger page sizes.

Also make sure that you have an index on the table to be paged for each kind of search path you use in your application. Use indexed views if possible.. Those will need more space in your database but will speed things up dramatically. But don't do this when you have very frequent inserts because all indexes and indexed views will have to be updated after each insert query.
# August 23, 2004 4:54 AM

Ramon Smits said:

It could also be important that the user is notified after an insert query has been run while the user is paging through the resultset of its original searchpattern.
# August 23, 2004 4:57 AM

Ron Buckton said:

I have a post here (http://blogs.chroniclesdesign.com/rbuckton/archive/2004/08/23/150.aspx) and an article here (http://blogs.chroniclesdesign.com/rbuckton/articles/SQL2000ServerPaging.aspx) which have some useful information to help with paging, if anyone's interested
# August 23, 2004 12:11 PM

Jerry Pisk said:

E-mailing doesn't sound so bad, just e-mail the user a link that will complete the registration. But that has another problem - you will have to disallow multiple registrations from a single e-mail address and even then it will still allow your site to be turned into mass mailing beast.

What you could do is to pick random names for your input fields and include encrypted BLOB with those names and something unique (such as the request IP address or current time) in a hidden field.
# August 23, 2004 1:17 PM

bertcord said:

When you use memory tables parallelism is disabled…so if you are working with large sets of data for example 10millions rows it is better to use #tables
# August 23, 2004 1:55 PM

Sonny Bugarin said:

My name is Sonny Bugarin and I am from Charleston, South Carolina. I am a Bronze Certified Freestyle Wrestling Coach. Wrestling is not the most popular sport in South Carolina, but I am doing my best to promote the sport in my state. I have taken wrestlers to compete in local, regional, and national events. I have been discouraged to see the amount of coverage in the women's wrestling competition. The coverage has been sparce with only one preliminary match and one final match. Some highlights have been shown. I hope the men's wrestling will be given more coverage, so that the sport of wrestling will be seen throughout the world. Wrestling is the toughest sport mentally and physically. If you have ever been a wrestler, you would definitely know what I mean. I feel like I have been "cross-faced" by the NBC network. Does anyone know the e-mail, so I can let the NBC station know my concerns? (The NBCOlympics.com is not working)Thanks!
# August 23, 2004 7:54 PM

don@ghostdev.ca (Don Newman) said:

I was under the assumption that they were just changing the default provider since the capability to support Access was already present. After reading their changes, I would understand it is being removed, but may only be for beta 2. Maybe their assumption is there is no need to support access since anyone deploying ASP.Net would also deploy support for SQL Express (if it isn't already built in).

You did get my attention with this post since changing the default provider was actually a suggestion I submitted. I would have felt bad creating such a hassle for you if their response didn't imply that it was already in the works.

How close is your book to completion and when is anticipated availability? As I hope to be an early adopter of ASP.Net v2 I look forward to the availability of hard copy reference material. If you find yourself looking for early reviews from unheard of programmers keep me in mind.
# August 23, 2004 8:30 PM

Jeff said:

I can forward your details to the publisher, if you like.

It's not a huge issue if it changes, because what I wrote had more to do with creating your own providers than using the default Access provider. I'm still really surprised by this because having the framework just mystically generate and Access file sure was a nice feature for small sites.

Not sure about a release date for the book. I assume sometime in 2Q05, but the thing I'm learning about publishing is that it's a very fluid process.
# August 23, 2004 10:36 PM

Fredrik Normén said:

The Access provider will be removed from the product. They removed it because the Jet database engine is not suitable for a server environment, and they need to point folks at more robust technologies like MSDE, and Sql Server Express 2005.

Microsoft will post the Access providers and their code on the www.asp.net at some point during the Whidbey ship cycle. This means the Access providers will be available out-of-band from the framework, and that once we release the code they will not be officially supported by the framework.
# August 24, 2004 12:26 AM

Yves Reynhout said:

Could you please state what the HttpModule does and what the timer has to do with it, because right now I don't get it. Seems like every minute you want to do something. How does it correlate to the current Request?
In your previous post I assumed you where talking about doing an async "mailing" operation (from normal System.Web.UI.Page code), in which case the samples I provided were adequate (and the recommended way to pass objects to other threads).
# August 24, 2004 2:09 PM

Jeff said:

It has nothing to do with the request. In fact, it doesn't even need to be about mailing something. The goal is was to be able to get the cache object from objects spawned to their own thread, whether that be via a page or from an HttpModule. The secondary goal of that was to get application configuration from web.config in these same objects. As I said, the last example works. To be more clear:

// HttpModule
public void Init(HttpApplication application)
{
myTimer = new Timer(new TimerCallback(this.TimerMethod), application.Context, 60000, 60000);
}

static Timer myTimer;

private void TimerMethod(object sender)
{
HttpContext context = (HttpContext)sender;
MyClass.StaticMethod(context);
}


// MyClass
public static void StaticMethod(HttpContext context)
{
Cache cache = HttpRuntime.Cache;
System.Configuration.Configuration config =
System.Configuration.Configuration.GetWebConfiguration(context.Request.ApplicationPath);
}
# August 24, 2004 3:05 PM

b allison said:

yea I agree
# August 24, 2004 3:27 PM

Scott Allen said:

So everyone has code to prevent the Content from being collected, but what happens to resources the Context holds references to that are Disposed by the ASP.NET runtime because the request is finished? I think it's a tricky area to work in.
# August 24, 2004 3:56 PM

Jeff said:

# August 24, 2004 4:48 PM

TrackBack said:

# August 24, 2004 4:48 PM

claire said:

Yep... I agree. I'm a synchronized swimming fan. Just today the listing (yes it did say that this was coming on but between 4 and 7) Yesterday NBC only showed four duets - now we're only talking about two minutes for each set. But how much time was spent on whether or not Paul Hamm should give back his gold medal? Why can't some of that commentary time be spent on allowing us to see some of the "less important" activities. We really do not need any additional commentary because the commentary that goes on during events is good enough.
# August 24, 2004 5:57 PM

Chris Hammond said:

Interesting.... Thinking it's the most active sites on the net?
# August 24, 2004 11:31 PM

Damian said:

It's strictly pagerank, because every link to them contains "http"
# August 24, 2004 11:42 PM

Jerry Pisk said:

I thought pagerank would be a little smarter than to consider protocol specification to be a part of the link. It's a little different than using http in the link text.

As for Jeff's answer: just go to the source - http://www.ietf.org/rfc/rfc2616.txt (HTTP 1.1 standard).
# August 25, 2004 1:34 AM

Andrew said:

Search for "define:http" next time ;)
# August 25, 2004 2:12 AM

Daren said:

Jerry, You just demonstrated why it is, your link text to ietf.org contains http ! :)

# August 25, 2004 3:54 AM

Fabrice said:

You can also search for www or com...
# August 25, 2004 4:44 AM

Earl A. said:

I KNEW I wasn't the only one thinking that NBC as a whole SUCKS!....This is the first time in my 50 years that I haven't seen Weight-Lifting and Wrestling on Prime Time! I could give a SHIT about Gymnastics at this point in time (8-25-04)...In Fact! NBC needs to change their name to 'NBC UNLIMITED GYMNASTICS COVERAGE'....Thanks to NBC, not only does 'NBC SUCK', but so does 'GYMNASTICS'...You can't keep consuming the same food source everyday you fricken MORONS!!!!!!!!
# August 25, 2004 4:46 PM

Earl A. said:

NBC has always 'SUCKED'! Paul Hamm also sucks!...People...Not only did he fall down, He al most rolled across the Judge's Table!...HELLO! He also needs to work on his idiotic voice! This is great...NBC is going to have Super Heavy-Weight Weightlifting on at 11:30-12:00(thereabouts)! Yow right! I'll set my recorder while I sleep, but remember to catch updates on paul HAMM and Beach Volleyball on Prime Time! Going a step further on how I've always felt about NBC....'EAT ME!'
# August 25, 2004 4:59 PM

Kevin said:

Its a software version that requires hardware support to work. This feature will not work (as far as everything I've heard) unless you have a processor and possibly mobo that supports this feature.
# August 25, 2004 9:19 PM

Jeff said:

That's not correct. Read the help file.
# August 25, 2004 11:58 PM

Delia M Fragoso said:

My problems is that NBC advertized that they will cover all sports , They have on the
schedule some sport in Bravo or USA and when you go to them all you see is some so called celebrities playing poker and trying very hard to be funny or in another
nbc station all you see Queer eyeinstead of what shows in the TV GUIDE.
# August 26, 2004 11:02 AM

meg nakamura said:

I think the olympic coverage is fine and there are several networks to pick from. What I object to are the stupid sports that are included in the olympics. Scnchronized diving ? I haven't meet a single person who doesn't think that synchronized diving is idiotic. Wind sailing, beach volley ball. I love to watch swimming, but I don't need to see every preliminary race. Just show me the finals. My biggest complaint about the olympics this year is that I have seen enough butt cheek to last me a lifetime. The track and field participants run in underpants. When they finish the race, they bend over and kiss the track. Then their coach picks them up around the waist causing the pants to ride up even higher. Yuck! The same goes for the female divers and gymnasts. Their butt cracks are barely covered.As for those itty bitty speedos that the guys wear, some day something is going to pop right over the waist band. Come on athletes, cover up! You are not that hot.
# August 26, 2004 12:15 PM

Zan said:

Jeff. Could you please add some substance to your side of the argument. You can't just say, ' that's the dumbest thing I've ever heard,' or , 'that's such a typical response from someone like you' (both paraphrased). You just seem to hold this arrogant position of your opinions and don't feel the need to back it up with actual arguments or points. Also, trying to discredit someone's argument by pointing out grammatical errors is just a lazy way to try and get the upper hand on an argument. People who are passionate about a topic (and usually have a more intelligent or informed opinion) tend to type faster which leads to an increase in typographical errors and grammatical errors. On a side note, I think pirating software can definitely be beneficial to software companies through free promotion, especially with the ease of checking for pirated software in online games. I have often seen a game that looked shitty and then saw it for download. I got the game, played it, and found out that it wasn't too bad. Then, I bought the game and told my friends about it who also bought it. It's not a rare occurrence to see an increase in sales because of this free promotion. It's just hard to gather objective data to prove it. Also, fuck downloading free music. Someone stole my CD's and I got them back for free. Metallica, you already got my money; piss off.
# August 26, 2004 8:23 PM

DagH said:

Actually, a refresh of the Beta 1 is under way - so watch for it do appear on MSDn in a matter of hours or days.
# August 27, 2004 3:44 PM

DagH said:

Also, see a press release on Longhorn and WinFX released minutes ago:

http://www.microsoft.com/presspass/press/2004/Aug04/08-27Target2006PR.asp
# August 27, 2004 3:45 PM

Jason Haley said:

I agree. It really suck about what they did with techtv, the only reason I bought the extra package was to get techtv...now they are gone I need to cancel that package and get some money back from comcast!
# August 27, 2004 9:43 PM

Steve said:

I "earned" 21 invites in the past 4 days, so I'd have to agree - I don't know if they're ready to go live, though, since some of the big items on their todo list (better contact list for one) haven't shown up yet.

-Steve
# August 29, 2004 3:35 PM

scottgu@microsoft.com said:

Hi Jeff,

The SQL Provider that ships in Beta2 will automatically generate a .mdf file in the data directory for membership, roles and personalization if another sql connectionstring hasn't first been provided. The only difference is that it will be using the SQL Express engine instead of Access (this is much more scalable and robust). It also makes it easy to upgrade to full-blown SQL if you want to as well.

Right now I don't think there is any easy way to create a SQL Express version of membership, role management and personalization with B1. There is an aspnet_regsql.exe utility that ships in the framework directory (underneath windows\microsoft.net\framework\v2.0.40607). This will let you create the membership, roles and personalization databases on a SQL Server installation. You can then point to it from the providers section of your web.config file.

Hope this helps,

Scott
# August 29, 2004 4:03 PM

TrackBack said:

# August 30, 2004 9:42 AM

Thom Allen said:

unless you just got a new gmail account, they you still have that NEW gmail smell!
# August 30, 2004 3:22 PM

Fredrik Normén said:

Jeff:

The SetPropertyValues method is called when the Save method of the Profile class is called, by default this is done during the Application_EndRequest event. The Profile uses a HttpModule (ProfileModule) for the Profile feature. This hooks up to the AcquireRequestState event and the EndRequest event:

Application_AcquireRequestState - When this event is executed, the Profile loads its data
Application_EndRequest - When this event is executed, the Profile will save its data.


# August 31, 2004 1:04 PM

B111 64t35 said:

I never buy software. It's free on the net (IRC). Why should I? I just keep it at home and never bring it into work. Well almost never. I only use it for educational purposes. Since I'm almost poor it's just a matter of survival for me. I have no choice but to learn my trade using software and I am not going to pay for it - no way. I live underground and always will. Never file for taxes. Never pay for software. No drivers license and no insurance. Haven't had insurance in my entire lifetime. Duhhhhh - how do you think people lived before 1900???? How could they have survived without insurance? lol Dont need that either. Since I have no assets no one thinks of suing me and wouldnt get anywhere if they did. I can skip town faster than you can say ? Where'd he go? But I am not wanted by the law - just a few bill collection agencies. I live and survive in spite of the system's weird laws. I skirt them and their cops. Haven't been caught in 30 years and intend to keep on keeping on this way forever. You really think MS is suffering because of me? I dont care. Let 'em suffer. lol Live and let live. Survive and prosper. No one leaves the planet alive so enjoy it while you can. Software or no software - who cares?
# August 31, 2004 9:09 PM

DmmH said:

Jeff is correct :)
# September 3, 2004 3:02 AM

Eight said:

Turn off SP2's firewall and all should be good
# September 3, 2004 11:11 AM

Kulin said:

Mozilla/Firefox have a neat-o plugin - AdBlock - that has been working superbly for me so far.

When I have to use IE, I have both the SP2 and the google toolbar's popup blocker in place.
# September 7, 2004 2:14 AM

Shannon J Hager said:

Do you have an example URL?
# September 7, 2004 1:49 PM

Jeff said:

Pick a site with FastClick ads.
# September 7, 2004 4:29 PM

Carmen said:

I have to agree with you. I really enjoyed the fact that I could read entire posts from different blogs, all on one page. And the list of bloggers disappeared :( too.
# September 8, 2004 1:01 PM

Darrell said:

Check out Scoble's explanation of why:

http://radio.weblogs.com/0001011/2004/09/08.html#a8195
# September 8, 2004 1:16 PM

Shannon J Hager said:

Do you have an example URL of a site with FastClick ads?
# September 8, 2004 5:28 PM

Travis said:

You need to use http://www.bloglines.com !

Available on all your computers, and saves TONS of bandwidth.
# September 9, 2004 10:15 AM

Rob Howard said:

Please be patient we are working on this :)
# September 9, 2004 2:22 PM

TrackBack said:

# September 9, 2004 3:37 PM

Jason Mauss said:

Some suggestions...

1. "ASP.NET For Developers"
2. "Advanced ASP.NET"
3. "Web Development with ASP.NET 2.0" (you covered 2.0 right?)
4. "Inside ASP.NET 2.0"
5. "Web Developers guide to ASP.NET"
6. "Understanding ASP.NET 2.0"
7. "Jeff's ASP.NET 2.0 Junk"

The list goes on really...just look at existing titles for ASP.NET 1.0 topics and I'm sure you could find a suitable match...

# September 9, 2004 11:53 PM

TrackBack said:

# September 9, 2004 11:58 PM

Shannon J Hager said:

I don't think this is what you're talking about, but it's still annoying.

http://www.fastclick.com/demo/invue.html
# September 10, 2004 3:33 AM

Stefano Demiliani said:

Interesting... Who will publish this book?
# September 10, 2004 4:27 AM

Gert Van Gool said:

"ASP.NET 2.0 inside out"
# September 10, 2004 5:22 AM

Jeff said:

The publisher is the one that publishes a lot of really cool .NET titles right now. It's probably not my place to say who it is until they decide to announce it.
# September 10, 2004 8:36 AM

cookie said:

Set vms := false and you'll be fine
# September 10, 2004 1:43 PM

jax said:

cookie, you must set oledvms := 0 too
# September 10, 2004 1:45 PM

remember me said:

keep erasing "putz" I'll keep writing besides your radio dialogue did suck and your snow football talents were lacking hows this for a title "how to be a computer PUTZ like me" I can do this all day long, seen campus fish not bad but lacking a certain aura also they are hammering you on other coaster pages for you being you. I am glad you are succesfull don't get me wrong but no one wants to hear in every other blog your woe is me I made a 6 figure income Bullshit. I tapped that amount last year but I don't spread it around like KY on your "Putz". wow I can't remember the last time I had so much fun with a word- from now on you are my new stress friend, I can write to you anytime and kick you in the balls. Lets call it our friendly nutsack smack. You can do it as well feel free to hammer me it may make all those depressing feelings you have at times about food or family or how gay coaching volleyball is. remember real sports powder puff!! well gottaq go back to the corporate lifestyle it feels good to be childish before an important meeting on Friday and then a meeting out of town on Monday-- Refreshing---don't forget to erase this Jeff I will write again soon- See you in Medina--sucker
# September 10, 2004 3:31 PM

Jeff said:

Nothing is more manly than people who dog others anonymously. Nothing is more sad than so-called adults that try to tear others down anonymously to compensate for their own lack of self-esteem.
# September 10, 2004 3:51 PM

Eric Newton said:

"I hate that there isn't a DirecTV receiver on a PCI card so I could record MPEG right off the bird."

-- i think that's because of Hollywood/"the Content providers"... they dont want bit-for-bit perfect copies floating all over, same reason TiVo's recorded streams are encrypted and have only recently been "hacked"

But once its hacked, its Digital TV the way its supposed to be... clear, watchable anytime, and so forth
# September 13, 2004 3:13 AM

Raj Das said:

Creating you own threads from a Web app/ASP.NET is a generally not a good idea (but possible) because of the non-deterministic nature of the number of threads that will be running. ASP.NET maintians a thread pool with a specified maximum for a reason, allowing an infinite number of threads to be running is a deterimental to performance and scalability. For example, an ASP.NET with a single page with 25 worker threads servicing N number of clients/requests will never have more than 25 threads running. If that page creates a single thread during its processing, than you will have N*2 (potentially) active threads. It is my understanding that when you creat a thread manually it does not come from the ASP.NET worker process thread pool.

This may be ok for your application, say 1000 users in geographically diverse locations - not all 1000 at a time. May even be ok if they all access the page simulataneously with sufficient hardware, but I don't consider having 2000 threads running on my server a good idea (in general). Take a look at the CPU performance counters to test the effects.
# September 14, 2004 2:07 PM

Jason Mauss said:

I think there's one more thing you did not mention.

I think that for many coders that understand "the business" - also understand there's much more $$ to be made by being an independant contractor/consultant than to be an employee. Thus, they go out on their own, start their own consulting practice, etc. rather than staying with those continually "looking for a job" whether it's at IBM, Microsoft or some lesser-known ISV.

Some coders are content being employees and likely won't ever grasp the importance of knowledge outside the realm of coding, databases, and what not. Then there are those that have career goals much higher than that, which is where you get book authors, successful consultants, conference speakers, ISV owners, IT management, etc.

it's probably just the difference between being an INTJ and an ENTJ, some might say.
# September 14, 2004 2:36 PM

Jeff said:

While I get what you're saying, generally speaking I'm talking about creating one thread via a Timer for the entire application, not individual new threads for each user.
# September 14, 2004 3:44 PM

AndrewSeven said:

In general, only if you are good will your own 6 month old code make you humble.

There are people who write code "the same" for years; the code they wrote today is of the same quality as the code from 6 months ago.
# September 14, 2004 10:12 PM

TrackBack said:

Will's Blog - Adventures of an IT Grad &raquo; Programmers with Business Smarts
# September 15, 2004 1:19 AM

secretGeek said:

Hi Jeff

that anonymous commenter above is a real freak. you could *seriously* consider putting the police onto him.

hmm. Anyway -- i wanted to suggest some book names.

i think "Intermediate ASP.NET" is not very appealing. As someone said "When you stand in the middle of the road you get hit by traffic on both sides"

A superlative term like "Master", "Power" "Hardcore" "Sexy" "Enriching" "Enriched" "Full Blown" "In Depth" or "Super" may be more effective.

The danger is that it will target the wrong audience -- but consider the psychology of the individual.

Even people who are at best "intermediate" would rather buy a book that proposes to make them a "master". No one says "Oh great! This book will take me from beginner to intermediate" -- there's no excitement in that. And no sales.

And people who already consider themselves a "master" will doubtless have lots to learn from your book.

Okay a lot of the suggestions I gave are *too* superlative -- but i think you could find adjectives that are interesting, provocative and ambitious without sounding as pompous as those is suggested.

best of luck -- hope it does well!
lb

# September 15, 2004 9:09 PM

TrackBack said:

# September 17, 2004 3:15 PM

Daren said:

Jeff, when is the "target release date of v2.0 beta 2" ?
# September 18, 2004 11:07 AM

Matt Spong said:

On my machine, Firefox stores its bookmarks in C:\Documents and Settings\$user\Application Data\Mozilla\Firefox\Profiles\default.bnt\bookmarks.html
# September 18, 2004 12:55 PM

Stefano Demiliani said:

The bookmark and all your profile is stored as default under C:\Documents and Settings\YourUserName\Application Data\Mozilla\Firefox\Profiles\
# September 18, 2004 12:55 PM

adamw said:

Firefox bookmarks are in C:\Documents and Settings\USERNAME\Application Data\Mozilla\Firefox\Profiles\PROFILENAME\bookmarks.html. If you backup, you might want to just take the entire Profiles folder, so history etc are also saved.

Now you've using firefox, I highly recommend both the Adblock extension, and mouse gestures extensions. Both of these can be obtained with the "Get More Extensions" link in Tools->Extensions.

Welcome to modern, crapware free browsing!
# September 18, 2004 1:29 PM

Dan Bright said:

[SystemVolume]:\Documents and Settings\[username]\Application Data\Mozilla\Firefox\Profiles\default.[3 random characters]\bookmarks.html
# September 18, 2004 1:49 PM

Cortex said:

C:\Documents and Settings\<<USER NAME>>\Application Data\Mozilla\Firefox\Profiles\default.9wo\bookmarks.html
# September 18, 2004 2:26 PM

Shannon J Hager said:

I am not totally sure about the bookmarks storage but there is a bookmarks.html and bookmarks.bak in C:\Documents and Settings\[Username]\Application Data\Mozilla\Firefox\Profiles\default.29h\

on my computer.

I don't think the browser wars are about hating MS nearly as much as about hating the time since the last good functional progress in IE. Web developers have to continuously make the choice between
1. making 2 (or more) versions of sites like when netscape pushed their proprietary tags onto the web world
2. write for the W3C standard, assuming that IE will one day make changes to support more of the W3C standard
3. write for IE, assume MS will never fix their W3C support

I don't like choices 1 or 3, so I split the difference between 1 & 2.

Tabbed browsing, etc, can be using with IE via programs like Maxthon, but for the most part, when you say "better browser", IE is not going to be at the top of the list, not for political or emotional reasons, but because it is the standard-bearer of 1999, the highwater mark 5 years ago, and (until the pop-up blocker in SP2), there has been no progress since then.
# September 18, 2004 3:07 PM

css said:

Try looking in:
C:\Documents and Settings\%username%\Application Data\Mozilla\Firefox\Profiles\%profile name%\bookmarks.html

You can also backup your bookmarks easily by going to Bookmarks > Manage Bookmarks > File > Export

Here are some of my favorite extension that you might want to check out:
AdBlock
http://update.mozilla.org/extensions/moreinfo.php?id=10

Download Manager Tweak
http://update.mozilla.org/extensions/moreinfo.php?id=256

Disable Targets for Downloads
http://update.mozilla.org/extensions/moreinfo.php?id=241&vid=635

User Agent Switcher
http://update.mozilla.org/extensions/moreinfo.php?id=59&vid=617

IEView
http://update.mozilla.org/extensions/moreinfo.php?id=35&vid=769

FirefoxView
http://update.mozilla.org/extensions/moreinfo.php?id=223&vid=618

BugMeNot
http://update.mozilla.org/extensions/moreinfo.php?id=64&vid=721

Single Window
http://update.mozilla.org/extensions/moreinfo.php?id=50&vid=673

Mozilla Calendar (since I don't run as admin and don't use Outlook, this is really convenient)
http://update.mozilla.org/extensions/moreinfo.php?id=208&vid=525

Java registration for Firefox
http://jdl.sun.com/update/1.4.2/j2re-1_4_2_05-windows-i586.xpi

Good resource: http://plugindoc.mozdev.org/faqs/firefox-windows.html
(you'll need to register flash and shockwave with Firefox if you want them)

Tips & Tricks
http://forums.mozillazine.org/viewtopic.php?t=113480

FAQ
http://forums.mozillazine.org/viewtopic.php?t=29534

I've been using Firefox since .8 and it only gets better and better with each release. I hope you enjoy your experience.
# September 18, 2004 3:35 PM

Bryce said:

Bookmarks are stored in the "bookmarks.html" file found in your Firefox profile directory (%homepath%\Application Data\Mozilla\Firefox\Profiles\{random dir}\)
# September 18, 2004 4:38 PM

Richard Tallent said:

No need to bother with where the bookmarks are at all. Just go to the Bookmark Manager (Bookmarks menu) and select File:Export to create an HTML file that can be imported again in the future if needed.
# September 19, 2004 7:44 PM

Jeff said:

I'm not going to do that every day to have it backed up automatically. What kind of sense would that make?
# September 19, 2004 9:32 PM

Jeff said:

They have a target date, but I don't think that's for public consumption. The only reason I know anything at all is because of publishing schedules.
# September 19, 2004 11:19 PM

Alex said:

Why does it take so long to produce a book?
# September 19, 2004 11:54 PM

Michael Russell said:

I never thought I'd do this, but in this case, I'm going to go to bat for Electronic Arts.

In the past, game developers would save their games to the installation directory, or a subdirectory of the installation directory.

This was good in that all of the related files for a program were in one place. However, it had one major flaw on NT-based architectures...it required the user to run as an Administrator.

As more and more people run as Limited users, game developers found they needed a space to save their data in such a way that Limited users could run the game without being an Admin.

They started using the per-user temporary file area for data caching rather than a subfolder in the game install directory, and started saving saved games to each user's "My Documents" folder. After all, for most Limited users, that is the ONLY non-locked down location on the entire computer.

In a game like "The Sims," where half of the appeal seems to be sharing what you have done with the world (at least when I look at the community, that's what I see), it makes sense to save the saved games there, rather than dump them in your Application Data folder.
# September 21, 2004 11:15 AM

Nebula said:

I would say it be a good idea to make document.onclick not count as a user action (since that is what they use), but then they would just attach it to other elements (or all elements) - bah, let's just face it, there is no perfect way to do this.
# September 24, 2004 6:36 PM

Jerry Pisk said:

They suck because Microsoft is designing their tools to be used by people who don't want to know what's going on under the covers. You design a web form by dragging your mouse, not by writing the code that would render it. That's how you end up with complicated pages using DataGrid, which populates the whole recordset into its own memory storage and generates tons of useless HTML and viewstate instead of using a simple repeater tied to a IDataReader, that would simply go through the recordset and dump a simple page. Microsoft just makes things so simple that almost nobody bothers to do things the right way. And those that do switch to different technologies, because sooner or later you will be in position of working with somebody who doesn't know what they're doing and you'll spend most of your time fixing their code.
# September 28, 2004 11:58 AM

Jeff said:

Uh... the ASP.NET forums and .Text are quite the opposite. They render stuff as custom controls.
# September 28, 2004 12:19 PM

Jerry Pisk said:

Where exactly can I download .Text so I can look at the code? The link on the weblogs.asp.net page (the one that says Powered by .Text) points to Scott Watermasysk's blog, with absolutely no mention of .Text, his link in the Links section of his site points to the same place.
# September 28, 2004 1:46 PM

Jeff said:

# September 28, 2004 2:02 PM

Nathan Maffeo said:

I think you were on the right track with the 'midset' or 'culture' idea. The microsoft design methodologies tend to imply that whenever possible you make your components expandable/modular. Doing this inheritly increases the 'complexity' of a project, though making it more powerful. That being said, I havent tried enough .net group projects to say if they rock or suck. I use .Text for my blog and that has worked for me pretty well. (I had to spend an about three hours getting everything working, but thats just because the doucmentation was out of date)

I definatly dont think the problem is lack of clever people - my guess would be that all our (.net) clever people are up to their necks in work already.
# September 28, 2004 2:57 PM

Jerry Pisk said:

It's exactly what I said - the home page is rendered using DataSet, which is a lot slower then simply iterating through a IDataReader. Instead of simply reading the data stream and rendering the output markup it builds up the whole resultset in the memory and then uses those temporary objects to render the output. I'm assuming the rest of the code is just like that, using the simplest, but usually the slowest possible way.
# September 28, 2004 3:18 PM

Paul Wilson said:

I agree that the complexity of the Forums, and things like IBS and DNN, is attrocious. They are "cool" pieces of code, but I value simplicity that works as intended much more personally.
# September 28, 2004 3:18 PM

Jonathan Bradshaw said:

If you haven't done so already, head over to http://www.avsforum.com/avs-vb/forumdisplay.php?s=&forumid=26 the HTPC forum at AVS for a wealth of HTPC knowledge.

Couple of recommendations, if you want the "Media Center" look, you can get it with Meedio with the theme at http://www.meedio.com/maid/detail.php?mode=detail&plugin_id={A291A2F0-711F-4F34-9A0A-7E11D2C5303F}

Also, the best HTPC DVD software out there is TheaterTek (http://www.theatertek.com/)

And if you are looking for silent fans, I've had really great sucess with SilenX (http://www.silenx.com/)

Good luck!
Jonathan
# September 28, 2004 8:16 PM

Jeff said:

I looked at all of that stuff. What I have works flawlessly, why would I want to buy something else?
# September 28, 2004 8:45 PM

Rob Howard said:

Ditto that. Having written a forum system too, I can relate to the RegEx pain threshold.
# September 29, 2004 5:29 PM

Scott McCulloch said:

I agree - it seems to be failing a lot over the last couple of days..
# September 29, 2004 8:32 PM

Rob Howard said:

We're doing some updates to the site very early Thursday morning (US). The same database server runs weblogs, blogs.msdn.com, dotnetnuke.com, www.asp.net, and www.asp.net/forums.

The RSS requests are really hammering the site and it's disk i/o bound. We're moving weblogs to its own raid 0 controller and drive array. Hopefully this problem will be better by tomorrow. We'll be adding a new db server very soon.
# September 29, 2004 9:12 PM

Jeff said:

Aren't the RSS feeds cached some ridiculous amount?

Seems kind of odd that these would all share the same DB when SQL licenses are free for Microsoft.
# September 29, 2004 10:58 PM

Rob Howard said:

FWIW, update on this -- problem solved. Somehow a clustered index was dropped on a table used by the blogs.
# September 29, 2004 11:33 PM

Jason Hutmeier said:

The performance on the forums and blogs has gone AWOL ever since they left the ASP.NET fold. What a great advertisement for Microsoft technologies and the .NET community.
# September 29, 2004 11:40 PM

Rob Howard said:

> The performance on the forums and blogs has gone AWOL
That is about to be fixed. We've been working with Microsoft on a strategy for us to help run the sites again. That was one of my 'part time' jobs when i was on the Microsoft team. We just ordered another DB too...

Part of the problem has been the unbelievable popularity of the blogs, specifically the msdn blogs. The bandwidth usage alone jumped from about 300GB to 1.3TB in the past 6 months. Considering that www.asp.net, blogs.msdn.com, weblogs.asp.net, www.dotnetnuke.com (and about 5 other sites) all run on 2 web servers and 1 db server I think it held up pretty good :)
# September 29, 2004 11:58 PM

Jeff said:

One of my sites actually drew more traffic at one time? Huh.

I take it this stuff is well outside of the Microsoft.com fold then, eh? Bandwidth is no longer an issue for me (using ServerMatrix.com). Heck, CPU usage isn't a big deal yet either. It would be a good problem to have in terms of revenue if I did.
# September 30, 2004 12:09 AM

Douglas Reilly said:

It really does seem to be better as of now (10:27 AM ET on Thursday). Certainly the extra database server can't help but be a good thing.
# September 30, 2004 10:28 AM

TrackBack said:

# October 3, 2004 7:46 PM

Jay Glynn said:

Just wait until you see it for the first time in your favorite bookstore. I actually saw someone buy one of mine in a Barnes & Noble once. It was a real kick.

Don't worry about the reviews. Read what they say, take the good with the bad and try to learn what you can do to improve yourself for the next time. Nobody understands how hard this is to do and so it's very easy for them to say that this sucks or that sucks etc.

Good luck
# October 4, 2004 1:46 PM

denny said:

I think Ipswitch has not done too great in the spam area... to hard to run the server and get it to work the way you want it.

for my personal domain I am using LumiSoft's email and Outlook 2003 + Spambayes for Outlook. works for me.

http://www.lumisoft.ee/lsWWW/ENG/Products/Mail_Server/mail_index_eng.aspx?type=info

free and open source and .net !!
# October 4, 2004 2:05 PM

Sahil Malik said:

I just finished a book too, and to tell you the truth, my book was listed when I was on chapter #8 of 15. You could pre-order it back then.

Just do your best job, remember one thing - writing a book is a shitload of work and takes a lot of discipline and knowledge. The fact that you did even write one is better than not writing one. Just give it your best shot.

I just finished mine and I am anxious to start another one soon. It's been a rewarding experience.
# October 4, 2004 2:22 PM

Jeff said:

To put it more in context... here's the entire sproc:


CREATE PROCEDURE PagedTopics
(
@StartRow int,
@PageSize int,
@ForumID int,
@Total int OUTPUT
)

AS

DECLARE @PK int
DECLARE @tblPK TABLE
(
PK int NOT NULL PRIMARY KEY
)

DECLARE PagingCursor CURSOR DYNAMIC READ_ONLY FOR
SELECT TopicID FROM Topics WHERE ForumID = @ForumID ORDER BY Pinned DESC, LastPostTime DESC

OPEN PagingCursor
FETCH RELATIVE @StartRow FROM PagingCursor INTO @PK

WHILE @PageSize > 0 AND @@FETCH_STATUS = 0
BEGIN
INSERT INTO @tblPK (PK) VALUES (@PK)
FETCH NEXT FROM PagingCursor INTO @PK
SET @PageSize = @PageSize - 1
END

SET @Total = @@CURSOR_ROWS

CLOSE PagingCursor
DEALLOCATE PagingCursor

SELECT * FROM Topics JOIN @tblPK t ON Topics.TopicID = t.PK
ORDER BY LastPostTime DESC
GO
# October 4, 2004 10:51 PM

Rob Howard said:

Thanks for the heads up -- we're looking into this.
# October 4, 2004 10:56 PM

Jim Hughes said:

You can't order by a bit field, you need to change the table definition to an int and use 0 and -1

I always avoid use of bit fields because of their strange behavior. Many other databases don't support the use of a bit field.

They are a legacy from the Sybase days when disk space was at a premium
# October 4, 2004 11:25 PM

Jerry Pisk said:

Jim, why can't one order by a bit field? It seems to be true but I was wondering if it's actually documented somewhere, because the ORDER BY clause of a SELECT statement only says that you can't order by ntext, text or image data. Nothing about a bit.

I like to use the bit field for columns that are three state (on, off or unknown), they're nicer to work with than integer data, as they're always 0 or 1 (or NULL), not 0 or a non-zero value (1, -1, and so on). And they're faster than an int column with a check constraint.
# October 4, 2004 11:31 PM

Darshan Singh said:

I can't find anywhere documented that sorting on bit will not work. I tried it in SQL 2000 and 2005 and seems to work.

if object_id('tblTest') is not null
begin
drop table tblTest;
end

create table tblTest
(col1 int identity(1,1) not null primary key,
col2 bit not null default 0);
go

insert into tblTest default values;
insert into tblTest values (1);
insert into tblTest default values;
insert into tblTest values (1);
insert into tblTest default values;
insert into tblTest values (1);
go

select * from tblTest;
go

select * from tblTest order by col2 DESC;
go

DECLARE @PK int;
DECLARE @BF int;
DECLARE PagingCursor CURSOR DYNAMIC READ_ONLY FOR
SELECT col1, col2 FROM tblTest ORDER BY col2 DESC;

OPEN PagingCursor;
FETCH RELATIVE 2 FROM PagingCursor INTO @PK, @BF;

WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @PK, @BF;
FETCH NEXT FROM PagingCursor INTO @PK, @BF;
END
CLOSE PagingCursor;
DEALLOCATE PagingCursor;


Jeff, what's the exact SQL Server build version you are working with?
# October 5, 2004 12:38 AM

Jim Hughes said:

I may very well be incorrect in my original statment.

I do know that I have had nothing but problems in using bit fields. Specifically Group By does not work properly.

Some info at http://www.ssw.com.au/SSW/Standards/Rules/RulestoBetterSQLServerdatabases.aspx FAQ 203

Access and SQL Server handle bit fields differently.

Are you using SQLAdapter or OLEDBAdapter?

# October 5, 2004 1:38 AM

Jim Hughes said:

Update Topics
set Pinned = 0
where Pinned Is Null

Change the Topics table def to define a default value 0 for Pinned and also state that the field cannot be Null.

Then try it again.

I still recommened that you avoid bit fields! They are not an ANSI standard.
# October 5, 2004 1:59 AM

Paul said:

# October 5, 2004 2:07 AM

Marc Hoeppner said:

Hi there,

with regards to the codeproject articel you mentioned: From my/our experiences here, a CURSOR is about the worst performing method for large sets. The fastest method still is that method which the author so easily discarded and didn't even bother to test.

Best regards,

Marc
# October 5, 2004 2:58 AM

TrackBack said:

# October 5, 2004 2:36 PM

TrackBack said:

# October 6, 2004 12:37 AM

Nat said:

To spur a little bit more, BIT data type somehow was in SQL-99 Standard as Boolean :D
# October 6, 2004 7:28 AM

- said:


You can't, probably because, you have URLScan turned on in IIS 5.0.
# October 6, 2004 2:47 PM

scott said:

It is actually very different from the worm vulnerabilities in that it doesn't allow execution of maliciously uploaded code. As such, it is not wormable.

It is, though, still a bad bug.
# October 6, 2004 3:01 PM

Anonymous said:

Urlscan now. Another fix is coming soon.
# October 6, 2004 3:02 PM

John Alkin said:

"Can't believe no one caught that."

...and we can't believe you didn't catch it. After all, it's not our code. Or, did you think that we all work for you?

"Should we avoid using the CLR in SQL 2005 too? It's not ANSI standard. "

It's all relative my friend. There are times when you might want to stick with the ANSI standard. Never say never, so advising someone to never sort on a bit field is short-sighted. However, saying that ignoring ANSI standards is perfectly OK just because SQL 2005 does is equally as absurd. Everything in it's context.
# October 6, 2004 4:45 PM

Jeff said:

Relax dude... why are you taking it personally? No one said ignoring ANSI standards are OK.
# October 6, 2004 7:00 PM

Jeff said:

I'm actually using IIS6... is it not affected?
# October 6, 2004 7:02 PM

Phil Shulkind said:

I agree, it's absurd that you cannot choose your own location for these files. I run a small C drive on my system and this causes big problems
# October 10, 2004 1:48 PM

noname said:

Sims 2 can ONLY be run as admin, so it was written by amateurs
# October 10, 2004 3:43 PM

TrackBack said:

# October 10, 2004 10:54 PM

TrackBack said:

# October 13, 2004 11:10 AM

TrackBack said:

# October 15, 2004 11:44 AM

Nathan Maffeo said:

Windows didn't atuomatically detect/install the appropriate ethernet drivers? Weird. Always has worked for me.

# October 15, 2004 12:10 PM

Roy Green said:

I'm surprised that it locked you down immediately. I upgraded a machine a couple of weeks ago, and XP announced that I had three days to reactivate, thereby allowing me to get the machine configured how I wanted it (and get it set up on the network).
# October 15, 2004 12:25 PM

Jerry Pisk said:

I had the same problem. Upgraded my box, Windows said I have three days to activate, so I logged in, it asked to reboot so I rebooted and that was it. Next time it started it said it had to be activated or else. No more three days. And no, it didn't find the ethernet drivers on its own (Intel PRO/1000 CT).
# October 15, 2004 1:05 PM

dJ phuturecybersonique said:

# October 16, 2004 5:49 PM

Ron Buckton said:

FreeTextBox and RichTextBox both provide rich text editing in FireFox. I also have a RichTextEditor in the .NET web app framework I put together for my consulting company Chronicles Design.
# October 16, 2004 6:22 PM

Richard Tallent said:

Firefox supports the same "contenteditable=true" attribute and most of the same JavaScript methods for programmatic bold, italics, etc. I use a free solution, HtmlArea 3.0b, in my ASP.NET apps (http://www.interactivetools.com/iforum/P15734/).
# October 17, 2004 3:17 AM

garyo said:

Actually, I have my my docs folder on my D drive and that's where it puts it.
# October 17, 2004 11:19 AM

TrackBack said:

# October 18, 2004 9:18 AM

Jim Bolla said:

Thats pretty crappy programming indeed. My laptop came w/ Norton Antivirus, but after 2 months it wanted me to "renew my subscription" which would frequire forking over some cash. I think its lame that new PCs are being bundled with shareware that expirers after a short period of time. So I insalled that POS and downloaded AVG free edition. The UI isn't the prettiest, but it's not like I'm hanging out in my AV software all day.
# October 18, 2004 10:48 AM

Steve Hall said:

That's just one chink in their armor. Their installers are chock-full of bugs that have been around for 7-8 years, ever since they bought Central Point Software (whose installers were pretty bug-free).

The other really BAD noticable installer "feature" is try changing the target install folder to something other than "C:\Program Files\Norton AntiVirus" to what it should be: "C:\Program Files\Symantec\Norton AntiVirus". The install script has a ridiculous character max. on the folder name that prevents this. (Note that installing products under "Program Files" and not under a "Program Files\<companyname>" folder should be considered poor practice in the design of an installer. Microsoft violates this good app. design rule with many of their products as well.)

I could list at least another dozen obvious bugs that their "install whip" simply refuses to fix or is in denial about. Probably the worst is the failure of the install script to properly log all registry changes during install such that the uninstall will properly/correctly remove or change them back upon uninstall. There should be absolutely NO REASON why they've had to produce special uninstallers for their products...most which do nothing but attempt to restore the registry back to "pre-Norton-whatever" state (but CAN NOT POSSIBLY DO SO in a transacted fashion, since they do NOT use the install log to determine what was changed in the registry!). Probably the cause for this mess is their reliance on completely scripted install packages, rather than using an MSI-based install package (in which case, the registry changes would get correctly undone during a transacted uninstall).

It's too bad their products are the best of breed, but just suffer integration & installation problems. At every company I've ever been at, this has always been the greatest weakness: integration, system-testing, documentation, installation tools, and release tools ...i.e., the last 10% of the project, companies just tend to fall over themselves trying to kick the crap out the door! And then, usually assign junior programmers to do the finishing steps. Even though the Symantec products all contain at least one or more device drivers, these kind of bugs in the installers makes me believe they've assigned writing the installers to junior's that have not had any device driver authoring experience...and thus SHOULD NOT be in charge with creating an installer! Most companies that distirbute device drivers don't seem to grasp this lack of domain expertise problem with installers...since authoring installers has always been seen by a lot of software developers a crappy job.

If cars were made this way (e.g., oops! we put the wrong size tires on it!), you'd bet there'd be consumer backlash against it. But us stupid consumers did NOTHING when Symantec turned themselves into a monopoly when they bought Central Point Software, so we now reap what we sowed!
# October 18, 2004 10:50 AM

Randy Ridge said:

Yeah, this sucks, I had thought my install was borked. NAV 2004 did not do this, I do remember that SourceGear's Vault used to do something similar as well, fortunately they fixed it. Unfortunately, Symantec's not SourceGear and their 'solutions' (http://service1.symantec.com/SUPPORT/nav.nsf/5faa3ca6df6f549888256edd0061c0a4/fc096f3adb76b4d388256f08006d038b?OpenDocument&src=bar_sch_nam) are less than ideal.
# October 18, 2004 10:53 AM

du8die said:

Thank You.

I have absolutely no formal training in programming. (Nor do I want any.) I've just launched my first ASP.NET app, and while I'm no expert, it works. I have been frustrated by the lack of decent material for beginners. There are few (if any) good resources (books, sites) for beginning programmers. So, where do we go?

I've been forced to dig through forums and get what I can out of them. I wish authors would, as you have said, slow down and realize that a large group of us wouldn't know what a HTTPHandler, and no matter how many times they tell us "all you have to do is throw a HTTPHandler at it", we still don't know what they're talking about.

My current project involves responding to eBay SOAP messages. eBay doesn't document it well, there is no documentation (that I can find) anywhere on the web. Sure, I can respond to SOAP calls through ASP.Net and a web service, but how do I set up one to respond to an eBay message? No docs, no samples, no help.

I agree that there is a vastly overlooked market of "beginners". I'm part of it.

Oh Well.

</rant>
# October 20, 2004 12:24 AM

Andrey Skvortsov said:

Look at:
public static string Replace(
string input,
string pattern,
string replacement,
RegexOptions options
);
# October 20, 2004 11:41 AM

Andrey Skvortsov said:

Sorry,doc error "string replacement," is "MatchEvaluator evaluator,"
# October 20, 2004 11:42 AM

Alain Tésio said:

You can concatenate the string, just be careful to escape characters with have a specific meaning for regular expressions:
pattern = String.Format("(blah)(%s)(blah3)",Regex.Escape(somethingDunamicallyGenerated"));
# October 20, 2004 1:14 PM

Ron Krauter said:


Are there remnants? Absolutely. We have ipsec over all sql ports because of this.
# October 21, 2004 11:11 PM

Addy Santo said:

Remnants? Are you kidding? Dig up an old unpatched version, stick it outside the firewall and start counting down the seconds...

# October 22, 2004 1:55 AM

Jon Galloway said:

Agree, Jeff. Many web developers (myself included) have technical backgrounds, but found our way into this relatively new field as a second or third career.

Case in point is a recent book I read by Dino Esposito. Now, Dino is one of my favorite authors, but this book was way over my head as I was first learning ASP.NET. It assumed way too much. Now that I'm strip-searching System.Web with Reflector and have a very good feel for the ASP.NET pipeline, Dino's book makes a lot of sense, but a paragraph or two of introduction to most of the chapters would have helped things.
# October 23, 2004 1:26 AM

Jon Galloway said:

Jeff -
Dunno if you got this working yet. Andrey's comment on the MatchEvaluator is the way to go if you're doing something dynamic based on your regex match. I've used this in altering HTML refrences and it's worked well. Each match calls into the MatchEvaluator delegate which can do just about anything.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtextregularexpressionsregexclassreplacetopic5.asp

- Jon
# October 23, 2004 5:51 AM

Eric Newton said:

match evaluator is the way to go, i've used it several times
# October 25, 2004 3:14 PM

Dean Harding said:

Unfortunately, there's nothing you can do. Regular expressions are not able to match balanced expressions (e.g. things like matching braces, or matching HTML tags). You can do what you've got there, which is make it so that it supports only one set of nested elements, or multiple sets of non-nested elements (by using (.*?) as your "meat" - i.e. a non-greedy search) but without some wacky extension to the regular expression grammer itself, you can't have the best of both worlds.

I think the best thing you can do is structure your forums so that you can simply replace all [quote] text with a single construct, and all [/quote] with a single construct - i.e. don't rely on them being matched together. Then you can perhaps put some custom logic in to make sure there's an equal number of [quote] and [/quote] tags.

For example, if you simply replace all instances of [quote] with <blockquote> and all instances of [/quote] with </blockquote>, then (apart from validating the input) you don't really need to know that it's all matched properly.
# October 25, 2004 10:41 PM

Wes said:

Try:
(\[quote\])(.*?)(\[/quote\])

From msdn:
*? - Specifies the first match that consumes as few repeats as possible (equivalent to lazy *).
# October 25, 2004 10:44 PM

Jeff said:

I do that for all of the non-block elements, but it's a lot harder to do it with block elements like this one, and p tags (which come from line breaks).
# October 25, 2004 10:45 PM

Jeff said:

Wes: That breaks the nesting. It grabs the inner-most [/quote] instead of the outside one.
# October 25, 2004 10:49 PM

Dean Harding said:

Holy crap!

I did a bit more research, and it seems Microsoft did add methods for matching nested constructs! Go Microsoft!!

There's a chapter in "Mastering Regular Expressions" (http://www.amazon.co.uk/exec/obidos/ASIN/0596002890/026-9448710-1434859) on how to do it. Luckily, O'Reily have made the chapter in question available for download from: http://www.oreilly.com/catalog/regex2/chapter/ch09.pdf - see the "Matching Nested Constructs" section.

There are some proposed extensions to Perl to allow for similar constructors (see, for example: http://www.puffinry.freeserve.co.uk/regex-extension.html) but they're not in perl per-se yet.
# October 25, 2004 11:00 PM

Wes said:

I have been looking at this expression from Ch9 of the book Dean mentioned above. With this expression syntax you can match nested items but I think it is still greedy. I'm not sure we can do what you want with .Net regular expressions.
# October 25, 2004 11:15 PM

Dean Harding said:

It should work because it only matches *balanced* expressions. So for example, if you have (assuming we're matching parenthases here):

(The (quick) brown fox) jumped (over the (lazy dog))

You'll get two matches:

(The (quick) brown fox)
and
(over the (lazy dog))

Which is what Jeff wants...
# October 28, 2004 1:30 AM

Ali said:

my iTunes stopped working as well. at first i thought all i needed was the windows service pack 2 update. got that but it still stops working.
# October 31, 2004 2:27 AM

Wes said:

Dean you are correct. Matching ()'s is a little different then matching [quote][/quote] but not much harder, just takes a little different angle. After examining more closely I was able to figure out how to do what Jeff wants.

Jeff if you are still interested try:
(?:\[quote\])(?<quote>(?>(?:\[quote\])(?<DEPTH>)|(?:\[/quote\])(?<-DEPTH>)|.)+)(?(DEPTH)(?!))(?:\[/quote\])

Test string:
[quote]quote 1 [quote]quote 2[/quote] after quote 2[/quote][quote]quote 2[/quote]

Matches
1) [quote]quote 1 [quote]quote 2[/quote] after quote 2[/quote]
"quote" 1) quote 1 [quote]quote 2[/quote] after quote 2

2)[quote]quote 2[/quote]
"quote" 2) quote 2

I believe that is what you were after Jeff.
# November 1, 2004 12:23 AM

rick said:

# November 9, 2004 6:21 PM

pieter@psh.co.za (Pieter Jansen van Vuuren) said:

Nice tools, I think most programmers are seen as designers by most people, not that it is true, but for most people, if they hear you work on computers they think you are a network administrator/pc technician/technical support/programmer/designer/all round pc guru! :D
# November 10, 2004 2:06 AM

Frans Bouma said:

" Do you often pull double duty as a designer?"
A graphic designer you mean? Sure. It's great to do that when coding gets too boring ;). However it's hard to find a developer who is also a great graphic designer, most developers deliver 'Programmer Art', which is erm... not good :)
# November 10, 2004 5:03 AM

N Meister said:

Yes, I will admit it - I am a graphic designer who delves into programming. Probably I am not great a programmer. I think they are two conflicting trains of thought. Design is free-thought and creative - programming is ultra-structured.

There are designers whose sites suck because the programming is bad - and there are programmers whose sites suck because the design is bad.

Let's face it - we need each other
# November 10, 2004 8:15 AM

Cracksquirrel said:

I program and design. I feel that I do very well at both. It all really depends on what you are inspired by. Great functioning code excites me just as much as fresh clean graphics do. I am an artist at heart. Before even touching computers I was an artist. After finding my way into the technical industry, I grew a fascination with coding. For me to be able to meld the two and be successful at it is only a testament to being able to work independently. Sometimes I think designers don't like the structure of programming and are put off by the vast knowledge needed to be a good programmer. Just the same on the other side, programmers seem to either get frustrated with graphics and the time it takes to create vibrant exciting images or feel they are above "design" because they are the true logic behind the web page.
# November 10, 2004 1:38 PM

J.E.F. Manansala said:

It is good to know that a person can multi-tasks and is a multi-skilled person. Only being a one man army for any kind of professional project does not fit very well. A prorgammer must stay as a programmer and a designer must stay as a designer. If only one man do both at the same time; design and implementation including database and server management not to mention maintenance and marketing, you've read my mind... "It does not go very well."

It's good to be both a programmer and a designer (vice versa) at the same time, only it must not be applied to one project alone. A pogrammer needs a designer and a designer needs a programmer. You must not be both. "There will always be something missing, or something wrong."

If you disagree, your skills have already deceived you. Either way, this is just a slap of fact.

By the way, I'm talking about the big ol' volatile database driven and resource hogging for both workforce and solution sites.
# November 10, 2004 11:02 PM

Brian Richards said:

The war of the left brain and the right brain can often be a frustrating one. I spent 3 years as a CS major in engineering school and 3 years as a Computer Art major in art school. It's definitely nice to be able to do both the design and development sides of the house. But it's often frustrating when people expect you to be able to turn on a dime from one to the other. It's sometimes hard for me to just switch gears. Both sides take practice to maintain an adequate level of quality (probably the art side a little more than the programming). I often get told to stop what I'm coding and go off and design something real quick. Which can definitely lead to frustration.

I completely agree with the feeling like it's all been done. I run into that feeling with much of my work. I use the Color Scheme Generator alot, but another trick I use is photos. If there is going to be a photo in the design, steal the entire color palette from the picture. Use the PhotoShop eyedropper to pull out some good contrasting colors and let the picture pull the design together. It usually works pretty well.
# November 11, 2004 8:52 AM

Ryan said:

This happened to me just today:

I work for a web development company. I write PHP, MySQL, CSS, and XHTML. The graphics are done by a really good graphics guy... as it should be. When I first layout a site in CSS I don't know what colors the designer wants so I make some up. I try using those online color picker tools, but the end product still isn't that great.

So today my boss was talking to the graphics guy on the phone and pointed him to one of the styles I created. The guy's response was "is that header SUPPOSED to be that color?" My boss responded "Ryan's a good programmer, but is about as colorblind as they come" or something like that. I don't remember exactly. Seriously, I'm not colorblind, but making things look pretty is not what I do best.
# November 11, 2004 7:02 PM

Ryan said:

I don't know how I managed to put my e-mail in the "Url" field. Doh!

So this comment isn't useless: I have yet to meet a good designer who is also really good at programming. I would love to see the work of someone who claims to be good at both. If they are excellent at both congrats!
# November 11, 2004 7:31 PM

TrackBack said:

Ryanware Blog &raquo; On programmers as designers
# November 11, 2004 7:48 PM

Dave said:

As I train my replacement(S) 3 to my 1. I can't help but feel that this will be the normal treatment of US programmers. I will be in the market for a new job soon. Give me 1 month of unemployment and I will be chomping at the bit to work for EA. I have 2 kids to take care of.

Thanks.
# November 12, 2004 11:40 AM

Jeff said:

Move here to Northeast Ohio. Plenty of jobs to go around. Cost of living is lower here and it's a worker's market.
# November 12, 2004 1:16 PM

Aviv Raff said:

That's because IE is a better target for spywares (with over 90% of market share), and not because it's less secured.
Firefox has enough vulnerabilities to exploit:
http://www.mozilla.org/projects/security/known-vulnerabilities.html
# November 12, 2004 2:06 PM

Jeff said:

That's a predictable response, and a cop out. If you have that kind of market dominance, you then have the responsibility to make secure software.
# November 12, 2004 2:35 PM

Jerry Pisk said:

Well, the first line is not standard HTML, so what did you expect? An HTML DOCTYPE must contain the DTD: "HTML 4.01 specifies three DTDs, so authors must include one of the following document type declarations in their documents.".

Funny that you get annoyed by IE behaving properly ;)
# November 12, 2004 9:21 PM

Jeff said:

The point was that it doesn't follow standards by default.
# November 12, 2004 10:30 PM

Jerry Pisk said:

I see, but I think that when you give a browser something that is not a standard HTML all gloves are off and it's free to do whatever it wants. Just look at Mozilla, if you argue using something that does not comply with the standards, the developers won't even talk to you :) The real problem would be if IE would not follow standards when you gave it standard HTML…
# November 13, 2004 1:08 AM

Jeff said:

Sorry, Jerry, but it does validate on the W3C validator, which is precisely the reason I would've never thought anything of it previously (it's the default generated by VS, so it's in every page).
# November 13, 2004 9:49 AM

Brent said:

It shouldn't do standards by default. If you don't give a proper DTD, how should it know what standard to render as?

Old pages then render using the quirks they expect, and new standards-compliant pages (which must have a proper DTD) will get rendered appropriately (mostly... heh).

All browsers do this to some extent, even Mozilla.
# November 13, 2004 9:50 AM

Jeff said:

That doesn't make a bit of sense. "Unless I specifically tell you, don't render valid HTML and CSS. Render flowers or cats or toasters or something!" In this case, it's, "Render something we didn't get right the first time, instead of a standard, any standard from the past six years."
# November 13, 2004 10:15 AM

Jeff said:

More on a possible class action:

http://news.com.com/2100-1043_3-5450316.html
# November 13, 2004 10:57 AM

Joe Cernelli said:

*mourn* Are the people at Comcast completely brain dead or what? I can't believe how out of touch they are...I long for the days of TechTV, or even ZDTV for that matter. :(
# November 13, 2004 12:27 PM

Denny said:

G4-TechTV is DOA

it was like a frontal lobotomy on TV.

Good Greef will they *PLEASE* just drop it altogether!

just shutdown and be done with it.
# November 13, 2004 4:46 PM

foobar said:

The problem was that at the time, the W3C was still coming up with the standards. MS wanted to release IE5, so they guessed on some of the standards. They got some right, and some wrong - in particular to the way margins and padding worked. So, MS came up with the whole quirks and standards modes. The reason that quirks mode is the default is that many sites use the MS way of padding and margins - after all, it took forever for the W3C to decide, and even now, XHTML is hardly realistic - why, for instance, can't tables have a height?
# November 13, 2004 11:50 PM

Reason said:

Nothing is worse than commercialization in the information community and G4-TechTv is its poster child.

Mindless action of game play is more rewarding to American corporations than individual expression and cooperative development in the information community.

With this as an example, it is easy to understand why the USA is hated by most of the planet.

Mindless, self-involved consumers
# November 14, 2004 2:47 PM

Charles S said:

I think it's time to just forget G4TechTV and promote the concept of a tech network devoted to the intelligent side of the industry. This utopia would feature computer help shows like Call For Help and what The Screensavers used to be, a program with the same premise as Fresh Gear, a tech-oriented news show (maybe not so much like TechLive was, but informative nonetheless), sure, a gaming review show or two, and showcase programs about technology not necessarily limited to computers. I know this is possible, and if billion-dollar corporations would project their assets toward loftier goals rather than targeting the lowest IQ (which is unfortunately a very wide consumer bracket) to maximize their income, we as a tech community could benefit greatly. ~To the future of humankind...
# November 16, 2004 2:58 AM

Shane said:

Sadly we in Canada are still waiting for the opportunity..
# November 16, 2004 2:33 PM

Walt said:

Looking for an answer to a problem printing DataGrids, I come across Jeff's blog (funny how clicking on one link leads to another). Let me jump in:

"I have yet to meet a good designer who is also really good at programming."

I'm working on it. :) I'm actually the other way around. I'm stronger with design, but I can hold my own with development. I'm certainly no Jeff Putz and no one is going mistake me as a guru, but I've done fairly heavy work on the code end of things (including working solo on a large membership reporting project at work).

It's a competitive world and I'm working to separate myself as someone who is more than comfortable on both sides of the ball. Maybe I should pick one, but I don't have that luxury in a one person shop.
# November 16, 2004 2:35 PM

Ray Sotkiewicz said:

I predict a MAC in SB's future... Not familiar with the OS, 1 mouse button instead of 43, hilarity ensues.

A Strongbad fan to the moon!

Ray
# November 16, 2004 11:33 PM

Jason Olson said:

THAT IS NOT A SMALL NUMBER!

hehe

What a great clip. I'm definitely a Strong Bad fan.
# November 17, 2004 2:07 AM

Derick Bailey said:

NNNOOOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!! NOT COMPY!!!!!!!

"Like Used", "Slightly Shotgunned". :D

Strong Bad is da man... but StrongSad is my MSN IM Icon. :)
# November 17, 2004 12:06 PM

Wallym said:

Hmmm, I think there is a lot of hype that I am hearing. Also realistic expectations are also being set so that folks understand what is and is not right around the corner. :-)

I think there will be no end to the Whidbey talk by the start of Spring next year.

Wally
# November 17, 2004 12:20 PM

bilbo said:


much of the hype fizzles when were told something will be released and then it gets pushed back, over and over and over again and again and again

been waitin' for sql2005 for the longest time
# November 17, 2004 12:36 PM

Steve said:

its like a movie:

All the hype: "its getting scripted", "we're casting", etc

then the movie silently and under the radar gets made

the the roller coaster goes back up close to release


and i am not sure what blogs you track, but i see plenty of daily talk about it and its new features.......
# November 17, 2004 1:13 PM

TrackBack said:

# November 17, 2004 5:31 PM

Jesse said:

That station has gone downhill ever since Ziff Davis sold it... I used to be a devoted fan, but I only ever watch once in a great while because I can't stand it...
# November 20, 2004 4:47 PM

TrackBack said:

# November 22, 2004 11:18 AM

TrackBack said:

# November 22, 2004 11:18 AM

Bob said:

FLAGRENT SYSTEM ERROR

COMPUTER OVER
VIRUS=VERY YES
# November 22, 2004 4:55 PM

Dean Harding said:

Hey man, lets give credit where it's due. Wes may have posted the exact regex you want, but I did all the research to find the link to the article where he got it from!

I'm not saying he didn't contribute, he did a great job making the regex I linked to work with more than a single-character "bracket" but it wasn't exactly revolutionary... a bit of work with regex workbench would have been all it took.

I'm not usually one to make a fuss about such things, but I just think I deserve some credit, too...
# November 22, 2004 6:34 PM

Jeff said:

His solution, the working solution, was arrived at via an e-mail exchange, not the posts here.
# November 22, 2004 7:07 PM

Strong Bad said:

I doh duh duo crapfully youuuuuuurs.... :'(
# November 23, 2004 10:00 AM

Strong Sam said:

YOU KILLED MY BROTHER...I mean...COMPUTER!!
# November 23, 2004 10:02 AM

domovoi said:

\s+[^:\s]*\@[^\s]*
# November 23, 2004 4:45 PM

Drew Marsh said:

(?<=\s)(?<email>(?<user>[\w\-\.]*)@(?<domain>([\w\-])+(\.[\w\-]+)+))

NOTE: You can pull the groups out of there if you're not interested in explicitly capturing them.
# November 23, 2004 7:09 PM

Jeff said:

Both of these seem to work... unless the address is at the start of a line.
# November 23, 2004 9:28 PM

Andrew said:

I don't think he'll get a Mac -- he once complained it had too much computer and not enough typewriter.

http://www.homestarrunner.com/sbemail34.html
# November 23, 2004 10:45 PM

that guy said:


look, Strongbad, my mouth was a broken d-pad. i had no choice.

R.I.P. Compy
# November 24, 2004 8:07 PM

Sean said:

Did you get a virus?

Umm...no.

Did you get 400,000 viruses?

Yes....very yes!
# November 24, 2004 8:10 PM

Strong Rad said:


It's in a better place now....rather, it's in the same place with a huge hole in it!
# November 24, 2004 8:11 PM

Drew Marsh said:

Sorry, I was just using your sample. No problem on beginning of line though. I actually bached the last one a little anyway, so here goes.

(?<email>(?<=\s|^)(?<user>[\w\.\-_']+)@(?<domain>([\w\-]+\.)+[\w\-]+))

# November 24, 2004 10:48 PM

Jeff said:

OK, I obviously don't give you enough test conditions to work with, but I also need to detect it within <p> tags, i.e., it should find the address in:

<p>test@test.com</p>

I assume that means changing something in that first group?
# November 25, 2004 1:54 PM

Jeff said:

Actually, scratch that... I think my logic is all out of order.
# November 25, 2004 1:58 PM

Jeff said:

Grrrr... I keep discovering that my test coverage isn't good enough to catch what I'm really after. It should still match:

[i]test@test.com[/i]

but not:

[url="mailto:test@test.com"]test@test.com[/url]
# November 26, 2004 1:23 PM

TrackBack said:

# November 29, 2004 9:47 PM

Bob said:

I hated apple - macintosh- every since elementry school days when that was all we had to work with. Now though comcast they are well on there way to destorying the best aspects of tech television. First leo and call for help now they fire nearly all of g4techtvs' talent. Well that was what they wanted to do in the end, jelousy is a powerful motivater. All I can now hope for is that, perhaps the true talent (techtv) would all leave and try to relaunch a new channel. If you at first don't succed try try again. Then again I won't be be doing any of the hard work so who the hell am I to say anything.
By the way what the hell is that crap that airs on g4!
Also I have never before seen, well to be honest, a load of talentless humanbeings on tv before (G4)
# December 1, 2004 2:19 AM

Scott Galloway said:

You might find this site useful: http://www.positioniseverything.net/explorer.html
Covers the main bugs with IE's CSS implementation - I agree though that it's way past due time for these bugs to be fixed, the 'breaks other implemntations' argument just doesn't cut it as a rationale for not fixing CSS bugs...
# December 1, 2004 4:30 AM

John Mandia said:

Hi Scott,

Try this:

http://sourceforge.net/projects/ie7/

It should help you out.

John
# December 1, 2004 4:56 AM

Sudhakar said:

I can join you jeff :-)

I really dont love FF, but IE is pushing me to love it, what should i do? I love you FireFox :-(
# December 1, 2004 7:37 AM

weston weems said:

Not that you should HAVE to do it, but I've experienced this very same thing, and after futzing around with it for ages I found the problem...

Block elements with no position attribute, dont render backgrounds or background colors properly (seems like it doesnt render text properly either)

I simple added position:relative; and it seems to have cleared my css problems up.

but yes, ie does suck.
# December 1, 2004 11:15 AM

peta said:

My favorite program on TechTV is Anime Unleashed. But they put it on at 12am. With the return of Last Exile I really don't understand why they couln't have aired it at a better hour for people who have to work for a living. I'm surprised that their advertisers don't complain since it's so popular. I used to enjoy this channel when it first aired but now, frankly, it's boring.
# December 1, 2004 1:18 PM

Scott Galloway said:

Whoa, looks like GMail is borked too...
# December 2, 2004 12:54 PM

foobar said:

"LCDs are great as desktop PC monitors because they don't have to refresh pictures rapidly."

This is in reference to response times, I suspect.

LCDs also have poor color reproduction compared to CRT.

As with anything technological, time will resolve these issues.
# December 2, 2004 4:10 PM

evan said:

wtf how could they destroy the tss and unscrewd like that im paying $70 for comcast cable already and g4techtv is the olny good channel on tv
i hate u comcast
i hate u so mutch
>:0
# December 2, 2004 7:22 PM

Steve said:

Couldn't agree more! The channel is dead without TSS.

A video game show on a Tech network...fine. It's good to have variety. An all videogame network and no tech? I'll pass. I urge you all to cancel any season passes, remove the channel from your favorite lists and write to your cable or satellite prover and ask them to stop carrying the channel. Three thumbs down!

It's now simply a waste of bandwidth.
# December 3, 2004 4:20 AM

Russ C said:

The only problem with black is because of the Backlight, but I understand that Sony are using a new screencoating that helps that a lot - but imo it makes the screen seem a lot more reflective
# December 3, 2004 6:30 AM

TrackBack said:

# December 3, 2004 6:17 PM

kmo911 said:

it's over for g4techtv,there is a reason that they're almost dead last in the ratings!
If you go to g4techtvs forums and say anything negative about their crappy programming,they either delete,lock your messages or they ban you.
They need to listen to the viewers,and the viewers say they want the tech back in the screen savers.
# December 4, 2004 1:46 AM

Frank said:

As a 62 year old male still somewhat computer illiterate, I despise the new TSS format and The total rest of G4. I used to learn things as a novice computer user on the old Tech TV, especially Call For Help.
It seems to me the greedy bastards sold out to the corperations that sell video games!
Fuck this noise!!!
# December 6, 2004 7:33 PM

Thomas Tomiczek said:

Well, our small hosting operation (around 60 domains, half as many subdomains) uses SmarterMail. IT ROCKS. The new v2 web interface is NICE, it is fast, has baynesian filtering, web services to configure it (which ourc control panel uses). All in all - a marvelous little gem.
# December 7, 2004 12:38 PM

Yex said:

I've been very happy with it too. My site is currently hosted at CrystalTech and so I have access to SmarterMail for my webmail interface, and have pretty much gotten to the point where it's just about all I use for mail, and I really like it. As Thomas mentioned, they did a really nice job with the UI in the latest version, and the spam filtering I would rate about a 6.5 or 7.0 out of 10. It catches a good majority of spam, there's still quite a bit that actually manages to get through. Not any worse than any others out there though. If I had to select a mail server software for myself, I'd definitely go with it, especially for that price, it's pretty reasonable for the feature set you get with it.
# December 7, 2004 12:47 PM

DNK said:

It certainly has potential, i wouldnt say it has everything yet, my main gripe with it is that although it has blacklists and bayesian these come into play after the mail has been accepted and so there is no method to refuse mail, this has been mentioned to them by numerous customers so im sure it will be on thier todo list. This has been done so that spam filters can be controlled at a user level, but personally i'd prefer to refuse mail that failed multiple blackhole checks for example

dont pay $200 though, i bought mine from a reseller for $99
http://www.servertastic.com
# December 7, 2004 2:07 PM

Jeff said:

Well, what the heck, I took the plunge. Wow... importer from IMail was seamless. So far so good, and I'm impressed with the filtering. I like that you can mark a message as spam and it will evenutally reindex the filters based on messages you've marked as spam. Nice.
# December 7, 2004 2:46 PM

TrackBack said:

# December 7, 2004 9:36 PM

IlluminatiLord said:

The copy edit phase is the most tedious (right behind upgrading a new revision to take into consideration the next version of .NET and its features). The most joy I got was the actual writing of the samples, followed by the ability to impart bits of insight that I learned in hopes that I'd make some developer's day easier some time.

As for advice on whether you should do it again, I can't say. The only advice I can give you is to ask yourself would you do the 1st book again now, knowing what you know now?
# December 8, 2004 12:11 AM

White Elk said:

g4's programing has alienated TechTV and TTS's audience and g4's censorship is out of control!

Save TechTV and Diverge the Merge!!!
# December 8, 2004 12:40 AM

James Newkirk said:

I have some advice, but it's not pretty...

I also find this part of the process so tedious and boring that I often think I am reading the book and I am really not. Therefore, to get myself to read every line I highlight them after I have read each line. That way I know that I have really read the line and not just skimmed over it.

Didn't say it was pretty but it is effective for me. Good luck!

# December 8, 2004 12:52 AM

bradsully said:

i liked the screen savers with kevin and alex, alex may not have know as much stuff about computers as kevin but he kept it smooth. I download one of the new episodes and sat there like wtf, kevin is now a slave and there is so gomer co-hosting that seems like hes one of those annoying kids that thinks he knows everything and you just wanna punch in the face. aw man this pisses me off. they asked a question at the end of one of the episodes about authoring video and the co host guy started talking about dvd shrink and using nero to burn, like what the hell you need and authoring program.
# December 8, 2004 3:19 AM

Ash said:

Im just glad I can get the new Call For Help program that Leo does from Canada. Its not the same but it is the best program on this network now.
# December 8, 2004 12:33 PM

K said:

I couldn't agree more. It bothers me to no end when I receive email that has no punctuation and is all lowercase. Forum posts are, like you said, the worst. I can't understand half of it.
# December 8, 2004 2:33 PM

petal said:

# December 8, 2004 8:23 PM

Matt Hawley said:

Why don't you post a bug for the FireFox team?
# December 9, 2004 1:51 PM

Stuart Ballard said:

It's already known:

https://bugzilla.mozilla.org/show_bug.cgi?id=209020

The problem happens if WYSIWYG editing has ever been turned on in that browser window or tab. Workaround is to open a new window or tab and close the original (every time you use anything with a WYSIWYG editor in it).

The bug drives me crazy too and I hate that it wasn't fixed for 1.0. I guess they underestimate how many people are using WYSIWYG editing.
# December 9, 2004 2:41 PM

TrackBack said:

As the old adage goes: good programmers write good code; great programmers steal great code. This is definitely true, mostly because great programmers have learned to do some research before writing anything at all. However, even great programmers tend...
# December 10, 2004 2:55 AM

darkdestiny said:

Watching g4techtv now is like getting an anal cavity search from the incredible hulk. The morons at comcast screwed up the most entertaining channel for myself and many others to watch and they threw in a bunch of kids who don't know what their doing. I say people who know there gaming like myself should create a channel and overpower them finally proving anyone who watched old school techtv knows more about running a good channel then them jerks. How i miss the days when G4 didnt merge with techtv, because after that moment everything has been downhill.
# December 10, 2004 12:12 PM

Cactus Juice said:

I hear you Jeff. One of my pet peeves is when the script kiddies type sentences as if they were a rap artist on TRL. We need a good RegEx for this :)
# December 11, 2004 9:42 AM

Scott said:

Hey Jeff,

I have rewritten most of the "map all" code used in .Text a couple times over the last year. I think I have it as simple as it is going to get and I will republish it after my talk on the subject at VSLive in February.

In the current version of .Text, I do a quick check to see if the requested url ends in .aspx, if not, I substitute "default.aspx"

public static IHttpHandler GetHandler(HttpContext context, string requestType, string url, string path)
{
if(!path.ToLower().EndsWith(".aspx"))
{
path = System.IO.Path.Combine(path,"default.aspx");
}
return PageParser.GetCompiledPageInstance(url, path, context);
}

HTH,
Scott
# December 11, 2004 1:01 PM

Eric Newton said:

I dont think the question was really answered... I too am truly unclear about how if IIS requires extensions to map to handlers, then how does the application get a request for / ?

I assume because of the "Default Documents" that IIS has determined to pull up "default.aspx" but then why doesnt default.aspx show up in the url?

IIS's mapping rules are very confusing, and SHOULD be scrapped in favor of a config file that can be more specific about mappings instead of just by file extension Maybe in IIS 7?
# December 11, 2004 7:31 PM

Jeff said:

That's the primary question I have... If a "/" request is made, is IIS trying default.aspx? In the testing I've done, I don't think it is, but as I mentioned to Scott in e-mail, I don't recall having to set a wildcard mapping in IIS to make .Text work for multiple blogs (thus the question about /Jeff or /Jeff/ working here).

Scott hasn't written back yet, but it's the weekend and it's not like any of us are paying him. :)

One thing I will say about using IHttpHandlerFactory is that it's a lot less messy than using RewritePath and overriding the page's Render method to fix the form action attribute.
# December 11, 2004 8:49 PM

Scott said:

When you use wildcard mappings, default documents no longer work...which is why you need to use code similar to what I posted above.

You do not have to set up wildard mappings in the multi-blog setup..however, you need an empty default.aspx fle in the "/jeff" folder...otherwise, asp.net will never handle the request.

-Scott
# December 11, 2004 10:13 PM

Jeff said:

OK... you've got me stumped there. Why does it work on this site? There isn't a physical folder for every single user, is there?
# December 12, 2004 12:22 AM

Justin Lovell said:

Jeff, it is a simple mapping from *.* extension in the IIS file mappings to the ASP.NET ISAPI DLL. That way, ASP.NET is capable of picking up the tab... and you are able to rewrite any given URL to anything you want.
# December 12, 2004 3:54 AM

Jeff said:

Ugh... I know that. I've known that since 2001. But Scott says it's not necessary in .Text. Again, how can IIS send the requests for /jeff and /jeff/ to ASP.NET then?
# December 12, 2004 9:44 AM

Wilco B. said:

If you use such a wildcard mapping in IIS, the ASP.NET runtime will handly *all* requests, including the /jeff and /jeff// requests. Scott must be either using such a wildcard mapping, or he must be using physical directories for each user (heh).
# December 12, 2004 3:01 PM

Jeff said:

Scott confirmed via e-mail that he does indeed wildcard for the bigger sites. That's what I was after. I figured that was the case but wanted to make sure I wasn't missing something obvious.
# December 12, 2004 3:22 PM

Babe in the Woods said:

Well, what the hell does this country need with a channel devoted to computer gaming? Don't we have enough distraction as it is, with the NFL, the NBA, the NCAA, NASCAR, the Fox News Channel, Rush Limbaugh, and any other idiot who supports the Republican Party?

Whatever happened to keeping the American people informed instead of distracted and dumbed down?
# December 12, 2004 11:41 PM

Julien Couvreur said:

I use a wiki for taking personal notes and keep them semi-organized. It's much better than note taking app I had written ;-P
In terms of succesful wikis, you should check out wikipedia.
# December 13, 2004 4:25 AM

Imran Koradia said:

I had the same kind of frustration when looking for documentation for some other tool (I don't remember which one right now..) But yes - was a similar case which took me to some wiki site which had a whole bunch of topics but nothing in there :( Anyway, I still think wikis can be quite useful. I find this wiki - www.pinvoke.net - particularly useful and well implemented.
# December 13, 2004 9:26 AM

Jason Dossett said:

I know it's 'against what wiki's are about', but I think if applied in a controlled manner, they could be pretty useful. We're looking into either extending flexwiki or rolling something custom to add wikis as a first class citizen to SharePoint. Team collaboration on content could be pretty valuable. After all these years, it's still hard to have some kind of realtime collaboration with office documents.
# December 13, 2004 9:45 AM

Shannon J Hager said:

I agree with Jason, a wiki + controlled edit access = good.

The wikipedia is an example of a good wiki but that is largely due to the huge number of users patrolling for bad entries and vandalism, something few (no?) other wikis seem to have.

Take the .Text wiki. the only way to get anywhere on that thing is to search google's cache or the "recent changes" page. The home page is usually just today's curse word.

# December 13, 2004 6:09 PM

Matt Hawley said:

I totally agree with you, I picked up a v4.0 (the black & silver one with the finger grooves already built in, right?) wired as well... I love it.
# December 15, 2004 10:19 AM

karl said:

I've used intellimouse for years...but recently switched to a logitech MX510..those scrollbuttons are really useful...hard to go back after that...
# December 15, 2004 10:25 AM

tim said:

I had an Intellimouse Explorer 3 for some years, but since some months the 3rd button was pressed down by spinning the mouse wheel and did not get up again without some hard finger work :-/.

A friend of mine hat the same problem with the same mouse ... soooo back to Logitech :-)
# December 15, 2004 11:56 AM

Jeff said:

I bought a couple of cheap $20 optical Logitechs to tote around with the laptops. Dropped them, many, many times. I thought about getting another one but I really didn't like the shape of it.
# December 15, 2004 12:48 PM

Colin Ramsay said:

I agree completely. There are no decent web-based rich text editors which produce good markup.

I want something that will clean up Word documents and spurt out valid, semantic XHTML. I don't want excess "style" attributes and I do want it to work in all the browsers I try.
# December 15, 2004 5:15 PM

Jason said:

I've tried tens of keyboards in the past, hoping to upgrade to something with all the cool one-touch launch buttons and what not. I always go back to the Natural Keyboard Pro because it is the SINGLE ONLY keyboard I've been able to find that has a quality feel to it. I currently have it connected to my laptop using a PS/2 -> USB adapter. I would spent $200 on a modern keyboard if it had any quality whatsoever.
# December 15, 2004 8:32 PM

Jeff Perrin said:

http://xstandard.com/page.asp?p=A4372B00-8D7F-4166-977C-64E5C4E3708E

XStandard has a free version with a pretty good feature-set. It's implemented as a browser plugin, and it does *perfect* xhtml. Try it out... It really seems to be first class. There's a Pro version that has a bunch of good features as well. The downside is that you have to do a bit of fiddling to grab the text from ASP.NET. If someone wrapped the free version as a .NET control I'd be an extremely happy camper.
# December 15, 2004 9:11 PM

Geoff Appleby said:

> But alas, it won't be beta forever, and this insanely long testing period
> will result in a nearly perfect product, right?

Ha. You're funny :)

(disclaimer: I'm expecting many wonderful and fantastic things from Whidbey. I am also, however, extremely confident that there'll be something in it that pisses me off no end. However, name a single peice of software _anywhere_ that doesn't :)
# December 15, 2004 10:32 PM

Darrell said:

Dude, that was hilarious. I just tuned in today even though it's been up since Monday, but still. Too damn funny! :)
# December 15, 2004 11:01 PM

David Walker said:

I totally agree! It would make perfect sense then that Microsoft should make IE it's first real Open Source / Community Developed project! :)

If they don't want to update it and release new versions why not release it!
# December 20, 2004 10:53 AM

Darrell said:

They probably won't release it because I'm sure a lot of it uses undocumented Windows API features. You know, those features that they get in trouble for not documenting. I'm sure a lawsuit would ensue. :)
# December 20, 2004 11:10 AM

Scott Galloway said:

They can never open source IE - simple problem is that a ton of other MS products depend on the API provided by IE for their content rendering - as evidenced by the number of products affected when an IE security bug shows up. One thing I would like is for MS to freeze IE (it effectively is anyway), enabling continued support for extant products - then move on with developing a new browser (or even - radically - adopt Firefox). The HTML-like syntax of Avalon markup has led a fair few people to speculate that the direction MS may move is to totally move their web effort to this 'richer' model however I do feel it'd be a mistake to fragment the market this way.
# December 20, 2004 11:54 AM

Peter Bridger said:

Things like ActiveX are MS IE only, so any companies that develop their Intranet to use should software are locked into IE. Plus things like NT Authentication Challenge/Response are really work in IE in a seemless way.

( I mention these, because I'm part of a board looking at getting Firefox as our standard browser. But these are some of the issue I've come up against so far preventing this )
# December 20, 2004 12:13 PM

James Geurts said:

If Microsoft didn't package a browser w/ their operating system, someone else would have a chance at having dominance in that area. Or worse yet, MS users would be forced to find a non MS product to accomplish something.

Either of these situations might get people thinking that other companies might offer services that MS doesn't. That could have negative impacts on their goal of having an MS powered computer in every home.
# December 20, 2004 12:19 PM

Charles Chen said:

"I've never understood how Microsoft has profited from IE's dominance"

This is a very naive view. There is a certain base level of standards compliance that all browsers implement. Beyond that, Microsoft has added siginificant functional enhancements to IE which allow it to do much more than browers such as Netscape or Firefox.

In an Internet environment, this is not a big deal, since when designing for th WWW, you should always target a reasonable Lowest Common Denominator. However, in an Intranet environment, all the rules change. The custom extensions offered by IE can play a significant role in application development. For example, the client that I work for now uses a lot of clientside VBScript, which is not supported in Firefox or Netscape.

In addition, look at the upcoming .Net 2.0 release which will feature a data retrieval mechanism without using postbacks (using xmlhttp in IE).

The bottom line is that by having a strong presence in the browser market, Microsoft is free to implement custom extensions that add to the value of other products offered by Microsoft. To really understand why IE is important to MS, you really have to analyze Intranet applications rather than Internet applications.
# December 20, 2004 12:42 PM

Scott Galloway said:

Charles, Firefox happily supports XmlHttp and .NET 2.0 client-side callbacks- I haven't tested this yet personally but I've read a few reports (e.g., http://www.neowin.net/forum/lofiversion/index.php/t246986.html) which suggest that Firefox is just fine with this,
I think a fairer assessment would be that IE WAS important to Microsoft when it looked like the competition was gaining an advantage in an area Microsoft wasn't in (and charging for the privelage) - the mindset of MS right now doesn't seem to be to try and eradicate Firefox...hopefully that won't change...
# December 20, 2004 12:49 PM

Jerry Pisk said:

Mozilla supports ActiveX controls if you enabe it (which involves compiling your own version fromt he source). They just call it something else (XPCOM, which is just like ActiveX controls, except without the little security ActiveX has).
# December 20, 2004 1:03 PM

Scott Galloway said:

Oh, and of course the 'less powerful' Firefox lets you use ActiveX by providing a plugin as well :-)
http://www.iol.ie/~locka/mozilla/plugin.htm
# December 20, 2004 1:13 PM

Wilco B. said:

Charles Chen: http://wilcoding.xs4all.nl/Wilco/View.aspx?NewsID=139 </shameless-plug>. Works fine in Mozilla based browsers, and should work fine in Opera 7.6 too if they would fixed their XMLHTTP API.
# December 20, 2004 3:33 PM

Jason said:

I think the only reason noone is "missing out" is due to the lengths the FireFox team has gone through. The firefox code would look alot different today had NetScape won the browser war.

I also think MS has shifted focuses in the last few years. They now seem less agressive towards other browsers. But when MS was thinking of making a shift from Winforms to WebApps they wanted to be the only web browser in town.

The other funny twist in this big story is IE on the MAC. I'd be interested in your thoughts on that.
# December 20, 2004 6:25 PM

Nathan Maffeo said:

Wow.

Ok. So Msft decides to drop out of the browser market at 3.0. Netscape continutes ahead and pioneers dhtml and becomes the dominate browser with 90-95% market base. Now 2 years later microsoft wants to impliment ActiveX or whatever technology, but Netscape says "nope! sorry we're not gonna support that".

(there are your dang crickets again...)

Why does firefox support activex? because they have to stay competitive with IE. If microsoft had given up on IE, they would have handed the users experience of the internet over to netscape.

That would have been disasterous.
# December 20, 2004 6:44 PM

Jeff said:

The user's experience is being dictated by the people that publish content, not the people making browsers.
# December 20, 2004 7:07 PM

Colin Ramsay said:

"Why does firefox support activex? because they have to stay competitive with IE. If microsoft had given up on IE, they would have handed the users experience of the internet over to netscape."

Firefox *does not* natively support ActiveX.
# December 20, 2004 8:06 PM

Shannon J Hager said:

" The user's experience is being dictated by the people that publish content, not the people making browsers."

This is true except that what we publish is always (well, make that SHOULD always) be written with an audience in mind. An audience that uses a piece of software to view our content. A piece of software that, for the most part (and we are talking 1999-2002 here, not the future), was a browser and was made by Microsoft.

In 1999 you made a choice of whether or not to use Netscape's "layer" tag. I chose to not use it. I also chose to not use some very cool IE DHTML features in 2000. However, when I started doing intranet-only web apps, I suddenly had exactly 1 browser to test and was able to use all of those IE-only features. About a year later, Netscape was all but dead and IE had such a high market share that people began using those IE-only features on the web without much fear because 90% of the world was using IE.

When you publish anything on the Internet now, you are publishing with knowledge that it will probably need to work in IE and Firefox at the very least. However, you don't just publish anything you want with no regard for those browsers. You don't write all of your client-side code in VBScript if you want it to work in Firefox, so Firefox does matter when decide what you publish. You don't write everything to meet the XHTML 1.0 Standard with no regard for how IE will render it, so IE does matter when you decide what to publish.

By forcing web content providers/programmers to hack our way through things in order to make a page work on both IE and Firefox, browsers do dictate what we publish in a very real way, even if only because it reduces the amount of things we can publish because it takes longer to do so.
# December 20, 2004 8:28 PM

rick said:

I see a lot of issues with ASP.Net that seem to stem from IE's dominance. People discover that certain styles don't seem to work in Firefox or that dynamic form validation doesn't work. It's not that Firefox is broken, but the out-of-the-box javascript is IE specific, or the ASP.Net adaptive rendering treats Firefox like Netscape 4. Anyone care to take bets on whether ASP.Net 2.0 callbacks will work in Firefox or Safari? Google's proved that it's technically possible in those browsers (and Opera soon..).

Even if IE 7 came out tomorrow and was good enough to demolish Firefox for the most anal web masters, we'd still have to deal with the occurance of IE 5.x "in the wild." IE 5 is the new Netscape 4.

Still, things are way better than they used to be. The amount of CSS hackery I have to do now pales in comparison to the weird HTML bag of tricks I used to use...
# December 21, 2004 2:51 AM

Sahil Malik said:

All those facilities improve not one man's ability, but every man's ability, which raises competition, and drives down prices, but increases productivity. If you were in college today, with all that stuff, my insinuation is that you would still be working 80+ hours a week, with probably even much lesser beer money, just doing a lot more because of all the tools you had.

Who wins? The Economy - because of worker productivity.
# December 21, 2004 4:34 PM

Jeff said:

I totally disagree. It's college, not corporate America. More on why I disagree in another post...
# December 21, 2004 5:56 PM

Jeff said:

Anyway... The kids I know in college aren't flipping any more burgers than I did. Furthermore, the kids clever enough to hack out some free PHP code to run their own sites are not in every other dorm room. To suggest that those kids, the kid I would've been, aren't going to have it easier is crazy.

I loved the story in Business 2.0 about the kid that runs MobileTracker.net. He scores $4k a month with that site. Can you imagine? Not a bad way to pass the time in college. There are a lot of stories just like his out there.

Personally, I work less now than I ever have.
# December 22, 2004 12:59 AM

mabster said:

My feeling is that if it's a paragraph it should be wrapped in <p> tags.

Line-breaks are for things like lines of poetry, where a carriage-return is necessary, but it doesn't represent a new paragraph in the traditional sense.

I do tend to get religious about these things, though :)
# December 22, 2004 1:34 AM

Zknet said:

I say, go with what works. I'm like you, I don't get religious on this. If it'll be easier for you to use <br /> tags, and the end result is the same as though you used <p></p> tags... then I'd say go for it. The only reason not to is if you take HTML purity very seriously.
# December 22, 2004 2:22 AM

Yohan said:

If you wrap your paragraphs in <p></p> tags instead of using <br /> at the end, you have way more control over the formatting.
# December 22, 2004 2:26 AM

Mischa Kroon said:

Paragraph's are very nice too support, you can use some funky css to do whatever you want with them ...

<br /> Is what I want most of the time in forums while typing my text though.
# December 22, 2004 6:17 AM

Darrell said:

I believe a paragraph tag is a block element, whereas a br tag is an inline element. BR tags are for forcing line breaks, whereas with P tags you can control the spacing between paragraphs using CSS. The purist would probably say wrap paragraphs in P tags, but that's much more difficult since non-empty tags must have end tags to be well-formed (although all browsers don't require a closing P tag, they just assume one when they encounter the next opening P tag).
# December 22, 2004 8:39 AM

Michael Russell said:

Here are some web stats back at you from a government site. 91.9% IE.

http://romsteady.blogspot.com/2004/12/last-stats-post.html

Tag, you're it.
# December 23, 2004 12:37 PM

Jeff said:

That's almost in line with the general public. Who cares?
# December 23, 2004 2:45 PM

TrackBack said:

# December 23, 2004 10:21 PM

TrackBack said:

# December 23, 2004 10:22 PM

Frans Bouma said:

Don't worry about that, worry about something else. As soon as you call Add(), the base class, CollectionBase, will first check if the object to add is already in the list. This is a linear search. This means that it calls equals on all already present elements. If an arraylist gets bigger and bigger, this will affect performance way more.
# December 24, 2004 3:31 PM

boogs said:

Heh, they're one of the *only* collections in the .NET framework :).

Typed collections are usually a pretty good idea. They make it so that the compiler can tell you when you accidentally put something in the list that you didn't mean to.

In the next version of the framework, there will be Templates, and you won't need to inherit array list to create strongly typed collections at all. You will wonder how you ever did without.
# December 24, 2004 4:23 PM

Zknet said:

Frans,

Are you sure about that? From looking at Reflector, I don't see any evidence that ArrayList.Add() checks for a duplicate value. Nor does it appear to derive from CollectionBase.
# December 24, 2004 5:08 PM

moonjogger said:

ArrayList does not inherit from CollectionBase - CollectionBase *contains* ArrayList :-)

"Typed ArrayLists" are good idea when you want to be sure that the collection will contain only objects from a specified class and nothing else(checking for null before adding an item is also a good idea)... Always put your business objects in a coresponding typed collection.
# December 24, 2004 5:41 PM

Zknet said:

"ArrayList does not inherit from CollectionBase - CollectionBase *contains* ArrayList."

Maybe I'm missing something, but I don't see that anywhere. CollectionBase and ArrayList both implement IList, which is derived from ICollection. That's the only commonality I see between ArrayList and CollectionBase.
# December 24, 2004 5:53 PM

Wilco B. said:

Zknet: Check the members of CollectionBase. It has a protected 'List' property of the type ArrayList.
# December 24, 2004 6:36 PM

Zknet said:

I see now. List is IList, but InnerList & list are ArrayLists. Missed those before. Thanks.
# December 24, 2004 8:46 PM

.Net Adventures said:

ArrayList in C# is designed with reference types in mind.Using ArrayList with value types leads to unnecessary boxing and unboxing, which degrades performance.
# December 25, 2004 5:36 AM

Drew Marsh said:

Yeah, I'm not sure I understand where Frans is coming from on this. Here's the IL for CollectionBase.Add (see below). No where in the scope of this method (or any of the OnXXX calls made) is there a scan of the contained ArrayList to check if the instance of the object being added is already in the list.

<codeSnippet language="MSIL">
.method private hidebysig newslot virtual final
instance int32 System.Collections.IList.Add(object 'value') cil managed
{
.override System.Collections.IList::Add
// Code size 65 (0x41)
.maxstack 3
.locals (int32 V_0)
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: callvirt instance void System.Collections.CollectionBase::OnValidate(object)
IL_0007: ldarg.0
IL_0008: ldarg.0
IL_0009: call instance class System.Collections.ArrayList System.Collections.CollectionBase::get_InnerList()
IL_000e: callvirt instance int32 System.Collections.ArrayList::get_Count()
IL_0013: ldarg.1
IL_0014: callvirt instance void System.Collections.CollectionBase::OnInsert(int32,
object)
IL_0019: ldarg.0
IL_001a: call instance class System.Collections.ArrayList System.Collections.CollectionBase::get_InnerList()
IL_001f: ldarg.1
IL_0020: callvirt instance int32 System.Collections.ArrayList::Add(object)
IL_0025: stloc.0
.try
{
IL_0026: ldarg.0
IL_0027: ldloc.0
IL_0028: ldarg.1
IL_0029: callvirt instance void System.Collections.CollectionBase::OnInsertComplete(int32,
object)
IL_002e: leave.s IL_003f
} // end .try
catch System.Exception
{
IL_0030: pop
IL_0031: ldarg.0
IL_0032: call instance class System.Collections.ArrayList System.Collections.CollectionBase::get_InnerList()
IL_0037: ldloc.0
IL_0038: callvirt instance void System.Collections.ArrayList::RemoveAt(int32)
IL_003d: rethrow
} // end handler
IL_003f: ldloc.0
IL_0040: ret
} // end of method CollectionBase::System.Collections.IList.Add
</codeSnippet>
# December 25, 2004 12:53 PM

TrackBack said:

# December 26, 2004 9:29 PM

Chris Martin said:

But that's just the beauty of OSS. If you don't like the way something is implemented, you do it yourself and it ends up in the distribution of said software.

Not a lot of projects have a lot of resources. The idea behind OSS is an open and contributive (is that a word :) ) "society".

Take your post as an example. You don't like that one particular piece of software isn't documented sufficiently. If you care about said software, you should spend an hour and write down some helpfull words to assist others that may find said software usefull.

It's not that people don't have incentive to document (as far as a CHM) the software. It's that, more time then none, the software is pretty damn recent and not to the point of being "formally" documented for end users.

And that is precisely(sp?) why OSS projects need contributors. If *you* find it usefull, there is a very likely chance that many others do as well. Instead of complaining, you should contribute.
# December 27, 2004 12:57 AM

S Dot One said:

You got the ULTIMATE documentation with open-source... The source code itself ;)

Seriously a colleague recently was trying to run a nant script on a build server, but there were some parts missing. And by looking into the source code he could see exactly what went wrong, and what was missing.

But in general I agree, it documentation is bad quality wise.
# December 27, 2004 5:42 AM

TrackBack said:

# December 27, 2004 4:13 PM

Shane said:

Very well put.
# December 27, 2004 4:40 PM

Travis said:

The IE market share is slipping. This is a perfect method to raise it's share. *wink*
# December 27, 2004 4:47 PM

Alex said:

I disagree that this in any way "controlling the distribution of the news media". By the same logic you can say that requirement to have a computer in order to view the site. I don't see anyone raising objections over 99% of movie trailers showing up in QuickTime.

As you said it yourself, it's their site and they are free to chose method of content delivery. There are plenty of alternatives and there's no need to bring up "journalists risking their lives" to show how much you prefer Firefox over IE.

just my .02
# December 28, 2004 3:44 PM

Jeff said:

There's little point in responding to your post since you seem to think that movie trailers and news are the same thing, and that computers are something controlled by one company.
# December 28, 2004 5:17 PM

Ed Brill said:

"still hanging on to Lotus Notes databases"? You make it sound like a dead product, not one that is the market leader (according to Gartner). There are new Notes customers every day; it's not exactly the legacy you make it out to be.
# December 28, 2004 7:01 PM

Eric Newton said:

generics will be faster because of no boxing for valuetypes, *in most cases*

basically you'll notice the biggest difference in methods that iterate the arraylist of valuetype-derived classes (int, decimal, System.Drawing.Color, etc)

and yes BinarySearch is still the fastest, only when the arraylist is properly balanced... binarysearch could possibly be the slowest if the array has items in a particular order... but in most cases, yes binarySearch is fastest
# December 29, 2004 9:46 PM

Wesner Moise said:

List<T> is faster than ArrayList, for at least three reason:
1) Casting (an expensive operation) is optimized away
2) Boxing and memory allocation is eliminated for value types
3) Methods calls on generic lists are direct, rather than virtual

BinarySearch is faster than IndexOf for large lists, but it only works on sorted lists, and the type has to implement IComparable<T> or IComparable.
# December 29, 2004 9:50 PM

TrackBack said:

# December 30, 2004 9:44 PM

Steve said:

I'm a little confused on how you think you are reiventing the wheel with this.....

isn't what you describe what SQL's Full-Text does? (and already does rankings)
# December 31, 2004 10:56 AM

Jeff said:

SQL Server's ranking has no regard for the whether or not a word appears in the topic's title, the author's name or if the word appears in the first post in the topic.
# December 31, 2004 1:11 PM

Denny said:

what a mess... I too was a fan of TTV and TSS and CFH
and it was like watching 9/11 in slow-mo or some other evil thing happen.

just sad as heck!
# January 2, 2005 3:03 PM

Plastic Man said:

The comments in "Inside view from G4-Tech TV" are EXCELLENT. I too think the 'new' Screensavers is horrid. Chi-Lan and Pereira are worthless and admittedly know nothing about computers or computing..... the show is now just another gaming/video/bad musical guests/nonsense show--- What an insult to Kevin Rose, Sarah Lane, and the long lost Yoshi, and others....

I have posted elsewhere the thought that Kevin Rose and Sarah Lane might do better to marry and head for Canada to see if Leo and friends could somehow put together a show emulating the excellent things about the old Call For Help and Screensavers programs..... wishful thinking!
# January 2, 2005 10:33 PM

Kulin said:

I think the choking you're referring to has to do with the stuttering bug - http://www.steampowered.com/index.php?area=news

Maybe they didn't fix it for the demo, but I have not read otherwise.
# January 2, 2005 11:24 PM

Denny said:

STEAM:

good idea gone bad... a *LOT* of folks have been caught in the spat between Vivendi and Valve; make them both look bad to the folks who know whats going on.

I wonder if Valve is going to try and dump Vivendi and just publish on-line?

# January 2, 2005 11:30 PM

David Taylor said:

Jeff...I was so impressed I dropped Halo 2 when it game out...and played HL2 to completion...only getting back to Halo 2 a few days ago.

# January 2, 2005 11:47 PM

Cyriel said:

The problems you referring could be related to some game bugs; but don't forget that the piece of crap Nvidia Forceware drivers together with a overclocked 6800 can cause lots of problems with HL2 - including BSODs (!). (clocking it down makes it a bit more playable though; but i still have problems with spontaneous freezes and so on)

This is the reason why I bought the game, installed it for a day then removed it and put the box in the closet with the other games, only getting it out again when either Valve or Nvidia get their act together OR the moment I have bought a more stable ATI Radeon. Oh well, prolly end up with a Radeon anyway, especially cause this isn't the only game my 6800 Ultra has problems with (and seeing my friend can run anything without any problems at all with his X800 PciEx almost makes me pull my hairs out...)
# January 3, 2005 3:36 AM

TrackBack said:

How blogs are giving me value
# January 3, 2005 4:59 AM

Jeff said:

ATI has more stable drivers? Ha! Sorry, but if Doom 3 runs fine, I'm not going to pin the problem on drivers. My card isn't over-clocked, and I've never had anything else crash on my nForce motherboard. HL2 didn't cause a massive system failure, it just died on itself (I could kill the process and move on).
# January 3, 2005 10:22 AM

rayjay2380 said:

all i need to say is G4's pr dept better say something or they will have nerds at there front door!!!!!!!
# January 3, 2005 12:03 PM

Jon Galloway said:

I had that stuttering problem with the initial release of the game, but the patches have corrected those for me. The load time is disappointing, but definitely not worth overlooking a pretty great game.

I agree about Steam running at startup being annoying. You can kill it, it will start automatically when HL starts up.

It seems like a dumb business move for them not to have updated the demo, though, since your experience is definitely not unique. I've heard that Steam will also include a user experience patch soon which will modify brain patterns of Steam users to not notice the load delay and stuttering issues. This may have other business benefits for Valve if it proves successful.
# January 3, 2005 4:17 PM

Mr.Smith said:

i have 2 say i love both G4 and techtv and when i found out that ther going 2 form 1 i jumped for joy.(and if any one is still crying about techtv is gone forever and thay said F*** G4 GET A DAMN LIFE YOU F***ING NERDS)and when i seen the channel fully merger i got 2 say i miss Leo and Pat and some other show like call for help and techlive but hay we got pulse(its like techlive only 1 hour long)and i think the screen savers is more entertaning(but what ever happen to alex)like most people in the world i love video games and i love 2 see my favorite show in world XPLAY (its a...............ahhh what the hell just see it)but all thay did 2 is is just move the set 2 LA and the rest of the channel.ok i know all of you see techtv just 2 get news on tech and help (just like me)but every one that are complaning about g4 screw up techtv or comcast is trying kill techtv(F*** COMCAST)you cant change anything and if you did it wont make a damn difference.just see the channel or if you need help with your computer do what i do just go 2 the damn internet and look it up.

ps.and every one that where complaning in the "G4-TechTV still sucks, and it's getting worse"(dumb topice)my best advice GROW UP,GET LAYED.
# January 5, 2005 3:21 AM

andrew said:

I not happy with steam at the moment!! i bought the game at christmas, like a lot of poeple!!! I then went to install and found that you have to register online, that cool... but that took ages as every one brought a copy at christmas!! it then went to decyrpt the game files, that took 3 days, it frooze at 30%, so i'm not sure if it has completed it process as i went to unstall steam, then re-install steam. I then find that i need to download a patch to play the game, the patch is 838mb, i have a connection speed of 512Kb download,, so i though it won't take to long....i still have not downloaded it....i keep my computer running all day and sometimes all night but there serves run at average of 56kb which is nothing!! I just want to play the game...there is just to much crap to play game....i never going to by a pc game agian, i just to may hassle you don't need....i'll just stick to my XBOX!!!
thanks alot steam you just wasted my money...i loved half life, and could.t wait for the sequeal, now i just going to play halo 2!!!
# January 5, 2005 6:44 AM

Jeff said:

Well judging by the previous comment, they're obviously getting the audience they wanted. :)
# January 5, 2005 10:49 AM

Alan Yeung said:

don't forget ads or features enhancements
# January 5, 2005 2:38 PM

Jeff said:

People don't want ads on their blogs... I just don't think that's ever going to fly.
# January 5, 2005 2:58 PM

AndrewSeven said:

Have you tried using a username&password to see if it is a security problem?
A dummy html page instead of the real url?


ps.
You don't need new char[]{} , its a param array ;)
string[] results = result.Split('|');


# January 5, 2005 7:33 PM

Brock Allen said:

Also, pay attention to IDisposable. HttpWebResponse implements IDisposable.
# January 5, 2005 9:09 PM

Jeff said:

So here's something I can't explain...

Originally I was using the same old code I've used anywhere by passing in the "form fields" for the POST like this:

request.ContentType = "application/x-www-form-urlencoded";
byte[] bRequest = Encoding.ASCII.GetBytes(postElements);
request.ContentLength = bRequest.Length;
Stream s = request.GetRequestStream();
s.Write(bRequest, 0, bRequest.Length);

...then calling GetResponse(). That wasn't working in the unit test, so I just tacked on the query string (which it later occured to me isn't secure).

So I went back to the original code writing bytes to the request. Again, it failed in the unit test, but for reasons I can't explain, it worked perfectly from the Web app.
# January 6, 2005 12:39 AM

Insano said:

Sorry to hear so many negative experiences.

I was fortunate enough to purchase the game before it was released and started preloading the game early. Once the game was released it took me a few attempts to get /decrypt the remaining crytical files but it was all worth it.

I am running Half-Life 2 on a 2.4 Ghz machine with an ATI 9600XT all in wonder card and I haven't had any problems. Definately the best fps since the original HL - even with the extra application which runs at startup (boohoo - not!).

In my books, HL2 definately urinates all over Halo 2. Speaking of which, wtf is with Halo 2's Level of Detail changing dramatically at close range during the cut-scenes??! What a bunch of crap. At first I thought it was some dodgey transition effect, but it's the just the freaking LOD changing! The cut-scene will suddenly change the camera angle and you'll be looking at a bunch of blocks which eventually turn into people and structures after a second. How the hell could the guys at Bungee / Microsoft miss such a thing?

# January 6, 2005 7:48 AM

Rob said:


Dude, it is all about clubby elitist wannabe'ism. All the best technical people I know are too damn busy building kick-ass systems, making a ton of dough writing great books and having way too much fun to feel the need for this kind of superficial public validation (double ditto for blogging).

Case in point ... when was this guy's last blog entry http://blogs.msdn.com/cbrumme . Think he is bored and under appreciated worrying about getting outsourced to India. Don't think so.

Don't get me wrong there is a place for an MVP program as long as the participants realize that it is a Microsoft MARKETING program and is only so useful (I really couldn't give a flying f$ck if there are MVPs out there that wanna argue that point...they would only prove mine). Anyone who gets publically pissed because of not being recognized shows their true colors to the world. Please point me at who that is...I never, ever want to hire them.

Well time to go write another blog entry...uh oh...don't have one...too busy coding my ass off and loving it.

Rob

ps. Don't get me wrong blogs are great, I have learned a ton from a lot of people who I respect immensely. I just think everyone forgets that 99% of the developer world doesn't have one, won't ever have one and well that's just fine.




# January 6, 2005 11:48 PM

Frans Bouma said:

Rob, you definitely sound as a person who tries really hard to look like he doesn't care about 'MVP' but as soon as he gets the title he's all thrilled and it's great.

Being an MVP has a lot of benefits: you get MSDN universal subscription (or teched), have an annual summit in redmond, get free tickets to teched (or discounts) etc.

It's not all marketing, and believe me: I hate marketing. Becoming an MVP means you are important to the community, at least MS thinks so.

However, there is no such thing as 'losing the MVP title'. You simply didn't get it again, that's all :). If that happens, often the person got too busy and literarly removed him/herself from the community, effectively making him/herself not suitable for an MVP title that year.

Being mad about it is indeed a bit silly, unless you did the same thing you also did when you got the title, then it's something to worry about but that's almost never the case.
# January 7, 2005 3:56 AM

Steve said:

So is there some sort of Webservice to validate and charge the card, or are you stuck with the before-mentioned Http Request stuff?
# January 7, 2005 7:13 AM

Rob said:


Hey Frans,

It was late last night when I posted. 8-) Indeed I don't really care about being an MVP (and I am not one and it's unlikely I ever will be). There are alot of MVPs that I respect but I also respected them before and after they were MVP's.

Sure you get benefits, alot of marketing programs give you beneifts. Frequent flyer miles for instance. My only point and I think I was just violently agreeing with Jeff was that it is a superficial think and to 'long' for it or to get pissed off about not being renewed (and lose lounge priviledges) is really just a reflection of the fact that you want it for the wrong reasons.
# January 7, 2005 9:51 AM

Jeff said:

Nope... just the usual HTTP POST. I hear you... I don't understand why no one seems to do it as a Web service.
# January 7, 2005 11:59 AM

TrackBack said:

# January 7, 2005 1:48 PM

Rob Chartier said:


I've found that the more time you spend in any given technology you eventually reach a peak. Where, when you look back, nothing surprises you and the code is clean and clear (in your eyes). With some exceptions of course. All of us just simply do stupid things from time to time.

The fact that your surprised by what you see is good, it probably means that you have actually learnt a bit over the last little while. ;)

# January 7, 2005 2:19 PM

Jeff said:

I sure hope so... it wouldn't be interesting work to me if I stopped learning.
# January 7, 2005 3:22 PM

MGB said:

Well, you people that are giving up - you aren't really missing much. Disregarding the steam boll0ks and the appalling engine design (stuttttttter) I summarise it as 'Generic shooter with a bit of (sometimes buggy) physics and nice water'. As for 'engrossing scripted story', whats so amazing about driving round in vehicles for about 1/4 of the game?! A few good set pieces do lift it above the average though, but not enough to prevent me selling it on a few weeks after buying.
# January 7, 2005 5:50 PM

TrackBack said:

# January 9, 2005 6:05 PM

Anon said:

You should check out ATT Callvantage. I just signed up and transferred my existing #. Good stuff. More features than Vonage too.
# January 10, 2005 6:31 PM

pottman said:

I am coming to this discussion late but wanted to chime in. I recently rolled off a project where I spent six months in the role of performance engineer on an enterprise .net project. This very argument raged on for weeks before I created a test application which created several different collection implementations, including typed collections, and cycled through them several million times. It's been a while so some of the details are lost, but the most startling thing was that the ArrayList, in any capacity, was in that small group that had great performance. In reference to the boxing, this brings the performance of any collection to its knees. This is an incredibly easy test to put together, and I would welcome any feedback from the readers of this blog as I still consult on performance. I agree that when you know the type, typed collections are the way to go, but overall, the ArrayList is one that i too have come to love in the .net framework.
# January 12, 2005 9:37 AM

Roy J. Salisbury @ VsDevCentral said:

She was also a reporter for MSNBC awhile back. She is either moving up, or moving down, depending on how you view the news services.
# January 12, 2005 12:35 PM

Blobby said:

Mr Smith, are you a natural moron or do you have to practice ?
# January 13, 2005 6:19 AM

gazza said:

ive just bought this today and am now off straight back to the shop because of the crap steam thingy and the fact i cant even run the game with these specs.....
p4 2.4ghz
1gig ddr ram
radeon 9800 card
etc...etc

how is this possible when ive just finished the far superior far cry without even a glitch!!!!!!!

damn you sierra for denying me the chance to at least try the game out rubbish...rubbish...rubbish

right i'm off to e-mail watchdog now i've got that rant out of my system... regards!
# January 13, 2005 8:59 AM

Siggy said:

Well thank you VERY bloody much, Valve! Thanks to you and stupid poxy Steam, I can't play ANY of my Valve games because they freeze at the menus. How slow is HL2 with these specs?
750 pentium processor (YEAH it runs with a 750!)
Radeon 9600
So as one can see it aint worth playing once completed.
Also CS Source; beautiful game used to run fine, even on a 56K modem, now ping constantly 990's. once again not worth playing

My one refuge is CS: CZ now it don't work either.

It really is sad when a superior games company like Valve force us its loyal (If not whiny) customers to suffer all that shite just so they don't loose a few (thousand) quid through software pirating. For shame. :(
# January 15, 2005 1:26 PM

mike clark said:

u know michaela perrera(i think thats how u spell her name) is at ktla now also?
# January 16, 2005 5:38 PM

rcowles1 said:

Steam is junk. Had the game since Xmas and still cannot play. Anybody have any tips. Never can connect to steam. Haven't even seen the into yet. What a joke.

Called Valve, Faxed Valve, Email questions to steam. Nothing. Followed all tech info. on the steampowered site. Nothing. We are still on dial up at my house, nothing else available.

FYI
Valve Software
Phone 425-889-9642
Fax 425-827-4843
# January 18, 2005 8:23 AM

bryce atkinson email me at said:

is there anything at end of halo2
# January 20, 2005 3:31 AM

Jam said:

Played and finished before xmas.

Beautiful graphics and game play (especially the tripods) but steam is a pile of crap and will never buy another vlave game again
# January 20, 2005 10:34 AM

nekit said:

to pottman:
Did you have Templates i your performance test? I would be curious to compare Typed ArrayList and Templated collection performace. Did anyone hear about such tests?
# January 20, 2005 1:14 PM

hl said:

Spent nearly a month dl'ing demo. After waiting for about another hour through steam update screens, tried to start game. Now says estimated time before launching game is 600 minutes as it downloads more junk. Steam is total shit. Doesn't matter how good game is, Steam should be labelled as malware.
# January 20, 2005 1:22 PM

SirTMagus said:

Steam is total ass, agreed. But my HL2 demo seems to work fine, without any lag but the graphics...

Are totally MALFORMED. And I don't think it's a graphics card issue (though it is just the one that came with my Gateway laptop) because it's just the gamma and the character models. The screen is DARK as hell and the characters are all detail-less jet black automatons. Just black shadows walking and running back and forth. It looks like the game was dipped in crude oil. It's unplayable.

I want to know: WHY? If it IS my graphics card then, well, I'm pretty much screwed as I can't upgrade my laptop. If it's something else... what is it?

I'd really like to get this problem fixed since all my other specs are up to par.
# January 20, 2005 3:06 PM

John Walker said:

Jeff,

To be honest, I don't have this all-the-way thought through, but to me it seems they do have a dime to lose by sending out the comment spam. Bandwidth costs a lot of money, especially if you're dropping thousands, if not hundreds of thousands of automated comments. So, to me, it makes sense that if their intention is to build Google (and other) search page rankings, and they see a drop in the effectiveness of their rankings, then the money is not well spent. Hopefully they'll spend it elsewhere.
# January 20, 2005 11:21 PM

Jeff said:

You're kidding, right? You can get an unmetered 20 mbit server now for $200 a month. Assuming even a big chunk of text being spammed, that's a thousand messages per second! 3.6 million per hour!
# January 20, 2005 11:46 PM

Mischa Kroon said:

Currently there is no anti blogspam solution at work.

Which means I have to manually click on each entry in my inbox which has a blogspam thing in it, which costs time and offcourse since I'm not the admin of the blog site I can't do much about it.
# January 21, 2005 5:45 AM

Chris Garrett said:

I agree it is nice to see an aspx url as high profile as MSN search. Just proves that .net has *got* to be able to scale! I mainly love MSNSearch though because it loves me right back :O)

# January 21, 2005 6:57 AM

Rob Filth said:

I bought all legal copies of Half Life,TFC,CS,Opposing Force and Blue Shift but after my experiences trying to get the Half Life 2 demo to work I will NOT be buying Half Life 2.

Half Life 2 MAY be the greatest game in the world, but that means Jack Shit if you have to get permission each time you need to play the single player game cos of the Steam load of bollocks.

Steam was eatting up my processer usage trying to update...constantly failed on the updates and generally is the biggest and most frustrating piece of crap going.

Needless to say I just couldn't play the stupid damn game cos of the rubbish in the end. I even upgaded my system so I could (supposedly)play Half Life 2.

Sorry Valve but I paid your wages by buying legal copies of Half Life 1 but I will not be buying Half Life 2 in any shape form or size until either you drop the fucking Steam rubbish from the single player or until someone finds a hack around it so that it is not required to play the single player game.

Steam does NOT stop piracy, it penalises the ligitimate honest user from using your products. I had no intention of getting a pirated copy of Half Life 2 but the experiences with this Steam rubbish have made me to decide to boycott the game completely.

I am uninstalling as I type- there are far, far better games out there than half Life 2 purely because they do not require this authentication crap to play the single player.
# January 21, 2005 6:27 PM

Cactus Juice said:

Geeze Jeff with your experience and smarts and contacts I think you could get some work rolling w/o an agency. Reach out to your past clients once a quarter--at least. Call 'em next week. You'll feel good, you'll feel like you're your own boss. You'd be surprised how much they're gonna tell you and what projects they have going that they could use some help with and what's in the pipeline. And if for some reason that's not do-able for you (or even if it is) get 3-6 testimonials (with photos) and send them to a dozen contacts (each). You'll more work than you can cache!

I'll be honest with you, this is my least favorite...or maybe really just the part I don't feel I do that well. But it'll keep you rollin' year after year, and feeling safe. And then you'll look forward to those quarterlies (in a weird way) because the more you're paying, the more you're making. Or maybe you'll incorporate and let PayChex do your payroll for ya and your account work the tax man. Anyway, you're golden.

cheers,

Cameron
# January 21, 2005 9:38 PM

TrackBack said:

# January 22, 2005 12:59 PM

Jeff said:

Nevermind... with some guidance from a friend, I realized that the first capturing group was not necessary and causing the greedy engine to keep looking at the entire text over and over. The following still passes all of my tests and takes about .005 seconds:

text = Regex.Replace(text, @"((?<!(\A|<blockquote>|</blockquote>|</p>))(<blockquote>|<p>))", "</p>$1", RegexOptions.IgnoreCase | RegexOptions.Compiled);
# January 22, 2005 1:21 PM

Denny said:

Yep, dammed if you do and dammed if you don't ...


I am at a place where 2005 and 2.0 just look soooooo sweeeeetttttt!!!!

but they are not ready yet.....

/Me Waiting ....
# January 22, 2005 2:46 PM

Wallym said:

If it compiles, ship it.
# January 22, 2005 7:00 PM

Denny said:

Yeah, just about the dumbest ... along with someother ones that I think are made by the same shysters.... Be a Programmer in 21 days! Make lots of money!
Get A+ .... Drive Trucks in 30 days and ..... there are a few I have seen....
# January 25, 2005 8:36 PM

Steve said:

"Can you believe we get paid to play games?"

should be

"Can you believe i get to play the same level over and over and over and over and over and over and over and over and over again looking for bugs"

uggg.. no thanks
# January 26, 2005 11:27 AM

Dam said:

I agree, the nuking of TechTV is a landmark in tv history, but if I can look at Comast's view, it might be this. The gaming business spent more money on development in 2004 than the movie industry did. The average age of the game buyer is 34. Those two factors are enough to make the suits take a hard look at setting up a network devoted to gaming, and to take an established player like TechTV into their fold. What they miss though, is that cable was supposed to be able to broadcast to niche markets. TechTV had clearly found a good following, and the ad dollars proved that. Why they couldn't live side by side escapes me. But the day when anyone can broadcast on the internet is coming, and soon too. TechTV may be gone, but tech tv is in our future.
# January 27, 2005 1:20 PM

bigstu80 said:

Computers give me the fuckin shits sometimes. I did have a nice post I was typing up but IE decided to crash so in a nutshell:

Steam is THE most useless piece of software out there (above those stupid programs that open your cd tray etc) AND you need to pay for it!! Downloading the patch for the HL2 demo took 1/2 hr and 100% cpu usage. wtf???? Steam is the reason I'm not buying HL2, why do i need to log in to a server to play a local game??? shit shit shit shit shit.
# January 29, 2005 5:48 PM

thewastedsmile said:

Hehehe, Jeff. Tis a pity what happened to the channel, but at least they'll collapse into themselves soon. I mean, come on.. when the weather channel pwns your sorry ass, that says quite a bit.
# January 29, 2005 11:38 PM

Philip said:

When I try to install steam it just freezes, it doens't say that it's downloading anything ... after an hour (high speed cable connection) I've shut the install program.

Steam wasn't installed properly so I couldn't start it. But I was also not able to uninstall it since... That's getting on my nerves.

This has not really encouraged me on buying the real game, just to find out that I'll have the same problem again.
# January 30, 2005 9:28 AM

Kyle said:

I had the same thought when I first saw the changes. I visit the weather channel about every other day (more when there's supposed to be a storm or something). I'm almost now to the point of putting weatherbug back on my PC. Almost.

d8
# January 30, 2005 11:05 PM

Keith Reid Trackback said:

Don't forget to thank your mom! =8)
# January 30, 2005 11:59 PM

Phil Scott said:

For some reason, when I first went to the site I completely scanned over the link for the ten day forecast. I think the large out of place font puts my brain into skip ad mode, and I totally missed the link.
# January 31, 2005 12:45 AM

TrackBack said:

# February 1, 2005 1:08 PM

Brandon Potter said:

Regardless of the search results, it still looks like google wins on UI and un-clutteredness. I guess it was another ads vs. UI. vs. quality of information vs..... decision.

What's up with some searches where the amount of pages displayed at the bottom changes with each page of that search?

Brandon
# February 1, 2005 1:18 PM

Vic Berggren said:

I agree Jeff.

With MSN entering the arena it offers a healthier environment for website owners competing in the search engine community. Having all or the majority of the traffic come from Google is good in the short terms but could be disastrous in the long run.
# February 1, 2005 5:02 PM

Cactus Juice said:

Umm...must have been a slow day. Who watches a weather channel?
# February 1, 2005 10:21 PM

Cactus Juice said:

Nice one Jeff! Can't wait to read it. Pre-ordered from Overstock.com (I try not to give amazon my business). Anyway, looking foward to it.
# February 1, 2005 10:49 PM

Wes Haggard said:

Yeah!! You tell them. I totally agree what I do best is solve problems. If I don't know about a subject then I research and learn about it to solve the problem at hand.

Wes
# February 3, 2005 1:40 PM

Matt Warren said:

The best thing to do when someone asks you about something that you don't know about, is to say "I don't know."
# February 3, 2005 1:58 PM

Steve Hall said:

My favorite interview anecdote is from 7 years ago...

After getting past the HR rep, hiring manager, his manager, and the project leader (who all wanted to hire me ASAP), I was interviewed by an Indian H1B woman (around 22 or so) who was to be my co-worker. After playing a round of Jeopardy and Double Jeopardy...and getting all of her 3-4 dozen trivia questions correct (much to her consternation), she decided to use her most evil question (i.e., run my through one of those Klingon pain-stick gauntlets) in order to make sure I wouldn't get hired (since I wss much older than her, much more knowledgable than her, much more skilled than her, you get the picture!)

Her show-stopping evil question: "What's the second parameter of a CreateProcess function call?"

Of course, when I answered that one correctly, she was now fuming...and so she proceeded to tell me that I was wrong.

Big mistake! I had previously written course material for a bunch of night class instructors (at UC Santa Cruz Extension) and one of the sections was "Processes and Threads". I whipped out the course material I had written to prove her wrong. She asserted that my course material was erroneous, even though it had already been used in 2 quarters (6 classes) by over 300-400 students.

Needless to say, she was NOT amused to being proven wrong... I can only surmise that she had stumbled over having to spawn a process and had to write her one and only CreateProcess function call just in the previous week...and thought it would make for a good gauntlet question...no doubt, guaranteed to trip up old farts like me!

Of course, being told my course material was wrong caused me to have a LITTLE attitude problem. I asked her if the job entailed knowing how to write a CreateProcess function call on a daily, weekly, monthly, quarterly, or once a year basis. (I.e., is it a "3 times a day skill", a "once a day skill", a "once a week skill", etc.) She got even more PO'ed when I suggested that for most business applications (versus system programs), I couldn't concieve of it being more than a "once a month" or "once a quarter" skill...and thus, should NOT have to be rote memorized!

I then proceeded to grill her on why she was NOT asking about "once a day" skills instead of "once a quarter" skills...and then asserted that she was just trying to create an artificial barrier to entry because she wanted to be the "grand poobah" and make sure no one else knew more trivia or had more skills than she had.

Then I walked out of the interview...(after I told her, "A month from now, even YOU won't know the answer to your own trivia question!")

It was quite refreshing to tell off a trivia junkie!

In the following 2-3 months I walked out of 4-5 more interviews that were really nothing more than trivia gauntlets. But that was during the great DotCom Boom, when hiring managers were allowing recent college grads to interview seasoned experts (and weed out anyone over the age of 25). I'm hoping things have changed since then... (The age discrimination was blatent and sickening...)

Since I'm going to be interviewing again in the next few weeks, I was thinking of having a "Just Say NO to Trivia!" button made to wear to interviews... A simple slashed red circle with the word "Trivia" in the middle would do just fine!
# February 3, 2005 2:24 PM

Jeff said:

Good story, Steve. Well done!

I told the guy I didn't know when he asked me obscure stuff. An hour later the actual recruiter called me asking if we could move forward and I politely told him I couldn't work with someone like that, especially having an hour commute each way. Thanks for playing.

If you're a .NET person in Cleveland with a couple of years of experience, you'd have no problem finding work here if you want it. Now finding a job that fits you and is interesting... that's something else.
# February 3, 2005 2:42 PM

Steve Hall said:

Oddly enough...I moved from Cleveland to Sillycon Valley over 20 years ago. Mainly due to the limited job market back then... (The only big and stable places to work were the banks, e.g., Cleveland MisTrust, National City, and a few engineering firms...and of course, NASA LeRC, now NASA GleRC. Not much for a systems programmer like me...)

Having noticed several bloggers (such as you and Eric Wise) are in Cleveland, it would seem the job market has finally improved. Maybe I should move back! (Oh, but that dang Lake Effect weather! It was 75 here in San Jose yesterday... HHhuummm......)

Coincidently, Eric said recently on his blog (at http://codebetter.com/blogs/eric.wise/) that he's looking for an ASP.NET contract. Judging from his blog articles, i think he'd be a good guy to grab while you can!
# February 3, 2005 3:35 PM

Jason Dossett said:

Sounds like it's very much what's in very short supply -- books that are based on reality, not best case scenarios, that communicates best practices for real world issues. Good luck!
# February 4, 2005 10:51 AM

Frans Bouma said:

"and she what happens"
Jeff, that's a cool freudian typo. Who's the she? ;)

About your book proposal: most books are about scratching the surface of a new tech in 300 or so pages and explain the basic things. However often they aren't that useful in day to day development. Your proposal would be a great way to show how software development works in real life.
# February 4, 2005 12:29 PM

David Hayden said:

It might be that this is not the "right time" for such a book because I am sure we will be seeing a wave of .NET 2.0 reference books hitting the shelves in the not too distant future. You may want to re-pitch the idea in a few months.

Personally, I love "real-world" books and spend much more money on those than reference books. However, I am not sure where the book companies make their money.
# February 4, 2005 1:01 PM

Wallym said:

Not complaining at/to you, but those maps at google are REALLY BAD! They are really wrong. Google needs to get better data. BTW, the UI is really nice, but the data is just plain wrong.
# February 8, 2005 12:53 PM

Jeff said:

Uh... it's the same data that Yahoo and Mapquest uses. Which is easier to read and navigate?
# February 8, 2005 1:51 PM

CactusJuice said:

I like the Google maps better than Yahoo. And I've never cared for Mapquest.
# February 12, 2005 12:25 PM

CactusJuice said:

I have a site/app that I have been running for several years. I use it to build and hone my programming and web design skills.
# February 12, 2005 12:27 PM

CactusJuice said:

Jeff,

Thank you! I've said this before, PopForums has been of great help to me in learning ASP.NET/C#. I wish you would include some inline documentation with substance. But even without that, PF it's still much more helpful than the overly-compliacated asp.net "starter" kits.

cheers,

Cameron
# February 12, 2005 12:31 PM

Brock Allen said:

(DOH -- note the http URI (not ftp)).

Oh man, I'm working on an article on this, but I've been busy and in beta 2 the APIs are changing (yet again). I have a half-baked demo here (note it's built with the Nov CTP):

http://staff.develop.com/ballen/samples/ConfigHandler_v2.zip

HTH

-Brock
# February 14, 2005 11:06 PM

Fredrik Normén said:

Jeff:

Take a look at the Permission Manager I have build for Beta 2, it has probably everything you want to know.

http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=762350f9-7d40-44ca-8ec0-4655e1a7682b

Here is also an old post on my blog about adding child element to a section:

http://fredrik.nsquared2.com/viewpost.aspx?PostID=233
# February 15, 2005 12:01 AM

Brock Allen said:

You can't do what you're trying to do. Since you're using a timer, it might go off when there are no users accessing your application. Thus there's no HttpContext, thus no Request, etc.

Based upon what you're doing, I'd suggest caching the application path in a static field. You'll need to do this when your Init fires.

-Brock
# February 17, 2005 4:51 PM

Brock Allen said:

Oh, also note that there might be many instances of your Module created by ASP.NET, thus

1) You could end up with many timers scheduled. Is this what you intended?

2) You're using a static filed to store the timer. Each Module created will overwrite the previous timer reference. Your Dispose() only cleans up one of them, since it's in the static field. You'll end up leaking Timer objects. I doubt you want this.


# February 17, 2005 4:57 PM

Jeff said:

Why would there be more than one instance of the module? I have never, ever noticed any behavior that would indicate there was more than one of any module.
# February 17, 2005 5:06 PM

Brock Allen said:

Because that's how it's implemented. Have you tried to test more than one client at a time against your application?

Check out HttpApplicationFactory.GetNormalApplicationInstance. This is what the HttpRuntime calls to get an Application and it's set of modules. These tuples are all pooled. This means there are potentially many instances of your HttpApplication-derived class created also (the one from global.asax).

# February 17, 2005 5:17 PM

James said:

Jeff, a better method is the static HttpRuntime.AppDomainAppPath property.
# February 17, 2005 5:20 PM

Jeff said:

I don't really believe you. Like I said... there is zero evidence that there is ever more than one instance of the application (and therefore its modules). If this were not true, there would be no consistent application state of Cache.
# February 17, 2005 5:20 PM

Brock Allen said:

Ok. I was just trying to help. Good luck.
# February 17, 2005 5:22 PM

Jeff said:

Well, first you said it couldn't be done, and James gave a working solution. Then you made statements about a class that isn't even documented in the SDK, so naturally I'm skeptical without a more thorough explanation.

Don't get me wrong, I appreciate the help, but making unqualified statements makes things difficult.
# February 17, 2005 5:32 PM

Jeff said:

And where does it say there are multiple module instances?

What I'm doing in that code is the same thing I've done a hundred times to track users around a site. Rob Howard does the very same thing in his forum (on asp.net or communityserver.org). He'd know better than any of us that it's an acceptable thing to do.
# February 17, 2005 5:50 PM

James said:

Nice link Brock. I didn't know a pool of HttpApplication objects were maintained and reused.

Jeff since you don't need a request, you could either start the timer on Application_Start, or keep doing what you're doing and test in the module if timer is null before creating one (doing double check locking obviously).

Oh, fyi the Cache is also stored on the HttpRuntime :)
# February 17, 2005 5:51 PM

Drew Marsh said:

Ummm... your module instance is guarenteed to be used only by that HttpApplication instance (that's the contract). So all you need to do is stuff the application instance handed to you in Init into a member variable and then in your timer call back you use the same varible.

HTH,
Drew
# February 18, 2005 4:32 PM

Drew Marsh said:

Also the fact that you use a static Timer variable is also technically a "strange" design. You should make it an instance variable. Like I said the HttpApplication instantiates an instance of your module and their lifetimes are (basically) tied to one another. Now in a web farm there N applications running so using a static is kinda confusing. In fact, the only reason you get away with it is because each application is separated by an AppDomain which is the boundary for static variables[1].

HTH,
Drew

[1] http://blogs.msdn.com/cbrumme/archive/2003/04/15/51317.aspx
# February 18, 2005 4:36 PM

Drew Marsh said:

Oh and since I didn't actually address your problem (sorry):

First Brock's advice about the HttpContext not being available is absolultely right. The only properties you can safely access from your own thread is Application, Modules and Server. However, since the application path is determined once for the lifetime of the application instance you can just grab *that* in Init and save that as a member variable since, as you observed, Context is available in Init.

HTH,
Drew
# February 18, 2005 5:02 PM

Jeff said:

OK... I got some clarification on some of these things from Rob Howard. Yes, it's true that each request gets an instance of the module, however, it's that very reason that you MUST use a static variable for the timer, or you'll start firing off those things all over the place and kill your thread pool in virtually no time.
# February 19, 2005 1:50 AM

Michael Hensen said:

please keep me posted.. might be interressted as extension on my site management system.

With kinds regards..
# February 20, 2005 3:39 PM

Brock Allen said:

"OK... I got some clarification on some of these things from Rob Howard. Yes, it's true that each request gets an instance of the module, however, it's that very reason that you MUST use a static variable for the timer, or you'll start firing off those things all over the place and kill your thread pool in virtually no time."

Indeed. That's why creating a new one per instance of the Module in Init is not what I thought you had intended (thus my comments). The code as it stands above is insufficient. Here's a quick rewrite from memory of how it'd have to be given all the nasty goo that one can encounter:

public class Module : IHttpModule
{
public void Init(HttpApplication application)
{
if (timer == null)
{
lock (TheLock)
{
if (timer == null)
{
AppPath = HttpContext.Current.Request.ApplicationPath;

Timer temp = new Timer(new TimerCallback(this.myMethod),
application.Context, TimeSpan.Zero, new TimeSpan(0, 15, 0));
System.Threading.Thread.MemoryBarrier();
timer = temp;
}
}
}
}

static string AppPath;
static Timer timer;
static object TheLock = new object();

private void myMethod(object sender)
{
string path = AppPath;
// other stuff ...
}

public void Dispose()
{
if (timer != null)
{
lock (TheLock)
{
if (timer != null)
{
timer.Dispose();
timer = null;
}
}
}
}
}

It's possible that all of that Init stuff could have been done in a static constructor, but I'm not sure if the CLR guarentees that all static ctors have *completed* execution prior to a second thread accessing accessing the type. Also, as for the Dispose() and the double lock, I'm not too sure if it's needed.... I'd need to spend some time thinking about that one. But, as it's there now, it's perhaps over cautious, but like I said, it may not be needed.

-Brock
# February 20, 2005 11:47 PM

Brock Allen said:

Ick, sorry for the really bad code formatting. :(
# February 20, 2005 11:47 PM

Jeff said:

While I get what you're saying, the truth is that my Timer NEVER fires more frequently than scheduled. Considering it's set to fire right away, you'd think then by your logic that it would be firing constantly, but this is not the case.
# February 21, 2005 12:15 AM

Brock Allen said:

"While I get what you're saying, the truth is that my Timer NEVER fires more frequently than scheduled. Considering it's set to fire right away, you'd think then by your logic that it would be firing constantly, but this is not the case. "

It's not the Timer that's important to see more than once, it's the ctor for the Module. As I asked before, have you done any load testing? More than just your one client browser? Since this is a timing issue I'd run many clients and have my test pages take many seconds to render (Thread.Sleep(10), perhaps) to see the Modules under pseudo-stress.

Anyway, I can see you're quite obstinate about this issue. Honestly my point wasn't to criticize you, but you did ask for comments and put your code out for scrutiny. I was simply trying to tell you what I knew of the conditions that your code would see. Just because you don't see this condition today doesn't mean it doesn't or won't exist.

I'll leave it at that. Once again, good luck.
# February 21, 2005 12:38 AM

Jeff said:

I'm not taking it as criticism... what I describe has been in use with thousands of simultaneous users in a real live application. It has long since moved beyond testing.
# February 21, 2005 1:36 AM

James said:


WOW!!!!! Google Maps is the Bleeeep!!! Its going right up on my site, Thanks
# February 21, 2005 3:10 PM

Drew Marsh said:

I think you're still misunderstanding the architecture...

"OK... I got some clarification on some of these things from Rob Howard. Yes, it's true that each request gets an instance of the module,"

Actually this is false. Either you misunderstood Rob or Rob misunderstood your question. Each request *does not* get it's own instance of the module. Each instance of an HttpApplication that uses the module gets it's own instance of the module. The module instance is then held onto for the life of the application and is only disposed of when the HttpApplication is shut down.

"however, it's that very reason that you MUST use a static variable for the timer, or you'll start firing off those things all over the place and kill your thread pool in virtually no time."

Your module's Init method is called one time when the module is loaded for the application. Init is not called for each request for example, which is what I think you're thinking happens.

HTH,
Drew
# February 22, 2005 4:42 PM

Jeff said:

No, that's not what I thought... I just repeated what he said incorrectly. I understand that it's one instance per app instance, not request.

And I did some testing on this as well. I had a module log when it was created in Init and when it died in Dispose. Total number of instances in the test (with 200k requests)? Two.

I'll make sure to test to see if the static variable has an instance of the timer each time and not create another one if it's there. Problem solved.
# February 22, 2005 5:36 PM

Drew Marsh said:

Jeff,

Ah, ok cool. Glad to hear you worked it all out. :)

I'm still not sure where you'd end up with more than one instance unless your HttpApplication was recycled, in which case the AppDomain should have been recycled too thus cleaning up your static. I would place my money on not even needing to check if the timer is already there since it should never be there unless there's a serious flaw in the ASP.NET runtime.

Happy coding,
Drew
# February 22, 2005 6:03 PM

TrackBack said:

# February 22, 2005 7:38 PM

CactusJuice said:

Ix-nay on their Toolbar if they roll it out like this. Will give me an excuse I guess to check out MSN Search. I think they have the right to do it. But I also have the right to drop it from my puter.
# February 22, 2005 11:15 PM

TrackBack said:

# February 23, 2005 4:07 PM

TrackBack said:

# February 24, 2005 1:21 AM

TrackBack said:

# February 24, 2005 1:21 AM

Paul M. said:

# February 24, 2005 10:07 AM

Alex said:

# February 24, 2005 12:30 PM

Humbugs said:

These types really annoy me too. I'm a very helpful person and always very patient even with the little things, but I get bothered by people who just refuse to discover the causes of their errors. You can tell these are non-programmer types who are forced to code.
# February 24, 2005 10:08 PM

Keith said:

I like Intellicast...
http://www.intellicast.com/
# February 25, 2005 9:00 AM

Jesse said:

Sheesh, does nobody know about Weather Underground? $5/year no ads, no crap. Just do it.

http://www.wunderground.com
# February 25, 2005 11:30 PM

Drew Marsh said:

We persist it numerically as the enum's base type (i.e. int for Int32, bigint for Int64, etc.).
# March 1, 2005 5:00 PM

Steve Hurcombe said:

Hi,
We actually persist textually as we find that it makes the system easier to report on, right readable queries for, and makes it easier for new developers to pick up.

Best regards
Steve
# March 1, 2005 5:37 PM

Carl Meiser said:

Jeff,

I am also building an ad server app and would be interested in testing yours.

Maybe I even learn a thing or two from a pro like you.

Carl
# March 3, 2005 3:45 PM

fx said:

AppDomain.CurrentDomain.SetupInformation
# March 3, 2005 5:44 PM

David Hayden said:

Very cool. I would say your time spent as an entrepreneur was time well spent. You wrote a book and probably learned a ton of stuff while doing it! From reading your blog entries in the past, you also sounded like you were the happiest you have ever been.
# March 3, 2005 8:11 PM

Kevin Jensen said:

worth waiting for ASP.NET 2.0?

Kevin
# March 4, 2005 11:17 AM

Jesse Ezell said:

ComponentArt controls are the best I have ever worked with (and I've worked with a bunch of third party controls). They are insanely flexible and work great.
# March 4, 2005 12:13 PM

Phil Scott said:

We just implemented the controls ourselves on a couple of projects. The ASP.NET 2.0 menu control is just terrible. It's hard to work with or even get to look good, and really lacks a lot of the nice features the ComponentArt tool has.

And luckily the componentArt peopel actually test in browsers other than IE, which I'm pretty sure the ASP.NET stuff rarely sees.
# March 4, 2005 12:36 PM

darren said:

Solution:
1. Stop worrying about the kids self esteem and focus on three R's,

2. Remove bilingual education, it is a waste of time, effective communication only works when everyone speaks the same language,

3. Have more interscholastic competitions and have all students participate. Students need a reason to learn, competition is a good motivator.

4. Start a journeyman program for the students that don't want to go to college.
# March 4, 2005 2:27 PM

Jeff said:

1 & 2 sure are narrow-minded opinions, especially the second one given our global economy.
# March 4, 2005 2:44 PM

Drew Marsh said:

They're great, they listen to feedback in their forums and are quick to turn out fixes. One of the things that kills me about their TreeView control though is that if you use dynamic node population to avoid post-backs of the entire page, when you *do* post back the page for some other reason all the nodes that were loaded dynamically are lost. I have no clue why they can't round trip the dynamically loaded nodes using a hidden input. Other than that though we're very happy customers. :)
# March 4, 2005 2:51 PM

darren said:

I'm not saying that you should abolish learning a foreign language, far from it. I'm refering specifically to teaching hispanic students bilingual -- it is a grave disservice to them.

And if the opinions are narrow minded, so be it. There is a problem, it needs to be solved so stop screwing around and solve it.

What I see occuring in the education system are students learning how to pass a specific test to graduate, not learning why they need to learn. Schools are babysitters.

# March 5, 2005 12:19 AM

TrackBack said:

Interesting finds this morning
# March 6, 2005 10:27 AM

Chris McKenzie said:

I don't understand what's wrong with making enhancements to your database. If you separate your Data Access layer from your business objects, and unit test your code, you should be able to make whatever changes you wish.

I usually have the DataAccess operations as external objects to the Data Object they're acting on. For instance, if I have a class called "Employee", I might have an interface called IEmployeeAccess that has a Load(Employee) and Save(Employee) methods. Then I would have an implementation of IEmployeeAccess for Sql Server 2k, Sql Server 2k5, XML, Flat Text, or whatever else I wanted to be able to store an employee object in.

Is this what you're asking? or am I just misunderstanding you?
Chris
# March 8, 2005 11:28 AM

Jeff said:

With the project I'm on, there would be a ridiculous number of changes being made constantly to the point where, who knows, there could be a hundred columns before too long.

I won't give the specifics of the project, but let's compare it to an insurance calculator that collects different data by state. Some states collect certain things, others by law can't collect certain things. To make it more fun, these requirements change often more than once in a year. Creating a one-size-fits-all bucket for this data is not possible.
# March 8, 2005 1:03 PM

Dave said:

At least they are up front about it.

How would you like it if you were shopping at an ecommerce site, filled in your address and credit card info then the site screwed up while you were checking out?
Wouldn't you rather have been notified up front?

They should be applauded for admitting it doesn't work.

Perhaps you could throw them a couple dollars to support Firefox. While you are at it why don't you buy them a Mac so they can make it work there as well.


-Dave
# March 8, 2005 7:34 PM

SBC said:

We had a RM sys developed under a Groove space. The key thing in RM is the 'Req Traceability Matrix' - it links the delivered to the requirements. Have that and the rest falls into place.. ;-)
# March 8, 2005 7:45 PM

Jeff said:

With all due respect (or not at all), that's a ridiculous cop out. To expect someone to use a specific browser to do anything is stupid. For you to suggest that it takes IE to buy merchandise online is just silly.
# March 8, 2005 9:11 PM

Chris McKenzie said:

Intriguing.
In the example you gave, here is something I thought of:

You could separate related information into multiple child tables even if you are forced to use a lot of one-to-one relationships. You could define a corresponding set of rules for the data (show this, don't show that, allow change this, don't allow change that) as a separate set of tables.

If enhancements were always added as a) the enhancement itself, and b) the rule-state, then you would have a configurable system that could be a one-size-fits-all solution. Of course, you'll have to be the best judge of whether this could work or not.

Something I've done is provided a "custom" table for our clients--as each client has some special piece of data, they can basically define whatever custom data they wish. I've created separate custom data tables for each primary entity in the system, so they can have the benfit of forign-key constraints and whatnot.

Sounds like you've got your hands full though--Good Luck!

# March 8, 2005 10:38 PM

TrackBack said:

# March 8, 2005 11:28 PM

No one important. said:

Good techinical books are so hard to find. Lets see that sales ranking march on down to #1!
# March 8, 2005 11:38 PM

Ryan Phelps said:

I've been developing websites for roughly 7 years and have never had an easy time implementing advanced features in every browser out there. There are just too many differences to make sure every feature works in every browser. No matter what, someone will always be unhappy. I guess for a large company (google.com, microsoft.com, ebay.com, etc.) where funds and resources are limitless I would certainly expect the site to work in a wide variety of browsers, however, I've done work for clients who expect the world to be delivered from a technology standpoint on very small budgets. I've also worked with 1 and 2 man design shops who simply have to draw the line somewhere in order to stay in business yet do amazing work. If I found out PlayersARC was making millions of dollars per year I'd certainly lean more towards your side of this coin but since I've never heard of them I assume they're either fairly small or fairly new so I'm be slow to rip them apart. They very clearly state the requirements for using their application so I guess I don't take issue with something they post clearly. I can either choose to use the required applications or I can choose not to visit the site. Isn't this similar to almost every software application out there? Same with Java and/or Flash sites. I'm required to have software installed to use them.

As I said earlier, you can't please everyone. For example, in my personal opinion I think CoasterBuzz.com is a very poorly designed site. Does the site get a lot of traffic? Probably. Does it serve its purpose to its intended audience? Probably. Was it built perfectly to please every person in the world? No. A simple HTML validator check against it returns 298 errors. http://validator.w3.org/check?uri=http%3A%2F%2Fwww.coasterbuzz.com%2F - Have you checked this website in every browser out there? There's no way you possibly can. Besides, with all the things going on in the world, why make a point to bash someone's goal of building a recruiting website? If it doesn't work it looks like the kids will at least have a nice digital collection of their highlights and stats from what I read on the site. I don't mean to start a war with you or anything I was just very surprised at your write up of the site.

-Ryan Phelps
# March 8, 2005 11:52 PM

Jeff said:

So what you're saying is that it makes sense to store data common to all customers in "normal" tables and have a pair of tables that define and store custom data? That's kind of what I was thinking. I think that would likely perform pretty well. The big question I suppose is how one would type the custom data. I hate to say I don't see an alternative other than strings, but I don't see one. :)
# March 8, 2005 11:54 PM

TrackBack said:

# March 9, 2005 9:41 PM

Jeff said:

I'm not interested in having my site validate, I'm interested in making it work for nearly everyone. And yes, I have tested the site in IE, Firefox, Opera and Safari, effectively covering 99.99% of the people that visit my site. Hell, it even works in Netscape. I did the work, not make excuses.

And aside from having a piss-poor amateur site, I stand by the fact that their business model exploits kids and their families by playing into unrealistic expectations.
# March 9, 2005 11:37 PM

anon said:


Let COM go? But the entire app stack layer of the OS is based on COM. What are you talking about?

# March 10, 2005 6:59 AM

KevinT said:

When we order something from Amazon (in South Africa), it takes 4 to 6 weeks to get here, and half of the total cost of the product goes to shipping alone.......so you don't have it ALL bad ;-)
# March 10, 2005 7:26 AM

Jeff said:

There is not a single reason in modern development for anyone to use COM. I've been on Web, Windows and back-end projects now for years that involve everything from mom-and-pop Web sites to giant insurance processing systems that conduct millions of transactions per day. None of them need COM.
# March 10, 2005 8:00 AM

Frans Bouma said:

"None of them need COM."
erm... one of the core subsystems of windows is COM+, in the early days MTS. To have cross-process transactions, a must in enterprise applications, you need COM.

Also, in the ASP days, it was common to write your BL tier in COM components.
# March 10, 2005 8:16 AM

Jeff said:

Yes, I realize that. You're missing the point. You don't have to write code for COM anymore. I'm certainly not using ASP.old these days. My point stands... nothing I'm writing is targeted to COM.
# March 10, 2005 8:32 AM

Chris Szurgot said:

I got hit with that not to long ago myself. What made it worse was that I ordered two products, but one wasn't in stock, so they sat on the entire order until the second product came in. And then shipped them both out in separate boxes anyway. <grin>
# March 10, 2005 9:10 AM

Chris McKenzie said:

You could ask the users what type the data was and build a set of classes to generate the appropriate ALTER TABLE statements. Alternatively, you may be able to use the SQLDMO.dll to some of this work.
# March 10, 2005 9:29 PM

Nick Martini said:

Agreed; I work for a small company (6 people) and my bosses seem to actually care if we enjoy our jobs. It's a great change from working in a warehouse where people are rude and think of you as nothing more than a slave.
# March 11, 2005 1:47 PM

Fredrik Normén said:

When one of the Membership properties are called. For example, the Membership's Provider property will call the Initialize method.
# March 11, 2005 7:20 PM

Kyle said:

Apple isn't the only one attacking its fan base. MS has been going after the little guy for years. MikeRoweSoft, Wimdows, etc. I'm not sure these constitute an attempt to exploit the Microsoft/Windows trademarks, Mike Rowe was using MS technology, and Wimdows was a site (fairly popular) promoting the use of .NET technology.

Apparently, MS and Apple are big enough that they don't have to worry about losing a few customers.

-Kyle
# March 12, 2005 9:15 AM

Jeff said:

Those examples aren't exactly on behalf of people who are fans of Microsoft.
# March 12, 2005 10:12 AM

scottgu said:

VSTS Whidbey comes with a unit test framework that actually hosts unit tests within the context of a web-server -- which allows you to get around the above problem.

You could use System.Web.Hosting to create your own unit-test container -- although this wouldn't be perfect. You could fix up things like the Server.MapPath() calls above, but would have trouble simulating things like ACL permissions correctly. It would be better to build your own unittest.axd handler that you could register within the context of a real web-app, and then use it to kick off the NUnit tests. That would probably give you better fidelity to the real runtime host environment.

Hope this helps,

Scott
# March 13, 2005 1:51 AM

Brian Scott said:

The MikeRoweSoft case was settled amicably from what I read from Mike himself. Microsoft even threw in a free X-Box and paid to have the name transfered. Companies have to protect their copyrights or they could end up loosing them.

Xerox for example makes a big point during it's traing for all employees that the term Xerox is not to be used as a verb, as in "Can you xerox this doc for me?". If that became common enough usage, they could actually loose the copyright to that name.

That's a lot different than Apple trying to break down a pillar of journalism when no harm has come to them. That one right of journalist has allowed many people to come forward and expose wrong doings and illegal activity without fear of reprisal. Are the courts saying that will soon no longer be the case, or is there now a double standard for the small guys? If so, where is the line drawn? Who is protected and who isn't? How do they know? This is a big can of worms that I don't think should be opened.

If it's ok for them to do it to these guys, do you really think they will stop at that level? Of course not. Their next target could very well be some smaller online news site or your local community paper.
# March 13, 2005 1:10 PM

TrackBack said:

# March 13, 2005 4:14 PM

Jeff said:

I don't take a lot of stock in most reviews. I question that anyone who just wants code from a book knows how to compile it.
# March 13, 2005 11:20 PM

James Summerlin said:

Is Wrox really going down the tubes? This is the first I've heard of this!

Almost all of my programming books are all Wrox, so this kind of news scares me.

James
# March 14, 2005 8:33 AM

Jeff said:

The old Wrox went down financially, and the books were sold off to Wiley and Apress. Wiley got to retain the actual brand name.
# March 14, 2005 9:09 AM

Alex said:

I honestly gave my best try to use built in testing in Dec CTP on a project. UI is simply horrible and terribly slow. I agree with you 100% on every point.

I had this issue as well
Assert.AreEqual fails. Expected: <1>, Actual: <1>

If i remember correctly it was caused by enums.

I'm also very annoyed by the AreEqual<> syntax. Why add more typing? In the end it's still going to call Object.Equals(). Pointless extra work IMO.
# March 14, 2005 10:57 AM

TrackBack said:

# March 14, 2005 2:15 PM

Trent Buckingham said:

Jeff, what is your plan for evaluating Beta 2 when it comes out? Do you have a general set of criteria before you decide on using it for production code?

I have this dilemma of deploying a Beta 2 app only to find out later some critical bugs in the framework. I don't mind minor bugs in the tools/IDE, but an unexpected framework boo boo would be problematic. Considering this against deploying it in 1.1 only to spend more time converting it later to 2.0.
# March 14, 2005 2:39 PM

Joe said:

Completely agree that the ability to debug tests is a must have to do TDD - I'd raise this as a bug on LadyBug if it isn't available in Beta 2.
# March 14, 2005 2:39 PM

Joe Ross said:

Jeff,

It is possible to debug tests, just not very convenient. Apologies in advance if you know about/tried this method. See the section of this article [1] entitled "Debugging your tests". The problem I see with this method is that it has nothing to do with the Test Explorer interface, so all of the tests will be run. I have not looked into MSTest enough to see how to enable/disable the running of specific tests.

-joe

[1] http://www.itarchitect.co.uk/articles/display.asp?id=136
# March 14, 2005 2:43 PM

Paul D. Murphy said:

I'm not sure what build you are using, but in current builds you absolutly can debug inside of a test. In the newer builds you just right click inside of a test method signature and select (something like) debug this test.

hth,
Paul
# March 14, 2005 2:47 PM

Trent Buckingham said:

Thanks for the insight, Jeff.

We'll see when it comes out.
# March 14, 2005 3:41 PM

Joe said:

> ... so all of the tests will be run
which is of course not good enough: there needs to be the ability to run a specific test in the debugger.
# March 14, 2005 4:40 PM

Alex said:

What "edition" of VS do you have to have to get access to testing tools or is it included with all editions?
# March 14, 2005 5:02 PM

David M. Kean said:

Or to debug all the tests you just use Test -> Start Selected Test Project with Debugger.

The UI does take a bit to get used to - it took me half an hour just to figure out how to enable Code Coverage and the number of times I wished I could do 2 (go straight to a failure).

Apart from that, I think it rocks!
# March 14, 2005 5:07 PM

Joe Ross said:

I guess missing features is to be expected in a Beta 1 product :-)

This is from a newsgroup post at microsoft.private.whidbey.teamsystem.tester. This message was from the beginning of Deceber. Not sure if it made it into the December CTP, but hopefully, it will be in B2. Response is from a Microsoft guy:

**************

In the August Tech Preview the capability was not functional. It is,
however, functional in the sonn to be release December Tech Preview as well
as the upcoming Beta 2.

Eric

"Michael McDowell" <michael.mcdowell@cw.com> wrote in message
> Would anyone here know if it is possible to have my unit
> test break into the debugger. Currently they just ignore
> any breakpoints in my assemblies.
# March 15, 2005 9:53 AM

Sahil Malik said:

Don't be nervous. You already did your best by putting the book out there, the rest is upto god and luck and the quality of what you have already done.

My book has sold out on amazon.com 5 times now. I don't know what to make out of it except everytime I see "Only 5 left" or lower, they order more from the publisher. Atleast that is what the numbers suggest.
# March 16, 2005 1:57 AM

SBC said:


I wouldn't worry - the booksellers' inventory fills up and empties periodically (that is actually a good sign since they are selliing!).

Any chance of getting complementary copies for our .NET Developers Group (www.ctdotnet.org) - we would like to review it and also for raffles & giveways. We would be more than happy to promote your book as it does look like a very good one!
# March 16, 2005 6:53 AM

Wallym said:

I hope everything goes well with your book. I know that my first book, I was so nervous about mine and looking silly if I said anything wrong (but not in the book). I'm at the point now, where I am not too nervous about looking silly as I look silly all the time now.

Wally
# March 16, 2005 8:07 AM

Tom Arnold said:

Jeff, thanks for looking at the Beta 1 version of our testing tools. I hope you take the opportunity to look at our Beta 2 release coming out in April (we’re on track for March 31st deadline for Beta 2 of VS 2005).

In beta 2 we’ve addressed a number of the issues you mention, including your questions of how to run your unit tests under the debugger (this was not yet supported in Beta 1) The answer: you debug your unit tests just like you debug any code, using F5 or the standard debug menu commands. Plus, the "Debug checked tests" from the Test Manager and Test View windows.

Regarding your “Assert.AreEqual fails. Expected: <1>, Actual: <1>. Huh?” question, we fixed this bug in Beta 2 to tell you the expected and actual types.

Also, we have filed a bug about supporting links in the stack trace section of a failed test so that the user can navigate more easily to the code being tested.

I hope you take the opportunity to download our Beta 2 in April when it is posted to http://msdn.microsoft.com.

I’d like to hear more from you and your readers: my alias is tra2@ Microsoft if you’d like to write back.

Tom Arnold
Program Manager
Visual Studio Team Test
# March 16, 2005 12:34 PM

TrackBack said:

# March 16, 2005 1:49 PM

TrackBack said:

# March 16, 2005 1:56 PM

TrackBack said:

# March 16, 2005 4:31 PM

Norman Rasmussen said:

Ugh, I wish the VB6 'hard-core' coders would just roll over and go back to bed. Vb6 is an evolution of an old broken model all the way back from GWBasic and BasicA. With VB.NET we get a fresh start and a closer idea of good way to progam.

I have to agree that the classicvb.org idea of loading the old slow, buggy vb6 engine into the brad new visual studio.net framework would be cool, but i think they forget that the type library is soo ugly that perhaps the best thing is just to throw it out and start again.

FYI: The managed c argument doesn't work here, c has always been a very clean language, it was c++ that made it ugly and complicated.
# March 16, 2005 6:46 PM

Martin Brown said:

IMHO most companies will see a return on investment if they port VB6 to VB.Net. Ok you have an expensive hit up front, but in the long term, the reduction in maintenance costs will pay for it.

Ever had someone install a new version of MSXML or MDAC on a server only to find that all the existing apps suddenly stop working? You just don't get these kinds of issues in .Net.
# March 17, 2005 5:17 AM

stephen said:

Thanks for the kind words everyone! I just thought I'd point out, in regards to Drews comment:

"One of the things that kills me about their TreeView control though is that if you use dynamic node population to avoid post-backs of the entire page, when you *do* post back the page for some other reason all the nodes that were loaded dynamically are lost. I have no clue why they can't round trip the dynamically loaded nodes using a hidden input. "

The dynamically loaded nodes can definitely be persisted through postbacks with a few settings. Basically, you need to:

1. ensure state is enabled on the tree
2. grant each node has a unqiue, valid ID
3. set the TreeViews PersistLoadOnDemandPath property to true.

In newer versions of the tree, this last property is true by default. Of course, if anyone is having a problem with this, they should definitely let us know by opening a support request on our site- support is offered at no charge.

Again, thanks for the compliments- its great to hear we're meeting your needs.

Stephen Hatcher
Developer Support Manager
ComponentArt Inc.
# March 17, 2005 2:57 PM

Jon Galloway said:

Wish they had Search Inside The Book turned on for your book (http://www.amazon.com/exec/obidos/tg/catalog-guide/guide/-/506469/102-5856633-6416149).
# March 18, 2005 12:50 AM

Wallym said:

U are not the only one with problems there. With software, this is a very hard because the client doesn't really know what they want.
# March 18, 2005 2:15 PM

Scott McCulloch said:

I use a visio workbook with UI/Service pieces ranked easy/medium/complex/manual, and an excel workbook to automate visio to extract the objects. The excel workbook has constants for how long to develop an easy service for example.

We then use the diagrams for development
# March 18, 2005 2:27 PM

Victor Boctor said:

Currently we use <a href="http://www-306.ibm.com/software/awdtools/reqpro/">Rational ReqPro</a> for requirements tracking and <a href="http://www-306.ibm.com/software/awdtools/clearquest/">Rational ClearQuest</a> for bug tracking.

In my previous job, we used to use a product called <a href="http://www.telelogic.com/products/doorsers/">DOORS</a> for requirement tracking. We also used <a href="http://www.synergex.com/solutions/pvcs/products/tracker/">PVCS Tracker</a> for bug tracking.

I wasn't completely satisfied with any of these solutions, but I am not sure there are better ones. I hated the PVCS Tracker web interface. We never tried the web interfaces for the other products.
# March 18, 2005 4:10 PM

Cindy said:

In business and technology for 20 years ... now, I'm a first year teacher. After 1 1/2 years at the University to get my credential I would disagree with darren. After less than a year teaching, I would agree ... teaching is babysitting. By trying to keep all kids on the same page, fewer kids can excel -- alot of kids are brought down to the lowest denominator ... everyone scapegoats ... I do not think money will fix our problems. I also however think the motivation to go over seas has more to do with saving bucks and the 6 to 1 cost for resources overseas compared to the US. Question people who claim people are better educated outsside of the US - this is about money. EDU may be broken but don't let people use this as an excuse to move jobs. Yes, it sucks. And, even if most parents and students are wonderful - all it takes is a few dysfunctionals to feel like ... teaching sucks too.








# March 18, 2005 5:35 PM

Julie Lerman said:

A thousand years ago, I remember sitting in a NYC FoxPro user group meeting with one of the gurus of the FoxPro world and we were talking about the business of being a software developer. Estimating was the biggest point of discussion and confusion. The formula that this guru shared with us was "figure out what you think it will take and multiply by three".
# March 18, 2005 6:06 PM

Jerry Dennany said:

No, you don't suck - the entire industry gets this one wrong. We've been getting this wrong for several decades now, and I assume that we'll continue to get it wrong for several more.

You are not alone!
# March 18, 2005 11:41 PM

denny said:

Oh My!

well I have no interest in G4, I did tell them as nicely as possible at the start that they were going the wrong way but.... it's done.

and yes I think some rich kids who have parents that run comcast have given the kids a channel to play with so mom and dad can go make money.

there are a number of old-time TTV / ZDTV fans who would love to see the old crew get a spot somewhere to do a TSS V2.0 show.

Ehmm Mr. Gates? want to make some cash?? just fund the one show and let them syndicate it to some cable networks.
# March 19, 2005 4:47 PM

Larry said:

I think The Screen Savers went downhill once the got rid of Leo and Patrick. Once Kevin and his ditzy girlfriend took over I stopped watching it and haven't tuned in since.
# March 19, 2005 6:47 PM

Michael said:

Estimations are all about iterative development, It is about to impossible to give good estimates upfront, especially in large projects. Iterations will help. And previous stats may help as well.
# March 21, 2005 8:58 AM

Dave Kekish said:

here here.
# March 22, 2005 1:35 PM

Steve Hall said:

What's worse is that with the pricing announcements yesterday, say as a MSDN Universal user you side-grade to the MSDN Premier with VSTS Developer...for free (as part of the migration plan away from MSDN Enterprise/Universal). The cost to upgrade to MSDN Premer with VSTS Team Suite will probably be ANOTHER $2000! (Unless they're going to announce a special discount for that upgrade...)

I'm inferring this additional $2000 upgrade price from the price differential between the renewal prices quotes for MSDN Premier with VSTS Developer (~$2300) and MSDN Premier with VSTS Suite (~$4500). (See http://msdn.microsoft.com/howtobuy/vs2005/compare/ for details...) In fact, they haven't yet specified what the upgrade cost will be. But judging from the webpage, I'm pessimistic they're going to be "giving it away"...as they're going to great lengths (cannabalizing the Enterprise and Universal levels) and only us to side-grade to one of the 3 "role-based" version of VSTS.

If they stick us with a $2000 upgrade (or even a $1000 upgrade), then I guess I won't be getting the entire VSTS Suite anytime soon...and have to resort on continued use of NUnit at home... Also, that $10K price tag for new base licenses will be a hard sell at work!

Methinks they're making a really BIG pricing mistake with current MSDN Universal subscribers! (Making us jump through hoops to get "the whole enchilada"...)

New car? Who needs a new car?!?!?!
# March 22, 2005 1:49 PM

Darrell said:

I'm not sure (not being an MVP myself), but MVP status only gives you MSDN Universal access, plus maybe "Shared Source". That wouldn't even get you what you're looking for...
# March 22, 2005 2:38 PM

Ian Smith said:

Yes they're making a big mistake. As I understand it even with Universal pricing you get just one CLIENT option - The server side software is NOT included. I think what annoyed me the most was the way they tried to make out they were doing us a big favour by giving us one of the client options (architect, developer or test) when what they were really doing is saying "You thought an expensive Universal sub got you a chance to look at all Microsoft products - think again!"

I let my membership lapse for 6 months because I felt I'd got very little of value for the six months before that (prices went up but no MSDN magazine, no journal, no new cases each year). Having just signed up for a three year deal, based on rumours of Beta 2 becoming available this month, I'm seriously hacked off.
# March 22, 2005 2:53 PM

Charles Chen said:

Eh, who cares if we get unit testing in VS? I mean, we have it now...for *free* with NUnit.

VS2K5 seems like a lot of fluff.
# March 22, 2005 3:16 PM

Frans Bouma said:

"(something not getting any easier by making posts like this, I'm sure)"
I can assure you as a person who hasn't been positive about Microsoft in many ways, that being negative about Microsoft, WITH ARGUMENTS, is not a problem, on the contrary: they want (and need) people who critizise them with arguments so they know what they have to improve.

About TFS, team system is targeted at large teams, therefore, not for the average single-person ISV. Though I'm with you that MS should have done more to include the unittesting stuff into vs.net.

However, using testdriven.net today, I can't say I really miss something. True, it requires some tools here and there but has it been different in the past?
# March 22, 2005 4:06 PM

Steve Hall said:

Client-side only? Now THAT will REALLY suck! HHHuuummm.......just re-read the press release, and sure 'nuf! Only the MSDN Premier with VSTS Suite will contain the VS Team Foundation Server.

Eeh gads! It looks like Microsoft is making the same money grab that Borland did 5-6 years ago to lock up the Java development tools market. (They raised their base license pricing for C++Builder, Delphi, and JBuilder Professional versions from ~$500 to ~1000, and the upgrades from ~$200 to ~400. That's when I had to stop buying new releases each year. The Enterprise editions doubled in price also.) If you look at the current prices for Delphi Pro, Enterprise, and Architect, you can see a similarity in the pricing structure to the new VSTS pricing. Basically, it's the attitude "charge 'em 3 or 4 times more for the last 10% of the tools".

And look how Borland's market share has dwindled since then for C++Builder and Delphi... I don't know of anyone that's buying C++Builder Enterprise or Delphi Architect due to the excessively high prices ($3500)...which is higher than the current MSDN Universal. Since the renewal rates for the new MSDN Premier with VSTS Suite are higher than most Borland high-end products, MS might lose some customers back to Borland or even to up-and-coming IDEs like Eclipse!
# March 22, 2005 4:06 PM

Frans Bouma said:

I have to add that I too really don't understand the role choice you have to make. I too wear a lot of hats and it's hard to make the choice: opt for developer? Of course, but then I don't have the nice testing tools. Architect? Then I can test my stuff with the architect engine (as I write developer software) but I can't use the other tools.
# March 22, 2005 4:09 PM

Steve Hall said:

There is a bright hint of a work-around ploy (scam?) to get what we want (which now that I'm pointing to it...might get "revised").

On the MSDN Transition FAQ webpage at
http://msdn.microsoft.com/howtobuy/vs2005/faq/ the answer to the very last question seems to have a hole in it. E.g., it seems to allow for a subscriber of MSDN Premier with VSTS Developer to SWITCH to VSTS Architect at renewal time and retain the rights to use VSTS Developer. (Oh, goody goody! Dog hoops to jump through!)

If I'm reading that right, then that's probably what I'll attempt to do...provided the setup package doesn't get rigged to prevent it.

I'm kinda surprised by the answer to the question, and if my interpretation of it is correct, I'm wondering if they're going to rescind or modify that policy a year down the road. I hope not!
# March 22, 2005 4:34 PM

Steve Hall said:

# March 22, 2005 4:53 PM

Mike Gunderloy said:

Steve - I believe you're misreading the press release. Even Team Suite doesn't contain Team Foundation Server; according to http://msdn.microsoft.com/howtobuy/vs2005/compare/default.aspx Team Suite is just a bundle of the three separate Team Editions. TFS is a separate $2800 SKU.
# March 22, 2005 5:00 PM

Steve Hall said:

Well, yeah I kinda knew that! But at least switching would get a second client, eh? Or would that be useless? (You don't need the TFS in order to use the Whitehorse designers, do you?)
# March 22, 2005 5:05 PM

Frans Bouma said:

I wonder if you can even use these team system tools without team foundation server! No one has confirmed that (and knowing the trackrecord of MS, I doubt you can work with these without the spicy server version)

reading more and more about it, I get more and more annoyed about the role based choice you HAVE TO make in the MSDN option you pick, as universal apparently is discontinued? I'm a small ISV, I wear many hats, if vs.net doesn't provide the tools I need I won't switch from the free N* tools to vs.net tools.

Though, would Microsoft even care about that I wonder...
# March 22, 2005 5:29 PM

Chris Menegay said:

Ok, I still don't get everyone's problem. You can buy VS2005 Pro which has a lot of nice new features for asp.net and smart client. It sounds like everyone thinks that if Microsoft spends a lot of time and money making a new devtool, they aren't allowed to charge more money for it. That would be like owning a Toyota and expecting to get the new Lexus model when it came out for no additional cost. If the price point for the Team tools isn't to your liking, don't buy them - it's not required.

BTW, you CAN use the Team System client products without Team Foundation - though in my opinion the features of Team Foundation are about 10x more valuable than things such as unit testing, design diagrams, etc.
# March 22, 2005 11:00 PM

Steve Hall said:

It's not the pricing model that's irritating. Certainly Microsoft has the right to make a reasonable ROI, and the prices are not out of line compared to other equivalent products (i.e., SCCS's, problem tracking systems, etc.).

It's the lack of a stripped (1 CAL or 5-connection) version of TFS and the lack of all 3 role-based clients as "developer editions" that's bothering us. Eric Bowen (see the above hyperlink) said it best: it affects the efforts of a lot of small ISVs, consultants, and even corporate developers at gaining worthwhile experience in using the tools...in order they may recommend buying VSTS Suite at a company that CAN afford them.

Granted, some of this training can be achieved by 90-day eval editions, but with SCCS's, problem tracking systems, and work flow systems this becomes burdensome, because after 90-days, any source code, problems, and work items become "trapped". So, obviously, any use of a 90-day eval edition for training purposes would have to be in a contrived environment, not a real development environment. I can think of a lot of usage scenarios that I would have to contrive in order to see SCCS or problem tracking or work flow behavior...instead of just using it for a few months as a live 1-user server and letting nature take it's course with "real usage" on a limited scope project.

Basically, since they're going to include a use-limtied license for SQL2K5, then there should be no reason why they can't do the same for TFS and all 3 role-based VSTS clients. If they're worried about abuse of MSDN setup packages being illegally spread around amongst multiple developers, then they should implement license keys and activation for all copies of VSTS. (I'm actually surprised they didn't do this back with VS2002 or VS2003...)

Now back to my curiousity: Chris, you say TFS features are more attractive than unit testing and designers. What features are you talking about? Is there a webpage URL of the feature matrix? I can't seem to find it... (I know about the problem tracking and work item process flow stuff... What other features do you think are valuable? Are you talking about MSF?)
# March 23, 2005 1:01 AM

Frans Bouma said:

"If they're worried about abuse of MSDN setup packages being illegally spread around amongst multiple developers, then they should implement license keys and activation for all copies of VSTS. (I'm actually surprised they didn't do this back with VS2002 or VS2003...)"
If I recall correctly, in the latest beta of vs.net 2002, it had activation, but it was removed before the RC's. One of the disadvantages of activation is that the developer is the licensee of the tools, so s/he should be able to use the tools on any system s/he wants, though with activation, this is a bit cumbersome.
# March 23, 2005 4:08 AM

Steve Hall said:

Frans, not that I would wish this upon us, but I fear that the days of a skeleton license-key for the MSDN Universal setups for Visual Studio may be over. (Why else would they come up with this 3 "role-based" edition scheme? Possibly they caught wind that many companies were cheating by buying only a single MSDN Universal license for multiple developers. Or maybe they knew, but didn't care...until now!)

Note that many corporate developers have taken home their MSDN Universal media and installed it on their home PCs, both for working at home and for training. It's possible this new packaging scheme may even be stop that form of license sharing. (Boy, won't corp. devs be surprised!)

Regardless, turning the MSDN Universal subscription into this DRACONIAN MESS is simply going to encourage license cheaters...as a lot of us need all 3 "role-based" sets of functionality. For instance, a second way of skirting the draconian lack of VSTS Suite, is for companies that have at least 3 developers to buy one copy of each "role-based" edition, and then share the media or licenses (whichever will work) between all developers. If the installers don't disallow it and license keys don't disallow multiple activation, then it's going to happen! (I know so: here in Silicon Valley, surrounded by Java bigots, managers are cheap bastards when it comes to paying for all the licenses they really use...since in Java-land everything is free, right?)

The BIGGEST problem with the announced draconian distribution method is that even if they leave open the above hole in the install/activation scheme, single developers (ISVs, consultants, contractors, corp.devs at home) are STILL SCREWED, since we can only buy a single MSDN Premium subscription...and can't cost-justify $4500/year for VSTS Suite just to gain the training and insight we so dearly need to guide our customers or corporate employers.

The MSDN Universal subscription should NOT have been cannabalized . A 1-CAL or 5-connection version of TFS and all 3 "role-based" editions of VSTS should be bundled into MSDN Universal. All the name changing (with "Visual Studio" being dominant in the product name instead of "MSDN xxx") and the overly-complicated "transition plans" is just a pile of marketing rubbish!

My fear is that Microsoft Visual Studio (and MSDN) may have just "jumped the shark"...much the same as Borland's developer products did 5-6 years ago when they doubled and tripled the prices along with tightening their licenses.
# March 23, 2005 11:45 AM

Jeff said:

Let's be honest though... I hear over and over from Microsoft people that the real money to be made is on server licenses, not the tools.
# March 23, 2005 3:50 PM

Steve Hall said:

Precisely Jeff! Which leaves us all to wonder WHY oh WHY the draconian tool packaging/licensing scheme, and the webpage after webpage trying to explain the migraine-causing "transition".

I see this whole thing as merely a "get the VS license cheaters to pony up!" effort (which I can't fault them for trying to fix). But it'll back-fire on the honest MSDN Universal subscribers if they're not careful!

My theory is that some genius in marketing has finally crufted up a spreadsheet predicting a new revenue stream from all the VS license cheaters (er, enterprises with >5 or 6 developers),,,and said spreadsheet percolated high enough to cause this kind of massive licensing change. I.e., it's a money grab, out to soak the rich and the cheaters (leaving us poor sole developers behind).

What we need now is a "No Developer Left Behind!" initiative... THERE SHOULD BE A LAW DAMMIT!
# March 23, 2005 4:53 PM

Robert Scoble said:

I just forwarded this to the marketing team. Hope that helps.
# March 23, 2005 10:57 PM

Steve Hall said:

Robert: Could you please also forward the previous long set of rants at: http://weblogs.asp.net/jeff/archive/2005/03/22/395493.aspx
as I made several points that need to be raised with Marketing.

The big point is that it not only hurts single-developer ISVs and Consultants, but also Contractors and Corporate Developers. (Oops! That's just about ALL developers!)

A lot of crazed and passionate contractors and corp. developers (like me) have our own personnel MSDN Universal subscriptions in addition to our employer-paid-for subscriptions. This is mainly so that we can evaluate and train on products LONG BEFORE recommending them to our corporate employers. Now days, most corporations (esp. those in Silicon Valley) will NOT consider wasting time (man-weeks) or resources (the computer kind) in order to determine if a product will fit their needs: they expect Staff Software Engineers to ALREADY KNOW THIS STUFF!

The new "role-based" VSTS SKUs and lack of a bundled-in 1-CAL TFS will prevent me from DOING MY JOB. As it stands, the current company for which I work has already let my MSDN Universal expire, and there's little hope it will get reinstated since I won't be able to give a compelling cost-justification to renew and guarantee to them that it will satisfy project requirements.

The same non-recommendation for buying VSTS Team Suite and TFS will happen at my next company later this year. That's two customers you're already losing!

# March 23, 2005 11:48 PM

TrackBack said:

# March 23, 2005 11:48 PM

Steve Hall said:

Yeah! Now you're not only an official published book author, but also a QUOTED EXPERT in an e-zine! Maybe something'll get done about this mess...

I pray you aren't peeved that I've posted long rants on your blog. Hopefully Scoble will get Marketing to read ALL OF IT (esp. my little catch phrases like "jumped the shark" and "No Developer Left Behind") and have an epiphany of sorts!

(Now back to Amazon to order your book... I owe you that much for providing the "press" upon which I've published my drivel.)
# March 23, 2005 11:58 PM

Frans Bouma said:

Jeff, I made an attempt to tell what you worded much better. I full agree.
# March 24, 2005 6:06 AM

Srdjan said:

does anybody even remember CEO screaming:
"developers, developers, developers, developers, developers, developers, developers..." ?

Microsoft is finally loosing it...

# March 24, 2005 8:29 AM

TrackBack said:

# March 24, 2005 9:33 AM

Marcelo R. Lopez, Jr. said:

Everybody BUT marketing is right. Microsoft is going to use the "But they do !" excuse ? I don't buy it from my kid when he tries to get away with it, why am I going to excuse it from someone who supposedly wants my money ( or any of my clients ) ?

Jeff has it on the money ! Do you hear me ? On the money ! You think because I design software systems, I don't ever have to code or test myself ? What ? You say that doesn't make sense ? Look it's very simple....don't nickel and dime ( or in this case Washington and Lincoln ) me to death. Borland and IBM's ALM software have been ridiculously overpriced ( and I've told Sr. Architects and Product MANAGERS at Borland that too ).

Just because I'm independent much of the time doesn't mean I feel like paying the downpayment of a car ( and not even a cheap car either )whenever there's a silly upgrade. Refactoring ? It should've been there. Eclipse has had it for years now. C'mon. Generics ? Great, you just caught up to where C++ was a decade ago.

It's very simple, Enterprise customers are bigger, yes. But there are more OF US. There always will be. And guess what ? We have corporate customers too, and they listen to us. They listen to us because we're there in the data center at half past one ( in the morning ), while you're sleeping, looking at core dumps because someone forgot to apply either the latest hotfix this, or service pack that. Yes, that makes us Cog-makers, but when we speak about how the tools are inadequate ( and having seen VS2005 TS it is by NO MEAN a panacea ), you can hear the screeching tires all the way up to the company comptroller's office.

So please, besides all the bluster. The reality is that the VisualStudio really shouldn't be that expensive. The EA ( Enterprise Architect ) package should be priced more in line with the what you're looking to charge for the Professional, and the Professional should be priced more like the "standard". And before I get off my soapbox, don't get me started on how the "Academic" versions (which usually have the same features as the EA SKU) mysteriously have to cost less because they're not supposed to produce commercial software with it. What ? I need to enroll at a local Community College so I can afford to buy a package so I can stay up on the latest tech you're putting out ? Get real. Get in touch. Get out more and actually ASK "What would you pay for this ?". I would think that if you asked more indepdents and even corporate programmers themselves, the answer will be BY FAR <$1,000. Any package that goes above that, out of the box, is pricing itself far outside the realm of reality.

And while I'm at it. $25 express versions ? What is that ? Trying to compete with SharpDevelop ? Hello ?!?! There are more important things for Micrsoft to do. Like actually making it so that when you select "Check for updates", that the bloody thing actually DOES what it says it's going to do ( I know there's a fix for it. One you have CALL IN to get, that's just silly ).

I'm getting off the soapbox now, but I reserve the right get back on at a later time. Thanks Jeff, for lending me the soapbox.




# March 24, 2005 1:12 PM

Al said:

Ok, so everyone is not happy and how is that different then any other time??? Face it there is no way to make every devoloper happy so complaints come with the scene. Do we as devolopers complain about the prices of the other big toolset (Rational etc)? Large enterprises pay for this without question do we as small devolopers buy those tools no!! Do large enterprise shops buy them of course and MS has to have a competing product as well and guess what it is priced alot cheaper then the others. If you need that class of tool make the investment as I am sure it will payoff.

Al
# March 24, 2005 5:21 PM

Robert Scoble said:

Steve Hall: I can guarantee that folks around Microsoft are reading your comments.
# March 24, 2005 7:05 PM

Robert Scoble said:

Jeff: welcome to the long tail!

Where everyone can tell Bill Gates off and get into news.com! :-)
# March 24, 2005 7:09 PM

AT said:

LOL. College idea is pretty cool ;-) Migh be cheaper then MSDN + you will get new skill developed for money you have paid.

I'm thinking about my degree to be Arts or Advertising ;-)
# March 25, 2005 9:14 PM

Daniel Moth said:

Blog link of the week 12
# March 28, 2005 10:49 AM

Martin G. Brown said:

A great way of capturing requirements is in Use Cases. Beginners always get these wrong though so be sure to read "Writing Effective Use Cases" by Alistair Cockburn first.

While creating the Use Cases list the titles in Excel and stick your estimates next to each and total. Then add X%. X is a constant based on the skill of your team where I work we use 40% but we do have a good team.

The requirements you get at the start will always be wrong, but it is important to get them in a document so that when they change you can argue for more time & cash.

Finally the only way to improve is to do a full review of your estimates after each project and try to spot why you were off. Its strange how few organisations do this.
# March 28, 2005 3:28 PM

Jeff said:

Don't you think we already do that? The point that this is way before use cases.
# March 28, 2005 4:02 PM

Martin G. Brown said:

There are as many different ideas about what a Use Case is, as there are people using them. I take it to be any text that describes a process in the system to be developed. They can be detailed or very brief. At the highest level, you can describe a whole system in less than half a sheet of paper.

I usually start generating Use Cases from the first contact with my customers. At this stage, I keep them very high level. If it takes me more than an hour to do then it is a sign that I have used way too much detail. After this, I just refine the High Level Use Cases into a number of lower Use Cases until I run out of time, money or motivation.

Therefore, in my way of working there is no Before Use Cases.
# March 29, 2005 3:13 PM

Robert Scoble said:

Yup, we do have a long way to go.

I disagree that all you can do is talking head videos on the Internet, though. People like the videos I've been doing for Channel 9, for instance. http://channel9.msdn.com
# March 29, 2005 3:44 PM

Jeff said:

No... I said that Windows Media as a compression format was only good (for my tastes) for talking heads. It just falls apart a bit with fast motion unless you really crank up the bit rate. It also has some weird defaults regarding black levels that doesn't jive with nearly every other format.
# March 29, 2005 6:09 PM

Darren Neimke said:

I have to agree with you Jeff. I was in a meeting with a high profile company the other day to discuss with them why their site was a flop. I told them that the average person probably has 1-2 sites that they visit parochially on top of their blog reading and that creating new sites is very hard. Therefore, if your site is a "community site" - meaning that you need community for it to be a success - then you are probably in for a hard time.
# March 29, 2005 8:57 PM

Scott McCulloch said:

I 100% agree, I heard once that the delay (process) in putting content through the more official channels (msdn.microsoft.com) are the reasons sites like this are built.
# March 29, 2005 11:15 PM

Ron Krauter said:


Right on!! If only all this information could be consolidated in one place - MSDN

Hit F1 and you are there....

instead we have little kingdoms like you said...which will probably be competing against one another...
# March 30, 2005 12:55 AM

Jakub Skopal said:

I would like to point out, that it's only thru these little kingdoms (as you call it) and competition (as Ron calls it) when any progress is possible to be created. Little kingdoms usually have various good ideas on how to consolidate information. Discussions are good for one thing, GotDotNet for another, CodeZone for yet another. Specialization is what brings perfection...
# March 30, 2005 1:48 AM

Hannes Preishuber said:

I dont know the goals behind this "strategy" as i already pointed at my blog http://weblogs.asp.net/hpreishuber/archive/2005/03/25/395897.aspx

I understand some local issues can be solved by local sites but the overall process of community work is still not visible or can be missunderstood
# March 30, 2005 2:29 AM

Frans Bouma said:

I agree, I don't get it either. Last year at teched 2004 europe they already introduced CodeZone. I went to the site and immediately found out this was a marketing driven 'community' setup.

But marketing driven communities won't work. Communities aren't 'created', they grow. the only community which really works is asp.net's forums.

MS also doesn't get that fragmenting communities is killing the community at the same time. Developers don't have time to wade through 10 forums. They visit one, perhaps 2. I also don't get this localisation. I don't want to talk to solely dutch developers, why should I? This is the internet, I want to talk to developers everywhere if I want to, and if some marketeer cooked up some framework limit I'll go elsewhere.

I've seen a lot of communities in the past 15 years (newsgroups, fora) and perhaps it's me, but the only MS community I feel at home are the MS newsgroups. The sites I never visit are channel 9 and gotdotnet.com. Especially channel 9. It's so incredibly bad. I'm not a website designer, I don't use a Mac, I am a hardcore code writer, and I'm also not 13 anymore, though the whole channel9 community site breaths macintosh/designerish below-20s atmosphere.

Hard-core code writers want results on their searches, help NOW if they need it and want to find it NOW and easy. It's a Q&A driven community aspect which works well in other coder communities like Code Project and developer.com. People who want to write a technical article can do so, others can read it, and it has just a truckload of info. THAT's what's required for a technical community. Not some teen-graphics, silly video's and non-info babble.
# March 30, 2005 3:38 AM

Benjamin J. J. Voigt said:

Codezone is not a community, it is merely a meta community and by that means aims to strengthen already existing community efforts.

And, well, I can't say that kingdom building isn't part of the corporate life at MSFT, it certainly is part of any company at a certain size...
But I beleive Codezone in particular, however, isn't. It's actually the merger of two efforts, an European and a South American one.
In a sense Codezone might bring the consolidation you are asking for, since it is meant not to compete with it's own content...

But I do agree the messaging can be misunderstood, maybe someone of the team reads this and cares to comment on the issues...
# March 30, 2005 8:10 AM

Benjamin J. J. Voigt said:

Hmm a lot of interesting posts here , I need to subscribe to this blog :-)

But well, have you looked at DSDM (http://www.dsdm.org/)? It's quite focused on small iterations which are thus easier to plan and to estimate. Do you really need the requirements of the finalal system now? Won't they have changed by the time your have implemented the first few prototypes?

Just my 2 cents
# March 30, 2005 8:23 AM

SBC said:

Making CodeZone more relevent (under INETA)
http://weblogs.asp.net/sbchatterjee/archive/2005/03/30/396264.aspx
# March 30, 2005 11:19 AM

Imran Qureshi said:

You should really give Windows Media 9 another try. The quality has gotten really good. We encode all our movies in Windows Media format and get near DVD quality at 620 Kbps (http://www.masaladownloads.com).

Considering that a ton of users have over 512Kbps connections these days, you can watch 620 Kbps within a minute in most cases.

-Imran
# March 30, 2005 2:09 PM

Jeff said:

That's just too high of a bit rate. Bandwidth is cheap, but it's still not free. I can squeeze out near-DVD quality at a decent resolution under 300k in Sorenson/QT.
# March 30, 2005 2:50 PM

Wallym said:

I just let google decide.
# March 30, 2005 3:18 PM

SBC said:

ok Jeff - here's the deal. Send me an autographed copy of your Max ASP.NET book and I'll post a click-thru advertisement to your book at Amazon. Moreover, I'll even use your Amazon Associate id for the click-thru ad.
;-)
# March 30, 2005 7:09 PM

TrackBack said:

# March 30, 2005 11:19 PM

Sam said:

My "Piece" not peace

S
# March 31, 2005 6:50 AM

Jeff said:

Uh... no. I said what I meant.
# March 31, 2005 8:13 AM

Steve (from CT forums) said:

that would have been me, lol
# March 31, 2005 12:18 PM

James Geurts said:

One of the problems that I see with GDN is that MS treats it like they treat all of their products... rather than making incremental updates in between major code refactors, they wait it out. People have to suffer and use a system that just can't compete with sourceforge.

Yeah, MS is working on it... But as always, they're going to drop a huge update on everyone and expect people to love them for it. Personally, I find this VERY annoying.

Need another example? Look at .net. They could have released many parts of the 2.0 code base as point releases to .net 1.x. Master pages isn't that difficult to implement in 1.x.
# March 31, 2005 2:24 PM

Alex Papadimoulis said:

itjWhatever, nI vptLove adjHungarian nNotation. vTell nMe pnThis vIsn't adjEasier prepTo vRead.
# March 31, 2005 4:00 PM

SBC said:

was it my blog that you were referring to? :-)
http://weblogs.asp.net/sbchatterjee/archive/2005/03/31/396434.aspx
# March 31, 2005 4:28 PM

James Gambrell said:

Our education system is a twisted beast indeed. After early elementary school it has usually worn out its welcome in the minds of most children, after which point it becomes more and more counter-productive with each passing grade. Past elementary the typical american school becomes a social playground and babysitting service. While these two functions are useful for society and child development, the cost is teaching children to hate learning.


Our education system is patently unscientific and inneffective. Whenever reforms have been tried, they have failed. At this point the education establishment more or less totally ignores research in educational psychology, because it doesn't like what it reads. This is due to the fact that research indicates that learning is essentially a self-directed activity, dependent on the desire to learn. Our current system absolves students of their natural love of learning at a very early age. Often subjects broached in the classroom become more or less permanently tainted with negative feelings in the students minds.

Forcing children to learn Shakespeare, for instance, only teachs them to hate Shakespeare. The real purpose of education is not teaching Shakespeare, but teaching love of Shakespeare. Unfortunately, American educators lack the imagination to accomplish this. American values, oddly enough, don't give kids the freedom they need for real learning, and thus we are stuck with the current, somwhat fraudulent system.



# April 1, 2005 12:30 AM

Kevin Daly said:

I disliked Hungarian notation even when I used to use it (when it was a standard).
As Alex demonstrated so er, eloquently above, in trying to convey information about the elements of the message it obscures the message itself (the code).
# April 1, 2005 3:43 AM

SBC said:


Joel Spolsky has an example on how it was used to benefit - http://www.joelonsoftware.com/articles/FogBugzIII.html (via monsoondawn)
# April 1, 2005 6:47 AM

some developer said:

Marcelo --- you ROCK! You are so right! Microsoft is loosing the loyalty of almost everyone and now the people that bought into your .NET vision when nobody else would are getting treated like this... UGH! I should have stuck with Java, .NET is great but the tools AREN'T. VS.NET 2003 is CRAP, it crashes or freezes daily on me. VSS integration is WORSE, get latest, rebuild, oh CRAP .dll files are locked by another process?! Oh there is a hot fix for that, gotta call MS? What about the blasted Check for Updates -- oh yea that thing has NEVER WORKED!

I was sooo hoping the VS.NET 2005 w/TeamSystem would fix our woes and I could stop hearing about us switching over to Java and Eclipse because we can't get any work done.

Oh by the way I want a real MVC pattern, RAD does NOT interest C# developers... we have to architect systems not just drop controls onto a form and put code behind click events! I don't know if VB.NET guys even want to do this crap!
# April 3, 2005 3:46 AM

some developer said:

Interestingly Microsoft has pledged to use Team System to build production code in Redmond (because of all the crap they get for not using VSS in-house but continue to provide as a solution for their customers)....

Are any Microsoft applications using standard winforms development practices / controls? I mean real applications...you know like VS.NET, Office, MSN Messenger / MSN Desktop search?

I tend to think they don't use the winforms controls (because of all the bugs and work arounds we have to do to use them.... e.g. subclass DataGrid to enable row selecting and retrieving the bound object).

Why didn't they build VS.NET from scratch in C#? You know how much they would have learned? I hear some of it's C# but quite a bit of it's C++ right?

What about domain models? Does microsoft really use datasets and datatables bound to their controls? <shivers>
# April 3, 2005 3:53 AM

Aya said:

I like g4techtv!!!!!
# April 4, 2005 9:13 AM

Justin said:

I've always thought that Stallman and FSF wasn't very free at all. To qualify as Free you must be willing to relinquish any claim to the code. Fine, if you want to do that that is your choice, however Stallman and the zealots dictate that ONLY Free software should be used. So if you don't relinquish your code you are excluded from participating in the "Free" software world. Stallman wants to dictate what people can use by dictating what can't be included in his faux utopian society. He wants to be as exclusionary and controlling as the zealots claim Microsoft is. They're just a bunch of hypocrites.
# April 5, 2005 3:24 PM

democritter said:

While I don't necessarily agree with everything RMS says and does, I'm glad he's out there; and I fully support efforts to get an open and accessible BIOS, and make it standard.

While you may be correct in asserting that most people wouldn't care about being able to access and reprogram their fridge's firmware, some would; and the majority would benefit from any adaptations generated by that capability. Consider Free Speech, most people don't care that they can express unpopular political opinions without fearing jail, but they benefit from the the actions of those who do, and they have the option of doing so themselves.

As for Microsoft, I live and work in an environment where XP boxes are becoming an endangered species; most of my cow-orkers are buying Apple or hermit-crabbing Ubuntu or Freebsd onto their ia32 boxes.

And use MS on the server? It is to laugh. Who would waste that much time and money on something that requires twice the effort to stay secure?

Of course, you are attempting to defend your economic interest, and no one blames you for that, we just won't let you do it at the expense of our freedom.


# April 5, 2005 3:36 PM

Jeff said:

"And use MS on the server? It is to laugh. Who would waste that much time and money on something that requires twice the effort to stay secure?"

Spoken like someone that doesn't maintain Windows boxes. Been using them for six years, and never had a security problem I didn't create myself. Don't be a chest thumper. Any platform run by the inexperienced is insecure, and bad code can be written for any platform just as well.

It's not about the size of your genitals, it's whether or not you pay for them, and how much that has to do with being evil. Or something.
# April 5, 2005 3:44 PM

Joshua Bentham said:

One thing that you're missing is that people fundamentally *should* have a right to look under the hoods of their computers, or their refrigerators, or their cars.

Let's use an example from the autmotive world. Even though I generally purchase new cars, I make it a point to know how they work. When I have problems, I first figure out what the problem is myself and then take it to the dealer. I'll tell them what they symptoms are, and if their diagnosis is incorrect (or they "can't find a problem"), I'll tell them what I think is wrong and why. (Granted, this is after many years of experience in the car business, so I do know things about cars.)

You'd be amazed at the accuracy, or lack thereof, exhibited by many technicians even at dealerships. My favorite incident occured when a wire to the throttle position sensor broke in one of my vehicles. It took me about 2 hours, using a code-scanner and a multimeter, to figure out that there was a broken wire. Even though I knew this, and the car was under warranty, I had it towed in to the dealership. Three days later they still couldn't find a problem (even though the car ran like absolute crap). After I told them where the problem was, they quickly fixed it and I was on my way.

Could I have done that if my hood was welded shut, if I were to "trust" the manufacturer (as there isn't anything that most people can't do with their cars, as far as getting places is concerned)? Not likely. In fact, were I an attorney, I could act as an advocate for people who were ripped off by dealers, because it would be easy to figure out how those kinds of things in cars work.

The ability to figure out how things work, and even to fix them, is a fundamental neccessity in being able to protect one's own rights as well as the rights of others. Open Source is not so much about getting cool new stuff (though that is a nice side effect), it's about the preservation of rights - something done since the American revolution.
# April 5, 2005 4:03 PM

Kyle said:

So, now being for free enterprise is anti-American?

Wow. Was I wrong!
# April 5, 2005 4:13 PM

democritter said:

"Spoken like someone that doesn't maintain Windows boxes. Been using them for six years, and never had a security problem I didn't create myself. Don't be a chest thumper. Any platform run by the inexperienced is insecure, and bad code can be written for any platform just as well."

I don't maintain Windows boxes, but I know plenty of people who for whatever reason have to maintain heterogeneous networks including public facing IIS servers; and each and every one complains about the expense and effort of provisioning and managing those boxes., the only Unixish operating system that comes in for even same magnitude of bitching is RedHat versions older than 9.0.

But that's not particularly material to MS being evil. The evil part is their anti-competitive practices (for which they were found guilty in court multiple times) and most especially their efforts to subvert and capture open standards.

There's an immense reservoir of ill-will towards Microsoft out there, much of it justified (IMNSHO) by their efforts to own the customer base, and force people into using their products. That's an outstanding liability that is starting to come due
# April 5, 2005 4:20 PM

Justin said:

Joshua,

Which rights, set forth by the Founding Fathers, cover this freedom you speak of? I'm not sarcastically implying that there is a specific right but instead pointing out that people invent arbitrary rights that seem to cover whatever their desires happen to be. So is the availability of source code covered under free speech? assembly? the bearing of arms? The natural answer would be speech since that is what is invoked by the FSF folks. However, free speech guarantees my right to speak whatever I please, it does not grant the right for others to take my speech and do with it as they will.

I don't agree with your car analogy. By peeking under the hood I can't go and mass produce more cars due to the production cost associated, but if I copy your source code I can copy and distribute at will, destroying any value that it's scarcity had been granted to it by the free market. You haven't execised your right to free speech, you robbed me of mine.
# April 5, 2005 4:21 PM

Alex Papadimoulis said:

"... I know plenty of people who for whatever reason have to maintain heterogeneous networks including public facing IIS servers; and each and every one complains about the expense and effort of provisioning and managing those boxes... "

I'm going to take a educated guess here and say that they rode the short-bus to school. How fricken' hard are wizards to use? Point. Click. Read. Point. Click.

Knowing nothing of DNS, DHCP, IIS, AD, Exchange, etc. I was able to set up a windows server with all of those services. No books, no classes, just wizards. The wizards held my hand each step of the way, explaining the difference between a "root authority" and a "secondary authority."
# April 5, 2005 4:37 PM

Joshua Bentham said:

Justin,

"Which rights, set forth by the Founding Fathers, cover this freedom you speak of?"

If I were to answer that question, I would say that it comes close to the right to bear arms and the right to redress grievances. But even those rights granted by the constitution don't address what I'm discussing. (Notice that I made no mention of *constitutional* rights. The fact that the constitution grants us some rights does not preclude the granting of other rights by instruments such as state constitutions or law.)

Let me address the rights that I *am* talking about. I have the right to expect that if I pay $12,000 for a new car, that it will operate in a reasonable fasion and that I can fix it if it breaks. If I pay $12,000 for a new car and I can't fix it when it breaks, and the company who made it refuses to fix it, the state lemon law grants me the right to recover damages. (And, of course, the founding fathers had no concept of cars, so the rights for recovery under the lemon law are rights granted not by the constitution, but by state law.)

"if I copy your source code I can copy and distribute at will, destroying any value that it's scarcity had been granted to it by the free market. You haven't execised your right to free speech, you robbed me of mine."

Did I indicate anywhere that I supported the copying of everything? No, and I am insulted that you would imply such a thing. I would be more than happy to pay full price for Windows XP, Office, or other software packages if my situation dictated a need for those things. I've paid money for development tools in the past. I just try to arrange my situations so they don't need tools with proprietary licenses.

Suppose I *want* to release things that I do so people *can* copy those things? It's my right to do so. Just as it's my right (and your right) to keep some of the intellectual property I produce (you produce) to gain monetary income from it.

I fail to see how I'm "robbing your right to free speech" by using software that has been released for free, or by peeking under the hood of my car or my computer. Care to elaborate on that?

# April 5, 2005 5:10 PM

Justin said:

Joshua,

While I may have used the "you" pronoun in my argument I was referring more in general to the people who insist that the world only use free software devoid of any financial gain in lieu of some egalitarian vision. I don't know you personally nor what you do, so just calm down, I was simply framing my argument.

"Suppose I *want* to release things that I do so people *can* copy those things? It's my right to do so. Just as it's my right (and your right) to keep some of the intellectual property I produce (you produce) to gain monetary income from it."

That is exactly the point I was trying to get across. An environment comprised of only Free Software would rob you of that right.

"I fail to see how I'm "robbing your right to free speech" by using software that has been released for free, or by peeking under the hood of my car or my computer. Care to elaborate on that?"

So you contend that you aren't robbed of any rights because you have the choice of Windows XP (all proprietary) / Debian (all Free)*, which is correct, you make the choice. The point often made by Free Software zealots is that MS wants to eliminate the Debian choice to perpetuate their monopoly. The FSF WANTS THE EXACT SAME LACK OF CHOICE! Proprietary software cannot exist in an FSF world, you've lost your right to sell your intellectual property. It's the same imposition of will except with a phisophical angle instead of a monetary one.

* Everyone: Please don't point out 20,000 different distros and their various licenses. The point is to establish the environment created by one group absense the presence of another.
# April 5, 2005 5:34 PM

Jeff said:

"I have the right to expect that if I pay $12,000 for a new car, that it will operate in a reasonable fasion and that I can fix it if it breaks."

Apples/oranges example. If you can't fix that car, and you know you can't fix it, you're free to buy a different one. Same goes for software. If Windows or Office "breaks," you can't look at the source code, and you know that. So you don't buy it. The market decided.

And comparing car repair to altering code, someone else's code at that, is like saying that because I can apply a band-aid I can perform brain surgery.

You need a better metaphor, because that one sucks.
# April 5, 2005 5:55 PM

mschaef said:

"The market dictates what it needs, and companies make products to meet those needs"

I argue that Open Source is actually _more_ market driven than Closed Source software. Once I license a piece of closed source software, I become tied to my vendor to whatever extent I need ongoing support for that software package. If I'm a VB6 developer, I have to go to Microsoft for ongoing support and product development, I am entirely at the mercy of my one vendor, a monopoly. (True, I could always reimplement whatever it is I've done in VB, but that represents a sizable barrier to competition).

However, in the event that VB6 was open source, even if one vendor decided to stop supporting the platform, somebody else could determine if there was enough money in the market to justify offering support. With a big enough market there might even be multiple vendors, each equally able to offer support, and compete for my support dollar, thus lowering prices. In this manner, open source moves the market economy from license fees (which noone really cares about, after the initial purchase) to support fees and level of support issues (which are of critical importance to end users while they're actually using the software (which is 99% of the lifecycle of their software decision)).
# April 5, 2005 6:00 PM

mschaef said:

"The FSF WANTS THE EXACT SAME LACK OF CHOICE! "

Even if they wanted to, the 'loyal opposition' to forces as strong as Microsoft and its army of lawyers and lobbyists don't have the luxury of taking half-assed positions...
# April 5, 2005 6:06 PM

Justin said:

"Even if they wanted to, the 'loyal opposition' to forces as strong as Microsoft and its army of lawyers and lobbyists don't have the luxury of taking half-assed positions... "

Fine. Take whatever position you want just have the balls to admit your hypocrisy.
# April 5, 2005 6:51 PM

mschaef said:

"Fine. Take whatever position you want just have the balls to admit your hypocrisy. "

They != me.

Personally, I believe that the market economy ought to be able to decide between the two license agreements. If there are real benefits to closed source, then pick a closed source license. If there are real benefits to open source, then pick an open source license. The key is that this choice be able to be made, hopefully with as much freedom to choose as possible. Lock in, doesn't help the matter any.

From a developers point of view, rather than a consumers' point of view, I've said this in the past:

"The only way the GPL requires someone to give away their personal property rights is if they agree to the GPL by writing code under the GPL or contributing to a GPL'd work. Under Linux, individual contributors can even retain copyright on the work they submit. If you don't want to give away the rights to your code you have a bunch of choices: pick a different license, don't sign over your copyright, don't contribute your code to a project with disagreeable license terms. Just like the choice to buy Microsoft software, it is a choice, with a certain cost, to contribute to GPL'd software. If you don't like it, don't make the choice.

With respect to limitations of choice, the only difference in choice that I see is that I can't choose to contribute to or alter closed source software. I'm dependant on the vendor for fixes, for software support, for file format support, for hardware support, and for future evolution of the software. Just ask anybody who's sunk a bunch of energy into VB6 code: Why is making myself or my business so dependant on something over which I have very limited control better for a market economy? The answer is that it's not, you need more choice than closed software offers..."

http://pensieve.thinkingms.com/CommentView,guid,1eab0c67-3e2a-427e-936c-1b03da573160.aspx

That's nice and all, but wwhat I'd really like is for someone to argue effectively against my point regarding the market economy fostered by open source. Why should I pay for license fees that don't guarantee much of anything, when what I really want is software with a predictable lifecycle and good support for the issues I care about. The incentive structures are wrong in the closed source pay for license model.
# April 5, 2005 7:20 PM

AndrewSeven said:

Joshua:
You found the problem with the car, but you didn't fix the wire, nor replace it with a different wire that you felt was more appropriate. You didn't dstribute the new wire to everyone with the same model so that they could not encounter the same problem.
I don't think it is a good metaphor, the car may physicaly be open, but you chose not to alter it for a reason.

I'm willing to give away code sometimes, with a free use license, but not with GPL.

If I can have better software (open,GPL,closed,shareware) for less money, thats great, but I'm not willing to to turn over my code as a price for working with it.

An open source VB6, ugh, imagine the still-dedicated-to-VB6 users changing the Linux kernel.
# April 5, 2005 7:50 PM

Justin said:

"Why should I pay for license fees that don't guarantee much of anything, when what I really want is software with a predictable lifecycle and good support for the issues I care about. The incentive structures are wrong in the closed source pay for license model. "

But there is no guarantee that the open source community will be there to provide that support if your feature is too niche oriented. If the proprietary vendor leaves the market segment there is a chance that the open source crowd will too, not because the open source crowd apes proprietary but maybe just because the demand for the product dried up, a handful of holdouts may not be enough to warrant community support. Unless you are at the skill level to maintain the application yourself you still don't get the predictable lifecycle or good support that you stated. Hell, look at Debian, most people are screaming for a new Sarge release but a few decision makers are delivering anything but a predictable lifecycle.
# April 5, 2005 10:02 PM

Dean Harding said:

From what I read in the article, it looks to me like the main reason Stallman wants the BIOS to be Open-Sourced is so he can work around DRM. At least, that was the point he kept coming back to...
# April 5, 2005 10:03 PM

mschaef said:

"But there is no guarantee that the open source community will be there to provide that support if your feature is too niche oriented."

I think you misunderstand: I agree that there's no guarantee that the open source "community" will provide support out of the goodness of its heart. However, even if nobody steps up you always at least have the option of paying somebody to do the support or development you need. Contrast this to closed source development, where the vendor owns the code, so if the vendor decides to stop supporting the software (or goes out of business), you're pretty much completely out of luck.

To put it in real terms: lets say I needed a new feature in VB6 or a bug fix for a particular issue in Window XP (this one's is from my work: it's been bugging me since NT4). How much money would I have to pay Microsoft to make it worth their while? The reality of buying software from a closed source vendor is that it's the vendor's economics that drive the development of the software: not mine. Hopefully those things coincide, but if Microsoft's shareholders' best interests conflict with mine, then they are legally obligated to make decisions against my interest, whether it be discontinuing VB6 or failing to fix my bug in NT, or whatever else.

"If the proprietary vendor leaves the market segment there is a chance that the open source crowd will too, not because the open source crowd apes proprietary but maybe just because the demand for the product dried up, a handful of holdouts may not be enough to warrant community support. "

The difference is that you aren't limited to getting support from the authors of the software (in this case, the community). If I need a new featuer in an open source package I can: lobby the community to do the work for me, do the work myself and submit a patch (or not), hire a consultant to do the work for me, or possibly select from one of several competing vendors of support for the package to have them do the work. The point is that I have options and I can take responsibility for my fate.

If I buy software from a closed source vendor, my one option for new features is to try to persuade that one vendor (who will be acting in the interests of their owners, not necessarily mine). If that one option fails me, then there's nothing

"Unless you are at the skill level to maintain the application yourself you still don't get the predictable lifecycle or good support that you stated."

Or... unless you can find someone else who's at that point.

"Hell, look at Debian, most people are screaming for a new Sarge release but a few decision makers are delivering anything but a predictable lifecycle. "

At the worst case, there's always the option of forking...

The point is that with closed source software, once the purchasing decision is made and time/money in sunk into the system you've bought, there's a high barrier to any kind of change, and a high barrier to letting the market economy do anything to lower your costs.
# April 6, 2005 9:46 AM

mschaef said:

"From what I read in the article, it looks to me like the main reason Stallman wants the BIOS to be Open-Sourced is so he can work around DRM. At least, that was the point he kept coming back to... "

DRM is one of the ways open source could be shut down entirely. If operating systems need to be somehow 'signed' to boot, then there's not much room for open source OS development. DRM effectively takes 'root' away from computer owners and hands it over to hardware and software vendors. In my view, DRM is a way for Microsoft to align their interests with those of the Hollywood crowd.

The saddest part of all of this is that it all basically amounts to taking away freedom and responsiblity from individuals. (Which were the principles on which the US was founded and became great).
# April 6, 2005 9:53 AM

Joshua Bentham said:

Justin,

"The FSF WANTS THE EXACT SAME LACK OF CHOICE! Proprietary software cannot exist in an FSF world, you've lost your right to sell your intellectual property."

A-ha! So we are in agreement, it just took a little while to get there. I'm not totalitarian in wanting free software; I'm willing to buy software that I feel is priced appropriately and that I have a need for.

My anaology is not being understood correctly. If you are assuming that I am equating the open-car with the ability to distribute free copies, then yes, the analogy would be flawed. But I'm not suggesting that. I'm using the openness as a method to redress grievances or correct problems. Microsoft's Shared Source initiative would provide the same benefit, if they let you make changes to code to correct bugs and if there was not the risk that they'd sue you for any software you wrote afterwards.

Yes, you're right, I can just go out and buy another car if my current one is not fixable; but you have not addressed the fact that the manufacturer of the car has violated my rights by selling me a lemon. I'm still out the value of $12,000 - I don't have the money and I don't have the vehicle that is worth the money - and that issue needs to be addressed. Opening the hood and finding the problem myself is one way to address that issue. It's a similar situation if I have an installation of Word that is not working correctly (or has eaten a document) due to a bug. If it were OpenOffice on Linux, I could address any issues by figuring out the problem myself. If it was Word on XP, I'd have to pay Microsoft to figure it out for me - so I'm at the mercy of Microsoft.

The open-car analogy has another parellel to open-source: you can indeed modify your car and distribute the modifications. It's not as easy as distributing software because there are actual materials involved (and materials cost money), but there is a *huge* market for aftermarket modifications to cars (essentially, the distribution of modifications). Look at any messageboard about cars; you'll find lots of information to increase your gas mileage or make your car go faster or corner better. It's the same as distributing an open-source app to make your OS faster, except with the car analogy you have to "execute" the instructions yourself instead of having the computer execute them. If you couldn't open your hood, that market would go away.
# April 6, 2005 10:01 AM

Jeff said:

Did I mention that comparing car repair to writing software is insane?

And who is making new VB6 apps today? Whoever the project sponsors are should be fired.
# April 6, 2005 12:54 PM

Joshua Bentham said:

" Did I mention that comparing car repair to writing software is insane?"

You know, you're right! I am therefore glad I did not make that comparison.

However, fixing software (and resolving software problems) is very much comparable to fixing cars (and resolving car problems). Such a comparison would definitely be sane.

# April 6, 2005 1:23 PM

mschaef said:

"And who is making new VB6 apps today? "

Who cares who's making new VB6 apps today? I agree with you that that would be a _stupid, stupid_ decision. What matters more are (the tens of billions of dollars sunk into) existing VB6 apps. Those folks have no recourse, thanks in part to the closed source model.

In any event, the VB6 situation is just one example of the perils of closed source software.
# April 6, 2005 1:31 PM

Jeff said:

Even if you're still band-aiding a VB6 app, that's insane. We've known it would go away now for at least four years, and while it had a place in the market, it was never a very robust platform to begin with.

"However, fixing software (and resolving software problems) is very much comparable to fixing cars (and resolving car problems). Such a comparison would definitely be sane."

In what universe? I could swap out an engine in a car, and I might account for perhaps .01% of the population. People that can fix software, that's like .0001% of the population. That's why those people make two or three times what mechanics do.

And come to think of it, I've never had to, nor would I want to, "fix" code for an application I purchased. Neither would my mom or a secretary or an executive vice president.
# April 6, 2005 2:02 PM

TrackBack said:

# April 6, 2005 2:14 PM

Chris McKenzie said:

Hear Hear
# April 6, 2005 2:56 PM

democritter said:

Alex Said:
"""
I'm going to take a educated guess here and say that they rode the short-bus to school. How fricken' hard are wizards to use? Point. Click. Read. Point. Click.

Knowing nothing of DNS, DHCP, IIS, AD, Exchange, etc. I was able to set up a windows server with all of those services. No books, no classes, just wizards. The wizards held my hand each step of the way, explaining the difference between a "root authority" and a "secondary authority."
"""

Well Alex, all I can say is that people who do know their network protocols; and actually test the security of their installations and don't just throw boxes onto the network without understanding in detail what they are actually doing; find that Microsoft products require significantly more coddling and special treatment to achieve what they view as an acceptable level of security. And while I'm sure that being able to poke your way through the drag-n-drool setup wizard gives you a _feeling_ of competence and control; that does not substitute for the reality, as you will no doubt discover at some point.

I'm guessing that it comes down to a difference in perspective; people who want to get up and running quickly, without needing to understand what their tools are doing in detail use proprietary tools and get vendor lock-in. Those of us who are building heavily used infrastructure that needs to run 24/7/365 and who therefore need to be able to adapt the tools to the task following good engineering principles use widely available peer-reviewed tools whose strengths and weaknesses are known and knowable rather than stringing black boxes together.



# April 6, 2005 3:14 PM

Paul Wilson said:

Sounds like you have too many cats. :)
Just kidding -- just thought your mentioning them was hilarious.
# April 6, 2005 3:35 PM

Jeff said:

Well, despite being nearly 32, we haven't hatched any humans yet, so I couldn't say anything about feeding kids.
# April 6, 2005 3:37 PM

Darren Neimke said:

Hi Jeff... I use the same technique. Effectively a table of name/value pairs which I call "Attributes". That way you can just select all of the Attributes for a given entity easily and it keeps your schema simple and clean.
# April 6, 2005 6:08 PM

TrackBack said:

# April 6, 2005 11:08 PM

TrackBack said:

# April 6, 2005 11:12 PM

mschaef said:

"And come to think of it, I've never had to, nor would I want to, "fix" code for an application I purchased. Neither would my mom or a secretary or an executive vice president. "

Why should we all be restricted to what you want to do? (Or your mom, secretary, or EVP.) One of the effects of DRM, by shutting down open source, would be to restrict us _all_ that that level, where we have to take what we're offered and be happy with it.

99% of the time, that's what I do myself, but that extra 1% is too useful to give up, particularly for something as inane as copy protection on "Gigli".
# April 7, 2005 10:44 AM

Jeff said:

Dude... you don't get it. It has nothing to do with what *I* want to do, it has to do with what the *majority* of *customers* want and need, and how that relates to the vendor's business objectives. If anyone can be accused of screaming "me me me," it's you.

If you want code you can mess around with, write it yourself or use an open source project, but don't be so bold as to declare anything that doesn't fit that criteria as "evil."
# April 7, 2005 11:05 AM

mschaef said:

"If anyone can be accused of screaming "me me me," it's you."

That's not necessarily a bad thing. The capitalist economy is driven by people "screaming 'me me me'".

"it has to do with what the *majority* of *customers* want and need, and how that relates to the vendor's business objectives."

As long as vendors and consumers can continue decide between open and closed source license terms, the market can actually decide what it wants. If the choice gets forced in either direction, then the market is distorted and won't necessarily reflect "what the *majority* of *customers* want and need".

"...don't be so bold as to declare anything that doesn't fit that criteria as "evil." "

I'm not (even close to) Richard Stallman. Re-read the post I made on 4/5/2005 7:20 PM:

"Personally, I believe that the market economy ought to be able to decide between the two license agreements. If there are real benefits to closed source, then pick a closed source license. If there are real benefits to open source, then pick an open source license. The key is that this choice be able to be made,"

I've never declared closed source to be "evil", in fact, I've worked on closed software myself for the entirity of my professional life. That said, open source does have the possibility to be a better choice for valid "business reasons", and if DRM (or whatever else) makes it illegal to develop competitive open source software, then that is a very bad outcome.
# April 7, 2005 11:26 AM

Joshua Bentham said:

"In what universe? I could swap out an engine in a car, and I might account for perhaps .01% of the population. People that can fix software, that's like .0001% of the population."

Jeff, where are you getting those numbers? I'd like to know what they're based off of, because according to the US Bureau of Labor Statistics in 2002 there were 499,000 computer programmers and 818,000 automotive technicians. Now, I understand that there are more people who can do either task that are not in either profession, but you seem to be basing your statistics on professionals only, as is evident with this statement:

" That's why those people make two or three times what mechanics do. "

Really? On average, the automotive techs I know make perhaps 75-150% of the developers I know (assuming an average tech wage of $40-100k per year, and an average developer salary of $40-60k per year.)

So the numbers don't seem to support your assertion that there are 100x as many people who swap engines as who debug programs.

Also, your headline is mis-written. Something like "The Free Software Foundation is no less evil than corporations" is more appropriate, as a software distribution method cannot inherently be evil. Even then you'd be on shaky ground, because the FSF only advocates freedom, yet Microsft has demonstrated evil actions time and time again (deliberately falsifying evidence in a court of law, bribing highly placed government officials).
# April 7, 2005 12:38 PM

Jeff said:

I'm surprised it took this long to get the black choppers involved.

If you don't have developer gigs around you that pay more than $60k a year, you must not live in the U.S. I don't know anyone here that would even talk to someone for less than that.
# April 7, 2005 12:47 PM

Joshua Bentham said:


"If you don't have developer gigs around you that pay more than $60k a year, you must not live in the U.S. I don't know anyone here that would even talk to someone for less than that."

Really? What part of the U.S. do you live in - I'm guessing Silicon Valley or DC? There are plenty of opportunities available in rural areas that are in the $40k range, but when you consider that you could buy 10 acres and a reasonably-sized home for less than $120k (where something comparable in the valley would cost millions, if it were even available), that's not so bad. Even within the US, the cost of living can differ by factors of ten or more depending on where you are.

In fact, there are companies built around outsourcing to rural US communities that offer rates comparable to outsourcing to India.

And I'm sorry if I can't understand my own arguments, but where did black choppers come in to the picture?
# April 8, 2005 10:48 AM

Jeff said:

Cleveland, Ohio. And probably Columbus, maybe Pittsburgh. Cleveland is hot because Progressive Insurance can't find enough .NET people to fill the cubes. Even if you get in via a contractor, don't settle for less than $50+ an hour.

I doubt there's anywhere left in Ohio within 75 miles of the I-71 corridor where you can buy 10 acres and a house for $120k. My .195 acres with a house was $180k and I'm not even in the same county as Cleveland!
# April 8, 2005 11:28 AM

Phil said:

Oh yum. A job in a cube for a "Progressive Insurance company", churning the wheels of captialism so I can make rich people richer, all in the *lovely* surroundings of Ohio and its many *wonderful* cities.

I'd need far more than $50 an hour and a "$180k house" to stomach that :)

btw. Who cares how much your house costs? You only added that to flex your ego, not as part of any valid discussion.

Hence the reason for this reply.
# April 8, 2005 8:10 PM

TrackBack said:

# April 10, 2005 6:30 PM

Jeff said:

Don't be stupid Phil or start calling names like a kid. It's not about me, it was a response regarding the relative cost of living around here after Joshua's post.
# April 10, 2005 10:04 PM

Richard Tallent said:

1. Easy answer: ye olde HashTable.

2. Move it to another object that provides and caches the information as-needed rather than mussing about with the core object.

3. Dropping XML into a database field--ugh! Why not design the database correctly in the first place? A simple FKUserID/name/value table would do nicely and give you searchability when you eventually need it.
# April 11, 2005 1:55 AM

Richard Tallent said:

Sorry, wrote a response on my blog earlier, must have forgotten to come back and link to it:

http://www.tallent.us/blog/CommentView.aspx?guid=f08909fa-5437-4168-a2c9-1ba36126649f
# April 11, 2005 1:58 AM

Jeff said:

The object representation is not something I was even remotely interested in getting your opinion on. I was speaking strictly of persisting the data.
# April 11, 2005 1:46 PM

Joshua Bentham said:

"I doubt there's anywhere left in Ohio within 75 miles of the I-71 corridor where you can buy 10 acres and a house for $120k. My .195 acres with a house was $180k and I'm not even in the same county as Cleveland!"

Ok, I admit the 10ac/$120k was a bit of a stretch, but I've been looking for property around the Mt. Vernon (Ohio) area and I foud three properties, 5-15 acres, for under $140k. I did find one property of 13 acres for $125k.

But back to the original idea. I know more than a few excellent technicians who work at dealers and make more than $50 per hour. I also know mediocre techs who make more than $25 per hour. Very few of the non-consultant developers I know make in the $50/hr range, and this is in Columbus.

Of course, this is all a tangent because you still haven't proven how Open Source is no less evil than Microsoft. I can think of more than a few deliberate acts by Microsoft to steal IP, suffocate markets, and falsify court evidence. While the FSF promotes some interesting ideas, their actions are limited to promoting a system of economical thought.
# April 11, 2005 3:29 PM

sureshot said:

Jeff, I have the book. I got it on Friday through theregister . I really like it. I think its the 'next step' book for people who have read 'unleashing asp.net' or wrox 'pro asp.net' before going onto heavier reads like Fowlers & GOF stuff. It bridges a gap for people who have come from more scripted languages into an OO world. I like your writing style, and although I can't say that any topic was unknown to me, I certainly understood them all infinitely better once I'd finished reading. keep up the good work. can i request that your next book is '.Net Design Patterns For Dummies' to help bridge the gap further.
# April 12, 2005 10:04 AM

Jeff said:

Thanks. Feel free to write an Amazon review. :)

Your suggestion about a design pattern book is a really good idea. I read most of the Head First Design Patterns book (technically for Java, but easy to understand for C# people), and it was a refreshing read on a ridiculously boring subject. We need something like that in the .NET space, although I don't know that we need all of the pictures.

The biggest issue is trying to pitch something like that. The more advanced you get, the smaller the audience. Marketing means so much in computer book publishing. It was a real pain trying to position this book, even though I knew exactly who I was writing for. It's hard to convey that sometimes. The first draft of the back cover text was absolutely horrible (I didn't write it). What's on there now isn't horrible, but I think the preface is the real seller. I only hope people bother to read it when considering a purchase.
# April 12, 2005 11:06 AM

Fredrik Normén said:

You can't set a theme in Beta 2 either on a Master Page.
# April 13, 2005 4:59 AM

Hannes Preishuber said:

you can set the theme in web.config
or per code
# April 13, 2005 7:57 AM

Jeff said:

I'm aware of that... but it's not what I want.

It sure seems like an obvious problem. I can't believe they didn't change it.
# April 13, 2005 8:32 AM

Benjamin J. J. Voigt said:

It's good data, but I think it's rather old, and - of cause you know that - you should never trust a stat you forged yourself... this survey also is only a snapshot. I find the between-the-lines message (Blogs are becoming more important every day) which can be discovered through a myriad of similar surveys to be more interesting. This tells me blogs _are_ more and more influential even to consumers.

Also consider that, if the sample was representative, not all people are equally a target audience for every business, so the 30% might, or very well, might not be the next shopper at dell.com or in the local Diesel store...
# April 14, 2005 2:46 PM

foobar said:

Index the QT file so that it's streamable. I think you'll be somewhat surprised as to how large the QT file gets.
# April 15, 2005 11:49 AM

Roy @ VsDevCentral said:

To start off with, I am impressed with the quality of QT videos. However, getting a very good quality video, in a small size, with Windows Media is possible if done correctly. Try either using Windows Medai encoder directly, or use Vegas Video (that is what I use for editing). Usually I will use Vegas to create a DV file, and then Windows Media encoder to create the WMV (but I have done it all in Vegas as well).
# April 15, 2005 12:42 PM

Jeff said:

I've tried every compression tool (Cleaner, Squeeze, etc.) and played with different settings endlessly, and for the same bit rate, you can't even get close to the same quality with WM. There's no contest.

And QT already streams just fine via HTTP... yet another thing going for it.
# April 15, 2005 12:54 PM

foobar said:

> And QT already streams just fine via HTTP... yet another thing going for it.

If you haven't set up a QT streaming server (Darwin, etc) then you're not streaming... You're downloading the file...
# April 15, 2005 12:59 PM

Jeff said:

And if it's embedded in a page, the user doesn't know the difference. Who cares?
# April 15, 2005 1:12 PM

foobar said:

Then what was the point of your comment? WM also downloads fine over HTTP. So does Real, mpegs, etc...

There are also bandwidth considerations when not using a streaming server, but I'll let you figure that out yourself...
# April 15, 2005 3:29 PM

Jeff said:

The point is still that the quality blows. Which part of that wasn't clear?
# April 15, 2005 7:25 PM

Anon. said:

Well with Microsoft being big and attracting smart cookies these recruits tend to get into pissing contests about who does it better and scoring brownie points as they move up their career ladders.

For the leaders, who've played this game out earlier in their lives they understand that competition, especially in-house, can be very productive at identifying those who can deliver and should be supported further.

May the best site win I guess or dog-eat-dog perhaps.
# April 20, 2005 12:23 AM

James Geurts said:

Very cool... thanks for the info!
# April 22, 2005 9:56 AM

TrackBack said:

Interesting finds this week
# April 23, 2005 8:55 AM

Erik Porter said:

Very well said and it's refreshing to hear there are a few people that have similar thoughts (like mine). :) I just feel that a lot of people get caught up in this because they think it is a black and white issue. Really, there's almost never such a thing. I'm glad you posted what you thought about it. Better than I did (not posting about it at all). ;)
# April 26, 2005 1:08 AM

Scott Galloway said:

I don't think the problem people have is Microsoft HAVING a neutral position, rather Microsoft adopting a neutral position from a formerly pro position - that is a lot more powerful. This is especially toubling since there seems to be a strong 'coincidnce' around a senior Microsoft exec meeting a religious nut and MS taking this position. Also, this bill (which I assume you've read!) specifically related to employment rights - something I would thing Microsoft would have an interest in. Just as a thought excercise, how would you feel is MS decided to withdraw support from a bill supporting anti-discrimination legislation for people with a disability?
# April 26, 2005 2:08 AM

Ian Smith said:

I find it hard to resolve your name-calling ("attention whoring") with your claim for "basic human respect"!
# April 26, 2005 2:41 AM

Robert Scoble said:

Microsoft has been taking this position for eight years. it's not a new position.

Oh, and look at IBM's record. It has been ahead of a bunch of social issues.

So, if you were running a company in Nazi Germany I guess you would just say "do whatever you need to do to make a buck" right?

You wouldn't be alone. Look into the hisory of Krupps, for instance. http://www.one35th.com/model/k5/k5_krupp.htm
# April 26, 2005 5:12 AM

Brandon Potter said:

Ballmer definitely made the right choice.

If Scoble (who is somehow comparing a large software development company today with Germany in the 1930's..... ?) feels that the issue should be supported, then he needs to print out a big sign, take a few days off, and go stand in front of some government buildings, not whine and make absurd comparisons about why Ballmer won't unfairly take every MS employee and turn them into a political weapon.

And we're calling "the reverend figure" the extremist?
# April 26, 2005 7:54 AM

Steve Rhodes said:


Microsoft has and should continue to be against discrimination. It is the right thing to do.

If Microsoft has been around during the civil rights era, would you have said it was the right thing to back away from supporting
non-discrimination legislation because bigots threatened a boycott?

And Microsoft does have a non-discrimination policy. And some Microsoft employees may have a problem with it (though I doubt that they are split down the middle - they're more enlightened than you give them credit for). If they don't hire someone who is gay or lesbian, they are both violating company policy and hurting Microsoft because those will just make something somewhere else that will be better than what you do.

The controversy over the decision is irresponsible to shareholders. The threat of a boycott was a pretty empty one. I really doubt too many conservatives would have switched to a mac or linux, but there have been plenty of progressives who've wanted to for a long time and now you've given them another reason to.

# April 26, 2005 7:56 AM

Jeff said:

Scoble sayz: "Microsoft has been taking this position for eight years. it's not a new position."

And have they changed their discrimination policy or eliminated domestic partner benefits? No, of course they haven't.

What does any of it have to do with Nazi Germany? That's about the lamest thing you can bring into any argument on the Internet, a Usenet classic. The slaughter of millions of Jews is hardly on par with Microsoft's decision to not get involved with local legislation. Frankly the suggestion that they have anything to do with each other is insulting.

It's not Microsoft's job to start picking legislative fights unless it's a matter that affects its business. Microsoft's job is to make great software and maintain shareholder value.

What Erik said above is correct... this is far from a black and white issue.
# April 26, 2005 8:28 AM

Robert Scoble said:

>Frankly the suggestion that they have anything to do with each other is insulting.

I hear you.

But, you're not hearing me.

That's cool. It happens often.

It seems to be that you're saying that a company only has one responsibility: to make money for its shareholders. That's cool. So, if you were on Krupps' board in the 1930s, we know which way you'd have gone. Understood.
# April 26, 2005 2:22 PM

Jeff said:

No, you're putting words in my mouth. You're smarter than that, so stop being stupid. Not a black and white issue.
# April 26, 2005 3:09 PM

realcyber said:

comcast should stick with cable service & get out of the TV biz
they have tanked techtv
# April 28, 2005 2:38 AM

Sahil Malik said:

I'd ask "How the heck did I get locked in a room with you guys?"
# April 28, 2005 11:45 AM

Damien Guard said:

Check out FCKEditor at http://www.fckeditor.net/

It provides a full set of editing controls that work with both the IE and Mozilla/Firefox edit systems.

Even if it's not suitable you could learn a thing or two from the source, it's LGPL'ed.

[)amien
# April 28, 2005 12:08 PM

Charles Chen said:

"I'd ask 'How the heck did I get locked in a room with you guys?'"

LOL, we have a winnah!! :)
# April 28, 2005 12:14 PM

OmegaSupreme said:

The dude on the right is thinking :

'why did they have to wear such ridiculous costumes' ;)

Sure hope Billy G can do some real good for the 3rd world though.
# April 28, 2005 12:36 PM

Sahil Malik said:

LOL :)
# April 28, 2005 6:03 PM

Bjarne said:

You can use value.substring along with selectionStart and selectionEnd. Something like this:

function ForumMarkUp(strTb, strType)
{

if (window.getSelection) //true for Firefox, maybe IE too?
{

if (strType == "bold")
{
document.getElementById(strTb).value = document.getElementById(strTb).value.substring(0,document.getElementById(strTb).selectionStart) + "[b]" + document.getElementById(strTb).value.substring(document.getElementById(strTb).selectionStart,document.getElementById(strTb).selectionEnd) + "[/b]" + document.getElementById(strTb).value.substring(document.getElementById(strTb).selectionEnd,document.getElementById(strTb).value.length);
}

}

}
# April 29, 2005 1:26 AM

Marc Hoeppner said:

Check out http://www.freetextbox.com, works for both IE and Firefox!!
# April 29, 2005 3:02 AM

Jeff said:

I'm well aware of FreeTextBox, and it's too bulky. It also doesn't render stuff in non-CSS mode in Firefox even though the latest version says it shoud.
# April 29, 2005 8:13 AM

Nyl said:

As a large Microsoft shareholder as well as loyal Microsoft product user, I was disgusted by Microsoft's stand on gay rights. Microsoft, as are many in favor of eliminating discrimination in this country, is being cowed by a bunch of right wing religious bigots. Microsoft should do the right thing and speak out against discrimination in any form. The position of Steve Rhoades (the writer posted above) is absolutely right. It is irresponsible to employees, shareholders and product users to implicitly support bigotry, just as it was the wrong thing to do against black people during the civil rights period, and jews earlier in the 20th century. There are also millions of people who used Microsoft programs who are just as passionate, if not vocal, in their advocacy of gay rights.

Microsoft should do the right thing and not be afraid. After all, the management never worried before about the threat of any consumer actions before. I do not believe Microsoft is in any sense a monopoly, but certainly as a leader in the computer software business, Microsoft has an ethical responsibility to set the tone for the industry.
# May 3, 2005 5:57 AM

So? said:

Depending on your sample size - only 2/3s of people know what a computer is. And even then only 1/8th know how to use it.

# May 8, 2005 12:05 AM

boombox said:

# May 9, 2005 11:01 AM

Steve Smith said:

Yeah, that was pretty cool. Alienware's getting a lot of play time, too, but as the force of evil...
# May 10, 2005 12:13 AM

Wallym said:

I wonder how much the product placement cost? Not that it is bad, just wondering.

Wally
# May 10, 2005 11:43 AM

Right Wing said:

"What does any of it have to do with Nazi Germany? That's about the lamest thing you can bring into any argument on the Internet, a Usenet classic. The slaughter of millions of Jews is hardly on par with Microsoft's decision to not get involved with local legislation. Frankly the suggestion that they have anything to do with each other is insulting."

yeah, so true. Liberals love to label anything that is contrary to their opinion as 'Nazi' or someone contrary to their opinion as a 'Hitler.' In fact they love to attach many labels to said individuals. You don't agree with homosexuality? Surely you must be a 'Bigot' as was mentioned in an earlier post, or perhaps even a 'right wing religious bigot.' Liberals want to force their believes down everyone's throat and in doing so are closer to being 'Nazi' or 'Hitler' then 'right wing religious bigots' are. There is a difference between acceptance and tolerance. I tolerate homo's but I don't accept it. Forget religion, which is just a crutch for people to lean on because they can not accept the finality of death, instead consider nature. If nature had intended for two males to be 'intimate' then they would have the ability to procreate and thus continue the species. Yeah, I know what you thinking, 'right wing religious, I mean right wing nonreligious bigot'
# May 12, 2005 12:41 PM

Jeff said:

Don't be a moron. Liberals and conservatives alike are guilty of it.
# May 12, 2005 1:56 PM

MAF said:

I was just at a cisco conference today. They said they gave fox some equipment for the plug
# May 12, 2005 4:56 PM

TrackBack said:

# May 16, 2005 8:45 PM

TrackBack said:

# May 16, 2005 8:45 PM

TrackBack said:

# May 19, 2005 4:50 AM

Rory Primrose said:

I have an HP nx9110 which also had a power problem. I had it repaired after a couple of months because it got so unreliable on the AC power. I still like my laptop, but the lecky tape thing is scary.
# May 22, 2005 8:45 PM

Scott said:

hmmmm, I was able to find a replacement system board for my wife's Toshiba laptop for sale. I ended up not needing it though, I was able to re-solder the connection I needed. Could you order a replacement system board cheaper than a new laptop?
# May 23, 2005 1:01 AM

Jeff said:

I found someone that sells the actual jack, so I'm going to try soldering that in first. It's so tiny, but I have to give it a shot.
# May 23, 2005 1:15 AM

denny said:

jeff: try www.laptopparts.com I got Dell parts from the and they were great.

here are main boards for hp laptops:
http://www.laptopparts.com/laptop-motherboard/hp-motherboard.asp?cidx=240382923-5X23X2005Y6Z25Z34YAM
# May 23, 2005 9:28 AM

Tiernan OToole said:

Not really. check out http://www.textamerica.com. you can setup a moblog there. you can send your photos via either email or MMS. i used it for a while, but now i use flickr (www.flickr.com) and hopefully eventually i will write a custom app, but thats for later. hope this helps!
# May 23, 2005 5:46 PM

Wim Hollebrandse said:

If you're going to do it yourself, I'd use POP3 to send an e-mail with picture attachment from the phone to an e-mail address of a mail server on which you run your own little apps, and have some service monitor this mailbox for messsages, use the subject for title of your post and message body (text Mime part) for the full description. And obviously the Base64 mime part which will contain the encoded attched image data.

At least that's how I've done this before.

Good luck!

Wim
# May 23, 2005 6:20 PM

Kent Sharkey said:

Most of the sites like TextAmerica, MSN and others have you email from the phone to an address like: userid.password@whereever.com. They then do the magic to get things in place.
# May 23, 2005 10:52 PM

// Rutger said:

I 'm not able to install services on my webserver so I fire a thread that polls a specific mailbox for messages each X minutes. Fairly easy thoug.
# May 24, 2005 2:44 AM

Allen said:

Not sure if may help but Dell is having $750.00 off their notebooks today.

http://arstechnica.com/news.ars/post/20050524-4937.html
# May 24, 2005 8:20 AM

Jeff said:

Well, I guess that's an easy no-brainer decision. $756 to get what I actually want. Done.
# May 24, 2005 10:33 AM

Steve Hurcombe said:

Hi,
http://www.devmail.net/

We spent a lot of time finding the best component to do this - and devmail is it...it'll do inline and non-inlined attachments.

Be far the most flexible. It does have some free functionality, and the commercial license isn't too bad when u see what you get.

Saved me days of work!

Support is excellent too...

Best regards
Steve
# May 27, 2005 5:02 PM

Chris Frazier said:

There's some pop functionality in dasBlog...

ah, there it is...Lesnikowski.Pawel.Mail.Pop3:

http://lesnikowski.fm.interia.pl/
# May 27, 2005 5:13 PM

Wim Hollebrandse said:

Well - if you're talking about commercial components as Steve is - Dave Wanta's aspNetEmail and aspNetMime do an absolutely amazing job...for a decent license fee.
# May 27, 2005 6:19 PM

Thomas Tomiczek said:

Sorry, but what the heck you you need a POP3 assembly for?

POP3 is SO trivial that basically you can write a connector in what - 5 minutes? 10 minutes?

Note that POP3 is only about downloads. Not about doing anything WITH the emails.
# May 28, 2005 6:13 AM

Jeff said:

Thank you for that extra special reminder... this was not intended to be an opportunity for you to demonstrate the size of your genitals. You're talking to a guy that described how to do a SMTP exchange in his book.

Read my post. If I wanted to do it myself, I would. I don't.
# May 28, 2005 10:45 AM

Ross said:

aspNetEmail and aspNetMime together is only for Smtp, for POP3 features you will need a separate license for aspNetPop3. When combined together, the license fee is a bit too much compared to devMail.Net ( http://www.devmail.net ) which bundles Smtp, Pop3 and Mime in a single package.
# May 28, 2005 10:46 AM

Wim Hollebrandse said:

Sorry - yes you're right Ross, I meant aspNetPop.net. But aspNetMime takes care of the parsing, and can be used with the Pop3 messages.
# May 28, 2005 12:07 PM

James Crowley said:

http://www.developerfusion.com/show/4071/ might also be worth a look - though you'll have to cut and paste the code yourself ;-)
# May 28, 2005 12:57 PM

Jonathan Roberts said:

The INDY 10 library which is a Delphi port is free and extensive, free documentation is elusive,
http://www.atozed.com/indy/
# May 28, 2005 1:05 PM

Kent Sharkey said:

PHP also has the advantage that ISPs can make it available with very low costs -- between Linux, PHP and MySQL/Postgres, their cost of making it available in a hosting plan is about $0. Compare this to ASP.NET that requires at least Windows Server 2003.

However, I agree with you that the Code+Markup crowd feel that PHP is easier to learn and get working. I can't imagine many big systems written with PHP being all that maintainable, though -- although I have been surprised in the past.

Is it better for the Internet? I guess. It means there are more Web developers out there.
# May 28, 2005 8:15 PM

Jeff said:

I totally disagree about the cost thing. You always need people to maintain this stuff, and as a percentage of costs, licensing is always a minor component.
# May 28, 2005 9:42 PM

Jack said:

I have a HP pavilion ZE1210 with the same problem. I have not been able to find the manual to download. I wonder if HP has a design problem and are waiting for fires before they react.
# May 28, 2005 11:31 PM

Kent Sharkey said:

I dunno, how much does it cost to maintain a Linux server (my company's advertising notwithstanding) vs. a Windows Server 2003 box? If I'm an ISP, both get set up, and rarely touched (except for patches, etc.). Sure, licensing is only a small component, but so is leaving old, fully depreciated hardware in action making money off of the many people firing up small vanity sites using PHP.

Oh, and the fact that schools teach it these days (again because of licensing for right or wrong) tends to have a play as well, IMO.
# May 28, 2005 11:41 PM

jdee said:

It's an excellent read. I recommend it to everyone. i've reviewed it on my blog.
# June 6, 2005 5:28 AM

CJ said:

"If the book never sells more than ten copies, that made it worth it."

Unless, of course, the IMer goes on to write the Skynet virus. ;)
# June 7, 2005 5:23 PM

mxskweeb said:

Can you post a link to your book for sale? I'm too lazy to go search for it right now :)
# June 8, 2005 11:55 AM

Jeff said:

The ad is on the left side of this page...

http://www.amazon.com/exec/obidos/ASIN/0321294475/coasterbuzz-20
# June 8, 2005 12:06 PM

mxskweeb said:

Doh! Overly enthusiastic use of the adblock plugin makes me look like a dork!
# June 8, 2005 4:14 PM

Thomas Tomiczek said:

I test this against an access database - there is a master in source control, and the test works against a copy.

Works fine for most things. When I need to operate against SQL Server, I test against a database and modify my code to rollback instead of commit :-)
# June 15, 2005 2:36 AM

Atul Thakor said:

With data access there are so many unknowns such as identity field values, you cant simply compare objects. My collegue Andrew Stopford (http://weblogs.asp.net/astopford) has mentioned something about moc objects but I havent had much chance to dig into this.

Most of my code uses data readers and i tend to reference them by column number rather than name (for performance).

For this reason there are several things i check within the unit test.

1. There is data coming back.
2. The data in the column is of the correct format
3. Referencing by column number and referencing by columnn name are the same.


NB: Samples are all in C# and are a guideline only.
1. //ensure we there is data available
if(!dr.read())
{
Assert.Fail("No Data Returned");
}

2. //try and set the data to the type you want the try-catch block will indicate any cast/conversion errors
try
{
string ColNumVal = dr.GetString(0);
string ColRefVal = dr["myCol"].ToString();
}Catch()
{
Assert.Fail("Col 0 Data cast/conversion error");
}

3. //we check referencing the value by column and by name return the same value.
if( ColNumVal != ColRefVal)
{
Assert.Fail("Col 0 data not consistence with column name reference");

}


I hope this helps, if you need anymore insight please ask.
# June 15, 2005 3:30 AM

singalg said:

"My HP laptop has had a problem with maintaining a good power supply connection since I got it in 2003, requiring you to sometimes jiggle the cord at the laptop to get it to maintain power. Finally, yesterday, it stopped working entirely."

Hello, I think I have the same problem as mentioned above. Once I get it to power, I have to keep it very still so as any minute movement may put it back to battery.
The model number is HP pavilion zx5070US.

Does it need a change in the power jack? Woud like to know if the power jack is integrated in the motherboard for these models???? Is there any schematic diagram available for the mother boards of this series of HP?
# June 15, 2005 3:37 AM

Daniel Fernandes said:

Atul, I don't think that accessing columns by number is wise.
I prefer to pay a (very small) performance penalty price than risking breaking code because somebody changed the data structure or the SQL/Stored Procedure code.
# June 15, 2005 4:13 AM

Atul Thakor said:

Daniel, I would say that when your working with a substantial amount of data this 'very small' performance penalty soon mounts up.

One of the major points of Unit Testing is Regression testing to ensure that as changes are made the underlying system functions still remain constant and work as required by the business logic.

The Unit Test column check is in place to ensure that if the data structure is altered and no longer works with the function the test will fail and will indicate that the current changes have caused the working build to fail.

If you really wanted to you could use:

dr.GetString(dr.GetOrdinal(“mycol”)) to get the column ordinal and then use this.
You could also map the ordinals once and re-use them which would be pretty good.

Imagine a int32 the way you suggest:
int i = Convert.ToInt32(dr["myCol"])

This is well known to be less effecient than int i = dr.GetInt32(0).


It all boils down to how much you care about the performance of your system, me personally I try to use best practice and prefer the code to run with performance in mind than readability.

# June 15, 2005 5:27 AM

Roy Osherove said:

See my MSDN article dealing with exactly these issues: how do you test your data access layer?
http://msdn.microsoft.com/msdnmag/issues/05/06/UnitTesting/default.aspx
# June 15, 2005 8:13 AM

Atul Thakor said:

Roy, had a read of the article not sure where it directly address's the problems of say for example: Reading data from the database and testing the returned data against the expected result.
# June 15, 2005 9:13 AM

Jeff said:

The jack is mounted on the surface of the motherboard, and as mentioned in a later entry, I got a replacement (see link above) and soldered it on. I still bought a new laptop.
# June 15, 2005 9:21 AM

Jeff said:

If your SELECT is calling out each column, using the ordinals is fine, and it's what I do on everything now.

# June 15, 2005 9:29 AM

Brent Holliman said:

There is a great tool out there called Sherpa that actually builds unit tests for each of your entities in an OOD. Go check this thing out... I've never seen anything like it. http://www.propersonal.com
Hope this helps...
# June 15, 2005 9:39 AM

Srinath said:

I am having the same trouble also. Mine is an HP Pavilion n5340. The power connector seems to have come off of the mother board and I don't know what to do. Is there a way I can fix this?
# June 15, 2005 4:54 PM

David Hayden said:

How right you are. Fomatting a new Dell PC is a must.

Not only have I noticed a substantial reduction in boot time, but I bet I get a 20% increase in performance in general.
# June 16, 2005 7:04 PM

JosephCooney said:

I just got a similar Inspiron 6000 - I got a 1.8~something GHz cpu, 2 GB RAM and 1920 x 1200 res screen. Sadly the screen did not work properly "out of the box" but once they fixed that it has worked very nicely. I re-installed XP pro from scratch too. It rocks for VPC.
# June 17, 2005 2:55 AM

Frans Bouma said:

Heh I too got an inspiron 6000 very recently (1.8ghz) (though not with the discount you got), and maaan was it slow the first time I booted it, indeed Dell loads a lot of crap on it, I had 15 or so icons in the system tray!

After repavement, it's very very nice.

To get it actually from Dell was another story though. I had to call in 3 times to get my order re-re-re-resubmitted and it worked. I ordered a laptop bag 2 days ago and I haven't received a confirmation again... they start to fall apart apparently.

Did you know they re-enter every order made online in their system by hand (in india) ? Neither did I until I suddenly had a 17" monitor on another order I didn't include online. After phoning them, they explained that to me. Amazing, how a company who advertises 24/7 business is critical-kinda blabla isn't very up to speed with modern technologies...
# June 17, 2005 4:08 AM

Tommy said:

I recently ordered a Dell, then the next day decided to cancel the order. I called Dell to cancel the order and they informed me that it had already shipped. The rep on the phone then said "What if we give you another $75 off the price, would you keep it then? I told him I would think about it and he then said "If you decide to keep it at full price, we'll give you $100 worth of Dell accessories."

Barter with them after it's been shipped...you may just get additional $$ off :)
# June 17, 2005 6:55 AM

lisa said:

"The only minor complaint I had was that I had to blow away the entire hard drive and nuke all of the crap that Dell loaded on it. Seriously, it took several minutes to boot, so I figured it was easier just to start over and download the drivers. "



Hey, sorry if this is a very dumb question, but.... how do you reformat the hardrive on a new dell, and how do you then download new drivers after (re)installing xp? i guess you had to buy xp (not the upgrade) as well....

anyone with some patience care to walk this newbie thru the process step by step? (think of it as your "good deed" for the week?)

shortly after i bought my desktop (dimension 8400 with all the bells and whistles) and hooked up the dsl, i got a virus. (mcafee caught it, but in the process of eliminating it, theeir website help sight directions said to turn of "restore", do the "fix", then turn restore back on. obviously, that eliminates the possibility of "restoring" my pc back to "just out of the box" condition if i encounter any problems down the line...which, at this point, i have....
anyways, thanks in advance!
l
# June 17, 2005 7:54 AM

Frans Bouma said:

Well, BEFORE you repave a dell hdd, first backup 'drivers' and 'dell' folders to a usb stick. Then repave, then copy these back and run the driver reset utility in one of these dell folders. Reboot, bingo :)
# June 17, 2005 9:58 AM

Tracy said:

System Restore is not a reinstall of XP- it's just a "safety net" that allows you to go back a day or so if you have some sort of system error (like a bad driver update, etc...). I've had it fix a few things- not a bad thing to have available.

I actually have no trouble when reinstalling with an OEM CD & then going through & manually removing all of the junk/demoware afterwards. It's isn't necessary to have a retail XP disc to speed up your PC substantially. I just delivered an HP PC that is now absolutely like lightning compared to how it was "out of the box".

Save your data first (including backing up your address book & email settings). Here's how I do an OEM cleanup:

After reinstalling, go into add/remove programs to remove the junkware tossed in by whoever you bought your computer from (ANY demo- including & especially the bloated Norton or McAfee)- there are better freeware programs available than the stuff they inject. Keep the antivirus in place until you have the one mentioned below* downloaded on your PC. If you're on broadband, unplug from the net while you uninstall one/install the other. I also like to restart the PC between these two steps.

Get Firefox web browser from here & install it: http://www.mozilla.org/products/firefox/
Make it your default browser. It’s less likely to pick up spyware, due to it’s default settings, than Internet Explorer.

Once installed, open it & go to tools>extensions>get more extensions. You want to search, download, & install “Adblock” & “IEView”. Adblock lets you right-click an image on a page & block it. IEView lets you right-click a page, if it has been designed to render properly only in Internet Explorer, & choose “open in IE”- which launches that same page in IE. Feel free to peruse all of the other extensions. I also use “Foxytunes” music player. Note: extensions do not take effect until you close & reopen Firefox.

Get, from www.majorgeeks.com:

Diskeeper Lite (defragmenter),

Adaware (spyware remover),
Spybot: Search & Destroy (spyware remover),
Microsoft Antispyware (W2K & XP only),
<-- yes, you should use all three…>

*AVG antivirus,
Zonealarm firewall- all of these programs are free.

Firefox downloads everything to your desktop, by default. When you install Zonealarm, make sure you choose the free version during the setup (not the free trial)…

Install & run Diskeeper. Install/update & run the rest after you defrag.

Right-click My Computer>properties>advanced tab>performance settings>tick "adjust for best performance"- which will clear all boxes>then tick the last 6 items only>apply/Ok. System restore tab>adjust to 3% max. from 12% default. 12% of any drive is an awful lot of "reserved" space. Most people restore back one or two days when they see a problem- you don't need weeks-worth of restore points.

Right-click My Computer>explore>right-click "C" drive>properties>disk cleanup. When the cleanup is done, uncheck "allow indexing to index this drive"- this is a major drag on your system & I have found no issues whatsoever turning this off- but a big overall performance increase. If a box comes up saying it cannot change/access a certain file- click "ignore or ignore all" & it will complete.

Get all Windows updates. Defrag, again, after they are all done & up-to-date. Lastly, right-click My Computer>explore>right-click "C" drive>properties>tools>error checking>tick both boxes & restart after the dialog box tells you it needs to run at the next boot. This is checking that none of the system files are corrupt. There are 5 stages- 1-3 go fast, 4 & 5 take longer (average 15- 20 mins. total to complete).


I have all of these previously mentioned programs set to be run, manually, once per week- the exception being AVG & Zonealarm. I have Windows automatic updating turned off- but that is up to you. If you don't think you can remember to run a small set of programs once a week- you can autoset them. However, if you install many programs
that must monitor your system 24/7, such as this, you will begin to see a performance hit. I also feel that manually running a program puts you more “in touch” with the workings of the program.

If you have SP2 (service pack 2) you will be constantly nagged by MS pop-ups about your system & security unless you disable the alerts:

Start>control panel>security center>on the left-hand side- uncheck all of the boxes that are listed under the “change the way security center alerts me”.


I create a folder on my desktop: "run once per week", & drag the desktop icons into this folder. That way, I don’t forget to run any of them- they’re all in one place.

There are a few other tweaks but we’ll start with this. Let me know if this makes sense & if there are any questions?

Tracy
tuppertutor(at)hotmail.com




# June 17, 2005 10:12 AM

eric said:

dude, my finance got a dell 6000 and its freakin slowwwww. like almost as slow as her old 700mhz p3 ibm. can all that shitty software slow it down that much? i'd rather just uninstall stuff that wipe it.
# June 20, 2005 11:49 AM

Jeff said:

Mine performs really well unless I run Photoshop, but as the disk churning indicates, that's because I only got 256 MB of RAM. Will likely upgrade sooner or later.
# June 20, 2005 3:25 PM

sara said:

I got a similar deal back in october. Love those $750 off 1500.

I'm sure you will find you like it. I got an 8600 with similar specs as yours and haven't run into any issues and I'm able to run VS, illustrator, or photoshop with no problems.

# June 21, 2005 8:44 PM

smelliot said:

After having been in and around and doing .NET for ~3 years- there are things I read about on the practice tests and questions people can remember from the test that have -aboslutely- nothing to do with the sort of development and architecturing I do on a daily basis.

That's why, when reviewing resumes- having passed the cert's means just nothing to me except that I can probably more easily pick off those who won't be able to do what I need (they, invariably, have their certs...)
# June 21, 2005 9:23 PM

re: Girls want boyfriends with skills, gosh! (So d said:

Old news. Much of MS Cert has been memorization since day 1.

TDD is not a must. I work in a big Java house right now where much of the pages go through no TDD...but the sites still rock. Time to stop crying about the VS.NET offerings, Microsoft spent a crap load of time and money working this out. I'm a MSFT shareholder and I'm happy with my return.
# June 21, 2005 11:17 PM

Jeff said:

Good for you. You be all you can be. I guess since you say it's OK we should all just settle. Dude, your phone is ringing, it's Bill Gates!
# June 21, 2005 11:22 PM

Martin Brown said:

As a MS developer with 10 years experience I have also come to the conclusion that MS Certs don't mean that much.

The trouble is that the HR types found in big companies and Job Agents are lazy. Making Certs a requirement allows easy CV filtering. As a result, if you don't have the Cert you often won’t get a look-in.

My favourite interview question is this: "The users of our comic selling web site are complaining that the ‘Character Search’ page is taking too long to produce its results. How would you go about finding out what the issue is?"

This sort of question will force the candidate to ask intelligent questions about the architecture. It will give you a good idea of their problem solving abilities. When they start talking about using the Trace class you can slip in a question on the syntax. This also leads to more of a relaxed discussion rather than an aggressive challenge response type interview.






# June 22, 2005 8:06 AM

James said:

ctrl + alt + p = win
# June 24, 2005 1:06 AM

anon said:


"Attach to process" was not in the Visual Basic editor, so it's not in Visual Studio.NET either.
# June 24, 2005 1:47 AM

Jeff said:

What does that have to do with anything? It's a part of Visual Studio 2003, I use it on my desktop every day.
# June 24, 2005 9:15 AM

Reynhout Yves said:

Wild guess... did you install C++ support or native debugging?
# June 24, 2005 11:42 AM

Jeff said:

Nope... is that good or bad? I don't recall installing C++ on any of my machines, but not sure about native debug.
# June 24, 2005 12:10 PM

Scott said:

Mine is under "Debug -> Processes -> Attach to Process".
# June 24, 2005 12:59 PM

Scott said:

errr, "Attach" I mean. Not "Attach to Process"
# June 24, 2005 1:00 PM

Dean Harding said:

What's the difference between Debug->Attach to Process... and what the Debug->Processes... dialog give you?

I don't remember ever having anything different to what Debug->Processes... gives me today?
# June 26, 2005 11:43 PM

David Hayden said:

When I had installed SQL Express stuff in the past, I needed to re-register sqldmo.dll to get Enterprise Manager to be happy again.
# July 1, 2005 4:28 PM

Jeff said:

You know, that's probably it. I reinstalled the last SQL service pack for giggles, and what do you know, all is well again.
# July 1, 2005 6:49 PM

Dover said:

Completely agree with this one. I hate to be tested with gimmicky crap only to end up doing data entry. I'm applying for a job and not joining a cult. Companies have the privilege to do what they want, but the whole brain teaser thing is just so 1998.
# July 5, 2005 11:23 AM

Wallym said:

Yeah, I think that the recruiting practices at big companies are a pain. Though, the keep playing the games in the negotiation process.
# July 5, 2005 12:06 PM

Rod said:

Dude

Get a better Video Card


Rod
# July 5, 2005 4:18 PM

Jeff said:

Dude, get a clue. The video card has nothing to do with it. It's a 6800GT!
# July 5, 2005 4:29 PM

Erik Porter said:

Totally agree...lots of respect for him! Good article too! I'm also similar. Tried the same thing at a previous company. Sad that so many people just don't get it. The worst part is when they don't "listen" either.
# July 11, 2005 3:35 AM

Kevin Wright said:

I completely agree - even though it is only sort of 1.5 monitors wide, it is an awful lot easier to use with multiple dev.apps running at the same time that 2 x 17" (or 19") side by side.

Kevin
# July 11, 2005 8:11 AM

Douglas Reilly said:

Larger monitors rock. I got a 21.3 inch LCD, and it is a thing of beauty.
# July 11, 2005 1:10 PM

Size does matter said:

I use dual 19" ViewSonic Professional Series CRT's @ 1280X1024 and the real estate is crystal clear! If/when they die I plan to move to dual 19" LCDs...or whatever dual non-CRT setup I can afford.
# July 11, 2005 11:04 PM

Size does matter said:

Hey Jeff, I'd rather v. 8 err on the side of simplicity. That's what i grew to love about PF 7.5. I actually am happy even when forums don't have rich text. I don't like the way HTML text double spaces lines. I prefer to post in basic text but have some bold/italic options like snitz. Color text is great but it's not a deal breaker. Comes in handy for code notation. I think that's the only time I ever use it.
# July 11, 2005 11:10 PM

du8die said:

I know it's changed the way I think about programming. Writing apps now is so much easier after having read (and re-read) the book. I just hired a guy for my staff. He has little .NET experience. Guess what is required reading...

d8
# July 14, 2005 10:21 AM

Hannes Preishuber said:

dont be sad, the book market is generaly down.
I am also author (ASP.NET 2.0 B2 MS Press) and the sale is...
So in fact the publishers have no money left for anything (authors fee, marketing ..)

I have no hope that the good times come back, their is too much free information available in web.
So for me its a hobby
# July 14, 2005 10:28 AM

T said:

Crappy book sales? Ever check your book prices lately? Maybe cut them in HALF and people will buy. Not targeting just *your* prices, but .NET, programming, and tech books in general. If it's a publisher thing? Get a new publisher.
# July 14, 2005 12:11 PM

Jeff said:

I don't think you understand publishing. Tech books are considered a success if they sell 10,000 copies. In that quantity, the return on investment is not huge. My book is $30 on Amazon. How is that expensive?
# July 14, 2005 12:15 PM

Tom said:

Yes mainly referred to as positive pressure... This technique has been used in clean rooms for years! An example of the opposite would be a quarantine in a hospital. This would be negative pressure. Everytime the door opens it pulls air in making sure no airbone partices escape and spread outside the room. Cheers!
# July 14, 2005 12:18 PM

Rob Howard said:

Yeah, Hannes said it already, but (a) there are way to many .NET books on the market (b) there is already a ton of great information available for free.

It's easy to get disappointed with sales, but don't be :) Unfortunately you just can't expect to see a lot of sales with technical books.

# July 14, 2005 1:25 PM

Tom said:

Jeff, good luck to you it was a good book, but you (or the publisher) made one major mistake and I suspect its costing you most of your sales (and will continue to do so)

The mistake is that you didn't find some way to put "2.0" in your title. Most programmers I know aren't buying 1.1 books anymore and are assuming that all books that just say "ASP.NET" refer to 1.1 (which is true for most books and yours sadly got lumped into that).

Short of a new edition with an updated title I forsee this being what hurts you for the lifetime of the book.
# July 14, 2005 2:08 PM

Tobin Titus said:

In general, marketing is left up to the author. The publisher puts the books on the market and does a minor sweep of putting the book on the front page of their website and in an email newsletter. However, outside of that, its mostly up to you to push your book in speeches, magazine articles, and blogs. Evidently its working already because I intend to buy the book now ;)
# July 14, 2005 2:44 PM

Jeff said:

Tom: Actually, there is quite a bit of v2 info in the book, but back when I started the project it was pretty much assumed that ALL books would be v2 books by now. At the time it didn't seem like we'd need to desginate that. Lots of good stuff in there though about Membership and Profile, especially on writing your own providers.

Rob: I don't disagree, but the flip side of this is that we as a community do a poor job of educating people with all of that free stuff. Trying to teach people from a script background how to properly develop with ASP.NET is not a topic you can cover in a few articles.
# July 14, 2005 3:44 PM

Ken Cox [MVP] said:

Don't feel bad. From what I've heard, few (if any) "name" authors are making a living from writing .NET books nowadays. Most seem to use books as a marketing tool to promote their training and consulting work.

The market has been saturated with .NET 1.1 books and if there's something specific you need to know to get over a hurdle, the newsgroups are a spectacular resource.
# July 14, 2005 10:09 PM

Size does matter said:

It's hard to make decent money as an author. Just like it's hard to make money as a musician...and actor, etc. It's a saturated market. IMO, the real money is being made by your publisher...the record labels, the movie studios. The little guy has to do major sales or keep his day job. You should have put "2.0" somewhere on the cover and also I would have mentioned Java ship jumpers because I know several people recently who have dumped JSP for a real web framework...ASP.NET! Anyhoo, I enjoyed your book. Be patient.
# July 14, 2005 10:33 PM

Guy Murphy said:

I visited your website, and it looked interesting, but I left as quickly upon getting hit by advertising popups, and invitations to "click here you have 2 messages"... maybe you don't really get it.
# July 15, 2005 11:13 AM

Jeff said:

Well when you have a better idea to help me pay the bills, you let me know.
# July 15, 2005 11:21 AM

Brad said:

(snip)Well when you have a better idea to help me pay the bills, you let me know(/snip)

Write a book? :-)
# July 15, 2005 1:43 PM

lynn said:

Yep. Regretfully longhorn has become a joke. I hope it does not stay that way, but the time for talk is over. There is no more cheerleading Scoble can do right now.
# July 18, 2005 1:10 PM

stefan demetz said:

the client might might seem to be pretty stagnant right now, even if there are lots of cool longhorn bits coming in the pipeline (monad, indigo);
meanwhile the (production) action is all on the server (biztalk, sharepoint, reporting services, .NET)
# July 18, 2005 5:46 PM

Jason Mauss said:

About 4 months ago I bought a 21" Samsung SyncMaster 213T. does 1600x1200 no problem and has zero dead pixels, no ghosting or burn-in at all.
# July 18, 2005 8:18 PM

Size does matter said:

I think OS X is cheesy and I can't imagine doing any serious work with it. Everytime I have to work on someone's Mac, I'm reminded of how un-unpowerful I can feel.
# July 18, 2005 11:20 PM

Scott McCulloch said:

Nice case Jeff, exactly the same one as mine! Lian Li with the light and window (mine is green though!).

I'm still using a Samsung SyncMaster 19", I'll be upgrading to a dell 24" soon though..
# July 19, 2005 12:41 AM

Nikhil Kothari said:

Jeff, you've got the procedure right. I completely agree - its unfortunate when you have to resort to Reflector to figure things out...

The idea is to embed the image (or script or style sheet or some other content) as an Embedded Resource. For those unfamiliar with how - you add the file to your project, bring up its properties, and in the property grid, change the Build Action to Embedded Resource. You don't want to use the "add images to the resx file" approach here...

This creates a resource named (as you discovered) using the root namespace followed by the folder hierarchy. Typically you'll want to place it resource such that its "namespace" matches the namespace of your control, because the control type is the type passed in into GetWebResourceUrl.

In order to use it you'll want to mark it as web visibile via the WebResource attribute.

The resource is cached - in fact part of the query string goop is to create a URL that the browser can cache indefinitely, because the server changes the query string when the assembly containing the resource has changed. I have some details on my blog (from quite a while ago now) at http://www.nikhilk.net/WebResourceAttribute.aspx and some automatic design-time behavior at http://www.nikhilk.net/WebResourceAttributeAtDesignTime.aspx. Some things have changed, namely the query string arguments, but the general idea has not.

Hope this helps...
# July 19, 2005 4:15 AM

Nikhil Kothari said:

I agree - simple wins!

Hopefully, you were able to use WebResources if you're using whidbey for streaming out the images...
# July 19, 2005 4:36 AM

Jerry Pisk said:

That's why Dell is so cheap - they buy the cheapest **** they can find. Price is their focus, not quality.
# July 19, 2005 12:52 PM

Bivv said:

I had some issues with mine also. I had them send me 2 before I got a good monitor.
# July 19, 2005 1:39 PM

dion said:

# July 19, 2005 6:41 PM

Jeff said:

I don't know that I'd call the LCD itself cheap. It is the same one Apple uses. My guess is there's a problem with its power supply. It even wakes up funny.
# July 19, 2005 9:26 PM

Wim Hollebrandse said:

Well said, that man.
# July 21, 2005 6:09 PM

Brendan G said:

You think that's bad, us poor Aussies have to deal with the fact that the highest rating that can be given by our "Authorities" is M 15+. This means that GTA (like Leisure Suit Larry and Manhunt) won't be classified, and therefore not able to be sold. In effect, the games are banned from sale.

Being 28, shouldn't it be MY choice as to what games (movies, etc) I want to play/see? And as a parent, isn't it MY responsibility to ensure my kids don't play games or watch movies that I don't think are appropriate for them?

It seems the whole world (and not just Australia) is heading down a path where people are no longer being held responsible for their own actions. It's getting very sad indeed.
# July 21, 2005 10:11 PM

Steve Hall said:

What's even more amazing is that local pols (here in Sillycon Valley), specifically a certain Kahlifawnia Assembly member, just got done with an interview on the local news and made the following assinine assertion: the game ratings board (ESRB?) has "totally failed to protect parents and children from this type of content."

'Scuse ME? It's the ratings board's responsibility to protect the PARENTS? I'm sure this is NEWS to ratings board members! (Now everyone that's in a tizzy over this not only wants the rating board to do the parenting for the parents, but also make sure the parents never have to encounter "said questionable material"...for fear their little parental minds might get damaged!)

He actually said this nonsense no less than 3 times in 3-4 minutes.

He should be so lucky he's not MY Assembly representative...else I would feel compelled to work to get rid of him at his re-election...just based on that bit of nonsense!

Methinks that the histeria surrounding this is JUST STARTING...

Why, I can see in my crystal ball more reactions to this bit of "adult content":

1) Can you imagine what will happen when Johnny takes this game to school to swap games with his friends? And he gets caught by the gendarme-at-hand, namely the Assistant Principal in charge of rules, policies, and corporal punishment? Somehow I think most of these Nazi's....er, fine Asst. Principals with a propensity to paddle the behinds of JDs (juvenile delinqents)....will react the same as when little 7-year-old Susie brought that plastic butter knife to school in her lunch-box last year (to cut her banana to put on her sandwich). I.e., don't just take the video game away from Johnny, but DISARM HIM as if the game is a WEAPON. (Calling the local police wouldn't be out of the question to do the dsiarming and search his locker...after strip-searching him, of course!) And, obviously, permanently expel him,,,,just like Susie was last year. (Don't laugh: there have been over a dozen little Susie's across this great paranoid country of ours. As if a 7-year 60-pound girl could do substantial damage with a plastic knife!) ZERO TOLERANCE, we say! ZERO TOLERANCE!

2) Of course, reaction #1 wouldn't be possible if it weren't for that early warning system known as the "teacher legal squeal list". I.e,. the list of criminal violations for which teachers are legally bound to report as part of their policing of the little criminals. Right below "plastic knifes", "nail clippers" in the "Disallowed Weapons" section of the laws will be "video games with such-n-such content ratings" added by hundreds of school boards, and codified by hundreds of cities, potentially all 3220 counties, and all state-houses. (Don't laugh: there are hundreds of cities and counties that prohibit exhibition of movies based upon movie content ratings!) I'd rather our teachers be busy looking for signs of child abuse than in possession of "contraband". (Oops! I suppose this contraband could be considered evidence of child abuse, eh?)

3) Luckilly, there is just enough time to enhance the USA Patriot Act (currently about to be re-enacted upon the unsuspecting Amerikun public), by codifying the teacher squeal lists into federal law. Afterall, a student in possession of an adult-content video game should certainly be considered a terrorist, RIGHT?!?!?! At the least, The Act (to End All Terrorism) should be extended to allow for G-men to search sales receipts at any Circuit City, CompUSA, Fry's, etc. for these little terrorists-in-the-making!

4) And, of course, in those enlightended states that have enacted that hyper-reactive Megan's Law system of posting child abusers names, photos, and addresses on webpages of local police departments, some will call for such terrorists-in-training to be "exposed to the bright public light" on a webpage of their own. Little Susie and Johnny would have their mugshots, addresses, and school board conviction (er...expulsion reason)...in order to warn the parents in the local neighborhood that they shouldn't let their Little Brittany or Jimmy play with THOSE KIND OF JDs!!! (I can just see some of these parents walking the neighborhood passing out flyers to warn other parents about Little Susie and Johnny...)

What's really sad about this, is that I've always supported the public school system and library system by voting for each and every property tax and bond issue that would benefit them...out of a sense of social duty. I am now beginning to think that by helping parents to raise their kids by helping to provide the infrastructure in society has gone terribly haywire in the past 20 years. This kind of silly scape-goating and non-parenting is starting to make me understand why so many senior citizens are unwilling to support local school bonds and taxes (with the attitude of "WHY should *I* give a crap about someone ELSES KIDS?!?!?!")

This over-reaction is souring my attitude towards parents in general.
# July 21, 2005 10:23 PM

Steve Hall said:

Oh, yeah... Almost forgot to cite the following absurdity that happened in the Great Midwest (in the county where I grew up):

http://www.suntimes.com/output/news/cst-nws-molest01.html

After reading that article, I concluded that my civic/social duty was going to have to be curtailed, else my freedoms would be certainly be screwed over for the rest of my life! (I USED to be a good samaritan by stopping at accidents, having had a lot of Red Cross First Aid training, but after someone threatened to sue me for stabilizing their compound broken arm with an air-splint, which I had used several dozen times, I've stopped giving help on the freeways. The above article just adds yet another good samaritan duty which I will no longer partake. The three kids whose lives I saved from traffic years ago are the last which I will save!)

Even though states all have enacted "Good Samaritan Laws" to help insulate the samaritan from liability, it doesn't seem to have sunk in that the state/county/city themselves ought to be adhering to the same laws they passed!

Basically, society is on a train-wreck-path if parents continue to react against other adults chastising their children in public, chastising their children in schools, or even acting as a good samaritan in their absence. Apparently, parents just WANT nature to TAKE COURSE!

For now on, instead of telling a parent their kid was on my property smoking up on some crack, I'll just do the non-samaritan thing and call the cops. Instead of yanking their child out of the way of a 50 MPH homicidal speeder, I shall let nature take it's course, and just hope the parents decide not to pollute the gene pool by having another stupid kid.

Hhhhuummmm..... Sounds like I've developed an attitude problem, eh?

And to actually think I was considering moving back out of Kawlifawnia to the Midwest, specifically, Cook county in Illinois where I grew up as a kid....because I LIKED the fact that adults looked out for other family's children and had a sense of civic duty! BOY...has Cook county ever changed over 30 years! (Have the local Neo-Nazis finally seized control of the local DA's office?!?!?!)

This ZERO TOLERANCE shinola is for the birds!
# July 21, 2005 11:23 PM

KC said:

Hello,

If the store wants to pull it, it's their store. They have a right to pull it. To argue that they can't, whether anyone agrees with their motives or not, is as wrong as me saying I don't like your choice in favor of it, so I'm going to call you stupid and all kinds of names (as you've done) and force you to remove it from your house. They are not forcing you to not see it. JUST NOT FROM THEIR STORE.

RIGHTS GO BOTH WAYS. For this to be called Typical American Stupidity, and all this talk of who's parenting, and everthing else this is escalating towards, is well, stupidity. All they are saying is "NOT IN MY STORE".

Please.... MOVE ON!!!

# July 22, 2005 12:03 AM

Jeff said:

That's not the point. I could care less what the store does, it's the stupid double standard we have that annoys me. You move on.
# July 22, 2005 12:39 AM

anon said:

I don't understand where the confusion lies in this matter. Kids have been playing "cowboys and Indians" since, well, cowboys and Indians. Make believe violence, while desensitizing us to real life violence and possibly even lowering our empathy to others doesn't _cause_ real-life violence. Society allows for kids to play "cowboys and Indians" but they don't allow kids to play "pimp and ho" for a reason. Puritanical values are not necessarily evil. Look across the Pond and see where Europe is headed. Socialism has brutally destroyed their economy, making most of the countries nanny states while a lax attitude towards premarital and out of wedlock sex correlates with a society in which is cannot sustain itself with the current birthrate.

The alternative to "typical American stupidity" towards violence is the nanny states you have in England and Australia, where both have introduced legislation (and in some instances approved it) where they have outlawed swords and pointed weapons. So this is what we come to as a society? Where we condone infanticide and out of wedlock births but have a serious problem with law abiding citizens protecting themselves from the seedier parts of society? Myself? Well, I prefer to stand by "typical American stupidity".

I respectfully disagree with your viewpoint on this, Jeff, I think we both can agree that the ESRB rating system is for parents and not kids. For it is the parents who are purchasing these games for their kids and thus, should be shouldering the majority of the responsibility. I, for one, do not need the gov't telling me how I should raise my kids. And just as a final disclaimer, I do not think any kid under 17 or 18 should be playing GTA, but that is just a generalization. All kids are different and have different levels of maturity. A kid with a solid, moral background might be able to play these games at an earlier age without it affecting them.
# July 22, 2005 12:59 AM

SBC said:

The problem is that Dell's product are burning out too fast - I lost my laptop 3 days after the one-year warranty expired. They want $$$ to fix it. Never buy Dell again - http://www.geocities.com/i5100dustproblem/
# July 22, 2005 5:16 AM

Ron Shelton said:

anon,

So what you are saying is that America is stupid because they accept guns over sex, and UK is stupid because they accept sex over guns, but you prefer the guns over the sex?

You back your arguments by saying socialism is to blame and results in higher birthrates and a poor economy. You may want to be aware of the following stats (from finance.yahoo.com):

UK:
Pop. Growth: 0.230%
GDP Growth: 1.66%

US:
Pop Growth: 1.24%
GDP Growth: -0.930

So on what grounds has socialism caused out of control birthrates in the UK again? Ours (America) is 5 times as large per capita, and our GDP growth is negative. Considering, our current conservative adminstration (the extreme opposite of a socialist government), I find it amusing you think high birth rates and bad economy are caused by socialism.

On the other hand, perhaps you can make a point about homicide rates between the UK and US, since we are armed with guns and knives which would surely dissuade an attacker - right?

UK - (2003 - 2004) (from www.crimestatistics.org.uk)
Pop: 52,570,245
Homicides: 854
Summary: 1 out of every 61,558 people

US - (2003) (from www.fbi.gov)
Pop: 290,809,777
Homicides: 16,503
Summary: 1 out of every 17,622 people

Nope - sorry. Looks like the "typical American stupidity" you prefer results in higher birthrates, poorer economy, and higher homicide rates.

I agree with Jeff in that there shouldn't be a double standard regardless of how or to what extent its enforced. I know its seems innocent and benign to us, but if you really think about it, its horrible that children play "cowboys and Indians". How would you feel if you were an American Indian watching children mimic how "cowboys" over-powered the primitive "Indians", killed them and stole their land. I don't think they would find it as innocent and amusing as most of America. We won that fight, and we have to be able to live with ourselves - so we have made it acceptable when it really shouldn't be. Do German kids play "Nazis and Jews"?

# July 22, 2005 9:14 AM

Eric Newton said:

I'm actually playing GTA:SA right now. Fun game. Total reality disconnect. Crash cars, fly planes into restricted army bases, sabotage the vietnemese gang drug trade, and (Ocean's Eleven style) bust into a casino and steal the money

I'm 29. I have fun playing this game. I would NEVER allow any child under 18 or 17 to play it. Period. Isnt the ESRB rating MA? MA as in Mature Audience. In a sense, NC-17.

Yeah, and now that theres some nudity in it, everything changes? Come on people get a grip.

These types of games are hitting a sweet spot of college - middle aged guys that just wanna break into a game thats not focused on trolls, elves, and gay cartoon characters. (aka Mario, Yoshi, Toadstool, and whatever)

Yeah its raw... but frankly ITS JUST A GAME. No more violent than news of multiple slayings in a house in Arizona by some illegal immigrant. Or a child rapist that kills two kids family, and proceeds to parade the innocent girl around the country with some other nefarious deed planned for her.

I'm saying I want to choice to make decisions for my own, not the government. Its not the government's responsibility to take care of any offspring I might have in the future. Its my responsibility.

However, many tend to believe that government is supposed to do everything, "It Takes a Village to raise a child?" This is the rhetoric from the liberal left. "Leave me the hell alone"... thats the extreme right... Just need to find a balance between the two. And for the most part I believe its just about there.
# July 22, 2005 12:53 PM

Eric Newton said:

Ron, those are interesting stats. Spun a little to support your argument but interesting nevertheless.

Why is it so horrible to play cowboys and indians? or cops and robbers? Are we getting politically correct here? If I wave my hand like a tomahawk and chant the FSU seminole indian call, am I defaming the seminole native americans?

Theres too much entitlement. Its this entitlement mentality that is linked to this politicizing of everything...
# July 22, 2005 1:02 PM

Jeff said:

Eric: You've gotta be kidding me on the left vs. right thing. The Ashcroft types going after porn are hardly what I'd call liberal or left. When it comes to trying to silence things people don't like, that's hardly a phenomenon restricted to one side of the aisle.
# July 22, 2005 1:22 PM

Matt Berther said:

I have an article posted that has essentially the same configuration section [1].

To actually instatiate the providers I do something like this in my static class.

class MyProvider
{
private static bool isInitialized;
private static void Initialize()
{
if (!MyProvider.isInitialized)
{
ProviderSection config = ConfigurationManager.GetSection("myProvider") as ProviderSection;
if (config.DefaultProvider == null)
{
throw new ProviderException("Provider not initialized.");
}

MyProvider.providers = new MyProviderCollection();
ProvidersHelper.InstantiateProviders(config.Providers, MyProvider.providers, typeof(MyProviderBase));

MyProvider.provider = MyProvider.providers[config.DefaultProvider];
if (MyProvider.provider == null)
{
throw new ConfigurationErrorsException("Default provider not found.",
config.ElementInformation.Properties["defaultProvider"].Source,
config.ElementInformation.Properties["defaultProvider"].LineNumber);
}

MyProvider.providers.SetReadOnly();
MyProvider.isInitialized = true;
}
}
}

Hope this helps!

[1] http://www.mattberther.com/2005/06/000637.html
# July 24, 2005 10:14 PM

Ron Shelton said:

Eric-

If by "spun", are you referring to my conclusion that the administrations of the two countries are directly linked to the quoted stats?

Yes, I am sure other factors come into play, but its rediculous to think that an administration is a helpless victim of the social and economic climate of their own countries. There is always SOMETHING that can be done. Government is not a plan that can be put in place and left to its own devices with a predictable outcome - situations change and government can and must react to those changes in a meaningful and helpful way.

By the way, the government IS responsible for the offspring you produce. If your kids turn out bad, the government (via taxes) foots the bill for the police, courts, prisons, and mental institutions used to clean up your mess. The government is solely responsible for keeping those kind of people from interrupting the daily lives of the rest of us. Sure you can say that YOUR kids will never be that way - but this is not a perfect world - there will always be people who just don't care about the state of things around them.

As for "cowboys and indians": Do you not see a difference between an "Indian" and a "robber"? You use "politically correct" as if it's a dirty word. I agree sometimes it's taken too far, but the underlying effort is to be sensitive to the people around you. You can't make a broad sweeping statement that all sensitivity toward others is bad, because sometimes it's taken too far. Think about it, how would you feel if you were a jew and the neighborhood kids like to pretend to imprison you, starve you, gas you, and bury you in a mass grave? Sound like fun times?

Of course there is nothing we can do about it now, but we definately shouldn't glorify it.

# July 25, 2005 12:58 PM

karl said:

the worst part is the faux-zoom....let's blow up the image to give you the illusion of a zoon, then once the real image is loaded replace the pixelated crap with what you asked for...

karl
# July 25, 2005 6:37 PM

Steve Hall said:

Sounds like there are some variation of currency of the photos they've obtained. I looked at the block on which I live in Silicon Valley and was surprised to see that it's less than a month old! (The cross-walk two houses away just got cross-hatched for the first time ever... California is finally trying to make cross-walks visible from far off, esp. the cross-walks that appear in the middle of blocks that have no traffic signals.)

The conspiracy theororist in me wants to believe that photos of NYC are JUST NOT AVAILABLE ANYMORE, at least not photos after 9/11..."for security reasons". (Don't be surprised if this is the real reason behind NYC's photos being old. I've checked downtown San Francisco, San Jose, LA, and San Diego and this doesn't seem to be the case. Didn't have time to check DC, such as looking for the recently installed WWII Memorial, but wouldn't be surprised if those photos are 5-10 years old also...for the same reason. Remember, only the commies are allowed to have good photos of our "sensitive areas"!)

The UI I haven't completely explored yet, so I don't if it meets my sensibility or not...

That's the only thing to consider when opin'ing about UIs: they're like butt-holes...everything's got one, but rarely are they ever pretty looking! (As long as they're functional though...) Sure you're "putting function before form"?
# July 25, 2005 6:44 PM

Robert Scoble said:

Have you tried the "Locate Me" functionality? That's beyond anything that the other folks have done. Yes, we know about the imagery being old. They are working on getting that upgraded.

Have you watched the demo with the team over on Channel 9 yet? http://channel9.msdn.com/ShowPost.aspx?PostID=91714
# July 25, 2005 7:35 PM

Dean Harding said:

To be fair, I'm sure this was being worked on long before Google Earth was announced, and I think if they can get the couple of UI bugs fixed up (it's Beta after all...) it should rock!

I kind of agree on the whole "what's the point" kind of thing though. I mean, does it *really* help that there's satellite imagery? Given that it's so much simpler to keep a vectorized representation of streets up-to-date, it seems like satellite imagery is not a lot more than pretty fluff...

Oh and to Karl, I actually like the "fake zoom then download newer version" much better, in my opinion, than just clearing the whole screen when you zoom. At least this way you get a general idea of where you're zooming into, rather than having to wait for a couple of images to download before realizing you gotta pan around a bit more because you weren't *exactly* on-centre.
# July 25, 2005 7:59 PM

Bryan said:

I just hate how slow it is. Google maps is so much more responsive it's like night and day.
# July 25, 2005 8:23 PM

Tom said:

Few things...

1. I don't think you can base criticism on it's purpose. One man's fluff is another man's goldmine.

2. On that note, where VE does have up to date maps it's pretty amazing. The zoom is 2x better than google and the image quality is noticably better.

3. It is sort of "me too" and I actually doubt this (at least in this form) was in the works before google maps but who cares? Word, Excel, IE, etc... were all me too products until the original bit the dust.

4. Locate me is junk. Maybe some day it will be worth something, but being able to pinpoint my location within a 40 mile radius is useless. If I can't even tell what city I'm in I've got much bigger problems.

5. It is really slow.

In the end, I think they rushed out of the gate with this too soon and I think the end result has been a flurry of bad PR (no stats available but if I had to guess I'd say the blogosphere is 80% disappointed) that will hurt the product in the future.
# July 25, 2005 8:33 PM

Robert Scoble said:

Tom: I'm watching the blogosphere. It's a lot higher satisfaction rate than 80%. I see a lot of reviews like this one: http://www.ensight.org/archives/2005/07/25/review-msn-virtual-earth/
# July 25, 2005 10:25 PM

Jeff said:

Scoble... I think you're a little too biased anymore. You go on and on every day about how important customer feedback is then turn around and tell everyone how loved Microsoft is, even when that doesn't appear to be the case.
# July 25, 2005 10:32 PM

Jeff said:

Update... I figured out what I really wanted to do. Will post later.
# July 26, 2005 1:09 AM

Frans Bouma said:

I always wonder why the earth is 'USA' and then "some other countries but we don't know which ones". When I zoom into 'The Netherlands', where I live, I can zoom till country level, but no map with even roads on them. Just a tiny country layout with some cities.

I.o.w.: useless.
# July 26, 2005 3:56 AM

Marcus Mac Innes said:

Frans, yes, Ireland is also not part of "the Earth". Typically American. But then 80% of Americans have never left the states... :) (http://www.gyford.com/phil/writing/2003/01/31/how_many_america.php)
# July 26, 2005 5:00 AM

Tom said:

ahhh...don't be too hard on Scoble. The man doesn't have an easy job these days. As you pointed out in your post a few days ago, right now the future's so dark Microsoft's gotta buy a flashlight.

I'm not an Apple/Linux fanatic (as a matter of fact, having used both, I prefer Windows) but Microsoft's at the point where its progressing from stumble to all out free fall and I think this release proves it. They've become so used to competing with lesser foes that, when a company like google comes along, they just seem dumbfounded.

Certainly not a situation where they are beyond saving, but the trend lines don't appear to be in their favor.

My only hope is, if things really do turn for the worse in the next few years, that the .net technologies (paticularly C# and ASP.NET) don't go down with them.
# July 26, 2005 3:10 PM

Erik Porter said:

We use this in our apps all the time. Very handy! Even with regular buttons, there's still the problem of which one actually gets clicked when you have more than one in your form. By default it just has to do with whichever button is first on the page. It would be nice if a feature in 2.0 allowed you to specify default buttons for both the button and linkbutton. Have you posted anything on Product Feedback about it?
# July 26, 2005 3:40 PM

Jeff said:

I don't remember. Maybe? I haven't thought this out enough to know what other implications there might be, such as those if you plant this thing inside a grid or something.
# July 26, 2005 3:41 PM

scottgu@microsoft.com said:

In ASP.NET V2 you can drive the enter behavior on any focus point on a page. You set this either on the <form> tag or by wrapping regions in an <asp:panel> and then setting the default button property on those container controls (the asp:panel approach is how you can have multiple default buttons all over the page). If the focus is inside that region and enter is hit, the container control will cause the right post-back control to fire.

Hope this helps,

Scott
# July 26, 2005 5:31 PM

Erik Porter said:

That's awesome, Scott...thanks! :)
# July 26, 2005 5:34 PM

Matt Berther said:

Jeff:

I use this technique that I posted about a while back...

http://www.mattberther.com/2003/06/000125.html

Works everytime for me.
# July 26, 2005 6:09 PM

Jeff said:

Matt: That solution isn't going to work if different text fields should activate different buttons.

Scott: Good idea, but that only works with buttons, right? LinkButtons no?
# July 26, 2005 9:28 PM

John Walker said:

I've been using a cool free control from MetaBuilders called DefaultButtons for my 1.1 apps. Here's the URL...

http://www.metabuilders.com/Tools/DefaultButtons.aspx

It makes the page a bit bigger because it injects some javascript to the client, but it has worked flawlessly for me. Works with link buttons too. Highly recommended.




# July 27, 2005 1:01 AM

QWorld said:

Walker, your control is nice, but it seems still a little bit unperfect, for example, when I foucs on the second textbox and hit enter, Smack1 is foucsed and pressed on the page, althrough the label show Smack2 is fired
# July 27, 2005 6:45 AM

Ian Walker said:

Looking forward to an Avalon client for this!
# July 27, 2005 8:35 AM

Erik Porter said:

Really neat list, thanks for posting. I also enjoyed the Wired article. I'd post a "last 10 years" for myself, but maybe I'll wait a few years since I was a sophomore in high school in 1995.
# July 30, 2005 2:21 AM

Chris Martin said:

That was a great trip man! Thanks...

It's amazing that some people share almost the exact same experiences throughout the years..
# July 30, 2005 2:55 AM

Frans Bouma said:

Cool list :)

FB, who wrote his first webpage in 1994 on a sun box, and then wondered what the hell the fuss was all about... ;) (after all, you had gopher, archie, ftp, who needed yet another protocol
# July 30, 2005 10:46 AM

Marcus Mac Innes said:

Their stuff looks great, but their support is TERRIBLE. I have had massive trouble using their suite which in my opinion is made to look good and intended to be used in small "hobby sites". They continually add new modules to the suite while they leave existing modules with bugs and design flaws. My support requests have gone unanswered. Read this thread: http://www.componentart.com/forums/ShowPost.aspx?PostID=3872#5034 and many others http://www.componentart.com/forums/ShowPost.aspx?PostID=4016#4387. One guy has asked why it takes a couple of minutes to fill a tree view with 1000 nodes... Their response: Don't have so many nodes in the tree...
# August 2, 2005 4:47 AM

Jeff said:

Well if you have a tree with a thousand nodes, I don't think you're designing with the Web in mind! I wouldn't put a thousand of anything on a site.

And I disagree about the hobby site comment. In fact, it's the menu control that helped me find them, as it's used in SmartTools' SmartMail app.
# August 2, 2005 8:37 AM

Marcus Mac Innes said:

Jeff, their menu control was I believe their first control and is probably the most mature... But don't take my word for their poor support. Just check out the support forums and count the number of users who ask questions like "Is anyone there???" after reporting a problem.
# August 3, 2005 3:56 AM

Rick Strahl said:

Jeff I hear you, but it's still a heck of a lot better than doing things the old way of taking a PO or having somebody send check and dumping it into the bank. I do business online and I wouldn't want to ever going back to doing things differently since with CC processing the entire process can be automated.

10% is very high, but as you say low volume and low price items are penalized the most.

There are alternatives for you though. You can use PayPal or PayPal's new Payment Pro which is a bit cheaper overall because you avoid the monthly fees which is what is probably killing you.
# August 5, 2005 2:00 PM

Jeff said:

I would never work with PayPal. Too many horror stories and very little recourse if something goes wrong, since there's no real oversight.

Monthly fees aren't really hurting me that much. It's the high discount and per transaction fees, again because of low volume.

Truth be told, for everything I do, I accept checks too, and it costs me nothing. I sign the check and deposit. The irony there is that a great many humans spend time processing a check, and it doesn't cost me, or the customer, anything. That's what's so screwed up. Processing the card requires zero human intervention, and costs a ton. It doesn't make sense.
# August 5, 2005 2:32 PM

Jerry Pisk said:

Also, the electric company has the nerve to charge you for electricity, which in the end is passed on to me as the customer in your prices. Bastards. We should all read Marx and make his visions reality ;)
# August 5, 2005 3:13 PM

Jeff said:

Come on Jerry... you're smarter than that. I'm all for capitalism, but this pricing isn't logical and there is no competition.
# August 5, 2005 4:20 PM

Scott said:

"The approach is always either too complex or short but lacks explanation. That's seriously annoying. For example, I recently wanted to build some templated controls. One of the books I have (name withheld to protect the guilty) spends five pages of code then 40 pages of explanation to build something so insanely complex that it's nearly worthless as a teaching tool. A Web-based article on MSDN was better, but still introduced complexity irrelevant to explaining the process"

hmmmm, is that the fault of the teachers or the framework?

Think back to teaching people how to code in VB 5 or 6. Except for a few special cases (dim as vs. dim as new) it was pretty simple to get someone up and running with a reasonably well written application.

I think that the current version of the framework punishes the developer too much if they step outside of the "Microsoft" way of doing things. As soon as you stop using the drag-drop method of programming, the complexity curve starts to rise sharply.
# August 5, 2005 4:23 PM

du8die said:

Being the recipient of some good teaching, and some very, very bad teaching, I tend to agree. The examples that are out there are for the most part, dismal at best. Terms are thrown around like candy at a Fourth of July parade. Yep, I've managed to build some very cool stuff, (and it's getting better), but it's been a slow learning curve. I built my first multi-threaded app the other day. There are few decent resources out there in this area. Even fewer in VB. I know, I know, C# is the language of choice. Doesn't matter. I think I'm learning more about coding in C# from trying to convert it to VB than anything else.

That all having been said. I appreciate your book (as I've said multiple times before), and the help on the site <a href="http://www.uberasp.net">(uberasp.net)</A> is very reliable. I just wish more of the "People Who Know" would share what they know, and help build the community in a little more constructive way.

d8
# August 5, 2005 5:27 PM

bestcomy said:

# August 5, 2005 11:23 PM

Size does matter said:

What is an "optgroup"? When experienced developers throw around jargon it's difficult for lesser-coders like me to follow and learn this ASP.NET stuff. Sorry if that's a dumb question.
# August 6, 2005 10:40 AM

Jeff said:

It's a part of HTML 4... it lets you group options in a list into subgroups. For example, look at any current version of vBulletin (the PHP board) at the drop down's at the bottom of the threads that let you jump directly to a forum. You'll see subheads that aren't selectable for each forum category.
# August 6, 2005 1:23 PM

Jerry Pisk said:

I think Size does matter's comment said it all - Microsoft does not focus on programmers, it focuses on people who think they are programmers but do not really know much. Once you understand HTML/CSS and server side programming you'll realize how primitive and limiting Asp.Net really is.
# August 6, 2005 4:43 PM

Jerry Pisk said:

But the goal of any company under capitalism is to make the most money - not to have a lot of competition that will make the market better for consumers but much much worse for the companies. I'm still waiting for AmEx to do anything with their court victory that ruled Visa and Mastercard monopolistic companies just like Microsoft. I t was heralded as a big win to the users of the system but I have yet to see anything.
# August 6, 2005 4:52 PM

Tek Boy said:

I, too, have never heard of OPTGROUP -- before this thread, anyway. Do all modern browsers (IE5+, Firefox 1+, Netscape 6+, Safari, Opera) support it, assuming the proper DOCTYPE is set? Is there something like OPTGROUP for checkboxes / radio buttons, too?
# August 6, 2005 5:35 PM

Jeff said:

It works OK in IE6 and Firefox. Haven't tried other browsers.

I'm not sure how you consider ASP.NET primitive or limiting though. Compared to what?
# August 6, 2005 5:51 PM

Thomas Tomiczek said:

Why should it call CompareTo?

It can make an equality text (==). Note that IndexOf imho does not search for a similar object, but to THE OBJECT. Runnind along in a loop and checking for equality satisfies this.
# August 7, 2005 3:09 AM

Frans Bouma said:

Doesn't IndexOf simply traverse the list and call Equals? It does that in .NET 1.x
# August 7, 2005 5:03 AM

Jeff said:

But that's not what the docs say...

"This method determines equality using the default comparer System.Collections.Generic.Comparer<>.Default. System.Collections.Generic.Comparer<>.Default checks whether type T implements System.IComparable<> and uses that implementation, if available. If not, System.Collections.Generic.Comparer<>.Default checks whether type T implements System.IComparable. If type T does not implement either interface, this method uses System.Object.Equals."

So by that definition, if T implements IComparable<> (and in my case it does), then that method from the interface should determine equality.
# August 7, 2005 9:37 AM

Jay R. Wren said:

It calls BinarySearch... which by definition doesn't search an entire collection. BinarySearch would search a sorted Binary Tree. I guess we now know that List<> is actually a Binary Tree, not a linked list.
# August 8, 2005 12:55 PM

Terra said:

"Me too"? You're joking, right? Microsoft had the technology for "Virtual Earth" about 8 years ago. It was called TerraServer[1] and it was built as a showcase for the scalability of SQL Server.

[1] http://www.google.com/search?q=terra+server
# August 9, 2005 8:59 AM

Jeff said:

No, that's a database of images. Terra Server didn't do anything that GE does.
# August 9, 2005 9:09 AM

TonyG said:

From Mastercard "• Achieved Double-Digit Revenue Growth, Up 19% to $772 Million• Net Income Up 82% to $120 million, or $1.20 Per Share"

---

Clearly they are profiting significantly but the 'a transaction costs 5 cents' statement seems to be invalidated otherwise their profit would be more than 90% of their revenue. Running a company has a lot of costs that are not in a transaction alone. The credit card companies have to deal with fraud and identity theft, provide customer service, employ are marketing and sales team so that their card is universally accepted and used, they have to deal with storing records and data, they have to process your payments to them and their payments to retailers such as yourself.

As for checks, I have to buy them in books for about 10 dollars a book, and not to mention needing money in a checking account which generates little or no interest. Ever had a check bounce from a customer, or had a check of yours bounce on someone else. They costs, the fees, the penalties are horrible. At least with credit cards you know as long as you are legit you are going to get paid by the consumers bank, and the bank will send their people (another cost) after the cardholder.
# August 10, 2005 7:02 AM

Charles Chen said:

Need help with the UI?
# August 10, 2005 9:01 AM

FuriousMojo said:

I find HTML is what really takes up my time. Formatting and making things look pretty, wow that's tedius work. Coding is straightforward and quick to me. Nevertheless, I do not neglect the fact that the page needs to be easy to use for the user. That requires visually pleasing and well-placed controls.
# August 10, 2005 9:10 AM

karl said:

*cough* SqlDataSource control *cough*
# August 10, 2005 4:35 PM

Paul Wilson said:

I totally agree Jeff that there needs to be a simplified approach, I just question if sometimes things go too far in the name of simplicity. For instance, I have no problem with code in the page itself, and may do that some now myself now that intellisense is there. I also have no problem with a folder based site for those that want this -- I just have a problem with forcing it upon all of us, especially since it IS a step backwards from v1 to us that have relied on project based sites.

To me the bigger problems are that we often end up "teaching" these newbies/scripters the wrong things due to the cool RAD stuff that is being pushed. I agree we need simplicity where it makes sense, as well as some good wizards, but does that mean that we need to introduce bad habits, especially when they end up being the only way at times. Take the abundance of visual properties that all end up being part of the style tag -- couldn't we have just taught them how to use CSS stylesheets instead? And now those "simple" properties have become so dominant that the CSS stylesheets don't even work (or apparently get tested at MS)! Is this what we really should be teaching?

What do you think? By the way, I have a copy of your book, and the table of contents does look really good -- but alas I just haven't found the time to read it to make a review (and I may never do so since its not really relevant to me).
# August 10, 2005 5:40 PM

Danny said:

Jeff,

Man, I'm right there with you on this one. I too ranted about this a couple of years ago: http://blog.dannyboyd.com/archive/2004/01/08/145.aspx. I'd not encountered your book. I'm ordering a copy for review as soon as I hit submit on this comment.

Danny
# August 10, 2005 10:25 PM

Frans Bouma said:

"don't jump out there and say, "You're doing it wrong, stupid!" Tell people, "This is a better way to do it, and this is why.""
That only works if the people you're talking to understand they NEED a better way to do things.

That's the real problem. Similar to data-access stuff and how to do that in your application: it can be done in a lot of different ways.

I think I can fairly say I'm a very skilled programmer. The thing is, I recently learned that I could learn a hell of a lot of stuff still, and it made me understand that my thinking was locked into a mindset which got a life of its own. Not that that was bad, but with newer insights it got way easier to write code more conveniently, which was cleaner, easier to use and a breeze to maintain.

Knowing that, I realize that telling others there is a 'better' way of doing X, or 'you're wrong', is subjective. There's a DIFFERENT way of doing things, which has these X pros and cons. Do the math yourself. That's the approach I've been taking towards data-access and what you should use for some time now and it really works well: people aren't feeling belittled, on the contrary, they feel they've learned something new and understandable, and with that knowledge in their bag, they can make new decisions.

Oh, what it was what I learned recently? micro-design for OO frameworks. Delegation of responsibility, and of that the really important factor: why.
# August 11, 2005 4:14 AM

Frans Bouma said:

I'd like to add, that I always am against the RADification of development platforms for the wrong reasons. There's nothing wrong with RAD, but it is often done in a way which has more negative side effects than alternatives. With the VS.NET approach towards webapplications and for example also towards webservices (my personal gripe) is one of "trust us, leave it to us to do things for you", but doing it in an inflexible way.
You can do RAD in 2 ways:
1) offer a visual wrapper / designer to perform repetitive tasks, but still perform these repetitive tasks
2) offer a visual wrapper which represents the repetitive tasks.

Option 2 is the one VS.NET follows: there is no way to do it differently in your own code in a lot of situations, for example the webservice crap (wsdl thinks every IXmlSerializable implementation is a dataset). While option 1) offers the same thing, but leaves you the choice of doing it yourself as well. A good example of this is ALSO in vs.net, namely the winforms designer.
# August 11, 2005 4:21 AM

Eric Newton said:


In regards to PHP, theres Phalanger, PHP compiling on .NET: http://www.php-compiler.net/

"don't jump out there and say, "You're doing it wrong, stupid!" Tell people, "This is a better way to do it, and this is why.""

Ok, but most of the time "it just works" and people don't care what the "right way" is. They see these poorly implemented examples, cut and paste them, then their codebase is basically examples that have been expanded upon.

Which goes back to a point I made a while back about "proper example" where we dont show examples that use a chain of += for string concatenation, etc etc etc.

Paul is right, and I agree with him, as you do
# August 11, 2005 10:05 AM

Josh said:

Just in case other people come to this page because they have a form that won't submit with the enter key: There is a retarded bug (I think with IE) where if there is only one text box and one button, the submit will NOT be fired when pressing the enter key. The work around is to add another input control somewhere - using another read-only text box of 0 width and 0 height worked for me.
# August 11, 2005 7:44 PM

//Rutger said:

Hi Jeff,

I totally agree with you. The opener the process, the more complains you'll get.
# August 12, 2005 7:28 PM

Paschal said:

Jeff you sound like a Microsft drone :-)

You miss the point totally. I love VS 2005, I wish I could have this tool 2 years ago.

The problem (well for me at least but surely for many) is Microsoft breaking its own rules. Being compatible with the previous version and also more important for me provide something to migrate your projects.
This apply to web projects of course, windows projects are more or less intact from the earthquake.

Yes it's seems strange to see this rumbling noise suddenly now, but you must understand that after the phase OI called the 'open the box and play', now it's time to see what we will do withj our projects the one we have to maintain every day.

And even if I am a big Microsoft advocate, there no way. It's so incredibly complex to have one single real .Net 1.1 project running under VS 2005. And this is where a lot of people like me are different from the usual Beta crowd. We are working with massive or even modest web projects, and my boss don't give a damn about VS 2005 or 2010. If I convince hime to do the jump (and this is not an issue for me) I bet you he will kill me straight if I show him the days I spend on the bloody thing. And no the Beta argument doesn't apply here, not only becuase of the Go live licence, but because the tool has bugs and missing features in a way it's really doubtful to have something ready on the first week of November. Believe me, to have Scott Guthrie sending me an email in the middle of the night to say they reckon something is wrong with the migration tool and immediately sending me a set of new assemblies, for me this is a strong proof something goes wrong. And don't be ridiculous to associate this with some VB6 petition. This has nothing in common, we are talking here wbout web applications and the lack of important features like multi project building. I can't bear the idea to live with VS 2005 for 3 to 4 years without any serious promiose of updates by Microsoft.
# August 12, 2005 7:53 PM

Jeff said:

Of course, if someone has a different opinion, they miss the point, didn't read your post, don't know any better, etc. I've heard all of that before.
# August 12, 2005 8:15 PM

Paul Wilson said:

I agree with both of you !

I don't think v2 is going to be a failure, nor do I think there should be a Beta 3. But the reason I don't think there should be a Beta 3 is because I know how big a deal a beta is and I want v2 as soon as possible -- because I will be gladly using it.

But then why do I make my "negative" posts and agree with the opposite view too? Because the whole point of the open process is to get our feedback, and I'm giving it -- sometimes loudly. Why? Because I want the RTM to be as good as it can be, because I don't plan on waiting until a SP.

Will I survive without a project file? Most assuredly YES. I can make multiple server forms possible, and make web apps stay alive, and do just about anything -- given the time. And that's the rub -- why should it take lots of my time to do something that is very easy today.
# August 12, 2005 8:51 PM

John Walker said:

I agree with Paschal. The sky is certainly not falling and VS 2005 is going to be awesome. I cannot wait for it. I do have some concerns about the "breaking changes" to the project system I've found with Beta 2. Quite frankly, I never had an issue with how ASP.NET projects were set up in the first 2 versions of VS.NET. In my opinion, the project model in the first two releases made development of ASP.NET and Winforms apps very similar. Now, it seems that everything else remains consistent except ASP.NET apps. Why?

Even migration of a small product-based ASP.NET web application I built took a couple of hours to work through and around. Why? I can deal with correcting warnings, but these were not merely warnings. The thing wouldn't compile a project built with Option Stict On and Option Explicit On unless many changes were made. And the idea of introducing a new Refresh file seems like such a hack to me.

More importantly, as Paschal mentions, is the fact that scrambling going on at this point on the part of MS is worrisome, although not un-appreciated. We hear, "These things will be fixed", but isn't the idea of a Beta 2 to be feature-locked? Some of the changes being offered aren't bug fixes, but IMHO new features. Will we get a chance to fully test and report back on the changes? Without a Beta 3 or extended RC, no.

Sorry for the long comment, and Microsoft, we love the openess you've shown on this version. I hope we never go back to the old-ways. Along those lines of openess, hear we are, offering our input.

# August 13, 2005 2:49 AM

Frans Bouma said:

Beta3? No, that will only slow down the process
Fix more bugs? Oh yes. We all know Microsoft won't release a service pack for vs.net. They never did. So any bug that's postponed has to be fixed NOW. And I'm not talking about silly things, but things like operator restrictions on generics for example and after reading a lot about it: the webproject crap.

personally I think the current webproject is a real PITA, so I use class library projects, but I'm unsure if I can still use class library projects in vs.net 2005 for websites.
# August 13, 2005 3:56 AM

Jeff said:

So because they never released a SP before means they never will. That's an example of one of those irrational things I was talking about.
# August 13, 2005 8:25 AM

Frans Bouma said:

"So because they never released a SP before means they never will. That's an example of one of those irrational things I was talking about."
I can only conclude that they never will release a service pack. What evidence is there that they WILL release a service pack? It's 2.5 years AFTER vs.net 2003 was released! Didn't they promise a service pack for vs.net 2002 right after 2003 was released?

I've given up on them for service packs for VS.NET. Perhaps we're lucky and they find it necessary to release a service pack, but I doubt it. The main reason I think they don't release a service pack is that IF they do that, there is less need to upgrade to a future vs.net, and us upgrading to a newer version is MANDATORY to get new technology implemented by developers, at least for MS. If most developers stick with .NET 1.1, stuff for longhorn will take ages to get mainstraim, at least the code based on .NET 2.0.
# August 13, 2005 9:39 AM

Jeff said:

What evidence is there that they won't? Things change.

We have these "certainties" in the roller coaster enthusiast world too, like Cedar Point builds a new coaster every two years. Still waiting for that one to pan out.
# August 13, 2005 12:26 PM

jayson knight said:

I share your pain. From what I've read in the past, MS didn't design web.config to be writeable...it's supposed to be a read-only holding pen for configuration settings. If we have to jump through hoops to write to it, there is probably a reason why we shouldn't...plus bear in mind that if you write to it from asp.net it'll restart your application (which will lead to some perf degradation). While I don't have a solution for you for 1.x (aside from what you mentioned in your post), I do know that 2.0 specifically addresses this "problem." In the interim, roll your own xml file formats and write to them.
# August 13, 2005 2:43 PM

Johann MacDonagh said:

I don't see the API for configuration modification being used in every web application. Certain applications would use them for administrative purposes, but those changes would be rare. Any web application that needs it's web.config changed regularly is not one that was thought out.
# August 13, 2005 3:56 PM

Jeff said:

Actually, I WAS talking about doing this in v2. I know it's not something that gets frequently used, but I'm trying to get the app I'm working on to be as idiot-proof as possible.
# August 13, 2005 4:10 PM

Scott Allen said:

You are right, and you'll find out eventually you'll need write access in the directory and not just the web.config file. I don;t think it reflects poorly on the API, but does require some careful planning.

Jayson: one way to avoid the application restarts is to put the writiable portion of the config file in an external file and reference the file with the configSource attribute. (see http://odetocode.com/Articles/418.aspx).
# August 13, 2005 8:43 PM

Sean said:

Enterprise developers releasing software on Beta platforms? That's a complete oxymoron. You may work for big companies and produce large scale systems, but they are not "Enterprise" systems otherwise you'd not even be talking about Go Live licenses and that sort of thing. I'm all for using VS2005 for getting a head start and laying some foundation, but in my opinion the serious amount of risk you're taking working so much with a Beta product is frightening. Until the RTM version is released your playing with fire in my opinion.
# August 14, 2005 9:02 PM

Jeff said:

I knew someone would chime in with chest thumping. Thanks!
# August 14, 2005 10:56 PM

Anon said:

>>>We all know Microsoft won't release a service pack for vs.net. They never did.

Really? Then what's this link, dated 8-Mar-05?

Microsoft® Visual Studio® .NET 2002 Service Pack 1
http://www.microsoft.com/downloads/details.aspx?familyid=c41d8159-b42f-4d06-a797-e510494976ee&displaylang=en
# August 15, 2005 12:09 PM

Cameron said:

Just my $.02 but seems like this featuer would not be used very often. Would it be possible to make this feature available as a SQL script that could be run in the database of choice? It would need to reset the cache...which I don't know how that would work on pre-2005 or non-SQL databases. A web interface isn't a deal-breaker.
# August 15, 2005 3:41 PM

Anon as well said:

Yeah look at the date: 3/8/2005. Sorta pointless if we have to wait that long for a VS SP.
# August 15, 2005 5:19 PM

Arun Puri said:

"I guess this is the down side of having a very public and open beta process. "

Actually it is the problem of having not so open Development Process. Do not know how many times I have gone in and changed Open-Source software because of small issues like this. I know, I know M$ ain't going to do anything like this, but to do the least, should listen to the Developers, Developers, Developers, Developers, Developers, Developers, Developers...(I forgot how many times Steve Ballmer said that. But I guess you get the point).
# August 16, 2005 12:00 AM

Scott said:

A lot of people use Xcode. It's a pretty good, all around IDE.

i think most of the hardcore Java people use Eclipse though. It has a Ruby plugin that's really nice. The IDE has come a LONG way from the 1.x version I tried a long time ago.
# August 16, 2005 1:39 AM

Chad Humphries said:

I second Eclipse. It's a wonderful IDE and you can find a plugin for almost anything.
# August 16, 2005 8:40 AM

Brad said:

Jumping on bandwagon ... always intrigued by Mac, but have to earn a living so Wintel rules my corner of world. Something that enables both would be splendid.

Just a thought ... maybe this is a(n) element of the overall strategy? Sell to people like us?
# August 16, 2005 9:06 AM

Mike Shaffer said:

Third for Eclipse. I use it on Windows at work doing SWT/JFace/RCP development, and on my Mac & FreeBSD boxes at home for my side work in...just about anything. Just about the best Java IDE ever. I'd actually say it was the best, but I'm sure there is some feature that product X has....
# August 16, 2005 9:26 AM

Jerry Dennany said:

DonXML was talking about this a bit ago. I also remember it seemed to come up on weblogs.asp.net a few times, but I don't remember who was talking about it.

I looked at LuLu.com - most of these 'self publish' shops subcontract the work to places like LightingSource. If you know what you are doing, you may be better off skipping LuLu totally and working directly with LightingSource. This would would involve additional work, but you could start your own printing house.
# August 16, 2005 11:16 AM

Jerry Dennany said:

Here's the link where DonXML was talking about self publishing:

http://donxml.com/grokthis/archive/2004/05/07/686.aspx
# August 16, 2005 11:17 AM

David Findley said:

What about IntelliJ?
# August 16, 2005 2:42 PM

Cameron said:

Good luck.

We use JBuilder at work and it's a dated piece of crap compared to Visual Studio 2003...let alone VS 2005. Designing forms just doesn't "feel" as nice as it does when using MS IDE form designers like Visual Basic, VBA or VS. I prefer to write my code by hand.

Also, Java for the web is so far behind ASP.NET in my opinion. You can write Java class files at about the same speed as you do in C# but when creating the UI glue the Java framework just does not have the rich set of classes and controls that ASP.NET framework offers. And with Java there are a ton of competing implementions--all offer a limited number of tags...Java Server Faces, Struts, etc. Nothing though that matches the richness of the .NET framework. It can take a new Java team a long time to gear up.

And then deploying a Java web site is yet another cheesy process. Tomcat web server on UNIX. Yuck. And when you get a site running on Tomcat...it ain't gonna work on Websphere.

A team can build a powerful web site using either framework but they'll spend 2-3 times longer if you do it Java. Where's the cost savings there? Anyhoo to answer the question, JBuilder (for the debug support) or hand code in your favorite editor.
# August 16, 2005 3:43 PM

Dude said:

>>>Really? Then what's this link, dated 8-Mar-05?
>>>Microsoft® Visual Studio® .NET 2002 Service Pack 1
>>>http://www.microsoft.com/downloads/details.aspx?familyid=c41d8159-b42f->>>4d06-a797-e510494976ee&displaylang=en

Waiting 3 years for a service pack isn't acceptable. Six months to a year, yes; 3 years, no. The version after VS 2005 will probably be out in 3 years time anyway.
# August 19, 2005 1:17 AM

Sanjoy said:

Please Let Me Know if Component Art's Tree View can be used with MCMS2002 and how about its its Browser Compatibility.

Please mail to rsan256 at hotmail
# August 22, 2005 2:52 AM

Martin Naughton said:

Hi,

The property is on the Form (AcceptButton), not the TextBox.

Thanks,
Martin
# August 22, 2005 1:04 PM

Jay R. Wren said:

or you can check the keypress event for the textbox and see if it was an enter key.
# August 22, 2005 5:13 PM

Jerry Pisk said:

Except that at least in Win32 the enter key message will never be sent to the edit control unless it is created with ES_WANTRETURN style. I'm thinking .Net's message handling will not be much different from Win32's.
# August 22, 2005 6:03 PM

Steve said:

Not to play the "i'm complaining about something that's totally free" person, but is this version 8 going to have any improvements to the Post Entry system? In the current version its a flat out chore to make a post in the forums at uberasp.net (really messes with trying to post code, fonts and colors get out of whack too easy, stuff like that)
# August 23, 2005 5:25 PM

Jeff said:

Define "chore."
# August 23, 2005 5:30 PM

Steve said:

My definition:
- Not very easy to use

Some things i've noticed

- Copying and pasting actual code into the entry box doesn't result in a very usefull reply. For instance, i was posting about a question on one of your aritcles and it took me three tries and at least 5 edits just to show the code i was trying in a well spaced/well-indented manor so that people could follow it easier (it doesn't like "<" at all, for example: http://www.uberasp.net/forum.aspx?mode=thread&TopicID=510)

- Color coding is quirky at best, fonts and colors get mixed together when there is copying and pasting going on

- Clicking the "Add Image" button and then changing your mind by hitting "Cancel" on the javascript prompt results in a broken image getting inserting into the post

- And maybe its just a pet peeve of mine, but i despise the inserting of a <p> rather than just a carriage return / line feed when i click "enter", actually i've seen that as a very very very common complaint on many WYSIWYG editors, so i know its not just me

I mean look, that's just a user perspective and my 2 cents.... not complaining, not thinking i can do better, not putting down your stuff, so i don't think you should feel obligated to change anything or even give a second thought to anything i just listed, but i just ** at least ** wanted to point them out......

- Steve (MorningZ from the CT forums)
# August 24, 2005 12:00 AM

Jeff said:

Color and fonts are stripped out on purpose, so you aren't seeing anything "quirky" because it's just not there. Less than/greater than is parsed right in v8. The p tag thing is an Internet Explorer thing, whereas Firefox inserts br's. I need to figure out how to trap the enter key in IE (though shift-enter has the desired single-line break effect today).
# August 24, 2005 7:22 AM

Steve said:

"so you aren't seeing anything "quirky" because it's just not there"

If you really believe thats true, then i guess its all fixed in your eyes then, no convincing you otherwise
# August 24, 2005 8:31 AM

Jeff said:

What? Dude... this isn't about convincing me of anything. The forum does not, and never had, handled colors or fonts. It's parsed out as leftover HTML. It's just not there.
# August 24, 2005 8:37 AM

mario said:

What happens if you have more than one textbox in the form.Then it doesn`t see the desired button but the first one in the form.How can I rounf this problem?
# August 24, 2005 9:33 AM

Jeff said:

Sure it does. You set each TextBox to fire the right postback event as described above.
# August 24, 2005 10:02 AM

Wim Hollebrandse said:

"I'm sorry, but just because any idiot with a computer and a microphone can do it doesn't mean they should. There's so much crap out there."

Couldn't phrase it any better myself!
# August 25, 2005 6:01 PM

Thomas Goddard said:

It's not about how great the Intellisense is. THE ISSUE IS: It takes me 3 days to develop an app, 10 days to workaround your so-called "Quarks".

I am ripping my hair out over here trying to publish a web project 2005 to a remote web server. No dll, no project.

I am ripping my hair out over here trying to design a DataSet with the new designer.

I am ripping my hair out over here because objects do not dispose or do not do what they are documented as doing.

I am fed up with people that have this utopia, oh the sky is so blue over here, never had a bad dev day in their life, think they are better than everyone else, act like they made this sh%, and try to talk up this billion dollar company that's wasting my damn time when it shouldn't take me so long to do some little things!

Look, you might say, "If you don't like it, don't use it..." in fact, I say that! But you know what? MS, whether you trust them or not, has a major damn monopoly on the software development world, and software world in general. Smile if you want to but I have smiled so much my damn face hurts and now I'm pissed. I can't fake it anymore... MS is great for people that like to tinker with toys but I am trying to roll products out the door here people!!

</Gripe>
# August 27, 2005 4:40 AM

Thomas Goddard said:

BTW... I found a solution to my web project issue! Don't use them! It works! Now that's what I call a feature MS! Tell all of your customers that they really don't need to use Frontpage Server Extensions, then when you release the project, make it so that you can't publish sites to remote servers without frontpage server extensions.

Then take out the dll from developers projects all together because you know us web developers, we dont' know what them things are anyway. We all just code inline like those nifty macromedia MX people. Heck, we should just model vs.net off of macromedia MX cause MX is super neato.

I can't copy my project or publish it to remote sites like I could in 2003. But it's better than trying to publish a project for 3 hours in vs.net 2005. So some inexperienced people take over MS's flagship product. Now get all these great new features!!! Weeee!

# August 27, 2005 5:13 AM

Jeff said:

Sounds to me like you just don't know how to adapt and don't understand the product. I've not had any problem publishing sites via the built-in FTP. No assembly required, and so what? Actually, I take that back, usually I have a reference to a class library project, and sure enough, that project's assembly makes it into the site. You're too hung up on the business of physical files, when it's all about objects. Seriously, if it takes you three hours to copy a project, that's not Microsoft's fault.

Who has ever used DataSets with the designer? Who uses DataSets at all?

Show me which objects aren't disposed.

And for that matter, if you're "pulling your hair out," then maybe you should not use a beta product and bitch about how much you can't stand it.
# August 27, 2005 9:03 AM

Thomas Goddard said:

Beta 2 to RTM? Where's beta 3, RC, RC 2, RC Gold??? Maybe I don't understand the point of these web projects but that's the whole point, at least I understood the other kinds of projects. As far as understanding the product, I'm an MCSD/MCAD .net AND I had to live through understanding vs.net 2002.

It is microsoft's fault that it takes three hours HTF is it my fault that they promise you don't need FP server extensions for remote publishing but you really do? I don't want to run an FTP server on my box.

Who uses DataSets? I use DataSets. Lots of people use DataSets with the designer. Why rinvent the wheel? Especially with the new binary serialization formatter and the major performance improvements. But then they go and break the designer. Besides, you do realize that DataSets and XSD are the future, don't you? WinFS uses DataSets and XSD, SQL 2005 uses DataSets and XSD, and web services now support binary serialization for DataSets and XSD.

You also think it's a good idea to publish your source code when going to production? I love the fact that you compile web projects. But now those MX users are even happy to break the code when they can. What's this App_Code and App_Data too? MS talks about how it's so important to use nTier architecture and then throws their Data access layer in their default web project. Give me a break.

Create a new instance of an IsolatedStorageFileStream and use it in one section of your code:
DataSet myDataSet = new DataSet();
using(IsolatedStorageFileStream isolatedStorageFileStream = new IsolatedStorageFileStream("MyXmlFile", FileMode.OpenOrCreate)
{
myDataSet.WriteXml(isolatedStorageFileStream);
}

now in a different class... try to open and read the isolated file... the stream remains open. The GC is supposed to dispose/close resources that are required by other objects. Instead you get a FileAccessException because the file is in use.

You also need to take a look at some of these responses from Microsoft. Bugs that make certain 'features' unusable:
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=c2f7d047-7eda-47fa-bc8a-5801b9e0d271
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=4a93e304-4ae7-4519-96e1-70f3a0202b6a
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=963554f0-cca4-45e9-8431-b0b70da5251f

The DataSet designer was almost awesome in 2003. Now it's unusable. That's my point!

BTW, that IsolatedStorageFileStream issue and many other bugs are not just in vs.net 2005, they're still in vs.nte 2003!!!
# August 27, 2005 4:59 PM

Jeff said:

Did I mention it was beta software? I'm sorry, did you pay for VS 2005? That's about what I thought.

>I'm an MCSD/MCAD .net
Good for you. That doesn't mean anything other than you can memorize stuff.

>HTF is it my fault that they promise you don't need FP server extensions for remote publishing but you really do? I don't want to run an FTP server on my box.

So then how do you expect to get the files on the server? They give you every possible option. They all work.

>Lots of people use DataSets with the designer.

DataSets blow. They're overkill for 90% of what anyone does in Web projects on a daily basis.

>You also think it's a good idea to publish your source code when going to production?

I didn't say it was a good idea, and I don't. What does that have to do with anything? You don't have to publish the code.

OK, so you found a couple of bugs, and they're in a beta product. It must suX0rz teh big one!!!111

Seriously... you're painting a much darker picture than what's really there.
# August 27, 2005 6:13 PM

plex said:

I just have to say, a lot of you people are whiny little bitches. You have no value to add to this subject, you just want to be heard and you don't even know why, you probably spend a half hour editing your post and still it comes out sounding as though it were written by a 15 year old.

A couple points. Backward Compatibility for DEVELOPERS is a pipe-dream. If it worked for you in 1.0, but has changed in 2.0, tough shit. That's called advancment. Backward Compatibility for your users is infinitely more valuable, software that breaks because of technological advancment is software that doesn't sell, therefore Microsoft has stood by their word on backward compatibility. V1 apps will run on a system with a V2 framework, V1 crutches non-inclusive.

The vs2002 Service Pack released was released shortly after vs2003, not 2005, the web link itself was updated. Anyone who thinks they have the upper hand by declaring that it was a late service pack doesn't know their head from their ass, and even if it was a late service pack 99.9% of you whiners don't write commercial software, at BEST you create a website and MAYBE even an intranet portal. You haven't actually experienced any of the 'real' bugs that exist in the framework and those that have probably thought it was THEIR OWN FAULT IN THE FIRST PLACE.(really, I'm laughing inside, because it's funny).

And Tom,. I don't know what your problem is because I really haven't had any problem publishing web projects to my web servers, nor building, I still see my DLLS goign out and I still use codebehind as it is approriate. I'd like to sit here and pretend I'm a wh0re but I'm not, and the fact is this is a beta release, that when released, was a 3 MONTH OLD BUILD, that's right.. it was already outdated before it was shipped. The majority of problems peopel are having have already been fixed. You shouldn't be using whidbey for anything your bread and butter relies on anyway, are you insane?

I'm never hiring an MCAD/MCSE, but then everyone I know personally knows that about me.

The DataSet designer was always a packacge of shit, and it's only just now getting better. Most peopels problem is they really don't understand what's going on internally. If you had any idea, you'd be lauding the new designer as the future direction of code-generation and data modelling.

But no. You complain it's unusable, even go so far as to claim the original peice of shit they called a designer was usable. No, it's not the friendliest thing on the planet, yes it still needs some keyboard improvements, and I have no doubt they will be resolved before shipping, I of course use PDC2000->V1.0 as a template for this shit, Microsoft generally ships a usable, stable product that serves the exact purpose it was intended to. The path to 2.0 isn't a clear one, stop talking as if it were.

Delete the beta. None of you are worthy. Some of you obviously fail to understand what beta means, and in your correspondence with Microsoft you're totally inept at comprehending exactly what they have told you. You've become doomsayers because you WANT to.

Bleh, I have better shit to be doing.

Suck it up.



# August 27, 2005 6:13 PM

plex said:

And oh, you don't need FP server extensions to publish, as I still don't use them at the office. A fileshare does help though?

# August 27, 2005 6:13 PM

Thomas Goddard said:

Try 2 minutes to write down my ideas and 3 to revise...

You do need frontpage server extensions to publish to a remote server, if you are not using FTP. If you read anything below the third paragraph in my last post you would see that the issues I am having are not just in vs 2005 or .net 2.0, they're also in .net 1.1. Did I pay for MS Software? No, but who does and who should?

About that SP1, did you ever see that check for updates feature work for you in 2002 or 2003?

DataSet designer: add 20 tables to one schema and try to use it. I thought it was great too, until I tried. The performance is worse than before. It takes over a minute to refresh the schema diagram because it generates the code every time. Are you sure that you know how everything works under the hood? Navigating anything over 20 entities in the schema designer becomes difficult. Create a new XSD Schema in 2003, add two elements and move one out of the view. Go to View>XML Schema Overview. Did you know that was there? It isn't in 2005. There's no zoom in zoom out tool or a high level navigation view, as in the previous version, Look at the code generated by the DataTableAdapter. They're using string concatination to build the SQL statements. Why that's bad? You probably wouldn't know.

The class designer is great and model driven development is where it's at. But it's like 4 steps forward, two steps back. We are making progress...

Where exactly do you find the DLL for your web project? Where is the option to publish a web project without the code? There isn't one.

What do you know about the software I have or have not shipped? Would writing software for the largest retailer in the US count as experience in your book? Would developing software for the worlds 3rd largest software company and shipping to the worlds largest retailer count? Would working with the developers that created Amazon.com, Walmart.com, to name a couple count? Would presenting to over 10 of the world's fortune 100 companies CEOs, CFOs and CIOs count? How about working directly with Macromedia, Charles Schwab, the entire Taiwan Technical Deligation? Don't make yourself such an ass you little Microsoft Koolaid, cowboy, think you know it all cause your mom pays for your gas.


Would developing cutting edge vector based UI's integrated with web service back ends, deployed to millions of users count? Look who's talking about shipping software LOL... MS has slipped on their dates over and over and over again. So don't use them as your model, princess. You sit here and talk all this hype about vs.net but you are just a little bitch. Core .net bugs or general OS infrastructure problems have forced us to cancel huge projects. You don't know the millions and millions of dollars, 500 million to be exact, that I've seen fly out the window because of issues like these... Huge teams put out of work because even Microsoft tech support couldn't help figure out why it didn't work... Microsoft built labs for me to help figure out some of these issues and they spent weeks trying to fix them... yet they couldn't seem to fix it.

Don't take offense to the fact that I am pointing out flaws. I am a developer and I understand that it's not easy to ship bug free software. You might be right about most of the bugs being fixed in the final release and I wouldn't know yet because I don't have it. But what's really scary is that we have had to deal with issues from vs2002 all the way up to today with service packs coming AFTER a entirely new release of the product, with new bugs...

I am really looking forward to 2005 and .net 2.0 but I would rather work with a product that I can count on 100 percent.
# August 27, 2005 8:51 PM

Jeff said:

I'm not taking offense to anything... nor am I the one chest thumping certifications and my resume. I'm still not impressed either.

You only need FP extensions if that's how you want to put your code on the server. You can also use FTP, UNC, or burn a CD and take it to the server. What else do you want?

I see plenty of compiled assemblies, and one step better, no .aspx markup at all when I use Build -> Publish. No previous version did that. Even then, if I was doing a straight copy, the uncompiled code on the server in code-behind or in the pages is little more than glue to tie the UI to the class library I write in a separate project. That's hardly a revolutionary way to build an ASP.NET site. Things like app_code and the like are for the benefit of hobbyists, people building small apps, or people that just don't need to a hundred tiers to an app to say "hello world."

And if you pissed away half a billion dollars on an IT project, then that's your fault, not Microsoft's. There isn't anything in the product that would ever merit that kind of loss.
# August 27, 2005 9:27 PM

Nate said:

I have to agree with much of what Tom is saying. If the RTM is even close to what Beta 2 represents now in terms of outstanding bugs and performance issues (and there's no reason to think it won't be with the amount of postponed issues at the Lab) then I'm not sure Visual Studio 2005 will be the best bet for my company and my personal development. I think Microsoft should've focused on improving what was lacking in VS.NET 2003 and maybe add some core features such as generics, GridView, TransactionScope, etc.

plex, DataSets and DataTables are used extensively in practically every project I've worked on. I'm also familiar with the custom business objects model as well, and even in my custom business object model I use untyped DataTables to retrieve data from the database.

In VS 2005 I have a single DataSet schema that contains all my database tables (without relationships--I have to manually delete relationships automatically created for me every time I configure a TableAdapter in the designer, it's a real PITA). I then derive each of the data tables in my business tier and add business logic. It's a very good model and it removes a lot of the plumbing code I had to write in VS.NET 2003. I love being able to manage the data objects (DataTable) and data components (TableAdapter) in one place. It lets me worry about the BUSINESS side (the important side) of my application rather than worrying about select statement parameters. The DataSet designer in Beta 2 is buggy and pathetically slow. Anything larger than the smallest pet project renders the DataSet designer useless. Just take the Northwind or similar database, import it into a DataSet and try and use the designer. It's a joke.

I think Tom's concern is (and I know mine is) that Microsoft is changing what were otherwise good designs between VS.NET 2003 and VS 2005. Eliminating Web projects (I know they said they were reimplementing after Beta 2 but I'll believe that when I see it, and in what form I see it). Removing key DataSet designer features like zooming really hurt the product. You should remember that just because you may not use DataSets doesn't mean no one else does.

Also, Tom's comment about tiered architecture is correct. Strangely, Microsoft seems to push people *away* from tiered architectures by introducing such concepts as SqlDataSource controls. I couldn't believe it when I first saw an example of an asp:SqlDataSource control.....complete with inline SQL statement. Are these the kinds of precedents Microsoft wants to set? We need to move toward better development practices and features such as these hurt that effort.

True, Beta 2 is not far from being probably the most kickass development tool ever created. Combined with [now delayed until 2006] Team Foundation Server it will definitely improve a lot of the bad things developers must deal with currently when coding with Microsoft tools (source control being the primary example here).

It would be great to see a Beta 3. We've all been patient, we can be patient a bit more. The majority of production code does not ride on Microsoft's release date for VS 2005. I hope Microsoft clears up some of the biggest issues (performance and scalability) before RTM.
# August 27, 2005 10:55 PM

Jeff said:

You and everyone else act as if the bugs you find are being ignored, and they're not. Beta 2 isn't going to be anything like the RTM version.
# August 27, 2005 11:04 PM

Nate said:

Of course they are not being ignored. All the bugs I'm referring to have had Microsoft responses. Unfortunately all the responses are Postponed and as far as I know that means postponed until Orcas. Additionally Microsoft has stated numerous times in many of these Lab issues that Beta 2 is feature-complete and they are only working on the most critical of bugs. How is it that RTM won't look anything like Beta 2?
# August 28, 2005 12:22 AM

Jeff said:

There's a difference between a *bug* and a *feature* that's missing.
# August 28, 2005 8:07 AM

Cameron said:

MTV as a corporation sucks...stands to reason any web site they produce will suck. VMA is a cash fest -- it doesn't matter what role you play in it, you'll have fun. Obviously the Flash designers did this year. :)
# August 28, 2005 11:15 AM

Edwin said:

Yes, it must be. I opened the link and IE crashed in my PC. Sucks!!!
# August 28, 2005 1:31 PM

//Rutger said:

It does NOTHING in FireFox (I think).
All I see is an empty ad and an ugly footer.
# August 28, 2005 7:19 PM

Tom said:

Hey Jeff, don't hold back, tell us how you really feel! :)

Seriously, That site is just another example of old media sources thinking they can design web sites like they design TV special effects, aka just using visual designers with no software designers.

My experience in this sort of thing is that the execs at these type of companies never even look at it live. Their shown it locally (where it of course runs great) and then give the word to implement without another thoght.

Sad really...

# August 28, 2005 11:15 PM

jayson knight said:

Oh man...worst...site...ever. Good catch.
# August 29, 2005 3:33 AM

Lockheed said:

Actually Winforms Textboxen have a property to 'Accept Return' so that they will add a carriage return to the text in the box. Mainly used for multi-line text boxes. Other than that, you can check on keypress for the retrun key being hit.
# August 29, 2005 7:50 AM

Dave Burke said:

Hey, Jeff, I believe you. So much so that there's no WAY I'm clicking on that link! Who needs that aggravation? Good point on old media delusions, Tom.
# August 29, 2005 11:40 AM

Daniel Auger said:

Yuk! But which is worse - the website or R. Kelly's "performance" last night?
# August 29, 2005 1:40 PM

Thomas Goddard said:

Take a look at the first thread in this link:
http://netdialect.com/2005/tabid/103/ItemIndex/-1/Default.aspx

As mentioned above, the feature missing in the article is not the only postponed bug.
# August 29, 2005 9:31 PM

Dave said:

Here is what I would do.
Do two dev paths concurrently.
1. IE - gets dhtml bells whistles. When doing this use good Dom Practices, Try not to do things that are IE specific like document.all etc..

2. Everything else. Code for No Javascript, No dhtML, No Cookies etc.

Finish your site.

Now if money and time warrants you can start adding the uplevel items to other browsers in a dhtml manner do it then (It seldom does though)

I'm not saying that firefox shouldn't get the uplevel items, just usually isn't cost effective unless its a personal site.

# September 1, 2005 1:19 AM

Jeff said:

But that's not an acceptable solution when 30% of your user base is using Firefox. Especially when it's something that seems so relatively simple.
# September 1, 2005 2:03 AM

Drew Marsh said:

Well the script looks as crossbrowser as it can be (considering the offsetXXX properties aren't part of the DOM standard) and I just tried it out and it works no problem in Mozilla (v1.0.6) for me.
# September 1, 2005 5:41 PM

Jeff said:

Yeah, worked for me too once I tacked on "px" to the values, just as the article says you should. Next time I'll RTFM! ;)
# September 1, 2005 8:54 PM

Polita Paulus (ASP.NET team) said:

Hi Jeff-

When you call DataBind on an item, a lot of stuff happens. Second to control creation, databinding is when the most processing and control population occurs. The databound properties on all the controls inside the item are bound. OnItemDataBound (in some controls) is called, so all logic in the event handler is called. The OnDataBound event on every control inside the item is called. Do you handle or have logic in any of those?

When DataBinding occurs, if there are Eval or Bind statements on control properties inside the template, the DataBinder class looks for the interface IDataItemContainer on the object being databound to. In this case, it's most likely the SimpleContainerClass. You can speed things up some by ensuring that TemplateItem implements IDataItemContainer.

Another thing to look for: Does SimpleContainerClass implement ICustomTypeDescriptor? If so, make sure any logic to retrieve the properties is fast.

Hopefully this will help narrow down why databinding feels slow for you. If not, if you can get your hands on a profiler (like is available in the Team System SKU), this will help locate the culprits.
# September 5, 2005 2:12 AM

AndrewSeven said:

Could it be the timing of the databinding? You are calling databind right after the controls are created.

If you call the base databind once after calling create child controls, it should recursively call each item's databind.
# September 5, 2005 2:04 PM

Jeff said:

Oddly enough, trying this with a repeater yields even worse results. I don't remember a repeater ever behaving this slow in v1.x.
# September 5, 2005 8:07 PM

Polita Paulus (ASP.NET team) said:

The Repeater control has had very few changes, and virtually none to the code paths you're using. It sounds like reflection on your data item or your databinding statements are taking a long time to execute. You can add some trace statements to different controls' DataBound event handlers to figure out which ones are taking all the time.
# September 5, 2005 8:30 PM

Jeff said:

Yeah... see my next post. I was doing something stupid. It wasn't the binding process at all that was slowing it down.
# September 5, 2005 8:40 PM

Polita Paulus (ASP.NET team) said:

Glad you figured out what the problem was. If you're willing, showing others what text parsing was inefficient might help others avoid the same problem.
# September 5, 2005 11:40 PM

Wallym said:

Yeah, I've been there and done the same thing. It is embarrassing, but it does ultimately help out. :-)
# September 6, 2005 10:14 AM

scottgu said:

Actually, there already are 6 skus of Windows XP....

1) Windows XP Starter Edition
2) Windows XP Home Edition
3) Windows XP Professional Edition
4) Windows XP Tablet Edition
5) Windows XP Media Center Edition
6) Windows XP 64-bit Edition (which has IIS6 instead of IIS5 and some other differences from all of the above ones)

One frustration with the current XP SKU structure is that there is no "all in one" sku. You can get media edition, but can't use it to join a corporate domain. You can get tablet, but you can't use media center stuff on it. One of the goals with the new Vista plan is to rationalize this quite a bit.
# September 14, 2005 2:16 AM

scottgu said:

One option that some controls use is to support both a templated and non-templated render mode. If someone specifies a template, you use the templated/composited render path. If someone uses default rendering, you avoid creating child controls or compositing.

Hope this helps,

Scott
# September 14, 2005 2:18 AM

Jeff said:

Hey... that's a smart idea. But the question that brings up is how in the control's event lifecycle you deal with that. Normally you instantiate the templates in CreateChildControls(), whereas you create markup in Render(). It would then have to be an all-or-nothing, one way or the other approach, right?
# September 14, 2005 7:46 AM

Cameron said:

"Contemplating" being the operative word. The "anyone" hopefully being the consumer, LOL.
# September 14, 2005 3:50 PM

Jeff said:

But to this day with XP it's stupid. The whole home/professional thing appears as nothing more than a money grab. Make a server product, make a client product, and support media center and tablet functions where it makes sense.
# September 14, 2005 9:27 PM

anon said:

Me too!
# September 16, 2005 11:08 PM

//Rutger said:

Ohh... about usenet style displaying... wannahave!
And man, I'm wishing that feature in my Outlook for years!
# September 18, 2005 6:28 PM

Joshua Schwartzberg said:

Finally!
# September 19, 2005 10:52 AM

Ron Shelton said:

I was under the impression the only thing that you get in the Team System versions over the others is integrated unit-testing and object modeling. I say screw that and keep using NUnit and Rose (or Visio). It didn't seem like anything completely necessary - just "nice to haves". But since my money is also "nice to have", I will opt to keep it I think.
# September 19, 2005 2:00 PM

Edwin said:

That pricing is too high for us developers who push our clients to also use Microsoft software.

So, To buy or not to buy? Not to buy. Period.
# September 19, 2005 2:22 PM

Charles Chen said:

Considering the ridiculous price of Microsoft software, $5,500 for access to nearly all of it is not a bad deal, especially if it's deductible.
# September 19, 2005 3:36 PM

Karl said:

I continue to be amazed and amused at people saying TS' price point is too high. Let me say that we spend more in 6 months on staff salary to maintain our current SDLC tools than we would buying new stuff for all our developers/architects and testers (yes, we are actually split up like that!).

Our current tools are created by the very well you know who bought the even better known 3 letter giant.

Forgive me if this doesn't apply to you, but most of the people who complain about the price of TS don't have a change managmenent and SDLC environment set up, and hence simply don't know what the true costs are (try 2.5 configuration specialist and 70 hours in-house support every 3-6 months). The TCO of TS is well below their competition, end of story.
# September 19, 2005 5:11 PM

Karl said:

err..the were bought by, they didn't buy IBM...sorry :)
# September 19, 2005 5:13 PM

Erik Lane said:

Jeff,

I read great reviews about your book and picked it up a few times in the book store. I will say that I only learned of it through your blog so I guess the marketing hasn't been that great on it.

The reason I've not put down the $$ is that I, like most, only have so much time to read books. I originally picked up Professional ASP.NET 1.1 from Wrox since they have historically produced quality material. Looking back, I should've got your book but at this point I'm looking into design patterns and TDD so books like yours have fallen down my list.

This is not to say I won't pick it up but I just wanted to provide you some feedback.
# September 19, 2005 5:23 PM

Jeff said:

I think you're a little out of touch, Karl, because I'm sure that "most" of the people that complain could certainly use these tools. The testing part in particular, in an era of test-driven development, is as basic and necessary as the debugger.
# September 20, 2005 9:32 AM

karl said:

I'm not saying they can't use it...I'm saying they currently don't..or atleast not to the full extent that TS/Rational provide - else they'd understand what the real costs are. If you aren't already using Rational, trust me, 10K is a fraction of the total cost of ownership for a single license.

I guess what I'm trying to say is that this type of software development and process and management costs that much money to make. Yes it would be nice if this became available to a wider audience, because as you state, most of the people could certainly use these tools. But that simply isn't a market-reality. This is a product meant for a proven market. This is a product Microsoft decided to make money on, good for them and their shareholders, maybe it's shortsighted - who knows..

It isn't until you've paid for and used the competition's product that you realize how good a deal your getting. And if you disagree, keep using the alternatives.
# September 20, 2005 10:11 AM

Jeff said:

But you're assuming that I haven't. This is all old-hat when you've worked in a huge IT-driven company (Progressive was my experience, where they've been using externalized rules and workflows for years, by the way). I don't particularly find it a good deal. As an independent I don't find it to be a good deal either.
# September 20, 2005 10:31 AM

karl said:

I really wasn't assuming in your case, i knew I'd likely be wrong :) But I still think my points are valid in many cases. I experienced this first hand at TechEd where the first TS Cabana talk turned into something similar to this and I was shocked at people's strong view on this.

I do think MS is doing the right thing. I think they are offering a better product at a lower price than their main competitor. it would be nice if it was free...but that applies to just about everything :)
# September 20, 2005 11:16 AM

William S. said:

Does your wife approve of this ???
# September 26, 2005 3:45 AM

Jeff said:

Approve of what?
# September 26, 2005 1:04 PM

Erik Porter said:

I like the quote, "some of these games are hundreds and hundreds of megabytes!" ha!
# September 27, 2005 11:15 AM

Wallym said:

Sweet. You can go to the movies.............By yourself.
# September 28, 2005 8:25 AM

Jay Glynn said:

Not allowed to own one until you learn how to spell the name....
# September 28, 2005 8:36 AM

Jeff said:

Who cares. Get a life. Seriously.
# September 28, 2005 10:10 AM

me said:

"you will never need more than 64 megs of ram...." ha ha ha
# September 28, 2005 4:07 PM

Jerry Pisk said:

It's spelled porch, everyone knows that. As a developer you should be strict in what you produce (and lenient in what you accept).
# September 28, 2005 4:48 PM

Eric Newton said:

I gotta go with Jay on this one, a Porsche is not a porch. :-)
# September 28, 2005 5:58 PM

Jeff said:

Yeah, still, get over it. You know what I meant. I drive a Toyota Corolla. It's not my scene.
# September 28, 2005 7:40 PM

Rocky Moore said:

I have to agree with much of what you have said. But, I think the real point is that MS has moved away from small independant developers and have their eyes (along with drool marks) set on a much more expensive corprate market.

This is probably a good move for MS, but it is a bad one for many of us who really cannot afford to shell out $2,500-$10,000 per developer per year, not to mention all the licenses to systems in our businesses for production use (anything not specifically developer related). I do not know about you, but for me it is really getting in the way of making a buck!

If it were not for a few tools I use on Windows (like VS), I probably would have moved my camp into the Linux world some time ago. The truth of the matter at this point is that I just cannot find enough quality products to build .NET web applications solutions on Linux yet. Maybe in the future!
# October 2, 2005 6:26 AM

du8die said:

With all the "Free Air" you've given Holiday World the past few weeks, you should hit them up for a sponsorship! :)

d8-
# October 6, 2005 3:04 PM

Damien Guard said:

Would you really pay $35 for the first series of Lost at 320x240 resolution? I can only imagine what the quality must look like full-screen at 15"

You can get it on DVD for the same price, much better quality, resalable, better audio and playable on TV's. If you really want it on the move check out the many ripping tools around.

[)amien
# October 13, 2005 7:27 AM

Ron Shelton said:

I assume you have seen those docking stations for iPods that allow you to plug in your iPod and turn it into a full speaker stereo. It would be awesome if the video itself could still be high-res enough that a docking-station could be created that allows the iPod to act as a DVR. Then you could have the on-the-go video, plus good quality and sound on a television.

Disclaimer: I don't own an iPod.
# October 13, 2005 11:41 AM

Rod Pineda said:

"I assume you have seen those docking stations for iPods that allow you to plug in your iPod and turn it into a full speaker stereo. It would be awesome if the video itself could still be high-res enough that a docking-station could be created that allows the iPod to act as a DVR. Then you could have the on-the-go video, plus good quality and sound on a television. "

Thay esactly where apple is going. this is just the firs release, i Jut can't imagine the quality of the little beast in a couple of years.

# October 13, 2005 11:55 AM

Howard Yellen said:

Hey, my company helps firms get what they are owed in class action suits. Its possible that the $19 is what you were due, and its also possible that you are getting shafted. The database only contains 2/3rs of what it should. We got an estimate for one client who does, and I am not joking, over $7 BILLION a year. Their estimate was for $214.

I am not soliciting you as a client. I AM trying to learn more about what is going on with the database. If you don't mind spending a few minutes, would you mind emailing me at hyellen@spectrumsettlement.com?
# October 14, 2005 2:49 AM

Apple is very smart, and new products show it said:

FrontRow does look bitchin' doesn't it! I don't have the cash for a G5-based DVR/DVD burning solution though :( Which is the only thing I'd use it for, LOL.

You're right about iPod not being a killer app. It "does" video but it's "not" video. I mean it's not video specific.

Pixar is Job's other baby. So that deal isn't earth shattering. More like an experiment, we'll see what happens. Notice there's no movie distibution deal! Who watches ABC? Haha.

This has time to shake out...plenty of time for everyone else to catch up.

Some neat bubble gummy stuff from apple that I'll probably never chew.
# October 14, 2005 3:46 PM

nick said:

I haven't had a problem burning CDs, but I have noticed iTunes is somewhat slower and crashes more often since i upgraded to 5 (and now 6).
# October 17, 2005 4:33 PM

Steve said:

Well, i burned a CD perfectly fine on saturday, but when i went to burn another this morning, iTunes locked up... and hard...

So i gave it the ol 3 finger salute, and when i restarted iTunes, it no longer recognized my library.... greeeeeat
# October 18, 2005 4:17 PM

Apple is very smart, and new products show it said:

I use MusicMatch at home and Windows Media at work. We have Mac/ipod stuff at work but I've never had the urge to use it.
# October 19, 2005 6:51 PM

Charles Chen said:

I know that, all things considered, $5000 isn't _that_ much, but damn, I cringe when I see that price tag.
# October 20, 2005 1:42 PM

Cameron said:

I'm told the version of JBuilder (Java) we use at the University was $5K per user. So all things considered VS 2005 is a smokin' deal!
# October 20, 2005 3:17 PM

Steve said:

Just a follow up.. there was an update released this morning that promised "more stability"
# October 21, 2005 11:48 AM

fkumro said:

You are excatly correct. Sit back and watch it happen all over again. I'm personally going to get some popcorn...
# October 21, 2005 9:25 PM

Josh Christie said:

Jeff,
I believe you need to write the file out manually a chunk of bytes at a time in a loop if the file is greater than 2GB. Make sure you turn response buffering off. Also, you should be using TransmitFile instead of WriteFile since it performs much better.

Josh
# November 1, 2005 6:01 PM

DmitryR said:

How big is the file?

Another alternative is to use Response.TransmitFile() - it would not read the bits into memory. But it is also limited to 2GB.

Also, no need to call Response.End.

Thanks,

Dmitry
# November 1, 2005 6:22 PM

Jeff said:

By "large," I meant under 100 MB still.
# November 1, 2005 6:43 PM

Mital Kakaiya [MCSD.NET] said:

I am just wondering how do I know file has been downloaded completely, to maintain a real counter "item.Downloads++;"

User can click on "cancel" button during the download process, which should not increase a counter value.

# November 1, 2005 9:10 PM

Jeff said:

Well, you don't know, and honestly, I don't care enough to know for sure. :)

Switching to TransmitFile() solved the problem. That was easy. I'm still curious about the actual implementation of each method, however.
# November 1, 2005 10:23 PM

Frans Bouma said:

I had the same problem, but with memory consumption: WriteFile loads the file completely in memory before streaming it to the client.

So I switched to TransmitFile to do a test. No memory hogging anymore, but what's weird: the files are sometimes just 64KB, not 11MB. Also, TransmitFile isn't documented in the MSDN. Pretty obscure though...
# November 2, 2005 4:12 AM

Guy Murphy said:

Could this not be better done as a filtering module that simply observed the file fetch and made note of it, rather than a handler that dealt with serving the file? The handler is not actually adding any service value, and so might be redundant... a module should allow you to make the observations you need.
# November 2, 2005 4:33 AM

Josh Christie said:

Jeff,
TransmitFile uses a kernel-mode API to stream the file directly onto the network (it's what IIS uses internally) while WriteFile does all sorts of user-mode copying around between buffers before the file ends up on the network.

Josh
# November 2, 2005 9:13 AM

jhob said:

you stupid
# November 2, 2005 9:31 AM

Jeff said:

Pot, kettle, black, etc...
# November 2, 2005 9:41 AM

fkumro said:

How long before companies realize their are more browsers than IE in this world?
# November 2, 2005 7:15 PM

tt said:

I dont think they do it on purpose. It costs money to code sites for 2 browsers. Usually they code for the majority first, then later down the road, they spend the resources and code for the minority if the majority version pays off. I dont like it as much as the next guy, these browser wars are "lame". I say, "if you cant do it in HTML, dont do it".
# November 4, 2005 11:39 AM

Jeff said:

Nonsense. That's a cop out. You embed a media player the same in both browsers. News.com certainly has no problem.
# November 4, 2005 11:48 AM

Don Demsak said:

I've been downloading at around 900k/sec today, with no problems. It might be your connection, not MSDN.
# November 8, 2005 9:24 PM

Jeff said:

I doubt that very much, since I can hit 300k+ on my own server, as well as another 300k in Torrent downloads at the same time. (And no, I'm not doing both simultaneously.)
# November 8, 2005 9:27 PM

John Walker said:

Jeff,

I gotta say, mine came down extremely fast. Took about a little over an hour for the VS 2005 Pro image.
# November 8, 2005 9:42 PM

M. Keith Warren said:

I tend to get 100k
# November 8, 2005 10:22 PM

Blair said:

Try stopping the download and restart.
Don't ask me why but that fixed it for me.

Reminds me of the old days getting a slow modem when dialing to an ISP :)
# November 8, 2005 11:03 PM

Jay Welshofer said:

I regularly pull 350K from MSDN.
# November 9, 2005 12:09 AM

Roy J. Salisbury said:

My guess.. your connection is routed through one of the european or asian servers (because of your ISP's route). I used to have the same problem, but "hacked" my hosts file to point directly at the distribution server and now I get super fast downloads. Google it a bit.. the instructions are out there...

And just so you know it can be VERY FAST, I downloaded both the DVD image of Pro and the updated MSDN library in about 3 hours.
# November 9, 2005 1:56 AM

Frans Bouma said:

This time around I didn't have a problem, 300KB/sec on average. In the previous years it was slow at times. What helped was stopping and resuming hte download, making the downloadtool to switch servers, which can help.
# November 9, 2005 4:16 AM

Wallym said:

I also think the problem is your connection. My downloads are in the 200-300 KB/sec range over my cable modem.

BTW, I get frustrated to, so I know how you feel. I would check some of the other suggestions on this. :-)

Wally
# November 9, 2005 7:30 AM

Jeff said:

# November 9, 2005 9:53 AM

Kyle said:

I haven't tried this out, but here's a "Macro to count lines of code in .cs files" from GotDotNet...

http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=fb625d28-2c99-4066-a158-4b9cfe5ced98
# November 10, 2005 1:57 PM

Kyle said:

Sorry for the double post, but here's probably a better way...

http://www.codeproject.com/macro/linecount.asp
# November 10, 2005 2:01 PM

Kyle Finley said:

I have wanted the same feature and a while back I just wrote a little vbscript that will count the lines in various files.

http://kylefinley.net/archive/2005/10/03/18.aspx

This could easily be modified to be a macro. I only wanted it for curiosity sake on an old project.
# November 10, 2005 2:28 PM

Erik Porter said:

If there's nothing that does what you want, you may want to put it up on Product Feedback as a suggestion too. I'd vote for it if you did. I've wanted something similar for a long, long time. Would be neat to see what percent of lines of code in my app I actually wrote myself and how much was generated code, etc
# November 10, 2005 2:48 PM

Jon Galloway said:

Check out the DPack addins -

There's a stats view that includes totals as well as breakdowns by comment and code lines (and support for copying to clipboard):
http://www.usysware.com/dpack/Stats.aspx

It's free, and the VS2005 RTM version has been released.
# November 10, 2005 3:19 PM

Jon Galloway said:

Oh, and the DPack main page: http://www.usysware.com/DPack/Default.aspx
# November 10, 2005 3:20 PM

Kenny said:

You can always do a regular expression search. Just enter the character . (full stop) in the search box to find all non empty lines. The count shows up in the Find Results window.
# November 10, 2005 3:26 PM

scottgu said:

Cools stuff -- glad you are enjoying it! :-)
# November 11, 2005 1:01 AM

Mischa Kroon said:

Go him !!!

Indeed a great inspiration :)
# November 11, 2005 3:36 AM

Benjimawoo said:

Where did you get hold of VSTD - I've been holding off downloading VS Pro because I wasn't sure how well it would sit with VSTS Beta, and on the subscriptions page, all the team editions are marked for release in December...
# November 11, 2005 9:33 AM

Jeff said:

Uh... I dunno, it's right there on my MSDN downlod treeview.
# November 11, 2005 10:03 AM

Johan Hultgren said:

I recommend Source Monitor from http://www.campwoodsw.com/ .
# November 11, 2005 10:11 AM

Kyle said:

I got sucked into Ajax about a month ago. I think from a user perspective, it offers some features that are important. But, I also think this technology should be handled with care. Ajax for the sake of Ajax is not a good thing. But, if there are significant improvements in the user experience, I think it's worth it.
# November 11, 2005 5:53 PM

karl said:

I guess the same way you do an ArrayList, serialize the object and then deserialize it, try:

BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();

bf.Serialize(ms, strings);
ms.Seek(0, SeekOrigin.Begin);
List<string> copy = (List<string>)bf.Deserialize(ms) ;
ms.Close();

Karl
# November 21, 2005 10:16 PM

Dean Harding said:

You have to either serialize then deserialize, or manually call ICloneable.Clone on each element as you construct a new List. Depending on the types involved, one may be faster than the other.

In either case, if the type Foo isn't marked with the SerializableAttribute or it doesn't implement ICloneable (and you don't own Foo so can't implement it yourself), then you're pretty screwed, I would think...
# November 21, 2005 10:38 PM

Jeff said:

Is there some good reason for this omission from the framework? My Java buddy was telling me you can call a Copy() method on practically anything to do this.
# November 21, 2005 10:49 PM

Dean Harding said:

Well, I guess it's the same reason that they require you to implement ICloneable yourself rather than doing it automatically. Technically, there's no reason why they couldn't have included a 'Deep-copy' directly into the framework, but they decided to make it manual.

Also, you could write your own List which supported a deep-copy clone, something like this:

class CloneableList<T : ICloneable> : List<T>, ICloneable
{
public object Clone()
{
CloneableList<T> clone = new CloneableList<T>(this.Count);
foreach(T t in this)
{
clone.Add(((ICloneable) t).Clone());
}
return clone;
}
}

That's just off the top of my head, so I might have got something wrong, but that's the basic idea...
# November 21, 2005 10:55 PM

Frans Bouma said:

... and in the object to clone, call base.MemberwiseClone() to get a deep copy.
# November 22, 2005 4:10 AM

//Rutger said:

Eh... cant find an Xbox in Hollend (just kidding)
Did my job, clicked your banner ;)
# November 29, 2005 2:17 PM

vinod said:

got this error at you web site

Server Error in '/' Application.
--------------------------------------------------------------------------------

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:

1. Add a "Debug=true" directive at the top of the file that generated the error. Example:

<%@ Page Language="C#" Debug="true" %>

or:

2) Add the following section to the configuration file of your application:

<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>

Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.

Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.

Stack Trace:


[NullReferenceException: Object reference not set to an instance of an object.]
ASP.addsighting_aspx.SubmitButton_Click(Object sender, EventArgs e) +104
System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) +105
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +174
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102


# November 29, 2005 5:33 PM

Dave said:

How about listing the last 5 sitings on the home page so someone could easily ascertain how current your site is?
# November 29, 2005 5:52 PM

fkumro said:

I agree with Dave, showing the last x number of spottings would inform the user that your site is active. Other than that great idea and I hope you profit so you can bring some of your bills down from coasterbuzz!
# November 29, 2005 11:21 PM

Jeff said:

Well I made enough today from AdSense to pay for the domain name. So there you have it!
# November 29, 2005 11:37 PM

Wim Hollebrandse said:

You're gonna be minted Jeff! ;-)
# November 30, 2005 8:24 AM

Alex Papadimoulis said:

Woohoo! One was found at CompUSA 2.31435672804514 days ago!!
# December 1, 2005 10:02 AM

Steve Pietrek said:

I have an IGN.com account. I put up a message pointing everyone to your website. Hopefully it will get some traffic now.
# December 5, 2005 8:36 PM

Chris said:

Mine worked. It was either there by default in my keys list or it was the same one i used for a previous Vista CTP. Probably the later.
# December 22, 2005 7:05 PM

Jeff said:

That's odd. Neither of them work for me.
# December 22, 2005 8:17 PM

Ian Smith said:

No problems for me. I just used the key listed for Vista CTP in my keys list and it worked fine.
# December 23, 2005 2:18 AM

todd brooks said:

I can definitely feel your pain. My company is a Certified Partner with ISV Software competency. We STILL have not received VS.NET 2005 Team Edition for Software Developers. I can't even download it because it doesn't show up in MSDN Subscriber downloads. I called MSDN Subscriber help AND chatted with them using Concierge...everytime I call them they tell me that as a Certified Partner, I don't have a REAL MSDN Subscription...that it is provided only as a benefit of the Certified Partner program. Nice...yeah, that's what we pay all that money for is just a lip-service version of MSDN Universal (now Premium). They always hand me off to Partner support.

So I call Partner support. They tell me that VS 2005 was supposed to be in our November shipment...but wasn't. They say that they know about the problem. Ok, fine. When will I be getting VS 2005 Team Edition...you know, what I PAY for? They have no ETA. What?! I call them up on December 21st...still don't have my December shipment...still don't have VS 2005 Team Edition...they know...but have no ETA when I'll get it. So, when will I get it on MSDN Subscriber downloads...well, you have to talk to them. ARGH!!!!

The stratification of VS 2005 and the inoperability and miscommunication between MSDN and the Partner group is ridiculous. If I were a retail customer, I could have already purchased TEam Edition...but since I'm a premium Partner...no, I get to wait. Until when? Who knows...<sigh>
# December 23, 2005 3:36 PM

Raj Kaimal said:


I have had the same experience with the concierge service. The folks on the other end never have an answer for anything and they always end up with the "call our toll free number at ...." reply.
# December 23, 2005 6:54 PM

jayson knight said:

Hey guys

(at the risk of putting my reputation on the line here ;-)

I used to work @ Microsoft as a DSTR (Developer Support Technical Router) a _LONG_ time ago; those are the folks who route all incoming developer related support calls, and they also man the MSDN/Partner chat sessions.

@Jeff: The DSTR team simply doesn't have access to the keys on MSDN, nor did we have access to MSDN account information, that's all handled by the MSDN fulfillment center. Our main job was to help MSDN customers locate content on the MSDN site, or answer general questions as they related to the subscriptions program. There's simply nothing we could have done in your situation except forward you information to help you out (which is what it's all about, right?).

@Todd: Again, same thing...the concierge service is simply that...a concierge. The DSTR team does indeed handle the partner chats, but only as they relate to the partner website content (helping folks find stuff), and program related information. We didn't have access to any of the account related information, that's all handled by the partner support folks. So again, there's nothing that we could have done.

My take on it is this...MS needs to do a better job of explaining exactly who people need to contact for what. In the cases stated above, we were simply doing our job of "concierging" by providing customers with the information they needed to get answers to their issue. I realize everyone has terrible stories about customer service (as a professional developer who's had to call MS quite a bit, I understand), but before everyone starts jumping to conclusions put yourself in the shoes of the person on the other end of the line (or chat in this case) and stop to think "well, they couldn't help me out...but they gave me a number for someone who CAN help me out." Sure, time is money, but this is part of the game folks...customer service exists for a reason, b/c there are always going to be issues. Both parties need to be amicable to the situation at hand, and conduct themselves in a professional manner. Never once in my tenure as a DSTR did I tell a customer something just to get rid of them, and I can speak for my colleagues at the time as well.

That all being said, I certainly don't miss being a DSTR :-). MS consistently gets some of the highest ratings in the customer service realm...trust me, it could be a lot worse (I won't name names...ok yes I will, try dealing with Oracle support...bleh). I realize everyone gets stressed around this time of year, but take a deep breath, relax, and realize that the folks at MS are just there to help.
# December 23, 2005 10:11 PM

jayson knight said:

I also wanted to say that this line speaks volumes:

"Already, for the second time in four years that I've subscribed to MSDN"

I'd say 2 times in 4 years ain't bad my man. How much time has that really cost you? Also, how much time are you really losing by not being able to install a CTP of a product that won't be released for at least 6 months? The CTP's are a gift from MS...this time last year we'd be sitting on our hands waiting for beta 2. Don't look a gift horse in the mouth.
# December 23, 2005 10:16 PM

Jeff said:

I wouldn't want you working there either. I took three years off subscribing because there was zero benefit. Getting activated and getting what I bought was a pain in the ass both this year and when I did it in 2001. What a joke. These idiots aren't providing resolution to anyone. The "not my problem" route is pathetic and not something I expect as an indie developer shelling out a ton of money.

There is no "gift" here when MSDN is marketed as a means to keep up with the technology as it is released and before it's released. Don't be a fanboy.
# December 23, 2005 10:25 PM

Chris said:

It seems to me that if the MSDN subscriber site needs live chat help to navigate the site, then maybe the site is poorly designed.
# December 24, 2005 5:50 PM

jayson knight said:

@Jeff: Dude, no need to resort to name calling...I was simply trying to give you guys an inside view of what actually goes on over there. I will say this, I totally agree that the concierge should have more authority as it relates to the MSDN/Partner folks as far as being able to provide solutions w/o having to hand folks off to another group; you should definitely provide some feedback saying just that. MS has always been good about pleasing the customer (just look at what's been accomplished via their blogs/bug report tools/etc). Bitching about it here accomplishes nothing other than a chorus of "me too's"...go to the source, if enough people chime in MS will change the way things work.

Looking at the chat you had w/ Peter, not once did he take the "not my problem" attitude...he was curteous (which is more than can be said about your approach) and gave you the information you needed to solve your issue. There's simply nothing else he could have done to help you out given the tools he had available to him The CTP's are indeed a gift from MS (name one other company similar to MS that does this)...so what if you have to wait a bit for a product key? Frankly I'm insulted as I used to be one of the "idiots" you refer to...these guys are just doing their jobs like anyone else. No amount of yelling can make rabbits appear out of hats. I really hope you don't refer to your customers in this manner.

@Chris: It goes w/o saying that the live chat is optional, and was generally geared towards new subscribers who might be overwhelmed by the MSDN site at first (there is a ton of content available, and finding exactly what you need can be tricky at times). We worked closely with the MSDN site group to stay on top of new content/site changes/etc so that we could provide our customers with the best up to date information as possible. It has nothing to do with "poorly designed", and everything to do with giving the customer options as to how to find what they need on the site (hence the term "concierge"). As we were constantly exposed to MSDN site content, more often than not we could provide information for people that they might not have otherwise known about.
# December 25, 2005 12:15 AM

Jeff said:

You don't get it. Your "inside view" is irrelevant. I don't give two shits what goes on internally. It doesn't matter if someone is nice or not, the "not my problem" sentiment is the same.

You're a fanboy, and I don't care if you're insulted.
# December 25, 2005 1:24 AM

jayson knight said:

My inside view is actually very relevant given the situation you described, and apparently _you_ don't get it. Why piss and moan about it here when you can try to get stuff to change over at MS? Your attitude is absolutely pathetic...if you don't "give a shit" about what goes on internally with the company that supplies tools that you make a living with, then obviously you don't care about the future of those tools, or the company itself.

Unbelievable dude, I come over here to try and help out and explain what's _really_ going on, and tell you how to help change things over at MS if you don't like what's in place, and I get labeled as a fanboy? If you don't like MS's support, either don't use it (and figure it out on your own...you seem like a bright guy), or switch to a different toolset. I was actually trying to help, yet I'm left regretting the time it took to try and provide some insight. Unreal. To each his own I guess. Happy holidays :-).
# December 25, 2005 1:49 AM

Jeff said:

I'm not even going to read your post. Customers don't give a shit about your problems. Make excuses and they stop spending money with you. Why is that so hard for you to get?

You're right, I don't give a shit about the company, I give a shit about my own. This isn't a touchy feely Christmas story. If the company I work with can't meet my needs, I go elsewhere. That's business. You've heard of business, right?
# December 25, 2005 11:22 AM

Fkumro said:

Jeff I totally agree with your points. I had enough of Microsoft years ago and they couldnt provide me with the service I needed so they got kicked to the curb. I was very displeased with their service just like you are. Good Luck!
# December 27, 2005 10:21 AM

brady gaster said:

Man, I read this and realized you and I have no idea who one another are, but I have to tell you I feel your vibe. I had the same issues some time back, and being a capitalism-hater, the proliferation of the blog as a tool to make people dough pretty much signified my removal of myself from the whole damned thing. So now I pretty much don't blog any more. Not only that, my personal life sucked for awhile so I poured myself into my work. Then my personal life turned perfect and I got outta my work again. So that's how life goes I guess, in, out, and forever ON. Not sure what I'm saying, or if I'm saying anything at all really, other than that you're definitely not alone in your strife and in your work/life dichotomy. It would have done me a lot of good if someone had said that to me way back when, so I'm saying it to you.
# December 30, 2005 9:03 AM

Jeff said:

Well I'm a little different, because if I could make six figures blogging, I would!
# December 30, 2005 11:26 AM

Cameron said:

Jeff your book kicked ass and even though I've never got around to using PopForums in production I did enjoy tearing it apart :) I was a C# newbie when I first downloaded it and PF was like a living textbook for me.

cheers,

Cameron
# December 30, 2005 4:58 PM

Tony said:

Doesn't work for me either. Tried both the Vista CTP key that worked with the previous build, and even the Longhorn Beta key, without success. Both were the ones listed in my MSDN Product Keys. There must be a problem with the new build or the MSDN site needs new keys for some people?
# January 1, 2006 2:36 PM

Robert McLaws said:

Both client and server were on the same DVD. The key set which copy was installed.
# January 1, 2006 11:06 PM

Alain Deroy said:

Doesn't work for me either. Already contacted msdn about this and they confirmed the product key is valid. Can't install though.
# January 2, 2006 8:20 AM

John Walker said:

That should work, by I'm just curious....Couldn't you just to the following...

context.Session("antispamimage") = s.ToString();
context.Response.End();

Also, why the context.Response.End() line?
# January 5, 2006 2:00 AM

Jeff said:

I did set it that way originally... I was just trying other things for the sake of doing so.
# January 5, 2006 2:02 AM

Steven said:

Is the image cached on the browser?
# January 5, 2006 2:53 AM

Hannes Preishuber said:

another question: is this not a topic for a forum? and not for a blog?
# January 5, 2006 6:25 AM

zzzzzzzzzzzz said:

Hannes, surely jeff can post what he likes on his blog?
# January 5, 2006 7:20 AM

Wilco Bauwer said:

Does it work when you take out the context.Response.End() call? Response.End() will 'immediately' stop the execution of the page, by throwing a ThreadAbortException. It is likely that this results in not a session object that is not persisted properly.

For more information see Bertrand's blog post: http://weblogs.asp.net/bleroy/archive/2004/08/03/207486.aspx
# January 5, 2006 8:04 AM

Jeff said:

I'll have to try that, but it doesn't make sense that it works at home in the VS server but not in IIS.
# January 5, 2006 9:08 AM

AndrewSeven said:

It sort of makes sense that different server could have different behaviors.

Did you try on IIS "at home"?
# January 5, 2006 9:21 AM

Wilco Bauwer said:

I haven't looked into this, by my guess is that the difference is between IIS' worker request (which is ISAPIWorkerRequest or something like that) and Cassini's worker request (which is a derivation of SimpleWorkerRequest IIRC). Like AndrewSeven suggested - try the same thing at home on IIS and I am pretty confident that it will fail there aswell.
# January 5, 2006 10:18 AM

Jeff said:

Still no joy here... I don't get it. Doesn't make much sense that the Session update runs once but not on subsequent requests.
# January 5, 2006 8:53 PM

John Walker said:

Jeff,

I've noticed a few times, especially with the Graphics Object that an exception will be thrown (often after a method has been run) that is not caught in the debugger.

Have you tried stripping down the method to just include the Session changing call, and exclude all of the other stuff? Might be nice to know if it's some other code in the method that is causing a problem. Just a thought.

jw
# January 6, 2006 2:16 AM

jayson knight said:

It would seem to me your code is correct, and that this is an environmental issue with either A) IIS, or B) ASP.NET 2.0. Have you tested it on 1.1 (just to rule out 2.0 issues)?

Also, in your post you mention Session["spamimage"], yet I don't see that in your code anywhere (perhaps a typo).

In addition, what are your web.config settings for this httpHandler (i.e. what file extension are you trapping for), and is this properly configured in IIS?
# January 6, 2006 2:27 AM

scottgu said:

Have you checked the cache settings being sent down to the browser? It could be that under IIS you are sending down a client cache duration -- which means the browser just uses the local copy in the future and doesn't perform an explicit check for changes.

Hope this helps,

Scott
# January 6, 2006 3:39 AM

Jeff said:

No, the browser isn't caching it, because the graphic changes every time. If the graphic is written to the output stream, the code is executing right to the end.

The handler works the same whether it's specified from web.config or run as a stand-alone .ashx handler. The browser doesn't matter either.
# January 6, 2006 10:28 AM

Karl B said:

.Net developers sure are in demand. I update my e-mail address on Monster.com and I receive 20 calls for the next few weeks. My wife, parents, friends don't even understand why people call from different parts of the country asking me to consider working for them. I know this won't last, but man, it sure is a glorifying experience.

Like you, I had time off to concentrate on learning .Net, and it has paid for itself in spades.

So, when the next big thing hits, time to quit your job, hunker down with the books, and then release yourself back into the market.

Good times for sure.



# January 6, 2006 3:32 PM

AndrewSeven said:

Does anyone have a good understanding of what IsReusable really does? I use false just because I'm not positive about true. I guess I should go reflectoring.

Does setting it to false change anything with your issue?
Does the VS-WebServer honor the setting and re-use the handler?

Does it work on your local IIS? Showing different behavior on the smae machine would be nice ;)



I once had some similar strange behavior with cookies;
Instead of using the context parameter that is passed to the method, use the full reference : HttpContext.Current.Session["antispamimage"] = s.ToString();
# January 7, 2006 10:40 AM

DmitryR said:

Jeff, how do you verify that the session is not set? Given that you tried Cache and it doesn't work either, I suspect that the code is not executing at all. Did you try to put a breakpoint (when running under IIS) to see that the code in fact executes. Are you using in-process session state?

BTW, IsReusable wouldn't make any difference here.

Thanks,

Dmitry
# January 8, 2006 3:04 AM

Jeff said:

But the rest of it IS executing. If it didn't, it wouldn't generate a new graphic every time. If you look at the trace output of any page, you can see the Session values, and they are set the first time and not on subsequent times. If the default (I assume in machine.config) is in-proc state, then that's what it's running. I haven't changed it.
# January 8, 2006 10:58 AM

DmitryR said:

Can you set the breakpoint and see that it is in fact hit? Alternatively, could you comment out everything but setting the session state variable to a new value and see if that works?
# January 8, 2006 11:21 PM

Jeff said:

Yep... it does happen. It executes.
# January 9, 2006 12:08 AM

jayson knight said:

At least he didn't say "p4wn3d"...then you should've really kicked his ass ;-).
# January 9, 2006 2:24 AM

Wim Hollebrandse said:

Jayson, I guess you mean pwned... ;-)

http://en.wikipedia.org/wiki/Pwn

The link at the bottom to http://www.purepwnage.com/ is quite funny.
# January 9, 2006 7:52 AM

OSBer said:

Dude be careful of being hoarded. Ohio Savings Bank is actively hoarding a crapload of .NET developers ... those who stay watch all their skills get zapped as everyon sits around reading slashdot all day.
# January 9, 2006 5:04 PM

DmitryR said:

I tried this scenario and it works for me. Here is what i did:

1) Created img.ashx containing your code from this post

2) Created page.aspx containing:
Image: <img src="img.ashx">

3) Created session.aspx containing:
<%= Session("antispamimage") %>

4) Request http://localhost/test/page.aspx
see the generated image

5) Request http://localhost/test/session.aspx
see the contents of the session

When I repeat steps (4) and (5) several times I do see the right data in the step (5). Does is the scenario work for you?
# January 11, 2006 1:29 AM

Jeff said:

Yep... works great in the Visual Studio server. Not in IIS.
# January 11, 2006 2:23 AM

DmitryR said:

This is really strange.

One possible explanation is web browser caching, as was suggested earlier in this thread. Please try it (steps 4 and 5) with a simple command-line client instead of a real browser (for example, tinyget from IIS6 resource kit -- http://support.microsoft.com/default.aspx?scid=kb;en-us;840671).

Other than that I don't know what to suggest... Please try to call PSS and they will help with debugging this problem.
# January 12, 2006 12:00 AM

Jeff said:

No, it can't be caching. I've said it over and over... the returned image changes every time. If it was being cached that wouldn't happen.
# January 12, 2006 12:55 AM

John Walker said:

Jeff,

I was interested to see if you ever found a solution and see you haven't. I had a little time, so I copied your code into a new web project hosted under my local IIS service. I compiled and ran the code and I am getting a different image each time I refresh my browser. It is definitely running here under IIS and not Cassini. Just thought I'd let you know I couldn't repro the problem.

jw
# January 15, 2006 1:07 AM

John Walker said:

PS: Sorry, forgot to mention, that I also have a separate page where I am spitting out Session["antispamimage"] and it is changing after each refresh of the image page.
# January 15, 2006 1:23 AM

Jeff said:

Nope. No solution. I'm stumped.
# January 15, 2006 8:46 AM

Travis said:

Very simple solution to over complicated projects:

http://www.amazon.com/gp/product/0521785197

A bible to some perhaps?
# January 26, 2006 3:39 PM

Alex Lowe said:

I want to be clear about one point you made:

"Keep in mind that CS isn't free for commercial use,"

This is not true. Here are the relevant parts form our license/EULA:

"Subject to the restrictions below, you may use the Software for any commercial or noncommercial purpose."

and

"Include the eula.gif on any displayed web pages which must link back to http://www.telligentsystems.com/Solutions/."

You can use the software however you like but the one catch (there are other points in the EULA but they are largely boiler plate items that protect Telligent) is that you display the CS logo and link back to CS.org.
# January 26, 2006 3:50 PM

Rob Howard said:

Ok, I'm going to correct this just a tiny little bit. Your point is well taken, Jeff, but you need to keep in mind that all the check-ins span not only Community Server core, but all the add-ons we have too.

For example, the NNTP Gateway (enables NNTP access to the forums) and Email Gateway (enables send/receive email to Community Server) are both included in the check-in counts.

Furthermore, the statement was not 3,700 files. It was 3,700 check-ins. There are most definitely not 3,700 files in CS :)

...and just to completely shut-down the rumor mill CS can be used (for free) for commercial purposes.

...and (yes I know <g>) we have many small customer who are thrilled with what Community Server offers. A lot of people don't care about the technology, rather about putting up a solution that not only works, but is supported.
# January 26, 2006 8:53 PM

Dave Burke said:

Interesting points, Jeff. I'm a big CS fan, but I know what you mean about CS complexity. That complexity seems to be an inescapable trait of sophisticated applications, which CS definitely is!

You may be right about the small user being an area not addressed in the blogging .NET application space. But don't forget about subText.

Having a good bit of experience working with ScottW's .Text, I can appreciate why people fondly embrace its clean, simplistic architecture, and one of the reasons subText was born. dotText was a beautiful piece of code.

Personally I like sophisticated feature set of CS and having all of those features normally supporting an organization all to my own use. I may miss the accessible environment of dotText, I wouldn't trade it for the new features.

I think these guys are architecting CS the right way, IMHO. One of the benefits I personally gain in working with CS is following Scott and the other developers' growth and evolution as coders. I hacked CS 1.0, 1.1, and looking forward to hacking CS 2.0.

Speaking of hacking code, I better get back to my own coding...
# January 27, 2006 8:34 AM

Ian Smith said:

I don't think anybody ever made money from writing technical books - at least not directly. It seems to mainly be a "loss leader" activity for those earning money from consultancy or speaking at conferences where the fact you've had a technical book published can win you the visiibility needed to get such gigs. If you don't fit into that category I really think it's down to how altruistic you are. Certainly when I've thought of writing a book it's never been about making any money - I know far too many really good technical authors who've told me of the long hours with very little financial reward - even if the book IS with a major publisher and visible in most of the High Street stores).
# February 2, 2006 2:08 PM

Jeff said:

Yeah, even the first book was not about the money, but that doesn't mean I don't want it to be read, you know? Certainly the doors that have opened just from having that thing on paper make the whole experience worth it.
# February 2, 2006 2:45 PM

Hector Correa said:

Jeff, the web site for the waterfall conference is a joke.
# February 2, 2006 4:00 PM

Fabrice said:

Jeff, are you serious with this site?
# February 2, 2006 6:41 PM

foobar said:

Please tell who you've worked with that work this way. I want to avoid them like the plague :)
# February 2, 2006 6:55 PM

Dean Harding said:

Still, that "Super Model Driven Architecture" keynote looks interesting :)
# February 2, 2006 7:10 PM

yajur said:

However misplaced the reference to http://waterfall2006.com, it is hilarious! It's nothing but a joke. One indication is the conference date: Apr-1st-2006.

No one needs to sell me TDD but the reference has gotten me the laugh of my day. Thanks Jeff
# February 3, 2006 3:38 PM

Lance said:

Sadly, I work at such a company that believes in "Test Driven Deployment" rather than "Test Driven Development" (or Design).

The project managers have "successfully" completed several horrifically expensive (and late) projects and continue to thrive in their perception of Waterfall as a successful project management.

The funny/sad part is that a couple weeks ago I sent-out that URL (playing it straight) to the project management team, and got some head-nodding over the topics and such. However, they didnt quite see the need to attend a conference on a topic that they already knew so well. :P

*sigh*

Thus part of the reason for my recent blog post asking someone to hire me away from there.

Lance
# February 6, 2006 11:18 PM

Kent Sharkey said:

Excellent post, Jeff.

I don't think it's entirely possible to keep people from asking the same old questions over and over again on the forums. New people come along, don't RTFM or even RTFP (posts) and just ask. How many times have you seen one of those questions, only to see that the poster has 1 post (the question)? Most devs want a "Big Red Button" (tm) that does their job for them. Sometimes they don't want to learn that the button they have does their work, but they need to help it.

OK, attempting to turn off my babble pipe.

This is the type of problem that Coding4Fun was created to solve, but I think there is more. There needs to be a site or community for those Coding@Work, but more helpful.

You have given me a few ideas, though, and based on a strange series of events that happened today, There may be an attempt to solve this. Keep writing what you're thinking, and help us build it.
# February 7, 2006 5:58 PM

Dave said:

I had the same problem (recycling 4 or 5 times a day). I was in a shared hosting environment so I blamed that. I ended up putting session into sql server so the users wouldn't be effected until I could move the code.

When I finally did get to a dedicated server, same code mind you, it stopped recycling.
# February 8, 2006 11:17 AM

Raj Kaimal said:


Could be some virus software that is touching those files. Filemon might help http://www.sysinternals.com/Utilities/Filemon.html
# February 8, 2006 11:27 AM

foobar said:

Could also be the indexing service.
# February 8, 2006 1:10 PM

Kevin D. White said:

I second Raj's FileMon suggestion. If anything is constantly touching the config file FileMon will reveal the offending process. If that's not it you should look at memory usage. .NET will dump and restart due to memory pressure.
# February 8, 2006 1:44 PM

tbb said:

Considering Team Foundation Server will be available to MSDN Premium Members free of charge for the 5 member workgroup edition, why not just use that?
# February 11, 2006 1:13 PM

Jeff said:

When did that change? I thought it would not be available to MSDN subscribers save for the Team Suite subscription?
# February 11, 2006 1:57 PM

Jeroen Ritmeijer said:

It is my honest opinion that Microsoft has lost the source code for SourceSafe, it is so horribly broken it is not even funny anymore.

The only changes they have made in the last (10?) years is changing some icons and other minor modifications that you can do with a resource editor and some hardcore binary hacking.

I have told this theory to several people and so far everyone thinks my theory sounds plausible.

Have you ever tried to generate a 'report' from a history? Unbelievable, who signed that off should be shot, I volunteer.
# February 11, 2006 2:11 PM

jayson knight said:

I much prefer Vault as well; started using it a while back and have (hopefully) used VSS for the last time. Hell, MS doesn't even use VSS internally, they have a completely homegrown solution, and seeing that they probably have billions of lines of code they have to store somewhere, it's crazy that they can't get something as seemingly simple as a source control solution to work well.
# February 11, 2006 3:52 PM

tbb said:

VSS was never meant for large projects and should never be used that way. Storing real-world commercial development projects in VSS is plain crazy.

In fact, if you are a single developer, why not just use Perforce? They have a two developer free license and their SCM is rock-solid.

A lot of the teams in MS have already started dog-fooding TFS internally, so it will definitely be getting real-world usage.

I currently have a commercial Perforce license that I am not renewing because I'm moving all future development projects to TFS.
# February 11, 2006 4:49 PM

Rob said:


Not trying to be subversive but Subversion is an open source solution that just rocks!
# February 11, 2006 9:39 PM

Rob said:

There actually where some changes for 2005. However, I think even they realised what has become of the product since they introduced a completely new one in the team system version. Too bad it's only available there.
# February 12, 2006 7:09 AM

jayson knight said:

@Rob: You're kidding me, right? With subversion, you get what you pay for...which is nada.
# February 13, 2006 2:57 AM

Jeff said:

I dunno... they just started using it at my current gig, and they have no complaints yet.
# February 13, 2006 8:45 AM

Steve said:

What sort of problems do people have with VSS? I've installed Vault before and other than where the files are stored (file system vs database) i couldnt see any gain.....
# February 13, 2006 12:26 PM

chris hammond said:

Definitely see BMG while you are there! I was there December and stayed at the Venician, had a blast seeing BMG.
# February 13, 2006 5:17 PM

Andy Stopford said:

Hi Jeff - I am going as well, trying to find out about any geek dinners while the show is on, if you hear anything let me know.

Andy
# February 14, 2006 4:08 AM

Avi said:

Shame, I read the reports on you ASP book and it looked interesting. How tough would it be to create an ASP 2.0 and sell it as an ebook on Amazon?

Frankly, me personally I'm overloaded by info. For $5 I'd buy, take a look if anything is interesting there. For $30 - no way.

avin@bmntech.com
# February 14, 2006 10:02 AM

Jeff said:

It already does cover 2.0 topics.
# February 14, 2006 10:36 AM

Keith Ellis said:

Do you plan on publishing any of this new and ispiring code?
# February 14, 2006 3:00 PM

Jeff said:

Someday... it's just so hard to get this stuff unit tested the way I'd like and make sure it's working. But I'm tired of it sitting on my computer unused... so sooner than later I hope.
# February 14, 2006 3:22 PM

scottgu@microsoft.com said:

Hi Jeff,

Are you using the new Membership and Profile APIs in ASP.NET 2.0 to-do this? It sounded like it from your post title but I wasn't sure.

One thing that has been kind of cool has been to see the number of Membership and Profile providers that have already proliferated out there (I've now seen MySQL, SQLLite, Access, Oracle and more). I'm really hoping the new provider model will make it much easier to "plug and play" backends together much more easily.

Thanks,

Scott
# February 14, 2006 5:39 PM

Jeff said:

Yep, using them both. I'm doing it with my own tables in my own database for two reasons though:
1) I need to migrate several sites, and trying to push it to the standard default ASP.NET-generated database is not straight forward, and
2) Data stored in my own tables can be indexed and queried however I want.

But yeah, the point was that I want other people to plug into my app, or have them plug my app into their existing user data.

I do have to figure out though which field type to use for the profile data's key field, since I use int's for my Membership but others do not.
# February 14, 2006 5:44 PM

scottgu@microsoft.com said:

Cool stuff! Let me know if you want any help with the profile data key value -- if you send me email about it I can loop you in with a few folks on the team who might have suggestions.

Thanks,

Scott
# February 14, 2006 6:23 PM

Phil Scott said:

I'd be curious to see how the performance works without the background image. Try turn it off with userContent.css

with something like:

@-moz-document domain(forums.asp.net)
#wrapper {
background:#fff !important;
}
}


or something similiar (i didn't test that code, but I think it should turn the background image off. Slow slowing background image implies to me something is off with your video card, not cpu. do you have hardware acceleration turned off (i believe it is by default with 2003, I know that's caught me in the past)
# February 15, 2006 3:38 PM

Jeff said:

Nope... this machine has got the goods. Come to think of it... I wonder why the developers get this much machine here. :)
# February 15, 2006 3:43 PM

Marc Brooks said:

Are your talking about serializing it, or converting it for the database? If just a serialization issue, use LosFormatter or BinaryFormatter. If you are merely talking about using the provider System.Object key field as your key... well you can etiher:

A) Map all the provider specified keys to your own user table (in a sepeate field), then use that row's primary key as your in-system key.

B) Store store your in-system key in the Membership profile when the user is associated with your application.

C) Serialize the key to a string and use that as the provider-key in your user table.
# February 15, 2006 3:53 PM

Scott said:

Hey Jeff,

We are still trying to dig through the issue. It only seems to happen to a handful of users, but we are actively working on it.

If you have a second, could you send me (scottw _REMOVE_ @telligent.com) a list of installed extentions, FF version #, XP or 2003, etc.

Thanks,
Scott
# February 15, 2006 4:02 PM

Jeff said:

I suppose the last option makes the most sense, but your first two options ignore the fact that I have no idea what the incoming type of the key will be. Again... Membership isn't the issue, as it's the "center of the universe" in this scheme. It will always be exposed as an object, while the Membership provider will do any type conversion. Anything else will have to take an object and figure out what to do with it.
# February 15, 2006 4:06 PM

Jeff said:

I don't know if they did something, but I updated the Quadro driver from Nvidia and it's "like butter" again.
# February 15, 2006 4:25 PM

Wilco Bauwer said:

Try navigating to http://beta.asp.net/i/bg_content.gif with Firefox. My Firefox (latest version - no custom extensions) starts using 100% CPU when I try to scroll this image.
# February 15, 2006 4:48 PM

Frans Bouma said:

I have FF 1.5.0.1 and I can scroll without a problem. Is it perhaps a plugin?
# February 15, 2006 5:00 PM

Frans Bouma said:

Wilco: not here, I see 3% CPU usage with Firefox 1.5.0.1
# February 15, 2006 5:01 PM

Jeff said:

Using v1.5 (not the newer version, because it breaks some of my favorite plugins), it turned out to work just fine after updating the Nvidia Quadro drivers to the newest build (I think Dell was shipping a version from March or April).
# February 15, 2006 5:33 PM

Paul Wilson said:

Hey Jeff:

I suppose the question is whether or not you are going to use the default membership provider or not. If you are then you are also going to use the default database schema, in which case your key will be a guid. On the other hand, if you choose to implement your own custom membership provider then you are probably also going to be using your own custom database schema -- which may or may not use guid as your key.

As for your other post, I suppose it comes down to whether or not you choose to keep everything generic or not. What I mean here is that just because ASP.NET has created a generic provider model where the membership key can be any type does not in any way force you to assume everything is generic. Sure you want to try to keep your dependencies as few as possible, but at the same time you do most likely have a very specific schema that must be "hard-coded", so don't fall into the trap and believe there should be no dependencies at all.

Later, Paul
# February 16, 2006 1:46 PM

foobar said:

This is only for the OEM version of Windows XP, which has always had more restrictions on licensing than the retail version.
# February 16, 2006 1:50 PM

Jeff said:

I guess with regards to both of your points, it's not really up to me at all. I mean, I'm not going to force anyone to use any particular providers or scheme (although why should I care, since they aren't paying for it ;)). Grrrr. Maybe I am worrying too much about dependencies.

Another flaw I've found in the Membership and Profile system is that the interface doesn't absolutely require that you have unique user names, even though they're frequently used as parameters and/or foreign keys. Interesting.
# February 16, 2006 2:08 PM

Paul Wilson said:

And besides, all of those other motherboards were defective -- right? :)
# February 16, 2006 2:15 PM

Steve said:

Think of all the people who will buy Vista, and then a month in will realize: "i need bigger, badder hardware".... they're f_cked
# February 16, 2006 3:06 PM

Stefan Jokull said:

No! This applies to OEM versions only. Why do you think OEM versions are so cheap? It's essentially because the OEM has "payed" the biggest part of the license. If you buy a normal retail license you can do whatever you please with your hardware.
# February 16, 2006 8:08 PM

Jeff said:

What difference does it make if it's OEM? I'm looking at a $50 difference, and it's still too much.
# February 16, 2006 9:29 PM

foobar said:

The OEM version is meant... For OEMs... Not sure how to explain it other than that.
# February 16, 2006 10:12 PM

Jeff said:

You're arguing a non-point. This is about the perceived value of what the software is, how it's used and how much it costs.
# February 16, 2006 10:25 PM

foobar said:

Well first off, you as a retail customer aren't even supposed to be able to buy any OEM edition of any Windows version. What's the big deal then?

So what version of Windows XP are you running? If it's the OEM version, and I have a feeling that you don't sell computers for a living, then you have participated in, at best, a grey market transaction.

The reason MS did this was simple: OEMs are illegally reusing keys for different machines. A business associate of mine has already been burnt by this - his key was reused somewhere, and he can no longer use Windows Update.

Believe it or not, but a ton of piracy happens at the System Integrator/OEM level.
# February 16, 2006 10:47 PM

Jeff said:

You have no concept of what the customer's time and money is worth. You're like the RIAA. You want to dictate the needs and use of your product. That's not the way it works. You make product that the consumer wants, not the other way around.
# February 17, 2006 12:15 AM

Dean Harding said:

I had a comment, but apparently trackbacks aren't working on this site (it gives a ".Text application error"...)

http://www.codeka.com/blogs/index.php/dean/2006/02/17/interesting_licensing_decisions
# February 17, 2006 12:36 AM

elnino said:

foobar,

People have an OEM version of XP IF they bought a PC from an OEM. Nothing grey market about that...

So, let's say I buy a Dell, and paid for XP--so I now have an OEM version of XP. You saying it's cool that I cannot change the motherboard on the Dell and use the XP I bought legally?

It seems to me that just as long as I do not install XP on two PCs and use both PCs simultaneously, I am just using the software I paid for already.

Do you also think it's alright to buy music that can only be played on the device that you bought it for and not on any other device?
# February 17, 2006 12:42 AM

Stefan Jokull said:

Well technically you didn't pay very much for the license. The OEM payed most of it through his license with MS.

A lot of people have also gotten their OEM version with a small hardware purchase such as with a hard drive, and i've even heard of people buying OEM software with some IDE cables.

The point is that since the OEM vendor is getting you a discount off the Windows license as long as your are buying it with some hardware, the OEM license is also restricted to that hardware. That's where a lot of "grey area" OEM purchases take place.

This has nothing to do with dictating need, only use which is only fair since the OEM already paid a big part of the license for you. If you want to use the license on any hardware you want, just make sure you are paying for the license yourself.
# February 17, 2006 5:48 AM

Jerry Pisk said:

Jeff, Microsoft does make product that you can use even when you upgrade your motherboard, it's call Windows XP, the retail version. If you do not like the restrictions on the OEM version do not buy it. It's that simple. Just like I do not buy CDs with copy protection, because they're not what I want.
# February 17, 2006 7:57 AM

foobar said:

elnino,

you do realize that retail customers can actually purchase the OEM edition directly, without having to purchase a whole computer?

Whoever said it was cool with me? I'm just trying to explain to Captain Jeff the difference between the different editions of Windows XP, which seems to be far above his abilities.

Here's my first opinion about this restriction: It's stupid. I can understand why they're doing it, but it's still stupid. On the other hand, for the vast, vast majority of people who have the OEM edition, it's not going to make a shred of difference. They're buying a whole system, and when they buy another system, they're going to get one that has Windows XP pre-loaded again.

Jeff,

Get a life. First off, comparing me to the RIAA is disingeneous at best. I don't even know why you're bitching about this. Why the hell don't you just buy the retail version of Windows XP then if you're so pissy about it?

I don't even understand your whining about "perceived" value. What, is Windows XP too expensive for you? How much should it be? Seems like MS has made a bucketload of money from XP, so maybe the market has decided that it is a good value at a good price.
# February 17, 2006 12:25 PM

Jeff said:

If you expect me to take you seriously when you post anonymously and resort to name calling, it's not going to happen. Get a life indeed.
# February 17, 2006 12:47 PM

Dave said:

Is Atlas for people who want to do DHTML without learning DHTML or Javascript?
Much like how ASP.NET was written for VB Forms people who didn't want to learn HTML? Is it really going to be that hands off of scripting?
# February 17, 2006 3:13 PM

BridgeOgre said:

What is so different about Atlas/AJAX compared to DHTML/CSS/XMLHTTP/XML?

I have only spent limited time looking into Atlas and AJAX but it appears that it is just the formalization of the above technologies. Does it solve the issue of browser support and consistency, does it solve the back/forward button problem? Does it solve the normal HTML issue of elements that are just not robust enough?

Maybe I need to look into this some more but I just don't see what the hype is about.
# February 17, 2006 4:13 PM

Wim Hollebrandse said:

Jeff - deep down, all posters here probably agree with your point. They're just disagreeing for the sake of it and are most likely the biggest users of piracy software around!

In the meantime - check out PcLinuxOS...very nice, easy to install and use - Linux clone based on Mandrake. ;-)

Install mono - and away you go.
# February 17, 2006 6:32 PM

Ryan Anderson said:

Everything, just pulled the covers off ATLAS today... That being said, Intro's, yet astute for seasoned programmers, if that makes sense... (seasoned meaning 10 years, but by some that would constitute one up from a noob).
# February 18, 2006 12:08 AM

Rex said:

# February 21, 2006 5:47 PM

Jeremy said:

The first thing to do is to make the HttpModule just a thin wrapper that delegates to a normal class that does the actual work. You can unit test the normal class with some sort of mock object substituted for any dependency on the HttpContext objects.
# February 21, 2006 5:52 PM

Jerry Pisk said:

You showed us Wim. I bought the retail version of WinXP (two actually) and I'm fine with it, I've upgraded my computers several times already. Unlike Jeff who bought the limited version cheaper and is now feeling hurt because he bought the wrong thing.
# February 21, 2006 6:13 PM

Cameron said:

Are you using NUnitAsp?
nunitasp.sourceforge.net/
# February 21, 2006 6:18 PM

Jeff said:

I didn't buy anything, nor do I feel hurt. Why are you making stupid assumptions?
# February 21, 2006 10:39 PM

Jeff said:

NUnitAsp tests too much... I want to just test the class and nothing else. Mock objects are a lot of work.
# February 21, 2006 10:40 PM

AndrewSeven said:

It was a while ago that I tried this.

Create a web service (asmx) with your tests and mark it with the test attributes for nUnit.

In your "real" test project, add a web reference to this service.
Open and edit the generated proxy to add the test attributes to it.

Configure the app that hosts the web servivce to use the http module.

nUnit should see the Test and TestFixture in the proxy and call the right methods of the web service (I've made this work before).

There are some issues though: single call means that SetUp and TearDown don't really work.
# February 22, 2006 9:23 AM

Nish said:

Yeah, I always thought that, that was a pretty silly feature/message!
# February 22, 2006 10:53 AM

Wim Hollebrandse said:

Hmm - I can't see a problem with that. The only technical term (not even THAT technical I'd say) in that text is 'caching'.

And I guess that could simply be removed so people think it's to do with moderation only.

What would you change it to? Just:"Your post may not appear immediately." ?
# February 22, 2006 11:17 AM

Jeff said:

If there was cache busting of the comment set, as I think there should be, I wouldn't say anything. And if there was moderation, then I'd just say your post must be approved by a moderator.
# February 22, 2006 11:19 AM

Nish said:

The point here's that, even for unmoderated blogs, this message is shown for a while.
# February 22, 2006 11:36 AM

Nish said:

Btw, this blog's pretty fast! Comments appear instantly!
# February 22, 2006 11:37 AM

Wim Hollebrandse said:

Sure - I can see that if you have cache invalidation with update notifications in place, you don't need anything at all.

But if you use caching without that model, i.e. some people use Oracle (I know - crazy stuff!), you can't use this...
# February 22, 2006 11:56 AM

karl said:

i don't see what the database has to do with it

Comment.Save()
{
DAL.Save(this);
Cache.Remove(string.Format("PostComments:{0}", this._postId));
}

And in 2.0 you can programmatically invalidate outputcache too I think.
# February 22, 2006 12:29 PM

Wim Hollebrandse said:

karl,

I wasn't talking about the caching API, but about the Output Cache, either fragment caching or Page level caching.
# February 22, 2006 12:32 PM

Rob Howard said:

The problem has to do with the fact that the servers operate in a farm, so this won't work:

Cache.Remove(string.Format("PostComments:{0}", this._postId));

Well, it will work, but just for that server :)

Now, I realize that not all servers run in a farm -- but the way this was designed was for 'farms' to begin with.

Yes, I agree that it's not perfect and it's something we will definitely address once will build on top of .NET 2.0 and use database cache invalidation. I'll file a bug about it :)
# February 22, 2006 3:01 PM

Jeff said:

I can appreciate that reasoning. The gig I'm on now has a lot of these kinds of issues, and we've found some fairly simple and efficient ways of dealing with cache invalidation.

Here's a question for anyone that knows... How good/bad is caching scheme for SQL Server 2005? Not just single records, but groups of records (like comments)?
# February 22, 2006 3:07 PM

Rob Howard said:

For SQL 2005 DB cache invalidation is very good...
# February 22, 2006 5:07 PM

Dave said:

Don't take it so hard. Maybe it was just a matter of timing?

The last asp.net book I bought was for the beta release of asp.net 1.0. And well, in my opinion asp.net 2.0 hasn't radically changed enough to warrant a book purchase. (Plenty of resources on the web anyway.)
# February 22, 2006 8:51 PM

Thomas Kern said:

well, i would buy it if there was an pdf/ebook version for sale.
i hardly buy hardcopies of IT-books anymore, just ebooks

said that, it does sound interesting
# February 22, 2006 9:44 PM

mahdix said:

“Remember the two benefits of failure. First, if you do fail, you learn what doesn't work; and second, the failure gives you the opportunity to try a new approach.”
# February 23, 2006 1:18 AM

Frans Bouma said:

Books for hype-technologies as I used to call them, usually don't sell beyond 5000 copies. Hype technologies are technologies which are hot NOW, but are old within a year or 2. The thing with these books are that you read them once and that's it. A lot of people won't go back to these kind of books as a reference (or they think) and therefore don't buy a book like this, even if it would help them a lot.

Add to that the overwhelming amount of asp.net books and you're in for a struggle.

Oh and dave: asp.net 2.0 hasn't changed that radically? err...
# February 23, 2006 2:54 AM

Rui Craveiro said:

Jeff, three years ago I would have possibly bought your book. Nowadays I am doing ClickOnce applications. Is this the sign of times?

Maybe you are not selling just because the world is changing and not because of the lack of quality of the book you wrote, so the real mistake is indeed judging yourself based on those external metrics. ;-)
# February 23, 2006 3:08 AM

John said:

There are so many books now a day available and with so many websites or blogs talking about a specific technologie for free its kinda logic that people dont buy as much books as they did ..

Frans I guess Dave meant that the change from 1.0 -> 2.0 was not as radical as the change from the old asp to asp.net ..
# February 23, 2006 5:34 AM

Wallym said:

I am lead to believe that your book is an architectual book. Typically architectual books don't sell well. This may be an oversimplification, but this is the first issue that comes to mind for me.
# February 23, 2006 6:51 AM

Ram said:

I bought your book couple of months. I can definitely say it was worth it.

Do yourself a favor and see how you can ignite interest in the book. Few ideas: create a complete application (at least medium complexity) that highlights the ideas from the book and make the source code available; promote it over .net user groups; create an eBook version of the same; publish contents of the book in a reputed magazine or some place in episodes; etc.
# February 23, 2006 8:21 AM

Jeff said:

Wally: Not even close. It's a book for the legions of developers who just haven't made the successful transition into OOP using ASP.NET. I run into these people constantly in the field, who treat ASP.NET like a scripting platform instead of an application platform. The audience is there, but they don't know about the book.

Unfortunately, what I can do with the text at this point is limited, since I don't own the copyright. As my first book, I didn't feel at the time that I had any leverage to retain it. Now I know better.

The truth is that if I do write something else, it won't be through a publisher. Too much reliance on people you can't count on, or who just don't get it.
# February 23, 2006 8:46 AM

Peter Bridger said:

I bought a copy of your book and have recommended it to others :)
# February 23, 2006 12:19 PM

Jerry Pisk said:

I make them based on your post, it says: "Since I bought Windows XP". Either your post or your comment is not true (a lie in other words).
# February 23, 2006 1:05 PM

Jeff said:

So now you're going to call me a liar? What the hell is wrong with some of you people?

This is a blog, where people tend to talk in generalities. My copy IS a retail copy, but I'm illustrating a point.
# February 23, 2006 2:30 PM

SBC said:

I have a copy and I like it!
I'd buy another edition (for ASP.NET v2) also!
# February 23, 2006 2:46 PM

Jeff said:

But if you read it you'd know it already covers v2 topics like Membership and Profile.
# February 23, 2006 2:50 PM

SDL said:

Just one comment...fix the book description on Amazon. I'd never buy a book with a description like that...didn't even bother reading it. It's like 2 pages of straight run-on text.
# February 24, 2006 9:08 AM

Jeff said:

Yet another thing I don't have control over. You can see why I get so annoyed.
# February 24, 2006 9:11 AM

Sebastien St-Laurent said:

I myself had a similar experience when I wrote "Shaders for Game Programmers and Artists". With the slew of shader books I wanted to go down a different path and wrote a book which appealed both to artists and programmers. The 6-8 months of work invested didn't pay off that much. Well about 1200 copies sold, which isn't too bad. But with a standard 10% royalty, it's far from paying the rent.

So for my second book "The COMPLETE Effect and HLSL Guide", I decided to self-publish and founded Paradoxal Pres. So far, sales are around 400 copies. Which isn't as strong but keeping costs low (by printing on-demand) and keeping all the reveues, I essentially made more off this book than with my first title.

Since then i've expanded a little and have recently published "Practical .NET2 and C#2" by Patrick Smacchia. The title has just been released so it's hard to tell how things are going but early reviews and comments look promising.

Although large publishers have some advantages in terms of distribution chain and marketing connections. I think it might be time for technical authors to start moving away from large traditional publishers who are more concerned with quantity and move towards smaller presses which focus on less titles but which are concerned about the quality of their titles since they have more at stake.

To me seems like a win-win for both the author and the publisher.
# February 25, 2006 2:30 PM

Jeff said:

In the interest of getting things done, I setup a test site in my solution and use that with VSTS tests. I still don't like the interface.
# February 25, 2006 2:32 PM

jayson knight said:

I agree that VS2k5 is a prett big step forward, however SSMS has got to be one of the worst management tools MS has ever seen fit to pollute my machine with. I'm normally ok with a few odd quirks here and there, but it simply sucks. Here's hoping for a good SP1 for SQL2k5.
# February 25, 2006 4:12 PM

Adam Weigert said:

I'm very disappointed that VS2005 didn't get the huge update to SQL editing that SQL Management Studio did, it is still hokey coding and debuging SQL problems within VS2005 ...
# February 26, 2006 7:51 AM

Thibaut Barrere said:

Hi Jeff

I would agree with Thomas and Sebastien - I really love to have a convenient electronic version of all the books I buy these days, and I also think that moving to smaller presses with more "agility" (sorry for that overused word but that's the idea, really) is something to really consider.

I know the pragmatic programmers (http://www.pragmaticprogrammer.com) are doing great on these topics.

They have a clever DRM policy (the name of the buy er on each page, and that's it!) which allow many people to buy it without a worry. They seem to work in a very agile way (use of subversion for storage and beta reviews opened to the public to enhance both the feedback and the spreading of the book)...

have a look over there!

regards, T.
# February 27, 2006 3:12 AM

Jonathan Weizman said:

Hi Jeff

As an author in another subject, i can tell you my experience :

Either a book has a very short life time because it is tighten to a technology, and the sales largely depends on the advertising. It s the one shot sell book.

Or the book needs more maturity and people learn to love it and recommend it to others, speak about it in forums, blogs... and then the sales can take off later.

Anyway basing the success exclusively on the editor is a mistake since the editor has plenty of other books to sell not yours only despite what we would be believe (he showed so much attention before publishing...).
You MUST do your own promotion : lectures, articles, offer free chapters...

Good luck
Jonathan Weizman
# February 27, 2006 5:05 AM

Kevin Trethewey said:

I agree! Given the time and resources that the Whidbey and SQL05 teams had at their disposal, I think it is a poor showing. Simply adding intellisense to the SQL2000 query analyser would have been infinitely more useful to me than any of the new UIs in VS2005 and SSMS.
# February 27, 2006 8:41 AM

Cameron said:

Maybe my expectations were too high for SSMS. I find myself missing the clunky Query Analyzer interface. I just want to write code.
# February 27, 2006 9:13 AM

Your book saved my career. said:

Jeff: Your book saved my career.

From where I stand, that makes it all worth it.

I had a rough transition from asp to asp.net. Dispite my oop background with C++, I just didn't "get" .net.

I while googling a problem I had, I visited a forum post where you helped some one, and I was amazed... here was some one who clearly and quickly got the concept across! All that with no marketing, no over-my-head deep .net talk, and no crappy bottom-feeder worst-practices hard-coded connection string examples.

And it got better... it was either your post or your profile that mentioned your book... within 5 minutes I researched it and bought it!

I got the book; I read the book; I bookmarked dozens of pages. Then I switched from VB to C# (it seemed to help bring back those C++ concepts, and separate "what I need to do now in .net" from "old vbscript habits"), and I got coding. At last, I could move forward and be a compentent and professional programmer in .net also.
# February 28, 2006 12:21 PM

russel harvey said:

The ultimate hoop is this, it will work after you follow this article:

http://forums.microsoft.com/msdn/showpost.aspx?postid=119882&siteid=1

All the VSS internet hoops are pusposely set by Microsoft, so Team System will come up sexier. They're good at this.
# March 5, 2006 10:14 PM

Wallym said:

Queueing is a big deal. You can check for this through the performance monitor.
# March 13, 2006 11:47 AM

lynn said:

Stop researching and put it in a blog.

Good idea. That'll fix the problem in no time.
# March 13, 2006 12:45 PM

Jeff said:

And thank you for nothing. Way to contribute.
# March 13, 2006 1:35 PM

jayson knight said:

Have you done a tracert or run netmon? Could be extraneous network issues.

@Lynn: Blogging is a great way to get feedback for issues.
# March 13, 2006 2:32 PM

Jeff said:

Yeah, I wanted to do that today, but at this gig they're blocking ping traffic. Can you say paranoid? :) I was wondering if there was some kind of packet loss or something, but when I watch something like the performance monitor on the box via remote desktop, there is no lag. That leads me to believe that it's IIS that's hesitating. Again, I don't have a good idea of why. I am going to bug my host and ask them to monitor for any issues.
# March 13, 2006 2:51 PM

Miki Watts said:

I've read on some blog some time ago that it could be the dns resolve delay, try putting the IIS server hostname in its hosts file.
# March 13, 2006 3:23 PM

Scott Cate said:

And it would be great to know where/when you could get one.
# March 14, 2006 7:33 PM

Noah Coad [MS] said:

Jeff,
You are correct. Debugging while unit testing file based (ASP.NET Development Server) websites does not work and the MSDN article you refer to is incorrect. It does work on IIS sites. We are updating the documentation and it will get posted on our next document refresh. Sorry for the headache this has caused!

-Noah Coad, Unit Testing Program Manager, Microsoft
# March 14, 2006 10:08 PM

Noah Coad [MS] said:

Posting my comment again from your updated post at:
http://weblogs.asp.net/Jeff/archive/2006/03/14/440218.aspx

You are correct. Debugging while unit testing file based (ASP.NET Development Server) websites does not work and the MSDN article you refer to is incorrect. It does work on IIS sites. We are updating the documentation and it will get posted on our next document refresh. Sorry for the headache this has caused!

-Noah Coad, Unit Testing Program Manager, Microsoft
# March 14, 2006 10:10 PM

Jeff said:

I'm really not that interested in better documentation, I'm more interested in working product.
# March 14, 2006 10:45 PM

Sonal Pardeshi [MS] said:

We have received customer feedback surrounding this issue and do plan on improving the experience significantly with vNext.

Let us know if the updated article helps and if you have more feedback.

Sonal Pardeshi, Product Manager, Microsoft
# March 14, 2006 11:41 PM

No Name said:

I believe that was Marc Cantor who blurted that out... http://marc.blogs.it/
# March 20, 2006 5:21 PM

Jeff said:

I guess if you have a blog it entitles you to be rude.
# March 20, 2006 6:49 PM

Simone said:

The only problem is that MacBookPro costs 50% more than a Wintel laptop of the same quality
# April 5, 2006 10:45 AM

Jeff said:

That's not true at all. I just spec'd a Dell with similar hardware as the 2 GHz Macbook and it's $2,400, which is a hundred dollars more than the academic pricing for the Macbook. At regular pricing it's about $100 less. In either case, the Dell doesn't even have the better video chipset available, so it's still not quite an Apple-to-apple comparison.
# April 5, 2006 11:22 AM

Simone said:

I just saw an Acer with almost the same quality as the hight-end mac that costs the same as the low-end mac
But in Italy the difference is greater, since Mac just have a 1% market, so maybe prices are a bit higher than standard.
# April 5, 2006 12:35 PM

David Findley said:

Did you have any problems installing XP? I used the version that I have on my MSDN subscription. XP Pro with SP2. Works perfectly until I install the Apple Drivers. Then it just continuously blue screens.
# April 6, 2006 4:28 PM

Jeff said:

Actually, yes, the first try I had the same problem. Uninstalling then reinstalling the driver package did the trick.
# April 6, 2006 4:49 PM

Chris said:

I am interested in your laptop. What does it cost?
# April 7, 2006 2:34 AM

Scott said:

Check out AppZapper, it'll find all of the support files for you when you drag the application icon onto it and offer to remove them for you. With neat sound effects and a screen flash too.
# April 12, 2006 12:39 PM

James Newton-King said:

I agree with what he is saying. I came to much the same conclusion myself. I wrote a post a couple of days ago of how Boot Camp would likely affect the computer market, and specifically how it could be quite negative for Mac Developers.

http://www.newtonsoft.com/blog/archive/2006/04/08/38.aspx
# April 12, 2006 4:36 PM

todd brooks said:

What do you suggest for web unit testing instead of rolling your own?
# April 24, 2006 11:50 AM

Jeff said:

I just want it to work, because right now it's broken. The debugger doesn't work with the dev server and it's a pain in the ass.
# April 24, 2006 1:36 PM

jayson knight said:

I've been hearing some rumors of a MAJOR internal reshuffle going on over in Redmond. Vista has turned into a major fiasco for MS, and while I know they couldn't possibly do this and expect shareholders to be happy, I'd scrap Vista for another year or 2 and get it right.

We've all been a part of projects that have failed for whatever reason...granted it's easier to scrap a half a million dollar IT project over a several billion dollar venture like Vista, but the thing is gonna come out half-baked. I predict it'll be the next ME.

I've never understood how the same company who puts out what are arguably (and even the OSS folks agree on this one) the best development tools in the industry can drop the ball in so many other areas.
# April 24, 2006 2:32 PM

Ethos said:

"Oddly enough, I have no stake in the company, but it has a stake in me since I buy its products and its products have largely been the reason for my financial success."

While I agree with the overall statement of the post, I just wanted to point out the fact that you do have a stake in the company based on this statement. The fact that the products have largely been the reason for your success means that without them you would not be where you are today. Just as they have a stake in you (buying their products) you have a stake in them (utilizing their products)
# April 24, 2006 2:48 PM

nick said:

What IM client were you suggested? AdiumX seems to be the trillian of OS X, so if thats not the one you looked at, you should check it out.

Also, the mac shareware world has, overall, more quality software than does the windows shareware world; it's great if you are a software junkie like me.
# April 24, 2006 3:04 PM

Jeff said:

Yep... Adium is what I'm using.
# April 24, 2006 3:09 PM

Jeff said:

Well I'd like to think that I'm clever enough that I would've found my way with someone else, if need be. ;)
# April 24, 2006 3:10 PM

Wim Hollebrandse said:

Regarding Vista and its delays, (and cock-ups I'm sure) I'd say they should take FreeBSD or some other Linux distro (Ubuntu for instance) and branch a commercial version off that. Sounds familiar? ;-)

With all MS's talent and developer resources, they should be able to deliver something substantial based on this new platform within a year or two.
# April 24, 2006 5:36 PM

Wim Hollebrandse said:

Forgot to add:

Who is really eagerly awaiting Vista? I mean seriously...

IIS7 could be made to run on Win2K3...
# April 24, 2006 5:40 PM

Jeff said:

Give me a break. Why would they do that and break compatibility to two decades of software?
# April 24, 2006 5:45 PM

Wim Hollebrandse said:

I was going to say compatibility is a 'bit' of an issue...

But ignoring that, it's the way forward. Mono is already there for the taking, heck MS could even contribute to that.

I know it's not going to happen, but it's what made OSX to what it is today, that's for sure.
# April 24, 2006 5:51 PM

Wim Hollebrandse said:

Besides, since when has MS given a damn about compatibility? They simply stop supporting stuff from t0....
# April 24, 2006 5:52 PM

Wim Hollebrandse said:

A fix for compatibility could be for MS to write a better version of Wine as compatibility layer and simply have existing windows apps run within some emulator environment and have all managed apps run under Mono.
# April 24, 2006 5:58 PM

jayson knight said:

Wes, I'd like to have whatever you're smokin' dude.
# April 24, 2006 7:24 PM

jayson knight said:

Sorry, that should be Wim.
# April 24, 2006 7:24 PM

Anonymouse said:


I kinda agree with Jeff here: As a infrastructure architect i must say that there are the better and the worse of MS software atm. There is a distinct quality difference between for example Exchange 2003 and SMS 2003. For example integrating Microsoft Update into SMS ruddenly requires you to do a lot of manual patching and tweaking in a very unfriendly way, whereas all features provided in Exchange are working out of the Box and after every major service pack. I can imagine some other products out there are also "unfinished": They work up to the point where you want to customize it just as much as required to do the job. That's were you often have to do "unfriendly" things (Like drilling down IIS and manually fixing debug server :(

Let's just say Vista is some attempt to get closer to OS X, which is technically speaking the superior product. Sure, Vista is gonna be more "compatible" and will host a lot more applications, unless they do something about that at Apple, but i think that people using OS X will not easily disband it ;)

# April 30, 2006 4:24 AM

Mark F. said:

Thanks for the keyboard mapping routine for the MacBook Pro. I've been struggling with the lack of certain keys while using Windows. Would you happen to know the keystrokes to shift the computer display to an external monitor (e.g., like a video display for PowerPoint presentations, etc.)? This would be very helpful as well. But, thanks again for the mapping routine!

Mark
# May 8, 2006 10:18 PM

JustRandomized said:

I was searching for something like this since the release of Boot Camp. Thanks a lot!

Pierluigi
# May 9, 2006 7:52 PM

AndrewSeven said:

I think there is still a bit of market for forum software, at least for integrating into .Net projects. I don't think CommunityServer has it "in the can" nor does PopForums. I think the option to have threaded messages is good, rather than just flat one-response-after-the-other-by-time that seems very common (good for blogs). For open-source: Don't be afraid to close the system and provide good extension mechanisms. In the one project where I have used PopForums, the people who were supposed to be responsible for development used the source as a lever to do very bad things. I think they changed almost every interface there was. They would not have been able to do this with a black box.
# May 24, 2006 4:05 PM

Chris Hammond said:

I don't believe in Web 2.0 :)
# June 2, 2006 10:26 AM

Rob Caron said:

Earlier this year, Jeff Putz reported&nbsp;issues (here &amp; here) with the help topic for How to: Debug...
# June 5, 2006 5:00 AM

Alex Hoffman said:

Your post really struck home. The question of public iterations, getting it out, underengineering, overengineering and including or ommitting features - consumes so much of me. Maybe we can split the costs and hire a cheerleader to keep us going, or maybe a therapist?
# June 6, 2006 6:30 PM

Racing Car Junk Blog » Blog Archive » Retro Junk | TF The Movie… Aka Star Wars said:

PingBack from http://racingjunkguide.info/blog/?p=350
# June 14, 2006 9:33 PM

Fizzy Pish » HttpHandlers and streaming files said:

PingBack from http://fizzypish.wordpress.com/2006/06/16/httphandlers-and-streaming-files/
# June 17, 2006 3:24 PM

Andrew Stopford's Weblog said:

Grant has a post on the latest ncoverexplorer features.Steve Rowe has a post on prescriptive advice for
# July 13, 2006 4:40 AM

rlaneve said:

I've been using Parallels on a MacBook Pro for about a month and it's fantastic. Within the virtual PC, I run Windows XP, Visual Studio 2003/2005, IIS, SQL Server 2000/2005 and various other apps. Everything works beautifully - no speed issues whatsoever. In fact, running within Parallels on the MacBook Pro is faster than running on a year-old PC laptop I used to use. I highly recommend the setup. Also, with Parallels' full-screen support, it's awesome to be able to stick the laptop next to my LCD panel, plug in a few USB cables (keyboard/mouse/whatever) and have access to OS X on the laptop screen and Windows XP on the LCD screen with a single keyboard/mouse.
# July 20, 2006 2:30 PM

ISerializable - Roy Osherove's Blog said:

Looks like the next version of SharePoint won&#39;t support FireFox fully.as Jeff mentiones: &quot;Every
# July 21, 2006 7:20 AM

AppDev: Something You Should Know by Irena Kennedy said:

ProfileModule class is a new class available for ASP.NET 2.0 developers to create and manage user specific...

# July 26, 2006 10:04 AM

Karl Seguin [MVP] said:

At the risk of embarrassing myself, what's up with weblogs.asp.net? Ever since the delayed upgrade...

# July 26, 2006 11:28 AM

Karl said:

Glad my trackback helped :P

# July 27, 2006 4:41 PM

DotNetKicks.com said:

You've been kicked (a good thing) - Trackback from DotNetKicks.com

# July 27, 2006 8:32 PM

Ben Hall said:

rlaneve

What kind of spec are you running??  Been wanting to get myself a new MacBook (got an ibook, very cool machine - shame it can't run Visual Studio) but my girlfriend isn't happy with the idea of me buying yet another machine....

# July 28, 2006 5:43 PM

Jeff said:

Well, I'd say chances are pretty good that he has the 2 GHz or higher model since the "slower" ones weren't around very long. And if you have any experience with OS X, you know more memory == a good thing!

# July 28, 2006 8:42 PM

John Walker said:

I tend to like the database solution, mostly because my company is product-based with many customers. Having our customers make backups of .config files before uninstalling and reinstalling new versions can be painful, especially if the backups aren't done.

With the settings stored in the database, this isn't a problem.

# July 28, 2006 10:37 PM

ScottGu said:

Atlas actually support XCOPY deployment.  

Once you build an application using the Atlas project template, you can then copy it onto any ASP.NET 2.0 server and have it work - with nothing required to be installed on the remote system (all Atlas bits are self-contained within the application itself).

That is the reason the settings are by default added ot the app's web.config file as opposed to registered centrally on the box.

Hope this helps,

Scott

# July 29, 2006 12:37 AM

Jeff said:

I didn't say you couldn't Xcopy deploy, I said it's annoying that there's a junky installer.

As for the config stuff, who is going to build something from scratch using the template? Why should you need the template at all? I realize that the long-term goal is to have it all part of the framework, but right now it's essentially a component/control product. It shouldn't require anything more than dropping in the assembly and perhaps one config entry of some kind, where the rest is handled automagically by defaults.

I know you've heard it from your customers before... most of us hate heaps of auto-generated crap. Presumably that's why you changed the code-behind model to something far more elegant.

# July 29, 2006 1:00 AM

Bertrand Le Roy said:

The installer is here because we need you to aknowledge the EULA before you install. You can't do that with a zip file.

# July 29, 2006 1:32 AM

foobar said:

Yup, too many lines to add to web.config.  To make matters worse, you need to check the web.config file very carefully when you change versions - they keep changing what you need to add.

I'll forgive them though because it's still a CTP.

# July 29, 2006 2:14 AM

John Walker said:

Jeff,

I agree with you to some degree. It's nice to have a template for new projects, but I'm going to be trying to slip Atlas into existing projects in the near-term.

I think a nice solution would be to add a right-click option on the web project to "Atlas-ize this Project" which would modify the web.config file with the necessary entries. This would be much like when you debug a web project fot the first time and are prompted to automatically add the Debug="true" attribute to the web.config file. Anything like this will ease developers into using Atlas.

ScottGu...I know you're watching :) Whaddya think?

# July 29, 2006 2:39 AM

Thomas Tomiczek said:

Sounds like a great idea. Given that there already IS an installer, and VS.NET supports that, adding wizard functionality to add (and remove?) atlas from existing projects just sounds like the next logical step :-)

# July 29, 2006 2:41 AM

Simone Busoli said:

"Atlas is relatively easy to use"

Well, that's not so easy to use if you want to do something more than just put there an UpdatePanel and some triggers. The docuentation is lacking, and they keep publishing webcasts where they just show how to drag UpdatePanels onto the webforms. I bet that now even children know how to do that!

# July 29, 2006 4:48 AM

Plip said:

An application I worked on previously had everything in configuration files - and not just one config file but dozens, and they were hierarchical with overriden sections and all sorts of nastyness.

I hate that project.

I HATE THAT PROJECT.

ARRGGG THE DAYMARES ARE STARTING AGAIN ARRGGGG.

(Use the database for configurations!)

# July 29, 2006 4:59 AM

Joe Brinkman said:

Writing the config files is only half the battle and the easiest part at that.  Imagine deploying an app that has critical data in the web.config.  In later versions of the app you may have new config sections and deprecated config sections.  Merging the applications changes into the users current config files will drive users crazy.  DotNetNuke has had this problem since very early on.  We tried to move all settings to the database, but the more we used features from Microsoft, the more we were forced to bloat the config file.  In my mind, the web.config has become the new registry, only now my main UI is notepad.

# July 29, 2006 7:56 AM

Dee said:

.Net is too hard.  

Throughout the entire dotnet environment the problem is the same.  There are always some secret/magical, rarely documented, lines of code which have to be added to the web.config file, the global.asax file or whether the code is in the right stage of the page life cycle, in order to make things work.

The problem with dotnet is that it's "half-automated" with the remaining steps derived from some book or training video which typically point out in a footnote the tricks to make things actually work.  to be productive people have to "remember" how they got it work the last time they did something similar.

Step 1 for improvements to dotnet 3.0 would be to have a tool which creates a web.config file.

The huge lack of VB.et examples is a nightmare.  As MS pushes C# on to the development community they destroy the community by dividing it into two camps.

Don't get me started on "code-behind'

# July 29, 2006 9:33 AM

Jeff said:

I think you're going a little overboard, Dee. I have apps that don't have anything but a connection string in  web.config. And VS already does create a basic web.config, and even does Intellisense now so you don't have to guess tag names.

# July 29, 2006 9:48 AM

du8die said:

Bertrand Le Roy >> The installer is here because we need you to aknowledge the EULA before you install. You can't do that with a zip file.

Sure you can.  "By opening this file, you agree to the terms of the EULA."  

Microsoft's many installers for everything (sample projects, etc) are annoying...

# July 29, 2006 10:33 PM

Brian said:

I'm also running VS and SQL 2005, Adobe suite, etc. on a 2 Ghz MBPro in XP under Parallels.  I ditched my old Dell about 4 months ago (since Beta 5 or so of Parallels) and have not looked back.  Only two issues regarding performance:

- I started with 1Gb of memory, but in Parallels you have to statically size your "guest" OS memory.  So I had to give XP a decent chunk, but that left OSX a bit anemic at times when I would switch back and forth.  For example, switching from XP to the OSX dock, there would be a noticeable pause before the icons began to move.  Same thing when pausing iTunes or something -- noticeable lag in responsiveness.  I upgraded to 2Gb last month, so now I run XP with about 1.4Gb memory and 600Mb for OSX, and everything runs great!

- The guest graphics under Parallels is not accelerated.  If you just run off the MBPro monitor, that is not a problem.  However, when attaching a larger external monitor (I bought a Cinema Display to go with it) you start to get more noticeable redrawing and refresh lagging the larger the resolution is (this only affects the guest OS -- OSX is not affected).  My understanding is that it's basically buffering the graphics in memory -- I'm not sure of the technical details, but they can't currently "virtualize" to the graphics card like they can to the processor.  Supposeduly this might be fixed in the future, but at the moment, it is my only source of irritation with this setup.

Aside from the external monitor performance issue (annoying, but acceptable) it is a perfect setup and I couldn't really be happier.

# July 30, 2006 12:53 AM

Brian said:

Forgot to mention -- the other great thing is that I also have a couple of different flavors of Linux installed as separate guest OSes.  As a web developer, being able to natively fire up IE on XP/OSX, FF on XP/OSX/Linux, Konqueror, Safari, etc. without ever leaving the comfort of my laptop (and without having to multi-boot) is... well, fantastic!

Which also brings up another nice thing -- creating backup disk images is as easy as copying your virtual hard disk file.  I have a base, clean XP SP2 install with VS and SQL as a backup, and then I have the working hard drive file that I use day to day.  I can backup or restore at any time just by pointing to a different hard drive file -- even better than running Ghost!

So, like I said... incredible setup!

# July 30, 2006 1:02 AM

Dee said:

Trouble is Jeff, how do you know when VS is going to automatically do something for you and when it is not going to do something for you.

There is no consistency for various implementations of code development.  The developer is expected to "remember" or google himself to death to find out when the various combinations of automatic/manual insertions are required.

# July 30, 2006 12:35 PM

Jeff said:

What are you talking about? Give me an example, because I have no such problems.

# July 30, 2006 1:11 PM

Wim said:

Good suggestion from John Walker, with which I totally agree.

Isn't one of the reasons of the installer to create a new web project type 'Atlas website'?

Which you could argue wouldn't need to be there if you can simply Atlas-ize a web project...

# July 31, 2006 4:52 PM

Sam said:

I guess you could always set the Web.Config properties programmatically ;)

# August 1, 2006 10:54 AM

Geoff Stockham said:

Inherit from ProfileBase.  See here:

http://fredrik.nsquared2.com/viewpost.aspx?PostID=353

# August 1, 2006 10:57 AM

Daniel said:

What's really happening there (I think) is that a build provider is generating the code for a class that inherits from ProfileBase, based on the properties and groups set up in web.config.  Personally, I think that's awesome for this sort of data.  It's done as a partial class, so you can even add methods and properties.  If you examine that generated code, you should be able to see what's going on and create your own.  Another option would be to write a custom profile provider to store and retrieve your own object types...

# August 1, 2006 1:48 PM

Jeff said:

Yes, looking at the generated code is helpful. The next part is getting to figure out how to do the same thing with groups within the profile. Porting the generated code doesn't work.

# August 1, 2006 3:13 PM

Jeff's Junk said:

First off, thank you to Geoff for pointing me to Fredrik&#39;s excellent post on programmatically setting

# August 1, 2006 3:51 PM

Don Hansen said:

I got the MacBook Pro about three weeks ago and I am also running VS 2005 and Sql Server 2005.  I am using Parallels over Bootcamp and I completly love it!  

I have not tried bootcamp so I cannot comment on if it is good/bad.

I am having a few issues with VS 2005 though that I am wondering if anyone else has had and found a solution for.  In debugging I cannot get the F10 to step into as it tries to set the light of the keyboard.  Is there a utility out there to map the keyboard while using parallels?

The second issue I am having is when I use a FileUpload class in my code.  When I hit the browse button it does nothing and I get the Page error icon at the bottom of the page.

Anyone know a solution to these issues?  Other than these issues I am 100% happy and I think I have bought my last PC!

# August 1, 2006 5:27 PM

PaulWilson said:

I tried using my own custom profile class with those get/set property value implementations and gave up.  The good news was in giving up I discovered they were completely unnecessary when you have your own custom profile class -- just override the save method in your profile class and make your profile provider basically have no implementation to speak of.

Thanks, Paul Wilson

# August 1, 2006 8:20 PM

Jeff said:

While I understand that you could do that, it also makes the class entirely dependent on my provider, although at that point the provider becomes irrelevant. This app might be used with existing default SQL profile data.

# August 1, 2006 8:32 PM

Joel Hendrickson said:

I tend to use both. Web.config with <appSettings configSource="dev|test|production|etc"/> has the initial DB connection string and some simple settings.

Once this get more complicated I like it in the DB. When I am deploying to remote servers it's easier to update setttings through query analyzer than navigate folders and be a notepad jockey.

# August 1, 2006 9:53 PM

Don Hansen said:

As it turns out the file upload problem was just bad coding on my part :p

And I figured out the F10 stuff, so I am good to go.  

Now that I have been using this MacBook pro I will never be buying anything but a Mac from now on.

# August 2, 2006 1:04 PM

Mike said:

Great write up, but how did you get the P2 footage from the card to the MacBook Pro... I thought the Express/34 card was not compatible with P2?!

# August 2, 2006 2:57 PM

Jeff said:

I used FireWire, which I agree is not the ideal situation. Still waiting for that USB2 -> Cardbus solution.

# August 2, 2006 4:19 PM

Chris D said:

I have to say i am not impressed at all with the stock ProfileProvider.  I would only use it for the most simple of applications.

The fact that it stores it's values in a key/pair string (or serialized form, can't remember) in an ntext column should be enough reason for anybody to ditch it and write their own custom provider.  At the very least they could have provided a sql2k5 option to use an nvarchar(max) and preserve creating profile properties in web.config, but really, using a single column which needs parsing or deserializing every time to get a single property, lame.

# August 3, 2006 12:05 PM

AndrewSeven said:

I agree, my limited experience using it has given me the same hackish feeling.

# August 3, 2006 12:22 PM

PaulWilson said:

Its stuff like this that helped convince me that all I really wanted was my own strongly typed profile class which I load and persist the way I want.  Yes, it does "limit" things by not allowing you to just add a new member in the config file (or even programmatically), but in a real enterprise app that just isn't really going to happen anyhow.  Instead I'm much more concerned with building a scalable and performant application, and I simply want to expose some user properties as part of the built-in profile class.  So my properties are stored in a normalized database table so that they can used and versioned outside of the asp.net profile infrastructure if I see a need.  I also optimize things for my anonymous users by loading and persisting their profile information in cookies -- maybe not something you want to do, but I have that flexibility.

# August 3, 2006 1:29 PM

Jeff said:

Performant is not an adjective, it's a noun. :) Sorry, just one of my pet peeves.

I agree with everything you're saying. However, the reason I wanted to use these API's on my forum project is because the single biggest issue for people who need to integrate is there's no other common API. I'd like to see ASP.NET appeal to more of the audience currently interested only in PHP or Ruby or whatever. I want to put something out there that says, "Hey, you can integrate this into your own site with just some config changes."

Perhaps I should be rolling things my way instead, and have people write a provider through my own API. That wouldn't be my first choice.

# August 3, 2006 1:39 PM

ScottGu said:

I believe it is calling your SetPropertyValues method because you are using a complex type object (and not a primitive type like string, int, etc).  In cases like these the Profile API can't really tell whether the object has changed since there is no standard way to tell with a nested graph of objects like this (although if you wrote an underlying provider you could diff the results with the latest serialized and determine it based on that).

There is a configuration switch in the <profile> section of web.config that allows a developer to turn off the automatic update behavior of Profile:  <profile automaticSaveEnabled="false" />.  If autosave is turned off the developer can use their own logic for dirty detection, and when necessary call Profile.Save().  This avoids you having to build a provider at all and would give you total control over the save semantics.

To answer Chris' question above, the built-in Profile Provider does persist settings as an XML blob as opposed to within a strongly-typed table.  However, you can download this Profile Provider from the web to achieve what you are after instead: http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx  The provider allows you to map the Profile API against either a table directly or against SPROCs (where you could implement your own shredding behavior).

For the second issue, this occurs because the LastActivityDate and LastUpdatedDate are not considered part of the profile data itself.  The profile properties are defined in the profile schema, and we didn't want to require that these two dates always existed as built-in profile properties.  Instead we consider these to be administrative information about the profile.  For convenience we added the properties to the base profile type so that developers wouldn't have to explicitly write the code to both load the profile data, and then look up these two tracking dates.  Instead we lazy load the two dates from the default provider the first time they get accessed.  Realistically though we don't expect developers to normally access these values for anything other than non-admin purposes.

Hope this helps,

Scott

P.S. The benefit of the provider model is that you can swap-in implementations of your own if you want too.  This gives you the benefit of a single API that multiple apps or app frameworks can standardize around, but also all the flexibility of customization if you want.  So I'd definitely recommend investigating how to use the built-in APIs where possible.

# August 3, 2006 4:19 PM

Jeff said:

Nope... I've got one line on Page_Load looking at a string. That certainly shouldn't be triggering a save by your description.

# August 3, 2006 5:48 PM

ScottGu said:

What does your overall profile definition look like?

And have you tried the automaticSaveEnabled="false" setting I suggested above?

# August 3, 2006 6:04 PM

Morri said:

I hacked this problem by editing one of the stored procs that the profile calls. Sorry I can't remember the name of the proc, but shouldn't be to hard to find it. The stored proc had an update for lastactivitydate, and by removing the update I managed to get users Gender without updating the lastactivitydate.

It seems kinda hazardous, but it hasn't caused any unwanted behaviour in our ~300 user app.

# August 4, 2006 1:09 AM

William said:

 My daughter uses the game; I have no clue about it's workings past loading the software.  She has bought the second expansion pac, but the instructions state that the previous game must be "saved" before loading the new versions.  How is that done.

Thanks to anyone that can help, I am stuck.

Bill.

# August 5, 2006 10:31 AM

Dylan Berry said:

Check out Jason Freid of 37 Signals' response to this article.  

http://37signals.com/svn/archives2/dont_believe_businessweeks_bubblemath.php

# August 5, 2006 1:33 PM

Jeff said:

Yeah, I read that, and I think he over-reacted a bit.

# August 5, 2006 9:36 PM

Tarek El-Mallah said:

Scott...thanks! :)

the panel solve the problem.

# August 7, 2006 4:04 AM

Natalie said:

Hi Guys.

Off the topic a bit, but does any one know if it's possible to add total line in the grid?

This total might not Necessarily be at the end of the grid

# August 7, 2006 9:36 AM

bigern1990 said:

Unfortunately your story is completely one-sided...

# August 8, 2006 1:49 AM

Tommo_UK said:

bigern, unfortunately for Microsoft, his story is wholly correct... but don't worry - you can just buy a Mac with OSX for less than a comparable Dell, a lot less, and then run all your favourite Windows apps in a virtualised window if it makes you feel more at home.

# August 8, 2006 5:16 AM

karl said:

The delayed OS, the continual lawsuits, the failures to comply, SqlDataSource...dude, they weight heavily on all of us. They are a constant source of distraction. Hopefully heads will roll after the product ships, and Microsoft will finally slim down and become more agile.

One of the best features of Vista, that you hear little about, is DirectX 10. Should we be surprised that it's been going through fairly regular releases? No. Too bad that isn't being recognized and emulated.

# August 8, 2006 7:53 AM

Kyle said:

Have you guys been sniffing glue?  I am forced to use a Mac (OSX) every day for compatibility testing.  I loathe my time on that machine.  Yes, some things are pretty, but big whoop.  I can be more productive withing Windows with a hang-over and wtih my mouse-arm in a sling.

# August 8, 2006 8:21 AM

Jeff said:

There is no "story." This is my opinion. Last I checked, I don't need to form a counter argument for my own opinion.

You know, I was thinking after I wrote this about how DirectX is a sort of quiet success story in the Windows world. The Xbox 360 is an amazing accomplishment as well. It's not that Microsoft is a dinosaur, but its flagship product is far from inspiring.

And if you loathe OS X, I guess you're going to hate Vista since it's clearly inspired by the Mac. ;)

# August 8, 2006 9:00 AM

Charles Chen said:

"And Steve Jobs demonstrated part of the reason that OS X has evolved so well: Iterative development. Five versions in five years, and people actually pay for the upgrades! Would people have upgraded Windows XP in this fashion? I doubt it, but making those incremental steps sure would have made a lot of sense to me." First, consider that while Microsoft has not released major UI upgrades, MS has certainly provided numerous patches and service packs, *free of charge*. This iterative release methodology that you speak of is a sham. For all we know, Apple developers and engineers could keep deficiencies in the code simply to compel users to get the latest and greatest with next year's version. To me, it's clearly not a good value proposition if I have to upgrade my OS at a cost every year to get the latest features and fixes. If anything, Microsoft has demonstrated a better adherence to the iterative technique by deploying regular updates to the userbase. You've sipped the Kool-Aid already... Second, few (if any) major enterprises use Max OSX as the primary computing platform despite the touted security advantage that Macs supposedly have, the price advantage that you alude to, and the whiz-bang, easy to use, highly intuitive interfaces. You'd think companies would be all over that! So why is this not the case? Hmmmm...Imagine for a moment that instead of offering service packs for free, Microsoft decided to sell them to the customers. Could you imagine the uproar and outrage? Where is my value proposition now? You mean, I just spent $##,000,000.00 upgrading my machines to the latest version of OSX 6 months ago, and now you're releasing a new version and you want to charge me $#,000,000.00 to upgrade all the clients that were just installed? Please. Back off from the Kool-Aid and pretty pictures.
# August 8, 2006 10:21 AM

Jeff said:

Uh, were there new features in the service packs? I don't recall any. Fixing what's broken hardly constitutes iterative development or good will. The OS X releases are not service packs, they actually add value to the platform.

Clearly people are willing to pay for new features and do find value in it or they wouldn't be doing it. Let's face it, the only point people wanted to get to prior to Windows XP was one that didn't include BSOD's.

And I didn't say anything about pricing advantages or the "enterprise" or any other such nonsense. That's your argument, not mine.

# August 8, 2006 10:42 AM

Karl said:

"Apple developers and engineers could keep deficiencies in the code simply to compel users to get the latest and greatest with next year's version."

How many features (directx 10) are, or at some point were, Vista only?

"You'd think companies would be all over that! So why is this not the case?"

Office?

I'm sorry, but to defend Microsoft here isn't right. They've acknowledge that they didn't do things right. They've acknowledge that they aren't where they want to be. VS.NET is plagued with the same slow release problems - though it's something we've been told is going to improve (remember when we didn't even know there was going to be a major fix to VS 2005/.NET 2.0?)

Microsoft quotes:

"... we will never have a gap between Windows releases as long as the one between XP and Windows Vista; count on it." (http://dotnet.sys-con.com/read/246707.htm)

"We tried to incubate too many new innovations and integrate them simultaneously, as opposed to letting them bake and then integrating them, which is essentially where we wound up."

"We'll never again do a Windows update this big,"

(http://www.informationweek.com/software/showArticle.jhtml?articleID=191600952)

I could find a lot more...especially on blogs.msdn.com or other microsoft-like blogs (mini-microsoft).

# August 8, 2006 10:56 AM

karl said:

"Fixing what's broken hardly constitutes iterative development or good will."

I've worked with too many consultants and consulting companies not to laugh at this :)

# August 8, 2006 10:57 AM

Brian said:

"Uh, were there new features in the service packs? I don't recall any. Fixing what's broken hardly constitutes iterative development or good will. The OS X releases are not service packs, they actually add value to the platform."

This comment is proof you have no clue what you're talking about.  There were several new features in XP sp2 (firewall, information bar for ie, etc).  Check out sp2 for exchange as well, again there are numerous new features that are being given for free.

Microsoft also has a lot more to develop when they develop a product.  Apple doesn't support a ton a management/enterprise related features and interfaces that Microsoft supports in every product (WMI, Group Policy, COM, etc).  Every app has some sort of interopability.  When/If Apple ever figures out this is why Microsoft is successful in the enterprise, they might be a threat to Microsoft.

# August 8, 2006 11:33 AM

John Clark said:

"Microsoft also has a lot more to develop when they develop a product.  Apple doesn't support a ton a management/enterprise related features and interfaces that Microsoft supports in every product (WMI, Group Policy, COM, etc).  Every app has some sort of interopability.  When/If Apple ever figures out this is why Microsoft is successful in the enterprise, they might be a threat to Microsoft."

Apple *does* have management in their applications... you can lock down a Mac the same way you can lock down a PC.  You use Apple's directory service, called Open Directory (it is based on OpenLDAP, and Kerberos -- hey, sounds a lot like AD!) or you use Active Directory with some simple schema extensions (which are standard and published as an RFC), and you can fully manage a Mac -- you can specify default email server, default LDAP server, home directory location, etc.  Like GPOs.

Now you may say "wait, why can't GPOs manage the Macs?" but then you have to ask if that makes sense, really, as very few AD admins know or care what a Mac is.  Is that Apple's fault?  Not sure... it's really down to what the business wants.  But there are options available, and they work quite well.

Apple has released 5 OS upates in the past 5 years, compare to 1 (or 0, depending on how you're counting) for Microsoft.  And yes, they charge for them.  BUT, Apple also releases, about every 2-3 months, a service pack.  Currently 10.4 is on version 10.4.7, meaning 7 "service packs" have been released since 10.4 shipped last April.

As for calling out Microsoft for the great "new features" they have added with their 2 service packs in the last 5 years... LOL.  "Hey, they added a firewall!"  I mean, if OS X hadn't had one built in in the FIRST release of OS X 5 years ago, it wouldn't be so darned funny.  Apple is innovating much faster, and they are much more nimble.  I think from a technology standpoint, there's no question who is innovating more, and who is innovating faster.  What *is* a valid question is whether Apple really cares all that much about grabbing significant portions of Fortune 100 business.  That's a valid question, because there are specific things that these companies want (global support standards, detailed roadmaps, ability to buy an identical product configuration for 18 months, ability to use one OS on all hardware for 18-36 months, etc.,) which Apple would consider to slow their ability to innovate, and which may in fact mean they don't want the business.  *shrug*

# August 8, 2006 12:14 PM

The Other Steve said:

What I find interesting is that apple glue sniffers claim as features new applications.  Say Apple releases OS X 10.11 which now includes iFence and iDogChain.  These will be regarded as great new features of the OS.

But Microsoft includes IE with Windows, and they get sued and yelled at for bundling.

Here's a question for you...

If you love OSX so much, and the OS is so clearly superior.  Why aren't you developing enterprise applications on it?  Why waste your time with .NET if the OSX environment is so superior?

Oh that's right... the OS doesn't provide the necessary functionality.

# August 8, 2006 12:21 PM

John Clark said:

"If you love OSX so much, and the OS is so clearly superior.  Why aren't you developing enterprise applications on it?  Why waste your time with .NET if the OSX environment is so superior?

Oh that's right... the OS doesn't provide the necessary functionality."

Hey, I'm not a developer.  So I don't really care.

As for the OS not providing the necessary functionality, I don't follow.  Let's see, what enterprise applications run on OS X?

* Java 1.5, and associated J2EE stacks.  So this includes JBoss (officially), and BEA Weblogic (works; not currently supported, but that's a money issue).  

* Sybase

* Oracle

* Tibco

* The whole Perl/PHP/MySQL/Postgres thang.  These work for enterprises -- they don't have as many Microsoft suits selling them as the end-all be-all.  So fewer CTOs of Fortune 100's consider them, though they do work quite well.

Sure, OS X lacks ASP.NET.  Small wonder.  Then again, Microsoft creates ASP.NET and then puts a number of proprietary hooks in the browser in the name of "thin client" which don't work for any other browser on the planet, because they're proprietary plug-ins.  This is no thin-client at all; it's an application which uses a "browser" as a front-end, but which loads all manner of proprietary plugins, forcing the desktop choice on all users.  I've seen it numerous places.  That's where the tying complaints come from.

Mac OS X is UNIX; nearly everything you can run on Linux you can run on OS X, and most of the stuff you can run on AIX/Solaris/HP-UX you can run on OS X as well.  This "the OS doesn't provide necessary functionality" is complete bunk; it's only true if you actually mean "the OS doesn't provide the necessary Microsoft proprietary technology," which I could see given that this is an ASP weblog.  Or you could say "hey, OS X doesn't support Microsoft SQL Server," but it does support Sybase SQL server, which if you recall was the product Microsoft bought rights to.  They're both capable databases.  So, I'm wondering who has the blinders on.   Do you even know anything about OS X?

# August 8, 2006 12:37 PM

Jeff said:

John pretty much backed me up better than I could myself, and particularly into response to:

"This comment is proof you have no clue what you're talking about. There were several new features in XP sp2 (firewall, information bar for ie, etc)."

That's hilarious! Maybe they included a firewall to block the fact that XP was pissing into the wind with Universal Plug and Play exposed to the world by default. I'll never quite understand that one. Let's compare the SP2 feature list (I can't find one for SP1, only bug fixes) to OS X Tiger:

http://www.microsoft.com/windowsxp/sp2/features.mspx
http://www.apple.com/macosx/newfeatures/over200.html

Or heck, let's just look at the whole line... http://en.wikipedia.org/wiki/Mac_OS_X#Versions

I think Tiger was the first version that really added a ton, but prior to that we also saw useful things like Exposé, iChat (with video) and Safari. Oh, and there's this "little" suite of products called iLife that beat the pants out of anything available on Windows, free or otherwise. It comes with the OS. Where are the apps like iPhoto, iMovie HD and iDVD on Windows? Oh yeah... they don't exist.

I've got too much time, money and career invested in .NET to go switching off to another platform. And that's fine, because I think .NET, Visual Studio, ASP.NET and SQL Server are fine products. But to suggest that Windows XP is anything more than a shell to run Office, well, I think you need to take the blinders off.

# August 8, 2006 1:10 PM

Rui Craveiro said:

I simply hope Windows Vista to be a huge success as I would hate to see myself working with Java or Objective C. I mean, you can point out many of OS X's advantages, but it doesn't have .net.

There are two clear different strategies. On one side, you've got Apple who is trying to win out the hearts of the end user, by creating nice end user experiences. On the other side, you've got Microsoft clearly betting on the developer, making it easier than ever for him to create good applications in a fraction of the time. Being a developer I prefer Microsoft's strategy as I am not a masochist.

# August 9, 2006 7:09 AM

cocoy said:

there is .net on the mac. its called mono. this is the link:  http://www.mono-project.com/Mono:OSX and it is open source and supports a lot of the features of .net.

i love the fact that i can do all my work on my mac--- and i can run windows, linux apps via parallels, rather than having one machine for each. so to me, my mac is bang for the money. and yeah, for all the good things apple has done for OSX it is still way beyond vista and yet there is much to be desired in fixing vulnerabilities and such in os x.  os x has its strong points and vista will probably have its great points.  

it is not to say that microsoft sucks--- they've done a spectacular job with the xbox for example as one comment stated above, and only if they could channel that to their flagship os and office suite.

i like my mac. i've been a mac user for only six months now.  i've been using linux for seven years, and i will be hard pressed to go back, buy a PC and run vista on it. my mac lets me do all my work on it as much as it syncs with my ipod and  the kids have so much fun playing with photo booth. why would i go back to the windows world?      

# August 9, 2006 7:30 PM

Ade Bryer said:

Any chance you could post the code on here. I would be interested to see how you implemeted this.

# August 10, 2006 5:34 PM

siva said:

nice

# August 11, 2006 3:09 AM

russnem said:

I know I'm late to the party here (sorry about that) but I wanted to point out that Mac users CAN (and frequently do) pay for the major releases of OS X, but just like Microsoft, Apple releases minor revisions for free. I, for example, currently use OS 10.4.7. But that doesn't mean I paid for 10.4.4, 10.4.5, and 10.4.6. I just paid for Tiger (10.4). I'm curious to hear more about this Parallels product. How is the performance?
# August 11, 2006 1:37 PM

Jeff said:

See my next post!

# August 11, 2006 3:16 PM

foobar said:

> Oh, and there's this "little" suite of products called iLife that beat the pants out of anything available on Windows, free or otherwise. It comes with the OS. Where are the apps like iPhoto, iMovie HD and iDVD on Windows? Oh yeah... they don't exist. Well, MS tried to include a browser, and they got sued. They tried to include a media player, and they got sued. Government hypocrisy at its finest.
# August 11, 2006 6:30 PM

Jeff said:

That's a cop-out. Look at Movie Maker. It's a joke, and it certainly doesn't support HD. They tried to do photo management just by showing thumbnails, and it's not ideal either. I think the whole monopoly case was a joke from the start, but even what they've tried has been remarkably unimpressive.

# August 11, 2006 8:50 PM

David Findley said:

I have to say that this has been my experience as well. Parellels on the Mac Book Pro is great! If you purchased while it was in beta you could get as low as 39.99.

My next desktop will most likely be a Mac Pro too.

# August 12, 2006 12:47 AM

foobar said:

> That's a cop-out. Look at Movie Maker. It's a joke, and it certainly doesn't support HD. They tried to do photo management just by showing thumbnails, and it's not ideal either. I think the whole monopoly case was a joke from the start, but even what they've tried has been remarkably unimpressive.

Point is, MS is no position to start offering first-class applications bundled with the OS anymore.  Everybody will whine and moan that they're being "squashed" by the big monopoly machine.  Jeez, Apple can put in an HTML editor with their OS?  Why doesn't Adobe complain that that'll take away sales of their Dreamweaver product?

Jeez, MS can't even support PDFs in the next version of Office without Adobe crying foul.

If you think the IT world would be a more secure, easier to use place with Apple ruling the roost instead of Microsoft, well, it wouldn't.  We'd have all the same problems we have now, except that we'd all be bitching about Apple instead of Microsoft.

# August 12, 2006 1:07 AM

Ben Hall said:

Some good comments being made.

I think an important point with Apple are there releases are that the don't charge a huge amount to upgrade (does add up over the five years admittedly, but you don’t have to upgrade to still have a full useable OS). How much is a Vista Ultimate license going to cost?  I paid £45 (with student discount) from Apple for the full OS on the day it was released, can’t see me doing that for Vista.

Microsoft have done an excellent job with C# and Visual Studio, but they haven’t taken full advantage of the Vista release and while its good, I think OSX 10.5 will be a better product because of it.

Reason I am not developing mainly in Objective-C and Cocoa – job market, however I have the books to start reading once I get pass my current commitments, Core Animation looks like it could be interesting to work with…

# August 12, 2006 4:35 AM

Ben Hall said:

I am holding out for the Core Duo 2 release, and then need to try and find the money from somewhere - because what else is a student loan for - rent or a MacBook Pro :) I think we all know the answer...
# August 12, 2006 4:39 AM

Jeff said:

Did I say that the world would be a better place with Apple on top? No, I said that MS doesn't have nearly as good a product as Apple. Don't put words in my mouth to serve your case.

# August 12, 2006 10:26 AM

foobar said:

Serve my case?  Stop putting words in my mouth.  I don't give a hoot who's on top, bottom, 3rd, 15th or whatever.  I will do what I need to do to make money in the IT business.  If that means making Apple apps, that's great.

Since I use Java, .NET, ColdFusion, PHP, Oracle, mySql, SQL Server and a whole pile of other tools, many of them open source, where do you think my loyalties lie?

Yeah, I'm a MS shill.  That's it.

Mark my words:  Apple will never be anything else other than a bit player in the PC/OS space as long as they force customers to purchase their hardware with their OS.  If you can't realize that colossal mistake that Apple still sticks by, then you'll never, ever understand why no matter what BS features Apple puts into their OS, it won't make a shred of difference.

# August 12, 2006 9:44 PM

Jeff said:

Colossal mistake? I don't think you understand what business Apple is in: The hardware business. Where do the margins lie? In hardware... iPods and Macs. I think they make great software, but that software is intended to sell hardware.

Do the math... make hundreds of dollars on a computer or a few bucks on software. Doesn't sound like a difficult choice to me.

# August 13, 2006 10:48 AM

Damon Stephenson said:

Agreed Ben!

# August 14, 2006 6:02 AM

ron said:

My current desktop now is IMac intel Core Duo. Im also regularly coding .NET 2.0/VS 2005 & Sql Server 2k5 on this box which is ran on windows XP (boot camp). So far no issue and its work fine.

# August 14, 2006 9:19 AM

lkempe said:

Even if it is a windows app it is a really good one.

# August 14, 2006 10:05 AM

MarcLaFleur said:

While developers have made Windows great, they have also given the platform a reputation for instability. The last thing XBox needs is to be categorized as unstable - Sony has inappriate dreams about saddling XBox with those labels.

And don't diminish what they are doing here. They have just changed the ball game by allowing anyone to develop for their console. The console market has been historically very selective about who gets access to their customers. Microsoft may not be opening things up to the hobbyist here, but they are opening things up for real software companies that might have been excluded in the past.

# August 14, 2006 10:28 AM

Ben Hall said:

Have to say, that was my first impression as well.  Especially since I can blog from within Word anyway.

# August 14, 2006 10:29 AM

Jeff said:

I'm not entirely sure I agree with all of your points. Part of "opening up" means having the ability to publish and distribute your stuff. I understand that there has to be a QA process for this, but this strikes me as a half-measure at this point.

# August 14, 2006 10:39 AM

karl said:

I've been using http://www.writely.com to blog on codebetter.com for a couple posts now. Works great in firefox - SOLD!

# August 14, 2006 11:03 AM

Gabriel Lozano-Morán said:

Hell, why use any other application than Excel? I am pretty confident that we can even do everything from within Excel, don't you think so?

It's great to see finally a service oriented smart client application for blog posting. Sure I can posts blog from the WYSIWYG editor in CS but it is not the same? Ever tried writing a blog post that takes an hour to write only to find out that your session expired when you tried to post it?

Imho stop whining about it and just don't use it. I don't like VB.NET but I don't whine about the fact that I don't understand why some people like it.

# August 14, 2006 11:33 AM

Brent Johnson said:

I completely agree, Jeff. $99 per year? That's more than I pay for Xbox Live which brings me real value without having to roll up my sleeves and build my own game. Now they are telling me I have to PAY $99 per year for the RIGHT to build on my 360? No thanks - I'll just continue building games on Windows. At least on Windows I can decide to sell or distribute them if I want to. On the 360 with XNA it requires that my friends are also paying $99 / year if they want to play my game. That's just B$.

# August 14, 2006 11:39 AM

Matt Guest said:

A hobbyist that is willing to put the time and effort into working on something as difficult as writing a video game should be more than willing to pay $100/year to have his/her game available to play on the xbox 360. In my opinion the cost will help drive away all of the trash that would flood it otherwise.

This is a truly revolutionary step in console gaming. Generally even if you have the money to pony up $12,000 for a dev kit you still have to go through all kinds of hoops before they'll sell you one.

This will give serious hobbyists the opportunity to get their ideas out there for the world, and maybe a publisher, to see.

Once the real details of this come out not only will I be purchasing a license, but it will also be the push that makes me finally buy an xbox 360.

# August 14, 2006 11:49 AM

Jeff said:

You make a pretty good point there in terms of acting as a filter. I had not considered that before.

# August 14, 2006 1:33 PM

Jeff said:

So because you disagree with me, I'm whining? Whatever dude. I think it's a step back if it's not something Web-based. I enjoy a lot of freedom being able to use both Windows and OS X, as well as devices like PDA's and phones. For all the years we complained about browser compatibility issues, we're finally reaching a place where that platform-agnostic goal looks possible. This tool is a backward step from that direction.
# August 14, 2006 1:40 PM

David said:

What about LoadPostData and LoadViewState

# August 14, 2006 5:09 PM

Darren Neimke said:

>> Ever tried writing a blog post that takes an

>> hour to write only to find out that your

>> session expired when you tried to post it?

I've been using this cool little rich client app called Notepad to manage my content for a while now but I had been planning to make the leap and start using Word12 instead :-)

# August 14, 2006 6:25 PM

nathan said:

Hey Jeff I would love to know of the place youi orderd the replacement power jack from.

Could you please mail me? tillotsonn@yahoo.com thanks a mill.

# August 15, 2006 1:55 AM

Ryan Anderson said:

Late to the game, I am having an odd issue with an HttpModule that pulls a company logo from the db and outputs the file to an html email.

Strange that the image doesn't always coincide with what the database dishes out.

The image file name returned from the database isn't always the file that is displayed in the email.

Similar, and was wondering if everyone is still out there flapping on this...

# August 15, 2006 2:06 AM

Ryan Anderson said:

Oh, yeah. I am not using a session object, but pulling the requested url;

Dim url As String = application.Request.Path 'get the url path

from the app object, it jive beautifully in VS, but not on IIS...

Stumped...

# August 15, 2006 2:08 AM

Gabriel Lozano-Morán said:

Actually stepping back from web-based solutions for this to a smart client application is imho a great choice!

@ Darren: sure man and you are also one of those guys that programs in notepad and uses CSC to compile, right?

# August 15, 2006 3:17 AM

AndrewSeven said:

So I still wonder if Bill & Steve B think of that as the best or the worst 150++ Million ever spent?

# August 15, 2006 9:36 AM

Chad Smith said:

Opensource the base (codeplex?) and also sell a full featured product with everything people need to use it. That way it becomes a community project at heart, it becomes a good case study of an app and end users get a lot worth paying for (including support and point release bundles).

# August 15, 2006 12:29 PM

John Zeiner said:

Don't continue to give it away, as you said people just dont see any value in free software and worse of all they just never participate to open source projects anyway so you're eding up being the dumb one working for everyone else. Just sell it at an affordable price so you will get rewarded for your work and people who buy it will show you support
# August 15, 2006 4:17 PM

Jeff Atwood said:

> I enjoy a lot of freedom being able to use both Windows and OS X Then you're free to use this Windows-based tool. I don't see what the problem is. Web sites are never as responsive or full-featured as client apps. Why not take advantage of the platform when it makes sense to do so? What next? You gonna complain that Quake 5 doesn't run in Safari?
# August 15, 2006 4:23 PM

Jeff said:

You aren't listening to me, or don't want to. You can do all of that in a browser on a Web site. Why should I be tied to Windows?

# August 15, 2006 4:53 PM

Jeff Atwood said:

> You can do all of that in a browser on a Web site. Why should I be tied to Windows?

You just spent the last n-1 posts describing ad nauseam how you're NOT tied to Windows. You got your x86 emulator, so you can run anything anywhere.

So why not pick the best tool-- MacOS or Windows, Web or Client? Isn't that the whole POINT of HAVING the choice?

It's not that I'm not understanding you, it's that you, sir, make no sense.

# August 16, 2006 3:44 AM

Wim Hollebrandse said:

Jeff,

In my view, I'd go for a combination of some of the options you mention.

Give the main product away (without source code!) or charge some symbolic amount for it, say 5 bucks. And make sure that part of the T&C is to display a link back to your main site.

At the same time, sell the product with the source code for something like 20-50 bucks.

Good luck,

Wim

# August 16, 2006 5:29 AM

Alex Hoffman said:

+1 John Zeiner

# August 16, 2006 9:22 AM

Jeff said:

No, you just seem to think you and I are the only people who would need to use it.

# August 16, 2006 9:24 AM

Jeff said:

That depends, was he being sarcastic or genuine?

# August 16, 2006 9:25 AM

Kenneth said:

Back in 2002 when I found out about G4, I liked it the first time I saw it. It was my favorite channel at one point. When I went to college, I found out about TechTV and I liked that channel as well. G4 and TechTV were my two favorite channels. G4 was airing in Detroit snd Tech TV was airing in Flint. Somehow I knew that one day the two channels would merge. I just knew it. When they finally merged, I thought it was for the better and thought I was going to be the best channel ever. Well, I was wrong. G4TechTV cancelled many TechTY shows and aired plenty of G4 shows. I liked the merger at first, but now I hate it. G4 basically took over TechTV. TechTV was a much better channel that G4 will ever be. My best friend liked TechTV and when the merger happened, he was not happy at all. Everytime we turn to G4, we both say "G4 Sucks".

# August 16, 2006 3:11 PM

Miska said:

And anyone using the Windows DDK to build device drivers or doing some kernel programming? Any experiences?

# August 17, 2006 12:13 PM

Ken Cox [MVP] said:

It's your absolute right to whine about someone's mistake, but it would be more constructive to go in and *fix* the error by providing a real example for the community.

You can do that using the MSDN Wiki beta:

http://msdnwiki.microsoft.com/en-us/mtpswiki/system.web.ui.datasourceview.delete.aspx

Ken

Microsoft MVP [ASP.NET]

# August 17, 2006 10:59 PM

Dave Griffiths said:

Fire the person that doesn't understand (semi-abstract) inheritance ... :-)

Read the documentatation again .. this is a base class, that's behaviour can (and is) overriden.  By default, delete is not supported by the base class .. but might be in any of the following derived classes ..

* System.Web.UI.WebControls.XmlDataSourceView

* System.Web.UI.WebControls.ReadOnlyDataSourceView (probably not in this one)

* System.Web.UI.WebControls.SiteMapDataSourceView

* System.Web.UI.WebControls.SqlDataSourceView

* System.Web.UI.WebControls.AccessDataSourceView

* System.Web.UI.WebControls.XmlDataSourceView

In fact, here is a bit of code from the SqlDataSourceView to prove it ..

Protected Overrides Function ExecuteDelete(ByVal keys As IDictionary, ByVal oldValues As IDictionary) As Integer

     If Not Me.CanDelete Then

           Throw New NotSupportedException(SR.GetString("SqlDataSourceView_DeleteNotSupported", New Object() { Me._owner.ID }))

     End If

     Dim connection1 As DbConnection = Me._owner.CreateConnection(Me._owner.ConnectionString)

     If (connection1 Is Nothing) Then

           Throw New InvalidOperationException(SR.GetString("SqlDataSourceView_CouldNotCreateConnection", New Object() { Me._owner.ID }))

     End If

     Dim text1 As String = Me.OldValuesParameterFormatString

     Dim command1 As DbCommand = Me._owner.CreateCommand(Me.DeleteCommand, connection1)

     Dim dictionary1 As IDictionary = Me.DeleteParameters.GetValues(Me._context, Me._owner)

     Me.AddParameters(command1, Me.DeleteParameters, dictionary1, oldValues, Nothing)

     Me.AddParameters(command1, Me.DeleteParameters, keys, Nothing, text1)

     If (Me.ConflictDetection = ConflictOptions.CompareAllValues) Then

           If ((oldValues Is Nothing) OrElse (oldValues.Count = 0)) Then

                 Throw New InvalidOperationException(SR.GetString("SqlDataSourceView_Pessimistic", New Object() { SR.GetString("DataSourceView_delete"), Me._owner.ID, "values" }))

           End If

           Me.AddParameters(command1, Me.DeleteParameters, oldValues, Nothing, text1)

     End If

     command1.CommandType = SqlDataSourceView.GetCommandType(Me.DeleteCommandType)

     Dim args1 As New SqlDataSourceCommandEventArgs(command1)

     Me.OnDeleting(args1)

     If args1.Cancel Then

           Return 0

     End If

     Me.ReplaceNullValues(command1)

     Return Me.ExecuteDbCommand(command1, DataSourceOperation.Delete)

End Function

# August 17, 2006 11:06 PM

Jeff said:

This is precisely why our community sucks compared to those for other platforms. A comment like this, which is a call for a higher degree of excellence from Microsoft, is met with "do it yourself" and "read it again" or lessons in OOP. "MVP" my butt.

I never said I didn't get it or couldn't figure it out (I already did, thanks). But if you're wondering why it's so hard to find people who really get the ins and outs of the platform or wonder why people ask really "obvious" questions in forums, it starts with poor documentation.

# August 17, 2006 11:58 PM

Sean said:

Not new. I actually tried to report and go this answer: ----- Hello Sean, Thank you for waiting for our response. This is to inform you that we will not be able to make the immediate changes you have reported because the content is acquired by MSDN. We have forwarded the issue to the content owner for review and resolution on their end. You may want to visit the site from time to time to check for any development. We apologize for the inconvenience this has caused you. Should you have other MSDN concerns, please feel free to write back. ----- Puts some light on it :)
# August 18, 2006 2:20 AM

Alberto Acosta said:

Jesus love him too, you should be the best writer ever can you give the list of tech Book you have published please.

# August 18, 2006 4:24 AM

Martin said:

Great idea. Lets fire anybody who ever made a mistake. That would leave exactly zero people with jobs.

# August 18, 2006 4:43 AM

Dave Griffiths said:

Sorry, but I was pointing out that the documentation is fine. There is NO mistake, and NO error here. In the context of the example code, a read-only DataSource, a not supported exception is exactly what you would want to do, so this is a fully functional, working example. It states clearly that this is not a stand-alone piece of code. I don't see this as a mistake, and definitely not one that somebody should be "fired" for. If you're expecting examples of every possible use case for every method and code path, which is what you're really asking for "out of the box" from Microsoft, then you've got very high expectations. As for community spirit, you clearly didn't ask for a higher degree of excellence, you just blogged to the ASP.net community - "fire" the person who didn't think to write extra documentation (or more specifically, chose to document an example class that has behaviour that does not require 100% implementation). When asked to not just criticise but contribute to the community by the MVP, you criticised them too. You're entitled to do that, but it's unhelpful. If you think the documentation calls for a second example then request one OR, now you know how it works, add one. As an analogy .. Do you develop software that is 100% bug free after you've fully tested it and release it? No, never! Only an idiot would think/expect that. After release, it's only by people reporting bugs/errors TO YOU when they reach real world use, that you'll be able to find them. If everyone sat around and criticised, instead of reporting or assisting you with the problems, then the software industry, our community, would not last very long. Your call for somebody to be fired for the equivalent of leaving out one test case in a massive, collosus of an application, should seem ridiculous and is very unhelpful.
# August 18, 2006 6:31 AM

Wim said:

All that anger...

You against the world eh?

# August 18, 2006 7:31 AM

Casey Barton said:

Conceptually: The datasourceview might be persisted into *anything*. There is no implicit default to show an example for, so they didn't choose one.

Pragmatically: They should just have shown a simple example using a SQL data source, like 90% of real world examples will.

Ultimately: A code example that throws NotSupportedException is frickin' hilarious.

# August 18, 2006 7:51 AM

Jeff said:

"Jesus love him too, you should be the best writer ever can you give the list of tech Book you have published please."

You might want to search Amazon before you post something like that.

"All that anger..."

How is that anger? I have a lot of strong opinions. That hardly makes me angry.

The documentation is not "fine" by any definition. Your notion that it's technically correct is silly. Put aside your superiority complex for a minute and remember a day when you were less competent. Casey is right, a few simple lines hitting a SQL database would have been useful, and not hard to write. If you're inexperienced, and never implemented an abstract class, you'd look at that and wonder where the heck you'd get the values from. I can remember those days... why can't you?

You can spout off all day long about how I should help, and I've done my share of that. That's not what this post is about. It's about demanding more as a customer from Microsoft. If mediocrity is OK with you, that's your business. But this isn't about you or my philanthropic endeavours.

# August 18, 2006 9:24 AM

AndrewSeven said:

The thing about firing people for single mistakes is that you usually end up firing a scapegoat who is less able to engage in the political wranglings.

I almost always share Jeff's feeling about the things he posts.

I understand the pain, but I disagree with the specific example used here.

While it is surely related to the specific things I search for in the doc, I find that this entry is average or above average in terms of content.

Unlike many entries I have come across, it has clearly had some human intervention rather than just being generated/inferred from the method name and signature.  (I find the naming of things good enough that most of the time the little extra bit from the xml comments is redundant)

It says that "This code example is part of a larger example provided for the DataSourceView class". I think there should be a link right there in that sentence to that larger sample. Yes, even if it is the just back to the DataSourceView class page), it would put those snippets into a logical context.

I do not think that an example using sql would be any better if it was not in the context of a larger sample.

Ken:

I have submitted small corrections to Msdn before and will do so in the future if I spot errors.

If I have to build up a prototype (which the client is paying for) to figure out how to use an API, that is ok.

To think that I would take the personal time to take the code (is it the client's code?) and reduce it to an instructional example is not very realistic.

If I the client wanted it and would be willing to pay me to do it, I would be glad to do it; but they aren't, so I won't.

# August 18, 2006 9:29 AM

Curt said:

Granted - the approach of "calling" for a firing may be a bit abrasive (though I suspect the author meant it to be exaggerated), the point should be well taken. Almost all of us are "new" at something as we extend ourselves into new areas, and have to dig into MSDN docs and can be frustrating. My first stop is often Google and not MSDN simply because I suspect that what I'll find in MSDN docs is a statement of the obvious, and not deeper knowledge such as performance related details.

But what really steams me about this community is the hostility and elitism, and "titles" such as MVP don't help - how about titles such as MHP - Most Helpful Person?

# August 18, 2006 11:04 AM

Jeff said:

Thank you, Curt, for getting it.

# August 18, 2006 11:31 AM

AndrewSeven said:

"I suspect that what I'll find in MSDN docs is a statement of the obvious, and not deeper knowledge "

Me too.

# August 18, 2006 11:59 AM

Tim Hibbard said:

Fired might be a bit extreme...how about flogged.

# August 18, 2006 2:03 PM

Robert said:

It was a surprise to see Kevin Rose on the cover of Business Week. However, if was even more of a shock to see him on the cover of <a href="http://www.baytzim.com/digg/">People Magazine</a>, just a week after Lance Bass was featured...

# August 18, 2006 4:19 PM

ydobonmai said:

MSDN....Their examples are wierd.

I am very new to dot net. everytime i check the msdn for some help, it leaves me even more confused.

I'd rather google.

# August 19, 2006 4:17 AM

Tankado said:

<textarea usehtml name="editme">

 <p>Editable content</p>

</textarea>

# August 20, 2006 9:43 PM

Jeremy said:

Today I have been researching all of the problems mentioned in the above comments. There really are 2 or 3 scenarios / problems I see people running into. * One input control and one submit button ----IE doesn't send submit button name/value pair in form request *You want to activate different click events (similar to your solution) depending on which input field was active when enter was pressed (this was my specific problem). ----See below * Different solutions may or may not work depending on if you have non-button controls causing postback (which will generate a __doPostBack script, which will NOT BE THERE if only buttons are used on the page to cause post back, i.e., controls that are rendered as HTML elements that cause form submission by default.). ----Check the source of the generated page. Refer to online information to find correct solution for your situation. I think simply using the method at page top may not stop the "default" (first submit button in form) click event from happening. I think it simply triggers another click event for the button you specify. I had trouble with a similar method, but didn't debug to be sure of my theory after I simply found a method that did work. If you want ENTER to trigger different submit button (control) events depending on which textbox (input field) is active, personally, I think this is the best solution I've seen: http://www.newvisionusa.com/Blog/2005/7/23/DefaultButton/Default.aspx It uses the onkeydown event, cancels the default event, and causes the click you specify. If you want more information about the IE issue mentioned above, where there is only one submit button and one input field, see this: http://aspnet.4guysfromrolla.com/articles/060805-1.aspx
# August 21, 2006 7:35 PM

Jeremy said:

Yes, I also usually google first.

And I also "get it."

As well as having a valid point, this original blog post was just a way of venting. You don't have to take expressive titles literally.

# August 21, 2006 7:45 PM

Mischa Kroon said:

+1 what Wim said

If people really use it then people will want to have the source.

# August 22, 2006 8:25 AM

Jeff's Junk said:

My last post seemed to rile up a few people, which is not entirely surprising since I used strong language

# August 22, 2006 12:33 PM

Community Blogs said:

My last post seemed to rile up a few people, which is not entirely surprising since I used strong language

# August 22, 2006 12:45 PM

foobar said:

It's about tact.  I don't think just because you wrote a book and an app that you're suddenly "entitled" to say that someone needs to be _fired_ for not meeting your expectations for a small section of documentation.

I do find it amusing that you refer to yourself as a customer when you find it convenient, and a part of the .NET community when you find it convenient.

I won't even get into the "lot of pricks" comment.  Talk about pot caling the kettle black.

# August 22, 2006 1:09 PM

whitetigersx said:

Hmmmm... common sense would dictate that a customer is still part of the .NET community.  Just because you work with it doesn't remove the consumer description.

# August 22, 2006 4:25 PM

dg said:

Sorry, Jeff .. I was one of the ones who replied to you the other day. I didn't think replying to your initial blog would get your back up so much. Especially with a comment in jest about you not knowing about inheritance (I added you to my blog roll after glancing through your book, and I assumed you're not blogging on asp.net for your charm or good looks). I'll be the first to admit MS's documentation ain't the holy grail of technical documentation. It was though quite a sharp and insulting first response you gave back though, when all 2 of us were doing was either pointing out what I assumed was an oversight, or asking you to use your wisdom to aid the community. I'll end my piece there ...

For an example of how to write decent developer documentation with lots of example code .. Check out this online documentation .. http://www.popforums.com/docs/v7.5/

# August 22, 2006 4:57 PM

Dot said:

Having the same problems with iTunes.  It stops working and when I am lucky enough to have it work, it doesn't recognize my iPod.  I just love spending the money on this wonderful multimedia device and then not be able to use it.

# August 22, 2006 5:51 PM

Jeff said:

No harm, Dave.

Don't expect any respect from me, "foobar," because I at least have the nuts to not post anonymously. If you honestly think that I really believe someone should be fired, then you havne't been reading my blog very long.

# August 22, 2006 11:18 PM

Ryan Anderson said:

I must admint, I feel that is a good way of putting it.  

What happens to me all to often is I "get so wrapped up in detail" and a strive for quality/ scalability.

During the life cycle the "Hard also comes into play as well due to ignorance and attempting to keep up with you all.

As the clock continues to tick, the "Easy" aspect comes into play while attempting to met deadlines.

What happens in the end is a roll of the dice, really depending on scope, IMO. Sometimes it all falls into place, but for me, I don't think I have ever implemented a project that 2 months down the road I am displeased with where it landed (code wise). Stakeholders are content, so that's good, but I have never been completely satisfied with the code.

Still haven't had my sistine chapel. Someday...

BTW - Never, under any circumstance believe a manager of stakeholder who says, we will give you time to "clean things up" once we rollout, "lets just get it done..." It never happens, or at least, that bargin has never been upheld for me...

Salue

RA

# August 23, 2006 12:15 AM

mime said:

Yes i agree with u, i hate those morons that do not open their mind into other platform, they simply bashing each other. I love Mac, .NET, and Windows because each of these platforms have their own strengths. For the sake of the knowledge lets open our mind.

# August 23, 2006 2:45 AM

Scott Willsey said:

Seems like people got a little over-reactionary. Sometimes people have strong opinions, and when they are irritated, they say them in a strong manner. It's their opinion.

I'd better not post the link to my blog, if you think Jeff is a cranky person...

# August 23, 2006 4:33 AM

Scott Willsey said:

Wim's idea is good. I think John was being sincere.

# August 23, 2006 4:36 AM

Scott Willsey said:

Jeff, part of that is because of the contempt windows people pour on mac users all the time. In the past year, I've converted to OS X, running windows xp in parallels as a vm. I still have my Windows 2003 server, still do my asp.net stuff.

I love OS X. I love my mac. The user experience, reliability, and security blow windows out of the water. That doesn't make me a snob. It makes me a guy who has used windows for years, knows it well, and doesn't prefer it as a primary OS any more.

# August 23, 2006 4:38 AM

Wim said:

Since you need to group these reports by timespan, potentially using a BETWEEN clause, I'd suggest removing the clustered index for the ID column (assuming that's what you have) and creating a clustered index on the actual datetime column.

# August 24, 2006 11:28 AM

Wim said:

My suggestion will only offer some improvement if your PK column is NOT an identity column but a GUID with a clustered index on (which would be pretty much useless).

# August 24, 2006 11:39 AM

AnjanaRam said:

You have not mentioned what's ur database version. If it's SQL2005, then you can replace GUID with SequentialGUID with a clustered index. It's a better choice for an indexed identity column

If its SQL2000, then indexing a GUID column would be of no use. Btw, is ur tables partitioned across multiple servers in  anetwork? If not why use GUID at all, why not use Identity column itself?

# August 24, 2006 1:50 PM

Edward Ezzell said:

a) Index the time column. b)Index the indexes.  c)Make the time the primary key.  d)faster server.

# August 24, 2006 2:05 PM

Jeff said:

Dude, it's really hard to read your post when you don't spell out words.

The database can be whatever, but I'd like to avoid tying myself down to any one in particular. Why is indexing a GUID column of no use?

# August 24, 2006 2:05 PM

Shane said:

Get the *** out G4, go make your own goddamn channel. Put the Tech back in Tech TV. We don't want to see *** like The Man Show or friggin Attack of the Show (Kevin's a ***), we want The Screensavers, Call for Help, or anything that has to do with technology, not some scantily clad idiot jumping on a trampoline.
# August 24, 2006 2:52 PM

RoyOsherove said:

I'd suggest reading parts of this book: http://weblogs.asp.net/rosherove/archive/2006/08/21/Free-E_2D00_Book_3A00_-Developing-Time_2D00_Oriented-Database-Applications-in-SQL.aspx
# August 24, 2006 5:11 PM

Jeff said:

Wow, that is awesome stuff. That's very much worth the read!

# August 24, 2006 5:37 PM

Wim said:

Putting a clustered GUID index isn't of any use because there is no benefit in having GUID's that start with the same characters to be on the same physical database page.

It would if you run queries like:

SELECT CustGuid,Name FROM Customer WHERE CustGuid LIKE '4451%'

The point is, you need to make sure that your ad impression records with similar timestamps are physically on the sequential database pages and are not scattered, which you can achieve by putting a clustered index on the datetime column.

That will save you harddisk IO, since the DB needs to fetch less database pages from disk to return results for your query, hence increasing performance.

By default, SQL Server will make the primary key a clustered index, which may not always be what you want. And since you can only have one clustered index on a table for obvious reasons (the records can only be stored in one way on disk), you might want to move the clustered index from the PK column to the datetime column.

# August 24, 2006 6:08 PM

Griffin Caprio said:

I recently posted about my experiences using Visual Studio.NET on my MacBook Pro using Parallels.  You can find the post here:

http://blog.1530technologies.com/2006/08/visual_studione.html

# August 24, 2006 8:01 PM

Jeff said:

That makes a load of sense, thank you. Would it be logical, though, that as records are created, they'd be physically written next to each other anyway?

Any suggestions about getting aggregate data sets, like totals per hour?

# August 25, 2006 8:33 AM

Wim said:

Though intially records from one table may be written on the same DB page until the page is fully allocated, there is no guarantee that will happen. Different table records that are being inserted at the same time could end up on the same DB page.

As a result of these dynamics, database pages do get heavily fragmented overtime; the clustered index will ensure that your records with similar timestamps remain together on their individual DB pages, and that's important because that's the main way you will be querying these impression records.

For an aggregate type query for say impressions per hour for a specific ad campaign, try something along the lines of:

DECLARE @youradid int

DECLARE @yourdatestring varchar(20)

SET @youradid=1

SET @yourdatestring='25 Aug 2006'

SELECT ad.title,DATEPART(hh,impression.dateserved) AS thehour,COUNT(impression.id) as impressions

FROM ad

JOIN impression ON ad.id = impression.adid

WHERE ad.id=@youradid and CAST(FLOOR(CAST(impression.dateserved AS FLOAT)) AS DATETIME)=@yourdatestring

GROUP BY ad.title,datepart(hh,impression.dateserved)

# August 25, 2006 10:34 AM

ererh said:

dont you think sending in the lawyers before a reasonable discourse is a little heavy handed?

I've no problem with people protecting their property, but the manner in which digg acted given the context of their work is very surprising.

Your blog has turned to *** jeff, stop moaning.

# August 26, 2006 1:23 PM

Scott said:

Bah. I agree with Jeff. Most of the people posting to Digg are dumb kids who get their shorts in a bunch over everything. Read the posts under 90% of the articles, and you'll see people don't even read the articles before commenting, they digg others down for explaining something because they assume the explanation is the person's viewpoint instead of an explanation of the article, etc, etc.

Besides, look at the post on the site that was shut down:

"I thought all I was doing was adding to their success and popularity, but they don't see it that way."

In other words, intentionally trying to use the Digg name to profit themselves. Would a no-name site REALLY add to Digg's popularity? NO. But they might add to their own by trying to associate themselves with Digg.

I say good job by Digg. Read the comments in the thread on Digg. Many (most?) don't even stop to consider legal issues, the fact the person was blatantly trying to rip off Digg, etc. They think there's some moral law that gives people the right to do what they want whenever they want. Facts and law be damned. Ignorant and uneducated fools. IE, Digg regulars.

# August 26, 2006 2:10 PM

Jeff said:

Anonynmous guy: I'm sure they asked nicely before they sent the C&D. You don't pay lawyers for anything until you have to. Run along an play.

# August 26, 2006 2:23 PM

ererh said:

>>I'm sure they asked nicely before they sent the C&D

proof? dont talk ***.

>>You don't pay lawyers for anything until you have to.

It's obviously a loooong time since you had to use a lawyer jeff, wake up.

Yes the kids on digg are hysterical, but it doesnt justify the 'litigate first/ask questions later' mentality .

And yes thanks, i will run along and play, sure in the fact that i have a brighter outlook on life than you. Turn off your comments if you dont want people to disagree with you.

# August 26, 2006 6:03 PM

Karl said:

Breaking news, digg is run by kids...duh.

# August 26, 2006 8:06 PM

Jeff said:

You read my blog and that means you know what my outlook on life is? Er, OK. About as well as you know trademark law, obviously.

# August 26, 2006 9:42 PM

Scott said:

ererh, you tell Jeff to "stop moaning," then tell him to turn off his comments if he doesn't want people to disagree. Seems contradictory. He was expressing his viewpoint just as you would like to do. It is his blog. :)

The people with the offending site and the people whining on Digg are surprised that real life intervenes. Sadly, their parents haven't taught them how the world works and not to use trademarks owned by others for self-profit. Why are we defending these people again?

# August 27, 2006 5:27 AM

Cryptpunk said:

Personally I like the database option best. I've also seen some companies use the system.configuration block or, the now deprecated, Logging Application Block to write configuration information that can be redirected by the user to either the database or the config file as needed or any number of other sources. It's pretty slick, but IMHO overkill.

# August 28, 2006 6:27 PM

Ryan Anderson said:

LOL! It's fun being a developer...

# August 29, 2006 11:37 AM

Bill Clinton The Only Developer said:

You wouldn't vote for them anyway!

# August 29, 2006 12:30 PM

Jeff said:

Believe it or not, I do not, and never have, voted down party lines. You wouldn't vote for the dog catcher if he or she couldn't catch dogs, would you?

# August 29, 2006 12:55 PM

I am the Dog Catcher said:

Hmm... You don't vote party lines? Why insert yourself in a political head line partisan? Then go off on a tangent like a dog chasing his tail. Stick with programming...you're better at it.

# August 29, 2006 1:06 PM

Jeff said:

Are you the same tool that has been anonymously stalking me with every post? Would it have been more appropriate to say "a certain political party is spamming me?"

At least I've got the nuts to say what I think and use my real name.

# August 29, 2006 1:54 PM

Who's the Nuts said:

I rest my case. For a smart guy, you sound like a paranoid child. Listen, come on over to our site: MoveOn.Org. We love your politcal comments and we can help you sharpen your skill. You don't have to be ashame of us.

# August 29, 2006 2:31 PM

Darrell said:

But what if one of the guys running for dogcatcher is a sodomizing baby killer? Even if he could catch dogs, wouldn't you want to vote for the guy who isn't going to force you into a gay marriage?
# August 29, 2006 3:28 PM

Jeff said:

Call me names then ask for my help. Well done. And still no nuts.

# August 29, 2006 4:27 PM

Michael Moore said:

You have to stop playing the victim and learn to stay focus. Nobody ever asked for your help or called you names. You made that up in your own mind. The point for you to learn is to stay focus on your topic whether it is about Spam or Microsoft's documentation, be constructive and provide intelligent advice here in this forum without blaming the world. But first you have to look in the mirror and correct your behavior there.

# August 29, 2006 5:08 PM

Jeff said:

You're telling me how and what to write about in MY blog? I don't have to give advice to anyone, be intelligent or constructive. Maybe you should start your own blog.

# August 29, 2006 5:38 PM

DT said:

Do you know why the SaveViewState events fires twice for page and control?

 Page: SaveViewState

 Control: SaveViewState

 Page: SaveViewState

 Control: SaveViewState

# August 29, 2006 9:40 PM

Michal Talaga said:

Speaking of data binding, you may read some of my articles on possible problems you can encounter with those new controls: http://vaultofthoughts.net/ProblemsWithObjectDataSource.aspx http://vaultofthoughts.net/ProblemsWithDataSourceControls.aspx http://vaultofthoughts.net/ObjectDataSourceAWorkingAlternative.aspx
# August 30, 2006 5:01 AM

commenter said:

Your blog comments appear to be suffering from a 'stupid twunt' infestation. My commiserations, stupid twunts can be a little tiring to deal with.

# August 30, 2006 9:12 AM

Jeff said:

I disagree with your assessment entirely. You're way over-thinking this stuff. I have no problem updating data as needed. I wrote this just the other day in my DataSourceView derived class...

protected override int ExecuteInsert(IDictionary values)

{

Forum f = new Forum();

if (values["CategoryID"] != null)

f.CategoryID = Convert.ToInt32(values["CategoryID"]);

if (values["Description"] != null)

f.Description = values["Description"].ToString();

...

f.Update();

...

# August 30, 2006 9:33 AM

Michal Talaga said:

I don't know which part you refer to when you say "over-thinking", but as far as your example goes: Where would you use your derived DataSourceView other than in your own DataSourceControl which you also have to implement. Furthermore, your solution is specific, my is generic. It can handle just any object while yours is targeted at specific type: Forum.
# August 30, 2006 9:42 AM

Jeff said:

OK, so I was confusing which control type you were talking about, but even your suggestion that the ObjectDataSource is "in practice it is completly unusable" is not true. You said: "You may think hell I can go with having a default constructor on every object since I will probably need it anyway to support the [Serializable] attribute. But wait! There is one more problem with the control. It creates our business object and sets its the properties!!! Now what is wrong with that you ask? Once the business object is created ALL its fields are set to initial values such as null/1/1.0/false." Why is that a problem? If you're not passing one in with some constructor parameter (like a primary key), then where would you magically expect the values to come from? I looked at the code samples in the docs for the ObjectDataSource, and it all looks pretty logical and usable to me.
# August 30, 2006 3:23 PM

Naren said:

Thanks for the article.

# August 30, 2006 10:32 PM

mr. clean said:

I agree. Infestation usually grows from the source. From what I see here, the source seems to be stubborn and suffered from "stupid twunt" paranoid behavior.

# August 30, 2006 11:20 PM

Tommy said:

I also moved all my mail to Google, and it works like a charm... 2 gigs of space to all my mail users, calendar application, gtalk chat, etc...

Pretty sure album, writely and spreadsheet is rolling in as additional services to my mail users. :)

# August 31, 2006 3:21 PM

Shane Bauer said:

I've been using the service for a few months now. I don't have any complaints. The service is pretty stable and the searching and the spam filter are both great.

# August 31, 2006 5:23 PM

karl Thomas said:

it's easy to get the free download MPEG to DVD Burner, you can go http://www.51shareware.com/multimedia-design-video/amor-mpeg-to-dvd-burner9369-10.htm

# September 1, 2006 11:38 PM

Jasttgan said:

# September 4, 2006 1:06 AM

Travis said:

I'm with you on this, but if you think about it, what does XP offer over Windows 2000 Pro?

# September 5, 2006 4:12 PM

Jeff said:

I never bought 2000. I went from 98 to XP, and even then only because I had an MSDN subscription at the time. I might have fought it longer otherwise. ;)

# September 5, 2006 4:25 PM

Nichole said:

You could probably join facebook using a work account.  They have a lot of workplaces that you can associate with and Microsoft is one of them, since I'm assuming that's who you work for.

# September 5, 2006 5:24 PM

Jeff said:

Nope, not a 'Softie. I work for no one. ;)

# September 5, 2006 5:55 PM

Miguel Correia said:

.Net framework 3.0 is a reason. What I mean is, yes you do get your pretty from Mac OS X, but what about not having to learn Objective C to offer that pretty in the form of your own applications?

# September 5, 2006 6:22 PM

Jeff said:

I think you're confusing the audience. Most people don't write their own apps. Heck, I don't write apps for a desktop OS at all, I write them for the Web.

# September 5, 2006 8:16 PM

Joe said:

Windows XP Pro = $199; Windows Vista Business = $199.

What's the big deal?

# September 6, 2006 2:33 AM

Remy said:

If you already have XP then XP = $0; Vista = $199

# September 6, 2006 5:59 AM

Joe said:

> If you already have XP then XP = $0; Vista = $199

Sure but how many people upgrade by buying a retail copy?  I'd say the vast majority of upgrades are covered by volume licenses, MSDN and theft.

# September 6, 2006 7:45 AM

Remy said:

The point I was making is that there doesn't appear to be sufficient reason to upgrade. Sure if you are buying new hardware by all means get the latest OS since your paying for it anyway.

# September 6, 2006 8:18 AM

Gabriel Lozano-Morán said:

We should get Vista for free. They are refactoring bad code and we should pay for it just because it comes with a new gui?

# September 6, 2006 12:14 PM

The Other Steve said:

When XP came out in 2001, I bought it for $199, but I also got a bunch of free stuff.  Like 512 Meg RAM upgrade, free Scanjet and maybe even a $50 rebate.  I don't remember now, but it turned out to be a good value.

The big question is whether I want the Business or the Ultimate?  I mean are the new media features compelling enough for me to care?  Do I still need or want to maintain my own domain at home?

And then as we learned with XP Pro, if you buy the OEM version you get it for about half the price of the upgrade.  So there's always the possibility of a computer upgrade.

# September 6, 2006 2:01 PM

Soroosh said:

Press F7 to shift the computer display to an external monitor

# September 6, 2006 2:50 PM

Ross said:

Maybe you can sign up for an alumni e-mail account?

# September 7, 2006 7:27 AM

Benny said:

I can not forgive valve this transgression of trust.  I am so angry that I let myself be tricked into this steam crap.  I'll have to spend a week in the registry cleaning this dung off my CPU.

# September 7, 2006 9:21 AM

MarV said:

Tankado that just can't work.

# September 7, 2006 10:48 AM

Sarah said:

I have a similar problem.  I have had the part resoldered once and replaced once, but it keeps breaking.  I am told that I have two options: Replace the motherboard (almost half the cost of a new laptop) or have them hardwire an external power supply jack (rather than the current internal one) into the computer.  Does that sound bogus?  I am tired of throwing money at this thing!

# September 7, 2006 7:09 PM

Frank Huang said:

TextBox email = (TextBox)TopNav.FindControl("EmailTextBox") as TextBox;

if (email != null)

{

   email.Text = "blah";

}

# September 8, 2006 2:50 AM

Dan said:

Have you ever tried openBC, similiar to linkedIn, but with more public details...  I bet facebook is similiar.

# September 8, 2006 10:46 AM

Dee said:

"Page.ClientScript" does not compile in the assembly

# September 10, 2006 3:44 PM

FransBouma said:

Heh, your blogpost was right above Pascal L's blogpost who said "Apple innovation is losing grounds very fast" :)

Apparently it's a matter of taste ;)

# September 12, 2006 5:42 PM

help.net said:

Jeff just to say I am an Apple fan ;-)

But I don't see anything new in the iTV, just another streaming box. Also a lot of people echoed that the box as it is now (and of course they can change their mind which I doubt if they want a release early 2007) will accept only iTunes store content, so clearly no other codecs. On my Xbox 360 today I can stream avi! But anyway that was not exactly what I was trying to say in my post, it was more about the lack of real innovation from a company I used to admire for their 'unconventional' way of thinking. But of course it's your right to think different ;-)

# September 12, 2006 9:34 PM

Jeff said:

But it's NOT just another box. What you're describing as a flaw is exactly the reason it works... it's idiot proof and works with iTunes. It also works with thousands of different video podcasts, your iTunes music, your photos (and iPhoto), etc. You can't forget that they already dominate 75% of the MP3 player market, and people like the system.

# September 12, 2006 9:58 PM

Tom said:

After  reinstalling OF on a whim i was shocked to see that i had to get steams permission to load each new section, what a load of bollocks!!

# September 13, 2006 8:10 AM

Jeff's Junk said:

Over the past few years, I&#39;ve written about career and happiness a great many times. (And honestly,

# September 13, 2006 2:24 PM

Chris Martin said:

I was going to post anonymously but, I decided that I don't care if certain people know this. It's my life and it's how I feel; I think that I should be honest.

Anywho...

I'm starting to feel that software development is pretty meaningless. Relax guys. I'm talking, "for me" here.

I'm in the same boat (sans revenue generating sites) and think I'm about at the end of the line with my development carrer. Many people think that I'm crazy for wanting to end my carrer because, they tell me, I've actually become a fairly decent developer over the last ~8 years.

There are so many things I want to do with my life and surprise, surprise; sitting behind a desk for 8 hours a day isn't one of them. I've come to the realization that I'm only enabling other people to live out their dreams. Not living my own. I'm seriously considering a huge career change as soon as  I can wrap up what's on my plate at the JOB.

Whatever path I decide to take, I feel it's important for me to not burn any bridges. I would advise to you the same

# September 13, 2006 8:34 PM

AndrewSeven said:

I for one really appreciate your frankness even if it isn't all cheery and nice. It make it feel more like community and less like the glee club. The people who are comfortable in a gleeb club don't really understand people who are profoundly self-critical.

If I had side projects that cound reliably generate enough revenue to pay the bills, I sure would not be sitting here today, I would be working on some ideas.

# September 14, 2006 9:04 AM

Scott Galloway said:

I'm asking this question myself having moved around to a few jobs in the past few years. I'm currently of the opinion that it's really about balance between personal and work life. I've done the whole 80 hour a week coding lifestyle thing and for a while it filled a void, my current job requires me to be a lot more driven and proactive in the kind of work I do (as opposed to having a fixed project and deadline). Having to 'think for yourself' is definetly an acquired skill and it took me a few months to get a grip on it. I have to say though that the easiest bit about developing is writing code for me, just zoning out for 8 hours is pretty satisfying but it really doesn't make me happier (I think of it like an alcoholic bender...at the time it's great but it doesn't change anything really).

I did seriously consider doing something totally outside of coding for a while but it's one of those decisions which would be really easy to make and hard to undo...believe me I switched careers about 8 years ago form Psychologist and part time coder to full-time coder and it wasn't at all easy.

So in short (or rambling length...whatever:-)) I have no idea what makes a coder happy (maybe a lap dance but that's horribly impractical), the closest I've ever seen in print to examining this dilemma is Microserfs by Douglas Coupland...which basically says 'get a life'...In the end though the best coders always seem to have the least life outside of code...and maybe that's the choice we all have to make.

Sorry for ther diatribe...I really should get my own blog going again...

# September 14, 2006 9:49 AM

Wim said:

Like you point out, the problem is to earn money to have food on the table etc. Think of it this way: imagine you won the lottery jackpot. Say 10 million bucks. We can all say we would sit on our backsides on a white sand beach drinking cocktails, but eventually you would want to start doing stuff. I feel that the stuff you'd want to be doing given the above scenario is the stuff that makes you happy.
# September 14, 2006 10:59 AM

Stephen said:

I also appreciate the honesty and "this is really what i think"-ness of your posts..  hey, it's your space, do with it as you please...

Anyways, on topic of what makes a developer happy.... i know i am extremely happy at my job and each and every day i walk into the door to my office it's going to be a challenging day learning new things, i couldn't ask for anything better to do with my work life.....

# September 14, 2006 2:28 PM

Boris Yeltsin said:

Thanks Frank, but that solution is quite ridiculous. Not your fault, but the LoginView concept seems broken IMHO.

# September 15, 2006 9:47 AM

Steve said:

Good read that is exactly opposite of this blog post

http://www.extremetech.com/article2/0,1697,2015836,00.asp

He's right in a lot of ways, most of that stuff is "catch up" or "old news"....

Not that i personally think that's all that bad a thing, "first" doesn't always, in fact rarely ever, mean "better".....  and i cannot wait for my new 80g iPod to get here on Tuesday  :-)

# September 15, 2006 11:49 AM

Jason Haley said:

Jeff,

I love the topic and how you present it, really personal and honest.  I think a lot of people are going through the same thing ... any way you could continue with a follow up post?  I'm interested in more of your thoughts ...

# September 16, 2006 11:55 PM

Jeff's Junk said:

I&#39;ve been in a coding slump for quite awhile. It seemed like I couldn&#39;t finish anything. Then,

# September 18, 2006 11:59 PM

J-Pizzie Lifestyle said:

# September 19, 2006 12:01 AM

farhan said:

My one year old HP Pavilion Laptop suddenly started showing bad power jack symtoms any one has a suggestion? please

# September 19, 2006 3:07 AM

Wim Hollebrandse said:

I know what you mean. I've started so many web concepts before, and never get around to finishing most of them.

I will blog about one I recently finished though, to do with photography...

As long as it is out there, and from then on everything becomes maintenance, support and adding in new features. Much more exciting then not having deployed yet! And when people are using it, it's a great incentive to improve.

Agile to the max!

# September 19, 2006 11:43 AM

Scott said:

Jeff, one comment on your Nerd Lifestyle blog - make the font larger. I'm getting old. :P  Seriously, this blog is much easier to read than that one. It looks like you used a different font or at least a different sized font. The one on this blog is the minimum you'd want, the one on Nerd Lifestyle makes my eyes work too hard. And that's on a mac - it hurts even worse in windows using IE.

Otherwise I'm enjoying it, hence my constant stream of comments.

# September 19, 2006 1:39 PM

Tiffany Crowe said:

I loved the beastie boys six years ago, i love them today, i will ALWAYS love the beastie boys

# September 19, 2006 2:39 PM

Ramesh said:

I am using Component Art Grid control in my project. I have defined a server template in a Hierarchical grid in which i have used a DropDownList control. My requirement is that Whenever I change dropdownlist, the record in the down level grid should get updated. My client doesn't want to use any edit item template to edit and then update. He want this to be happen, in the present item template only. When I try to achieve this, I can't find any help or resource for this components from web. Can anybody help me out for this?.

# September 24, 2006 9:53 AM

Scott said:

I predict they open this thing up a lot more, and then the .edu kids will start bailing. I have an account through my place of employment, but I've barely looked at it. To be honest, I don't find the concept all that compelling. But I'm also about 22 years removed from being 18 and in college.

# September 25, 2006 6:48 AM

sean said:

Is that hair on the guy's arm?  Or a sweater?  

# September 25, 2006 2:44 PM

Jeff said:

I'm pretty sure that's hair.

# September 25, 2006 2:59 PM

CraigG said:

I always wondered what he did before the Wonder Years. Oh c'mon, it's close enough.

http://www.bonusround.com/book4-4/images/Blue_4167b.jpg

# September 25, 2006 4:51 PM

hayden said:

quick question: does anyone know how the localhost will work?

Currently we have several projects in a folder "c:/inetpub/www_root/projexample" which i can preview through the browser with localhost/projexample

do i need to store this in the macs web server/documents folder?

essentially i want to be able to see the project on both mac and pc browsers using localhost.. is this going to be possible?

clear as mud right?

# September 27, 2006 7:18 AM

Jeff said:

The virtual machine has an IP address (look at the VM settings). Use that, not localhost.

# September 27, 2006 8:54 AM

Cindy said:

Fun piece, but how could you forget those precious niche sites that cater specifically to the nerdy/brainy crowd, like Intellect Connect: http://www.intellectconnect.com?      

Match and the other biggies have a cross section of all types of singles, but for pure, unadulterated nerdiness, go to the sites that specifically hunt those folks down. :)

# September 30, 2006 12:54 AM

Jeff said:

Honestly, do you want to marry someone just like you though?

# September 30, 2006 9:50 AM

Michael said:

I'm using LinkButton almost exclusively as well. Unfortunately Scott's suggestion only works in IE and not Firefox because there doesn't seem to be a Click() function on HTMLAnchorElement (this is what LinkButton are rendered as). Sadly looking at the W3C docs it looks like it isn't a requirement. Only HTMLInputElement is required to have that function.

# October 2, 2006 9:53 AM

Marc Brooks said:

Have you considered using FolderShare?

https://www.foldershare.com/

# October 3, 2006 1:04 AM

Pooran said:

Check now.. u can join facebook with any account.. its open

# October 3, 2006 1:34 AM

Jeff said:

Yes, if you read more recent posts you'd see that I know that.

# October 3, 2006 9:02 AM

Stephen said:

Hmm, as i read this blog post i was thinking "this computer sounds like it costs an arm and a leg"... surprisingly i see it's only an arm ($2500)... nice purchase...

I'm waiting until the notebook's come in Core 2 Duo, then i may pull the trigger on my first Mac purchase

# October 3, 2006 11:12 AM

Jeff said:

I don't remember where I saw it now, it was a mainstream PC rag's Web site, but the difference in performance between Core and Core 2 isn't enough to merit waiting. Do it now. ;)

# October 3, 2006 12:23 PM

vikram said:

hmmm... Same with me Jeff. I have learned so much reading these blogs and article that I like sahring my knowledge with the comunity and hence my website and blogs

# October 4, 2006 12:39 AM

re: MVP not said:

why would you want to be an mvp? all you do is whine about ms. go play with your new mac.

# October 4, 2006 5:43 AM

Scott said:

Why not just get a firewire external hard drive and use SuperDuper! or something to back up to? Once Leopard comes along, the external drive should work great with Time machine anyway.

# October 4, 2006 4:37 PM

Scott said:

Some of the MVP's have been real helpful. The ones who dwell on their title tend not to have been. Overall, I'm not a huge fan of the whole MVP thing. It seems to go to people's heads.

# October 4, 2006 4:38 PM

Jeff said:

Because that doesn't help me if my house burns down.

# October 4, 2006 6:45 PM

Andy said:

Just to add: it has to store such a high capacity from the outset because the neighbourhoods are dynamic from the beginning (obvious i guess).

# October 7, 2006 5:25 AM

Harry Evan said:

Random stoppages - you gotta love it.  I've just had to reinstall EVERYTHING after the Athlon 180+ I'm using as the music server stopped in the middle of a tune.  80GB IBM desk star was clicking (oh boy!) so I got a new 120 GB Seagate and waded in.  After I got by the bios flash and the chipset (and every other thing that would prevent the "normal" W2K OS install to this size hard drive).  I made the mistake of downloading iTunes for Windows 7.  Things haven't been right since.  I cleaned that off, saw a post about always installing QuickTime by itself before hand, and found iTunes 6.0.5.  So I installed QT from an adobe disk, then installed iTunes 6 and it was okay - for about 20 minutes.

I never know when it's going to stop.  I have the same mp3 files at work (and I reloaded from that external HD, just obe sure it wasn't corrupted files) but it still stops whenever it wants to,  and God forbid, don't be online when it happens - the noise just might take out a preamp or amp or speaker set somewhere.

I'd like to know why, if anybody comes up with a cure...

# October 9, 2006 3:48 PM

Stephen said:

This news might apply to your new computer:

http://feeds.engadget.com/~r/weblogsinc/engadget/~3/35313828/

# October 10, 2006 9:15 AM

Gir said:

arrgh, now its just showing star trek 24/7

# October 10, 2006 5:56 PM

Mark Hildreth said:

Man, that namespaces thing is a real gotcha.

# October 12, 2006 11:23 AM

Steve said:

I agree with speed of development being as good or better with VWD and ASP.NET 2.0. My biggest complaint with Rails is that it forces a lot of very stringent requirements on how you build your application. If you don't structure your database a certain way (no sprocs, some column naming constraints, constrained key support) then a lot of its features don't work well or sometimes even at all. If you don't keep your html UI relatively simple, things start to get complicated (basically classic ASP inline code maintence). If you have a lot of code in your application things run slow. You have to "stay on the tracks" or you will literally "fall off the rails". What I love about .NET is I can extend/adapt it however I want and I never feel like I am hitting a wall. I also have never run into a performance issue or an inability to connect with a legacy database that has limited my ability to build even the biggest of applications. Rails does have a number of nice features that the default .NET 2.0 install doesn't have today. A nice ORM data implementation being the big one in my book. What is cool is that there are now a number of libraries for .NET that provide equivalents today. Rob Conory's SubSonic project is a good one to look at: http://www.codeplex.com/Wiki/View.aspx?ProjectName=actionpack Ayende is also working on a nice ActiveRecord build provider for .NET: http://www.ayende.com/Blog/ActiveRecordRocks.aspx What I can't wait for is the LINQ support that is coming with .NET next year. That is going to make data access sooo much better with .NET then what we have today, and much richer then what Rails provides. It also doesn't have the annoying limitations of Rails' activerecord implementation.
# October 12, 2006 1:10 PM

Will said:

Rails doesn't force anything on you. IF you want to take advantage of the things that make development in Rails fast, easy, and convenient, then you structure your database tables, column names, etc. accordingly. Rails calls this configuration by convention. That said, you can override *any* convention you like. Its a convention, NOT an absolute. Yes, you will probably have to write some more code to accomplish this, but how is this in any way different that ASP.net (except that Ruby allows you to redfince the methods of a class at any time, in any file... no extending needed)? If you don't like the html a ceratin ASP.net control spits out, you have to write a control adapter to override the default. Same concept, different implementation. Plus, now with the composite_primary_keys plugin and the uuid library, you have support for for GUIDs and composite primary keys. Also, there's nothing preventing you from creating sprocs in your db. You just don't have a Ruby-ish way of creating them in your migrations as you do table creation.
# October 12, 2006 2:43 PM

Colin Ramsay said:

ASP.NET, especially the disaster that is ASP.NET 2.0 is an overcomplicated attempt to bring Windows Forms development to the web. Rails at least has simplicity in   favour.

# October 12, 2006 2:50 PM

Jeff said:

ASP.NET is a disaster? In what universe?

# October 12, 2006 3:07 PM

Jon Galloway said:

I agree. I watched the demo videos for Ruby On Rails and thought it looked like a lot of work. I guess it's a step up if you're used to PHP or "classic" ASP, but there sure seems to be a lot of tradeoffs - you have to follow a lot of conventions, you have to run a lot of obscure command line applications, you have to mix code with markup, and you have to give up all those ASP.NET server controls. Oh, and you have to learn a new language. Sure, it's elegant or something, but learning a new language to use a new framework isn't likely to pay off too quick in terms of productivity if you actually know how to use ASP.NET. Some cool things that Ruby On Rails does offer: Scaffolds - quick and dirty admin screens bound to your data. Grid view and detail edit view. Migrations - since Ruby On Rails manages your whole application including data accesss, it has support for automatic database schema changes between specific version. Say you're on version 5 of the DB and I've since removed a table, added twelve columns, and set a default value for an existing column. I'm on version 9. When you run the migration, it steps through all my changes to bring you up to version 9. If you don't like it and want to go back to version 5, the backwards migration will undo all the changes. Migrations seem like they'd encourage more ruthless refactoring at the database level. As I've said on my blog, I really like SubSonic because it brings some of the benefits of Ruby On Rails into the ASP.NET world without throwing out the good stuff in ASP.NET. You can use it to get up and running quickly, then jettision it later if you want without having to rearchitect your project.
# October 12, 2006 3:48 PM

Will said:

Jon,

"Obscure command line applications"?  You mean rails, script/generate, script/destroy, script/console, script/server, script/breakpointer...  I bet you could make an accurate guess as to what exactly those "obscure commands" do.  They are no more obscure than csc.exe, or msbuild.exe. They are the tools that come with the framework to work within the framework. Sure, you can push a button in VS to get a nice dialog to access the settings for those.  Thats what and IDE does, and thats what Radrails and Saphire in Steel do, too.

You absolutely do NOT have to mix code with markup. In fact, I would dare say that your are encouraged to put far LESS code in your rails views than in your aspx files. In Rails, your code SHOULD go in your controllers and models.  But there's nothing to stop you from putting them in your view.  Just like there is nothing forcing you to define your SQLCommends for a GridView in your code behind. You're free to declare these in your aspx file, if you so please.  Its about discipline, weather it is Rails or ASP.net.

Learning a new language to use a new framework, at least for me, has paid off just as quickly weather it was C# and ASP.net or Ruby and Rails.

# October 12, 2006 4:18 PM

Scott said:

I don't think Colin Ramsay has actually used asp.net 2.0. The only thing I don't like about asp.net 2.0 is the compilation model, but that can be fixed. At least it *HAS* a compilation model, unlike RoR. Asp.net 2.0's only real problem is that it needs LINQ now, not later. But overly complicated? The framework is big, yeah, but you don't have to know all or even most of the framework to be very productive with asp.net.
# October 12, 2006 4:35 PM

Plip said:

I think with enough playing around and knowledge you can make Rails as effective as ASP.NET with even the most hardened ASP.NET guys and gals. I love Rails and the way it's pushing other platforms along, ASP.NET is learning from Rails and that's a good thing. :-) Look at IE, the best thing that ever happened to it was Firefox.
# October 12, 2006 5:58 PM

Ian Cooper said:

I've blogged about Rails a number of times and I think that its popularity stems from a number of directions: Growing 'barrier to entry' around the Java framework. The Ruby language is smalltalk-like which appeals to many of the 'cool kids' and is dynamically-typed which is flavour of the month. It accepted and packaged in a number of features - O/R mappers, unit testing, build scripts that while available for other platforms have not been so vendor pushed. That said its offers less than, say Foxpro, did functionally, but it is targetted towards people who have previously looked down on RAD environments. The tragedy is that just as MS has decided to be 'grown-up' to avoid any more Vb ridicule the 'grown-ups' have decided 'being kids' is the way forward. MS could capitalize on that movement and certainly LINQ, BLINQ, and if someone has the guts for it pushing VB back to RAD look like postive reactions. MS does need to own this space tnough, IMO, it's where they have been leaders in the past.
# October 12, 2006 6:39 PM

Jigar said:

"Asp.net 2.0's only real problem is that it needs LINQ now not later" You missing AJAX, Rails has one of the most beautiful integration of AJAX I have seen so far.
# October 12, 2006 6:57 PM

Jeff said:

http://atlas.asp.net

...That's pretty AJAXy to me, and idiot proof if you already get ASP.NET.

# October 12, 2006 8:16 PM

Jigar said:

"...That's pretty AJAXy to me, and idiot proof if you already get ASP.NET." Unfortunately it’s still not ready for production probably we are still two months away from release I am asp.net developer by profession, I tried rails just out of curiosity and from what I have seen so far in Rails it looks promising for at least small to medium sized application.
# October 12, 2006 11:32 PM

Jeff said:

Not ready for production? Is http://local.live.com/ not in production?

# October 13, 2006 12:03 AM

ian said:

I think Rails is popular because a large number of people have an almost religious fervour that prohibits them from using anything by Microsoft.
# October 13, 2006 4:36 AM

Bob.Yexley.Net said:

This is ridiculous . I mean, seriously...I'll admit it, when it comes right down to it, I'm a Microsoft

# October 13, 2006 10:07 AM

Scott said:

Hmmmm, what would you think of a port of Django to IronPython? re: learning Ruby. It's a small language and the syntax makes a lot of sense. I use Ruby(under linux/OSX) or Python(under windows) instead of VBScript or Bash script for day-to-day one-off and admin scripts. Rails is great for prototyping. Although I'm considering writing a few upcoming small appliations using it simply because Visual Studio 2005 is a disaster. It drove me back to EditPlus development.
# October 13, 2006 12:06 PM

Jeff said:

I'll never understand that either, how VS 2005 is a "disaster." Compared to what? I use it every day, and it's not very frequent that the IDE gets in the way of development.

# October 13, 2006 1:34 PM

Scott said:

Let me clarify that. In my experience, Visual studio 2005 is a disaster when doing Winforms development. I haven't had any problems using Either Web Developer Express or VS 2005 for ASP.NET development. A few things I've had happen to me while using VS 2005 for Winforms development: 1) columns in the DataGridView are re-arrainged when opening the form in the designer. 2) Runtime errors when using generated ST datasets with generated SQL and sprocs. 3) VSTS only: "Run tests" button is disabled after running and I had restart the IDE to get it to come back. May be something I was doing wrong, but it wasn't intuitive. 4) "Cannot find Microsoft .NET 2.0.blah blah" when compiling with ClickOnce security enabled. Known bug. 5) Set DataGridView column visible=false, compile, run, column shows up in DataGridView. Have to re-set column visibility after databinding. 6) When addding queries to existing table adapters, I sometimes get an dialog box showing an error in the designer telling me that it can't load the connecion string. Even though there is only one connection string defined in the project and it has the same name as the connection string it says it can't load. IMO, Winforms 2.0 was left by the wayside in the tidal wave of WPF development and it shows in the IDE support.
# October 13, 2006 4:24 PM

Jigar said:

"http://local.live.com/ not in production?"

Use of atlas at live.com does not mean any thing, I don't think that I can convince my superior to use software which still going beta stage(in fact its still pre-beta) for production site

According to Scott Guthrie we are still two to three months away from release.

"Atlas" 1.0 Naming and Roadmap

# October 16, 2006 7:50 PM

Jeff said:

I didn't ask you for your opinion, I asked if it was being used in production. You can go on all day about whether or not you think it's ready, but you haven't used it, so your opinion means little to me.

# October 16, 2006 7:55 PM

Barnett said:

Atari suck(ed) anyway... but yeah, this one man band should take them to the cleaners.

# October 17, 2006 11:28 AM

Brent said:

Don't get your hopes up on Team System.  We've been using it on our project and it's another steaming pile.  I can't tell you how many changes have been lost because the system claims to check it in, but doesn't.  Then when get latest is called, it overwrites the changes with the old version.  On top of that, some devs can't get latest without choosing to get specific version and overwrite; even then, it doesn't always get every file.

# October 17, 2006 12:01 PM

ScottGu said:

Have you looked at this provider implementation I pointed to here: http://weblogs.asp.net/scottgu/archive/2006/10/13/Tip_2F00_Trick_3A00_-Source_2F00_Documentation-for-Simple-ASP.NET-2.0-SQL-Providers-Published.aspx (the direct URL to the project is here: http://www.codeplex.com/Wiki/View.aspx?ProjectName=AltairisWebProviders)

It shows how to build a simple Membership Provider that has total control over the schema layout.

If you are trying to integrate on the backend with an existing schema you might find it easier to plug-in with this provider implementation.

Hope this helps,

Scott

# October 18, 2006 3:48 PM

HumanCompiler said:

"I'm done trying to be clever and use ASP.NET to its fullest just for the sake of doing so. Maybe I've been drinking the 37signals Kool-Aid, but more simple is better."

We've found the same thing overall.  If you're building something specific, make it specific, don't generalize every piece of code, etc.

That said, I'm curious about the rest of your comments about membership.  We had to change how profile worked to make it easier to query (i.e. our own profile table with all the fields as real fields instead of all clumped together), but we've found membership overall to be great.  What specific problems are you having?  I understand your problem with joins, but I'm curious why that can't be solved in SOA by retrieving user information seperately from your main query (that's what we do).  Anyway, I'd love to hear what issues you're having.

# October 18, 2006 3:56 PM

Jeff said:

Human: Imagine for a moment you're building a Facebook clone (or any other social type of site). Your "friends" exist as a number of User ID's in your database. If this was a product where you wanted to give others the ability to roll with their own Membership provider, how do you turn that list of ID's into a list of names in a provider that you don't know anything about? Membership has no way to take that data set and match it with its own data. Even if it did, it would be much slower than a simple join.

Scott: The provider's implementation doesn't really matter. You're still stuck with those boundaries unless you want to make your provider dependent on the bigger picture schema of your application.

# October 18, 2006 4:19 PM

HumanCompiler said:

"it would be much slower than a simple join"

Agreed, but SOA could still fix the problem (even if a little slower).  Still though, implement caching and I don't really see a big problem.

I'm curious about your takes on this, because we're about to do the same thing, where our membership is completely seperated from all the data (two different sites with a single membership) and we plan on using asp.net membership.  I still think SOA is the answer for this type of thing though.  Maybe we'll just have to agree to disagree.  ;)  I just don't see how not using membership and rolling your own will really be an different.

# October 18, 2006 4:34 PM

ScottGu said:

What I'd typically recommend for systems like a PopForums where you want to be able to easily integrate it within any application, would be to create your own Friends/FriendRelationships tables that you use to manage people relationships specific to PopForums, and have those relate to the application's authentication using a username string.

This avoids you hard-coding in a specific user management implementation, and also means that you can easily use it for both Internet (where you'd do forms-auth) and Intranet (where you'd probably do Windows-auth) solutions.  I'd give this advice regardless of whether you use the Membership provider API or not.

If you wanted to integrate with the Membership API and perform richer database JOINs on the backend, one option to look at is to use the ProviderUserKey property that the Membership API exposes for each user.  This typically exposes the PrimaryKey value that the underlying membership provider is using to store the user within a database.  

You could use this as the relational key if you wanted to setup PK/FK relationships between your tables and the user table, as well as to perform JOINs or searches on the backend.  It also guarentees uniqueness (whereas in theory a user management system allowed someone to create, delete and then re-use a username - the UserKey would always be new).

For example:

// Create User

MembershipUser member = Membership.CreateUser("scott", "password");

// Retrieve PK from Membership Provider table

object userKey = member.ProviderUserKey;

// Lookup the key for another user via the membership API

object userKey = Membership.GetUser("anotheruser").ProviderUserKey;

// Lookup a Member by their ProviderKey

MembershipUser member = Membership.GetUser(userKey);

This enables you to maintain a provider based user abstraction, while still getting lower in the schema to perform more advanced scenarios.

Hope this helps,

Scott

# October 18, 2006 4:59 PM

Wim said:

I'm not using the membership API's for my upcoming forum product either.

Besides the points already being mentioned, I'd want people to easily integrate the forum software with their existing authentication mechanism, even if that doesn't use the ASP.NET 2.0 membership functionality.

# October 18, 2006 5:22 PM

Gabriel Lozano-Morán said:

Imho you shouldn't use the built-in membership provider as a golden hammer. If the features you need can't be find in the built-in membership provider just consider implementing the Service Locater pattern yourself for your needs.

# October 18, 2006 5:47 PM

CodeSniper said:

Amen to the original post.

<rant>

Most of the problems come when you want to do anything other than what is shipped in the box.  For example, if you want to write your own membership provider for a different datasource, you cant just simply plugin a different IDbConnection, IDbCommand, and specifiy a different CommandText for each method.  Instead, you have to override or rewrite the entire method.

This is fine for some of the simpler methods like GetUser() et al.  But becomes problematic around login, CreateUser, and ChangePassword because you are now 100% responsible for doing the right thing(s) for security such as password hashing, salting, and encryption.  Also, you take on responsibility for cookie management and any caching.   Ultimately, this raises the bar significantly for the average developer wanting to simply connect to a legacy data source, xml file, or a simple Oracle Db.

And in the cases where the developer DOES decide to take-on this endeavor, 90% of the examples I have seen are complete failures around proper security.

And, to make things worse, much of the original SqlMembershipProvider functionality around this area is only available via internal sealed classes that are only available if you want to risk reflection or Reflector.

This is just the tip of the iceberg...dont get me started on the RoleProvider and its inherent complexity to extend - or better yet, lets talk about what happens  when you DO extend any of this stuff, and you can nolonger use all the nifty Login, CreateUser, SiteMaps, and other controls that depend on Role & Membership.

When ASP.NET 2.0 was shiny and new, I thought it was awesome, but after several projects where I have had to apply numerous hacks for even minor extensions, now I too share the delight in knowing that its all just a dream implemented by MS interns...

</rant>

# October 18, 2006 7:31 PM

Daniel said:

I have to say the times that I've felt like this, I've figured out it really wasn't .NET's fault- it was mine.    I've been writing a custom membership and role provider against a client's horribly designed and overly complex security database.  By constraining me to overrideing a narrow set of methods, I've been able to focus on the important things. (And yes, I can still user Login, Sitemaps, authorization, etc.)  If this system can be used, then pretty much anything can be. The best part is this can be used to wean them off of their crazy system at some point in the future.

This is the converse of what CodeSniper's saying.  He sees this as bad- the developer could fail at properly securing the custom provider.  Well, if that's the case then the developer will certainly fail when trying to roll their own.

IMO it's the best of both worlds: out-of-the-box system for simple projects, full customization for others.  Not trying to be smug, but I'd really exhaust all the resources about ASPNET Providers before chunking them.

# October 18, 2006 8:26 PM

Jeff said:

Human: SOA doesn't work well in anything that requires significant result sets that are derived from other sets of data, like the example of "match these hundred ID's with a table of users and return those complete records." In a non-real-time situation that's not bad, but in a Web app, the performance just isn't great no matter how you implement it. (It also happens to be above the heads of some of my audience, which is another consideration.)

Scott: I did think about what you suggest, but I'm not comfortable with data that is totally unaware of its parent data (i.e., user names).

Gabriel: Again, which provider you use, whether your own or the built-in, doesn't matter.

Lance: Right on brother.

I'm not saying that Membership is inherently bad, it's just not for me in the sense that it's too much work to implement when you start doing "clever" things with your app.

# October 18, 2006 8:37 PM

Tyrone said:

Scott,

Looks like maybe a whitepaper or a blog post is needed about how one would go about finding the best solution of using the built-in membership database along with custom membership tables using the ProviderUserKey as the linker, like you suggested.  Maybe this would clear up some of the issues.

# October 18, 2006 10:27 PM

Friend of yours said:

IF YOU CAN GET ME THOSE VIDEOS AND INTERVIEWS WITH ALL THOSE BRIELENT PEOPLE THAT WORK WITH MICROSOFT OR ELSEWHERE THEN I WOULD STOP GOING THERE START COMING THERE. I MEAN WHAT IS YOUR POINT? IT WORLD HAS ALWAYS MISSED THIS KIND OF COMMUNITES, CHANNLE 9 FILLS THE GAP.

# October 18, 2006 10:28 PM

Jeff said:

Way to comment on something more than two years old!

# October 18, 2006 11:12 PM

Thomas Tomiczek said:

You pointed that out very nicely - there is a big problem with the holw SOA / Provider approach.

It still makes sense form the OTHER side. We use a CMS (we actually maintain and market one), and for us the provider model means we can expose our user database to ASP in a standard fashion. This Scenario is 100% the other way of what you did - but it allows people to just put up a page that is not CMS managed, and have access controlled from the CMS' user database. It means all the standard controls can work.

But the moment you try to integrate multiple services from an SOA approach - you basically are dead, performance wise. It could work if SOA wout run around an object protocol (with a standardaized interface regardless how many objects you really use), and would have a query implementation. But as SOA works around function specific methods...

...any retrieval that needs to merge data from multiple services, even on the same machine, is vastly inferior from an integrated O/R mapper object model, which can go down to the database into what can be a 64kb large complex sql statement. The SOA alternative has to pull the data from different services (hoping there are at least mass-retrieval methods available, not just "get me ONE name for a user) and perform a client side join.

What happend to the notion of "layer interfaces have to be non-chatty"? It is forgotten.

# October 19, 2006 2:39 AM

Jeff said:

In most cases, the database already *is* exposed in a standard fashion too... System.Data.SqlClient! :) Last year I came into a "fixer upper" project where everything was a Web service. The app and the SQL Server were on the same box! SOA makes sense when you have different systems that normally speak different languages, but I have no idea what that was about.

# October 19, 2006 9:34 AM

Jeff's Junk said:

In my last post, I talked a bit about how trying to use the Membership API, with my own provider, was

# October 19, 2006 9:57 AM

RR said:

Is it any surprise? This is .net hud we're talking about here...

# October 19, 2006 10:56 AM

FransBouma said:

Our upcoming free forum system which was started back in 2002 (and now in the process of being updated for asp.net 2.0) has its own membership/role system as well and I looked at the ASP.NET 2.0 version and I didn't see any reason to rip out our own role / membership system for the ASP.NET 2.0 one, especially because what's in place works fine and is easily extensible.

However it depends on the design I think if the membership / role system is really not usable with a data-access layer. For example, in a search routine, you can push down from the application core the list of forums a user can see based on the role rights the user has, which where loaded when the user signed in.  You can then use that list of forums to filter out the threads in forums the user doesn't have access and therefore the membership data can be used without needing to join.

IMHO joining with role data to perform any action is too slow and inefficient as you know way before that if the user is able to do things or not and you can bake in limitations on forums and threads for example through filters based on the role rights read for the current user.

# October 19, 2006 11:53 AM

Travis said:

At the price of Vista.  And the performance LOSS while playing games.  And now this?!?  

I'll stick to my "already over bloated" copy of XP.

# October 19, 2006 1:08 PM

someone said:

Don't find the reason why i am reading your one liner blog with a link to smebody else blog

and also i don't see why that 6 points become the six reasons for not buying the vista

# October 19, 2006 1:50 PM

Jeff said:

I guess if you're really "someone@microsoft.com" then you're part of the problem, eh?

# October 19, 2006 3:56 PM

john said:

what an idiotic article, referenced by an idiot!

# October 20, 2006 12:07 AM

Jeff said:

Well thought out, intellectual comment.

# October 20, 2006 12:24 AM

vikram said:

Dont really see a reason in both the article and the comments

# October 20, 2006 1:11 AM

Jeff said:

So everyone is OK with these licensing agreements? Phoning home, can't transfer to a new machine, revocable media licenses, etc.? No wonder they can get away with such ridiculous terms.

# October 20, 2006 9:18 AM

Karl said:

BREAKING NEW ALERT!!

HOLD THE PRESSES!!!

RECEIVING TRANSMISSION:

CAPTION: Company living up to it's responsability to shareholders.

Confirmed reports on the internet have uncovered a campaign of terror by one of the largest companies in the WORLD. The acceptable license agreement which'll accompany Micro$oft's fortcoming operating system, Vista, will be...well, evil. Micro$oft, which is well known for it's use of rabbit blood throughout all campus printers, is said to have hired the best legal minds to finally quash all rebellion and assert itself as supreme leader.

This legal team is said to include: the Emperor, Mr Burns, Dr Evil, a ghola of Napoleon, two Formics and The Joker.

Specifically, the license agreement will help protect copyright laws and intellectual properties. This outrageous decision puts Micro$oft in a unique position: doing exactly what companies have been doing for countless of years.

# October 20, 2006 9:43 AM

Jeff said:

You're clueless. When companies sell product that doesn't serve the customer's needs, they fail. The only reason Microsoft can continue to get away with it is that they have a monopoly. Fortunately it's slipping in the OS department, but clearly they're still not interested in listening to their customers. Again, it's sad that one part of the company can get it while others don't.

If I pay a few hundred bucks for a software product, I think it's a reasonable expectation that the company is not going to keep bugging me about it or restrict what I can do with it. If I want to keep putting it on new machines, provided it's only one machine at a time, I should be able to do so because I paid for it.

So if someone can come up with something better than a lame attempt at humor or a one-liner, with a point-by-point rebuttal as to why the terms outlined in the linked article are OK, knock yourself out.

# October 20, 2006 9:58 AM

Dirk said:

Heck, I agree with every negative comment above, STEAM is full of crap!

*Oh it's just there to stop piracy*..... WHAT???

Heck it's gonna stop players from playing thats what.

Great job when trying 4 times to download the demo with steam, crashing 3 times at 30% and something, then finally when its loaded/installed, it freezes.

Great *** Valve.

# October 20, 2006 12:23 PM

Wim Hollebrandse said:

I totally agree that when I pay (a fairly steep amount) for a Vista license (I won't for a while, that's for sure), I would like to be able to transfer it from machine to machine, and to be able to upgrade my hardware without any hassle or having to phone up Microsoft support to get the copy reactivated.

It's all about trusting your customers. Let's leave it there.

# October 21, 2006 6:39 PM

Jon Acord said:

I'll give you eight reasons not to buy Vista:

1. UAP. User account protection. This annoying feature will have you answering yes or no questions endlessly until you put it out of it's misery in user accounts. (Turn it off for God's sake). The bad news, then, is that UAP is a sad, sad joke. It's the most annoying feature that Microsoft has ever added to any software product, and yes, that includes that ridiculous Clippy character from older Office versions.

2. The 'Aero Look'. Another annoying feature. Why? Every single time I open a program Vista informs me that it is switching to basic windows. The screen 'pops'. This is very disturbing. (I have tested this since it was named 'Longhorn'.

3. Vista requires roughly 3 times the RAM that XP uses to do the same thing. Unless your PC is at least 3 GHz with 2 Gigs of RAM it'll move like molasses in the wintertime.

4. The price. WHY is it so over priced? The upgrade to Vista Ultimate alone is listed at Amazon.com for $259.00.

5. No access to basic windows files. I am locked out of folders like 'My Documents'. Microsoft has decided that the average User is too stupid to allow access to certain “Windows” files. This is insulting. I am offended. I know security is an issue and all, but locking a person out of their own document files is not the answer. The User is locked into a Roaming profile, thus they are disallowed access.

6. Broken promises

Windows Vista was going to include a completely rewritten file system, based on SQL Server and once called Storage+. Later renamed to WinFS, this file system was downgraded to a "storage engine," meaning that it would, in fact, run on top of the decades-old NTFS file system. Then WinFS was stripped out of Windows Vista because the performance was so horrible.

7. The pain of migration. And why not just stay with Windows Xp? At least all of my programs work. Think: what big advantage are you getting? Security? I don't know...with a good Firewall and anti-virus you're all set.

8. EULA.  The EULA on a retail copy now states that VISTA can only be activated twice.  If I decide to build a new PC a third time, Microsoft in effect is telling me to shell out another $400.00 for Vista Premium.  My original disc becomes a very expensive coaster.  XP (and all previous WINDOWS) allowed a retail copy to be moved as many times as you wished.  I like to upgrade to the latest hardware.  In the five years I have owned my retail XP, I have gone from the original P3  P4 2gHz* P4 3gHz  P4 3.2gHz*  dual Xeon 2.4gHz*  dual Xeon 2.8gHz  dual Xeon 3.2gHz*  dual Xeon 3.4gHz (64bit)*.  (* are new motherboards too.)  That’s 8 different processors and 6 motherboards.  Oh and several new hard drives along the way as well.  With Vista, I would be stuck at the P4 2gHz.

# October 22, 2006 10:21 PM

dj said:

In Reply To Jon Acord:

1) UAC is not designed for people who install software regularly, modify files and so forth.  Its desing intent it to protect uninformed users from themselves.  While this is feature is presented in an annoying way, its function is actually quite admirable.

2) First of all, that is no longer the case with 90% of the programs available right now, and won't even be a factor in a year from now.  Not all 3rd party apps support Aero, so it defaults out of it when those programs are opened.  

3) That's simply not true at all.

4) Okay, you got me there.

5) That also is not true.

6) On this, I am in total agreement with you.

7) Exactly.

8) This whole deal regarding the EULA is a distortion of the truth.  MS hasn't changed the EULA, they've simply clarified it, and while I don't agree with it in the first place, to say that they're changing it now is untrue.  Sure, the agreement is crappy, but its nothing new - you can still upgrade your PC as you always have, only now you will have to place a call to MS a couple times a year or so.

# October 24, 2006 8:09 AM

Mladen Mihajlovic said:

Have you ever posted it as a bug?

# October 25, 2006 3:52 PM

FransBouma said:

I think it's some extension or something. I never ever had this (and I type a lot in FF textboxes ;)), however my wife runs into this every day. We too haven't found what causes this, or what prevents it from happening on my machine.

# October 25, 2006 3:55 PM

Wim said:

Can you reproduce it on the same web page all the time? Or does it seem intermittent?

Would be interesting to investigate a little more and then post the details.

# October 25, 2006 3:55 PM

foobar said:

Is that bug still there?

It was claimed to have been fixed:

https://bugzilla.mozilla.org/show_bug.cgi?id=220900

Ah well.

# October 25, 2006 3:57 PM

Jeff said:

I'm with Franz. I can't predict when it will happen. It appears totally random.

# October 25, 2006 4:06 PM

Daniel Auger said:

This bug has plagues my workstation at work, but I don't remember it ever happening at home. I usually have the two machines on the same version. I do not use any extensions. It is intermittent for me. HOWEVER, I have yet to see the bug rear its head in 2.0.

# October 25, 2006 4:32 PM

James said:

I ran into the same problem when typing in a textarea earlier, and this helped fix the problem. ' and / will still bring up the find dialog, but it shouldn't happen anymore when you're typing in a textarea/box

open about:config in firefox, and search for find. I changed..

   accessibility.typeaheadfind.flashBar user set integer 0

to...

   accessibility.typeaheadfind.flashBar default integer 1

# October 25, 2006 6:27 PM

SelfishGene said:

Is anyone going to bother trying this out with an online demo?

# October 25, 2006 7:40 PM

Anatoly said:

It works just fine (IE7)

# October 26, 2006 3:18 AM

ozczecho said:

hmmm..I have been using FF for a long time and have never come across it. It would be annoying though...

BTW, gee I love the spell checker in FF 2.0 :-)

# October 26, 2006 4:14 AM

Mihir Solanki said:

Just tested, works with FF,IE,Opera and Netscape. Thanks for posting it.

# October 26, 2006 6:12 AM

Yong said:

Works great in FF. It does not work in IE6 (XP SP2)

# October 26, 2006 7:52 AM

Jeff said:

Works fine for me in IE6/SP2. And Safari even. :)

# October 26, 2006 8:57 AM

Luke said:

I struggled with this a little while ago and wrote up a short tutorial: http://luke.breuer.com/tutorial/javascript-modal-dialog.aspx

I know it works on IE 6.0 and FF 1.5; I'm not sure about Opera or Safari.

# October 26, 2006 1:30 PM

Rob Howard said:

Grrrrrrr.
# October 26, 2006 4:20 PM

learnerplates said:

I've been playing around with this myself and got stung with a namespace issue.

Here's what I learned

I put the resources into a Resource subfolder in my Custom Control project. My resources are in subfolders of this Resource subfolder.

I then added the resources to a new Resource file using the resource editor (I thought this was required, not sure of the benefits of this besides the ability to use a Resource manager class or something to access the contents, please let me know if it's required in this case).

Even though the resources are in the Resource file, .resx you still need the full path to the resource.

e.g.

My resources are in

<project>/Resources/javascript/script1.js

<project>/Resources/javascript/components/script2.js

You must use the full path to reference

AssemblyInfo.cs

[assembly: WebResource("WebControlLibrary.Resources.javascript.script1.js", "text/javascript", PerformSubstitution = true)]

[assembly: WebResource("WebControlLibrary.Resources.javascript.components.script2.js", "text/javascript", PerformSubstitution = true)]

and in the Custom Control access using

Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "applicationscript", Page.ClientScript.GetWebResourceUrl(this.GetType(), "WebControlLibrary.Resources.javascript.script1.js"));

Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "applicationscript", Page.ClientScript.GetWebResourceUrl(this.GetType(), "WebControlLibrary.Resources.javascript.components.script2.js"));

# October 27, 2006 5:34 AM

Koob said:

Thanks Scott. But does not work with LinkButton and ImageButton (see http://support.microsoft.com/default.aspx/kb/921277). Maybe provide some standard scripting in the next .Net version?

# October 27, 2006 10:41 AM

Steve-0 said:

Vista is a waste of Time and Money. Linux is the way to go now and every day it gets easier to use thanks to tons of development. I was behind Microsoft for XP and it is a great OS baring the security issues, but for Vista I'm really thinking of switching to another OS. I am a big techie and having to call someone to upgrade my pc reminds me of my childhood where I had to call my mommy when I wanted to stay out later then 9pm. I've grown up and I think it is time for Microsoft to grow up too and stop treating customers like children.

# October 27, 2006 9:42 PM

DJ (not the same as above) said:

I think Microsoft's big challenge here is that their user base includes everyone and their grandma, literally.  Steve-0, some of the customers are like children and need to have their hands held through anything more complicated than Copy and Paste in Word (my mother-in-law had to be walked through doing even that much); and when things go wrong, they throw a tantrum about how Microsoft *allowed* them to screw up.

On the other side of the coin, the more idiot-friendly you make the OS, the more insulted the true non-idiots will get because the OS treats them as such; which (for example) is part of the reason UAC is getting a bad rep.

I think MS took steps in the direction of addressing the user base when they released XP Home and XP Pro, and it appears they're doing the same with Vista.  Are they doing it right?  I don't think so.  I'm confused enough trying to keep straight which version does what.  Even if their product lines were very clear, it's still not going to stop Joe User from getting the wrong version and throwing a hissy fit when he doesn't understand what's happening.

# October 30, 2006 11:18 AM

lukas said:

Have you tried, or seen anyone try, Visual Studio 2005 on parallels? I need a new machine for freelance programming, and I need a new machine for home use. The latter seriously wants a Mac, the former need requires serious performance though.

# October 31, 2006 10:50 AM

Jeff said:

Yes, I use the entire suite of development products via Parallels on a MacBook Pro and Mac Pro, no issues at all.

# October 31, 2006 11:08 AM

Jeremy said:

Hmmm... this doesn't seem to cove a drop down list on my page. Is there any way to make the alpha background cover that as well?

# October 31, 2006 11:08 PM

justin said:

yea theres a sick nasty ending!

# November 1, 2006 9:41 AM

David said:

The Drop Down problem is a know issue of IE6. It doesn't follow the overlap rules of CSS.

# November 5, 2006 2:54 PM

Michael Flanakin said:

Why not just use the ASP.NET AJAX Toolkit's ModalPopupExtender? This is an ASP.NET blog/site, isn't it? :-P

http://ajax.asp.net/ajaxtoolkit/ModalPopup/ModalPopup.aspx

Not to take away from your efforts, but the AJAX Toolkit is awesome.

# November 6, 2006 8:30 AM

Jeff said:

I'm well aware of it, but it's too heavy and not necessary all of the time.

# November 6, 2006 9:04 AM

Mozes said:

I have seen it on numerous occasions, but ignored it since the error only appears in the designer (and I use the designer hardly ever).

# November 7, 2006 7:36 AM

AndrewSeven said:

I prefer threaded forums to flat ones.

When a group of humans discuss something, we have an uncanny ability to decipher to whom and to what we are responding. In a text environment, we don't have the same non-verbal cues that allow us to maintain context.

If you respond to something other than the first or last item, then you need some way to know to which you are replying. Most system that are linear feature a "quote" button.

With threads, if we both post a reply to the same item, you will see that each is a reply to the same thing. If you post a reply and I post a reply to your reply, they are clearly not replies to the same thing.

The aspect of "working the room" depends on how you present the tree of responses.

For simple discussions, you don't need the threads, but when there is lots of back and forth, it helps.

# November 8, 2006 3:21 PM

Wim Hollebrandse said:

Though I personally like Usenet threaded style, I've gotten used to the linear format. The threaded style can become quite difficult to read when you have a deeply nested hierarchy. Linear posting with quotes solves all these problems, just as long as people use the quoted replies properly.

My upcoming AtlasForums will be linear, but I am storing  what message people reply to, so the threaded hierarchy does not get lost.

# November 8, 2006 3:27 PM

Luke Breuer said:

What happens if there are several different... facets being discussed in a single thread?  If I want to discuss three of them, do I need to post in three different places (threaded), or one (linear)?  What happens when the discussion isn't strictly hierarchical (e.g. the discussion splits into two parts, then returns to one)?  I'm not convinced either version works well, unless extra data is stored that links posts to each other somehow.  Either one has been made to work, but might there be a third option that works even better, especially when post lengths get long?

# November 8, 2006 4:13 PM

DotNetKicks.com said:

You've been kicked (a good thing) - Trackback from DotNetKicks.com

# November 8, 2006 7:41 PM

.NET Junkie said:

I was wondering this exact thing last week, while creating a data bound control. I reflected over the DataBoundControl.GetDataSource method that lead me to the missing FindControl.

It's actually about once or twice a month that I come across .NET internals that I'd liked to be public.

However, the more code you make public, the harder it is to make changes to your library, so I can understand (a bit).

# November 9, 2006 12:36 PM

Adam Bowman said:

This weekend my hp laptop power connector busted too.  It's a good thing I was home when it happened because I'm pretty sure it would have started a fire if I hadn't been there to unplug it.  The connector was blackened and slightly deformed from the heat.

# November 13, 2006 11:24 AM

Lee said:

Nice, Brock.. Thanks for the blog Jeff.

# November 14, 2006 11:49 AM

Markus said:

I am running into the same.  

However, when I copy entire page contents (except the first line) of the page with the controls that do not render into a newly created aspx page all controls render fine.  After restarting VS the controls on the new page do not render anymore.

If anyone from the Visual Studio team reads this, please let us know how to get this fixed.

Thanks,

Markus

# November 16, 2006 12:26 AM

David Taylor said:

I feel sorry for you Jeff.  Yes the assumption at the time would have been that Vista would be out.

I had a similar story regarding Visual Studio where I paid for a MSDN Universal subscription but did not attempt to "pick" which Team System version I upgraded too until after June.....and they told me it was too late at that point so I needed to stick with Visual Studio 2005 Professional!! (even though I had a valid MSDN Universal subsciption until a month or so ago).... :-(

# November 21, 2006 12:29 PM

Luke Breuer said:

At one point, I used a piece of software that had all of its options in a very easy-to-search interfaces.  Firefox almost has this with the about:config page -- imagine treeifying that and adding some good keywords and descriptions by which one can search.  Many a time, I've looked through settings multiple times trying to find that checkbox I need to check -- if I could run a search against a normalized options structure, I'd love it.  With metadata-driven options, you could even provide multiple different UIs for setting them, or only provide the power-user tree version I've described, and let others implement the "nicer looking" (but probably less powerful) screens.

# November 21, 2006 1:19 PM

Derek H said:

OK, stupid question. What is Leopard?

# November 21, 2006 1:31 PM

Jeff said:

# November 21, 2006 3:36 PM

Wim Hollebrandse said:

Who cares Jeff. It's not like you'll be missing out much.

Personally, I can't see any reason to upgrade anytime soon. Apart from the fact that I don't have a top of the range desktop lying around which I want to put this resource-hog on, I'm quite happy doing my ASP.NET development on XP Pro, Win2003K etc. And I can run .NET framework 3.0, so what's the point?

I must be missing something here. Someone tell me. Curvy corners? Glass UI? Loads of fancy window managers for Ubuntu look much better and are less of a  resource hog.

Derek - Leopard will be the next major release of MacOS. Current one is Tiger.

# November 21, 2006 3:43 PM

Gabriel Lozano-Morán said:

Even if Vista would have been released a little bit sooner you do realise that your license to use it for development, demo or evaluation purposes would expire together with your subscription?

By the way why don't you buy a TechNet Plus subscription for $370 a year that includes all the Microsoft software except for the Visual Studio environments.

# November 21, 2006 3:43 PM

Jeff said:

Yes, thank you for the lecture on licensing. I'm aware of it, but I also believe you're wrong. I know Visual Studio for sure you can use indefinitely.

I'm aware Vista isn't worth paying for, and that's the reason I don't intend to buy it. It's just the geek in me that wants to play with it. I haven't looked at it since the CTP days, and even then I was underwhelmed.

I guess I'll continue running XP in Parallels on my Mac Pro for development, which is probably cool and the gang for the time being.

# November 21, 2006 4:28 PM

doc0tis said:

Yeah Jeff,

I agree with you about Vista. I will not bother with it, no reason. Definetly getting a Mac next. Windows is really pissing me off.

--doc0tis

# November 21, 2006 5:12 PM

Joe Chung said:

You can get Vista if you buy the next version of Visual Studio with an MSDN subscription.  It will probably come out in late 2007 or early 2008, about the same time as the next Windows Server release.

# November 21, 2006 10:39 PM

Jeff said:

I hate to say it, but so far I don't see any real compelling reasons for that upgrade unless it's an inexpensive $50 upgrade like the one between 2002 and 2003.

# November 21, 2006 11:13 PM

Bryan Thrasher said:

Visual Studio and the Macromedia apps suffer from the too-many-options issue.  They both ask you for how you will use the app when they first startup so they can preset options and subset what you see.  It seems vBulletin could use that.

# November 22, 2006 12:58 AM

DannyT said:

The way I would approach this is to list the user actions, then sketch out an interface (on paper!). You then get as many people as you can to sit in front of that sketch with no instructions at all other than to TELL YOU what actions they think they can carry out, you then cross them off the list and note the order they were picked up in.

Of course this is a very old school method of usability testing. But how easy and inexpensive would it be? No wasted development time, fundemental flaws in your UI are picked up before you've even switched on a PC.

You're starting with the key element, the user. Get it right here and work your application from this point onwards. Simple and certainly not a revolutionary approach, but possibly a long forgotten one?

# November 23, 2006 8:39 PM

SImon said:

Hi

My postback for my button includes some client-side javascript (see below).  The order is:

add some data to database

display an alert box

However, using this code in my pageload event:

txtName.Attributes.Add("onKeyPress", "BLOCKED SCRIPTif (event.keyCode == 13) __doPostBack('" + butAdd.UniqueID + "','')")

when I hit return the button postback event fires ok however, data is added succesfully to the database BUT the alert box does not appear.

DOes anyone have any ideas why not? or a solution?

Thanks,

Simon

strMessage = "Now send a text message!"

                   'finishes server processing, returns to client.

                   Dim strScript As String = "<script language=JavaScript>"

                   strScript += "alert(""" & strMessage & """);"

                   strScript += "</script>"

                   If (Not Page.IsStartupScriptRegistered("clientScript")) Then

                       Page.RegisterStartupScript("clientScript", strScript)

                   End If

# November 24, 2006 7:26 AM

Jeff said:

First off, you don't need to check to see if a script is registered. Second, you're not wiring up anything to an alert box here. You're registering a script fragment that will execute when the page is loaded. You're not calling a function.

# November 24, 2006 10:35 AM

SImon said:

Thanks Jeff.

I took out the alert box and just simply wrote:

response.write("Got Here")

when I click the button the data gets added and Got Here gets written.

when I hit the enter key the data gets added but the "Got Here" doesn't get written.

I'm baffled - any ideas?

thanks,

SImon

# November 24, 2006 11:29 AM

AndrewSeven said:

A simple approach is to use the Sql Profiler and time the start/stop of a trace.

I've also used it within larger tests to see what isn't in the cache based on the hits to the db.

# November 27, 2006 3:23 PM

Jeff said:

Well, yeah, I know I can use Profile, but that's not the kind of in-app instrumentation I'm asking about.

# November 27, 2006 3:34 PM

David Brabant said:

I'm not sure that I understand your context, but can't you use one of these?

http://msdn2.microsoft.com/en-us/library/ms191006.aspx

# November 27, 2006 4:25 PM

SBC said:

perhaps SMO (in SQL2K5) can work out here..

Microsoft.SqlServer.Management.Smo has 'Statistic' classes along with Transactions..

well worth looking into..

# November 27, 2006 4:37 PM

Jeff said:

Well, nothing there that quite matches what I'm looking for, but cool stuff to keep in mind!

Let me explain again... We all now how there's an extensive request/response lifecycle for ASP.NET pages. You can key into those events via an HttpModule. Imagine a module that started to "listen" for SQL queries in one of the early events, then in one of the last few events, saved that count somewhere. That's really what I'm after.

If I were using the application block or something else that already wraps SQL calls, then I'd be all set because I could wire something into that, but I'm not so I need to find an alternative.

# November 27, 2006 5:56 PM

Justin-Josef Angel [MVP] said:

Hmmm... There's no way I see this is can be done easily.

I'm guessing we're looking for a "Quick & Dirty" solution since you said there're no SqlHelper classes anywhere.

1. create a "mySqlConnection" class that inherits from "SqlConnection".

2. Override the Close & Open methods to count or log of whatever. IMHO, starting a session variable at the begining of the request and nulling it by the end of it is just eneugh. Then you can write it to Perfmon or log4net.

3. And this is where the really cool part comes into play. Change the SqlConnection class to allways use your mySqlConnection class by adding this using at the top of each page/class:

*** using SqlConnection = myNamespace.mySqlConnection; ***

this will change all SqlConnection to mySqlConnection. It's a dirty trick, but IMHO it's your best bet.

# November 28, 2006 4:01 AM

andrewstopford said:

I agree Jeff the ASp.NET team are very agile indeed, I suspect that Scott will drive that into the other teams he now leads. I do also suspect that Ray Ozzie will change, indeed Microsoft is a changing company, give them time and things will be very different. Personally I look forward to that.

# November 28, 2006 5:17 PM

John said:

Thanks Scott, wrapping my second "form" in the panel and setting the default button did the trick.  Thanks for the post, works great!

# December 1, 2006 9:31 PM

Khalid said:

actually I was thinking of this solution but I did not have time to try it.

Then I searched the internet to find some thing fast and this is it.

Don't worry; all the rights are for you :)

# December 4, 2006 10:46 AM

Mary R. said:

"I have a similar problem.  I have had the part resoldered once and replaced once, but it keeps breaking.  I am told that I have two options: Replace the motherboard (almost half the cost of a new laptop) or have them hardwire an external power supply jack (rather than the current internal one) into the computer.  Does that sound bogus?  I am tired of throwing money at this thing!"

I'm currently working on a laptop with that same issue, it's an HP pavilion 1210,

There is a way to fix the power supply mount issue with out using the flimsy connections that the machine has originally (otherwise, you'll end up with the same issue down the road) Right beside the power jack is a blank spot used for a mouse connection, you can pop that out and find the mount that would fit you machines connections, feed the new jacks wires through the hole from the outside and solder them in place, you can easily find a power mount with a screw on washer/nut that tightens from the outside greatly reducing the tension and play on the motherboard. Have fun!

# December 4, 2006 4:03 PM

Karl Ferron said:

I saw you had an HVX200 and an Azden 200UPR wireless system. We just got the wireless today, and I'm trying to figure how the flippin' audio can be heard! Tried plugging a headset in the receiver's output and nothing. Tried plugging into the camera and, nothing. I get the green lights and all but who knows, perhaps the unit's defective? The channels are straight, batteries fresh, audio channels set on camera. Well I gotta look at some public transportation I'm gonna shoot this week. Waiting too for the MacBook and some other goods. Oh, just got the Redrock Micro, but my boss didn't get the shim and downsizing ring!

# December 4, 2006 10:04 PM

No one's business said:

Hey here's a crazy idea to work around all those licencing issues: buy the damn thing for a change and support the millions of man-hours put into developing it.

# December 6, 2006 8:48 AM

Jeff said:

Or I could keep using OS X and my old XP license in a Parallels window. :)

# December 6, 2006 9:13 AM

Chris Done said:

Hey. I know this post pretty old. But it's a point that annoys me anyway. Programmers are indeed *** at graphic design.

I _think_ I am the opposite. I dunno. I tend to think I have a sense of aesthetics that most programmers don't.

"Do you often pull double duty as a designer?" Yeah, totally.

Here's an example, this is a Soulseek client I am working on that I designed and coded:

http://sourceforge.net/project/screenshots.php?group_id=175403&ssid=43160

Heh, you can actually see the older screenshots as I gradually changed the design.

I generally think the better a program looks, the more confidence a user has in using the program.

"most developers deliver 'Programmer Art', which is erm... not good :)" yeah, I know what you mean. Pixel art or black background with green foreground, etc. in my programming course last year we used VB to write some projects, and the designs were just hideous. They didn't seem to understand my pain in just looking at them.

# December 16, 2006 10:42 AM

Tom M said:

I have an HP Pavilion ze5400.  The back of the dc power connector broke off.  I am not going toreplace the connector, I just want to know where to solder a hard wire to the motherboard.  it is not readily identifiable where I should make this connection.  Anybody know where I can get schematics?

Thanks,

Tom

# December 16, 2006 10:37 PM

Loco said:

I played the game without any problem. The only bad thing is that I had to wait very long time to load for the multiplayer games. I got bored, and I uninstall hl2. I still have it with my other old cd. But the worst thing is that every other pc game is trying to do the same. They are trying to emulate it like steam. A big example is Battlefield 2, BF2142, and others that might come soon. That is why I am not going to buy pc games anymore. Before you can create your own server. Now you have to pay to create your own server. The worst thing is that you are using your pc as your server not their servers and you are paying for it?!!!! That is too much. Valve I respect what you did, but being with steam was a big mistake. That is why valve is not famous anymore.

# December 17, 2006 3:25 PM

Muhammad Kashif Zia said:

After reading above i have made something like below for me just like window default button. Working fine but need to test more.

<form id="Form1" method="post" runat="server" onkeydown="BLOCKED SCRIPTif (window.event.keyCode == 13 && window.event.srcElement.type != 'submit'){__doPostBack('SearchCriteriaButton');return false;}">

# December 18, 2006 12:45 PM

Muhammad Kashif Zia said:

I have just refined the code above for my use as following, may help someone.

Default control in base class,

Control _DefaultControl = null;

public Control DefaultControl

{

get{ return _DefaultControl;}

set{ _DefaultControl = value;}

}

asp.net base page code in prerender overridden method,

if((this.Page.IsClientScriptBlockRegistered("PM-KeyDownEvent") == false) && (DefaultControl != null) ){Page.RegisterClientScriptBlock("PM-KeyDownEvent", "<script language=javascript event=onkeydown for=document> if (window.event.keyCode == 13 && window.event.srcElement.type != 'submit' && window.event.srcElement.type != 'button'){__doPostBack('" + this.DefaultControl.ClientID + "');return false;}</script>");

}

Add following code in child page

this.DefaultControl = SearchCriteriaButton;

Finally i added a CSS class for look of Default button, thats simply underline text for me.

Thanks. all above posts helped me to learn and find solution for my requirement.

# December 18, 2006 3:53 PM

Shahn Hogan said:

Jeff,

I believe this is coming in the summer.

Shahn

# December 18, 2006 5:01 PM

Jason Olson said:

First of all, consider that it is a 1.0 product. Not only that, it was put together in a very short amount of time. It is a revolutionary product that hasn't had a direct competitor in any modern consoles.

Lastly, consider the security issues they have to tackle to open up this venue. They have to pretty much guarantee that XNA can't be used as an attack vector on the 360 or else XNA could be dead in the water. Considering that they pretty much did it in 6 months, having to solve all those security problems would bloat out the schedule. And I would rather they release when they did and start building the community now rather than wait longer until all the features were addressed. Progressive releases is the way to go here.

Not only that, but even without XBox Live support in XNA, it is still a VERY cool product. I for one (and MANY others judging from the reaction XNA has been getting) am interested in writing games for the 360 even if it doesn't include networking support. I can wait for 2.0 for that functionality. I think you're focus on XBox Live missing from XNA is missing the point.

# December 18, 2006 5:06 PM

David Taylor said:

Jeff, they did the whole product in 8 months - go figure! Amazing work.

Yep, they could have done what you wanted and shipped later; and done features another 10 people wanted and shipped this time 2007 even :-)

This is a new trend in software development Jeff: Ship early, ship often.  Read up on it ;-)

# December 18, 2006 5:48 PM

Jeff said:

I don't understand these kinds of responses. I'm supposed to just thank my lucky stars they put out a product even though it doesn't serve the needs I have?

Knock yourself out if you want to develop with it, but every great idea I can get behind is online. That's where gaming is right now. "Read up on it."

# December 18, 2006 7:34 PM

Marc Brooks said:

What I don't get, AT ALL, is why this only installs on systems with the C# Express edition, but doesn't support us REAL progammers that paid for the full Dev Studio... that's just plain insulting and stupid.

I am NOT going to install C# Express (and then another 2 hour SP1 install!)

# December 19, 2006 12:49 AM

Tati said:

Sure why not. No two people are exactly the same so there will always be room to grow. But sharing major things in common helps you understand the other one better. Just an opinion.

# December 20, 2006 12:53 PM

Orlin Georgiev said:

It seems you've been looking at some kind of Beta release. There are no such events as PreAuthenticateRequest, PreAuthorizeRequest, PreResolveRequestCache, PreAcquireRequestState, PreAcquireRequestState, PreReleaseRequestState and PreUpdateRequestCache in the ASP.NET 2.0 HttpApplication class (referred to you as the "Application"), not even private or internal ones. Decompile the System.Web.dll with the Reflector, if you like. Besides, you've missed the HttpSessionState.Start (Session_Start) and HttpSessionState.End (Session_End) events. Start occures just before AcquireRequestState and End occurs some configurable interval after the last request. Otherwise, this is an excellent list, it seems it will help me big with the page/control lifecycles.

# December 21, 2006 1:20 AM

Jeff said:

Of course it's based on pre-release... the post is more than two years old! Look at the date before you start lecturing.

# December 21, 2006 8:58 AM

Your Mom said:

JUST GO BUY IT! Use it and come to terms with its issues by explaining their advantages and downfalls. If you still dislike it, then go home and stfu!

# December 25, 2006 5:48 PM

Ted Jardine said:

I agree with much of your sentiment: no warning about disk space and an esoteric 2908 error?!? After several tries myself (one all-nighter), I moved the exe to a secondary drive and ran it with patch cache disabled (http://weblogs.asp.net/jgalloway/archive/2006/12/19/things-i-wish-i-d-known-before-i-installed-vs-2005-service-pack-1.aspx) and I'm all good to go.

# December 26, 2006 3:16 PM

Jon Galloway said:

Have you looked at the verbose error log to see exactly what's failing (http://blogs.msdn.com/astebner/archive/2004/11/10/255346.aspx)?

Heath Stewart wrote about how to cut down the disk I/O (including registry access, I belive). Here's my link with a tiny amount of value add:

http://weblogs.asp.net/jgalloway/archive/2006/12/19/things-i-wish-i-d-known-before-i-installed-vs-2005-service-pack-1.aspx

That said, I agree with the fundamental issues you're talking about. .NET is great, but it's running on top of an operating system that's based on COM and the registry. Visual Studio is based on InterDev, and from all the registry settings it looks like there's a lot of lava flow architecture there. Don't get me started on MSI - why is it that simple NSIS and Inno setup installs always seem to work better than MSI's with default settings?

Here's an interesting thought: Mono and MonoDevelop continue to improve. They leverage .NET and don't carry the COM legacy baggage. If Microsoft doesn't aggressively refactor Windows and Visual Studio to replace COM with .NET, it may have a hard time keeping up with less encumbered competition.

# December 26, 2006 3:22 PM

Jeff said:

I could pour through logs... but why should I have to? Is it too much to ask that a $1,500+ product work when I install it?

It's SO frustrating when you see something so useful turn into something that is completely useless, especially when you're a big fan boy like me.

# December 26, 2006 3:44 PM

John said:

Same problem here I really have no idea who tested this product when it was in beta but it seems nobody tested it at all. I can't actually even believe that installing a dumb service pack is such a hell to go through. At this point I've also abandonned the SP1 installation as per the same error code and left the update to another century.  

# December 26, 2006 4:23 PM

CumpsD said:

I have a somewhat similar experience, where it feels like every newer version of Visual Studio seems to be less responsive when working with it.

For some reason, trying to add a reference to something suddenly requires VS to take ages to load the reference dialog.

Strange auto-collapse behaviour from the toolbox, data, solution explorer, output, etc... panes.

It just "feels" slower. And it sure isn't the hardware :)

I'm preparing at the moment to go to a dual boot setup to run in Linux and take a serious look at Mono and the effort/productivity it takes to develop for it and in Linux. Curious :)

# December 26, 2006 7:41 PM

foobar said:

Most installations/upgrades are not nearly as painful as this.  I'm curious to know which IDEs you've used on the Mac that were easier to upgrade though.

# December 26, 2006 10:50 PM

Jeff said:

It has nothing to do with IDE's. This is par for the course on all kinds of non-trivial Windows software, and even Windows itself.

# December 26, 2006 11:42 PM

todd brooks said:

Now if you could just hack in checkboxes like the comparable WinForms control I'd be ecstatic :)

Great job, btw.

# December 27, 2006 4:18 PM

HydroUK said:

Well tbh Vista is new and there are alot of issues to iron out UAP being one of them. UAP is such a bad feature lol but can be disabled so its not a major issue. Aero is nice to look at but it is no Beryl like i got on my *nix, its about time microsoft could trust the customer. All this grief over software piracy and just for it to get hacked and released anyway. You will be hacked everytime so why bother? looks at mac os no keys protection or anything just trust!!

But hey how can Microsoft trust anyone with the things they have done in the past...

# December 28, 2006 1:07 PM

Nick Turner said:

A game without networking is called pac-man.

Hooray for MS and XNA. But, until networking it's still rated with the atari 2600.

When networking comes out, the following will be 10 fold. Why leave the pc to make dumbed down games like castlevania.

I like XNA and its very easy, but MS is asking for backlash, if it thinks they can offer us potatoes and not the meat.

My thoughts.

Nick

# December 28, 2006 2:28 PM

ScottGu said:

Here are two blog posts I did about the new ROW_NUMBER() paging support that you might also find useful:

http://weblogs.asp.net/scottgu/archive/2006/01/01/434314.aspx

and

http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx

Hope this helps,

Scott

# December 30, 2006 12:35 AM

Judge and Jury said:

Those of you that believe that piracy is theft have it wrong. If it were truly theft then why call it piracy? It is a contention of "The Man" to keep his wallet fat. First point. You open the software no return policy. What other industry has this perk. Drive a car off the lot & cant return it..COME ON.

What about poetry. Ever read a poem to anyone. Did you send the artist a check?

With technology comes change. Was the car not the rip of a covered wagon? Good thing someone didnt patent the 4 wheels idea. No other software is hacked more than MSoft. Bill made 34 billion this year. If stealing truly has this result rip me off now please.

# January 2, 2007 6:57 PM

MogalManic said:

# January 3, 2007 9:40 AM

ScottGu said:

The built-in VS web dev server has a block that only allows local access (for security reasons).

However you can download the source to it and remove the block from here: http://blogs.msdn.com/dmitryr/archive/2006/03/09/548131.aspx

Hope this helps,

Scott

# January 3, 2007 8:57 PM

Jeff said:

I figured that might be the case. Grrrr... do we really have to be protected from ourselves? :) I wish this was configurable.

# January 3, 2007 9:02 PM

Wilco said:

Alternatively you can give http://www.wilcob.com/Wilco/Toolbox/WebDevWebServer2.aspx a try. The GUI one should work exactly the same as what ships with VS. The difference is that it's built on top of HTTP.SYS (using HttpListener) which makes it possible to listen remotely as well as run it on ports used by other apps that also use HTTP.SYS.

# January 3, 2007 9:47 PM

Simone Busoli said:

There's UltiDev Cassini too: http://ultidev.com/products/Cassini/index.htm

# January 4, 2007 8:58 PM

Chris said:

FYI:

Facebooks image uploaded can be found here:

http://www.aurigma.com/Products/ImageUploader/

# January 7, 2007 10:28 PM

Luke Venediger said:

That would rock except for the nasty table scan it causes :(

# January 8, 2007 3:53 AM

Jeff said:

So what? What's the alternative, smarty pants? If the performance is acceptable, who cares?

# January 8, 2007 9:10 AM

drew said:

I wish I had seen this site b4 trying to SP-up.

# January 8, 2007 4:18 PM

Sandra Stewart said:

I have had the same problem since I bought my compaq nx9110 in 2004.  It got progressively worse and a few months ago sparked as I tried to re-insert the ac power cord.  The pins in the outlet were out of alignment according to the service guy who repaired it.  However, shortly thereafter it became very loose again and it is hard to keep it in the right spot to get a connection.  I brought it back to the service guy who told me the whole motherboard would need to be replaced in order to repair this and it would cost 3 or 4 hundred dollars and only be warranteed for a month.  huh????  He did not think it would be cost effective to repair.  At least now I can see that it is a recurring problem with this laptop and I am not going to try and repair it.  

# January 10, 2007 9:57 AM

Michael said:

Man. I never knew what happened to TechTV until today.  I looked for some of their shows on the net to see whats new on IT and all I get is some website selling games.

I do not expect such helpful shows to be put off the air until civilization collapses.

# January 10, 2007 3:44 PM

ScottGu said:

If you want to send me mail with a sample that isn't working, I can help loop you in with the AJAX Control Toolkit team to take a look.

Thanks,

Scott

# January 10, 2007 10:17 PM

Jolker said:

How do you get the game to work? I've never seen anything like this, i've had friendlier viruses.

# January 11, 2007 1:21 PM

Patrick said:

Yes,I do agree that the school system is a messed up fake system trying to cover up the fact that the people that are making these teachers teach this crap are idiots indeed...Most of it will never even be used in REAL life and the students soon forget it after they leave high school ( or collage if they decide to go. ) So they should only teach them stuff they will actually use in real life, like technology education or basic math and some complex math needed for jobs, not math so complex it hurts there heads and its totally useless.

# January 16, 2007 2:29 PM

Stephen said:

So Jeff, now that you are hopefully 3 months into using Google Apps, what are your current thoughts?

I just got accepted into the program recently and haven't made the move yet, but am wondering ahead of time how it's working out...

# January 17, 2007 11:03 AM

Jeff said:

Still happy, still no complaints!

# January 17, 2007 11:27 AM

Majik Sznak said:

It's not that it's limiting per se, it's just that you have to work so much harder to get exactly what you want if what you want isn't what Microsoft has already done for you. It's very easy to make terrible web sites quickly using ASP.NET, but to get more advanced, you have to be a good programmer.

# January 18, 2007 12:40 PM

Ogre said:

"Machine key" issues?

# January 18, 2007 4:34 PM

AndrewSeven said:

Is it possible that the roles are stored in the same cookie and the code that sets the roles does something odd?

# January 18, 2007 5:14 PM

Jeff said:

Nope... the roles are added to the Principal object in an HttpModule. It doesn't really have anything to do with the login code, which is just the normal SetAuthCookie stuff.

# January 18, 2007 8:31 PM

ScottGu said:

Could you be running into this: http://weblogs.asp.net/scottgu/archive/2005/11/08/430011.aspx

One thing to check is whether it is a role-based persmission isue.  Within your login page add a <asp:loginstatus> control to the page, or just do a response.write of User.Identity.Name or check the Request.IsAuthenticated property.

That will tell you whether you are being redirected because they aren't logged in, or whether it is because of an authorization failure.

# January 18, 2007 10:03 PM

Ryan Anderson said:

I couldn't agree more. It always seems to amaze me how quickly scope creep rears its ugly head when stake holders get a GUI in front of them.

Once a client sees what they can have the wheels really start to spin on what it is they want, can have or more importantly need. I really like wire framing, or building mock ups with XML for example. It really saves a ton especially when designing a database back end. Now that is a little further down the road than what you are pointing out to do, but it is still a very important step after the sketching and scribbles.

I have made many, and I mean many mistakes building web applications as my skills have evolved. The one thing that has seemed to save me the past couple of years is really harping on the initial steps on "defining" requirements.

People tend to be very visual and in building the UI or at least sketching/ wire framing it out initially will save you hours and dollars in the long run.

# January 19, 2007 12:20 AM

vikram said:

yes very very true in real life situation. The UI design is as important as the architecture design and if the articture design cant give u a satisfactory UI design its of no use

# January 19, 2007 12:57 AM

Hannes Preishuber said:

i have written a article 2005 in german about this. http://www.devtrain.de/news.aspx?artnr=959

The code snippet can be used also not from german speaking ;-)

# January 19, 2007 2:28 AM

oddurmag said:

I ran into the same problem a while ago, but only in IE, not firefox. That was because our server names had a underscore in it, and it looks like IE does not persist cookies of the server name are not valid servernames( probably according RFC1738.

# January 19, 2007 5:36 AM

Ben said:

> It's amazing how much better your software can be when you

> focus on the task first, and the implementation later.

You came very close to saying test-driven development, but not quite :)

Approaching problem you talk about in a TDD manner has deep meaning, and it's something I've been thinking about recently. At my company we use TDD for everything, but then we hit the presentation layer and find ourselves without adequate tools to continue TDD. That's one lesson currently without an answer.

A second lesson is that TDD does not automatically build the business layer interface that the presentation layer will need. Or put another way, the presentaiton layer imposes implementaiton requirements that are not obvious when you are happily constructing your business layer in TDD. Through careful imagination, you may correctly guess some of your needs, but invariably the presentation layer causes you to go back and add new methods and interfaces to the business layer - or sometimes, to add a business "wrapper" around your complicated TDD-made business layer API to simplify things for the presentaiton layer.

So TDD enforces a mental model, but the presentation layer mental model and 'language' of pointing, clicking, dragging, etc is not at all the same as the model and language resulting from using TDD to construct the business layer.

It has been said that TDD does not cross application teirs well. I disagee; I think TDD crosses DOWN through layers just fine, such as reaching into the database. TDD does not cross UP nearly as well, so you want to start from the highest application teir you can.  

My last scattered thought on the matter is that TDD helps you specify what needs to be done (business), but not necessarily how it needs to be done (implementation). I think this is a correct approach because your test harness should be as implementation-indepdent as possible. However, it does lead to the gap I stated in my first point: one is left wanting for a presentation layer harness.

# January 19, 2007 12:03 PM

Jeff said:

TDD is essential, without a doubt. But you're right, there's still that issue that in so many application scenarios, someone has to interact with it and accomplish something. That gets lost too frequently.

# January 19, 2007 12:38 PM

Dan said:

I really agree with this. My bosses are visual, they need things to look at. Mockups on paper and/or Photoshop give them a feel of what they're going to get. Better still flat HTML only when they can click things and stuff happens do they get a feel for things. It's the difference between them passing 3 date input boxes and them realising they want a date picker. The tabbing order of input fields. You have to make them sit and experience the whole shopping process rather than let them signoff on artists impressions of what it'll look like. Bosses tend not to think about the details it's a way of making them slow down and pick fault in the whole experience.

Once it's done... write the behind the scenes code.

I'm gonna plug a book by 37 signals that talks about this http://gettingreal.37signals.com/ (not free) amongst other "getting real" practices.  It's all common sense stuff but an interesting read all the same.

# January 19, 2007 2:33 PM

Jeff said:

I was resisting making a reference to that book, because it's like a cult. :) But I do agree with a lot of their principles.

# January 19, 2007 4:50 PM

Dan said:

This also makes IE6 testing difficult, even with the release of the virtual pc image. You have to publish the site to your local IIS before you can access it from IE6 running on the VM... at least as far as I can tell...

# January 22, 2007 2:52 AM

Stéphane Hakni said:

True. Have you discover again Unified Process method ?

That's underly all the family developpement methods until XP programming. "Use case driven". It"s certainly the best way to reach the requirement.

# January 22, 2007 5:47 PM

Eski said:

Any suggestions on mockups for AJAX-based UI? How to ensure that UI Mockups (HTML or ASP.NET) are not throwaway once coding starts.

# January 23, 2007 8:34 AM

Jeff said:

If they can storyboard movies, I think a little UI should be easy enough.

# January 23, 2007 8:58 AM

Bruce Chapman said:

Well, I've tried installing it, but it just won't install because I don't have enough disk space.  I actually do have enough disk space, but because I have installed Visual Studio onto a D: drive instead of C:, I can't actually tell the installer to look at D: instead of C:.  I can't be the only one in this boat, and I really feel they need to have another go at this.  All I want to say is 'install onto the D: drive', but the installer just isn't listening.  (Unless someone has a suggestion for me??)

# January 25, 2007 1:38 AM

Scott Klarenbach said:

I have to disagree with the value of Component Art.  I was very enticed by the visuals and the demos on their site at first, and so I purchased the product.  However, when used in an enterprise environment, it just doesn't hold up very well.  Especially in regards to their Grid control.

It doesn't inherit from GridView, so any advanced extensions that you'd like to do are not really possible, and their support is non-existent.  I agree with the comment about hobby sites.

If you use their controls EXACTLY like the code is shown in their demos, they will work.  If you have realistic requirements with Clients asking for custom modifications to pagination, sorting, etc...you're in trouble.

Their controls look amazing, but they aren't practical for professional development.

# January 26, 2007 4:57 PM

Jerry van de Beek said:

Hello fellow developers,

It's making me crazy this week!!

I'am spending for more than 30 hours to get SP1 installed on my development machine.

Finally I removed everything (SQL 2005, Visual Studio, .NET Framework etc.)

Cleared the registry, removed the Visual Studio related plugin's.

Installed a new version of Visual Studio and try to install the SP1.

It won't seem to help, may be you guys have a suggestion.

The errorlog is below.

Thanks in advance for your tips/suggestions.

Jerry

=== Verbose logging started: 1/31/2007  12:19:31  Build type: SHIP UNICODE 3.01.4000.2435  Calling process: C:\WINDOWS\system32\msiexec.exe ===

MSI (c) (F0:C0) [12:19:31:640]: Resetting cached policy values

MSI (c) (F0:C0) [12:19:31:640]: Machine policy value 'Debug' is 0

MSI (c) (F0:C0) [12:19:31:640]: ******* RunEngine:

          ******* Product: {D407F7C0-579E-4CCB-91FD-855CE5084E86}

          ******* Action:

          ******* CommandLine: **********

MSI (c) (F0:C0) [12:19:31:656]: Machine policy value 'DisableUserInstalls' is 0

MSI (c) (F0:C0) [12:19:32:500]: Cloaking enabled.

MSI (c) (F0:C0) [12:19:32:500]: Attempting to enable all disabled priveleges before calling Install on Server

MSI (c) (F0:C0) [12:19:32:531]: End dialog not enabled

MSI (c) (F0:C0) [12:19:32:531]: Original package ==> C:\WINDOWS\Installer\c805a2.msi

MSI (c) (F0:C0) [12:19:32:531]: Package we're running from ==> C:\WINDOWS\Installer\c805a2.msi

MSI (c) (F0:C0) [12:19:32:875]: APPCOMPAT: looking for appcompat database entry with ProductCode '{D407F7C0-579E-4CCB-91FD-855CE5084E86}'.

MSI (c) (F0:C0) [12:19:32:906]: APPCOMPAT: no matching ProductCode found in database.

MSI (c) (F0:C0) [12:19:33:031]: MSCOREE not loaded loading copy from system32

MSI (c) (F0:C0) [12:21:38:000]: Original patch ==> C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ZNW949\VS80sp1-KB926601-X86-ENU.msp

MSI (c) (F0:C0) [12:21:38:000]: Patch we're running from ==> C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ecf477.msp

MSI (c) (F0:C0) [12:22:06:046]: Machine policy value 'AllowLockdownBrowse' is 0

MSI (c) (F0:C0) [12:22:06:046]: Machine policy value 'DisableBrowse' is 0

MSI (c) (F0:C0) [12:22:06:046]: Couldn't find local patch ''. Looking for it at its source.

MSI (c) (F0:C0) [12:22:06:046]: Resolving Patch source.

MSI (c) (F0:C0) [12:22:06:062]: User policy value 'SearchOrder' is 'nmu'

MSI (c) (F0:C0) [12:22:06:093]: User policy value 'DisableMedia' is 0

MSI (c) (F0:C0) [12:22:06:093]: Machine policy value 'AllowLockdownMedia' is 0

MSI (c) (F0:C0) [12:22:06:093]: SOURCEMGMT: Media enabled only if package is safe.

MSI (c) (F0:C0) [12:22:06:093]: SOURCEMGMT: Looking for sourcelist for product {D93F9C7C-AB57-44C8-BAD6-1494674BCAF7}

MSI (c) (F0:C0) [12:22:06:093]: SOURCEMGMT: Adding {D93F9C7C-AB57-44C8-BAD6-1494674BCAF7}; to potential sourcelist list (pcode;disk;relpath).

MSI (c) (F0:C0) [12:22:06:125]: SOURCEMGMT: Now checking product {D93F9C7C-AB57-44C8-BAD6-1494674BCAF7}

MSI (c) (F0:C0) [12:22:06:125]: SOURCEMGMT: Media is enabled for product.

MSI (c) (F0:C0) [12:22:06:125]: SOURCEMGMT: Attempting to use LastUsedSource from source list.

MSI (c) (F0:C0) [12:22:06:140]: SOURCEMGMT: Trying source C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ZNW4EE\.

MSI (c) (F0:C0) [12:22:06:203]: Note: 1: 2203 2: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ZNW4EE\VS80sp1-KB926601-X86-ENU.msp 3: -2147287037

MSI (c) (F0:C0) [12:22:06:218]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.

MSI (c) (F0:C0) [12:22:06:218]: Note: 1: 1706 2: -2147483647 3: VS80sp1-KB926601-X86-ENU.msp

MSI (c) (F0:C0) [12:22:06:218]: SOURCEMGMT: Processing net source list.

MSI (c) (F0:C0) [12:22:06:218]: Note: 1: 1706 2: -2147483647 3: VS80sp1-KB926601-X86-ENU.msp

MSI (c) (F0:C0) [12:22:06:218]: SOURCEMGMT: Processing media source list.

MSI (c) (F0:C0) [12:22:06:468]: SOURCEMGMT: Resolved source to: 'VS80sp1-KB926601-X86-ENU.msp'

MSI (c) (F0:C0) [12:22:07:046]: Note: 1: 1314 2: VS80sp1-KB926601-X86-ENU.msp

MSI (c) (F0:C0) [12:22:07:046]: Unable to create a temp copy of patch 'VS80sp1-KB926601-X86-ENU.msp'.

This patch package could not be opened.  Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.

C:\WINDOWS\Installer\c805a2.msi

MSI (c) (F0:C0) [12:22:07:093]: Note: 1: 1708

MSI (c) (F0:C0) [12:22:07:093]: Note: 1: 2729

MSI (c) (F0:C0) [12:22:07:140]: Note: 1: 2729

MSI (c) (F0:C0) [12:22:07:140]: Product: Microsoft Visual Studio 2005 Standard Edition - ENU -- Installation failed.

MSI (c) (F0:C0) [12:22:07:265]: Attempting to delete file C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ecf477.msp

MSI (c) (F0:C0) [12:22:07:328]: MainEngineThread is returning 1635

=== Verbose logging stopped: 1/31/2007  12:22:07 ===

# January 31, 2007 6:31 AM

Whatever said:

There are already hacked version of vista on bit torrent. I actually disagree with software piracy but in this M$ monopoly position, just who is the pirate. In the UK, we even get to pay 70% more than everywhere else because microsoft seem to think 1M$ = 1M£ (its a lot closer to 2:1).

I don't intend to move to vista anytime soon but as usual, support will dry up for the old M$ stuff and I will be forced to buy new kit. If I can use a pirated copy of vista and get away with it, I will. I think you should all do the same

# February 1, 2007 11:45 AM

Tamesh said:

Hi Sandra Stewart, your connection from the power cord, is it a round plug with a pin like thing inside? Is it this part that is giving you problems?

# February 1, 2007 3:13 PM

mk said:

It seems to me, that people download pirated software because they know that they probably won't get caught. IF I steal doom 3 from best buy, i'm likely to get caugt, seeing as there are numerous risks to shoplifting. However, if i'm able to get the game, for free, without hardly any risk of getting caught, i'll fu**ing steal it. It's a simple choice. People don't care about ethics: they care about what they want. They want a game, they can get it for free. "Yes, it's illegal, but how the hell are they going to catch me?" I think that it _is_ wrong, and i have never done it, but i must admit, i _have_ come close.

# February 1, 2007 5:29 PM

Joe Chung said:

Why are you blaming Microsoft for things that Dell screws up?

# February 5, 2007 7:55 PM

Jeff said:

That's exactly the point... Microsoft does not take a holistic view, and that's part of the problem.

# February 5, 2007 8:04 PM

rjygrwerg said:

compare your crappy mac book to my new core2quad 680i 8800 gtx ....this could go on forever and proves nothing

# February 6, 2007 4:01 AM

Qbus said:

I think that if you ask president in Apple the same question, he would have given you the same answer, that Apple were the only company doing things right :) That's how business people talks.

# February 6, 2007 4:49 AM

Boris Yeltsin said:

I love my iPod Nano, but I've never used it with iTunes. iTunes just spams your system by trying to install other junk like Quicktime. Apple never even tested it properly on Vista so it's broken there. And in their eternal smugness they decided they could avoid the Windows UI and try to make the whole thing look like an OSX app on Windows, which just annoys the hell out of me.

Apple makes great looking hardware. That's the strength of iPod.

# February 6, 2007 6:08 AM

Jeff said:

Quicktime is junk? Are you kidding me? Compared to what? The player is so ridiculously simple, and it's the foundation for every serious video editing system on the market.

# February 6, 2007 9:07 AM

Karl said:

Damnit, ur still around?

# February 6, 2007 11:32 AM

Jeff said:

Way to contribute.

# February 6, 2007 11:41 AM

Dean Harding said:

Heh, wouldn't that be amusing if they DID listen! How much effort when into Vista to build DRM right into the core? If DRM was dropped, it's all for naught!

# February 6, 2007 11:15 PM

Assur said:

You can only pass one parameter and your function must accept "object" for type. Next to that, to pass more parameters you have to use the delegate workaround. But it's a good start anyhow, it's better than nothing.

# February 7, 2007 2:37 PM

Jimmy Daresta said:

Would it be possible for you to post the code for this for download? I would be very interested in seeing it. Thanks.

# February 8, 2007 8:21 AM

Josh said:

Bought Half life 1 anthology off of ebay, assumed i was buying the original game. turns out theres a sticker on top saying you need internet to register the game...nothing on the box other than that. fine, leave my laptop for an hour for it to load up steam, which the box did not say it required to play. steam cant load. absolutely useless. what is the point? its an 8 year old game, who the hell is going to pirate it and it was sold as the game no mention that i would need to log onto steam EVERY time i wanted to play it.

# February 8, 2007 11:34 AM

gordon said:

dlamnie to jest najfajniejsza gra na całym świecie.HALF-LIFE jest to gra o rużnych zombi którym widać flaki jest to super.

# February 10, 2007 5:22 PM

Freek Bos said:

Today, after lots of struggling with Config Files, I finnaly wrote the famous words ".Net Config Files suck" in my Google search bar, and ended up here. Why in heavens name would I want to deploy my development config file with my development settings to a user. When I deploy a application using click-once (smart client) It keeps deploying my config files in new folders, and therefor "changing" the settings of my end-user. I cannot expect my end user to keep changing the config file every time an update is done. If my end user succeeds in FINDing the darn file, he doesn't have (and want to have) enough XML knowledge to change the file. Isn't there another (easy) way to store user settings?

# February 12, 2007 10:59 AM

Sanctus Animus said:

I'd say it's not that bad. First, most people can now start working on the single player part of their game, even local multiplayer (4 controllers...). Once that works they can polish the game while waiting for live support.

# February 13, 2007 12:16 PM

Shane Bauer said:

This site uses javascript to calculate it. I'd imagine you could probably just figure it out from there.

http://webexhibits.org/daylightsaving/b.html

# February 16, 2007 3:15 PM

Igor said:

Hi Jeff

The date published is a bit hidden in the GUI of the post. Usually in news publishing the date of the article is shown in other sytle(color) underneath the article title. In case of your blog the datestamp of your entry is mentioned underneath the body text. I had to look for a while (after reading your comment "Of course it's based on pre-release... ") to find the date.

But anyhow. Thanks for writing down a list of events :)

# February 18, 2007 7:37 PM

Ted said:

I to am having ac problems with my laptop.  Is there anywhere to get schematics for this. HP pavilion ze5607wm?

# February 18, 2007 9:00 PM

Patrick Driscoll said:

As this is the first thing I tried to do with Ajax, I'd really like to see it, too.

# February 20, 2007 6:54 AM

Boris Yeltsin said:

Looks great. I can't wait for the release of this.

How are you doing the full text search now? I've just switched to using PostgreSQL for all my database needs (via LLBLGen), and I'm looking for ways to do full text searches.

# February 20, 2007 2:09 PM

Jeff said:

I'm indexing words and scoring them, minus junk words, in a background thread. It's not the most efficient process, and the querying SQL is super ugly, but it does work.

# February 20, 2007 2:24 PM

JD said:

Should this code work for asp.net 1.1 too ?

cheers

-JD

# February 20, 2007 11:46 PM

Boris Yeltsin said:

I also agree with the Membership / Profile thing.

I'd ended up hacking it and trimming it on my site to the point where it no longer did anything useful. I'm down to just using the bare-bones Forms Authentication calls now for setting cookies/tickets.

# February 21, 2007 6:56 AM

Brandon said:

I have the same problem.  Let us know if you find any good alternative.  Right now, I just have a test web project that includes the HTTPModule and tests it.  Not very desirable.

# February 21, 2007 3:54 PM

Paschal said:

Jeff, good news. Curious on two things, how your Search is working? I might be interested for one project I have here. Secondly I wonder why you didn't put a bit of Ajax salt on your code?

# February 21, 2007 5:40 PM

Jared said:

I've been looking something that does that for ages. Thanks alot!

# February 21, 2007 8:16 PM

Jeff said:

There is a little spot of AJAX working in any given thread. Click a user name to see what I mean. Beyond that, if you're asking why I haven't included any ASP.NET AJAX stuff, it's because so far I haven't found a good instance where I think I need it. I know some other forums do, but so far I can't justify it as something that really enhances the user experience. The good news is that hopefully my UI layer is clean enough that people can add it if they want. I might still do it, we'll see.

As for the search, as I mentioned earlier, it just scores the non-junk words and queries against that table.

# February 21, 2007 11:07 PM

tocs said:

It looking good, but thought you would like to know (if you haven't found it yet), that on your beta forum an error is thrown while serching for nothing and having "Relevancy" set i.e. leaving the search box blank and selecting Relevancy in the combo box.

taking another quick look it doesn't seem to matter what sort type is selected.

and a third look any type of search seems to throw the error, so you likely will have found and fixed this already.

# February 26, 2007 5:05 PM

Don Demsak said:

I picked the PDC over MIX.  PDC is going to be much better than mix, at least for stuff I'm interested in.

# February 26, 2007 8:40 PM

Sam said:

Having lived for twenty years as someone that was only copying the odd cassette for friends, the getting of a computer unleashed a side to me I didn't realize I had. On the one hand I feel compassion for those that put in much work, and then live with the thought that their work is being enjoyed by some that have not paid for it. On the other hand I've been a thinker most of my life, and from a philisophical point of view, I think the internet has given people a chance to start putting life's record straight.

People didn't express their natural desire to experience something without any thought of money when the internet wasn't around. They can now, and the evidence shows that they do. Stuck in the middle of this is the angry developer. But I know that life can be ruthless whilst change is occurring. The future, as far as I can see, is that we will need to rethink the whole idea of bartering/money as a way of experiencing life's pleasures.

Would it really solve anything if laws get really tough on internet piracy? Will it really make people see that they were "wrong" to download that bit of software or music? I don't think so. Laws never really capture the natural inner motivation. Those on top, and able to make laws will obviously want to profit from that situation. Now the internet is balancing out the idea that someone can invent CDs and charge a fortune for reissuing old songs, becuase something else has cvome along to offer the user an alternative, a free one.

This legal market and underworld market is not just about who gets the cake. It is also fuelled by some hard to express desire that we are here, not to struggle and have to make money before we can experience, but that Here and Now can be worked out amicably between all people, meaning we can find a system where someone won't feel left out because they cannot afford to keep up. In the larger scheme of things I do feel more compassion for the down and outs, the poor etc, than I do for upset developers.

From all this angst I think people will see the light. As has been stated, it is not the answer to hold 75% of a nation's population accountable for a law that obviously isn't in touch.

So, piracy is not the end of the road, but the energy it sometimes takes to re-shuffle a pack, whether so called crackers are aware of what they are really doing or not.

# February 26, 2007 10:54 PM

LarryB said:

Personally I find it a little overkill.  I have been programming for a while and ran in to one of these interviews and froze.  I knew every single answer, but froze.  It was quite frustrating.  They passed on me and I ended up getting a better position makine more money churning out better code.

Here's the modulus in action btw.

for (int i = 1; i <= 100; i++)

           {

               if ((i % 3) == 0 && (i % 5) == 0)

               {

                   Console.WriteLine("FizzBuzz");

               }

               else if ((i % 3) == 0)

               {

                   Console.WriteLine("Fizz");

               }

               else if ((i % 5) == 0)

               {

                   Console.WriteLine("Buzz");

               }

               else

               {

                   Console.WriteLine(i);

               }

           }

           Console.ReadLine();

I've had to use it several times.  In one case I was reducing fractions and needed the greatest common denominator.  :-)

# February 27, 2007 2:51 PM

Kevin Jensen said:

I couldn't agree more.  I just recently added a blog entry on how the Transcender tests are absolute rubbish for trying to determine the skills a developer has.  30% of the test was on DataSets.  WTF.  I use DataSets about once in every project.  

I also don't think the ability to snap off the definition of polymorphism means you can code anything worthwhile.

# February 27, 2007 3:19 PM

Jeff said:

Oddly enough, my interview for the current job, they liked my answer that I don't know much of anything about DataSets because I use container objects and generics to manipulate data.

# February 27, 2007 4:07 PM

Glenn said:

I agree that there are a lot of developers out there who don't know how to write an if statement to save their lives.  On the other hand, it depends what you're looking for.  At my company we a lot of work with datasets.  We used to be a complete oracle shop with forms and reports, and have now started working with .net, however, most of our code is in packages and procedure.  We don't need any developers who have no idea about what a dataset is or have no clue how to write objects on the database.  That's development too!  I don't see how you can be a developer without knowing what the big picture is. Answering that you don't know anything about datasets because you use container objects and generics sounds impressive, it also sounds like you have no interest in expanding your horizons and learn what happens to your data.

# February 27, 2007 4:58 PM

Jeff said:

No, that's me saying that DataSets are cumbersome and expensive objects in .NET. Ever try to serialize one across a Web service? They're huge! DataSets are a one-size-fits-all solution that is mediocre because it tries to be too many things.

# February 27, 2007 5:26 PM

Kevin Jensen said:

Yes Jeff, that is exactly what I told them.  DataSets, while improved in .NET 2.0, are expensive containers that developers over-use all the time.  

I'd much stick with throwing around Objects/Object Collections accross my tiers.

# February 27, 2007 6:42 PM

Wim Hollebrandse said:

I cannot believe that self-proclaimed senior .NET devs would not even know about the modulo function.

Granted, some may not know the exact operator off the top of their head but should at least be able to write psuedo code with modulo in it.

Also - senior devs (8-10+ years experience) who say they haven't used recursion? I do find that hard to believe.

Call it what you want. I've interviewed them too.

# February 27, 2007 7:05 PM

Jon Galloway said:

I don't think the test is about the modulo function. It's about solving a challenge. I'm confident that you could write a simple function which checked if a number is evenly divisible by 3, right?

# February 27, 2007 7:20 PM

Wim Hollebrandse said:

Jon - well ofcourse, but wouldn't you assume experienced developers would at least be aware of what the modulo function does!?!

# February 27, 2007 7:27 PM

f3arthis00 said:

coding is one of the most complex part of programming. you need to devote yourself, like you need to be connected emotionally otherwise you'll fukk everything up. my advice is to take your time and be yourself and dance with the code. LOL

# February 27, 2007 9:04 PM

Tyler Jensen said:

//There are two types of programmers:

[Flags]

enum ProgrammerTypes

{

 ExamPassers = 1,

 SuccessfulExperienced = 2,

 Both = (ExamPassers | SuccessfulExperienced)

}

//The only one that really matters is the second bit.

# February 27, 2007 9:39 PM

Karl said:

I've worked in companies that have hired total duds, you're playing with fire if you don't ask these kinda questions.

You've never used to mod operator in C# (or any related language)? We were just talking about this the other day at work...sure you can almost always find a different solution, but never a rarely a better one. That's like saying you never used the multiple operator 'cuz you only bothered to understand the addition operator.

# February 28, 2007 7:51 AM

Jeff said:

I know what it is, I just never realized it was "%" in C#. I've never had to use it, even once. Why is that so surprising?

# February 28, 2007 9:02 AM

Frank Kumro said:

For first job out of college I got grilled with SQL/PHP questions. I had a couple friends apply and did not know any answer and still got the job. The only difference between answering the questions correctly and not is the pay...I guess the price was $10,000 more for correct answers. Where do they calculate this crap...

# February 28, 2007 9:23 AM

AndrewSeven said:

I've used the mod operator a couple times ( 2 or 3), I've been using C# and .Net full time for the last 4 years.

I really don't find that it comes up very often, even though I read the C# spec when it was publiched, I still needed to look up the operator the first time I was going to use it.

# February 28, 2007 11:42 AM

LarryB said:

Why oh Why can't VMWare or Virtual PC come up with a Coherence competitive feature.  Something that I would die for now that I'm on Vista and some of my Apps don't like Vista.

# February 28, 2007 1:46 PM

Phil Scott said:

Hey Jeff, thanks for the updates on running VS2005 on a Mac. I'm leaning to go that way but dropping that kind of loot on something that will hurt me doing my day to day job kinda worries me so it's nice to see people having success.

Now if I can just get my company to buy me one for work...

# February 28, 2007 2:09 PM

Jeff said:

Everyone "has a friend," but that doesn't equate to a scientific study. The CPU speed difference in your example is $300 of the price difference alone.

And besides, it's Windows. :)

# February 28, 2007 4:27 PM

ovalsquare said:

I'm assuming you're responding to my previous comment, which for some reason isn't showing yet. I was going to put a caveat about "everybody has a friend", but my comment was already long enough.

I'm afraid this might start to sound off like a PC vs. Mac diatribe that is all too common - that's not my intention. I'm all for making the switch (although the commercials can get annoying) and both your points are taken, but equating everything out, you're still looking at ~$700 difference ($1800 plus $300 for the chip)...

Having said that, I continue to watch your blog and others that touch on using Parallels on a Mac, particularly in regards to experiences with Visual Studio. Coherence sure looks great.

# February 28, 2007 4:45 PM

Jeff said:

Weird... I'm not sure where you comment went!

Well, these things do ebb and flow depending on supply chain speed. Like I said, my Mac Pro was cheaper than the equivalent Dell workstation, and the Dell didn't come in a cool case. Literally... this thing holds no heat, and you can barely hear it.

# February 28, 2007 4:51 PM

David said:

Regarding the "sleep while the lid is closed" problem... Try Sleepless: http://www.versiontracker.com/dyn/moreinfo/macosx/17893

That should solve that one. ( ;

# February 28, 2007 5:57 PM

Double-D said:

I think you guys got it wrong.  I'm having the same issue - I can't use the ORDER BY clause when defining a cursor.  Example:

DECLARE c CURSOR FOR (SELECT * FROM table1 ORDER BY col1 ASC);

SQL Server (2005 for me) takes a huge crap and says "Incorrect syntax near ORDER BY."

I've found nothing else about this, either.  Even in the MSDN help, the second example in the topic "DECLARE CURSOR" shows it use an ORDER BY clause in the cursor declaration.

..or maybe I'm wrong and it's something else. [shrug]

# February 28, 2007 10:39 PM

Jeff said:

This is an item from 2004. :) These days we'd use CTE's in SQL 2005!

# February 28, 2007 10:49 PM

Double-D said:

I figured it out.  You can't use parentheses around the declared SQL statement.  Ugh.

Invalid: DECLARE c CURSOR FOR (SELECT * FROM table1 ORDER BY col1 ASC);

Valid: DECLARE c CURSOR FOR SELECT * FROM table1 ORDER BY col1 ASC;

Haha, I didn't even see the date - just came up in a Google search.  Way to raise the dead! :p  I'll do research on CTEs now.

# March 1, 2007 12:11 PM

Ajai said:

It's really nice.but no body has given the answer of

"Do you know why the SaveViewState events fires twice for page and control?"

# March 2, 2007 1:24 AM

Sanjay said:

Hi,

I also have the power jack problem on my HP Nx9110. Anyone know where I can download a manual to dismantle the bak to get to the jack so it could be soldered or repaired.

Thks

Sanjay.

# March 2, 2007 5:23 AM

Susan said:

I've been writting for years and yet to find a publisher that I don't have to invest hundreds into.

I don't want to self publish. What should I do?

# March 2, 2007 10:44 PM

Robert said:

Actually... the question was not about the mod operator - it was about printing Fizz or Buzz (or FizzBuzz) at the appropriate time. You do not need to know about the mod operator to do this -- it is just most obvious approach.  FizzBuff is designed to test if you can think rather than if you know a fact.

# March 5, 2007 7:59 AM

Mladen said:

well i've solved some stuff with sql CLR.

Like:

- multiplying column values

  http://weblogs.sqlteam.com/mladenp/archive/2007/02/12/60088.aspx

- Creating an extended datetime type that covers all .net daterange (0001-01-01 - 9999-12-31)

  http://weblogs.sqlteam.com/mladenp/archive/2006/12/16/52754.aspx

- creating a very high precision timer for sql statements

  http://weblogs.sqlteam.com/mladenp/archive/2006/12/02/39124.aspx

i've used all 3 with great success in my escapades :)

Have fun!

# March 5, 2007 4:24 PM

Wim Hollebrandse said:

Check out Grisoft's AVG. It's free alright.

http://free.grisoft.com

Unless your friend's installed a server OS, it's a freebie for personal use. Yep - updates are free too.

Ubuntu hasn't given me much hassle with viruses lately either...

# March 6, 2007 3:07 PM

Alex said:

Aren't you a ray of sunshine... I thought I subscribed to .NET blog...

# March 6, 2007 3:19 PM

Michael Flanakin said:

Macs don't have viruses (yeah, right) because it's not worth the time for hackers to create them. I guarrantee you more viruses would be out there if the OS was more popular, making it worth the time. Take the lack of viruses as a sign if insignificance. I can also say this doesn't mean the OS is more secure.

# March 6, 2007 3:29 PM

Jon Galloway said:

McAfee is a really poor choice for anti-virus software. AVG and avast! are free _and_ much better. Your poor choice in software reduces your credibility when you're pushing hardware and operating systems.

# March 6, 2007 3:49 PM

Jeff said:

Being a programmer for Web apps means I'm supposed to be an expert in anti-virus software? What planet are you from?

The truth stands, I don't need anti-virus software on my Macs. There's nothing to debate there.

# March 6, 2007 4:01 PM

Wim Hollebrandse said:

It doesn't quite sound like a statement coming from a software professional though "The truth stands, I don't need anti-virus software on my Macs."

Especially since you're admitting you're not an expert in anti-virus software, I think the basis for that particular claim is not fully objective.

It's as much ignorance as you could expect from any non sofware professional.

# March 6, 2007 4:33 PM

Mark Wisecarver said:

Seen this?

http://www.macvirus.org/

btw, I've never used a MAC but wanted to years ago when those Video Toasters came out.

# March 6, 2007 4:40 PM

Jeff said:

And can someone point me to widespread instances of virus infections on Macs? Note that linked site with "first OS X virus," from last year, and apparently no one has ever been infected by it.

This isn't about religion. It's not about drinking the Apple KoolAid. The fact is Mac owners don't have to worry about getting a virus.

If you're gonna call me ignorant, get a Mac, use it for a year, and get back to me first.

# March 6, 2007 5:44 PM

Joe Chung said:

Macs don't have virus issues because nobody cares enough to write one, except for security professionals who were able to do so rather easily when they decided to do so.

Security by obscurity is a really dumb reason to not worry about viruses on a Mac.

# March 6, 2007 8:13 PM

Jeff said:

Is that based on your research? Because it seems to me that the reason no one is interested in writing a Mac virus is because you have to be the ultimately stupid user who would enter his or her password to install the virus.

Confirm or deny, indeed.

# March 6, 2007 8:16 PM

Bruno Correa said:

I really would like to see control events there, such as the button click event... and session events, thanks!

# March 7, 2007 6:49 AM

Mike said:

Ignorance is bliss isn't it?

http://projects.info-pull.com/moab/

# March 7, 2007 11:59 AM

Jeff said:

Again... show me. I've read through a lot of that junk, and the "proof of concept" doesn't translate into a workable virus.

And did I mention there are no viruses in the wild that exploit these?

You guys absolutely refuse to accept the fact staring at you in the face: I don't need virus protection hurting my performance on OS X.

# March 7, 2007 12:13 PM

asdsaf said:

Why didn't you use the built in Subversion server? (not being sarcastic or anything, I'd honestly like to know).

# March 7, 2007 4:36 PM

John said:

Hi Jeff,

I haven't used VSTS but if PrivateObject is the ability to test private methods then mbUnit has added support for that in their latest release.

John

# March 7, 2007 4:54 PM

betrl8thanever said:

Jeff,

Just so you know, there are Windows based wizards out there for subversion.  You have to do some searching for them, but generally they make setting up a subversion server very easy (more like what you'd be used to with Vault or VSS).  You don't have to monkey around with the config files, you just select or type and press next.

# March 7, 2007 5:06 PM

Jon Galloway said:

Why was it necessary to run it under Apache? svnserve runs as a Windows service, and it's not too hard to set up:

http://svn.collab.net/repos/svn/trunk/notes/windows-service.txt

# March 7, 2007 6:44 PM

Richard Ponton said:

Apache is necessary for advanced security configuration and other extras.

# March 7, 2007 6:57 PM

Jon Galloway said:

I think you've got a valid point. While there have been "proof of concept" viruses for Mac, none have really caused any real problem.

Jeff Atwood (codinghorror.com) recently did a comparison of Anti-Virus software for Windows and concluded that the established, more expensive products (Symantec, McAfee) are the worst. He said that he's never run Anti-Virus software and thinks it's unnecessary. Especially in the Windows XP SP2 / Vista world, Windows viruses seem to have lost most of their bite.

# March 7, 2007 7:03 PM

Jeff said:

Agreed, that and it's apparently a real pain to get svnserve to coexist with IIS. A guy I trust felt pretty strongly about that. It also looks like it stores passwords in plain text, which I'd prefer not to do.

# March 7, 2007 8:25 PM

afawef said:

> Agreed, that and it's apparently a real pain to get svnserve to coexist with IIS.

What did he mean by "coexist"?  I have IIS and svnserve running on the same server with no problems at all.

# March 7, 2007 9:52 PM

Art said:

Too funny, I am having the same problem, loose connection between the power cord and laptop.  I have had this issue for 2 years now and would not buy another HP again.......

# March 7, 2007 11:32 PM

andrewstopford said:

PrivateObject is used for testing private methods and as John points out has been added to MbUnit 2.4 beta 1 you can see how it works here.

http://weblogs.asp.net/astopford/archive/2006/12/20/testing-private-methods-new-to-mbunit-2-4.aspx

MbUnit 2.4 beta 1 can be found at

http://weblogs.asp.net/astopford/archive/2007/03/06/mbunit-2-4-beta1.aspx

Thanks

Andy

# March 8, 2007 6:49 AM

Wim Hollebrandse said:

You may want to check out the AnkhSVN plug-in for Visual Studio .NET, which integrates very well, and best of all, doesn't actually use the MSCC provider model that most VS source control plugins use.

http://ankhsvn.tigris.org/

# March 8, 2007 12:11 PM

Wim Hollebrandse said:

Regarding PrivateObject, simply create a BaseFixture class which uses reflection and let your fixture inherit from it.

Here's a simple and cut down version.

public class BaseFixture

   {

       public BaseFixture()

       {

       }

       public object InvokePrivateMethod(object o, string methodname, object[] args)

       {

           return o.GetType().InvokeMember(methodname,

               BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod,

               null, o, args);

       }

       public object InvokePrivateStaticMethod(Type t, string methodname, object[] args)

       {

           return t.InvokeMember(methodname,

               BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.InvokeMethod,

               null, null, args);

       }

}

# March 8, 2007 12:25 PM

Justin said:

I saw a post on the JetBrains blog yesterday this week about using VSTS test in the Unit Tester.  I have not tried it yet since I am not using VSTS for testing but I would trust JetBrains not to link to something that would make Resharper look bad.

http://blogs.jetbrains.com/dotnet/2007/03/vstsunit-support-in-resharper/

# March 8, 2007 12:35 PM

Rob Trebble said:

We MUST let the steam out of "steam"!

This whole concept is crapola. I will never buy a game that requires steam again.

The servers are slow, they are often temporarily unavailable for weeks on end, and EVERY time you want to play you have to go "through" steam. Even with the offline procedure for steam, internet access is still required.

I bought a game, if I dont want to register it, I should not have to. PERIOD!

# March 9, 2007 1:02 PM

Aaron Jensen said:

I wouldn't recommend AnkhSVN... it's very heavy/slow/bloated (unless they've significantly improved it since last time I used it...) check out VisualSVN http://visualsvn.com/ It's not free, but it's cheap and works much better IMO.

# March 9, 2007 2:44 PM

Subhero said:

I must agree Steam is total bullsh*t

Very long loading times and hassle to play.

Finally I got HL2 to work without too much trouble, and it didn't stutter or freeze, and I must say the game is very good.

I do get some problems playing online though. Sometimes it gives unexplainable errors, I have to re-validate everytime I push a button and loading times in which I could grow a beard, shave it and grow it again. All in all the Steam part is total junk, but the games are good running without any problems.

Valve, I have three tips for you: DROP STEAM, DROP STEAM, DROP STEAM ....

regards,

Subhero

# March 9, 2007 9:58 PM

Codee said:

How the heck do you uninstall the demo when done?

And HL2 suck's i dont like it.

# March 10, 2007 3:46 AM

Brandon said:

Bring TechTV back!!! I used to watch that channel religiously and the E3 coverage was amazing. I used to take off from work just to watch it!

The Screensavers, Call for Help, TechNews, Fresh Gear, Extended Play (formerly Game Spot TV).... omfg what were they thinking?

You take it from a primarily tech channel, and now have the man show, star trek, fastlane, and other Fox shows? Are you friggin kidding me?!

Are these people just paying a 3 year April Fools Joke that they will surprise us with in a few months? God I hope so!

# March 11, 2007 11:32 AM

Becky said:

Shame on you, Cindy and Darren!  Teachers are more than babysitters!  We are also parole officers, social workers, nurses, and whipping posts!  I love teaching; unfortunately, I get to do very little of it.  Instead of leaving no child behind, we need to leave SOME kids WITHOUT a behind.

# March 12, 2007 10:41 PM

Lb969 said:

Is there some number I can call, or some address I can mail to, give them a copy of my receipt and the serial or something and have them MAIL ME an actual copy of the game?

I have frigging dial up. I did not pirate the game. I have a legal copy and even have my original store receipt.

I paid 30 bucks for the game, and I friggin want to PLAY IT THIS CENTURY.

This will be my last purchase from Valve, I'll tell your that...

# March 13, 2007 8:26 PM

Jonathan Merriweather said:

I would also like to see the code :)

# March 14, 2007 3:20 AM

Dale said:

I've had an HP dv8000 since 12-05.. same problem.. bad power connector burnt the motherboard. compusa warranty fixed it the first time but 3 months later it did the same thing.. now compusa says no, physical damage or some crap.. never will I buy anything HP again.. really bad design..  

# March 14, 2007 11:26 AM

Harvey The Rabbit said:

For those of the humorous sort, I've written an updated install guide:

http://waxingcatatonic.blogspot.com/2007/03/real-guide-to-visual-studio-2005-sp1.html

:)

# March 14, 2007 2:16 PM

Robert McLaws said:

Jeff, great writerup. I should point out, however, that Microsoft DID start over to a large degree when they wrote the NT kernel. It took the better part of a decade to get the consumer version of Windows off the 9X kernel, because of (among other things) compatibility issues.

# March 14, 2007 2:26 PM

Jonny Programmer said:

You need to take into account the fact that Vista is required to support a bazillion different hardware/software configurations.  The Mac. only supports their software, a few 3rd party apps that they sign off on and ONLY THEIR HARDWARE.  This makes a huge difference when it comes to how the OS runs and what is required to support.  Now only so, the Mac. OS does not have anything remotely close to the .NET framework or application support or low-level development support or addin programming support.

# March 14, 2007 2:28 PM

Jeff said:

I think that's largely a cop out. The issues I have with Windows are not hardware related unless I'm playing games and there are driver issues.

And come on, the tools for developing on a Mac are adequate. Nothing quite like Visual Studio, I admit, but the tools are there.

# March 14, 2007 2:35 PM

The Other Steve said:

I guess I really don't understand why people keep slagging on the security of Windows.  I haven't ever had a virus or worm impact my home systems, and the last time we had a worm or anything of it's like impact systems at work was SQL Slammer.

Why?  Better patch processes mainly.

I guess if you don't want Mac slagged upon, don't bash Windows.  That's the lesson here.

I don't have any problems with my Windows machines, and can't think of any annoyances from the OS which prevent me from doing my job.  Windows just works, that's why i like it.

# March 14, 2007 3:15 PM

Jeff said:

I guess you're just more fortunate than I am. I'm always fighting Windows.

# March 14, 2007 3:28 PM

Rodrigo said:

Windows has evolved a lot from 98 to XP. I think I have never seen a Blue screen on windows XP, and I only have to reboot when I install some software that requires it.

I am not going to talk about Windows Vista, because I am not crazy to install something from Microsoft before it  releases a service pack.

# March 14, 2007 4:15 PM

ergergerg said:

# March 15, 2007 9:38 AM

Jeff said:

Yes, the old "you don't know how to use your computer" thing is always a really solid argument. :rolls eyes"

# March 15, 2007 9:41 AM

Kevin Jensen said:

OMG that is about the dumbest post i've ever seen.  I too like some of 37signal's philosophies, but that is just plain stupid.

REAL MEN USE PUNCHCARDS!!!!

# March 16, 2007 2:29 PM

Jesse said:

No no no no, you're missing the point.

You give the interns an empty desktop with notepad and tell them to have fun.  Later, after much pain, suffering and hopefully halarity, you allow them to use an IDE (maybe an outdated one first).

# March 16, 2007 3:01 PM

Will Green said:

<q>Using a text editor instead of an IDE because you want to be "in control" is like rubbing two sticks together to make a fire when you have a flame thrower available to you.</q>

<p>How many Boy Scouts are you going to take out when you fire up that flame thrower at your next camping trip?</p>

<p>The point is sometimes you don't, or <em>shouldn't</em> use that flame thrower, just because it is available to you. If you want the fine control, perhaps the IDE isn't going to give you the level of control you need for the particular task.</p>

<p>You should also note that Windows Notepad is <strong>NOT even close</strong> to on par with the text editor that 37 Signals uses: TextMate. Way more powerful, way better.  Try <a href="http://www.e-texteditor.com/index.html">E Text Editor</a> for a taste of what they're talking about.</p>

# March 16, 2007 3:06 PM

Jeff said:

If you don't have control, then maybe you're using the wrong IDE.

# March 16, 2007 3:24 PM

AndrewSeven said:

Notepad == pinhole camera?

# March 16, 2007 5:07 PM

Granville Barnett said:

I always have intellisense turned off - if I need it I just hit ctrl+space.

I see their point, but its a little extreme - maybe with a language that has a handful of language contructs.

Just watched the screencast of that editor and its pretty much VS with no intellisense - it looks cool nonetheless though.

Like anything though, a good coder can use notepad as easily as they can use something like notepad.

I agree with you Jeff :-)

# March 16, 2007 6:03 PM

Mark Wisecarver said:

Text editors come in very handy with any coding IDE, even for tricky methods of debugging XML, but especially for stripping out rich text when you copy and paste code from IDEs like VS 2005, which is something I use Editpad for a lot.

# March 16, 2007 6:19 PM

mike wolf said:

ok i disagree w/ you.... I love visual studio and eclipse and net beans before that.... BUT as that im reaonably new to the ms fold (4 years) I can say that many ms developers I interact w/ can be kind of brain dead due in part to their dependence on visual studio... they lose track and sight of what their doing... or never knew in the first place.   To be honest if im not working in a .net environment im working w/ a nice text editor (textmate usually) and a console, and feel plenty productive.

Keep in mind that visual studio is an anomoly in the ide world... becuase... compared to many others its pretty good....

# March 16, 2007 7:27 PM

Joe Chung said:

I disagree, Mike.  The dependence on Visual Studio is not the problem.  The abysmal state of API documentation on MSDN is.

# March 16, 2007 8:28 PM

Brian Clubb said:

This is dumb.  Maybe when you are first starting and not required to get important things done in a short period of time this makes sense.

Most developers are not at this level anymore, especially in the workforce.  If you know what is going on then use the best tools available.  The point is to be productive.  Use frameworks that empower you and IDEs that simplify your life.  I do not care if someone NEEDS their intellisense.  These people are most likely onto higher things now in their roles as developers.  

Writing code is important, but I would rather use my brain cells on design patterns than language syntax.

# March 16, 2007 9:58 PM

Brian Clubb said:

I don't care about the hardware or software.  The competition is good, but not to the point of making one that much better than the other.  

The thing that I think is the most annoying to me is that Mac people think they're so great for owning a Mac and always need to tell people.  It just seems a bit pretentious to me.  I know sometimes Windows people can be like that, but Apple built a whole marketing campaign that encourages this.

# March 16, 2007 10:16 PM

Jeff said:

Perhaps, but once I switched, I felt it wasn't hype.

# March 16, 2007 10:32 PM

Justin Y. said:

I'm a little late, but I run Parallels on a 12" MacBookPro Core 2 Duo with 3 gigs of ram.  I give XP only about 756megs of memory to work with, and 32gigs of hard drive.  Visual Studio 2005 and a full SQL install work quite well.  However, I've gotten lots of blue screen's in general when things down shutdown properly (like if osx freezes).  But fortunately, you can easily clone your whole xp instance in just a few minutes, so complete backups are easy, and you can boot instantly to it in case of emergency.  (I probably have 6 or 7 standby XP/Vista/Linux images)

With parallel's coherence mode, it's really nice!

# March 17, 2007 5:25 PM

Donniel said:

I hope don't take offense, but your UI is pretty depressing. In spite of the AJAX-ness (I can make words up too!), it seemed pretty ordinary. Less-is-more is great, but I think you need some major re-designing to make the forum more appealing...that's my two cents anyway...

Also, and this is probably due to the fact that your AJAX isn't asynchronous yet, the UI completely stops responding when you click on a name, until the information is retrieved. Pretty annoying.

I haven't really been following your POP forums project, so forgive me if I'm missing something obvious.

# March 18, 2007 5:04 AM

Jeff said:

It is quite asynchronous now, thanks. I don't take offense, because I think you're wrong. There is no reason to make things prettier for the sake of being pretty, especially since it will live in a page template on 99% of the sites that use it.

# March 18, 2007 9:37 AM

Joe said:

But there's clearly a need for the word, "high performance" or "high performing" as an adjective is too much of a mouthful.  

Borrowing "performant" from the French is a natural thing to do - that's one of the ways languages evolve.

# March 18, 2007 12:31 PM

beavis and butthead said:

um hhhhhhh how do u like ckrack open an i pod cause my like hold botton is stuck on hold or something hhhhhhhhhhh yah thats a good one beavis hhhhhh

# March 19, 2007 7:24 PM

Jason said:

I just started using your control here...it works great and I'm really happy that you posted it for all. Only problem I have encoutered is that the modal-ized area doesn't cover the entire page only the height of the visible browser area. So when a user scrolls down, they see the modal line and controls below the line work (when they shouldn't). this occurs in IE7 and FF. How do I get the whole page to be modalized?

thanks very much!

-jason

# March 20, 2007 11:38 AM

Mike Minutillo said:

I agree at least in part with the point made. I think that the most important thing with any development tool is control and understanding. If a tool is doing something for you which you are unaware of, you should switch it off and get to know that feature.

IDEs should be a power user tool which allows a developer to take shortcuts and just "Get Things Done"(TM).

# March 20, 2007 6:29 PM

Chris Hammond said:

Can we get any more apple banter from you? How is this "General Software Development" related?

# March 23, 2007 11:26 AM

John Walker said:

Jeff,

I'm sure the AppleTV is very nice and simple to use. That said, I think the Xbox 360 is also extremely simple to use. My technophobe wife uses it all of the time and so I find some of the ooohs and aaahs about AppleTV a little much.

christoc - shouldn't Jeff be able to post anything he wants here? It is his blog after all.

# March 23, 2007 12:12 PM

Jeff said:

I think it's relevant because almost everything about Apple involves UI, and that's software development. If you don't like it, don't read it. It took you more time to type your response than if you had just skipped it.

I have a 360 as well, and I absolutely love it. The problem is that, in terms of music, it's not part of the Apple stack I got into four or five years ago. Microsoft has had so many DRM schemes and device chaos since then, and no store I've wanted to use. The 360 is great for trailers and "rental" downloads, but as a media hub it doesn't meet any of my needs really.

# March 23, 2007 12:22 PM

AC said:

Jeff, with all due respect,

I read this blog entry through 'ASP.NET Community Blogs' aggreation blog.  This entry has no place there, but I don't know whom to complain?

I know I can always skip reading your entries, but it is annoying to see completely irrelevant entries in 'ASP.NET Community Blogs'.  

# March 23, 2007 12:45 PM

Jeff said:

I love when people say "with all due respect" when they really mean "I don't respect what you're doing at all."

People gave me crap a couple of years ago for posting career related stuff too, which I found particularly absurd since that's as much a part of what we do as typing "public void" on a daily basis.

You're free to disagree, I'm just not that interested in hearing about it.

# March 23, 2007 12:55 PM

The Other Steve said:

Too bad the Apple TV is propertiary technology and locks you into using Apple everything.  

Not that Microsoft is any better, but man it'd sure be nice if these companies could agree on a standard.  Imagine if to play a DVD from Touchstone you also had to buy the Touchstone set top box.

# March 23, 2007 1:38 PM

Jeff said:

I agree that's a real issue, though as I mentioned, not a big deal if you're in the iTunes world. And "proprietary" is relative too, since H.264 and MPEG-4 are hardly Apple technologies. If your video stuff is in that realm, you're golden.

# March 23, 2007 1:44 PM

Stephen said:

Maybe someone reading this can tell me what this line is in VB

return this.FindAll(delegate(NavEntry nav) { return nav.Title.Contains(text); });

# March 23, 2007 2:45 PM

Chris Hammond said:

I get every apple thread posted because it comes across the asp.net feed, I guess I need to setup a rule in my outlook to just delete all RSS items that have the word Apple in them, then I'd be golden :)

# March 23, 2007 2:49 PM

Trey said:

but you can pass in parameters to a predicate and create much more robust search patterns with them via encapsulation in the predicate:

private class MyPredicate

{

  private string foo;

  private bool bar = false;

  public MyPredicate(string foo) { this.foo = foo; }

  public MyPredicate(string foo, bool bar)

  {

      this.foo = foo;

      this.bar = bar;

  }

  public bool find(string s)

  {

      if (bar)

        return this.foo.Contains(s);

      else

        return this.foo.Equals(s);

  }

}

usage (where this is List<T>):

MyPredicate p = new MyPredicate("test");

this.FindAll(p.Find);

-or-

MyPredicate p1 = new MyPredicate("test", true);

this.FindAll(p1.Find);

that's just a simple example. HTH

# March 23, 2007 3:09 PM

Sebhelyesfarku said:

Yeah this is the typical feature-castrated Apple product for retards.

# March 23, 2007 3:11 PM

Kal said:

Avoid using anonymous methods: they are hard to understand.  Previous example is much more easy to understand.

Following article explains it all...

http://dotnet.sys-con.com/read/319753.htm

# March 23, 2007 3:21 PM

JW said:

With all due respect Sebhelyesfarku ...

# March 23, 2007 3:39 PM

Jeff said:

Hard to understand? I'll admit that delegates in general are kind of a weird and abstract concept to grasp at first, but how is my example not easy to follow?

Trey's example is pretty good if you need to do something more complex. Mine was intended to solve the problem I encounter most of the time quickly and in a line of code.

# March 23, 2007 3:43 PM

Chris said:

At least Apple TV/iTunes is cross platform. Windows Media's encrypted files (and Zune's) can't be used on a Mac even though making such compatibility possible probably wouldn't be a massive undertaking. iTunes, on the other hand, works with 99 percent of the world's computers since it works on Windows AND Macs. So, technically, you don't have to buy Apple everything (hardwarewise)...

# March 23, 2007 3:52 PM

A Different Jeff said:

Brian Clubb mentioned that it annoys him that "Mac people think they're so great for owning a Mac and always need to tell people" It's not pretentiousness, Brian. Sometimes it's a "Wow, this is so cool, I have to tell everyone about it" kind of a thing, and other times, it's a "Hey, if you did things this way, it would be easier and more fun" kind of a thing. Mac folks like to share and help each other, so that spills over into conversations with non-Mac users sometimes.

Personally, I think the problem with Mac Vs PC arguments (and the trolls that have them), is that far more Mac people have used Windows than Windows people have used OS X. The Windows people are arguing from a position of ignorance, and the Mac people can't understand why the Windows people are so obstinate and insulting to them. I've been called many names on the interweb, by people who know nothing about me, merely because of my preferred computing platform. That's why Mac people seem so sensitive. Windows folks tend to be awful quick with the insults (in my experience).

Anyway, thanks for the article. Speaking as a cross-platform-but-Mac-preferring guy, I'm glad you "get it"!

# March 23, 2007 4:35 PM

Dave T said:

Interesting -Competition is good. I loathe the video selection that is available for my XBOX360. The selection right now is so limited and the DRM is stupid...., but with Apple TV joining the fray, hopefully studios will open up content up a bit.

# March 23, 2007 5:28 PM

Duncan Godwin said:

I can't wait for C# 3.0 when I get to write:

return this.FindAll(nav => nav.Title.Contains(text));

# March 23, 2007 6:39 PM

Tedious said:

"Proprietary" is not relative.  It does not mean "obscure" or "non-standard".  It means "owned by a proprietor".  

WMV is owned by a proprietor. It is proprietary.

ATRAC is owned by a proprietor. It is proprietary.

WMA is owned by a proprietor. It is proprietary.

AAC, H.264 and MPEG-4 are open standards.

ALL DRM is proprietary.  

DRM is not a requirement for AppleTV, nor iPods.

# March 23, 2007 7:05 PM

David Taylor said:

Jeff I was just about to post but Duncan beat me to it.  As he said this:

   return this.FindAll(delegate(NavEntry nav) { return nav.Title.Contains(text); });

Will be able to be written as this in C# 3:

   return this.FindAll(nav => nav.Title.Contains(text));

Also note that VS Orcas will actually let you write this code using C#3 targetted against .NET 2.  In other words you will be able to run this code on .NET 2 without needing .NET 3 or 3.5 installed on the client machine because it is all some by the compiler and does not require runtime or library support :-)  (thanks for ScottGu for clarifying this).

# March 23, 2007 8:20 PM

Jeff said:

That's very sweet. I was all over the betas of v2, seeing as how I was only writing my book at the time, but with a "real" job this time around I just haven't taken much time to look at v3 stuff outside of what Scott has been posting.

# March 23, 2007 8:58 PM

Ramon Leon said:

I'm amazed that passing in an anonymous predicate isn't totally obvious.  It's the entire reason all those finders were added to the collection hierarchy in the first place.  

This is totally standard practice in most decent languages.  If this looks cool or tricky to you, you need to put down C# and learn some better languages.  

Ruby, Scheme, Python, or Smalltalk would be a good start. C# is a rather impoverished language and you don't know what you're missing if you haven't tried a couple other good languages.

For one thing, you shouldn't have to subclass a generic list add a method like GetItemsContaining to a list, the whole point of the generic finders and generic lists is that you can use the generic list "as is" without needing to subclass it.  If you subclass it, it's no longer a generic list and you've gone back to the old method of type safe list subclasses, YUK.  You should do this instead...

<pre>

IList<NavEntry> SomeMethod(string someText){

   IList<NavEntry> entries = //fetch from somewhere

   return entries.FindAll(delegate(NavEntry each){

       return each.Title.Contains(someText);

   });

}

</pre>

The point of the anonymous method is that it allows the client to search for anything he wants without you needing to write special search methods like GetItemsContaining.  If you're going to use generics, use them right, don't subclass them.  You shouldn't have to subclass a generic list, it defeats the purpose.

Other languages do this better. For example, in Smalltalk this example would look like this...

<pre>

someMethod: someText

   entries := //fetch from somewhere

   ^entries select: [:each | each title includesSubString: someText ]

</pre>

In Ruby it'd look like this...

<pre>

def someMethod()

   entries = //fetch from somewhere

   entries.select {|each| each.title.include? text }

end

</pre>

In Scheme, it'd be something like...

<pre>

(define (some-method some-text)

 (let ((entries '("fetch" "from" "somewhere")))

   (filter (lambda (each)

             (substring? each "text"))

           entries)))

</pre>

Seriously, using anonymous methods and higher order functions is par for the course in any decent language.  Don't let just one language shape your thoughts.  Anonymous predicates are basic stuff, not some fancy pattern only smart people use.

# March 24, 2007 4:17 PM

Jeff said:

I was with you right up until you started dissing the language. How is that constructive or even relevant? Shall I tell my employer (and most of the employers in my area), "Hey, forget this C# stuff. Use Smalltalk instead!"

# March 24, 2007 4:22 PM

Donniel said:

Hi Jeff,

I guess we must agree to disagree. Was just offering my opinion as an end user.

# March 25, 2007 7:49 AM

Ramon Leon said:

I'm not dissing it, I use it daily as well, both VB and C#.  I'm simply saying it's not the greatest language to "learn" things in.  One should learn Smalltalk because it'll make you a better object oriented programmer in any OO language.  One should learn Scheme/Lisp because make you a better functional programmer in any functional language.  

These languages are what's called "pure", whereas C# is a mixed hybrid that makes learning new things difficult in comparison.

Everything you learn in Smalltalk/Lisp will directly transfer to "any" language you work in because all those other languages in one way or another are derivative of Smalltalk/Lisp.  They're the Latin of programming languages.  Once you know them, everything else looks easy, and less capable.

# March 25, 2007 1:58 PM

Jeff said:

That's not an accurate assessment of how the real world works. Only half of the people I work with majored in anything computer related in college. The rest of us did a number of other things. We learned what we had to do to make us marketable.

Does not knowing the finer points of language design or design patterns make us less useful developers? I'd say not. I think we write some damn good software, and frankly we deliver useful stuff quickly.

# March 25, 2007 4:44 PM

Ramon Leon said:

Um, I am one of the rest of you.  I'm self taught. I'm not quoting stuff I learned in college, I didn't even go to college.  I work in the real world just like everyone else, and what works in the real world is delivering results.

C# might make you marketable, but Smalltalk/Lisp will make you a better C# programmer, and in the real world, that matters, and ultimately makes you even more marketable.  This isn't abstract computer science stuff I'm talking about here, it's basic down in the dirt programming.  Passing around anonymous delegates(aka functions) is something even JavaScript does constantly, and that's about as real world as you can get.

Learning isn't a zero sum game, you aren't going to learn less about C# by also learning other languages. Quite the contrary, the other languages will help you learn and apply skills faster, and will apply directly to C#.  Programming is in the mind, not in the syntax, and those other languages enable your mind to flourish faster than C# can.

# March 25, 2007 11:20 PM

Jeff said:

I don't think you're seeing my point. When am I going to do this? In my spare time? That time is reserved for being social, hot tubbing, or traveling!

# March 25, 2007 11:25 PM

Ramon Leon said:

No, I see your point, I just don't agree with it.  If you can't find a little time now and then, outside of work to sharpen the knife, you're just making your work that much more difficult and time consuming.  

Once you sharpen the knife a bit, the work itself becomes so much easier, that it becomes easy to fit this stuff into work hours.  You don't have to be able to write code in these language, to learn to read them.  Learning to read them alone, is enough to benefit from the ideas you'll get from them.

For example, subclassing a generic list to make a type safe list shows such a gross misunderstanding of generics that I can tell right away you aren't actually benefiting from them as much as you should be.  Proper use of generics could actually reduce your workload by tenfold or more, if only you sacrificed some spare time to study them better.

When you declare an instance of a generic list

IList<Customer> list = new List<Customer>();

Conceptually what is happening is the compiler generates a CustomerList for you, on the fly.  Generic lists are supposed to save you from having to manually build type safe lists.  

But generics are much more powerful than this, they can be seen as code generators that greatly reduce your workload by having generic templates that you subclass and parameterize with the subclass itself in its own declaration.

class Customer : BizObject<Customer> {}

Could instantly give you access to an api like Rails but completely type safe with no casting...

Customer customer = Customer.Find(300);

IList<Customer> customers = Customer.FindAll(delegate(Customer each){

   return each.Name.StartsWith("a");

});

Money totalOrderAmount = Customer.FindAll().Reduce(Money.Dollars(0), delegate(Money sum, Customer each){

   return sum + each.OrderTotal;

});

Because you can write methods like Find, FindAll, Reduce, Map, Collect, Reject, etc. totally generically without a specific type in mind knowing it'll be passed up as a parameter later.

You could take any code you write that appears at all repetitive, and make a generic template that completely automates that for you in the future.  The point is, the effort you must put into learning this stuff, even if it's in your off time, will pay you back a hundred fold by reducing your work load and actually giving you more free time in the end.  So the truth is, you don't have time not to do it.

# March 26, 2007 1:38 AM

Mike said:

I recently developed some code where I created TList objects. all they did was inherit from List<T>. I did that to make the code more readable for coworkers that don't know generics (yet). They can now say:

ItemList items = ItemManager.GetAll();

But they can also still do this:

ItemList items = ItemManager.GetAll().Find(

 delegate(Item item) {

   return item.Name.StartsWith("a");

 }

);

How is that not good? I still have the power of the generic list, but my API is more expressive (Item, ItemList and ItemManager). Also, there might be methods you want on the list that are complicated enough that you don't want to repeat them where you use it (in the anonymous delegate), so now there's a place to store it.

I'm interested in your feedback because your strong statements made me doubt my own methods. I'm trying to sharpen the knives here, so to speak ;-)

# March 26, 2007 4:17 AM

Jeff said:

Work is not difficult or time consuming. That's why I made the comment that we're doing quite well. Learning another language takes a hell of a lot more than "a little time now and then."

# March 26, 2007 8:53 AM

Wim Hollebrandse said:

Ramon's comments have certainly drawn my interest into looking at the core concepts in languages like Smalltalk. See how I said "looking at", not "learning a whole new language". It's about grasping concepts, being able to apply them and to see parallels in different languages, that in the end aids your developer toolkit.

Honestly Jeff, you seem to over-argue and "yay-nay" until the cows come home instead of simply saying saying "Wow, how interesting I'll have a look at that."

In the end that kind of attitude would fare you much better.

And yes, I don't give a hoot you won't give a hoot about my opinion either. ;-)

# March 26, 2007 12:40 PM

Jeff said:

That's because I'm more business minded than most code monkeys. Even if something is "interesting" I attach some value to it. I can't possibly find the time to follow up on every thing that's interesting to me.

# March 26, 2007 1:02 PM

Ramon Leon said:

"How is that not good? I still have the power of the generic list, but my API is more expressive (Item, ItemList and ItemManager). "

@Mike, because you now have to maintain that cruft.  Subclassing a generic class to produce a type safe version is exactly what generics are meant to prevent.   It's useless code that adds nothing of value.

"Also, there might be methods you want on the list that are complicated enough that you don't want to repeat them where you use it (in the anonymous delegate), so now there's a place to store it."

@Mike, a common mistake I've seen people make.  You should never put methods like this on a list.  A list is a generic building block, specific code like this should go into specific predicates that can be passed to the lists generic methods.  Put them as nested classes in your business class, then you can write code like this...

IList<Employee> deservesRaises = someList.FindAll(new Employee.EvaluatePerformancePredicate());

This puts the complex predicate, which contains business rules, where it belongs, in the biz object, and keeps the list, totally generic, a simple building block.

You might do something similar for IComparers and sorting...

IList<Employee> getsParkingSpotOrder = someList.FindAll().Sort(new Employee.ByPerformanceASC());

"I'm interested in your feedback because your strong statements made me doubt my own methods. I'm trying to sharpen the knives here, so to speak ;-)"

Good, more people should, it takes very little effort and the payback is tremendous.

@Jeff, I can't possibly believe huge increases in productivity aren't of interest to you.

"Learning another language takes a hell of a lot more than a little time now and then."

Actually, it doesn't, since most of them are similar, and you only need learn to read to benefit, not write.  Learning to write another language can take more than a little time.

# March 26, 2007 4:21 PM

luis araya said:

i guess im not the only one with the problem!my pavillion ze5607wm decided to go for a fly,droped 3plis feets,busted the dc jack,i took it apart,but i couldnt get to that area to replaced it!i understand its conected to the motherboard and might have to replace the board too?sparepartswharehouse.com said it will charge me 200 for repairing it,that includes parts/labor/and shipping to my hm.Doesnt it sound too good to be true?i hope not!!!shipping it today!!!

# March 26, 2007 7:10 PM

codeculturist said:

You are hiring for a Hibernate project. Steve knows Hibernate so well, he can write Hibernate mappings on a piece of notebook paper for any ORM situation without referencing any documentation. Mike understands Hibernate, and can write any Hibernate mapping given access to Google or Hibernate in Action. Let's assume that, in all other respects, both developers have personalities and values that align with your company, have other skills that will add value to the team, communicate well, learn quickly, have similar years of experience, etc. The extent to which they can write correct code off the top of their head, with or without an IDE, is the discriminating factor. Would you hire Steve or Mike?

# March 26, 2007 8:42 PM

Chris S said:

Aaron,

If you haven't used AnkhSVN since the 1.0 release, I highly recommend that you give it another shot.  I agree that most of the 0.x versions were unstable, to say the least, but apparently it matured really quickly and is now actually reliable.  Check it out!

# March 27, 2007 4:21 PM

Annie said:

Same problem. I stuck a tiny piece of tinfoil into the power chord, then stuck it in the computer. It's working and I needed to jiggle it constantly before.

# March 27, 2007 6:41 PM

Lorin Thwaits said:

I didn't get a chance to go last year, but heard it was great.  I think it's going to be a little different conference this time 'round.  (Prolly some good announcements though!)  I expect PDC will rock as it always does, so I'm also putting my $$$ there this year.

# March 28, 2007 12:05 PM

ed ventura said:

Did you ever find a fix for this? I'm getting the same problem and it's driving me nuts.   -ed.

ed.ventura(at)gmail.com

# March 30, 2007 11:33 AM

Arto said:

Same problem as you all have on my HP Pavilion ZV5000.

Today I am going to replace the power jack with a new one which I ordered at Ebay.com

This is a big problem for HP and I will never buy a HP laptop again unless they recognise and fix the problem.

# April 1, 2007 8:56 AM

Cory said:

RE: A different Jeff (above) - you hit the nail right on the head. As a Mac owner/user, I have used Windows since 3.1 but converted to Mac OS when I had to purchase a Power Book G4 while a student at Columbia (a mostly Mac oriented Psych research lab). Since then, I purchased a Power Mac G5 and now a Mac Pro, and before then used a 23" Apple Cinema Display on a Windows system I custom built on a Lian-Li Aluminum tower. While I do run Windows Vista on another drive on my Mac Pro (for AutoCAD work), I do admit both OS's have pro's and con's, but the Windows/PC users get extremely aggressive and defensive when discussing the differences, making any debate virtually impossible and unfriendly. It's a shame, as it isn't a "personal" issue, but I don't understand the [extreme] sensitivity.

# April 4, 2007 9:25 PM

Old Man Raley said:

Same Problem. Gonna put a socket on a pigtail and change the plug on the charger.

# April 5, 2007 4:41 PM

yo said:

2 words screw driver

# April 6, 2007 8:45 PM

K said:

Steam sucks. No one should by this crap because of steam. You're right, why pay $50 for a game that you have to register to play even in single mode and offline. It sucks.

# April 7, 2007 2:54 PM

Lt.CYX said:

Well, it IS an 1.0 product. But a Microsoft 1.0 product. That means that it's a 0.001a product by any other company standards.

# April 9, 2007 9:37 AM

Spudnuts said:

It's not a problem with just HP notebooks, it's a problem with all Notebooks. The plug is small and everyone seems to think that you need to jam in the power adapter to make sure it's plugged in. You don't need to force it. I have my own IT company and have fixed many of these.

# April 10, 2007 9:52 AM

Jeff said:

Not all notebooks... Apples have mag-locks that never break.

# April 10, 2007 4:33 PM

foobar said:

Unfortunately MS decided to use Java as their starting point for C#.  Ah well.  That's marketing for ya.

Ah, Lisp.  You can build some great data retrieval systems using it.  Sometimes I wish SQL didn't take off just so that Lisp would've become more popular.

# April 14, 2007 12:19 AM

Gustavo said:

Sorry, new to .net, can you please explain a little how to use your code?

Thanks,

Gustavo

# April 15, 2007 6:41 AM

Jeff said:

It goes in a class that inherits DropDownList. It should be either compiled in a class library or in App_Code.

# April 15, 2007 10:05 AM

witheld said:

No-one has yet mentioned the DRM lock-in...

The licence situation hasn't been clarified - its been tightened - taking away your right to choose which computer to test vista on and taking away your right to choose to upgrade without paying for the same software again.

With previous versions OEM licenced software was tied to a "single major component" and wasn't transferable to a new machine, a full licence however entitled the user to install a single copy of the software - this could be used on any machine you like as long as it is only on 1 at a time.

To the comment about company living up to share-holders: do you believe a company should be able to abuse a monopoly and act how it likes to increase profits and reduce competition and justify it with some random comment about living up to shareholders?

Does living up to shareholders exceed the need to act morally?

Are you a shareholer btw?

# April 17, 2007 11:24 AM

Rafael said:

One of the challenges of self-learning a new technology is to get the overall picture.

I have found a good number of articles on generics but they focus on one aspect and do not provide the overall picture.

Ramon's comments were really useful for me to see there's a larger picture for generics.

Is there a book, blog and/or article that you recommend?

# April 19, 2007 1:37 PM

Kellbranch said:

You´re preaching to the choir. I have no solution for your problem but i can hate with you.

# April 22, 2007 2:50 AM

praj said:

I had power issues on HP NX9110 a while ago , i switched to a new adapter , it worked a while and now the power light blinks like crazy .... I like my laptop ... is there anything I can do to fix it ... makes me want to sue HP ...

# April 25, 2007 10:28 PM

Dan said:

I really hate vista. Everything I run on it is incompatible and my hardware gets my BSOD's. Whats the point in it! Ive just wasted my money.

I think everyone should switch to linux (ubuntu 7)!

Check out my website at http://www.ihatevista.co.uk/ and share your vista experience.

# April 28, 2007 3:51 AM

Mathew said:

Great post.

I don't know whether you've seen it since you posted this, but there's an app called Punakea which is great for tagging. Until iPhoto has that kind of functionality built in (or until i find it!) I'm using that and its mega handy.

# April 28, 2007 6:59 AM

Kevin said:

Hi All,

Great solutions overall, however I can't seem to apply the theory to buttons which are not directly accessible in the code behind (such as buttons within templates of FormViews where a FindControl method is needed to access the control).

Here's a short snippet from the code behind:

Button btn = (Button)formView1.FindControl("btnUpdate");

Panel1.DefaultButton = btn.UniqueID;

I get an exception:

The DefaultButton of 'Panel1' must be the ID of a control of type IButtonControl.

I think the problem is Panel1 cannot find the button because it is nested in a template within the formview (i.e. the controls are roughly designed as:

<asp:Panel id="Panel1" ... >

 <asp:FormView ID="formView1" ... >

   <EditItemTemplate>

      ...

      <asp:Button id="btnUpdate" ... />

      ...

   </EditItemTemplate>

 </asp:FormView>

</asp:Panel>

If anyone has a solution for setting buttons within templates as default please post!

TIA

Kevin.

# April 29, 2007 12:02 PM

Furious developer said:

I've just had it with IE. My job would be great if it wasn't for IE. I love developing for firefox and maybe it's my fault for developing for firefox on a mac and only at the end then spending hours fixing it for IE.

But, why does IE have to be so bad at rendering css. Why do I have to feel like I'm taking a degee course in IE bugs to get everything to look right.

How can we persuade the entire web community to stop using IE. Can we start an IE<1% campaign to get the stupid thing to a level where we don't have to code for it?

# April 30, 2007 8:38 AM

xxxgroove said:

That is exactly what we were waiting for... thanks guys

# May 3, 2007 5:47 AM

The Other Steve said:

Sort of agree.

The wisdom of businesses is also kind of stupid.  The DRM is basically a way to treat your customers like criminals.  But then, I do think the best answer is to not buy it.  Don't listen to a company that is trying to sell you something restrictive.

We live in a global world.  My girlfriend is Russian.  Sometimes we want movies which aren't yet available in the US.  So we'll order them, and we'll decrypt them so that they can be played.

Capitalism is supposed to be about Businesses responding to the desires of the marketplace... Consumers ought to be smarter, and stop buying products from companies that won't deliver.

# May 3, 2007 3:21 PM

Allen said:

never underestimate the power of large groups (crowds if you will) of stupid people

# May 4, 2007 3:21 AM

Kyle said:

"Capitalism is supposed to be about Businesses responding to the desires of the marketplace..."

I think I disagree.  Responding to the desires of the marketplace is not a foundation of Capitalism, rather it's a byproduct of Capitalism.  

"The DRM is basically a way to treat your customers like criminals."

While I'm not crazy about DRM, it wouldn't be necessary unless the company has realized that they are losing money through theft.  So, essentially, DRM was not created to treat its customers like criminals.  It was created to prevent the customers who actually ARE criminals from illegal activity.  Companies have a right to benefit from their hard work and innovation.  

I'm not bothered by DRM all that much, mainly because I have no interest in copying and distributing electronic media.

"Don't listen to a company that is trying to sell you something restrictive."

You want restrictive...  Have you ever read XP's EULA?  Technically, you don't own XP.  You own the license to XP, and the right to use it.  That's all.  MS gives you a copy of the software to run, but technically it still owns every bit of XP on your computer.

# May 5, 2007 10:26 AM

KevinFerron said:

Wow.

The "constraints and boundaries" as you keep referring, lets call it the Provider model.  The Provider model isn't meant to fit every scenario. However, what it does provide is a base functionality that is common to most authentication schemes.  Authentication and Role Management are abstracted into the provider.. you shouldn't need to delve too deep into what it does. Consider linking users providerkeys (to another database on the same server) to a users table.. use your custom user table as all the extended data.. in your object model, you have a way to create your base user type from Membership.GetUser().

If you're looking to truly make interoperative controls, please continue to question your belief that using a provider system constrains you.  http://en.wikipedia.org/wiki/Provider_model

# May 6, 2007 4:10 AM

anon said:

HP makes the worst laptops ....

# May 7, 2007 3:31 PM

daryl said:

eindows vista is crap. I bought it on a new pc, and its heading back to the company windows xp will walk right around it with less memory and processor.

# May 9, 2007 3:21 PM

Anon said:

Morning

Has there ever been a resolution to this problem? We are experiencing the same issue. We have searched and tried all possible scenario, yet when we submit on the server it loses the session variable but not on the Dev boxes.

# May 10, 2007 1:48 AM

Atakmim said:

10x man, great job !

If you want make custom control and share it with the world ;)

# May 10, 2007 9:49 AM

Alex said:

I have to agree with Majik - I've been working with ASP.net for about a year now (having come from classic ASP) and I'm really not convinced it brings much to the party. It's supposed to generate all this cross-browser compliant code, but then it misses out on something pretty basic like OptGroups. What the hell? .net development takes about 50-100% longer than classic, and that's not because I'm learning it - it just does. However, and it's a big however, I have a sneaking suspicion AJAX really is the big deal over the horizon, so I'll keep plugging away...

# May 10, 2007 7:58 PM

Al said:

In response to Kyle's comments...

If responding to the desires of the marketplace is not the foundation of capitalism, what is?  Market forces are the underpinnings of pure capitalism.

It is regrettably too easy for companies to justify DRM or any kind of software protection by claiming to protect themselves from people stealing their software.  Unfortunately, the only people hurt by these practices are the honest people who purchase the products (including paying for the DRM, higher prices, inconvenience, and issues).  Those who don't pay for the products are those who would probably not have contributed to the company's bottom line anyhow, are able to break the DRM, and make it more likely to make honest people see how ridiculous the whole process is and how artificially constrained we are by the way media is packaged (case in point, not being able to play my DVD collection on my iPod).  Everyone should be interested in DRM for these very reasons.  In fact, the next HD DVD you can't seem to get to play at full resolution on your PC but works fine on your HD TV is probably because you aren't using an HDMI cable on your PC.  The authorities should be going after the thieves and our country should be working with countries to make sure their laws respect the rights of the product owner.  However, that should be the extent of it.

Finally, technically you don't own any software other than that which you write completely on your own.  However, that software will be pretty basic without using any libraries that are all licensed with varying degrees of restrictions regardless of being open or closed source.  How ludicrous would it be if GNU's license read, "By accepting this license, you own this software?"  Or if Microsoft's license read, "By accepting this license, Microsoft accepts full responsibility for how it might be used including but not limited to any misuse?"

# May 14, 2007 12:45 AM

Danyal said:

Is very nice, high five!

# May 16, 2007 9:48 AM

Chris Hammond said:

www.asp.net is down as well, so I'd assume the upgrade for CommunityServer didn't go so well last night!

# May 16, 2007 11:04 AM

Mike said:

It was working for me earlier today, but it was very slow.

# May 16, 2007 11:40 AM

Mike said:

The forums appear to still be working.  At least for now...

# May 16, 2007 11:55 AM

Mike said:

Man, the exact day I decide to write a javascript using the Clientside library and I can't use the docs! Who's running the show over at www.asp.net? Very unprofessional.

# May 16, 2007 4:15 PM

Vikram said:

I can understand How painful it can be when deployment fails that badly

# May 17, 2007 12:24 AM

Andrey Skvortsov said:

Migrate to somehing other,like extjs+jquery-it has no server side dependences and I think it's more proper approach in long run than any AJAX.NET.

# May 17, 2007 5:47 AM

Jeff said:

How exactly is that advice supposed to help me now?

# May 17, 2007 9:02 AM

ScottGu said:

Two things to check: 1) Make sure the xhtmlconformance setting isn't set the "legacy" in your root web.config/machine.config. This causes problems with ASP.NET AJAX, and could be why you are seeing different markup be generated. Details here: http://weblogs.asp.net/scottgu/archive/2006/12/10/gotcha-don-t-use-xhtmlconformance-mode-legacy-with-asp-net-ajax.aspx 2) You could potentially be having problems with how how ASP.NET AJAX is registered on the machine. Chris has a good blog post to check here: http://weblogs.asp.net/chrisri/archive/2007/02/02/demystifying-sys-is-undefined.aspx In general, assuming ASP.NET AJAX is installed on the remote server, you should just be able to xcopy the application to it. No additional registration is required. Feel free to send me email if you still have problems. Thanks, Scott
# May 17, 2007 10:00 AM

Jeff said:

I was just about to do a follow up post. I found the difference in the root web.config about 15 minutes ago, and it was in fact the xhtmlconformance tag. Someone should really think about doing a KB article for this one.

# May 17, 2007 10:08 AM

Jeff's Junk said:

This morning I started combing through every config file on two servers that I mentioned in my last post

# May 17, 2007 10:26 AM

J-Pizzie Lifestyle said:

# May 17, 2007 12:31 PM

Dave Transom said:

"They handed off to AJAX, which hasn't yet called us back anyway."

I guess they're taking the Asynchronous bit seriously then ;)

# May 17, 2007 4:57 PM

Robert said:

 One of the key things that Windows supporters say in these discussions is 1. Game and 2. a 83% market share.

1. Game, windows wins hands down.

2. 83% market share, well how many of that 83% have ever "extensively" used any other OS? I think of the 83% about 15% of those people have used other operating systems and therefore are actually choosing to use windows the other 62% are practically having windows forced onto them.

Part of a monopoly is barriers to entry and i feel that this is a perfect example to it. People are just not using any other operating system because they cant get hold of it and from what i have found out by asking friends it seems to be that even if they have used it they come to the conclusion of "its different to what i am used to... don't like it... back to my PC" and thats it, they have made a huge conclusion. Computers are a huge part of a lot of peoples lives and i feel sorry for the 62% of people that are almost having windows forced on them as they are missing out.

Other things that PC users don't realize is how much their computing lives have been changed by mac. The mouse was invented by mac along with graphical user interfaces (although they did exist to a certain extent on games consoles).

# May 19, 2007 3:36 PM

Sudhir Malik said:

My son also have the problem with his lap top. HP had replaced the mother board once, now it is aging giving the same problem not coming up. I have not seen mother board going bad within six months. The problem is some where else, Defective desing, insuffient cooling.

Thanks

Sudhir

# May 19, 2007 11:06 PM

Frank K said:

I enjoyed reading your blog from the start and its nice to hear you are having fun again. One day maybe I'll be in the same situation, until then I look forward to reading your posts :)

# May 21, 2007 11:12 AM

jen said:

I disagree that educators lack imagination. I am a teacher who is filled with imagination however my administration frowns on any lessons that have any imagination at all, they want me to teach from the book. By doing this parents also complain a lot less.

# May 23, 2007 7:59 PM

Mike said:

Ubuntu?

Gentoo, please.

I don't see how Microsoft has a monopoly when there's also Mac. I'm on a Mac right now.

I think I'm going to ditch my XP when they're done letting it shrivel and wither away, and stick with some kind of platform on Linux like WineX, or Cedega, if I must pay. Linux has so much more power!!!!!

# May 24, 2007 12:58 AM

Jeff said:

Power for what? Windows may suck, but it doesn't prevent anyone from doing the normal things they need to do.

# May 24, 2007 8:58 AM

Kitten said:

I work for a one of the three biggest isp's in SA in a department that builds massive web applications and we use component art.  Perhaps because our subscription is so massive, we have very few problems with their support, although when we started using ajax we did have a few problems getting a version out of them that didn't conflict with the ajax generated javascript.

# May 29, 2007 7:39 AM

mxmissile said:

"play-by-play every time I take a shit"

I'm sure Twitter users dont care if you run or pass, they want to know what color it is!

# May 30, 2007 12:56 PM

rams said:

Must be a generation-<whatever> thing. I dont get it either. But you have to give it to Scott Hanselman for leveraging the service cleverly to generate the awareness about diabetes.

# May 30, 2007 1:08 PM

gh said:

d0 u spe4|< h4x0r n00|3?

# May 30, 2007 4:11 PM

Derek said:

I also don't get the idea.. Or the usefulness of the service. But I agree that Scott probably used it most effectively in raising people's awareness of diabetes.  As for the rest, I really couldn't care.

# May 30, 2007 7:28 PM

samir vohra said:

hey,,

use sql profiler for this...

dotnetuncut.blogspot.com

# May 31, 2007 4:35 AM

szukuro said:

A friend mine once said (more or less): "If you don't get Twitter [or other similiar sites for that matter], then it's not for you". I guess he was right. I don't get it either, but seems like a lot of people do, so it's probably meant for them.
# May 31, 2007 8:01 AM

Augie said:

I am a teacher, there are blue collar jobs out in this world.   I teach in a vocational school, we work with industry, ask what they need and then teach.  Some may think this is just a way to wimp out on college but this is not so.  Good car mechanics can make 60k +, so can master electricians.  A good programmer makes around 70k (in my neck of the woods).  If you don’t believe me ask yourself how much a plumber or an HVAC man costs per hour when he comes to your house. I promise vocational schools and Jr. Colleges are not for dummies.  

# June 1, 2007 7:57 PM

fabal said:

Can anyone tell me why hitting F5 causes a web resource to be downloaded ? Here are some of the things I have observed using fiddler.

I have a page with a few compiled js resources being gotten through WebResource.axd. I also included some non compiled js resources and images (just straight img and script tags). If these items have been cached opening a new browser and requesting the page causes them to be retrieved from the browser cache, but if I hit F5 only the noncompiled resources are retrieved from browser cache. The WebResorces are gotten again. This doesn't make sense to me. CTRL+F5 should cause cache overwrite not F5.

# June 4, 2007 5:07 PM

Ted Jardine said:

My sentiments exactly. I was explaining it to a friend the other day who hadn't heard of it, and the same response.

I'm thinking like @rams above that it's a generation thing - the problem is I start thinking I'm old for not getting this one (and I'm only 30).

# June 6, 2007 12:34 PM

Samuel said:

I think that sometimes it's good to "cut the cord", but then the question becomes, "What do you do with all that legacy code?"  Do you just hit "delete" and poof, it's gone?  I've been wrestling with that lately and as a result, have kept around a lot of bad code that I've been "meaning to get around to rewriting", but I just don't have the motivation, especially when there are newer technologies and  development methodologies/approaches that are much better and would produce a much better product.  So, in many respects, I see our "agility" as directly proportional to our "motivigation" (or lack thereof :-)

# June 6, 2007 1:23 PM

D said:

To simulate a profile group in a custom profile class, you could use nested classes. For example, put the "public class PopForumsProfileGroup : ProfileGroupBase" inside the "public class PopForumsProfile : ProfileBase". I think this violates CLSCompliant though, because nested types aren't supposed to be public (enum's are an exception to this). I'll give it a try and see if FxCop complains.....

# June 11, 2007 12:27 AM

Mike said:

Kevin: the DefaultButton property is of type string, so you need to set it to the UniqueID property of the control.

# June 11, 2007 6:49 AM

help.net said:

Jeff

Totally disagree with you! I am more a web developer than a windows developer and I can still make a huge difference betweent he two.

I don't know in what 'futuram' world you're living but I can tell you that not every location on this planet is always connected to the web!

The problem with the iPhone is more about the absurd idea to tell real developers at well established WWDC (with 90% of Appple developers there) that the only way to create an app for the phone is to get back to Javascript and HTML!

This is a joke in this way! It's the same debate with Google apps. No way I will put my data or use anything critical with an online software, whatever the size of the host.

I can understand that developers of real application would like to have an SDK as you can have today with Windows Mobile, simple as that.

Now I just read Flash won't be available on the iPhone, another blow for the openess of the phone.

I am an old Apple user, back to 78, but there I say Jobs has lost the plot. Hopefully as usual, he will change his mind in the next 6 months with the iPhone version 2.

# June 12, 2007 1:36 PM

help.net said:

Also one more thing. I watched the keynote and where it's laughable is to have one bloke on stage telling the developers audience that Ajax (indeed Javascript) and HTML was the new way to build solid applications, and all taht with a serious face :-)

LOL!

# June 12, 2007 1:38 PM

Jeff said:

"I don't know in what 'futuram' world you're living but I can tell you that not every location on this planet is always connected to the web!"

In which case, said person would not likely have or be able to afford an iPhone anyway.

# June 12, 2007 1:42 PM

Sahil Malik said:

Okay, take off your black turtle neck and jeans, and take a deep breath.

Good applications, will always leverage the best of both worlds - Web and Locally running code.

If this wasn't the case, Jobs wouldn't have developed a client for google maps inside of iPhone. You could do maps.google.com from safari, right? But you don't .. !! Why?

You tell me why!

# June 12, 2007 1:50 PM

help.net said:

Good point Sahil!

Local applications are another beast than web apps, and this is a web developer who say that ;-)

# June 12, 2007 1:52 PM

Jeff said:

Because they want to integrate it to the phone dialer. That's obvious enough.

"Always" is a silly word to use, as is "never." See above story about Web-based CRM.

# June 12, 2007 1:57 PM

The Other Steve said:

We've got locations just in my office building where the cell signal goes out and I can't get phone calls.

I wonder if the internet will work without a signal? ;-)

# June 12, 2007 3:52 PM

Scott said:

It does seem really short-sighted to not allow offline apps; if that is indeed what this means...recently Google released a 'hybrid' app that has a local SQLLite instance to store data offline. Now *that* would make for an interesting experience! It would be incredibly cool if Silverlight worked on iPhone as well...maybe with some offline capability of it's own :-). Oh and I'm currently sitting with my new AT&T Treo with zero signal on the ground floor of an office building in Redmond...'always connected' is just a fantasy.

# June 12, 2007 5:35 PM

Free software geek said:

A very familiar scenario, one of my major gripes is the lack of support of PNG alpha transparency. You can create some truly beautiful thing with this but they render as big white blocks in IE.

# June 13, 2007 7:54 AM

Onceler said:

Aside from connection issues the iPhone will have (and the lack of 3G for all of us non-Mountain View, CA living people); the glaring hole I see in all this is interacting with the specifics of the device.  

Maybe I am in the minority here, but most of my mobile applications involve bluetooth devices connected via comm ports.  Without an SDK or access to code running locally that can interact with the device itself, the iPhone is practically useless to me.  

Sure the web development will probably be more feature rich than the .NET mobile web development, but for what I do this doesn't really matter.

Here's looking forward to iPhone 2.0

# June 13, 2007 8:15 AM

David said:

When do OnInit(EventArgs e), OnLoad etc come in?

# June 13, 2007 8:28 AM

moopghdhgdf said:

(Morons. Said execs managed to nearly kill the company and get it delisted from the NYSE, while

Salesforce.com continues to thrive.)

Me and my mum invented a way to type messages via telephone lines. my short sighted dad said it would never work. next minute, somebody came up with the idea of an 'internet'.

did you invent the wheel and fire too?

# June 13, 2007 8:52 AM

Jeff said:

You are SO hilarious. If you want to be a jerk, at least have the balls to put your name on the post. My point was that we had a good idea that we could've been first to market with if the execs weren't so short-sighted about the viability of Web apps. We all know now they were wrong.

# June 13, 2007 9:08 AM

Tony said:

I just run into this while working on writing a DataSourceControl.  This documentation is still the same and still of very little use.  I'm sure I'll be able to hammer something out, but it would have been easier had they put some some of example of best practice.

# June 14, 2007 12:35 AM

Ricardo said:

ilove nerd girls they turn me on

# June 14, 2007 2:57 PM

Luke Breuer said:

Jeff, have you ever tried to make a complex web application, running into browser constraints?  There are some things that javascript and HTML just do not do well, at least not with decent performance.  The web is really a crappy development environment for sophisticated applications.  Unfortunately, it does have advantages that result in it being widely popular; see luke.breuer.com/.../Thoughts_on_the_Web's_strengths/124.aspx .

I do not deny that a wide swath of programmability could be taken care of by web applications.  I just don't think they're ready to completely replace downloaded executables; I'm a little surprised you don't see the benefit of these.

# June 14, 2007 6:33 PM

Jeff said:

Of course I've done complex Web apps. I live in a framework driven app every day, and it does a lot more than anything you're going to want to do on an iPhone.

# June 14, 2007 6:43 PM

Dave said:

""Now only so, the Mac. OS does not have anything remotely close to the .NET framework or application support or low-level development support or addin programming support.""

MAC Framework = COCOA

MAC Developement Environment - Xcode / Objective-C the equivalent to Micro$oft Visual Studio..... oh yeah and ITS INCLUDED WITH OSX!

# June 14, 2007 9:47 PM

G Simm said:

I teach in Canada and education is the exact same here: an over financed, under administered baby sitting service. After four deplorable years in this mind numbingly mundane job, I'm going to pack it in. The students, by and large, have no curiosity, the staff only discuss the local sports team, there is nothing intellectual about educational babble (although it purports to be) and, like one of the previous posts said, education is a self directed activity. No amount of money in the world can get people to read who don't want to read. Not to mention the overwhelming tendency for most kids to go home and watch hours and hours of TV; the Googleization of their lives and the stupidity of pretending that people can learn from 8.30 to 2.45 epitomizes how inanely asinine this system is. No one learns when you say "learn". They learn because the mood is right and they want to learn. What BS. Just shut the system down and let students work.
# June 14, 2007 10:03 PM

Luke Breuer said:

So, you're saying that anything that one would want to do on an iPhone, minus the things that require access to iPhone-specific functionality, should be doable with a web application?  What about games?  It seems a C game would be more efficient with battery life than a web-hosted game.  I hesitated to bring up games before because I rarely play them, but they are significant to many people.  Think of MMORPGs where people could log in and play on the train or something.

# June 15, 2007 4:07 PM

Bob said:

I fixed my loose plug by slipping a .22 cartridge (already fired) over the external plug.  Then I cut off the end of the cartridge case.  This put a thin copper sheath around the external plug and made it fit tightly into the socket in the back of the Pavilion laptop.

# June 16, 2007 5:56 PM

justin said:

I have had had the same problems with the HP laptop and took it apart, soldered the loose connector and it worked fine for a few more months.  Now it will not charge again.  This should be considered as a class action lawsuit against HP as I know of other friends that have had had the same problem.  Best fo luck.  justinzack@hotmail.com

# June 18, 2007 12:55 AM

Dean said:

Jason: If you want to avoid that there is a work around. Set the body of your page to have no scroll bars via css and then wrap your wole page in a div and let that have scroll bars. you might want to use JS to get the client height so you know how high to make the containing div. When you modal overlay is activated it goes OVER the scroll bars on your containing DIV so the user is not able to scroll (http://www.pfjones.co.uk/  click on contact info > mobile to see what im talking about)

# June 19, 2007 5:27 AM

John Dowdell said:

I'm not certain of the mechanism of your auto-postback, but if it's triggered by the onLoad event, then Dion Almaer has some info this week about how Safari handles this differently from other browsers. Possible link...?

ajaxian.com/.../safari-3-onload-firing-and-bad-timing

jd/adobe

# June 19, 2007 7:43 PM

ScottGu said:

If you can send me an email with details I'd be happy to have someone take a look at it.

It would be great if you could also indicate which version of Safari you've seen issues with.  

Thanks,

Scott

# June 19, 2007 11:02 PM

InfinitiesLoop said:

^ Same comment here. Send me some stuff and I'll see if I can't help.

# June 19, 2007 11:44 PM

Mike said:

Is the Mac version also the 3.0 beta?

# June 20, 2007 4:10 AM

danna mae said:

i cant open my ipod nano..i dont know how to open again my ipod..i dont know why..

# June 20, 2007 4:10 AM

Patti said:

I agree teaching sucks.  You can be an amazing teacher and one acusation from a student or parent and you are put on the "hot spot".  You aren't allowed to know who has acused you either, even in our court system you can know that!!!  Principals also suck!  They are covering their butt, so they don't really care about yours!!!

Students that are smart and quiet are left in the dust...all of our efforts are placed on students who need ESL or are behavior problems!!!!!!!!!!!

# June 20, 2007 5:01 PM

Joe Chung said:

I liked the new digg commenting system the first time I saw it when it was called the Slashdot commeting system.  Yawn.

# June 22, 2007 11:10 AM

Digg’s User’s vs. Digg’s Comment System : The Last Podcast said:

Pingback from  Digg&#8217;s User&#8217;s vs. Digg&#8217;s Comment System : The Last Podcast

# June 22, 2007 11:40 AM

Jeff said:

Slashdot just figured out CSS padding recently. Their comment system doesn't make a lot of sense to me in terms of what they show or don't show on first load.

# June 22, 2007 11:41 AM

The Other Steve said:

Check the comment system over at dailyKos.com.  It's AJAX threaded... a lot easier to read and follow than Digg.

But hten that's because it's more about conversations, and less about glitzy icons.

# June 22, 2007 12:10 PM

Luke Breuer said:

I'm not sure if people would be willing to do this, but tagging different sections of one's post to identify the different issues/sub-issues discussed could help one to focus in on different parts of the discussion with relative ease.  Also, I think it would be really useful to see what sections of a given post were quoted/responded to.  Outside of a controlled environment where you can trust your users, I think you'd need some sort of reputation system as well.

# June 22, 2007 12:38 PM

NEED HELP WITH NANO said:

2 other words... "no screws"....LOL...i need help with this one to, cuz my hold button is stuck and stuff so id appreciate if someone told me how. theres my e-mail.

# June 22, 2007 12:52 PM

Blaine said:

Another thought between WEB Apps / Flash / SDK...

I make software for mobile merchant porcessing and bluetooth GPS usint. I can't see how I can hook up a bluetooth Printer/Card reader or GPS unit to the iPHONE wiht out creating software for the unit itself (like Windows Mobile, Plam OS, Blackberry, and Symbian). Perhaps AAPL doesn't want to have the same problems as Blackberry and EMail security in Europe? - or they are worried about 'viruses'? - I guess what it will come down to is

Profits, Market Share, Profits, and... more profits...  

We get a lot of people asking if our software will run on the iPhone - we say no... and they buy something else (but I have a feeling that they will STILL buy an iPhone as well)

# June 22, 2007 12:56 PM

Mr Drone said:

Was there a point to this post other than "I can do it... but I'm not telling you... ah ha (ha ha ha)" ?

# June 22, 2007 1:32 PM

glen said:

i agree.there fucking useless

# June 24, 2007 9:22 AM

Icarus said:

i went to the link and read their EULA and i figure that they may as well say "We at Microsoft Corporation, through the sale of Windows Vista to you, our beloved customer  are hereby, irrevocably screwing you over"

# June 24, 2007 1:26 PM

Louis De Grazia said:

I used this in a user control and it worked fine. Thank you so much!

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       TextBox1.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) __doPostBack('" + btnGo.UniqueID + "','')")

   End Sub

# June 25, 2007 3:50 PM

John Pfeiffer said:

It works great!  Thanks!

A nice Firefox Editor with Cyrillic variation:

<textarea usehtml name="editme" cols=80 rows=30>

Editable content, press F2 to change back and forth in cyrillic

</textarea>

addons.mozilla.org/.../883

ToCyrillic 0.5.11.1 Homepage by Alex Benenson

You can then copy and paste it into notepad (and save it with unicode format)... does someone else have a better idea for saving?

# June 26, 2007 7:58 AM

Tobi said:

MY HP Pavilion ZE4210 just fried at the jack. I literally scoreched the adapter. I am furious I have a dead laptop that I have owned since Feb.

I don't want to throw good money after bad so can I get the steps on how to fix it myself [ no experience with laptop disassembly]

tobimrtn@yahoo.com

# June 26, 2007 11:48 AM

Nimesh Khatri said:

If there were multiple buttons on the page then the page could end-up reloaded a couple of times (call page_load multiple times). Returning false avoids the extra reload.

The following change fixes this problem.

EmailTextBox.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) {__doPostBack('" + LoginButton.UniqueID + "',''); return false);");

# June 26, 2007 6:12 PM

Joel said:

Ramon, you've convinced me to take a look at Smalltalk, sheerly to better grok functional programming.  The writing is on the wall with LINQ.  I am preparing for the next paradigm in .NET programming.  There is no since resisting the best practices that Anders Heljsberg and the C# team are preaching dictate that the functional paradigm is faster, more error free, and has a smaller footprint than imperative programming.  Lambdas are going to make writing the monkey code involved in nested iterations and branching a thing of the past.  Honestly, I can't wait till my org moves on to Orcas for this reason alone...

# June 26, 2007 8:26 PM

Joel said:

Power jack failure seems to be a common problem with a lot of different laptops.  I found a fix that worked for my Toshiba laptop.  I'm going to be trying it on an HP.

It does require disassembling the laptop and soldering connections. I don't recommend trying it if you're uncomfortable with working with a computer's innards or the machine is still under warranty.

www.laptoprepair101.com/.../failed-laptop-power-jack-workaround

The principle should work on any laptop with a loose power jack.

Good luck.

joelbt1 (at) gmail.com

# June 27, 2007 9:01 AM

Colin said:

Having the same problem as many others... ZV5000 series laptop. I was having issues with it not charging and the plug feeling loose. I worked around it many differnet ways but nothing actually worked. Today i ripped the DC connector out of the laptop. I was so done with it. I've been looking for a way to hardwire to the motherboard and figured i have to be insane to try this, but it's absolutely pathetic that it's been done seemingly hundreds of times before..

Are the pos/neg terminals on the top of the motherboard like with that toshiba?

# June 28, 2007 8:02 PM

Mike said:

I agree this was a killer.  Thanks for posting it, I couldn't find anything in the asp.net ajax site about it.

# June 29, 2007 5:40 PM

fkumro said:

The hype in my mind was worth it for this product, in fact I'm posting this comment from an iPhone. I havent set up my mail yet so hopefully I don't have any issues.

# July 1, 2007 2:58 AM

The Other Steve said:

It's incredible that the one thing you didn't address is...

How well does it make phone calls?

How loud is the ringer?  How strong the vibrate?  What ring/vibrate choices does it have available?

How's it compare to the Nokia 8800 as a phone?

# July 1, 2007 8:51 AM

Jeff said:

By "phone stuff" I was talking about all of the things you said. The vibrate seems a little stronger than my old phone. I wouldn't know a Nokia if it hit me in the face. I get a new phone once every two to three years. Generally phones do not interest me.

# July 1, 2007 9:57 AM

Daily links - 1.07.2007 : TrendPlex said:

Pingback from  Daily links - 1.07.2007 : TrendPlex

# July 1, 2007 5:30 PM

Manjit said:

Fantastic! Just the thing I've been looking for. Thanks a lot.

# July 2, 2007 2:39 AM

rudolph 93 said:

g4 suks becuase they have shows that have nothing to do with video games

# July 2, 2007 6:00 PM

Johan said:

Remember that sometimes the IIS or Casini webserver needs to be restarted in order for this to work.

# July 5, 2007 10:09 AM

Paul said:

Double-D, I think your discovery about parenthesis just saved me a lot of trouble debugging an "inexplicable" result!  Thanks.  (And thanks also to Google; I merely did a search on [SQL CURSOR "ORDER BY"]. Ugh indeed - what a useless error message.