Thursday, June 02, 2005

According to the settlement's terms, people who fill out a claim form are entitled to receive $50 redeemable toward the purchase of any Apple products or services except iTunes downloads or iTunes gift certificates. They can redeem the voucher within 18 months of final settlement approval at any bricks-and-mortar Apple Store or online.

Consumers who had battery troubles can also get their battery or iPod replaced. Apple currently replaces or repairs defective products that are returned within one year but the class-action settlement extends the warranty to two years, plaintiffs' lawyers said.

Consumers who file a claim must have a receipt.

Read more: http://biz.yahoo.com/ap/050602/apple_ipod_batteries.html?.v=5

I tried following the link for www.appleipodsettlement.com, but it seems to be a little burdened right now.

Thursday, June 02, 2005 6:09:57 PM (Eastern Standard Time, UTC-05:00)
 Wednesday, June 01, 2005

The Wall St. Journal has an article today about one step Bank of America is taking to thwart phishing attacks:

First, the bank allows customers to "register" frequently-used machines, such as a home or office PC, with its online system. When customers use one of those computers to access the site, they are shown a picture after entering a username. If the picture matches the image the user chose when setting up the account, the customer knows they are in the right place, and then enters a password to access accounts.
 
When customers try to access accounts from a computer that Bank of America doesn't recognize, the image doesn't appear. Instead, users must answer a challenge question, like "What was your high school mascot?" The bank tracks computer IP addresses and also uses cookies to identify PCs.

The on-line article has a nice graphic that shows the UI part of the process.  It looks like if you save the cookie in your computer, you'll go straight to the photo or challenge question, after which you can enter your passcode.  Otherwise, you'll have an additional step of entering your user ID.

Wednesday, June 01, 2005 1:04:43 PM (Eastern Standard Time, UTC-05:00)
 Friday, May 27, 2005

One method of creating Crystal Reports is to use an ADO.NET Dataset (for good advice please read Reporting Off ADO.NET Datasets).  To create the report from a dataset, you have to model the dataset in an XML Schema Document, which has the .XSD extension.  You use the XSD as the 'source' of your report at design time, and at runtime, set the data source to the ADO.NET dataset in memory.

From time to time, requirements for your reports change, and you have to change the dataset.  If you used an XSD to design your report, you need to follow these steps to update your report:

1) Update your XSD.  Either make the changes manually, or re-create the entire document, whichever is easier.
2) Open your report in design view in VS .NET.
3) Open the Field Explorer, and right-click on "Database Fields".
4) Choose "Set Location..." from the menu.
5) Choose the data source you wish to update in the "Current Data Source" dropdownlist.  You can choose either the entire dataset, or just a single table (in many cases, there will only be one table per dataset, so either choice is as good as the other in this case).
6) In the "Replace with" window, expand "More Data Sources", then "ADO.NET (XML)".
7) Double-click "Make New Connection".  You may see your dataset listed, however, I have found from experience that sometimes you need to overwrite the cached version.
8) In the new window, browse to your XSD and choose "Finish".  Leave "Use Visual Studio Data Class" unchecked.
9) If you have a table chosen in the "Current Data Source" dropdownlist, highlight the replacement table you just added, and click "Replace".  If you have a dataset chosen, highlight the replacement dataset and click "Replace".  If the "Replace" button is not activated, you need to make sure you have the correct structure chosen in both places.
10) Click "Close".  You may be asked to remap fields if any field changed its data type.  To map the fields, un-check "match type", and match fields one by one, clicking "Map" after each selection.  Do this until all the fields that need to be re-mapped have been re-mapped.
11) You should now see all yoru changes reflected in the Fields Viewer (you may have to expand "Database Fields").

Friday, May 27, 2005 2:05:56 PM (Eastern Standard Time, UTC-05:00)
 Thursday, May 26, 2005

http://www.etymotic.com/ephp/er6i.asp

6i isolator earphones are designed specifically for use with the Apple iPod and other small portable players, offering 8 dB higher overall sensitivity and slightly more bass than the ER-6 isolator earphones.

