GeekSpeak, dotnet comments edit

Typemock
ExpertI am fortunate enough to have been named a Typemock Expert.

What does that mean? In their words…

Typemock Experts are independent developers, architects, trainers, and other professionals who provide a vital link between Typemock and the developers’ community. They write books, articles or blogs on a wide range of topics, from pragmatic unit testing to development methodologies.

Thanks, Typemock! (And if you’re not in the Typemock community yet, what are you waiting for?)

It was a three-day weekend for Jenn and I this past Memorial Day weekend, so let’s see how we fared…

Saturday we ran around and did errands. The big Saturday errand was that I moved off the corporate cell phone plan and onto a family plan with Jenn on Verizon Wireless. I was tired of carrying a phone and a PDA (and an iPod, and all the other junk in my pockets) so I got a BlackBerry Curve to at least consolidate the phone and PDA into one device. So far I like it quite a bit, but it’s definitely taking some getting used to, and setting it up for personal use is not nearly documented so well as setting it up for enterprise use. When I get all of the kinks worked out, I’ll blog my recommendations.

Sunday I met up with a friend of mine who I hadn’t seen in probably five years. He was down from Seattle with his family and it was great to catch up. There was a bit of a scheduling problem getting on the same page as to when we were meeting up, resulting in Jenn and I stuck in a holding pattern at home, trying to connect but not really able to start anything or go anywhere lest we miss the connection. Hopefully we’ll be able to iron that out a little better for next time. He did come bearing gifts, though: autographed Bruce Campbell books. Can’t beat that!

Monday morning we did all the stuff around the house that we didn’t fit in on Sunday and then joined up with some of our friends for dinner, gaming, and a movie at their place. We played some ping pong (which included in-play hazards in the form of their cat attacking the ball) and Ticket to Ride Europe, then watched National Treasure 2. Not really sure if NT2 was good or not because there was a lot going on… and for the first third or so of the movie the aspect ratio on the TV was messed up and gave me a headache so I couldn’t really watch. Regardless, good times.

This morning I am ridiculously exhausted. I slept like crap and I’m way behind on my current project due to some unforeseen meetings and things. Muscling through, but I gotta say I could really use a nap.

net comments edit

In this Two Minute WF, we’ll talk about Core Services.

When the WorkflowRuntime is hosting your WorkflowInstance, there are certain things going on to help manage the environment the WorkflowInstance is running in. These runtime-level, globally accessible services are the Core Services. There are four Core Services:

  • Scheduler: This is responsible for managing the threads used to run workflow instances. The default scheduler service implementation used if you don’t specify otherwise is the DefaultWorkflowSchedulerService. If you’re hosting your workflows in an environment with specific threading requirements (like within an ASP.NET application), you’ll need to change the scheduler.
  • Persistence: This is responsible for saving and restoring workflow instance state. For example, you may have a long-running workflow (maybe minutes, maybe days) and you don’t want it in memory that whole time - this service saves the state when the workflow instance becomes idle and re-hydrates the instance when it’s time to resume. There is no default implementation of persistence, but a SqlWorkflowPersistenceService is available out-of-the-box.
  • Tracking: This service helps in monitoring workflow instance progress. Very helpful in troubleshooting and tracing workflow instances for auditing and management. There is no default implementation of tracking, but a SqlTrackingService is available.
  • Commit Work Batch: This service manages the transactions around batched work. For example, if you have several activities in a workflow that need to succeed or fail as an atom, they’ll participate in a work batch. If you don’t specify otherwise, the DefaultWorkflowCommitWorkBatchService will be used.

You can only have one of each of these services (except tracking - you can have multiple tracking services) per runtime.

The beauty of the way WF was written is that you can create your own custom implementations of any of these services and instruct the WorkflowRuntime to use them. For example, if you wanted to create a persistence service that stores all of your workflow states in XML files in the filesystem, you could do that. Or if you had a special way you wanted to track workflow instance events, like in a proprietary logging system, you could implement your own tracking service.

I don’t religiously analyze my blog stats, but every time I do go check out who’s looking at what, I’m always interested in the search terms that bring people to my site.

The weird thing is, far and away, the most used search term/phrase bringing people in to my site is:

you don’t have to be rich to be my girl

Like, lyrics from the Prince song, “Kiss.” It takes people to this article I wrote like six years ago about how I picked up a Tom Jones CD that had his cover version of “Kiss” on it. I get so much traffic to it that it’s always in the top five articles hit on my site.

In fact, if you Google that phrase, I’m currently the #1 result:

Google results for "you don't have to be rich to be my
girl"

What are the crazy search terms that bring people to your site?