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 : church, church
management software, church
software

Go to post
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
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 : microsoft, office
12, office
2007

Go to post
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
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
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