I just received a pair for my birthday...incredible!  I use a similar triple-flange earplug when shooting, and these plugs block a ton of background noise.  This means you can keep the volume at a very low level when listening, so your hearing is preserved.  These are awesome for mowing the lawn--can't hear the lawnmower, and again, the volume can stay low.

The sound quality is very impressive--music is clear and crisp.  It's a little tricky to insert these correctly the first couple of times, but you can tell easily by the sound.  There are aspects of music I hadn't heard before!  For instance, in Tom Petty's “Even the Losers“, there's a small pause between the intro and the main song.  I always thought it was blank space, but there's actually a woman's voice (quietly) shouting “It's just the normal noises in here!“.  No idea that existed.

I don't recommend these if you have co-workers who enjoy sneaking up on you, or if you have to answer the phone a lot.  You simply won't hear what's going on.  Which is great for mowing the lawn, or travelling on a plane.

(originally posted 2004-09-29 on a different blog site)

<update 2005-07-22>

Now that I've been using these earphones for a while, I'm even more impressed.  The soft silicone plug fits my ears very nciely, and blocks a lot of sound.  When mowing the lawn, the lawnmower is a dull hum, and softer sounds aren't even heard.  I can listen to my iPod at slightly above normal volume, and my ears aren't ringing when I'm done (which is usually about 2 hours).  Neighbor's kids screaming in the yard when you want a quiet moment on your deck?  No problem--you won't hear them with these earphones in, either listening to your iPod or not.

I've made several plane flights using these, a few in excess of 5 hours, and it's amazing to get off a plane without that jet engine hum ringing around in your head.  Very pleasant.  A few times I've had to take the plugs out to equilibrate the pressure, but that's no big deal.

On a sweaty day, or after a lot of use, you can build up a little crud on the plugs.  That's easiest to clean off just after you take these earphones out.  Use a dry cotton swab and gently run the tip between the flanges.  Good as new.

Thursday, May 26, 2005 9:20:24 PM (Eastern Standard Time, UTC-05:00)

Brian Bischof, author of Crystal Reports .NET Programming, has posted a comparison of SQL Server Reporting Services and Crystal Reports:

During 2004, Microsoft grabbed the attention of the Visual Studio .NET community by announcing a new reporting product: SQL Server Reporting Services (SSRS). Not only did they promise to give programmers a new reporting tool, but it was going to be free as well. Suddenly everyone was comparing Reporting Services to Crystal Reports - the report designer that has been bundled with VB since VB 3 and integrated into Visual Studio .Net (and will also be included in the next release of Visual Studio .Net 2005).

The goal of this paper is to illustrate differences between SSRS and the current version of Crystal Reports, Crystal Reports XI (version 11). Each product has its strengths and weaknesses and these are highlighted here. It's important to evaluate each product and consider which one works best for your application's reporting requirements.

 

Thursday, May 26, 2005 6:45:49 PM (Eastern Standard Time, UTC-05:00)

This question has passed my threshold of answering as forum posts, so it's going on the blog:

Does anyone know how to export a crystal report into a seperate adobe reader instead of embedding the reader into the current browser window?

I am successful in exporting to pdf and excel, but it would be great if I could bring up a "save as or open" prompt.

Any ideas would be greatly appreciated.

The "save as or open" prompt is something the browser does automatically when it encounters a file type it can't open itself (either unknown file type or viewer program unknown).  There is a setting in Acrobat Reader you can use to override this, but it's one the clint has to make--you can't script it.  For Reader 6, go to Edit >> Preferences >> Internet, and uncheck "Display PDF In Browser".

If this doesn't solve your problem, try reading CodeSnip: Opening Crystal Reports in a New Window in ASP.NET.

Thursday, May 26, 2005 10:25:41 AM (Eastern Standard Time, UTC-05:00)
 Wednesday, May 25, 2005

IPoding reports on MaP3, which uses Text-to-Speech to convert driving directions into MP3 files.  From Map3's website:

MaP3 will give you the best driving route to take between any two addresses in the United States and Canada. While there are other websites that give driving directions, MaP3 is the only website that gives them to you as spoken directions, delivered in MP3 format to your email inbox! Instead of reading your directions as you drive, you'll be listening to them on your MP3 player or, by burning them to a CD, in your car's stereo deck!

