Saturday, February 28, 2015

A Mozilla Thunderbird Issue With Saved Passwords

Now I hesitate to publish fixes to technical issues that could well go away with the next patched update or release. But part of the reason I'm doing these posts is to chronicle issues, in part because it's useful in looking at usability issues in the context of user design or even stimulate ideas for new products or utilities. Another useful concept in problem solving is to adapt an old mathematics approach to proving theorems--reduce the problem to an already proven theorem rather than reinvent the wheel from scratch.

Let me illustrate with a simple example . I usually maintain a personal music library with iTunes, and for years I've owned Shuffles; I would typically painstakingly create playlists selected from thousands of licensed songs downloaded to the Shuffles for when I exercise, go shopping, etc. The Shuffle integrates with the iTunes interface (although I've had occasional problems when it didn't seem to recognize that the Shuffle was attached to my PC), and it was relatively simple to fill (and randomize song sequence) from playlists. Playlist functionality has always been lacking in my experience; it's fairly easy to create a playlist (e.g., favorites, Christmas, genre, etc.) and to add individual songs to playlists, but it's a fairly tedious procedure; it would help, for instance, if you could import, export, clone or merge playlists and/or work with user-defined song tags. I think I mentioned in a signature miscellany political blog post there was a problem with my last Shuffle, and for some reason I didn't find where they were being sold at my local Wal-Mart, but I did find an MP3 player with more capacity at about a third of the cost. Of course, my new player didn't interface with iTunes. I could, of course, locate and copy individual song files to the device, but this can be cumbersome without having some playlist script to locate and download to the player. There may be a freeware tool that does what I wanted, but I didn't stumble across one. It also wasn't clear how I could import playlists across alternative music players which could access my new device. And then I discovered one I've used in the past, MediaMonkey, would read in my iTunes playlists when it scanned my music library, and it was fairly easy to select all the songs in a playlist and download them to my device. It would be nice if either the player or the device allowed randomization of selected songs, but the bigger issue was song selection.

There are other usability issue annoyances. For example, on a recent iTunes upgrade, I found that the tutorial kept starting up, even after I completed it. Now granted, all it took was a mouse click to turn it off, but it gets old over time; you should only see it run once and then let you start it up from the menu, which is what I've seen with other software. I've also found that toggling to and from the mini-player (reduced iTunes) doesn't work well as least on my Windows 8.1 machine.

But enough of Apple; I think in part I'm picking on them because they have a public reputation for usability. I recall a while back I was in contact with some Apple employee, and she really wasn't that receptive to my product feedback and suggestions, "not invented here" syndrome. The current issue is somewhat similar to the spawned tutorial issue. I used to use Outlook Express until it was desupported in favor of Windows Mail. I had chronic latency issues with Windows Mail loading my legacy emails (in the thousands). I refuse to pay extra for a Microsoft Outlook upgrade and discovered Mozilla Thunderbird was a suitable replacement; I've been a user of Thunderbird ever since.

The current issue deals with the handling of SMTP (outgoing mail) servers for 2 of 3 external email accounts configured in Thunderbird. When you run the wizards (Tools/Account Settings/Add a New Email), you input your email login and password and may then be presented with a pop/imap choice for incoming emails. Now these accounts/passwords are stored/available through Tools/Options/Security table. You can optionally (recommended) create a master password so unauthorized people can't find the passwords to your email accounts.

Here's the usability context: if your account/password is not stored, you will be prompted for the password depending on whether you are downloading or sending mail. Usually it's a one-time event per session (meaning, say, if you are writing/sending a second email and the SMTP server is in question, it will "remember" the password). If you download/send mail from multiple accounts, you can find yourself being prompted for passwords (beyond the master) every time you bring up Thunderbird. It's not a big deal but annoying especially since that's the reason you have a password repository to begin with. Now in theory you're supposed to get a checkbox allowing you to store the password in the repository, but I've gotten no checkbox, and a relevant tweak of the configuration described on the Mozilla website does not seem to resolve the issue, at least for the current release.

In short, I discovered recently when I dropped and recreated my accounts (e.g., in one case I had configured IMAP vs. POP and IMAP was downloading redundant and/or spam category emails), only one of the email accounts had a saved SMTP account. The wizards did save the IMAP/POP accounts.

A word about the repository: it has more limited functionality, aimed more at removing accounts. One obvious issue is what happens when you change your external email password?  In theory, you should be able to edit the password within the repository and/or replace the password if and when you get prompted for the password if your stored password is rejected. (It may well be your best alternative is simply to drop and recreate the account when you change the passord.) But in the current scenario, there is no way to insert, say, a missing SMTP account into the repository, so if any replace/add account functionality fails when you are prompted the first time you send an email through an affected configuration, you're stuck. Never mind the fact the repository already has your account password from your IMAP/POP account anyway (which is a different usability problem: you have separate incoming and outgoing records for the same account/password).

