in

ASP.NET Weblogs

This Blog

Syndication

ShowUsYour<Blog>

Irregular expressions regularly

Published by

Comments

 

Shawn A. Van Ness said:

One good use for RegexOptions.RightToLeft is converting a flat index into a text file into human-manageable line/column numbers.

Let's say you're parsing a text file -- with Regexes, of course, so you're representing the whole file as a single string in memory.

Now, let's say you find a problem. Where is it? The user is not going to be very happy if you tell him it's at character offset 54872. He's going to want to see a line number (at least) and hopefully a column number.

Now, there are many ways to skin this cat... certainly some are more performant than others. But for a quick and dirty solution, you can't get much simpler than using an RTL regex!

Here you go... if you use this in your book, can I get a shout-out in the liner notes? :)
-S


Regex lineStartRTL = new Regex( @"^",
RegexOptions.Multiline|RegexOptions.RightToLeft);

private int IndexToLineNumber( int index)
{
if ( index >= this.source.Length)
index = this.source.Length-1;

// Line numbers are conventionally one-based, so
// return the count of line-starts to our "left"
return this.lineStartRTL.Matches(
this.source, index).Count;
}

private int IndexToColumnNumber( int index)
{
if ( index >= this.source.Length)
index = this.source.Length-1;

// Column numbers are conventionally zero-based, so
// return the diff between us and the first char on
// the line
int begin = this.lineStartRTL.Match(
this.source, index).Index;
return index-begin;
}
February 9, 2003 12:08 PM
 

Darren Neimke said:

Thanks Shawn, love your work! :-)
February 9, 2003 12:27 PM
 

coacoacoa said:

About the way to remove a comma in a "string list" is to put commas in front of the string.
Instead of building a string list like this :
myStr = ""
myStr = myStr & strItem1 & ","
myStr = myStr & strItem2 & ","
...
Let's use :
myStr = ""
myStr = myStr & "," & strItem1
myStr = myStr & "," & strItem2
...
Then you can remove the first comma like this :
myStr = Mid(myStr, 2)
February 11, 2003 8:47 AM
 

Darren Neimke said:

How much more performant is that? You'd still have to wrap the result in a test to see that the length of the "myStr" variable was > 0; and how big would the string get before you did some sort of optimization on the string building process itself anyway? Hmmmmm? :P
February 11, 2003 1:07 PM
 

Ben Richardson said:

How good was Symonds 143!!
February 12, 2003 6:16 AM
 

Darren Neimke said:

It was great. I'll bet that he got sledged a bit ;) and probably did some "trash-talkin'" of his own after that knock.
February 12, 2003 6:19 AM
 

Deepak Sharma said:

Now it get's interesting. .Net mixed with Cricket. Yeah, I like it. Symonds century was great. More so because you guys defeated Pakistan. I am an Indian. You know what I mean...:) So, Sledging is known to me. That is what every Fast bowler and wicketkeeper does...Right? :)
February 12, 2003 6:52 AM
 

Darren Neimke said:

It's not so much the mixing of Cricket and .NET as the recognition that we are a diverse community :-)
February 12, 2003 7:03 AM
 

Greg said:

I will have to do some sledging on the tennis courts this weekend! I also call this 'playing mind games' with your opponent. Like in tennis, if your opponent is serving really good, on the next change over you make a comment "Wow, you are serving really good today..have you changed something in your serve?" Then, they can't serve anymore because they are now thinking about it!

February 12, 2003 2:27 PM
 

TrackBack said:

Grumpicus Maximus (...we're all mad here.) Thursday, February 20, 2003
February 20, 2003 4:56 PM
 

Jorge said:

Aim for the grouchy cyclist? :-)
February 26, 2003 3:47 AM
 

Darren Neimke said:

Oy! Now that's just plain nasty. So tell me, were you the guy in the Blue Nissan?
February 26, 2003 3:55 AM
 

TrackBack said:

Dewayne Mikkelson and his Radio WebDog, Shadow
March 2, 2003 4:44 PM
 

TrackBack said:

XML Web Services are kewl..... : Alex Lowe's .NET Blog
March 2, 2003 4:44 PM
 

TrackBack said:

Dewayne Mikkelson and his Radio WebDog, Shadow
March 3, 2003 4:02 PM
 

TrackBack said:

Dewayne Mikkelson and his Radio WebDog, Shadow
March 3, 2003 4:07 PM
 

Duncan Mackenzie said:

Actually, if you take a look at my custom control article at http://msdn.microsoft.com/library/en-us/dnwinforms/html/custcntrlsamp4.asp that is exactly what I create, an Image List View. :)
March 5, 2003 7:26 AM
 

TrackBack said:

Reader as a performer : ShowUsYour-Blog!
March 6, 2003 3:25 AM
 

TrackBack said:

MORE VS.NET 2003 Info : ShowUsYour-Blog!
March 6, 2003 3:25 AM
 

jimh@qis.net said:

As usual, you are far beyond us mere ASP mortals.

Try as I might, I have not grok'd .Net. I made a concerted effort today to download the MSDN 'Intro to .Net' and watched about half of it. I figure I have about 10-20 more hours worth of MSDN stuff to watch before I "get" it.

I know I have to get past this wall, but it is tough.
March 7, 2003 3:26 AM
 

Thomas Johansen said:

I hope I see this app in my inbox soon =)
March 9, 2003 1:27 PM
 

Jeff Giesbrecht said:

I love the idea Darren!!

Have you read anything from David Allen? His website is http://davidco.com. In his book "Getting Things Done" he talks a lot about a similar fashion of listing tasks, etc.

He puts forward that there shouldn't be a to-do list as that adds pressure to get none important things done that day. Rather there should be one list of items that are going to be done in the future some time, but that is looked at regularly so as to keep up with them.

Your DevBuddy is a great concept that holds great value for making sure one is on top of things that need to get done. An addition I would like to submit is if one can drag an email or web-page to the app and have the email add a task and the URL of the web-page be added to the list of articles that would be very beneficial.
March 9, 2003 10:03 PM
 

Duncan Mackenzie said:

Allow me to drag the complete snippet into an email/web post/whatever
Allow me to drag the snippet in from VS.NET
Show the code with color coding, and paste it in with color coding if the target supports it
allow me to describe the snippet (a description field)
Menu Option/Right Click/Shortcut in VS.NET to create new snippet
Save the whole thing as an XML file (serialization makes this easy) and let me send it to other users of the tool...
Support using (multiple) shared snippet sets, so you could put an XML file onto a share and several people could use it and add to it
Perhaps use a database, but support offline through serialized XML?
March 10, 2003 11:41 PM
 

Darren Neimke said:

> Allow me to drag the snippet in from VS.NET

So, with *your* dream tool you just drag it onto the tab and it prompts you for metadata such as category, language, description?

> support offline through serialized XML?

Nod, the serialization bit a sort of understand, and that would be a must to implement in some manner or form.

> Allow me to drag the complete snippet into ...
> Allow me to drag the snippet in from ...

Yep, I'd definitely support drag and drop events. Maybe elaborate on how you drag "out" of the tool. What invokes that action?

Because you mentioned it several times, could you please also drill in further on how *your* dream tool interacts with VS.NET?
March 10, 2003 11:58 PM
 

Duncan Mackenzie said:

>Because you mentioned it several times, could you please
>also drill in further on how *your* dream tool interacts
>with VS.NET?

It could be a VS Add-In AND a standalone app... I just want a way to add snippets easily from VS.NET... dragging is certainly fine :)

>So, with *your* dream tool you just drag it onto the tab
>and it prompts you for metadata such as category,
>language, description?

Yep, that would be perfect!
March 11, 2003 12:34 AM
 

Jason Tucker said:

Mine would be totally integrated in the VS.Net IDE. If not the ability to copy to the clipboard ala Office XP's clipboard manager. The ability to export the snippets into a readable form for aggregation into something else i.e. a portal. The ability to classify the snippet by language, website found, etc. etc. basically lots and lots of metadata. Have you seen Code Swap for VS.Net?
http://wwww.vscodeswap.com/

I'll probably have more items when I think more.

March 11, 2003 12:41 AM
 

Royo said:

Take a look ate Source+ 200 from AxTools.Com
It's a code manager for VB 6.0 , but i wish it were for .NET as well. It has very very nice functionality.
March 11, 2003 7:50 AM
 

TrackBack said:

Put your orders in... : ShowUsYour-Blog!
March 11, 2003 5:06 PM
 

TrackBack said:

Code line counting.. : Jason Tucker's Blog
March 11, 2003 7:25 PM
 

Jeff Giesbrecht said:

Darren have you seen this snippet manager?

http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=353670f2-4e73-467c-94b5-2faaefb5741d
March 12, 2003 10:59 PM
 

Shawn A. Van Ness said:

Interested parties should also check out Chris Sells' RegexDesigner .NET tool... it's literally spoiled me: I can't write or read regexes without it, any more.

http://www.sellsbrothers.com/tools/#regexd

-S
March 13, 2003 12:11 AM
 

Darren Neimke said:

< grin / > Thanks Shawn :-) I'll happily concede that my tool isn't really in the same league as Chris's or Eric Gunnerson's workbench.

It's quick-n-simple though, and, it's become one of my most used tools (although I do still use the others if I need a heavyweight).

I'd say mine is to theirs as WebMatrix is to VS.NET!
March 13, 2003 12:14 AM
 

Darren Neimke said:

Great stuff!! Thanks Jeff, that's a great tool, probably only 2 or 3 features short of what I had in mind ;)
March 13, 2003 12:17 AM
 

Phil Weber said:

Thanks for the link, Darren! You might also enjoy Chris Sells' three-part series on "Serialization Basics." The series starts here (free registration required).
March 13, 2003 1:36 AM
 

Darren Neimke said:

Yeh, thanks Phil... I saw those the other day. You actually reminded me to add them to my "To read" list ;-)
March 13, 2003 1:40 AM
 

TrackBack said:

Useful Methods in C# : ScottW's ASP.NET WebLog
March 17, 2003 11:38 PM
 

Phil Scott said:

When I took the 70-310 exam, the hardest part were doing remoting. There were A LOT of question involved with coding, deploying and debugging remoting. Just a warning.

All in all, a good exam. But so much remoting, which to me is one of the minor players in .NET, kinda threw me.
March 21, 2003 2:35 AM
 

TrackBack said:

Memobook and DevBuddy : Wes' Puzzling Blog
March 21, 2003 5:57 PM
 

Paul Gielens said:

Advanced .NET Remoting will clarify a thing or two.
March 22, 2003 12:18 PM
 

Ingo Rammer said:

Paul: Thanks!

Darren: By the way, chapter 3 of my book is available for download at http://www.apress.com/book/supplementDownload.html?bID=47&sID=442

I guess this chapter alone can help you to clarify some of the issues.

Happy Remoting,
-Ingo
March 22, 2003 5:11 PM
 

TrackBack said:

Remoting is *still* Whacky! : ShowUsYour-Blog!
March 23, 2003 5:45 AM
 

Stephane Rodriguez said:


The Interop link points to a free ebook which, at first glance, looks full of promise. Unfortunately, once you start reding it, for instance the COM interop chapter, you'll see that the author is merely providing an overview, not real world cases of actual marshalling issues (anyone can check that .NET programming boards are full of marshalling issues and concerns).
March 26, 2003 1:29 PM
 

TrackBack said:

TaskVision and an ever-increasing learning curve! : ShowUsYour-Blog!
March 27, 2003 6:35 AM
 

TrackBack said:

WebService Results : Jesse Ezell Blog
March 27, 2003 6:35 AM
 

TrackBack said:

Clarence Westberg's Radio Weblog
March 31, 2003 2:21 AM
 

Moshe Eshel said:

Hi,
Great idea and solves most of the problems for ranges that users encounter, also it is very intuitive (I'm gonna use this the next time I have to implement a date search).

However, many users (especcially business users) would appriciate the addition (maybe in advanced mode) of actually inputing in dates and even hours for a more complete solution (that can support more advanced date search).

One question though, why the hardcoded limit on the beforedate and afterdate? do you plan on not using the system after 2099 does Y2K ring a bell???

All the best,
Moshe
April 2, 2003 11:18 AM
 

Chris Frazier said:

I don't think I'll be alive to worry about dates after 2099, but Moshe raises a good point. I suppose if you wanted to go this route, make sure it's documented in there.

Is this an asp.net/web solution or winforms? I'm implementing a DHTML pseudo-popup calendar to select dates in my current project...makes it real easy to use and eliminates those pesky pop-ups! I modified it from an example on javascript.com.

Good Job,
-Chris
April 2, 2003 7:31 PM
 

TrackBack said:

Dewayne Mikkelson and his Radio WebDog, Shadow
April 2, 2003 7:54 PM
 

Bill Wilkinson said:

Why not actually build part of the query and stuff it into the <OPTION>s?

<SELECT Name="dateSearch">
<OPTION Value="theDate=$"> Exact date
<OPTION Value="theDate<$"> Before date
<OPTION Value="theDate>$"> After date
<OPTION Value="DateDiff(d,$,#)>=-7 AND DateDiff(d,$,#)<=7"> Within a week
...
</SELECT>

And then, in the server code, after validating the users textual date, you just REPLACE the $ with a properly formatted version of his date for the DB you are using. Likewise, you replace any # with a proper form of today's date.

And now you don't have the enddate problem the other noticed.

Of course, you could use the same kind of logic on the server to avoid putting in an enddaate when it isn't needed (or begindate when it isn't needed) but why bother with logic when it isn't needed?
April 3, 2003 3:44 AM
 

