REQUEST A DEMO

Author: Gary Sherman

Chief Technology Officer, Vice President of Products

Posts by Gary Sherman:

A more conversational form of SelfService

May 29, 2007 John Ragsdale points us to noHold, which is a more conversational form of web SelfService. A dialog is much more engaging than search results. And you can easily escalate your question to a support agent at any time. Linksys' implementation is pretty slick. From www.linksys.com, click on Technical Support, then Ask Linksys. I especially like their abundant use of screenshots in the resulting articles. I tend to grok things much better with screenshots as opposed to straight text.

Technology is supposed to make our lives easier

The New Yorker has a good article on feature creep vs. simplicity. "And marketing and sales departments see each additional feature as a new selling point, and a new way to lure customers. Often, the result is a product like Microsoft Word 2003, which has thirty-one toolbars and more than fifteen hundred commands."  

A free wiki has become another tool in my consulting toolbox

May 24, 2007 I've been working on a web services project for a customer over the last few months. I'm in Austin, the customer is in Atlanta, and the developer on the project is also in Austin (but not in the same physical office as myself). I needed a way to work with the developer and the customer on defining the web services, the interfaces, and the logic within. As I mentioned in an earlier post, I was drowning in the customer's waterfall documentation. I needed a better communication vehicle than emailing Word documents back and forth. I created a free wiki at pbwiki, which was super easy to do. Then, I started writing. From the office. From home. It was great. I created just a couple of pages at first. Defined the work to do for the first iteration. Marked it as…

Elevating consulting-ware

May 23, 2007 Back when I was working at Clarify, a good chunk of my time was spent doing custom development work, i.e. consulting-ware. We developed the code, and handed it off to the customer. We (the consultants) did some testing, but the customer was responsible for the bulk of the testing. There seems to be some sort of difference in mindset when developing a product versus developing consulting-ware. I'm not sure why. I've been working with one of our developers on a customer engagement for the last few months, working on some custom web services, amongst other things. For this project, we've incorporated some of our standard development practices into the consulting project. Unit Tests and Integration Tests The biggest practice we've pushed into custom development work is tests. We're delivering to the customer a set of Unit Tests, and a set of Integration…

Expanding your varchar columns beyond 255 in Clarify is easy with the right tools

We had a support case that came in this week asking if there were issues with expanding a varchar(255) field to a larger value, such as varchar(500). Specifically, this customer was asking about expanding the internal notes field on the notes_log table (table_notes_log.internal). This customer is on an older version of Clarify (version 8 or version 9, IIRC), but they're using a more current version of Microsoft SQL Server (either 2000 or 2005, I forget exactly which one). These versions of MSSQL can handle much larger varchar lengths. I believe MSSQL 2000 can handle up to varchar(8000). I think the 255 limit is left over from the Sybase and Microsoft SQL Server 6.5 days. It should work, I thought. One way to find out: let's try it. My environment for this test is Clarify 9 with MSSQL 2000. Clarify Data…

Configuring logging in the fcSDK without a config file

May 14, 2007 I banged my head against this for a while today, so I figured a post was in order. I was writing a PowerShell script to re-create a customer scenario today, and I needed to enable debug level logging. I was building the config on the fly, such as this: $config = new-object -typename System.Collections.Specialized.NameValueCollection $config.Add("fchoice.connectionstring",$connectionString); $config.Add("fchoice.dbtype",$databaseType); $config.Add("fchoice.disableloginfromfcapp", "false"); $ClarifyApplication = [Fchoice.Foundation.Clarify.ClarifyApplication] if ($ClarifyApplication::IsInitialized -eq $false ){ $ClarifyApplication::initialize($config) > $null; } I created a logging.config file that looks like: Then added to my config: $config.Add("fchoice.logconfigfile", "C:\customers\test\logging.config"); I ran my script, but I didn't get a log file. I went back to the fcSDK docs on logging configuration, and realized what was happening. The LogManager is a singleton, and only gets its LogConfigFilePath set upon initialization. So, it has to be set before its initialized. However, the fcSDK does logging when parsing…

Are your code comments a way to say I’m Sorry for the actual code?

May 11, 2007 There's a great post on perlmonks focused on the topic of comments in code. It fits with a lot of what we've been practicing here at Dovetail lately. We often talk about the benefits of loose coupling, but I never really thought about the coupling that occurs with code and comments. The original post sums it up nicely: One of the high priority goals in programming is the removal/avoidance of codependencies. We avoid using parallel data structures (eg.parallel arrays), because it becomes a nightmare to maintain those parallel arrays in synchronisation as algorithms and projects evolve. One of the key attributes of well designed classes (and other abstractions), is that they are as fully independent of their peers as possible. As decoupled as is possible to achieve.By relying upon both code and comments to describe our algorithms, we are purposely…

Making the app work the way the user expects it to work

May 9, 2007 Every morning I get an email report containing all of the Full Text Searches that our customers performed within our SelfService application, along with how many results each search resulted in, and if there were any errors. Our volume is low, so it's not too much information for me to process on a daily basis. This report allows me to gain some knowledge of who's using the app, what types of things they're searching for, and if they are finding answers to their inquiries. This morning's report showed that a customer searched for just an integer (for our example, we'll say they searched for 12345), and came up with no matches. Knowing the  customer, I knew they were searching for a case number. However, our search is currently setup to perform full text searches on the textual information with a…