The reality is, even though I don't think you should have separate account password records for incoming/outgoing email services, that determines whether or not you get prompted for retrieving or sending emails, other than invalid passwords in the repository. What I found last night is there is a good developer's add on called "saved password editor" from Daniel Dawson which has the fix I was looking for. It provided a pickbox at the bottom of the saved password repository allowing you to add entries (with other functionality as well). You get a form with a radio selection tab at the top, and I've had success through the annotated option. The format is  smtp://[smtp_servername] , e.g., smtp://smtp.googlemail.com; if you don't know your target server name, scan down the bottom of Tools/Account Settings, select Outgoing Server (SMTP); to the right you should see a picklist of SMTP server names and more detailed configuration settings below the highlighted server name. I've entered the same string in the first and third lines (the second line, for a prefix used in the other option,is probably greyed out) and enter the account and password on the following couple of labeled lines. I normally then bring Thunderbird down and then back up--and now I don't get prompted for any of my 3 accounts when I send out emails.

For the benefit of other Thunderbird users, I've found these other add ons useful as well:

  • ImportExport Tools
  • Lightning
  • Nostalgy
  • Remove Duplicate Messages

Sunday, November 2, 2014

My First Experience with a Garmin GPS Device

I think my Dad had bought me a GPS unit a few years back for Christmas, but it got set aside because of other priorities, I was typically driving to familiar places and it probably ended up in a moving box. I had an early model Magellan which basically worked in connection with a PC and street mapping software, not very usable from my perspective.

For the most part, I've normally used mapping portals from Mapquest, Yahoo, and/or Google. But there are some irritating nuances. I missed 3 job interviews in Baltimore and Delaware because of bad or misleading directions. For example, one of those told me to follow an I-95 exit to a T-intersection, and instead I found myself merging into a coastal highway. I've had several problems in the past with computerized directions--for example, on a trip to Reading, PA, the printed directions suggested that I should follow a side road for 3 miles, but it was more like 15 miles; I thought I had somehow overshot my target. I think in some cases there have been directional problems, like the maps had me turn right, instead of left; what would tip me off was I noticed I was heading into a rural area.

Of course, people often give rotten directions. I like to have signposts; many times I won't see a street name, for example, today I was told to take a left on Jackson, and I inferred it was the next one-way street. My favorite example was a job interview in Irving, TX several years back. A lot of the buildings were well off the main street and the building/street number wasn't legible. I eventually discovered that my target had a massive fountain with mounted horsemen in front of it. In visiting one sister the first time I had to slow at each side street; there was a yellow traffic sign near the border of her corner lot.  Another time I missed an interview was in a Baltimore suburb; there was a cluster of similarly named streets, like Oak Street, Oak Lane, Oak Ave., Oak Drive. After driving around for 15 minutes, I called my interview contact who couldn't help me and ended up cancelling the interview.

I think the first time I heard one of those GPS units with spoken directions was in a Chicago taxicab. There are some nuanced differences in the dialogs, e.g., I've heard some units say, "Take your next left." (I've noticed mine will simply emphasize "Take a left on XYZ Drive".)