Darren Neimke said:

Thanks Bill... that's great!
April 3, 2003 4:12 AM
 

Bill Wilkinson said:

One more minor "trick": Most DBs treat a date-alone as 0:00:00 on that date. So instead of needing to do

WHERE dateField >= '2003-3-11 0:00:01' AND dateField <= '2003-4-11 23:59:59'

you can more simply code

WHERE dateField >= '2003-3-11' AND dateField < '2003-4-12'

Notice the operators: >= but just <

And notice that I bumped the date for the end date to the *next* day. Because *any* time on the prior date will be *less than* that value.

April 3, 2003 7:44 PM
 

TrackBack said:

Re: the blogging style thing : Bloated Blog of .NET Blunders
April 5, 2003 8:55 PM
 

TrackBack said:

A little 'bit' more on Int32 vs Integer : Code/Tea/Etc...
April 5, 2003 8:55 PM
 

TrackBack said:

A Canonical Hierarchy : ShowUsYour-Blog!
April 7, 2003 6:53 PM
 

Chris Frazier said:

The only thing that immediately comes to mind is CausesValidation. Although, it seems like that is the *opposite* of what you would like to do...the default is true, but perhaps you could set it to false at the Page level, then set the only one you want to be true.
April 8, 2003 1:53 AM
 

Chris Frazier said:

Have you gotten this resolved yet, Darren? How about adding another validator to do the work for you? CustomValidator maybe?:)
April 10, 2003 7:48 AM
 

TrackBack said:

What's the fuss about VS .NET 2003? : Edgar S??nchez's .NET Blog
April 10, 2003 7:44 PM
 

David Stone said:

Ooooh. I like regexSnippets. Very nice. :)

I use regexes all the time...so it's really nice to see tools like this come out. I also use Eric Gunnerson's RegexWorkbench and Chris Sells' RegexDesigner. There's another on CodeProject that I found useful called Expresso.

What's funny is that these tools all pretty much do the same thing...but each has it's own litle feature that makes me use it when I need that one feature. Yours is now the "favorites" feature which I predict will come in handy. Thanks! :)
April 12, 2003 11:31 PM
 

Mads Nissen said:

I've seen jesus on this one. From now on I won't touch a webservice as long as I am sure that I'll only talk to other .NET applications. And. If you design your app nicely (as I'm always struggeling to do) implementing .NET remoting alongside WS is absolutely no problem.<br><br>The other nice thing about remoting is that I get the feel of writing real server apps, like I've done on J2EE. Feels more solid. Feels more component, service and message oriented.
April 17, 2003 12:01 PM
 

TrackBack said:

Debugging Web Services over HTTPS : mads studentblog
April 18, 2003 7:19 AM
 

TrackBack said:

[Reference] Handy reference for command line compiling : CSharpener's Blog
April 18, 2003 11:45 PM
 

TrackBack said:

[Reference] Handy reference for command line compiling : ShowUsYour-Blog!
April 18, 2003 11:45 PM
 

TrackBack said:

Dewayne Mikkelson and his Radio WebDog, Shadow
April 18, 2003 11:45 PM
 

Hendrix said:

Darren,

I just ran the Anagram.html but if I enter let's say 'AL' it should work but it says it's not one.

Thanks for your help.
May 1, 2003 4:08 AM
 

Darren Neimke said:

Well, it doesn't work because "AL" isn't an anagram of "ALXBIETOS". If you'd entered "IBXALTSEO" it would have worked.

What are your the rules for what you are trying to achieve?



May 1, 2003 4:18 AM
 

Chris Frazier said:

Sweet! Now, all I have to do is find out how (and when) to leverage Regex!:P
May 2, 2003 1:10 AM
 

TrackBack said:

ShowUsYour-Blog!
May 4, 2003 3:16 AM
 

TrackBack said:

ShowUsYour<Blog>
May 4, 2003 3:16 AM
 

G. Andrew Duthie said:

Darren,

Pet peeve here, but even if you don't like the feature...it's good to point out that this can also be disabled at the page level, rather than disabling it for the entire application. In fact, for most people, this is the smarter way to do it, since it enables you to allow HTML input on a specific page, while protecting you from inadvertent script vulnerabilities where you may not be filtering or encoding the input.

May 4, 2003 7:02 PM
 

Darren Neimke said:

I plead temporary insanity ;-)
May 4, 2003 9:44 PM
 

Frans Bouma said:

Congratz, Darren! :)
May 5, 2003 11:21 PM
 

Thomas Johansen said:

Congrats mate! Awesome stuff by the way ;)
May 5, 2003 11:44 PM
 

G. Andrew Duthie said:

Not you, too, Darren...another RSS feed made infinitely less useful through the use of the description field. Don't do it, I beg you. There's too little time, and too many blogs, to add extra clicks to your readers' efforts.

Come back from the dark side... :-)
May 5, 2003 11:55 PM
 

Serdar Kilic said:

By A$ I'm assuming it is AUD$ ? If so, hey cool another aussie :)
May 6, 2003 3:12 PM
 

Maurice Hicks said:

As a Kiwi now living in the US, I faced the same tipping confusion when I first arrived here.
Here are the rules of thumb I use:
1. Tip the bloke who drives the cab or shuttle from the airport. Roughly 10% of the fare for cabbies and $1 per bag for shuttle drivers.
2. If you have a bellboy take bags to your room $1 per bag is reasonable.
3. Americans love to eat out. Get used to tipping 15-20% of the bill anytime you're at a place where a server brings something to your table. Don't feel obligated to use the tip jar at places like Subway though.
4. Tip the guy or girl that cuts your hair (for some reason this just never occured to me).
Off the top of my head I can't think of anything else that isn't discretionary.

My pet peeve is the bloke that stands in the loo at some bars/clubs, turns on the faucet, hands you a paper towel and expects a tip for it.
May 6, 2003 5:33 PM
 

Phil Weber said:

Darren: In addition to Maurice's list, I like to leave a couple of dollars each day for the chamber maid when I stay in a hotel, but I think I'm probably in the minority.

I also usually toss my change into the tip jar when I buy something at a coffee place (e.g., Starbucks).
May 6, 2003 5:55 PM
 

Phil Weber said:

Also, there's a list of who is on which money here: http://www.moneyfactory.com/document.cfm/18/118
May 6, 2003 5:58 PM
 

bill said:

ulysses s. grant is on the $50 bill
May 6, 2003 6:01 PM
 

Roy Osherove said:

Cool!
I've always wanted to visit there myself, alas, I am in Israel... :(
They'd have to hire me first to get me here
May 12, 2003 4:39 PM
 

Paul Wilson said:

You're going to just love what they have to show you about ASP.NET -- I know I did.
May 12, 2003 6:33 PM
 

randy said:

Based on what I know, I agree. I think that there are some interesting possibilities, but I doubt that they'll be widely used. Most people will do what they're doing, and on occasion here or there take advantage of the CLR functionality to make their lives easier. However, the XML story could be much bigger than the CLR hosting in Yukon. I think its hard to tell at this point.
May 14, 2003 4:35 PM
 

TrackBack said:

.Avery Blog
May 15, 2003 8:04 AM
 

HumanCompiler said:

Great entry!

Last time I was out at the campus I just didn't want to leave! :P

And you're definitely right about Bill...and all of us with that same passion for learning...it continues every single day!
May 16, 2003 3:37 AM
 

TrackBack said:

Code/Tea/Etc...
May 16, 2003 6:12 PM
 

TrackBack said:

ShowUsYour-Blog!
May 16, 2003 6:12 PM
 

James Shaw said:

Yes, it was another great week at MS. Hope you make it back to Oz ok Darren. Drop by for a few when you're in Atlanta next. ;-)
May 17, 2003 1:22 PM
 

Rob Chartier said:

Have a safe trip, and make sure you drop me a line if you make it up to Vancouver.

ps. Dont forget the tip!
May 22, 2003 10:18 AM
 

George Young said:

Good to meet you during your visit here, Darren. Be sure to drop a line when your in Redmond again.
May 23, 2003 1:59 AM
 

Tariq said:

I think Expresso is much better, although RegexSnippets has a better interface. Maybe your'll should merge
May 28, 2003 11:57 AM
 

Tariq said:

Interesting point.
For the last 6 months i've found a great affinity to myie2. its a great browser, oh, but its the IE back end. so theres a brand new interface for IE (myie2) that allowes me to much much more.
June 1, 2003 4:34 PM
 

Darren Neimke said:

Tariq, thanks for the post. That's exactly what I'm on about; by all means, use the IE engine to build a better product but, why anyone would go through all the pain to RE-build it is beyond me!
June 1, 2003 6:00 PM
 

ZeroSleep said:

Will firebird support Behaviors or something similar to IE Behaviors?
June 1, 2003 6:39 PM
 

Cadmium said:

Hmmm... let me think. Maybe the MILLIONS of people using a NON-Microsoft OS would have something to say here? Choice is good. If there were no other browsers linux users would never be able get to the internet and OSX's primary browser would still be crippled and buggy.

Beside the broken features that have lasted years (proper http compression? longstanding css bugs?), there are a distinct lack of popular features missing from IE. In case you didn't notice a lot of people like tabbed browsing (so popular it's built-in by every other major browser besides IE: Opera, Mozilla/Firebird, Safari). Gestures in IE? Nope. Skins? Nope. Maybe not your thing, but you could always use the mozilla IE skin if your concerned about UI. Built in javascript control? Built in download manager? JavaScript debugging that isn't a complete joke?

I'm tired of getting only the features microsoft thinks I should have. Give me the features I want, give me the features everyone else has. There has been very few tangible improvements to the IE browsing experience since IE4. Browsing in IE today feels like browsing in IE in 1998.

Yes, IE won the browser wars, and it's a shame because we're missing out.
June 1, 2003 8:35 PM
 

JosephCooney said:

Hey - all I meant was that you have to do a LOT of typing to get anything done with the htmltextwriter. CodeDOM looks just as bad, but cool because you can output multiple languages...I'll have to get out of the witty .sig business and leave it to guys like you who know what they're doing :-).
June 2, 2003 4:09 AM
 

Duncan Mackenzie said:

Thanks for the advice and the plug... I'll try to get out more :)
June 8, 2003 11:48 AM
 

JosephCooney said:

C'mon Darren - we _know_ you're under NDA, but you can't make statements about how much "better" things are going to get for VB.NET developers without giving us a few more juicy details. :-)
Seriously, if VB.NET got edit & continue I think it would be a compelling reason to switch. Generics are cool (C# 2.0), but edit and continue would probably be a clincher for me. I lead a sort of double life with my .NET programming, writing about the same amount of VB.NET and C#. There are pros and cons to both languages, both in the area of language features and in the area of tool support, and I really don't prefer one language over another. I agree with you that VB has never been this good - inheritance, multi-threading. At the same time I don't see any reason why a competent VB.NET developer shouldn't be able to read and understand C# pretty easily. Same framework, just a different "skin" on top of the MSIL.
June 9, 2003 4:55 AM
 

Scott Mitchell said:

Glad I could help out, Darren. I am going to be soon tackling a few magazine articles here, and your comments have inspired me to share my experiences in a blog of my own. :-)

Thanks!
June 9, 2003 5:46 AM
 

Scott Mitchell said:

Mozilla 1.x rocks. I am currently using Mozilla 1.4 RC1, and can't get enough of it. The popup blocker is the cincher for me, IE is so freaking annoying, you can't visit ESPN.com or MSNBC.com without having an annoying ad popping up and disrupting your flow.

Never was a huge fan of Opera, didn't seem to do as well as rendering Web sites as Mozilla/IE, but it's always been the fastest browser I've used, especially on "alternative" operating systems.
June 9, 2003 5:49 AM
 

Scott Mitchell said:

Doug and Donny Mack are a fun duo. I remember going out to Bourbon Street with them and a handful of others when we were in New Orleans for the ASP.NET Connections conference back in 2001. Quite a blast.
June 9, 2003 5:52 AM
 

Scott Mitchell said:

I always think of "tokenizing" as the recognition of tokens. So, the string: "This is a nice blog," is tokenized by your brain, by chunking out the various words from the mess of characters. "This" "is" "a" "nice" "blog". Perhaps I am confusing this term with lexing? I dunno, it's been a while since my last compilers class! :-)

Now that I think about it, isn't what I just described lexing, and tokenizing is saying something like, "Ok, 'This is' is a verb participle and 'nice' is an adjective and 'blog' is a noun." (Apologies for any incorrect grammar terms.) Heh, good thing I'm graduating grad school NOW before any tests on this material! :-)
June 11, 2003 5:15 AM
 

Tim Walters said:

Interesting stuff Dazza,

One thing I thought I should add... since you're tokenizing your text with valid XML, your string becomes a XML Fragment. Now if you had multiple markup tags in there you could do something like the following...

Pseudo code:
- If output mode = formatted
- - set node list to all "formatted" elements
- Else
- - set node list to all "raw" elements
- For each node in the list
- - output the innerText
- - output a linebreak