MaP3 provided a sample to IPoding you can listen to.  Definately a cool idea, but you'll need cat-like reflexes to keep up with the spoken directions.

Wednesday, May 25, 2005 1:22:42 PM (Eastern Standard Time, UTC-05:00)
 Tuesday, May 24, 2005
I received my free SharePoint posters today, and I can only say "Wow!  Thanks Mindsharp!".  They are detailed and yet still nicely laid out.  My mental image of SPS configuration is no longer an endless maze with randomly moving walls (and no cheese).  The SPS poster very nicely turns the mess into a tree diagram.  If you plan on hanging them up, make sure you plenty of wall space available.  The WSS OM is big--about 4 feet wide (about 1.3m)!  The other two combined are just about as wide.
Tuesday, May 24, 2005 3:48:03 PM (Eastern Standard Time, UTC-05:00)

Mindsharp is offering as set of SharePoint posters free if you register at their site.  There are three posters in the set:

Windows SharePoint Services Object Model Poster
The Windows SharePoint Services (WSS) object model consists of eighteen namespaces in nine assemblies. It is written in .NET managed code using C# so it is easily accessible via ASP.NET or any other server process. Anything that can be done using SharePoint's application and administrative interfaces can also be done using it's object model. Although the SharePoint SDK is helpful, it can be difficult to see the big picture.
Mindsharp's FREE* WSS Object Model is a 3'x4', color-coded, graphical depiction of the relationship between WSS collections, object, methods, fields (constants), properties, and enumerations in several core namespaces.

Windows SharePoint Services Administration Roadmap
Increase your productivity with Mindsharp's FREE* Windows SharePoint Services (WSS) Administration Roadmap. This 2'x3' poster presents the complex infrastructure of the administrative links presented by Windows SharePoint Services.

SharePoint Portal Server Administration Roadmap
Mindsharp's FREE* Sharepoint Portal Server (SPS) Administration Roadmap is a 2'x3' poster containing all Site Settings and Central Administration menus. This enables you to see the complex infrastructure of Portal's administrative links.

*Note: One set of posters is available at no cost to residents of the US, UK, and Canada. Additional sets can be purchased for $20 (our cost to produce, package, process, and post). Electronic versions of the posters are also available for $45/each (entire set must be purchased).

You can get a good view of the WSS Object Model poster at http://MindsharpBlogs.com/Todd/archive/2005/02/23/330.aspx.

Mindsharp was founded by Bill English and Todd Bleeker, both of whom have blogs at www.mindsharpblogs.com, all of which I've found to be very interesting so far (some of the posts are deep topics--not so much for beginners).  Bill is also part of the new SharePoint Advisor magazine.

Tuesday, May 24, 2005 3:38:07 PM (Eastern Standard Time, UTC-05:00)
 Monday, May 23, 2005

We're all familiar with MS's "marketecture", and its coopting of whatever buzzwords are hot in the newspapers at the time of announcement into strange acronyms.  Generation X gave us "ActiveX", the Human Genome Project gave us "Windows DNA" (WTF?), and the Internet gave us, well, Dot Net.  MS is also famous for its creative names for everyday items.  For the beginner, here's an introduction to Microsoft speak, as deciphered by an outsider:

Microsoft Term Real Life Translation
Guide Book
Resource Kit Big book with a CD
Book Guide published by someone else
Software Development Kit Guide, downloadable as CHM file only
Help file Confusion
Code Sample Don't do it this way, but here's some code to make you happy, unless you program in the other language
Demonstration Useful information in between technical difficulties
Level 100 Lots o' Powerpoint Slides
Level 200 Less slides, some code samples (see above)
Level 300 Fewer slides, some code samples, and some demos (see above)
Level 400 One slide for the cover, and one slide to introduce 60 minutes of code samples and demonstrations

I am seriously of the opinion that Microsoft's marketing group stands much bigger in the marketing world than MS's programmers do in the programming world.

Monday, May 23, 2005 8:29:48 PM (Eastern Standard Time, UTC-05:00)