I ordered my Garmin unit from a factory outlet; it supposedly came with a lifetime subscription of map updates. My first major issue was that Garmin had unified everything from registration to software install/updates with an application called Garmin Express. (Speaking of registration, all I recall was the application asking for my email address; I do recall getting an email notification. At some point I was having to install a Chrome communicator plugin to utilize Dashboard functionality, but I notice even though it picks up device details, I still see a big registration button which seems to suggest the device isn't registered.)

The big issue, though, was the fact that Garmin Express didn't seem to be able to download my necessary map. When I clicked on the detail link, it showed 0 bytes downloaded, even after several minutes. I really didn't find this issue addressed in searches on the Garmin site, but at some point I ran a Google search, and some forum contributor in an older post suggested that a Garmin utility Garmin Map Updater had resolved similar issues and gave a download link. Long story short, this resolved my basic download problem.

I didn't find a lot of practical guidance, e.g., the unit may require X amount of time of USB charging, (I haven't found or noticed a charge status indicator, e.g., the  unit is fully charged or there's a limited time of operation available). I didn't find a lot on operating the interface, but it was fairly easy to pick up operating the touchscreen interface.  I love the fact that there are single button options for gas stations and restaurants in your area with relevant map links.

I've lived at my current address for only a few months and never had to go to a local post office, but I had some business papers that needed to go Express Mail over the weekend. It was past 4 PM before the paperwork was ready, and I knew I was cutting it close, but decided to do a trial use of my device to find the local post offices. Ironically it showed one just up the street from me, so I set out to go to that one vs. downtown. Long story short, the device told me to take a left--and I suspect I made a wrong turn (too early?) It was very clear that I was driving away from the intended target, but I never got an error message of the nature "Stop! You made the wrong turn; turn around." I'm not sure whether it was simply looking for other post offices in the direction I was driving. But I soon find myself driving through small towns I didn't know and it had me at points driving down windy, narrow, crappy roads little more than dirt and loose gravel.  At some point I connected into a road it identified as Husky Highway--a familiar road that I knew by its route number, but it was an unfamiliar stretch and furthemore I was driving north, away from home. At some point I knew that my post office destination wasn't going to happen that day, and I simply wanted to find my way back home. For some reason the device had me turn at a cul de sac leading to some gated plant and obscurely suggest that I make a U-turn. It then told me to take a left (south) on Husky Highway.  What was somewhat amusing was that it told me to make a stop at a certain 7-11. Looking to my left, I saw a flagpole at a building on the left--obviously the town's post office. At some point I reset my search for home. At one point I was probably 25-30 miles north of home.  The rest of the drive was uneventful--I was relieved simply to see a mileage marker for my town. What's amusing is that it messed up just as I got to my local T-intersection; it told me to take a right and then an immediate right--it's actually a left  and there is no right for some distance down the road.

I chalk it  up to a learning experience; I came very close to stopping and asking someone for directions, which would have been embarrassing. The weather was also drizzly. I may have made some wrong turns along the way. I definitely didn't like it having me drive narrow crappy roads out in the sticks. I would have appreciated some kind of error feedback and some verbal clues of the type "Look to make your next right...We are approaching the target, slow down now."  On a side note, I did make it to the town's main post office today using the device; I did try to retrace the allegedly nearby post office going from the other direction, but I seemed to find myself at a Knights of Columbus hall. But I'll probably bring a printout from Google Maps with me on future trips until I get more familiar with the Garmin device functionality.                                                

Friday, July 19, 2013

A Note on AVG Safe Search and Google Chrome New Tab

One usability problem I've found with installing PC freeware products is piggyback installs of other products.  (I suspect this is a way of sponsoring certain distribution costs of the base product) . I was updating a popular PDF writer utility; I remember specifically opting out of at least one optional install, but somehow I missed any opt-out for AVG Safe Search toolbar. This is not a reflection on the intrinsic worthiness of AVG products, but I prefer to install products directly.

The first indication that I had unintentionally installed the toolbar was when I opened a new Chrome tab and found myself facing an AVG version of a Google search home page. I went to my extensions page and removed a relevant extension but even after restarting the browser, same issue. I went to my browser search  list and removed AVG, but the problem persisted.

I did a Google search and found a cluster of similar issues. There was a link to an AVG home page on browser add-on removal; nothing useful there, except I noticed they referenced the Tools versus Settings menu (probably a Google menu reconfiguration, a different usability issue); I found it annoying that AVG hadn't updated its webpage accordingly, but I was more annoyed there was nothing useful there.

It dawned on me maybe the toolbar software wasn't removed, and I checked my Control Panel Programs and Features. Sure enough, I found the toolbar there and uninstalled. This resolved the issue; I now saw my expected New Tab look.

Saturday, June 22, 2013

A Wireless Keyboard/Touchpad, Software, and Usability

I have always liked touchpads. To me, they are intuitive to use, not unlike a toaster, and certain operations like tapping to click seem natural. I don't recall explicitly learning that I could tap to click; perhaps it was an inference from mouse click operations: I could, say, point the cursor at a close box to select it and then tap the box, closing  the window or tab.

I had recently replaced my malfunctioning Microsoft wireless keyboard with a new compact Logitech 400r. I liked it, although the undersized right shift key required some getting used to. I liked the fact like many peripheral devices, after I installed the receiver into an available USB port, Windows could pull down the driver from the Internet, and the keyboard was immediately available, functionality as expected.

All went well until one day I discovered, for unknown reasons, touchpad tapping no longer clicked on selected objects. I could still click by using embedded mouse buttons below the touchpad.

I found a note on Logitech's website that referenced some user actions might result in disabling the tap to click functionality and could be toggled back on through touchpad options via the mouse tab through its related SetPoint software. I did not have SetPoint installed, so I had to download it from the Logitech website. The only problem was that once I installed the SetPoint software, I had a new problem: I didn't see the device tabs the Logitech fix presupposed.

I noticed that this was a common problem experienced by Logitech customers going back a few years. Logitech had a related problem report and suggested uninstalling and reinstalling SetPoint software, which I tried a couple of times, including the self-contained version in the event there was an Internet download issue, re-boots after uninstalls, etc.  Still no device tab.

What turned out to solve the problem for me was a tip from elmoputz here. Basically you have to unpair  (logically disconnect) the existing keyboard set in the SetPoint Unifying Receiver software and physically toggle the keyboard off and on (switch on the right side of the keyboard top edge). (If necessary, pair the keyboard back with the receiver.)

At some point after this, I now saw my keyboard and mouse tabs. I don't believe this resolved my original tap-to-click issue, and I was surprised to see the tap to click option was toggled on in SetPoint. I tried resetting the option, which I believe did finally resolve my problem.

There are some obvious lessons here. The manufacturer tech support website is an extension of the device's usability, and the suggestion to reinstall software should be a last-resort option. When that fails to work, the vendor's credibility is in question. Also, when users are posting questions on non-manufacturer websites and the same issues persist over time, service issues can adversely affect the vendor's reputation and repeat business.

Friday, March 23, 2012

Another of My Favorite Things: Quick Cliq


There are a number of application launchers I've tried, but the freeware product Quick Cliq from Apathy Softworks is one that I'm using on a regular basis. (In particular, I'm using the 64-bit beta version available on the download page.)

Quick Cliq is a multi-faceted tool, more of a Swiss knife utility. It provides extra functionality, including clipboard functionality (turned off), windows functionality (e.g., toggle to and from the desktop), and memos (including the ability to encrypt/decrypt them).  I've embedded a Youtube video at the bottom of the post which provides a broader exploration of the application, and there is online documentation at the Apathy Softworks website describing all functionality in more detail.

This post is intended to provide a working example of how I've implemented use of the product as an application launcher. In the above image, the items "Search" through the "Browser" menu were custom-added; the "Windows" menu through the bottom of the window are standard/toggled features. The colors, font, background, and other characteristics were custom-configured via the "Add/Change" option (which also provides access to software settings, hotkey configurations, and the like). I access the menu through a default Windowskey-Z combination (the software also puts an icon in the system tray).

I have a shortlist of frequently accessed custom executables or files at the beginning of my menu. "Search" is my name for Voidtool's wonderful freeware search utility, Everything. Q-Dir is the exceptional freeware quad explorer. The next two commonly accessed files are launched in filetype default programs. (My text file default is Notepad++.)

I then created 5 custom folders: web (frequently accessed bookmarks), folders (including my portable program, synced data and startup directories), system (Windows update, program management, computer management, system services, msconfig (e.g., disable autorun for subsequent system reboot), and my backup application), utility (download tools, local website capture, security software, media burning, file viewers, editing tools, and console/command windows), and various web browsers.

Each custom item or folder is created through the Add/Change option. The first image below shows the result of adding a new item (note the leftmost item in the icon bar). There is a drop-down menu in the shortcut window bar that allows you to specify special items, like a folder menu. A folder menu (see second image) allows you not only to select an item within a folder but to open the folder itself in an explorer window (e.g., so I can add a new program shortcut to run at startup).

You may also enter multi-line commands (say, a housekeeping script) by toggling an icon at the right end of the shortcut window bar (not pictured). The following lines illustrate how this can be used:

cmd /k "copy c:\users\myuser\dropbox\ron.txt c:\users\myuser\dropbox\ron2.txt"
calc
cmd /c "move c:\users\myuser\dropbox\ron2.txt c:\users\myuser\programs\ron4.txt"
write "c:\users\myuser\programs\ron4.txt"

NB: VERY IMPORTANT: After entering your single/multi-line shortcut, make sure you click on the SAVE (floppy disk) icon in the shortcut menu.

This concludes my brief working example introduction to Quick Cliq. My intent is not to provide a comprehensive introduction but a minimalist approach, as John M. Carroll described in the Nurnberg Funnel. The general idea is to give computer users enough context and practical guidance so they are able to do something practical with software within a short period of time.

Adding a New Item Type via Add/Change
An Example of the Folder Menu Feature


Saturday, March 3, 2012

One of My Favorite Things: Qliner Quotes 2007

I love quotes and have been collecting my favorite quotes for years in a text file with each self-contained one-line quote in the format quote - author. I have used this custom quote file with a Windows-compatible signature quote merge software product to attach fresh Quote of the Day signatures to my personal emails. How well have my email quotes been received? I've actually had email recipients write back solely to comment on the particular quote in my email signature; in one case, a tech recruiter even requested a copy of my entire quote file after our extensive conversation (which unfortunately didn't work out)...

Example of My Email QOTD Signature

--
I thank you for reading and wish you a blessed day!
Ronald A. Guillemette, h (999) 999-9999, myemail@gmail.com


Quote of the Day

Pray that you will never have to bear all that you are able to endure.
Jewish saying

What is Qliner Quotes?

I have used one particular Windows freeware (no-cost license) program, Qliner Quotes, for years. Qliner Quotes comes prepackaged with a handful of quote text files. In particular, I currently use a 2007 version of Qliner Quotes, available from download from a number of freeware websites (for example, do a search on "Qliner Quotes 2007" download). 

Qliner Quotes is designed to select a random quote from any configured combination of text files located in a files subdirectory off the parent Quotes directory (in Windows 7, C:\Program Files (x86)\QLiner\Quotes\files). Qliner "knows" when you have added your own or external text files to the files subdirectory: the new files will be included under software picklists of quote files (see below menu). You can also select a nondefault quote text file in creating a new signature.

For purposes of this discussion, I'm using Windows 7 Home Premium, 64-bit, and my principal offline email client is Mozilla Thunderbird. I have configured Thunderbird to integrate with various external email accounts (e.g., Gmail, Yahoo, Hotmail, and others). The software installation is straightforward; click to complete: you should see a blue Q icon appear in your system tray (as shown in the below embedded video from a different source). Integration with my desktop or email client is a post-installation task.


Configuration of Qliner Quotes

I normally move a copy of Ron.txt in the above-specified Quotes file subdirectory. (I keep my master Ron.txt in my dropbox account, and I use another freeware program, Notepad++, as my default text editor for adding or editing quotes.) I then go to the Choose Quotes data file and toggle off any default selections of preinstalled quote files and toggle on Ron.txt after starting up the software (which is an autorun program). I then go to the automatic change interview and select the smallest interval. (I also go to the Change Settings menu and toggle off any automatic change for program updates.)

I maintain signature boilerplates through the Change Signature item. You will see a picklist of any relevant default signatures on the left side. (To delete a signature, select the desired file and File/Remove from the menu bar.) Just below the menu bar is a line with links for a "new signature", a quote insert link (for the boilerplate), and the target text file (in my case, Ron.txt).

Configuration of a New Signature. When you click on "new signature", a new item in the picklist appears, called "a new signature".  The "new signature" comes with a boilerplate title and <insert quote> macro. (If the insert macro is overwritten by mistake, it can be reinserted via the link bar.) The text edit window provides a rich source of edit tools to change boilerplate text, insert objects, apply color (just select the macro and apply a color, for instance), font, character size, etc. (In particular, I had earlier downloaded and installed a Windows-compatible freeware Old English font for my quote header "Quote of the Day". See above example.)

You then double-click on the signature (or save it) to give the signature a new name (in my case, "RAGQUOTE") and/or designate a non-default target location for for relevant signature files (if desired): in my case I browse for my dropbox directory where RAGQUOTE files (txt, rtf, htm) files are stored. (The default directory is the Windows user APPDATA\Roaming\Quotes\Signatures folder.)

Configuration of My Desktop Client. For my Thunderbird client, I select the account general front tab ("Account Settings"), don't enter anything in the signature box, but click on the "attach" box and browse for my dropbox htm file. I then click on the Composition and Addressing tab for the account and select (under "Automatically quote") "start my reply above the quote" and (place my signature) select "below my reply (above the quote)".

Configuration with My External Email. Gmail has a signature option under the Settings. The signature type (plain or rich text) is actually controlled from the relevant toggle switch at the end of the format bar in the compose email window. You can configure the signature plate (without a macro) using the limited font selections within Gmail (or launch the singature htm file into the browser and do a copy/paste inside the signature text box, e.g., my Old English QOTD boilerplate and/or my far more extensive installed Windows fonts, all available through the Qliner Quotes text editor). My approach is to leave a few blank lines at the bottom of the signature text box (with the target text color set at the time of adding the lines); then when I start a new email, I use the Add Quote to Clipboard option by right-clicking on the Qliner icon and then paste the quote into the blank text lines.

Alternatively, you can waive using the Gmail signature, simply add a (refreshed) browser tab page aimed at your desktop signature quote htm file, and do a copy all/paste at the end of your new Gmail emails.

You could also simulate a multiple Gmail signature capability by using the canned responses Gmail lab feature and adapting the approach I specified above (i.e., copy/paste the current quote from the Qliner icon).

Why Qliner Quotes 2007 
vs. Current Qliner Quotes Software?

You can download the new/current Qliner Quotes here; note that the installation expects you to set up, if you don't have one already, a new QuotesFreak account. The current Qliner Quotes is meant to integrate one or more public/private tag quote collections with insert functionality of Windowskey-Q in Windows applications, including Gmail, my principal email vendor. In my use of the newer software, I have found certain variances of functionality: for example,  I normally use Gmail in rich text/html mode (vs. plain text), and Windowskey-Q only seems to work in plain text. Second, the default Qsignature files consist of only the quote and does not appear to be configurable.

Assuming acceptability of plain text quote insert functionality, is the new Qliner Quotes of potential interest? Yes. You can subscribe to other tags in addition to your own private or public quote compilation tag and use Windowskey-Q as an integrated copy/paste operation, functionally similar to what I described above in inserting the Quotes 2007 random quote from the clipboard using Gmail signatures or canned responses.

An Alternative Approach to Gmail Signature: 
Wisestamp / Quotes Daddy

Gmail's rich-text compatible signature is a relatively recent feature; I have used a Chrome extension Wisestamp for similar purposes. (Wisestamp has other signature options as well.) Wisestamp recently announced a partnership with Quotes Daddy, a competitor to QuotesFreak. (I believe that QuotesFreak has a different approach, through your favorites which can be saved from preexisting quotes or added by you (one at a time). I don't believe you have the function of importing your quotes compilations directly into Quotes Daddy favorites.

Video Demonstrating Use of Qliner Quotes 2007

The following embedded Youtube instructional video by edwinronaldjongsma is available at initial post date; Youtube videos are subject to removal at a future date by the author or due to any relevant violations of Youtube policies.



Sources of Quotes

The following web link list reference many of the sources I've accessed in building my own quotes file compilation; it is meant to serve as a starting point for others building their own favorites compilation. (You can also do a webcrawler search on "quote of the day" or related query.) I also collect quotes from a  number of popular email subscription services or websites (e.g., Beliefnet).

Many of these services provide periodically-published emails/archives, RSS feeds, twitter, or widgets. The more comprehensive sources allow you to build your own favorite quotes page or upload your own quotes file; a few enable you to access quotes by tags (e.g., author or theme) or search by keyword or other criteria. Website links are available at initial post date; they may change or become unavailable at future dates.

Brainy Quote
Dictionary of Quotes
Founder's Quote Daily (patriotic/American Founders' quotes)
Positive Quote of the Day
Qliner QuoteFreak (upload private quote collection text file to a tag)
QOTD
Quote Snack
Quotes Daddy (Wisestamp users can access Quotes Daddy favorites page)
Quotations Book
Quotations Page
Thinkexist
Wikiquotes: authors, literary works, films, TV shows, themes (courage, love,...), miscellaneous (epitaphs, proverbs,...)

