REQUEST A DEMO

Author: Kevin Miller

Software Creator

Kevin Miller
Kevin Miller
About:

I am an Austin Texas based software developer flying his geek flag proudly. I work hard creating customer service and support software and web experiences. When I am not creating software or gushing about my toddler. I soak neck deep in Twitter, discover new music at Rdio, host "European" board game meet ups, and read nerdy stuff like Vernor Vinge.


Subscribe to Kevin Miller's RSS feed and never miss a post.

Posts by Kevin Miller:

Scenario Testing With Watin

July 16, 2008   We are starting to use WatiN to automate the testing of a web application. So far it is working pretty well. One of the things I found confusing was handling confirmation alerts like this:       Pop-ups like this need to be handled by Watin. The code for handling this looks like this.   //setup a handler with Watin var confirmDialogHandler = new ConfirmDialogHandler(); browser.DialogWatcher.Add(confirmDialogHandler); //click the button that causes a confirmation pop-up browser.Element("buttonId").ClickNoWait(); //Clickon the ok button of the confirmation window. confirmDialogHandler.WaitUntilExists(); confirmDialogHandler.OKButton.Click(); browser.WaitForComplete(); //You may want to test that the message is correct. //cleanup browser.DialogWatcher.RemoveAll(confirmDialogHandler);   There is a lot of setup and teardown for the simply clicking a button. Using some .Net 3.5 goodness I created an extension method to make this a little more terse.   //usage Browser.OkButtonClickedOnConfirmDialog(ClickOnUnMarkMasterButton); //could use a lambda but this utilty method…

Exposing Knowledge Using Dovetail Seeker

June 13, 2008 Dovetail Seeker is our new search offering for Dovetail CRM. One of the primary design goals from a developer's point of view is to make it easy to integrate with Seeker. I know I am biased, but think we did pretty well. In this post I'll I share my experience integrating Seeker with our public web site exposing search access to Dovetail's Knowledge Base. Why Is This A Good Idea?For a long time we've exposed to customers the ability to browse our knowledge base. Here it is:This is a pretty good solution for Dovetail administrators looking for common solutions to issues that may pop-up. A better solution would be to let users search the knowledge base for the exact issue they are running into and see what pops up. Being able to search for an problematic error message is pretty handy:Raise…

Dovetail Seeker Introduced

June 12, 2008 Stephen Lynn recently talked about our new search product in his post - Dovetail Seeker to the Rescue. Gary and I are working hard to get Seeker shipped to our customers. I wanted to post a follow up to Stephen's post to divulge some more details about Dovetail Seeker.   What is It?   Dovetail Seeker makes the data in your Dovetail CRM searchable just like Google makes the Internet searchable. All you need to do is type in a text box and click on Go.   We have worked very hard to deliver a great search solution for Dovetail CRM and I like to think we succeeded. Here is a summary of what we tried to accomplish with Seeker:   For Users: the ability to easily search for interesting data in Dovetail CRM. For Administrators: the ability to control exactly what data users can search for.…

Cleanly Handling Ctrl-C In Console Applications

June 4, 2008 I find myself writing Console applications now and again. Command line ninjas know that if you want to stop a running console application you can hit Ctrl-C to  exit the application. In our Dovetail Seeker product, which we will be releasing with the next version of Dovetail Agent, when you cancel out of the indexer while it is running it would corrupt the search index. Not a big problem as the search indexes can be easily recreated but that can sometimes take a long time. Besides allowing scenario to exist where the user can corrupt application data is just plain wrong. Luckily it was easy to fill in this hole.   My Google-Fu took me to Curt Nichol's post on Ctrl-C and the .NET console application where he introduces the System.Console.CancelKeyPress event and demonstrates using an anonymous method for handling…

Twitter Agent – Decoupling From Dependencies