It's more work for the current solution, but if you had more wrap modes it is easily scalable. In fact if you ended up with 30 different wrap modes, you could use the enumerator's toString method to name your markup nodes, and then use the same toString method in your selectNodes() method, no extra coding required except extending the Enum.

You could also use XSLT of course, but given your dislike for it you'll be wanting to wait until a WYSIWYG editor before you try that right? :)

Tim.
June 11, 2003 6:04 AM
 

Frans Bouma said:

I will never take that pledge. Speed isn't everything. In today's software, robustness, ease of use (by developers), simplicity and other things are as important as performance and most of the time more important. When speed is important, looking at tiny instructions will NEVER help you. Optimize the algorithm, not the instructions. Read my blog for an excellent example :)

Using the profiler supplied I found a memleak in the IsDBNull function in the SqlDataReader. Haven't heard from MS yet. :)
June 12, 2003 12:24 PM
 

Darren Neimke said:

Yes, thanks Frans, I did see your fine piece last week:

http://weblogs.asp.net/fbouma/archive/06082003.aspx

Thanks for the comment too :-)
June 12, 2003 12:34 PM
 

Jim Arnold said:

Er...Byte.Parse()?

A simple example (in C#, without error-checking):

using System;
using System.Drawing;
using System.Globalization;

class Test
{
static void Main()
{
string hexString = "#88A8B2";
Color color = ConvertHexStringToColor(hexString);
Console.WriteLine(color);
}

static Color ConvertHexStringToColor(string hexString)
{
Int32 colorValue = Int32.Parse(hexString.Substring(1), NumberStyles.AllowHexSpecifier);

return Color.FromArgb(colorValue);
}
}

Jim
June 12, 2003 5:34 PM
 

Jim Arnold said:


Oops, Int32.Parse of course, not Byte...

Remember that the Alpha channel of a color constructed from this will default to 0.

Also, the reason there isn't a built-in method to do this is probably because '#' isn't the standard way to denote prefix numbers ('0x' is more common).

Jim
June 12, 2003 5:37 PM
 

Jim Bolla said:

thanks to a fellow sitepoint forums member:
(http://www.sitepointforums.com/showthread.php?postid=806773)

System.Drawing.ColorTranslator.FromHtml("#999900")



June 12, 2003 5:51 PM
 

Darren Neimke said:

Thanks guys.
June 13, 2003 3:25 AM
 

d said:

Or even Microsoft.VisualBasic.Hex("123")
June 14, 2003 3:36 PM
 

Steven Smith said:

Cool, congrats!
June 17, 2003 9:05 AM
 

Alex Hoffman said:

Good to see another aussie blogger :)
June 18, 2003 7:25 PM
 

Darren Neimke said:

"I can be contacted through several mediums, although it is a rare event when I multitask and use two simultaneously. As to whether I am actually able to communicate, well that is certainly debatable. On some levels maybe, on others clearly not."
June 19, 2003 12:48 PM
 

Darren Neimke said:

Son, a woman is a lot like a... a refrigerator! They're about six feet tall, 300 pounds. They make ice, and... um... [spots his can of Duff] Oh, wait a minute. Actually, a woman is more like a beer. They smell good, they look good, you'd step over your own mother just to get one! [downs the beer] But you can't stop at one. You wanna drink another woman! - Homer J Simpson
June 19, 2003 12:49 PM
 

Darren Neimke said:

When I just accidentally dialed an 800 number without preceding it by a 1, I got a message from the phone company saying, "You must dial a 1 before an 800 number."

If they can do that, why can't they just "If/Then" and put the dang 1 in???
June 19, 2003 12:52 PM
 

Frans Bouma said:

Frysk: "Wês in sinnestriel. In oar hat dêr forlet fan."

In English: "Be as a sunbeam, other people will appreciate it."
June 19, 2003 1:14 PM
 

Frans Bouma said:

But, my all time favorites are located at www.despair.com. Their posters are so incredibly brilliant :) Check: http://www.despair.com/indem.html for their complete collection.
June 19, 2003 1:31 PM
 

Frans Bouma said:

Some of the despair classics:
"It could be that the purpose of your life is only to serve as a warning to others" :D

"For every winner there are dozens of losers. Odds are you are one of them." :) :) Great birthday-gift material to give to your PHB's ;P
June 19, 2003 1:46 PM
 

Paul said:

"When you find yourself in a hole, the best thing you can do is stop digging." -- Warren Buffet
June 19, 2003 7:41 PM
 

Paul said:

"You see, wire telegraph is a kind of a very, very long cat. You pull his tail in New York and his head is meowing in Los Angeles. Do you understand this? And radio operates exactly the same way: you send signals here, they receive them there. The only difference is that there is no cat." - Albert Einstein
June 19, 2003 7:41 PM
 

Jan Tielens said:

Trying is the first step towards failure.
June 19, 2003 8:51 PM
 

Neil said:

Deprived of the freedom to wander, man often becomes frustrated, bored, dulled; a moron, a machine, an automaton. -- Tristan Jones
June 19, 2003 8:57 PM
 

JosephCooney said:

Nice C#/VB.NET joke (static/shared). Would you care to mention any of the "gems" you've uncovered in the starter kits Darren? Maybe a link to your ppt presentation from your .NET users group talk? I've looked at a couple of demo applications (Petstore, IBuySpy) and found them a bit sub-standard (or should that be void). I've been meaning to check out Taskvision (for windows forms goodies). What are some of the goodies you've found?
June 24, 2003 1:15 PM
 

julie said:

Hmmm- sounds like I need to talk some more about the starter kits at our Vermont .NET user group meetings where Dave comes monthly.
June 24, 2003 5:51 PM
 

Dave Burke said:

Darren, dude. I am honored to be the " [d.o.t.d.] Dave" referenced in your phenom post on the starter kits. http://msdn.microsoft.com/asp.net/! Keep up the great blogging.
June 24, 2003 11:14 PM
 

Dave Burke said:

Uhhh, I think I've encountered a glitch in my thinking process. I obviously didn't intend to post this comment here, but rather in response to your "mining for jewels" post at http://weblogs.asp.net/dneimke/posts/9253.aspx...where it looks like that pesky Julie Lerman beat me to comment!
June 24, 2003 11:20 PM
 

Dave Burke said:

As I accidentally commented on another of your posts, I am proud to be the Dave to whom you ranted. Keep up the great blogging, Darren! btw, I DID add subscribe to the gotdotnet/rss feed thanks to your post.
June 24, 2003 11:22 PM
 

TrackBack said:

ShowUsYour<Blog>
June 25, 2003 2:25 AM
 

TrackBack said:

Kent Sharkey's blog
June 25, 2003 2:25 AM
 

Scott Mitchell said:

I now have a Weblog of my own: ScottOnWriting.NET

Thanks! :-)
July 8, 2003 8:50 AM
 

JosephCooney said:

Nice (short) presentation. I think I need to actually LOOK at the starter kits first and then maybe re-read to get more benefit. The slide background is pretty nice.
July 14, 2003 6:11 AM
 

SBC said:

Thanks for the pointer. Will check it out.
July 14, 2003 6:41 AM
 

Scott Mitchell said:

Oh, just wait until my series of articles appears on the ASP.NET site at MSDN. **Then** you'll truly love the site! :-)
July 15, 2003 8:34 AM
 

HumanCompiler said:

Don't let it get to you. People like that won't make it in the long run. It takes more than being able to copy, paste & fix some code to make it in this industry...especially right now! ;)
July 17, 2003 7:08 AM
 

Jesse Ezell said:

Ever consider using GUIDs for ids instead? Then, you could generate/use them client side and wouldn't have to updating relations, etc. Identity fields are such a pain when you are working with disconnected recordsets.
July 22, 2003 5:27 AM
 

Darren Neimke said:

Jesse... thanks for the advice! I hadn't considered it, in fact I haven't really decided on that *or* where the "Version" number will come from yet but your idea of using GUID's for the ID sounds pretty solid.
July 22, 2003 5:54 AM
 

Jesse Ezell said:

No prob. As an alternative to version number, you might consider a TimeStamp column (just have SQL auto inject it like: "INSERT into Table (..., TimeStamp) Values (..., GetDate())"). Then, you don't have to worry about version increments, etc. Either way can work, but the TimeStamp is probably less of a hassle...plus, you get to know the last modified date, which might come in handy some time.
July 22, 2003 6:08 AM
 

Darren Neimke said:

Well, my idea for the "Version" is that it is not "entity-specific". In other words, each user has a current version for the entire application. You can see why I want to do it that way if you peek at my diagrams and notice how the user sends the Version back to the server and that is the determining factor for deciding collisions on *all* tables.
July 22, 2003 6:13 AM
 

Jesse Ezell said:

A global version could be a pain for dealing with concurrency. With a decent amount of users, it would gaurentee that your users would only be able to modify data while online. Usually, you want to make concurrency as granular as possible, because users aren't very good at dealing with concurrency violations (and they are frustrating as hell too).
July 22, 2003 6:56 AM
 

Darren Neimke said:

You could still have ROWVERSION to ensure row integrity if you wanted, but the *main* idea behind having a global "Version" attribute is so that you can ensure that you return the minimum amount of data back to the client after the update -- remembering that the data returned includes the data that you passed in PLUS any data that had a Version stamp greater than the current client Version stamp.
July 22, 2003 7:02 AM
 

Roy Osherove said:

I really like expresso:
http://www.codeproject.com/dotnet/Expresso.asp
July 22, 2003 11:12 AM
 

Eddie Garmon said:

you told the riddle incorrectly... i know that the third word starts with l, but i don't want to spoil it. you probably want to look at rephrasing it.
July 23, 2003 10:57 AM
 

Darren Neimke said:

Doh! Thanks Eddie ;-)
July 23, 2003 11:02 AM
 

Randy Ridge said:

language... but of course this is a dumb riddle and everyone knows the answer is nugry...

http://catb.org/~esr/jargon/html/N/nugry.html
July 23, 2003 11:56 AM
 

Randy Ridge said:

doh i mis-posted on your blog... so i'll repeat.. language.. but everyone knows the answer is nugry -- http://catb.org/~esr/jargon/html/N/nugry.html
July 23, 2003 11:57 AM
 

Alex Hoffman said:

Thanks for pointing that out - I missed the articles too. Hey your from Adelaide? I knew they had churches, but now they have computers too? :)
July 24, 2003 12:02 PM
 

Darren Neimke said:

> I knew they had churches, but now
> they have computers too?

:P


July 24, 2003 12:13 PM
 

Duncan Mackenzie said:

I wonder if having that post headlined on MSDN helped? :)
July 24, 2003 11:46 PM
 

Darren Neimke said:


Oh *that*?

{ blush }

July 25, 2003 4:29 AM
 

TrackBack said:

HumanCompiler - Erik Porter Blog
July 27, 2003 6:49 AM
 

Chris Frazier said:

Nice, Darren, but what about testing RegexValidators - javascript Regex? I wrote a little page that does this (it goes thru one more step to load the regex).

I know at least one other person besides me has found it useful. It's real simple - check it out @ http://www.aspalliance.com/christopher/experiments/regexvalidator.aspx

July 30, 2003 4:05 PM
 

TrackBack said:

August 1, 2003 1:57 AM
 

AdvisorMan said:

I'm not aware of anyone that got an interesting job at Microsoft at age 45 without having one or two of these multi monster projects shipped or being some kind of celebrity. At that age you are either and architect or a manager which means you have responsibility for getting one of these monsters out. This in turn means you should have lots of experience in doing monster projects. Makes sense?
August 4, 2003 9:24 AM
 

Darren Neimke said:

I should probably point out that, in my example, Microsoft can be substituted for *any* company.

The company itself is academic, feel free i\to replace it with whatever you expect to be doing when you are 45. The arugument is really to weigh up the pros and cons of different types of organisations.
August 4, 2003 9:45 AM
 

Steve said:

This is something I've actually been considering a good bit lately. I fit my current employer into the small to mid-size range. The one problem I've had here is that I get to work on a lot of small to medium sized applications but they are all very similar. They don't pose any substantial challenges that really cause my brain to hurt. I've found that problems that make your "brain hurt" are the ones that really challenge you professionally to learn new things and take yourself to the next level. So, in summary I guess my opinion is that it doesn't matter if its big or small its the "brain hurt factor" that makes the most difference.
August 4, 2003 10:31 AM
 

TrackBack said:

August 4, 2003 11:11 AM
 

Anonymous said:


If you think you're good enough to work for Microsoft, then you probably have a strong sense of self-motivation, creativity, passion, and entrepreneurialism.

If that's the case, why not work for yourself and do something truly original?

Granted, working for Microsoft you'll have access to incredible resources and work with some of the most talented people in the world but, at the end of the day, you're still working for the "man".

Why not work for yourself instead and build your own empire?
August 4, 2003 11:22 AM
 

Stephane Rodriguez said:


Tried 2200 people. Tried 30.

30 is the definite answer when it comes to fast moves, fast software development, simpler requirements, and best of all, less meetings and less processes.

Can't even see the point now of working in big fat companies, except if I wanted to make a career and have planned that I would stay there ten years or so.
This never happened to me so far. The innovation is in small companies. The personal interest and motivation is with them too.