Monday, January 2, 2012

Reflections on error code 766f6c756d652e63 3f1

One of the key concepts in the discussion of usable technology is its natural or intuitive design: we immediately realize how to use it from the context of our own knowledge and experience. I know how to use a new toaster out of the box, without reading an accompanying instruction pamphlet or asking for someone's help.  If I come to a door with a flat vertical metal panel, I know to push; if I see a vertical handle, I know to pull. Perhaps as infants or toddlers, we learned shapes using shape sorting cubes or similar toys: we know how to connect two- or three-pronged plugs to electrical outlets, or we know where and how to attach a network or monitor cable, power plug, or USB device on a laptop computer.

If  and When Technology Fails, It Should Provide Usable Feedback For Restoring Functionality

Error codes or messages from the human-computer interface can be misleading, demeaning, unintuitive or obscure. In particular, computer programmers and administrators are dealing with complex compute software and systems; the usability or cognitive fit of the computer feedback to the technologist's background enables quick, efficacious target task resolution.

Quite often, the interface design is poorly designed and implemented, providing unusable feedback. Harry McCracken has compiled, from an IT professional perspective, a tongue-in-cheek "The Thirteen Greatest Error Messages of All Time" (and a sequel, "The 13 Other..."); perhaps my favorite, from a reader contribution, is: "Keyboard failure. Press F1 to continue."

