derek hatchard

aggregating from ardentdev.com and derekhat.com

April 2006 - Posts

Another Bad Error Message
Posted at Ardent Dev by Derek Hatchard (Go directly to post):

Well, I'm a roll with bad error messages this month. This week we finally received a merchant number and API token from Moneris to accept Mastercard and Visa for Church Radius. So I plugged the numbers into our configuration file and went to process a live credit card transaction. It failed with an error message saying "API Token Mismatch". What might this error message make you think is wrong? That you had an invalid API token? Good guess... But, nope. We got that error message because the sales team at Moneris had screwed up and not enabled recurring billing (subscriptions) to our merchant account. Even the tech guy at Moneris was confused. We figured it out by guessing at things that could be wrong.

The good news is that Church Radius is now completely and officially LIVE! Wahoo.

Technorati : , ,

Go to post
Bad Error Message == Bad Usability
Posted at Ardent Dev by Derek Hatchard (Go directly to post):

Error messages should be helpful. Bad error messages disrespect the user by saying, "something is wrong but I'm not going to tell you". I've made that point before.

Today I was treated to a paragraph-long error message explaining password complexity rules. The password that failed was this:

3"[cU8jlBe4vG}Zx{3^6@3

Look at this password with me. It's plenty long (22 char). It has numbers, uppercase characters, lowercase characters, and non-alphanumeric characters. It's a good random password. It was, in fact, randomly generated by Keith Browns's PasswordMinder.

I dissected the paragraph of error message to find buried in the middle this rule: must not have been changed within the last 1 day. Oh. The problem was not complexity but that my password had been reset yesterday. Here I was trying to be responsible by immediately changing my password after having it reset...

What really irks me is that the error condition is known specifically but the error message is generic. If the regular expression for password validation fails, tell me that the password is not complex enough. If I used the same password in the past, tell me that. If I cannot change my password today because it was changed yesterday, tell me THAT.

When the specific error condition is known, tell the user exactly what is wrong and whether or not it is his/her fault. That way he/she can act appropriately without resorting to detective work.

Go to post
Paste Special and Macros in Word 2007
Posted at Ardent Dev by Derek Hatchard (Go directly to post):

I've been trying out Office 2007 for a few weeks to give the ribbon UI a chance. I'm a shortcut key fanatic and frig, frig, FRIG!!! I frequently use Paste Special to paste unformatted text. In shipping versions of Word I press Alt+E, S, Ctrl+End, Enter (I'm pretty fast at that combo). Eventually I get around to recording a macro and assigning it Ctrl+Alt+Shift+V. With the new ribbon interface I have to press Alt+E, C, V, S, Ctrl+End, Enter. Not too short for a "shortcut".

"Oh, Derek," you say. "Stop whining and go create a macro." Sure, OK. Wait a minute... How do I create a macro? There is no longer a Tools menu. No mention of macros on any of the tabs. Grrrr...

The solution? Go to File | Word Options. Select Views. Check Developer Tools. A new Developer tab now shows up providing access to macros and some other stuff (like XML schemas). Yeah, I know - exceedingly intuitive compared to Tools | Macro | Record New Macro.

Now, I'm not exactly a Word power user but I can hold my own, and I suspect I am not the only person who is not going to appreciate feeling like a novice in my word processor. I am convinced that ribbon-enabled Office 2007 products will ultimately ship with a compatibility mode (standard menus, toolbars, etc.). I personally won't use it, I'll fumble my way through figuring out the new UI. But lack of a compat mode will hinder adoption. Or maybe everyone has forgotten how essential it was to have a WordPerfect compatibility mode.

Update: Turns out the Developer tab is also how you edit document properties like Author and Title. I was wondering where that functionality went since it's not accessible under the File menu. Personally I think this feature should have been made more accessible, not less. Document properties can really matter when you start putting things into SharePoint or some other document management system.

Technorati : , ,

Go to post
Using ADSI to Authenticate Against Active Directory
Posted at Ardent Dev by Derek Hatchard (Go directly to post):

I dusted off my modest ADSI skills yesterday to help some folks figure out how to authenticate against Active Directory by binding to it using LDAP. Here's a VBScript version using ADSI (run at command line using cscript.exe).

Const ADS_SECURE_AUTHENTICATION = 1

Dim uid, pwd

WScript.StdOut.Write "User name (with domain prefix): "
uid = WScript.StdIn.ReadLine

WScript.StdOut.Write "Please enter your password:"
Set objPassword = CreateObject("ScriptPW.Password")
pwd = objPassword.GetPassword()
WScript.Echo

' Get just the username (samAccountName)
Dim username
tmp = Split(uid, "\")
username = tmp(1)

Dim LDAP 'As IADsOpenDSObject
Dim LDAPString
LDAPString = "LDAP://cn=Users,dc=yourdomain,dc=local"

'''
''' Important Lines Right Here
'''
Set LDAP = GetObject("LDAP:")
Set obj = LDAP.OpenDSObject(LDAPString, uid, pwd, ADS_SECURE_AUTHENTICATION)
'''
'''
'''

For Each o in obj
If o.Class = "user" Then
If o.Get("samAccountName") = username Then
WScript.Echo "Found " & o.Get("cn")
End If
End If
Next

Go to post
Good news for smart client developers: SQL Server Everywhere
Posted at Ardent Dev by Derek Hatchard (Go directly to post):

Microsoft has announced SQL Server Everywhere (SQL Everywhere, or the fun but unofficial SQL/e). It is basically SQL Mobile but will run on mobile and desktop versions of Windows. That's really good news if you want a lightweight, in-process database engine for smart client apps.

Here's the nitty-gritty from Steve Lasker: http://blogs.msdn.com/stevelasker/archive/2006/04/10/SqlEverywhereInfo.aspx

Go to post
WPF Might Actually Induce a Paradigm Shift
Posted at Ardent Dev by Derek Hatchard (Go directly to post):

You know, I don't think enough people recognize the real potential for WPF (Windows Presentation Foundation, formerly "Avalon") to change the software experience.  WPF could mean that Windows and Web applications look and feel the same.  Given the reach of Internet Explorer, there will be a wide implicit adoption of WPF in the browser.  And WPF "Everywhere" (WPF/E) opens up a subset of WPF for other browsers and platforms.  Think about that for a second...  Define the user interface once and have it work in both desktop and browser deployment scenarios.

The implications are actually pretty cool.  You could define one user interface and one backend logic layer.  All you need is a connector that can feed either a desktop or browser launched version of an app.  The implications are huge if someone can make all the pieces work right.

I suspect the reason Atlas is taking so long is that Microsoft wants to make sure the client-side browser model will work for both HTML and WPF.

Go to post
More Posts