On my CAPTCHA Images post, Patrick Santry mentioned he ran into one he couldn't decipher due to his colorblindness.  I'm also colorblind, but have yet to hit one I couldn't figure out, and that may be due to luck, or varying degrees of colorblindness.  I do, however, master a website I can barely read.  It was designed by women (and targeted mainly for women), who claim they have no problems whatsoever.  Its frustrating for me, especially since I'm “in charge“ of the thing.

Color blindness affects about 15% of the overall population, nearly all of whom are males (sex linked trait--I'll explain it in another post if you ned me to).  When choosing colors for a website, especially one where you're likely to have a large numebr of male visitors, color selection can be important.  My favorite color picker allows you to choose web safe colors that take into account colorblindness.

http://www.pixy.cz/apps/barvy/index-en.html

Monday, May 23, 2005 8:05:21 PM (Eastern Standard Time, UTC-05:00)
 Sunday, May 22, 2005

These questions were received as a private comment in response to my Automatically Printing Crystal Reports in ASP.NET article:

Very useful and interesting article. Thanks a lot. I wanted to use this in a .Net app. Can we determine the number of copies to be printed dynamically using the second method(javascript)? Say If the user clicks on the print button (HTML submit button), the application would pre-determine how many copies can be printed for that user and automatically print them?
Also, the second window was opening in full size for me instead of 0 height and width. Please let me know what I'm doing wrong here?
Again...this is a wonderful article.

To the best of my knowledge, I don't think you can set the number of copies to print through JavaScript.  When printing from a browser, all print settings are handled through the browser's print dialog, and I don't know of any way to script that without getting into ActiveX and trust permissions.

It's tough to tell what's going on in the second question because there are a couple of code snippets that open new windows.  My best guess would be that the script string isn't being renered correctly.  View the source of the parent page, and look for the rendered script string.  Make sure it's correct after it's rendered.

Sunday, May 22, 2005 7:39:41 AM (Eastern Standard Time, UTC-05:00)

Tim Heuer has an interesting post today:

inspired by scott hanselmen's post about What Great .NET Developers Ought to Know, as well as the rush of interviews i've been conducting lately to fill sharepoint positions, i started compiling a list of questions for what a sharepoint consultant ought to know...here it is...

It's a challenging list of questions, check it out: http://timheuer.com/blog/archive/2005/02/24/1691.aspx

(hat tip: many other bloggers)

Sunday, May 22, 2005 7:10:43 AM (Eastern Standard Time, UTC-05:00)

"A Crystal Reports job failed because a free license could not be obtained in the time allocated. More licenses can be purchased direct from Crystal Decisions or through the Crystal Decisions Online Store."

This error can be due to a number of factors.  If you have deployed your application on a server and get this message, it means you possibly entered the wrong keycode when you registered Crystal Reports .NET 2003.  You can follow these instructions from Business Objects to reset the keycode: http://support.businessobjects.com/library/kbase/articles/c2012716.asp.  You will have to register your CR .NET again when you open a report in Visual Studio.

Something else to check is that all the versions of the referenced components are correct.  In my recent case, I was preparing for a demonstration on my laptop.  I had installed CR 10 before installing Visual Studio 2003.  When I created my demo project in Visual Studio, all of the referenced Crystal Decisions components were 9.1.5000.0 except for CrystalDecisions.CrystalReports.Engine.  That component was version 10.0.3300.0.  By deleting this incorrect reference, and adding the correct version, the error was resolved.

Sunday, May 22, 2005 7:09:07 AM (Eastern Standard Time, UTC-05:00)

I see this question quite often in the Crystal Reports forum at ASP.NET.  My advice is always to download the web samples at:

Visual Basic .NET Web Samples

C# .NET Web Sample Applications

Then, follow the Readme file to install the “Discrete Parameters” example.  This has been my guide, and it works great.

Additional help and tutorials are in the CR SDK:

Crystal Reports .NET SDK – Additional Conceptual Documentation and Tutorials

This file contains additional conceptual information and tutorials for using Crystal Reports in Visual Studio .NET (including a developer reference). This documentation applies to Crystal Reports 9 & 10 and Crystal Reports for Visual Studio .NET 2002 & 2003. Sample applications built using these tutorials are available for download (cr_net_sdk_tutorial_samples_en.zip).

Crystal Reports .NET SDK – Sample Applications from Tutorials

This file contains C# and VB .NET Windows and web sample applications. These samples were built using the tutorials provided in the ‘Crystal Reports .NET SDK – Additional Documentation and Tutorials’ (cr_net_sdk_additional_en.zip). These sample applications applies to: Crystal Reports 9 & 10 and Crystal Reports for Visual Studio .NET 2002 & 2003.  

A number of methods out there use the CrystalReportViewer control to set parameters.  That's great unless you need to export your report to PDF (or XLS or RTF).  This is a code snippet I use, which sets parameter values directly on the Report Document object:

  rptCount = New ReportDocument
  rptCount.Load(Server.MapPath("reportname.rpt"))

  ''Get the collection of parameters from the report
  crParameterFieldDefinitions = rptCount.DataDefinition.ParameterFields
  ''Access the specified parameter from the collection
  crParameter1 = crParameterFieldDefinitions.Item("Param1")
  crParameter2 = crParameterFieldDefinitions.Item(“Param2")

  ''Get the current values from the parameter field.  At this point
  ''there are zero values set.
  crParameter1Values = crParameter1.CurrentValues
  crParameter2Values = crParameter2.CurrentValues

  ''Set the current values for the parameter field
  crDiscrete1Value = New ParameterDiscreteValue
  crDiscrete1Value.Value = Request.Form(“param1value“)

  crDiscrete2Value = New ParameterDiscreteValue
  crDiscrete2Value.Value = Request.Form(“param2value“)

  ''Add the first current value for the parameter field
  crParameter1Values.Add(crDiscrete1Value)
  crParameter2Values.Add(crDiscrete2Value)

  ''All current parameter values must be applied for the parameter field.
  crParameter1.ApplyCurrentValues(crParameter1Values)
  crParameter2.ApplyCurrentValues(crParameter2Values)

Once you get used to working with parameters, you can “automagically” display them on your web pages.  This series of articles shows you how to get a list of parameters from your report file, and display them on your web form, where you can prompt for inputs:

Automagically displaying a Crystal Reports Parameters - Part I
Automagically displaying a Crystal Reports Parameters - Part II
Automagically displaying a Crystal Reports Parameters - Part III

If you're new to Crystal Reports .NET, get this book:

Crystal Reports .NET Programming

It is both an introduction to Crystal Reports .NET, as well as a object model programming guide/reference.  Examples are in both VB.NET and C#.

Sunday, May 22, 2005 7:05:21 AM (Eastern Standard Time, UTC-05:00)

They do exist!  For some reason, the Issue Tracker Starter Kit download page was reverted to an older version.  Alex Lowe was kind enough to post the links in the Issue Tracker Starter Kit forum:

http://asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=832749

Sunday, May 22, 2005 7:03:54 AM (Eastern Standard Time, UTC-05:00)
 Saturday, May 21, 2005

I needed something better than the Notes that came with my Pocket Outlook 2003, so I tried several journal applications.  This was my favorite!  I use both the desktop and pocket versions.  Great for keeping track of what you do for what client, phone conversations, and notes for the next ASP Alliance article!  This is not a plug-in for Pocket Outlook, but it can integrate with the Task and e-mail functions.

Some of the best features include having multiple journal files, with multiple journals in each file, password protection, easy navigation and time stamping.  I use this on a Dell Axim X5 running Windows Mobile 2003.

Journal Pro w/ Desktop Bundle! by DSRTech, Inc.

Journal Pro is the definitive application for journal/diary keeping on the Pocket PC platform! And now it's even better than ever...

With the addition of Journal Pro Desktop Edition you're always ready to record your thoughts whether at home, the office, or on the road. And you'll rest easy knowing that your files will always be in sync!

Version 2.6 contains version 2.5 of the desktop application and version 2.6 of the pocket pc application.

Features Include:

  • Seamless Integration with Journal Pro Desktop Edition!
  • Voice Recording
  • File Encryption
  • Skinning of the pocket pc application
  • Lightening Fast Journal Access!
  • Password Protection
  • Categories Within Your Journal
  • Full Text Searching
  • Calendar Navigation and "Quick Nav"
  • Skip Over Days With No Entry
  • Pocket Outlook Task and Email Integration
  • Font and Color Selection
  • Text Export
  • Auto-exit after inactivity timeout
  • Purge Data When No Longer Needed
  • Completely File Based
  • Compatible with the new Pocket PC 2002 Operating System
Saturday, May 21, 2005 9:32:47 PM (Eastern Standard Time, UTC-05:00)

My mother, patroness of the arts, would be so proud!

Great collections of Great Impressionist Artist Claude Monet's works, the artistic themes for your today screen included the famous painting series:-
·Water Lily 1914
·London Parliament in Dusk 1904
·The Parc Monceau 1878
·Lilacs Overcast Weather 1872

Monet1 by Mediasofts By Paul

And another one (part of a 4-part series)

Claude Monet Today Themes Pack 3 by Natural Installer Inc.

Saturday, May 21, 2005 9:30:46 PM (Eastern Standard Time, UTC-05:00)
 Friday, May 20, 2005

I have a love/hate relationship with those CAPTCHA tests on websites.  I understand why, and am fascinated at just how good the human mind is at pattern resolution.  Yet, they're additional typing.  Anything to foil a spambot I guess.

I was looking into adding a test into a project of my own, and I came across these references.  Examples of the first article are shown beneath it.

15 Seconds : Fighting Spambots with .NET and AI

This article explains how intelligent applications from Carnegie Mellon University and Berkeley researchers counter auto registration spam programs and how to build your own using ASP.NET & XML Web services.

 

A Generic CAPTCHA Image Tester

What's unique here is my implementation - it's generic enough to use in a classic ASP page, or in an ASP.NET page, it does NOT require the use of Session State, and that's what makes it more useful. The key here is that we use an aspx page to generate the image, and we simply make our image tag's src property point to this page.

The Code Project - CAPTCHA Image - ASP.NET

This article demonstrates how to create such an image and employ it within an ASP.NET web form.

The CAPTCHA Project Website - CMU School of Computer Science

CAPTCHA.NET is the homepage of CMU's CAPTCHA Project

Formshield is a free .NET CAPTCHA control available at http://dotnetfreak.co.uk/blog/archive/2004/11/06/166.aspx.

Many thanks to Kevin Gearing!  There are some samples as well--very cool.

FormShield started out as a simple project with just one aim - to prevent automated form submission using dynamically generated images.

Not exactly a new idea - dynamically generated images requiring the user to enter the text found on the image have been around for quite a while (see http://www.captcha.net/), preventing automated sign-ups to free e-mail services such as HotMail and Yahoo, and automated whois lookups on domain names on sites such as Network Solutions.

Whilst some code exists on Code Project (http://www.codeproject.com/aspnet/CaptchaImage.asp), there didn't however seem to be a free, easy-to-use and customisable control for ASP.NET with full designer integration that could generate the relevant images. So, looking for an excuse to delve into GDI+, FormShield was born and my idea of a 'simple' control was dropped...

Friday, May 20, 2005 8:35:51 PM (Eastern Standard Time, UTC-05:00)

This has been dragging on for a couple of years, and I'm glad to see the USPTO has come to its senses somewhat.  I'm no lawyer, but I would think having your patent overturned due to “obviousness” would sort of put a damper on all those IP lawsuits you've been filing:

Patent Office issues initial rejection of patent claims in PanIP suit

Following a reexamination, the U.S. Patent and Trademark Office has issued an initial rejection of claims in a patent it had earlier granted to technology developer Pangea Intellectual Property on payment processing technology used at e-commerce sites. It is one of two patents held by PanIP whose validity is being challenged by a group of 15 e-retailers PanIP had in a separate action sued, claiming it was due licensing fees. PanIP has since settled with those retailers. A second patent on which the retailer group, the PanIP Group Defense Fund, also is challenging PanIP still is under review by the Patent Office.

PanIP has two months to respond to the Patent Office’s Action document, says Jonathan Hangartner of Sheppard Mullin Richter & Hampton LLP, the retailer group’s attorney, who terms the preliminary findings “a critical first step.” However, overcoming the initial findings will be “very difficult for PanIP. The Office Action is very well reasoned and strong,” he says.

Hangartner notes that nine of the 10 individual claims in the patent were rejected on the basis of “anticipation” in “prior art.” That essentially means that the Patent Office examiner determined that every element that the patent holder claimed to originate actually predated the patent and could be found in a single reference, such as an article, according to Hangartner. The remaining claim in the patent was rejected on the basis of “obviousness,” meaning that most elements of the claim existed in prior art and that the remaining elements would have been obvious to someone skilled in the art.

“The Patent Office has rejected the 10 claims that we challenged. That means that if that rejection holds throughout the process, the result will be the patent itself is invalid,” Hangartner says. The attorney representing PanIP, Kathleen Walker, said that while the action is ongoing, PanIP would have no comment. “We have 60 days to respond and we’ll make the appropriate responses,” she said.

The group of e-retailers formed a defense fund at http://www.youmaybenext.com.

Update 2005-08-19: YouMayBeNect.com has not been active for a while, apparently, and the retail group has disbanded after their victory.  No peep from PanIP yet. 

Friday, May 20, 2005 8:29:24 PM (Eastern Standard Time, UTC-05:00)

As good as ASP.NET's adaptive rendering is, I sometimes find myself needing to do some fairly substantial client-side scripting.  I used to sniff browsers, but that was getting tedious, and most common scripts are written upside down anyway.

The best method I've seen is to use 'object sniffing'--testing browsers for support of different objects and methods.  This saves a considerable amount of time, since all browsers will fall into 3-4 categories of object support, and you don't have to parse out a zillion different browser types and subtypes and still run the risk of excluding one that may work on your site.

My guide was http://developer.apple.com/internet/webcontent/objectdetection.html.  The article is a couple of years old, but it's still useful to me today.

The pace of new browser releases may be slower than it was in the early days, but developers must still confront a bemusing array of browser versions and brands that support some JavaScript features but not others. To combat the problem, scripters commonly provide two or more code branches so that a browser follows an execution path containing statements that it supports. Browser sniffing — the task of inspecting navigator object properties for version information — has become largely unmanageable given the browser version permutations available today. This article presents details on an alternative solution — object detection — that frees JavaScript developers from most of this versioning mess.

I haven't played around with custom server controls, so I don't know how applicable this is for that purpose.

Friday, May 20, 2005 8:25:57 PM (Eastern Standard Time, UTC-05:00)

This article came up on the news today: Allowing Only Numbers in ASP.NET Textboxes.  In this article, Bipin uses a custom validator to enforce input.  I usually like Bipin's ideas, but this one seems to be a little more difficult than it needs to be.

I think there's a better way to do this--use a regular expression validator.  To test this, create a page, and add a textbox, regular expression validator, and a button.  For the validation expression, enter the following:

^[0-9]+$

Compile your page and test with some diffrerent inputs.

A quick explanation of the expression:
^ indicates the start of the input
[0-9] indicates a range of allowable characters.  You could do [0,1,2,3,4,5,6,7,8,9], but that's not lazy.
+ indicates 'match preceeding one or more times'
$ indicates the end of input

If you wanted to enforce a length of input, you could do something like:

^[0-9]{6,12}$

which would enforce a minimum of 6 characters and a max of 12.

I think regular expressions are too often overlooked, but they're very powerful and simple once you work with them a little bit.  For a good basic overview of regular expressions, check out

The Web Professional's Handbook

 

 

And a more in-depth RegEx reference in:

Pure JavaScript: 2nd Ed. (an absolute steal if you buy it used)

 

 

Regular Expressions with .NET [DOWNLOAD: PDF]

Downloadable e-bok in PDF format, from Amazon.

 

 

 

Mastering Regular Expressions, Second Edition (The Owl Book)

 

<edit>

Thinking about Joseph's comments below, one could extend Bipin's idea and use a regular expression instead of parsing the string and checking to see if each character is numberic or a period.  You could also add in a check to see if the field was blank, and save on the second validator.

</edit>

Friday, May 20, 2005 8:21:23 PM (Eastern Standard Time, UTC-05:00)