Inadequate Error Trapping: A Real-World Example

I have a relevant example from my own professional experience. A large defense conglomerate had failed twice in attempts to install a new version of Oracle Application Server. There was a legacy GUI-based application built with an older version Oracle Developer Server. The subcontractor Oracle programmers or developers told the military installation that they had already upgraded the application for migration to Application Server. As a former Oracle Consulting consultant, I was assigned to the project (with the client manager's approval) and successfully installed a functional Application Server on the target test server. The vendors reported that my implementation was defective because the application wouldn't run on it.

I knew the Application Server was functioning properly, blackboxing the application. So I asked the principal developer to design a simple "hello world"-type application. It took the principal developer some time to do this; he would later admit that he had to scan Google for sample code. (I already had a suspicion what was going wrong: the application hadn't been upgraded, but I needed evidence for the military project manager, whom trusted the vendors and placed the burden of proof on me. I later discovered an Oracle-supplied migration script used to check whether a candidate application was Application Server-ready. This script results listed several no-longer-supported function calls in the code.)

The developer was convinced that there was something wrong with the application, but all he knew when when he pressed an application form button to generate a report, a general error exception flashed at the bottom of the screen. I worked with him to install mileposts (e.g., display "I got here") through the code and finally narrowed the problem down to the call to print the report. The call was incompatible with changed Oracle functionality. The old reports had relied on the use of custom print drivers; Oracle no longer supported the use of custom print drivers but required developers to specify a valid output type in their function calls (e.g., rtf, pdf, etc.) The military project manager was in a state of denial: she didn't want pdf files. The administrative assistants had been trained to adjust Microsoft Word for handling the custom-driver outputs, and the use of pdf files constituted, in her judgment, a material breach of her overriding project requirement that the upgraded system be consistent with existing operations.

(Remember the dictum I mentioned in my introductory post? "It's not a bug, it's a feature." In the military mindset, eliminating the assistants' busy work of adjusting a word processing document to accommodate application output was not a benefit: it was a problem. The military project manager was more upset about the revised Oracle functionality than she was by the facts that her prime vendor had lied about upgrading the application and had failed to advise her what the upgrade meant in practical terms. In front of the defense conglomerate's employees, she lashed out at me for "incompetence" in failing to accommodate her prime objective: the fact that I'm a former senior principal with Oracle Consulting didn't impress her. "This is not your area of expertise; I told your employers I wanted them to subcontract the task out to Oracle Consulting." I calmly explained that neither I nor any other Oracle Consulting consultant had any direct sway over Oracle product decisions: they weren't going to change their desupport of custom print drivers at my request. "We're the US military!" the project manager snapped back at me. "Oracle will do what we tell them to do." I then pointed out that I had been tasked with installing a functional Oracle Application Server, which I had done. It was the developer vendor tasked with delivering the compatible application system. "No! I DECIDE what your tasks are and when your assignment is over, and you will continue to work with the other vendor.")

Usable Feedback Enables Efficient, Effective, Satisfying Problem Resolution


When IT professionals troubleshoot a problem, they want to identify the problem type as quickly as possible, e.g., is a hardware problem? Software bug? Networking issue? Data problem? Server resource issue (e.g., insufficient storage, computer jobs competing for memory or users trying to access and update the same database record)? User error? If they are running a diagnosis test, what conditions does it test? Do I have to scan through a multi-page document to identify any flagged exceptions, or am I presented with a short list of exceptions? Do I have to use external sources (e.g., an error code cross reference) to understand the nature of the error, or is the error message self-contained?

How context specific is the error message? For example, if I'm dealing with a database object problem, is it due to lack of allocated datafile resources for the database object to expand? Is it a user access or storage quota issue? Is it dealing with object definition constraints (e.g., the table may be able to expand a specified finite number of times)? Are user record inserts or updates consistent with table and field datatype definitions? Is there a physical problem with the relevant datafiles underlying the tablespace containing the object?

False Confirmations

Error resolution is difficult because of poorly designed error trapping in the underlying design; we often uncover these because of some external evidence of system malfunction. Take, for instance, the Unix standard error code of 0 (i.e., the relevant command or program was successful). The programmer's expectation is that any relevant subordinate malfunctioning program calls would return error codes which in turn are passed along to the higher-level return code. (Programmers prefer marker return codes which lead them more efficiently to the source of the program bug and hence problem resolution; otherwise, they have to white-box or broaden the scope of the software in question.)

Let me give a few real-world examples I classify as false confirmations.

False Confirmation Example #1

In my first professional assignment as a DBA, I was a federal contractor administering a database and related laboratory information management system in the Chicago region. Another vendor maintained the general application which features were decided by super-majority votes from the regional officers of the agency. (Regions could decide to maintain site-specific functionality on top of the general system; for instance, the Chicago region had a lab book functionality not in the general system.) Because of division of labor, the actual tape backups were maintained by network personnel. (For example, at many sites I'll be given a reusable amount of SAN space to park a copy of  "cold" (not in use) database and/or application software tree files, and the network group will schedule a backup of the relevant SAN storage after the backup session is complete and before my next backup.)

I was very concerned about the network group's backup procedures for obvious reasons. I was repeatedly assured that they constantly monitored the backup jobs for errors; I specifically asked about any periodic tests they made of the backups, i.e., test restore procedures. They refused to answer that question, no doubt considering it as none of my business.

The LIMS vendor's tech representative got in touch with me in terms of preparing for an upgrade of the application software, including all necessary backups as a precaution. For whatever technical reasons, there were problems with the upgrade, and the vendor representative asked me to restore the backups from tape. The network group discovered and sheepishly admitted that all the tapes generated over the past several months were unusable: they had relied solely on the defective tape software's report indicating a normal completion. (I ended up having to rebuild the database from scratch, but that story is beyond the scope of this post.)

False Confirmation Example #2

A second example involves a data warehouse from a government agency that specializes in intellectual property issues. I was one of the 2 production contractor DBA's managing the warehouse. A recent federal audit required a certain naming standard in specifying database connections (i.e., a data warehouse typically stores processed feeds from one or more production databases via the network or transferred flat files). My colleague was in charge of testing out and then implementing the required changes. A few days after the changes were implemented, a client functional analyst discovered key records from one of the source databases weren't showing up in the data warehouse. My colleague was in a state of denial, and I asked if I could troubleshoot the issue. Fortunately, a number of relevant SQL or PL/SQL scripts generated spool files in relevant working directories, some two or three levels deep (although these were overwritten during nightly processing and loads to the data warehouse).

I discovered that a couple of scripts with database links had been overlooked and were now in conflict with the new naming setting. The code, however, did not trap and promote the relevant error code to the top level of reporting, which indicated normal completion. The top level report simply reflected missing error trap logic: it correctly reported what it was designed to report.

Obscure or Misleading Error Codes/Messages Impede Problem Resolution

Often when one gets an error message, the error message raises more questions than answers. One of McCracken's readers commented about the notorious German messages in operating leading ERP suite SAP R/1; I served as a SAP Basis administrator (an application administrator/DBA) back in 1996 (we were running R/3) and encountered more than my fair share of cryptic long German words in error messages.

Misleading Error Messages Example #1

I remember there was a Baltimore based subsidiary of a British-based organization that operated a number of tax-free shops at airports. This company had licensed Oracle's competitive suite to SAP offerings, originally called Oracle Applications (Financials, etc.), now E-Business Suite. Most of the software users, principally accountants, were using character mode (a variation of the Lotus 1-2-3/MS-DOS style interface) versus the newer GUI interface, required for the more recent Oracle HR module. Using Oracle's new, soon-to-be mandated GUI interface required implementing a second driver patch.

(The accountants, fed false rumors that the new drivers "broke" the functionality of Oracle Financials, were in open conflict with the HR department; I had to seriously jawbone the female VP of information technology whom decided that she wanted to implement a perverse Solomonic solution of giving the departments their own ERP systems. Being a great DBA automatically paints a bullseye on one's back. The full story is beyond the scope of this post.)

I was there to replace another contractor DBA whom had been tasked as the project DBA on a test database copy for implementing the HR module. On my first day, I was brought up to meet the contractor production DBA (actually a developer whom had been promoted to a DBA role), whom happened to be running the driver patch. As I introduced myself, I scanned what he was working on: the driver patch had failed with an error message I'll paraphrase as follows: "You have just encountered a major problem with the patch. Do you still want to proceed with the patch (Y/N)?" Incredibly, the DBA indicated "Y" and was about to hit "enter" when I yelled for him to stop. I had never seen that kind of error running the patch, and I had implemented the patch at least 6 to a dozen times in the past.

I  went over the available information and found a bizarre compilation error associated with a database object. It didn't make sense: the driver ran a standard object script.  I double-checked the environmental variables; everything seemed to be set up correctly, including the Western European character set necessary for the database (versus Oracle's default US7ASCII). Oracle's Metalink (technical support website) didn't provide a clue. It suddenly hit me--was the database really built using the WE8iso8859p1 character set? One has to specify an optional character set in the CREATE DATABASE command; otherwise, it defaults to US7ASCII. I verified via a relevant query from system tables that the database was really using US7ASCII.

The test database was a clone of the production database, which meant that the client was running an Oracle unsupported configuration; this is serious business. Furthermore, Oracle did not support directly changing the database character set and specifically stated that the only supportable solution was for the customer had to export and import the database back into a new database created with the correct character set. (I had to educate the VP of IT.) It turned out that the company had earlier hired a hotshot Oracle DBA WITHOUT ORACLE APPS EXPERIENCE to migrate the database between servers; and he did so by rebuilding the database on the target server. I had softcopies of his scripts and outputs--including the CREATE DATABASE script without a character set specification.

Misleading Error Messages Example #2

A second example was an Oracle Apps upgrade project I did for a suburban county to the west of Milwaukee in the summer/fall of 2001. I got notified of an unusual error during an Apps update to a database table that had nothing to do with database resources. I had to contact the county Unix system administrator (which was political because it was past 3 PM, and the county IT manager did not like his civil servants being contacted after their assigned hours). I had a gut feeling that there was a problem with the RAID device hosting the database, but the Unix administrator was in a state of denial. I was obligated to stay on site through 7 PM (I had to be there at 7:30 AM, which meant I had to get up earlier for the 83-mile drive to the courthouse).

To my surprise, the Unix admin showed up on site at or just before 7 PM without additional explanation and had decided to reboot the server. When the server came up, all the RAID files went to "lost and found", which is the Unix version of a trash can. In other words, the files were unusable. The county had a contractual obligation to back up the test server, and it turned out they ran an obsolete static database backup script and didn't back up the application software at all. Through some miracle I was able to fish out what had to be the missing 2GB datafile out of  lost and found and was able to bring up the databases after the county DBA's restored the other datafiles from backup. There was an important test of the database scheduled for Monday morning, which meant I spent over two man-days all weekend  UNCOMPENSATED (the county claimed that their flat-bid contract was all-inclusive and crap happens: I guess there was no recourse when the county didn't live up to their contractual obligations, but I'm not a lawyer), reinstalling Oracle EBS, including tedious hours of megapatches and one-off patches. It was trickier than it sounds because the patches update up to three levels of technology and I couldn't rerun the database portion of the patches. It was the first time I ever had to do this task because most professional IT organizations routinely back up an ENTIRE server, not just a few database files...

Misleading Error Messages Example #3

A third and final example involved a federal entitlement-related production database. The vendor's Russian immigrant developer-turned-DBA had run out of disk space on a production server; suffice it to say it turned out the test server had more disk storage than the production server, and the DBA migrated, in a nonstandard way, the database between servers. I was contacted by the vendor, whom had hired me on an earlier gig to diagnose implement any necessary changes to make their databases audit-compliant. After the DBA's migration of the database, the IT manager discovered a critical morning status report was terminating abnormally. The vendor's developers were convinced it had something to do with XML processing. I could replicate the source of the problem--I could generate an ORA-600, an internal generic error code, at will by running a simple query, something I had never seen before in 18 years as a professional DBA.  Oracle Metalink was of no help, and Oracle Tech Support was absolutely clueless, saying they had no prior record of the problem  (there was a very long obscure code that accompanied the ORA-600).

The problem did not occur with the test system, and the objects by all appearances seemed to be the same. At one point, I had a gut feeling and decided to manually rebuild the external specification of a relevant table function (which took just a few seconds)--and the problem was solved. Somehow the Russian DBA's nonstandard migration had resulted in at least one corrupt database object. (I had specifically warned the IT manager during the first engagement that the DBA's cloning process was unacceptable.)

The Windows 7 Error Code 766f6c756d652e63 3f1

What would you think if you saw this error code booting up your Windows 7 PC? How does it comply with the concepts I've outlined in this post? I encountered this several times, but let me quote another user whom encountered the same problem:

Hi guys. I'm using a fairly new laptop, had it for less then a yr. It came w/ Vista and I never had to use Chkdsk on it. I used the Windows 7 upgrade disc about 3 weeks and upgraded to Windows 7 w/ no issues. Love it so far. Today my computer froze while shutting down. I had to hold the power button to turn it off. I then wanted to chkdsk, but it will not run suppostedly because "due to recent software installation" and it gives me error 766f6c756d652e63 3f1. Anyone experience this? Pls help. 
 My response is, at the time of this post,  at the end of a related thread; the reason I'm quoting this problem statement is because he specifically mentions the "helpful" system message "due to a recent software installation". Can you narrow that down? What the user omits here is that Windows also  "helpfully" notes that you can go to a system restore point before the unspecified  recent software installation.

I inferred that the software in question was probably security-related. I was using at the time a very well-known security software product which came bundled with my cable Internet service. As I suspected, chkdsk could run if and when I uninstalled the security product and  rebooted my PC with a scheduled chkdsk. (By the way, the security software had been installed some time earlier, and several products had been installed in the interim.) Subsequent interactions with the security software's technical support group proved unproductive; I was allegedly the first person whom had ever reported this problem. (I don't recall if I had subsequently tested any available option for suspending or disabling the security software in question, but uninstalling/reinstalling security security software was an infeasible solution, and I had done so given the context of the error message; the tech support representative was more interested in trying to capture the event than in suggesting a usable alternative to uninstallation of the software.)

I describe a two-stage workaround to resolve the occasional chkdsk in the above-sited post: scheduling a chkdsk after PC restart; and, just before restart, suspending one's security software product (i.e., antivirus/firewall). These are the kinds of things Apple loves to parody in its ads; let's hope that Windows product engineers take notice...