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:

Controlling Application Lifetime In Topshelf

January 20, 2010 One of Topshelf’s best features is the ability to easily host one or more services running side by side. In this post we will create a Topshelf service which will shut down the application. Lets take a look at how it is done.     Coordinating the Service   Let’s create a fake Health Monitoring service which will, sometime in the future, tell Topshelf to shut the application down. The Topshelf hook for controlling the state of all the services it is hosting is a type called IServiceCoordinator. Here is the code for our health monitor. public class HealthMonitoringService : IHealthMonitoringService { private readonly IServiceCoordinator _serviceCoordinator; private readonly ILogger _logger; private Timer _timer; private int _healthCheckCount = 0; public HealthMonitoringService(IServiceCoordinator serviceCoordinator, ILogger logger) { _serviceCoordinator = serviceCoordinator; _logger = logger; } public void Start() { _logger.LogWarn("The Health Monitor is starting up");…

Clock – A Super Simple Carrier Extension

December 16, 2009 Let’s set aside TwitterAgent for a bit and create the simplest extension to Dovetail Carrier possible, a timepiece, a clock, a chronometer of sorts. The intent of this post is to document in one place all the pieces required to create a Carrier Extension.The MarkerFor now we need to mark the assembly with an attribute announcing it as a Carrier extension. [assembly: CarrierExtension]You just need to put this code somewhere but it usually goes in your AssemblyInfo.cs file.The MessageWe first need to create the message we’ll be publishing and consuming. public class ClockMessage { public string Announcement { get; set; } }The PublisherNext up we need to create a service which will publish these messages. public class ClockMessageService : IMessagePublishingService<ClockMessage> { private readonly MessageBusSettings _messageBusSettings; private readonly IEndpointFactory _endpointFactory; private readonly ILogger _logger; private Timer _timer; public ClockMessageService(MessageBusSettings messageBusSettings, IEndpointFactory…

Customizing Dovetail Carrier – Consuming Messages With Rule Sets

December 10, 2009 The next step in our plan to implement a Twitter version of Email Agent using Dovetail Carrier is to consume the direct messages coming from Twitter which we published last time. Message consumers basically…er, well they consume messages. The beauty of the message bus is that we have the ability to subscribe many consumers to the types of messages which we publish. Dovetail Carrier provides a way to compose your message consumers by assembling a set of conditions and actions called RuleSets.This RuleSet we’ll be examining will investigate an incoming tweet, find the case id (731), and log a note the case.A Note before I continue: we will be including the Twitter Agent code with future releases of Dovetail Carrier. Additionally, with each release of Carrier you get a lot more extension code examples as we include the source code…

Customizing Dovetail Carrier – Creating and Publishing Messages

December 7, 2009 Previously we made a plan to go get Twitter direct messages and publish them into the Dovetail Carrier message bus. Thankfully the Twitter API is pretty simple but there are a few things to worry about.We need to listen to Twitter for direct messages.Transforming and publishing the direct message into the message bus.Host your Twitter polling and publishing service with Carrier.First Things FirstThis is not a cookbook post. I don’t describe each step along the way that I took to create a Carrier Twitter extension. That said I hope to provide the Visual Studio solution and code for this example in a future version of Carrier.A general house keeping item. To start I created a new project solution called Carrier.Extension.Twitter and added references to Carrier.Core and Dovetail.Commons.Carrier Extension AttributeFor now we need a way to tell Carrier that your assembly…

Customizing Dovetail Carrier – Making A Plan

December 4, 2009 Dovetail Carrier facilitates the creation of an enterprise message bus where messages can be produced and more importantly consumed. We have included a framework for creating sets of rules that act as consumers of messages coming into the system. I will be doing a series of posts around creating custom extensions for Carrier. The goal of these posts is to educate you and to force me to shine a light on the Carrier customization story in order find the rough edges begging to be smoothed out. Here is what we are going to cover. Making A Plan (you are here) Creating and Publishing Messages Consuming messages with RuleSets Whatever Shall We Do? To make all this a little more bearable. Let’s set the stage by creating a goal to shoot for while learning how to customize Carrier. This will all…

Thank You Mass Transit Team

December 1, 2009 I just wanted to extend a thank you from Dovetail and myself to the Mass Transit project team of Chris Patterson and Dru Sellers for the great framework they put together and the excellent attention and support that they give to the community of users around the project. A few weeks ago we went live at a customer site with a product that uses Mass Transit and so far things are going very well.

Adding a Custom Dialog To Your Wix Installer

November 4, 2009   Recently I made the move to Wix3 for a couple of projects and I have been quite happy. One of the things that has been simplified is adding a a custom step into the installer process.   I’ll leave the heavy lifting of how to insert the custom dialog to Jan Schepens’ post Making a custom setup dialog using WiX 3.0. He tells you how to customize your UI layout and insert a new dialog into the process. Read this post it explains it well. Neil Sleightholm has a similar post Customised UI’s For Wix that is about removing dialogs from the layout.   I’m going to be straight with you. This post is mainly for myself. I want to have this resource six months from now when I need to do the same thing again. Wiring Up Your…

Simplification

November 3, 2009 Just replaced this VB (shudder) code ' Build up additional info string using ' research time as formatted string addnl_info = "Elapsed time = " t_long = research_time If t_long > 86400 Then t_long2 = t_long 86400 Else t_long2 = 0 End If t_long = t_long - t_long2 * 86400 addnl_info = addnl_info & VB6.Format(t_long2, "000") & " " If t_long > 3600 Then t_long2 = t_long 3600 Else t_long2 = 0 End If t_long = t_long - t_long2 * 3600 addnl_info = addnl_info & VB6.Format(t_long2, "00") & ":" If t_long > 60 Then t_long2 = t_long 60 Else t_long2 = 0 End If t_long = t_long - t_long2 * 60 addnl_info = addnl_info & VB6.Format(t_long2, "00") & "." With this VB (shudder) code: addnl_info = "Elapsed time = " & GetElapsedTime(research_time) & "." ... Private Function GetElapsedTime(ByVal researchTimeInSeconds As…

Basic Web Application Loading With JMeter

October 23, 2009 I needed to load test one of our web applications today. Load testing is not something I am too familiar with. A search turned up a list of open source load testing tools. At the top of the list wasApache JMeter which I decided to gave a shot based on the awesomeness of the Apache project. I am not quite blown away but I was able to get a load test up and going in about 15 minutes which makes me very very happy. Here is what I did to create a load tester for our Dovetail Seeker web search service. Get It   Download JMeter Extract it to a directory and run the .\bin\jmeter.bat batch file. You’ll likely need Java installed for this to work. Now weren’t you afraid after seeing Apache that some horrible text file would need to be edited? Thankfully this is…

What Is Under The Hood In Dovetail Mobile?

October 13, 2009 Dovetail Mobile is our first shipping ASP.NET MVC based application. Because this is a newer technology one of our customers asked for some guidance on customizing the application. The following is a distillation of that guidance which I hope might come in handy for future Mobile customers. Customizing Dovetail Mobile (Agent Lite) Dovetail Mobile and its desktop skinned alter ego Agent Lite is a ASP.Net MVC 1.0 application. There are lots of reading and tutorial resources available that will translate directly to understanding how this type of application works and thus how to customize Dovetail Mobile. It is important to understand Model View Controller based web applications to know where the part you wish to change is most likely found. Controllers If you need to customize behavior you will likely need to add or modify controllers and their related views.…