I wouldn't stay long in a company that tells me to do many things without the freedom of doing them. Microsoft has admitted a lot of corporate greed so far. There are also books about it.
August 4, 2003 1:59 PM
 

Jerry Dennany said:

ha! too funny.
The referenced article does focus on metacognition, though, and the fact that one has difficulty determining their own abilities. The likelyhood that you are surrounded by hordes of dumb people that also view you as intelligent is unlikely, though possible ;-)
August 5, 2003 3:44 AM
 

Tom Richards said:

I dunno if I'm smart or dumb - sometimes dumb sometimes smart?. Right now, I think I'm smartest when I recognize I'm dumb or feel dumb. I haven't a clue whether I'm surrounded by smart or dumb people, I'm dumb enough to think I'm smarter or is it the other way around? Like I said - I dunno ...
August 5, 2003 9:33 AM
 

JosephCooney said:

In response to AdvisorMan's comments, A friend of my <a href='http://www.dcooney.com/'>brother</a> who is just hitting 40, is not famous (not like Darren is) and does not have any monster projects shipped (I think he has written a Z80 emulator :-) ) just got a job in Redmond. AFAIK he is working on the XML application frameworks team. I like A nonymous' suggestion of "work for yourself". I just wish I could follow his advice.
August 5, 2003 10:31 AM
 

TrackBack said:

August 6, 2003 12:03 AM
 

TrackBack said:

August 6, 2003 12:03 AM
 

TrackBack said:

August 6, 2003 12:23 AM
 

Scott Mitchell said:

Speaking as a self-employed person (an independent trainer, writer, and consultant), the absolutely best part about it is working the hours I want. I can start working at noon, take a day off whenever, etc. Also, being able to call my own shots is great. Being able to work on stuff that interests me is worth more than you could believe. Plus, I think the flexible schedule will really pay off once I start a family.

Some of the downers, in my personal opinion are:

-- The insane cost of health insurance. Right now I still have health insurance through the university, but having finished my Masters degree in June, it's set to end in a month. Before going back to school, I was paying like $75 a month for JUST emergency care, and I had to pay the first $5,000 in any emergency at that. :-) My head hurts just trying to fathom what comprehensive health care for an entire family would cost.

-- Sometimes my job is mundane. I mean, I am jazzed about ASP.NET and writing, but sometimes it feels like that's all I do.

-- I have to pay the "employment" tax - this is something your employer picks up for you, but, since I am my own employer, this translates into me having to pay rediculous amounts of tax each year. Also, I am fairly frugal and do all right for myself, so this is a bad combination - they say the more you profit the more the government takes, so it makes sense to profit less, investing those profits into other tax-sheltered vehicles... but... oh well, I'm no entrepenuer.
August 6, 2003 12:27 AM
 

Damian said:

Biggest downer I have found is the stress of getting money out of clients who think that it might be a fun idea to put you at the bottom of their list of people to pay. As an independent, you have very little leverage when dealing with an accounting department who turns 30 days into 45. Or the small business owner who says "Mate, I'm owed 30 grand right now, as soon as I get paid I'll sort you out."

I've also found I don't want to let myself take any "time off whenever I want" because I'm always stressing about finding more work. This is from a perspective of someone in the relatively early stages of independance though, things may change over time.
August 6, 2003 1:05 AM
 

Colt said:

Thanks for your sharing Darren!
I moderate the messages in AspAdvice and I did NOT subscribe to the Regex list, but I think I will "sign-up today" :)
August 6, 2003 1:14 AM
 

AdvisorMan said:

I'm sure there is an explanaition for this but it might be a long and complicated one. Think about it, why would a team at Microsoft hire a 40 year old guy without any special qualifications when the same team can get a motivated 25 year old Stanford graduate? The first question I would ask in such a case is: "Why are you hiring me and not that 25 year old kid?". Usually you find the exlanation a year into the job.
August 6, 2003 1:57 AM
 

Duncan said:

Agreed - plus as a rule of thumb you will need to spend half an hour a day doing business administration stuff. (Filling out tax forms, dealing with the revenue, accountants, auditors etc...I suppose this would vary a great deal by jurisdiction)
August 6, 2003 4:28 AM
 

Anonymous said:


LMAO! You must be the 40 year old programmer (who has the wisdom of experience to come up with an answer like that!)
August 6, 2003 11:42 AM
 

TrackBack said:

August 6, 2003 11:48 AM
 

Scott Mitchell said:

I hope that's not the future, as it costs $5.95/month to read blogs! :-)
August 7, 2003 10:52 PM
 

Darren Neimke said:


Scott,
Then somebody such as yourself should clearly hope that it *is*!

I must admit that, originally I started to read a couple and then wished that I could read more - without paying - then, the sudden realization hit me... this is Oprah for the web :-(

August 7, 2003 11:48 PM
 

sdg said:

rs
August 8, 2003 6:07 PM
 

Douglas Reilly said:

The worst part of the "job" of being self employed for me is scaring up work when the need arises. I have some pretty reliable clients, but every now and again, there is a shift in what they need (or can afford) and so I have to either pick up an additional client or convince an existing client that they have more work for me. I have been *very* fortunate over the last couple of years, in spite of the general downturn.

I am fortunate that I have developed a cusion for the cash flow problems that clients can impose upon you, and I have one good client that pays within a week or so to balance the other major client that takes 60-90 days.
August 9, 2003 11:26 PM
 

TrackBack said:

August 10, 2003 8:37 AM
 

TrackBack said:

August 11, 2003 6:58 PM
 

Kent Sharkey said:

They have in fact upped my dosage. ;)

Look for many more coming soon -- Scott Mitchell writes faster than I can tech edit. And there's always that article I've been writing for the last 5 months...

Now if I can just get them to up my Scotch dosage...
August 11, 2003 7:42 PM
 

Jesse Ezell said:

Mike is definately a cool guy. A group of us went out for food and beer a few times during the ISV tour down in Austin. Mike came along a few times and we had some really great conversations about SOA, etc. They are doing some really neat stuff with EraBlogs (ultra-SOA stuff, completely message based).
August 11, 2003 8:02 PM
 

Jesse Ezell said:

For those who don't know, Mike's Blog is over here:

http://thebicameralmind.com/
August 11, 2003 8:04 PM
 

Darren Neimke said:


Thanks Jesse!
August 11, 2003 8:09 PM
 

Rachel Reese said:

hehe, "TryHarder". I like that one.

I always imagine the compiler getting ticked off with me for using AndAlso, since English-wise they mean the same thing, but AndAlso is a longer to write (and thus compile) version.
August 12, 2003 7:23 PM
 

Joe Grossberg said:

Yeah, I thought "Death March" was short on answers, especially if you don't have authority.

It's predicated on the assumption that management is on your side, vs. a death march deadline imposed from outside the company, and that your execs are willing to do "whatever it takes" to get stuff done.

The book is of little use if it's your boss who's wielding that whip.
August 13, 2003 12:33 PM
 

Scott Mitchell said:

Re: OrElse/AndAlso, for those who remember the .NET Framework Beta1 (or was it even in Beta2), intially VB.NET's Or and And operators were short-circuiting, but the old VB guard complained citing lack of backward compatability and difficulty in porting.

Darren said: "The | operator of C/C++/C#/Java/JavaScript is the same as the VB.NET OR operator. And the || operator is the same as VB.NET's OrElse operator"

I don't think this is true. The | operator is for a bit-wise OR in those languages - that is, it takes two *integers* and returns a bit-wise integer OR value. || is a logical or, and is short-circuiting in languages like C#/C/C++/etc. (Namely, it takes in two *booleans* and returns a boolean value.)
August 13, 2003 3:08 PM
 

Brian Desmond said:

I believe there is a bug in your code. The value of i is never reset once it exceeds ten. Therefore, for each piece of food you consume after your tenth item, you will burp. ;)

--Brian
August 14, 2003 12:58 AM
 

Darren Neimke said:


Brian, this feature is by design ;-)
August 14, 2003 1:06 AM
 

Darren Neimke said:

There is a potential bug though that didn't show itself until I turned on Option Strict. You should do some type checking when the call to Me.CurrentLocation.GetContents() is made because it returns a collection of type 'object'. Imagine if I was drunk when I made the Goto(Fridge) call and somehow stumbled into the car parking lot. Imagine trying to consume a parking lot full of cars!

I understand that this will be remedied when Generics comes along!
August 14, 2003 1:10 AM
 

TrackBack said:

August 14, 2003 5:31 AM
 

TrackBack said:

August 14, 2003 4:16 PM
 

TrackBack said:

New keywords explained.
August 18, 2003 2:57 PM
 

Scott Mitchell said:

Neat stuff, I was unaware of this method and property. I played with them a bit and decided to write an article on this, thanks! :-)

If you are interested, you can get a "sneak peek" - it will go live on Wednesday this week, see:
http://aspnet.4guysfromrolla.com/articles/082003-1.aspx
August 18, 2003 3:49 PM
 

Steve Hiner said:

I think they ARE the same...

AND & OR are bitwise in VB
ANDALSO & ORELSE are boolean in VB
August 18, 2003 4:45 PM
 

Thomas Johansen said:

Thanks for helping me out with this mate. You can hereafter call yourself 'The King of Regex' ;)
August 27, 2003 8:48 AM
 

TrackBack said:

August 27, 2003 9:28 AM
 

Jonathan Cogley said:

Nice stuff. I didn't know you could name groups and then reference them in your match by name. Thanks for the tip!

BTW - your tester class really wants to be a NUnit Test case - it is so similar you would be amazed. If you haven't already, take a look at NUnit on SourceForge, it will change the way you write code forever.
August 28, 2003 12:28 AM
 

Scott Galloway said:

Well you don't ralyy *NEED* to HtmlEncode all user input, you just need to make sure they don't do anything naughty... What I've done for a recent application is perform an XSLT transform on the incoming user content - this stips out all malicious and unwanted HTML content but leaves tags I do allow - some formatting ones... I do this by converting the incoming data to XML using the excellent SGML parser then applying the transform before saving to DB. This has been competely foolproof so far - the fall back if the conversion fails is of course to HtmlEncode...
August 28, 2003 10:48 AM
 

Kurt said:

When you set the Text property of a TextBox (multiline or not) on a WebForm, the text is automatically HTML Encoded. That's why running it through Server.HtmlEncode yourself yields goofy results, it's encoding the already encoded text.
August 28, 2003 1:13 PM
 

Martin Vobr said:

Hi,
the callendar looks pretty cool. Good job!

I've tried it in IE6 and Mozzila 1.3 and it works great.

But when trying Opera 6 it does not work at all :-(. Is any chance to fix the issue?

I'll be happy to use it in my projects, but lack of Opera support is for me showstopper for any projects outside intranet environment...

If you need assistence with testing please contact me at martin.vobr@rebex.net
August 28, 2003 7:24 PM
 

Scott Galloway said:

That's pretty cool, thanks...
September 5, 2003 9:12 AM
 

OmegaSupreme said:

Cool, good tip.
September 7, 2003 7:46 PM
 

Chris Martin said:

How 'bout %WIN%\system32\vbscript.dll?
September 9, 2003 5:28 AM
 

Darren Neimke said:


Yeh, I did import that reference but still couldn't work out how to access those functions :( I could "intellisense" them but not access them!

September 9, 2003 8:00 AM
 

Paul Wilson said:

Just say NO to code without proper resource cleanup:

public string ReadFromFile(string filename)
{
string retval = "";
FileStream fs = null;
StreamReader sr = null;
try {
fs = File.OpenRead(filename);
sr = new StreamReader(fs);
retVal = sr.ReadToEnd();
}
finally {
if (sr != null) { sr.Close(); }
if (fs != null) { fs.Close(); }
}
return retVal ;
}
September 11, 2003 8:59 PM
 

TrackBack said:

September 12, 2003 6:18 PM
 

Thomas Johansen said:

Why not simply something like this?:

using (FileStream fs = File.OpenRead(filename))
{
StreamReader sr = new StreamReader(fs);
retVal = sr.ReadToEnd();
}
return retVal;
September 12, 2003 11:47 PM
 

Koh said:

Hi, good day.

I've tested the demo. It's work fine, but can t be able to limit the selectedable date range ?? Example, current date = 18/09/2003 ... only allow to select up to (Max 1 month from now) 31/10/2003.

Can it be display the format like .... Thursday, September 18, 2003 ???

It would be nice if you are able to guilde me on how to change the coding. Thanks! Your co-operation will be greatly appreciated. You cna reach me at hbkoh@intimal.edu.my
September 18, 2003 12:33 AM
 

TrackBack said:

September 21, 2003 4:50 PM
 

SBC said:

a good one. thanks for posting it.
September 21, 2003 7:46 PM
 

TrackBack said:

September 22, 2003 1:07 AM
 

TrackBack said:

September 22, 2003 4:02 PM
 

TrackBack said:

September 22, 2003 4:35 PM
 

TrackBack said:

September 22, 2003 4:35 PM
 

TrackBack said:

September 23, 2003 4:42 AM
 

OmegaSupreme said:

Thanks for the info, very useful :D
September 23, 2003 7:21 AM
 

Christian Nordbakk said:

Great post Darren! Especially the two last 'Interesting Links'. Thanks!
September 26, 2003 5:07 AM
 

TrackBack said:

September 26, 2003 10:11 AM
 

Dave Bettin said:

Just to clear up one item: The conference doesn't need me I need the conference. Also, I know a great piano tuner here in town :-)
September 26, 2003 9:24 PM
 

TrackBack said:

September 27, 2003 8:10 AM
 

Simon Fell said:

You don't need any of this, it all gets done for you, IsInRole will check against the users group membership.
September 28, 2003 7:22 PM
 

Darren Neimke said:


Yeh, that's true some - but not all - of the time unfortunately. I was testing my app. on a WinXP machine that was not a domain controller and, although I can query the group membership ( as per GetUserRoles() ) the test against IIdentity.IsInRole was always failing.

So, a little bit of brute force fixed the problem ;-)
September 28, 2003 8:48 PM
 