May 15, 2008 Lately I have been posting about a Twitter/Dovetail CRM integration we have been working on. Recently I made some architectural changes that I will hopefully get to in a future post. This time around I wanted to talk about how a problem with the jabber-net XMPP library led to a better more testable design. Connection Stability Last post I talked about how we are using XMPP to send and receive direct messages with Twitter and when Twitter's XMPP presence is up it works great. Really well in fact. The main challenge has been keeping the connection to our Jabber server stable. The jabber-net library has an auto-reconnection issue when DNS cannot be resolved it gives up trying to reconnect. I did get some guidance from their Google Group on correcting this issue but unfortunately had already moved to a different…

Spring Alt.Net Pledge Drive

April 23, 2008 I just wanted to take a moment out of our regular blog-cast to tell you that Alt.Net is supported by listeners readers like you. Smart people work really hard volunteering all their free time and energy to put out great open source software for our community. We need to keep these people coding not wasting their time drumming up consulting gigs or looking for jobs. Just wanted to read off a couple names of people that just contributed. Thank you Ray Houston for donating. You must have deep pockets with that sir name. Oh, and I see Chad Myers donated he is always a regular contributor. I see that Anders donated. Thanks Anders for your donation and for C# we all love it. You TOO can make a difference and if you act right now we have a matching pledge…

Moving the Dovetail Twitter Integration To Jabber/XMPP

April 22, 2008 Quickly after creating a Twitter Integration with Dovetail I ran into rate limiting issues using Twitter's API. Twitter currently only allows 70 requests per hour. Here is their guidance... If you are developing an application that requires more frequent requests to the Twitter API, please contact us and we'll see what we can do.  We maintain a white list of known-good screen names who have high-volume API needs.  We also suggest researching Jabber/XMPP if your application needs to deliver a near-realtime experience (for example, a bot that replies to direct messages). I emailed Twitter support asking nicely for higher volume API usage but still haven't gotten a response. Then I realized that if we want to release this Dovetail/Twitter integration to our customers we it need to work within the rate limiting guidelines, so I listened to Twitter's guidance and…

Pairing Your Twitter Account With a Jabber Client

Twitter will send direct messages and updates for friends you follow who have notifications turned on to a device. Cool. Better yet a device can be a mobile phone (SMS) or an Instant Messaging account. The goal of this post is to show how to sending and receive messages to Twitter using a Jabber device. To do this we will be using the excellent IM client Digsby which it turns out has excellent Jabber support. Here is what we will be doing. Creating a Jabber ID in Digsby. Adding the Twitter Jabber ID as a contact for your new Jabber ID. Pair your new Jabber ID with your Twitter account. Testing it out. Creating a Jabber ID To create a Jabber ID using Digsby click on Add IM Account in your preferences. Fill in the Jabber Account form and one…

Creating A Twitter Integration

April 15, 2008 I have been doing some work using Twitter as a notification mechanism for case events taking place in Dovetail CRM. I also wanted to expose an API of sorts driven by Twitter direct messages which would allow support agents to work on cases via Twitter. I created a twitter account for Dovetail and went crazy. To the right is a screen shot of my favorite twitter client showing me being notified of a case created by a customer and accepting it via Twitter. This goal of this post is a brain dump what I have learned so far on my journey into Twitterland. Twitter? - what is this Twitter you speak of Twitter is a micro-blogging service on which you can post short messages called tweets. People usually post what they are up to, thinking about, and sadly what clothing…

Digsby

April 10, 2008 I don't do too much Instant Messaging (IM) lately. Twitter and Campfire have replaced a lot of what I used to use IM for. That said IM is not dead.   I still need to have private conversations with people that are not into Twitter or hanging out around my team's campfire. I have contacts across many different IM formats. I have been using Trillian for years and found that while it works the UI is clunky and their new version Astra is taking forever to get out the door. Along comes Digsby and I am in love.       Digsby is intuitive to configure and supports a plethora of Instant Message formats, Email protocols, and Social Networks.          Only thing I see missing is IRC and Campfire support.   What I really like about Digsby is their customer aware web site. The download and install experience flows…