home comments edit

We painted the master bathroom this weekend and I realized that painting, for me, is a lot like Twizzlers. Stick with me.

I love red licorice. It’s so tasty and chewy and wonderful that I’m sure it’s got to be good for me. Twizzlers, on the other hand… Twizzlers looks like red licorice, it smells like red licorice, but it is not, by any stretch of the imagination, red licorice. It’s waxy and nasty and probably contains petrochemicals of some sort. Twizzlers is like processed cheese food compared to the Brie de Meaux of red licorice.

The problem is that Twizzlers so convincingly resembles red licorice from the outside that I forget how nasty it is. I’ll be craving red licorice, see a Twizzler, grab it, eat it, want to die, and remember how bad it is. I might remember it for like six months or so, until one day my red licorice craving gets the better of me and I see a Twizzler, take a bite, then smack myself repeatedly in the forehead Rain Man style screaming, “STUPID! STUPID! STUPID! Twizzlers is not red licorice!” And another six months will go by before I forget how bad it is again. Rinse and repeat.

I hate painting. Hate it. It’s messy and it takes a long time and I always underestimate the amount of effort it’s going to take to get the job done. My attitude over the course of a painting job changes for the worse, too. I’ll start out sort of cheerful, singing my Happy Working Song, and six hours later I’m ready to kill.

But, like Twizzlers, after about six to nine months, I always forget.

This time, we were looking at the master bathroom, thinking how drab it was. It was painted in the color “Arbor White,” which is a special off-white color that Arbor Custom Homes uses when it builds houses. (If you want touch-up paint, if you go to Home Depot and ask for “Arbor White,” they know. There’s no paint chip or anything, they just know.) The problem is, if you hold real white up to it, you would probably want to call it “Arbor Brown” because it’s not remotely white.

Anyway, we were gazing into the gaping Arbor Brown maw that was our master bathroom, thinking how drab it was, when we decided it needed a coat of paint. It having been probably a year or more since I last painted, I forgot that I vowed not to paint again, so we ran down to the Home Depot and picked up some paint. We ended up with a scheme similar to the following, with “Drowsy Lavender” as the main color. (This isn’t exactly it, but I don’t remember the exact colors. It doesn’t really matter.)

Paint scheme: drowsy lavender, cotton whisper, river valley, and
white.

We started painting on Saturday and we got about halfway done in five hours or so. Some primer and a first coat on the walls and the ceiling. At the end of Saturday I was in Twizzlers-land: “STUPID! STUPID! STUPID! Painting sucks!” Of course, we were sort of committed by then, so we had to finish.

We spent several more hours on Sunday trying desperately to finish but failing miserably. We got the second coat on the walls and the ceiling and we started on the trim.

It was about this time where we really started noticing that the door and the blinds were Arbor White but the ceiling was true white and… hmmm. Screw it. We’re SO NOT painting the door and the blinds.

So we’ve got to finish the trim this week and do some touch-ups. Probably another couple of hours’ worth of work. I wondered how people on Trading Spaces did all of this in two days, but then Jenn reminded me that it’s not just two people - there’s a team of people behind the scenes. Maybe if Laurie showed up it would be better, but probably not.

I swear I’m going to remember this time: Hire someone to paint. Painting sucks. It’s always more work than you anticipate and it makes you grumpy.

Eh. That’ll last, what, six months?

net comments edit

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

When you create a workflow in WF, the actions that it can take are referred to as “Activities.” Think of all the things you might want to do in a workflow:

  • Flow control (while loops, if/else decisions, etc.).
  • Executing code.
  • Handling events.
  • Calling external services.

…and so on. Each of these things is an activity. In a state machine workflow, each state the workflow can be in is an activity. Even workflows proper are activities - they’re “composite activities” that contain other activities. Which activities get used in your workflow will depend on the type of workflow you’re using and your specific needs.

Simple sequential workflow showing various
activities.

This simple sequential workflow shows what it might be like to do division in a workflow. Some inputs come into the workflow and are looked at to see if the user is trying to divide by zero. If so, an exception is thrown; if not, the division is done and the results are returned. Looking at the diagram, each of the “boxes” is an activity:

  • The workflow itself.
  • The if/else branching activity.
  • Each branch inside the if/else branching activity.
  • The exception-throwing activity (“divideByZeroFault”).
  • The code activity that performs the division.

Windows Workflow Foundation comes with a lot of activities, found in the System.Workflow.Activities assembly, but if you don’t like the ones that come with WF, or if you have a special business need, you can create your own custom activities to reuse in your own workflows.

gaming, xbox comments edit

I’ve got the original Xbox 360 (not the Elite) so I don’t have an HDMI port on it. I’d upgrade to the Elite (maybe) except it would bring on the whole DRM problem all over again because I’d be switching consoles. No good.

Mad Catz HDMI conversion kit for Xbox
360Turns out Mad Catz released an HDMI conversion kit for Xbox 360 so you can just buy this adapter and still get the full 1080p goodness you’d get from the Elite.

I saw this bad boy the other day in the Buy More and thought it looked interesting, so I mentioned it to my dad, who is also interested in stuff like this. It’s $90 so it’s a little more expensive than an impulse buy.

Dad promptly went out and bought it and says it is awesome. He says he and my mom both can see a very obvious visual difference from using the VGA cable and that it’s so clear it almost hurts.

Obviously, your mileage may vary, but I think I’m putting this on my list of things to get.

net comments edit

I’ve been working a lot with Windows Workflow Foundation (WF) lately, getting it to integrate with ASP.NET, and I found that while understanding the concept of a workflow was pretty easy, getting over the technical hump of what workflow means with respect to WF and how to use it was pretty difficult.

What I really found while searching for resources was that there’s a lot out there about “how to use XYZ in situation ABC” but there’s nothing that explains to me what XYZ is or what its significance is in relation to the stack.

To that end, I decided to start writing some short posts that just explain what each of the major pieces of WF are and what their significance is. Maybe helpful, maybe not. I’m calling it “Two Minute WF” because I want to give a pretty high-level, easy to understand explanation that you can read through in a couple of minutes, get it, and move on. No major code samples, no in-depth discussions of the bare-metal tech, just a quick hit on what these things are. Maybe if I get through the major components I’ll continue the series by adding more examples. Maybe it’ll get to that “in-depth” level at some point, but I’d wager you can already find that content out on the web if you search.

Available Two Minute WF topics:

net comments edit

In this Two Minute WF, I’ll tell you about the types of workflows you can run in Windows Workflow Foundation.

Out of the box, you get two types of workflow:

  • Sequential workflow
  • State machine workflow

A sequential workflow runs a lot like a flow chart and its design-time experience reflects that. (Yes, I realize that’s technically inaccurate, but from a conceptual perspective, that’s pretty much it.) Usually sequential workflows run in services or other automated processes that don’t require user interaction.

A state machine workflow is exactly what it sounds like - a state machine. You define the set of states the workflow can be in and the valid set of transitions between the states. The actions that occur in each state determine which transition to take to move to the next state. When integrating with ASP.NET, you’ll be looking at state machine workflows.

Both workflow types can be modified (within certain limits) on the fly to be dynamic and both can communicate with external services, listen for events, or evaluate rules to determine their flows. Both use the same set of activities (actions - like “if/else,” “execute code,” etc.) to perform their internal work. (I’ll do a different Two Minute WF post on activities.)

Visual Studio 2008 comes with templates that let you very easily create console applications that host either of these workflow types so you can experiment with them and decide which type is right for your application.