TrackBack said:

October 1, 2003 7:12 PM
 

Scott Galloway said:

Can I add a 3. Document them properly! Much of the code in these apps isn't well conmmented / documented, explaining some of the basic concepts / patterns used would REALLY help. What documentation has been produced is pretty basic and generally covers the 'how to use the app' type of documentation.
What would be really helpful would be some examples of extending the basic apps and some discussion of concepts like your article provides (excellent article incidentally, well, except for the use of DataBinder.Eval but I have an almost obsessive aversion to it's use...).
Anyway, I'm really not trying to be negative, they are excellent, just a bit of a lost opportunity in my opinion.
October 1, 2003 7:51 PM
 

Darren Neimke said:


Scott, I agree 100% about the DataBinder.Eval stuff and tossed-up whether or not to use it in the article. In the end I used it because I thought that it would be a little more explicit for any NEWBIES reading it. You're right though, I should use the more direct syntax so I'll alter it this weekend when I add the screen shots.

Thanks for the feedback! :-)

October 1, 2003 8:31 PM
 

Me said:

There are always exactly 4 valid components. So no property needed.
October 7, 2003 1:27 PM
 

Andrew said:

I've also noticed this behavior,you can
use MyIE as alternative ;-)
October 8, 2003 5:16 AM
 

Siegfried Weber said:

I've seen such behavior too, but only if I have a galore of IE windows open.
October 8, 2003 5:26 PM
 

Damon said:

I was wondering if you had a small example of using this control you could post for download?

THanks
October 9, 2003 9:57 PM
 

Darren Neimke said:

There's quite a bit of sample code in the .chm file that comes with the Assembly have you seen that?
October 9, 2003 10:39 PM
 

Damon said:

Sorry I should have looked deeper before asking. I see it know. Thanks for the quick response.
October 9, 2003 10:56 PM
 

Darren Neimke said:


No probs.... let me know if you get stuck :-)
October 9, 2003 10:57 PM
 

Damon said:

I am stuck. Here is what I am trying to do. I have an ASP.NET app and I have a process that takes forever(I am processing a txt file). I need to launch that txt file process on a seperate thread and then use your timer control to check to see if it is complete by checking a session variable. Once complete then move to a another page. Any suggestions? Thanks
October 10, 2003 10:26 PM
 

JosephCooney said:

Yeah, all those easily-readable regex's are SUCH a big problem. Like PERL, the REALLY need to be obfuscated ;-).
October 13, 2003 9:01 PM
 

JosephCooney said:

Personalization is cool. Wouldn't it be great if there were some cool webcontrols that would easily let you do stuff like WebParts in your ASP.NET applications. I wonder who could make something like that? ;)
October 16, 2003 1:06 AM
 

anon said:

Great stuff
how about a version for C# ?
October 16, 2003 5:34 PM
 

Darren Neimke said:


That has been left as an excercise for the reader :-)

October 16, 2003 8:21 PM
 

test said:

<SCRIPT>self.location 'www.microsoft.com'</SCRIPT>
October 17, 2003 9:46 AM
 

test said:

<SCRIPT language="Javascript">
self.location='www.microsoft.com';
alert("here");
</SCRIPT>
October 17, 2003 9:47 AM
 

Scott Mitchell said:

Actually, the RssFeed control does not yet support templates. I initially built it so it did have template support ONLY, and then I found I was always wanting it to look a certain way, so I just scraped the templates.

Adding templates is a proposed feature in the RssFeed GotDotNet WOrkspace, but I'm not yet certain it needs to be added... http://workspaces.gotdotnet.com/RssFeed

October 26, 2003 6:41 PM
 

the0ther said:

"titbits"?

the t and the d aren't adjacent on the keyboard, either.
October 29, 2003 2:28 PM
 

Andy Smith said:

Calling the javascript method directly is a bad plan. I make no guarentees that the _undocumented_ script which opens the dialog window will remain exactly as it is. If there are customization features that I am missing, it would be better if we tried to get them implemented for everybody.
November 3, 2003 11:45 AM
 

Frans Bouma said:

VB.NET developers will now not made familiar with the term Refactoring which is a general term used by Java developers, C++ developers, researchers, architects and soon, C# developers. VB.NET developers will never hear of the term and will not learn about the term. They will thus not be able to participate in discussions about this and will be looked upon as second grade developers.

Sorry, but EXPLICITLY avoiding a menu item with the general term is EXPLICITLY making VB.NET developers look less skilled while they probably ain't.
November 5, 2003 6:08 AM
 

Darren Neimke said:

> VB.NET developers will now not made familiar with the term Refactoring

Well, they already are but that's an aside. I've used this feature, it's not really that great. IMHO it should really be relegated to more speculative ventures - such as WebMatrix - until it has been further evaluated.

Frans, on another (completely unrelated) topic, are you a C# developer? If you are can you please tell me how often the average C#'er would use the C# Class wizard when designing classes and their respective members? Is that a useful IDE tool?
November 5, 2003 6:15 AM
 

Frans Bouma said:

Well, it's speculation of course if the average VB.NET developer is familiar with the 'refactoring' term, however he/she will be when there is a menu item in front of his/her nose :)

Refactoring is not something I'd use often agreed, as I'm more of a design first, implement later kinda guy and not a 'design on the fly' kind of developer, however refactoring can help.

I'm a C# developer and I never use the class wizard. :) I also don't know any C# developer who uses the wizard to, say, add properties. Most of them have macros for that. The class wizard is pretty bogus to me, because it f.e. doesn't do a lot you would expect from such a wizard, like creating a derived class from a given other class, implementing interfaces using the wizard etc.
November 5, 2003 7:12 AM
 

Darren Neimke said:

Right, thanks. Well, I'd estimate that the 'Refactoring' stuff will get used nearly as much as the C# Class wizard does :)
November 5, 2003 1:29 PM
 

Jules said:

Neat. My method of doing this was far more convoluted, lol.
November 10, 2003 6:04 AM
 

Darrell said:

I am generally against using cursors. Cursors take away the wonderful set-based abilities of SQL Server and force it to look at things row-by-row. Probably not a big deal in this case, but there is almost always a set-based solution. Like this one from Alceu Almeida which includes error handling and transaction capabilities(http://searchdatabase.techtarget.com/tip/1,289483,sid13_gci551691,00.html?FromTaxonomy=%2Fpr%2F286331):

SELECT * from sysobjects where uid = user_id('UseNAme')
declare @Return int
exec @Return = sp_configure 'allow updates', '1'
SELECT @Return as 'Returned Code'
GO
reconfigure WITH OVERRIDE
GO
DECLARE @Rows int, @Error int
BEGIN TRANSACTION
update sysobjects set uid = user_id('dbo') where uid = user_id('UseNAme')
SELECT @Error = @@Error, @Rows = @@RowCount
SELECT @Rows as '#Rows'
IF @Rows > 0
BEGIN
SELECT @Rows AS '#Rows'
COMMIT TRANSACTION
END
else
BEGIN
SELECT @Error AS 'Error #'
ROLLBACK TRANSACTION
END

exec sp_configure 'allow updates', '0'
reconfigure WITH OVERRIDE
go
November 10, 2003 9:14 AM
 

Darren Neimke said:

Thanks for that Darrell... it's always nice to know the pure set-based way of doing it; alas my sql skills are not quite what they used to be.
November 10, 2003 2:08 PM
 

JosephCooney said:

I never get tired of seeing the word 'crikey' in a weblog ;-). I agree re: "proof of concept" vs. something to use in production. Sometimes the difference is more like an order of magnitude, not 50%.
November 13, 2003 6:42 AM
 

John said:

I think you've a css problem or something...I'm viewing (most of) your page in IE 6.0.2800 and the content for the frame is too far to the left and is under the left hand side links pane
November 13, 2003 12:32 PM
 

Darren Neimke said:

Fixed, thanks!
November 13, 2003 3:03 PM
 

Roy Osherove said:

Congrats!!
November 15, 2003 6:16 PM
 

Jim Martin said:

Nice Job! That is really awesome!!
November 15, 2003 6:52 PM
 

Darrell said:

Sweet!
November 17, 2003 9:21 AM
 

Sam Gentile said:

> I read the new "Beyond (COM) Add Reference: Has Anyone Seen the Bridge?" article yesterday and, was quite impressed by the detailed groundwork that was laid-out to explain the differences between COM and CLR and, how Interop provides a bridge for seamlessly calling in and out of both environments. As the author states in that article the real meat is still to come so, if you are reading this and you haven't already read that article scoot over now and give it a look - you won't be disappointed.
>>

Why thank you! As the author I am glad you liked it and it was helpful to you. Feel free to leave suggestions at the link with my name on additional suggestions.

> For example, the guy who rated Sam's article a 1 out of 9 - it would be insightful (and add perspective) to see *why* he thought that it smelled *that* bad.
>>
Me too! I can't tell what the beef of that one person was and how I could best adddress his/her needs.

Thanks!
November 18, 2003 3:59 PM
 

Duncan Mackenzie said:

Honestly, having the comments visible wouldn't help all that much.... most people don't leave a comment, just a rating.

As someone with a bunch of MSDN articles, I wish everyone left a comment... but I think that if we forced people to type something in we would either drastically reduce the # of people who were willing to rate our articles or get a lot of useless comments like "qwertysdfdsafsd" (we already get a few of those, likely from people who think that their rating will be rejected without some text entered into the comment box)
November 19, 2003 4:14 AM
 

Bambuk said:

Nice :)
November 19, 2003 8:04 AM
 

Jeffro said:

"We also touched on the fact that Stored Procedures can help us to modularize our programming by storing chunks of database logic in the database rather than in our programs."

This for me is the number one reason to use sprocs-- and it's a point that gets left out in these arguments over dynamic vs CRUD sprocs.

With sprocs... business logic can be altered on the server without any recompilation and redeployment-- as long as the parameters are left alone, of course.

But as to the CRUD... why do you have to have 3 people writing these things and breaking code and causing terror and confusion? If you write a code generator... you can output your CRUD script and a class library for calling them every time your structures change. Hand the class to your developers... and VS.Net shows them where the application is broken with a stack of Tasks when they switch it out.

Any additional logic can be added to the CRUDs-- and I think this is easier to maintain than triggers.

The bottom line: the more logic that's moved to the server, the more centalized and streamlined the maintenance becomes. And the sp's are available to anyone that can talk to the database.

Anyways, thanks for the balanced and insightful article.
November 19, 2003 8:20 AM
 

Scott McCulloch said:

Sounds good, why can't they host it at a real place like sydney :)

Just joking, have fun...
November 19, 2003 8:24 AM
 

Chris Frazier said:

Hellz yeah, Darren!
November 19, 2003 3:51 PM
 

Darren Neimke said:


Oy! :-)
November 19, 2003 6:03 PM
 

senkwe chanda said:

Hi Darren, I guess I should really direct this to ScottW, but, in order to have a blog listed at regexblogs, doesn't that imply that you need to have a .Text (and therefore .Net) powered blog? If so, I doubt that you'll get many (if any) Java, Ruby or Perl afficionados maintaining blogs there. I really hope I'm wrong about that because I've just started work on my own regex tool and would love to have a blog hosted there at some point :-)
November 20, 2003 3:30 AM
 

Scott Mitchell said:

Woot! That article is up! Hehe. Darren, I have already written part 2, which talks about Hashtables, so your questions will be answered!

Ok, here's a sneak peak. The hashtable does not store the data in any sort of tree structure. Rather, it stores the data in an array. Hashing is the process of mapping the key to an array index. This value is computed by a formula that involves the hashcode of the object being added to the hash (which is accessible via the GetHashCode() method). (I discuss the precise equation in my Part 2 article...)

Anywho, when you enumerate through the hashtable it enumerates from the first item in the underlying array on down - NOT in the order of insertion. The ordering in that underlying array is based on the equation aforementioned, which in part involves the GetHashCode() value of the object being stored.

If this makes no sense, don't worry. I discuss hashtables in detail in Part 2. Essentially, hashtables provide a means for constant-time access (like an array), but better than an array because it offers constant time searching too!
November 21, 2003 12:11 AM
 

Bruce Johnson said:

I'm not 100% certain of this (statistics is about 20 years in my past), but I believe that you don't need to randomize the player array to have this (quite slick) algorithm work. Assuming that the distribution of random numbers is uniform across the entire range, the order of the players in the array is inconsequential. Using your example, Bill will have a 1 in 16 chance of being selected regardless of where Bill is in the player array.
November 26, 2003 9:21 AM
 

Ron Krauter said:


Darren,

Do you mind posting some code of the solution. I am having a hard time understanding the solution.

Thanking you for your time,

-ron
November 26, 2003 6:51 PM
 

Darren Neimke said:

November 26, 2003 7:44 PM
 

Todd Moon said:

OK, now set up an app that runs PickARandomGuy a few thousand times and records the guy picked each time. Then post some statistics. Basically just a chart which shows what percent of time each Guy was picked and their score. I'm curious how the their score relates to that percentage. Maybe run the test with at least twice the number of Guys so they have a smoother distribution of scores.
November 27, 2003 12:11 AM
 

Ron Krauter said:


Thank you Sir for taking the time to write the Code!

I ran a test picking a "Guy" 10000000 times and here is the result:

Player Weight Weighted Probability Occurance (10000000 iterations)
====== ====== =========== =========
Jim 20 05.87 06.34
Bob 10 02.93 03.02
Wayne 40 11.73 11.91
Foo 5 01.47 01.48
Darren 90 26.39 26.35
Barry 22 06.45 06.57
Randy 45 13.20 13.36
John 11 03.23 03.11
Doe 98 28.74 27.86

So, this is perfect. The only problem I see is this section:

If randScore <= 0 Then
LabelRandomGuy.Text = "New guy is : " & g.ToString
Exit Sub
End If

What if you have a lot of "Guys", then we might end up with a lot of loops just to get randScore to 0.

Thanks again,

-ron
November 27, 2003 12:15 AM
 

Ron Krauter said:

Sorry about the formating..second try
<code>
Player Weight Weighted Probability Occurance (10000000 iterations)
====== ====== =========== =========
Jim 20 05.87 06.34
Bob 10 02.93 03.02
Wayne 40 11.73 11.91
Foo 5 01.47 01.48
Darren 90 26.39 26.35
Barry 22 06.45 06.57
Randy 45 13.20 13.36
John 11 03.23 03.11
Doe 98 28.74 27.86
</code>
November 27, 2003 12:16 AM
 

Darren Neimke said:


Thanks for saving me the time Ron ;-)
November 27, 2003 12:20 AM
 

Ron Krauter said:

Todd,

I just saw your post after posting my findings! Although I wish my posting was better formatted.

-ron
November 27, 2003 12:36 AM
 

Scott said:

Try binding a DataSet containing 1000+ records to a DataGrid and see if you want to:
a) Use custom paging so that you only have to retrieve data pages instead of the whole shebang.
b) Use a DataReader instead of a DataSet.

I constructed an ASP.NET app using a DataGrid and a DataSet. It worked well when I only have 30-50 rows in the DataSet. When I got to 940 it added about 30 seconds to my page load time.
December 6, 2003 12:49 AM
 

Scott Mitchell said:

Check out Dino Esposito's latest MSDN article:

Tips for Successful Data Access
http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/datareader.asp

He talks about DataReaders vs. DataSets a bit...
December 6, 2003 1:18 AM
 

Phil Weber said:

Hi, Darren: I use DataReaders almost exclusively in ASP.NET development. They're the .NET equivalent of the venerable "firehose" cursor.
December 6, 2003 2:23 AM
 

Frans Bouma said:

When you have to fill objects with data, datareaders are very fast and easy to use. When you're using datasets, they're of course not necessary.
December 6, 2003 4:25 AM
 

Scott Galloway said:

Same here, for ASP.NET, I use SqlDataReaders for the vast majority of data access...only times where I would use DataSets (or DataTables without DataSets) are where I need to cache the data or serialize / access it via a Web Service.
SqlDataReaders are really handy but you have to remember that they're connected the whole time you're using them so they're really only suitable for instances where you pull out data, do very little with it and dump it (filling custom objects or just binding on to controls are the most typical for me).
December 6, 2003 7:44 AM
 

Scott Galloway said:

Oh, also use DataSets for DataRelations...the most useful and seemingly underused thing about them...
December 6, 2003 8:59 AM
 

Paul Wilson said:

I use datareaders for most web development, and I prefer custom objects instead of datasets, so I use datareaders to fill them also. Just make sure you wrap access in try/finally blocks to close datareaders, and use the closeconnection behavior so the underlying connection is then closed too. One last note, paging should be done in the database: http://weblogs.asp.net/pwilson/posts/31456.aspx.
December 6, 2003 10:01 AM
 

Douglas Reilly said:

I use DataReaders all the time, and generally find them to be lots easier than DataSets. They are lightweight (relatively speaking) and unless I need to bind multiple controls to a single result set (which I could actually overcome if I really wanted to) or things I need to do in a CheckBoxList, I always use DataReaders. If you use a pattern that ensure disposal, all is well.
December 6, 2003 11:57 AM
 

Scott Galloway said:

Also, quite a few people who actually commit suicide don't actually mean to (the old cry for help thing) - people don't realise just how many things can be fatal. In teenage girls, Iron Tablets (taken for anaemia) are a pretty common cause of death - they look harmless but in large doses they're fatal. Also, hanging - very easy to accidentally kill yourself, as beyond a certain pressure you pass out, causing strangulation. Don't worry, I used to study this stuff - not a morbid fascination :-)
December 10, 2003 7:23 AM
 

Dennis v/d Stelt said:

@Scott: You say the "don't worry" thing because we might think you are morbid, but don't think about the fact we might find it even more morbid that you did study at this?! :)
December 10, 2003 7:34 AM
 

Scott Galloway said:

Hey, I was studying Clinical Psychology...didn't have a choice...very interesting subject though!
December 10, 2003 8:00 AM
 

Fabrice said:

I hope that ScottW comes up with not only a solution to aggregate feeds, but also with a way to filter posts out from feeds. For example, it could be as simple as checkboxes posters could use to flag their posts "I talk about the PDC", "I talk about a Microsoft product", "I talk about my company"... You know, some kind of metadata which could be used to filter RSS feeds.
We wouldn't subscribe to Rss.aspx, but to Rss.aspx?ThemeOut=12&ThemeOut=15...
December 10, 2003 8:48 AM
 

Mark said:

When people do not understand what life is really about, hopelessness sets in. I know.

There is only one who can change all that:
http://www.gospelcom.net/guidance/gospel/gospel.shtml">http://www.gospelcom.net/guidance/gospel/gospel.shtml
http://www.billygraham.com/believe/

A testimony:
http://www.billygraham.com/article.asp?i=392&s=62

Additional:

http://www.gospelcom.net/guidance/
http://www.gospelcom.net/guidance/grief.shtml
http://www.gospelcom.net/guidance/rejection.shtml

Specifically Suicide:
http://www.billygraham.com/search.asp?search=suicide&x=0&y=0
http://www.billygraham.com/qna/qna.asp?i=3169

I hope this helps.
December 10, 2003 8:48 AM
 

Scott Watermasysk said:

The main page will be cleaned up shortly (in addition to some new user features for filtering content).

-Scott
December 10, 2003 8:55 AM
 

Fabrice said:

Thanks Scott. Now we should stop asking and let you work and see what you did ;-)
December 10, 2003 9:05 AM
 

SBC said:

Hope you watch the classic movie 'It's A Wonderful Like' this season.. :-)
December 10, 2003 8:24 PM
 

SBC said:

errata - 'It's A Wonderful Life'
December 10, 2003 8:42 PM
 

Steven Smith said:

You can also subscribe to individuals' blogs instead of the BIG FEED OF DEATH. Sure, you may miss stuff, but odds are if it's really important, somebody will tell you about it...

Steve
December 10, 2003 8:58 PM
 

Tim said:


Hi,

You have a cool blog.Lot's of info.
December 13, 2003 6:29 AM
 

Paschal said:

Hi Darren, why don't you try Code Library ? See my blog for more details. Great tool for code repositery, and it's free ;-)
December 15, 2003 5:12 PM
 

Darren Neimke said:


Thanks Paschal... just downloading now :-)
December 15, 2003 5:23 PM
 

Paschal said:

Darren yes Code Library is not perfect but give the developer some credit. It's a cool app indeed and If I look at the number of people who had a look or download his tool through my post, it should be not so bad at all ;-)
I think we should all the time be not too critic when people use some off their time to develop some nice freeware like this one (IMHO!).
However, don't misunderstand me, I don't say we can't be critic, but I prefer to be tough with some commercial tools provided by some companies good enough only to rip you off!
December 16, 2003 5:31 AM
 

Paschal said:

I think by the way that DevBuddy is a good idea. Why not pushing it a bit furthermore. I can help (just a little bit ;-)) if you want
December 16, 2003 5:33 AM
 

Darren Neimke said:


Thanks Paschal, and thanks for the initial link. I really didn't mean to come across as a 'hard critic' of the product - I actually quite like it. As I said, the UI is very nice and there's a whole bunch of features in there that I really like.

Again, as I said, I'll persist with the application tomorrow and see if I can get the hang of it :-)

P.S. Regarding DevBuddy - yes, I really must get off of my "butt" and do something about that; I'll give you a ping sometime to discuss it with you :-)

Cheers,
- Darren

December 16, 2003 5:40 AM
 

Udi Dahan - The Software Simplist said:

Although I come from a different point of view - the consulting side of project management - I'd be very interested in hearing your views on my experiences.

My blog is at: http://udidahan.weblogs.us

More generally, I strongly stuggest you take a look at Joel on Software, specifically his article on scheduling:
http://www.joelonsoftware.com/articles/fog0000000245.html

Hope that helps
December 16, 2003 6:44 AM
 

Darrell said:

Johanna Rothman - Managing Product Development -http://www.jrothman.com/weblog/blogger.html

Esther Derby - Software Mgmt Process Improvement - http://www.estherderby.com/weblog/blogger.html

Dave Anderson - Agile Management - http://www.agilemanagement.net/

If you have some $$$, the Cutter Consortium has an Agile Software Development Project Mgmt advisory service - http://www.cutter.com/project/advisory.html

And of course, some shameless self-promotion! My blog has a category called Agile Software Development - http://dotnetjunkies.com/WebLog/darrell.norton/
December 16, 2003 8:39 AM
 

Chris Darnell said:

These articles come at an interesting time for me, when I am researching Code Libraries for my company. While Code Library is free, it is still lacking in many regards for me. I am currently comparing CodeBox with Code Library. Here is a brief critique:

1) Code Library's security is only at the UI level, not at the database level.
2) Code Library doesn't provide any tracking. CodeBox not only records what user created a particular snippet element, but it also records when the snippet element was created AND when it was last changed.
3) For a team environment, Code Library does not tailor itself for each user. CodeBox, which is the other product I am analyzing right now, allows each user to have their own Bookmarks.
4) Both only offer VS.NET integration as a button to open each applications user interface, neither offer any other type of VS.NET plug-in
5) Code Library creates new Tables in the database for each new project. This makes it impossible to set code snippet dependencies between different projects. CodeBox creates relational table rows with the same table, allowing dependencies to be set across the entire library.

----------
Why do I like CodeBox better (so far ;-) )?
1) DOCUMENTATION IS IN ENGLISH ;-)
2) Offers a separate tab for each snippet element that is for examples of using the snippet
3) Each snippent element can be "typed", indicating that the code is a class, structure, method, etc...
4) Ability to record who created a snippet element
5) Price isn't unreasonable
6) Database structure is much simpler. (I especially like the ability to set dependencies across the entire library).
7) I really like the "Export HTML" feature, which exports not only the selected snippet element, but follows to its Dependencies, as well.

----------
Code Library currently has several bugs that simply make it impossible for me to us:
- Code Library doesn't retain the "code language" setting when you create a code snippet element. I always us VB.NET, but it always sets the code language to C# when I return to an element. (Granted, that only affects the code syntax highlighting, but it should still maintain that value)
- Code Library provides the ability to search through files, but it doesn't. (Frankly, I'm not sure that it could, anyway. CodeBox doesn't offer that option.

I'm not affiliated, in any way, with any of these products. This is just based on my analysis of each over the past week or so.

Hope this helps!!!
December 16, 2003 11:56 AM
 

Chris Darnell said:

Suppose I should add that I can appreciate the work that the Code Library developer(s) have put into the product. It just "isn't there" enough for it to be of any use to me. :-)
December 16, 2003 12:15 PM
 

Shannon J Hager said:

I agree, CodeLibrary just isn't there yet. Or maybe it is and I just can't figure it out via the Chinese documentation.
December 16, 2003 1:17 PM
 

Darren Neimke said:

Thanks guys... some great feedback - especially from Chris :-)
December 16, 2003 4:33 PM
 

Darren Neimke said:

Thanks everyone, all I can say is: "subscribed, subscribed, subscribed" :-)
December 16, 2003 4:54 PM
 

Paschal said:

Hey come on guys, Code Libray is not perfect, yes sure, but it's done in a professional look and for free. I believe that code Library developer don't earn his life from this huge development.
I use this tool every day and it suit my wishes. Darren Devbuddy is surely promising, but for the moment I like a good free open source tool to play with.
And for the documentation, come on, the tool is not so difficult to use.
I didn't found any secret function requiring to have a master in chinese to understand it ;-)
My only advice: support the guys who devote their spare time to make things moving... in the right direction !
December 17, 2003 3:29 AM
 

Darren Neimke said:

Paschal, agreed!

I wrote in my blog today - http://weblogs.asp.net/dneimke/posts/44004.aspx - about how I've changed my mind about the tool - I really didn't realize just how cool it is.

When I've used it a bit more I hope to write a review on Scott Mitchell's .NET Toolbox site.
December 17, 2003 4:52 AM
 

Joel said:

Have you looked at CodeSmart from AxTools? Does much of what you are talking about.
December 17, 2003 1:35 PM
 

Shannon J Hager said:

Paschal, CodeLib is open source?
December 19, 2003 7:34 PM
 

Iain said:

I favour integrating the "Test it" phase with the "Code it" phase, although I always have more tests to write after. If you can test as you write, you spend even less time debugging because you don't write everything and then come back to the routine(s) when not working, they're still in your head because you wrote the test first, and now you're writing the code and testing simultaneously (more or less).

Very effective, I find.
December 21, 2003 6:15 PM
 

Paschal said:

Huhh magic mushrooms for your breakfast today ;-)))
December 23, 2003 7:02 AM
 

Troy Goode said:

Whuh?
December 23, 2003 8:42 AM
 

TrackBack said:

Dewayne Mikkelson and his Radio WebDog, Shadow
December 26, 2003 3:48 AM
 

TrackBack said:

January 4, 2004 1:07 PM
 

mohammad said:

good
January 6, 2004 6:42 PM
 

Darren Neimke said:

January 6, 2004 7:25 PM
 

12 said:

<br>
January 8, 2004 3:41 AM
 

Scott Galloway said:

Been my aim for the year for say...the past 10 years :-)
January 8, 2004 6:17 AM
 

joe said:

Darren, how would Napoleon categorize you? I thought about it, and I think I'm a little bit of each one of those types! I guess it depends on what time of day it is!
January 15, 2004 9:31 AM
 

OmegaSupreme said:

Great post, of interest to me because we're currently moving into new offices and thinking about various ways to motivate staff.

I think smart-lazy is good for a programmer because in order to save time typing I guess they would think about ways to optimise their code.
January 15, 2004 9:41 AM
 

Udi Dahan - The Software Simplist said:

It's great to see that technical types can appreciate the difficulties in managing people like themselves.

Actually, this field is VERY developed and has roots in psychology and sociology. There are various personality/aptitude tests that categorize people in various ways. Meyers-Briggs(?) is one that has surfaced several times in the blogosphere, but there are many others.

If you really intend to get into this, I suggest that you set aside time each day to read about it for the next 3 months or so. After that, you'll be much better armed to choose which direction you choose to take it.

In fact, in the business world, these topics are of such importance that they are some of the first topics taught as a part of the MBA program.
January 15, 2004 12:41 PM
 

Darren Neimke said:


Hi Joe,

> Darren, how would Napoleon categorize you?

Well, I believe that I'm *either* currently somewhere in the "Smart-Lazy" quadrant or, it's my goal to be there. It's probably more significant if it's the latter of those because then, that would become one of my motivating factors.
January 15, 2004 2:56 PM
 

Ryan said:

Code behind adjustment:

change protected virtual void RegisterClientScript() to
public virtual void RegisterClientScript()

and in your script just RegisterClientScript();

protected MarkItUp.WebControls.Timer Refresh_Sessions;

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.Refresh_Sessions.RegisterClientScript();
etc...
January 15, 2004 7:54 PM
 

Ryan said:

Code behind adjustment:

change protected virtual void RegisterClientScript() to
public virtual void RegisterClientScript()

and in your script just RegisterClientScript();

protected MarkItUp.WebControls.Timer Refresh_Sessions;

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.Refresh_Sessions.RegisterClientScript();
etc...
January 15, 2004 7:57 PM
 

Du said:

I really like this article .. however it would be much nicer if you post the result after the regex is performed

thanks
January 15, 2004 11:35 PM
 

Darren Neimke said:

Agreed, thanks for the feedback. I'll see what I can do ;-)
January 15, 2004 11:41 PM
 

TrackBack said:

January 16, 2004 4:46 PM
 

TrackBack said:

January 16, 2004 4:49 PM
 

sandeep Nema said:

hi
I am designing one client server application which need this kind of online/offline functionality.Please let me know how to hndle the sam ein design.Also how to deal with concurrancy issues.
January 16, 2004 7:41 PM
 

TrackBack said:

January 19, 2004 6:57 AM
 

TrackBack said:

January 20, 2004 4:24 AM
 

TrackBack said:

January 20, 2004 4:48 AM
 

noen@none.com said:

great blog
January 20, 2004 12:50 PM
 

Troy Goode said:

Congratulations, that is indeed a great achievement. =)
January 20, 2004 4:06 PM
 

OmegaSupreme said:

Congrats , great job :D
January 20, 2004 4:30 PM
 

Roy Osherove said:

Congrats!!!
January 20, 2004 4:34 PM
 

Todd Moon said:

Congrats! Great job!
January 20, 2004 4:38 PM
 

Scott Mitchell said:

Congratulations! Will we be seeing you in Redmond in April? :-) Enjoy the MSDN Universal subscription! :-)
January 20, 2004 5:20 PM
 

Rob Chartier said:



Congrats!

January 20, 2004 5:47 PM
 

James Avery said:

Congrats!
January 20, 2004 8:05 PM
 

Colt said:

Congrats Darren!
January 20, 2004 8:43 PM
 

Melissa Cadzow said:

Hello Darren,
Since seeing your presentation last week regarding the wonders of blogs, I've been following your blog and as well few other software developers. I'm addicted. Congratulations on the MVP status.
Cheers,
Melissa.
January 21, 2004 6:05 PM
 

Jason Salas said:

Hey Darren! Just wanted to drop you a line and say congrats on the MVP nod. I got it, too, so I'm honored to be in good company of people I've "known" for years.

Glad to be in the inductee class with you!

Cheers!
Jas
January 22, 2004 7:44 AM
 

Lewis Moten said:

Wow, that was fast. Thanks for putting it in!
January 22, 2004 5:42 PM
 

Scott Mitchell said:

Thanks for the plug, Darren. The latest version of RssFeed supports templates as well. In fact, there is an upcoming MSDN article on creating databound templated controls that dissects how templates are supported in this very control.

Some more live demos of RssFeed are available at: http://scottonwriting.net/demos/RssFeedDemos.aspx

Also, there is extensive documentation available for RssFeed, see:
http://scottonwriting.net/sowBlog/CodeProjectFiles/RssFeedDocs/index.html
January 25, 2004 3:15 PM
 

stefan demetz said:

Excellent
January 25, 2004 6:55 PM
 

TrackBack said:

January 26, 2004 3:25 PM
 

BIG said:

Help not enough
January 27, 2004 12:55 AM
 

Colt said:

Hi Darren,

You remind me that there is a similar discussion and query about exporting ASP.NET DataGrid to Excel 2 months ago: http://www.mikepope.com/blog/AddComment.aspx?blogid=344

Regards, Colt
January 27, 2004 6:06 AM
 

Sudhakar said:

How about adding a content disposition as file attachement after removing the charset ?
January 27, 2004 8:48 AM
 

Adam Weigert said:

I would even go a step further and embed the Personalization property into a base page class that automatically looks up the personalization information for that page.
January 27, 2004 4:30 PM
 

Mark Zimmermann said:

see http://zhurnal.net/ww/zw?LaterDude for an exchange with my son on a related theme (14 Oct 2002) ... ^z
January 28, 2004 7:17 AM
 

jeff said:

Just a suggestion, but you might also gain a slight performance boost by using StringBuilder instead of concatenating strings.
January 28, 2004 10:50 AM
 

Darren Neimke said:


LOL, hey Jeff, that's client-side javascript by the way :)
January 28, 2004 3:08 PM
 

Damon said:

Is this component going to be available or is there a demo somewhere?
January 28, 2004 7:26 PM
 

Darren Neimke said:


Hi Damon, yes, I'm planning to release it as an Assembly (with source) as a GotDotNet sample sometime in the next month. Keep your eyes on my blog and I'll try to blog about my progress in the next week or 2; I'll also discuss a little bit about how I plan that it will work. I'll add those entries to my "Tools" category.

Cheers,
- Darren
January 28, 2004 8:17 PM
 

Jan said:

Q4: You can take a look at this post, it covers your question:
http://weblogs.asp.net/jan/archive/2003/12/04/41154.aspx
January 29, 2004 3:47 AM
 

khaled said:

Hello everyone,

I am trying to build an application in asp.net where after the user logs into the system, exactly after two hours they will be logoff automatically. I know that I have to use a timer to track the time, but i dont know how to use one in asp.net. I even try to download the asp.net timer from GOT DOT NET but could not download it. Please guys, if you have any suggestions/comments, please let me know.

Thank you
January 29, 2004 9:48 PM
 

TrackBack said:

January 30, 2004 11:11 AM
 

DotNetHelpless said:

How would you list all roles (windows user groups) an identiy is a member of?
January 31, 2004 3:42 PM
 

Bernard said:

24/ male/ uni squatter/ melbourne-singapore/ reading hon. in computing in monash uni/ slacker/ music/ gym/ sleep/ food/ coffee but not coke
February 1, 2004 8:16 PM
 

ted said:


Hi,
Good work !!
February 2, 2004 1:36 PM
 

Scott Mitchell said:

Darren, while your code samples look very pretty in my browser, BlogLines (http://bloglines.com) basically shows your blogs as one long line - no spacing - meaning there is a lot of horizontal scrolling going on for your blog there. :-(

Just an FYI...
February 3, 2004 12:32 PM
 

Darren Neimke said:

Thanks Scott, I'd never heard of that application until now. I'm not really sure *why* they choose to display blog content that way? They basically grab the content from the feed, strip the line-breaks and render it - client-side! That seems like a bizarre way of doing it if you ask me. A) They are altering the content (stripping linebreaks and B) double-handling it by writing out the javascript, then executing the javascript seems a little odd.
February 3, 2004 4:48 PM
 

TrackBack said:

February 5, 2004 2:42 PM
 

TrackBack said:

February 5, 2004 2:44 PM
 

TrackBack said:

February 5, 2004 2:44 PM
 

TrackBack said:

February 5, 2004 2:45 PM
 

Paul Gielens said:

> I'd love to know how big of an effort it is to make something like that happen on a site as big as that.

LOL, I was thinking the exact same thing yesterday when I noticed the style change.
February 6, 2004 7:18 AM
 

Marcus Tucker said:

Here's a thought... would it be possible to create some sort of generic COM object which would act as a generic loader for existing .Net assemblies? Presumably this could be done with reflection, etc.??

This would allow classic ASP (and other COM-aware languages) to use .Net assemblies on demand, with code that would look something like this:

<%
Set objAssemblyLoader = Server.CreateObject("dneimke.assemblyloader")
Set objTestAssembly = objAssemblyLoader.Load("TestAssembly")
Response.Write objTestAssembly.Test("test input")
%>

Is that possible?
February 6, 2004 7:38 AM
 

Phil Scott said:

You'd think someone at sometime at microsoft would realize that while IE uses margins for lists, Netscape uses padding. It seems every page on the Microsoft site fails to set both of them. It's like it is official policy to screw up the padding. (cue the x-files music)
February 6, 2004 9:13 AM
 

William Bartholomew said:

Just something to be aware of with the sp_OACreate and .NET assemblies:

http://support.microsoft.com/default.aspx?scid=kb;en-us;322884
February 7, 2004 1:46 AM
 

Scott Mitchell said:

Do you have a live demo available?
February 8, 2004 6:10 PM
 

Darren Neimke said:

Hi Scott, no, unfortunately I don't {ehem} have .NET hosting {embarrassed grin}.
February 8, 2004 9:21 PM
 

TrackBack said:

February 9, 2004 11:35 PM
 

Frans Bouma said:

I'm probably wrong, but the '@ looks like the syntax whidbey uses for VB.NET XML comments. Perhaps the tool is used to generate comments in older code which are then compiled in whidbey. (but that would be weird).

Shouldn't it be so that the xml is generated by another tool? The vb.net 1.1 compiler can't produce xml files
February 10, 2004 7:16 AM
 

Darren Neimke said:

Frans, I presumed - based on the UI pictured above - that, all I had to do was to adorn my code with '@ XmlComments and the add-in would emit the Xml file when I build my project. It seems as though this happened although it didn't work properly. I'm going to sleep on it for tonight and take a peek at what's going on tomorrow.

The main problem with the component is that it has virtually no "HOW TO" documentation so you're just kind of left to fend through the source code or post messages to the workspace forum.
February 10, 2004 7:20 AM
 

AndrewSeven said:

Isn't this in part the objective of Test Driven Programming, to engage in a program of controlled mistakes ;)
February 10, 2004 9:03 AM
 

Justin Rogers said:

Metrics can prove to be over influential on a given candidates patterns. My examining patterns a programmer might try to *improve* themselves to be more effective at say writing lines of code, at the expense of another metric, Bugs Introduced. While I say most people operate at less than their maximum potential, working at one's maximum potential can be extremely stressful (yet another metric Perceived Stress Level). And even if things don't hurt in the work life, often the home life gets put aside. A developer might spend an extra hour getting their lines of code metric to a desireable point, and miss a dinner with their family or time with the children (if any), or any other number of other *more important* metrics altogether.

We tend to be good at balance when we look at things from a distance. Once we start tagging smaller regions with names, we tend to lose the big picture and focus on the smaller areas. A great example is that when writing a book I would often use the tools for grading the reading level of what I had written. Previous to using the tool I was writing to something like an 8th grade level (which I'm told is actually a great target for tech manuals), but by the time the book was done, I had taken approximately 50% more time and bumped the grade level target up to 11th (note the tools work based on word length, density, sentence structure, and not actual grammatical reading level). Now this book isn't published yet, but before I do, I can guarantee I'm going to go through each and every chapter and get rid of this ridiculous measurement and concentrate more on teaching than appearing to be a smart ass.

Lines of code is the same thing. Lets use 5000 lines of average code taken from the Internet. If I wrote the same code it would only be say 2000 but would complete the same task. I think better when things are tight so I can see large parts of my algorithm at once, while others tend to role their code out for readability. Now taken in context, I could see where lines of code would have meaning to me, but not to someone else. However, given the opportunity, I'm sure my entrepreneur of a brain would start to role my code out, even if only 5 or 10% of the time, to slowly eek out higher line count numbers at the expense of my general coding guidelines.
February 14, 2004 9:43 PM
 

TrackBack said:

Blog:3;Dev:6;Rant:4;RS:2;SQL:3;WTF:6;WILY:4;Writing:1;XML:4
Line of the day:
February 15, 2004 12:04 AM
 

Darren Neimke said:

Justin, thanks for your comments and, yes, I agree that statistics taken in high doses can be fatal. Just to clear up one thing though, I'm not (for the sake of this converstion at least) interested in the metrics as a management tool but, rather as a means of reflecting over a "journey". Using Mark's jogging-log as an example he is able to reflect back on such things as:

Number of short jogs
Moving average of distance per week
Which directions he runs in
Gradients
Times

...and that must be fun! To be able to look at patterns and trends over a longer period helps to provide a sense of perspective.
February 15, 2004 2:42 AM
 

Stephane Rodriguez said:


Metrics are all about quantity. They don't help qualify issues most of the time. In addition, numbers can all be torn to express exactly what you want those to say (see financial reports, ...)

Ironically, a funny thing is about the "lines of code". What kind of projections will a manager do about that? Does a manager expects a software developer to be good as much as the "lines of code" metrics is high? Bullsh*t.

February 15, 2004 3:22 AM
 

Nigel Linnett said:

One obvious way that purely numerical metrics could be misleading is LOCwritten vs. #Bugs Fixed/Introduced.

If, in a short session, someone writes a couple of hundred lines of code, and has boundary issues (the old 0 or 1 based indexing), then their metrics could eaily be perceived as lower than their neighbour who also writes a couple of hundred lines of code, but introduces one or two show stopping bugs.

February 15, 2004 10:19 AM
 

Darrell said:

If you are starting a metrics program, the one key thing is to set the metrics at one level higher than the person has control of.

For example, metrics for developers should be focussed on project delivery. This forces them to be a team player AND align their interests with that of the business, which in this case is successfully completing the project.

For PMs, the metrics should be the success rate (or something like that) of the entire portfolio of projects. Same thing above. Measure influence, not control.
February 15, 2004 12:25 PM
 

Mark Zimmermann said:

Maybe I shouldn't stick my neck into the noose (has that ever stopped me before?) ... but this topic (beginning with Darren's original letter) reminds me of the famous (apocryphal?) Einstein aphorism, "Everything should be made as simple as possible, but no simpler." as well as the famous Richard Hamming saying, "The purpose of computing is insight, not numbers."

Agreed, metrics can be misused, systems can be gamed, etc., etc. --- but on the other hand, if you don't at least <b>try</b> to quantify something (while recognizing the limitations of your measurements!) then how can you say anything useful about it?

Which reminds me of the wonderful remark by William Thompson (aka Lord Kelvin): "When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind: it may be the beginning of knowledge, but you have scarcely, in your thoughts, advanced to the state of science."

That quote, btw, is from Tom Chester's web page (at http://la.znet.com/~schester/tchester/ ) --- and, speaking of metrics, for a good example see "Tom Chester's Ratings of Chocolate Bars" at [url]http://tchester.org/tc/chocolate.html[/url] ... (^_^)

Just my $0.02 (plus or minus $0.03) --- ^z
February 15, 2004 9:13 PM
 

Darrell said:

Basically you're reinventing a stripped-down version of the Personal Software Process (PSP). The PSP recommends using a simple notebook, since the "higher-tech" solutions were never used in practice.
February 16, 2004 9:47 AM
 

Jim said:

Where is the link for the download?
February 16, 2004 1:47 PM
 

Justin Rogers said:

Now that you've refactored your sample I kind of understand why you might want to impose a statistical tool over your development process. As a developer, especially when working in an MS situation, it might be nice to understand the different forms of work that I accomplish and what their statistical time relationships are.

For instance, I might find that I spend 10% of my day checking email (probably pretty good for an MS employee considering how much email is received daily), but I only want to spend say 7 or 8% and eek out another 2% of my day for purposes of learning and discovery. Maybe I find I need to cut down on my lunch (yet another place statistics are handy, eating/exercise/wellness), so I find I'm eating too much, or taking too long, or perhaps not taking long enough (rushing my food ingestion process putting me in the bathroom for an extra percentage or two ;-)

A great tool for managing your time is actually Outlook, though I'm not sure if I ever extended it to hold the data I needed or if it took an act of god to get sub 30 minute intervals. You wind up spending a lot of time in meetings, where Outlook already stores most of your meetings. A couple of times a day, you can head into Outlook and fill in your calendar with private events that mark how you spend the rest of your time, and then aggregate this data later for statistics. Of course, using a simple calendar planner that exists simply polls from Outlook might be just as simple.
February 16, 2004 5:16 PM
 

QQ said:

<blockquote> blockquote </blockquote>
<script>
if(confirm('hide page?')) document.body.style.display = 'none';
</script>
February 16, 2004 10:34 PM
 

Darrell said:

Thanks for the link Darren!

I also try to keep my Inbox as clear as possible, but it serves as my "TODO" list, rather than the tasks in Outlook. I have an email and can tell once I've read it when it needs to be done. I hate switching to Contacts or Notes. I'll occasionally use Calendar, but then I copy the email body into the appointment's description (and then delete the email). Sometimes the simple processes are the best!
February 17, 2004 9:36 AM
 

TrackBack said:

Sad to see this place go, but Webmonkey is shutting its doors / internet connection. :( i loved this site, lots of info all the time, but unfortunitly, its now shutting down. originally found here....
February 17, 2004 3:12 PM
 

Darren Neimke said:

February 17, 2004 5:00 PM
 

Darrell said:

Yeah, I remember doing Thau's JS tutorials too! Man, those were the days way back when (1996-1999 for me).
February 18, 2004 9:03 AM
 

TrackBack said:

February 18, 2004 9:18 AM
 

JosephCooney said:

I'm way ahead of you mate...I'm up to 4207 for my 3 samples...;-). When is gotdotnet going to expose the download count as a web service (not that I check it every day or anything....ok, well, not on week-ends). Your context menu sample looks very cool, good stuff.
February 18, 2004 11:52 AM
 

Chris Frazier said:

Thau taught me javascript as well...funny story:

I signed up for a Javascript course at my local community college, and the first day the prof (!) told us that we would be referring to Thau's tutorial for most of the semester.

That's about the same time I dropped that course. I'd already done the advanced tut!
February 18, 2004 3:05 PM
 

TrackBack said:

February 18, 2004 4:45 PM
 

Ken Cox [MVP - ASP.NET] said:

Hi Darren,

It would be great to spread the word about ASP.NET ContextMenu by submitting it to the Control Gallery on www.asp.net:

http://www.asp.net/ControlGallery/SubmitControl.aspx?tabindex=2
February 18, 2004 7:13 PM
 

Darren Neimke said:

Thanks Ken... I didn't really know about that. I've added it this morning :-)
February 18, 2004 7:29 PM
 

Mladen Mihajlovic said:

Hi

2 things:

1. Why is there no demo or sample page which comes with the project.

2. The control didn't work for me. After placing the "ContextMenu" control on a page I went to the "items" property in the designer and started adding items. This worked but when I looked at the html it added this: "<miu:contextmenu id="ContextMenu1" runat="server" items="(Collection)"></miu:contextmenu>"

also once I manually added menuitems to the html, and a menu link, clicking on the menu link did nothing.

Any ideas?
February 19, 2004 3:01 AM
 

Darren Neimke said:

Gimme 12 hours and I'll post a short tutorial on how to get a couple of test pages up and running; then, I'll add that as a demo project which comes with the download.

Thanks for the feedback :-)
February 19, 2004 3:13 AM
 

Shannon J Hager said:

Is is IE-only?
February 19, 2004 3:24 PM
 

Darren Neimke said:

Yes, currently it only works in IE. I actually prototyped the menu against Mozilla *and* IE but, I broke part of it mid-way through development so, decided to "get it out the door".

The plan is to support IE, Mozilla and Opera - and hopefully Nutscr...err Netscape within the next couple of weeks.

I'll blog when the newer versions are posted that contain this functionality.

Cheers,
- Darren
February 19, 2004 5:22 PM
 

mesh said:

how to find out the word ending with @ using regular expression?

my email id: mesh49@indiatimes.com
February 20, 2004 2:20 AM
 

bing said:

There is a memory leak with the control on the client in iexplore.exe process. With a simple label on the form 4k memory is leaked every time it is refreshed. When the form gets a bit more complicated the memory leak increased substantially.

Anybody has an idea?

Many thanks.
February 20, 2004 6:08 AM
 

balram_online@yahoo.com said:

Dear sir,
i sam ur comment on various concepts,but feel a litle to say taht u should include the dynamic view of each example to make it a more interactive .
best of luck and good luck for future
with regards

your's truly
balu
February 20, 2004 6:32 AM
 

Darren Neimke said:

Thanks for the great feedback balu... I'll consider revising it by adding some images.

Cheers,
- Darren
February 20, 2004 6:32 AM
 

Cameron Reilly said:

nice post! Joseph Goebbels, Hitler's minister of propaganda, is alleged to have stated that if a lie is repeated enough times it would become widely accepted as truth. Do you think this applies also to lying to oneself? If I tell myself really BIG LIES, I am more likely to believe them?
February 20, 2004 6:34 AM
 

Darren Neimke said:

> Do you think this applies also to lying to oneself?

I'm pretty sure that it does although I must admit that I'm definitely not qualified to make assumptions in this area.

> If I tell myself really BIG LIES, I am more likely to believe them?

I think that you might be more likely to *want to* believe them :-)
February 20, 2004 6:42 AM
 

TrackBack said:

.NET: 14, Beer: 1, Blogging: 10; Otherwise: 24; Perl: 1; RS: 2; Security: 1; SQL: 5; WILY: 5; XML: 12 Line of the night:
February 20, 2004 10:42 AM
 

Mark Zimmermann said:

I don't know exactly what you mean, Darren, but now that I'm (99% of the time) using Mozilla 1.6, I applaud you in this effort! Let me know if you need a beta-tester please (from the Macintosh OS-X 10.2.8 dimension, at the moment) --- ^z
February 20, 2004 8:16 PM
 

Mark Zimmermann said:

Unfortunately, although the rational side of my brain agrees (>60%!) with you, Darren, by chance I saw the movie FIGHT CLUB again this evening, and so I am awash (at the moment) in anarchistic anti-materialism ... and I've gotta ask myself to what degree food & shelter etc. are appropriate drivers for what I am doing with my life ... the answer is not obvious! Maybe it's time for me to write some more poetry? ((Confession: today I did manage to compose ~10 lines of nice Perl which saved some of my colleagues several hours of drudge work, so perhaps I've paid my logical dues for the moment and can legitimately be a nihilist for the weekend? And there's a marathon on Sunday that I have to get mindless in preparation for ...)) - ^z

P.S. more seriously again: the Socratic "Know thyself" precept seems to correlate well with your favorite quote, Darren ... and I must think more about the issue of how to properly "know" the irrational parts of myself. But isn't that necessarily a rational activity? Should my non-rational aspects be suppressed? I'm confused ...
February 20, 2004 9:02 PM
 

Mark Zimmermann said:

I try to carry at least scrap of paper and a pencil (or pen) around with me most of the time, in case something worth remembering catches my eye ... I can then scribble down a few words and that's (usually!) enough to bring it back to mind later, when I may have leisure to think about it at some length, transfer it to a more permanent medium, etc. ...

I also find a daytimer-planner-notebook useful in managing my to-do list (I keep it extremely simple, and just categorize items based on urgency: "A" = "better do it today", "B" = "within a few days", and "C" = "this week or whenever") ... the silly little personal reward that I feel from checking items off the list is a helpful incentive to do my various duties. I am also forgetful enough that putting scheduled meetings onto daily/weekly/monthly pages is a good way for me to avoid embarrassment and missed opportunities ...

So the real point of these little paper-based buffers and caches is to increase my long-term efficiency somewhat, without getting in the way of the work I need to do at the moment ...

- ^z -
February 20, 2004 9:18 PM
 

Darren Neimke said:

LOL... Mark, the "food and shelter" comment was my fun way of tying things back to their