Skip to content
Archive of posts filed under the software category.

Olympic Note Passing

A good analogy can often be useful to explain intricate technical details. In an earlier article, “Wrong Fish Food”, I related an analogy that I used to describe a technical issue to a non-technical audience. This article shares an analogy I created for a technical audience, because sometimes even techies need an analogy to grasp an unfamiliar technology.

Continue reading ‘Olympic Note Passing’ »

Share

I have a wide screen. Let me use it.

Dear web-design people,

Please don’t design sites that look like this:

Waste of space!

Waste of space!

Rather, please design sites that look like this:

This uses space more effectively.

This uses space more effectively.

I’m not knocking Herb Sutter, here. I’m pretty sure he’s just using a stock template, but templates that don’t flow to fit the browser width really puzzle me. Is there a good reason for them that I’m just not aware of?

Share

A Script to Find All Aliases for a Cmdlet

I’ve mentioned before that I love PowerShell, but I’m still trying to commit enough Cmdlets and aliases to memory that I can be immediately productive from a Powershell prompt without having to have a browser window open to the Powershell documentation on another monitor. Several of the Cmdlets may also be referenced through one or more aliases, and it’s rather cumbersome to discover what aliases are defined for a given Cmdlet.

I stumbled onto a bit of code that will find all aliases for a given Cmdlet which I put it into a script named Find-Alias. That will let me type the following:

PS C:\>Find-Alias Get-ChildItem

CommandType     Name                     Definition
-----------     ----                     ----------
Alias           dir                      Get-ChildItem
Alias           gci                      Get-ChildItem
Alias           ls                       Get-ChildItem

Here is the script code:

param(
    [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true, ValueFromPipeLineByPropertyName=$true)]
    [string]$Command)

Process
{
  get-alias | where-object {$_.Definition -match $Command}
}
Share

Please Stop Holding Project Status Meetings

(I’ve also posted this same article on Code Project.)

Before I launch into the body of this essay, let me say that I think meetings are wonderful things. I’ll even go so far as to say that people in my field, software development, probably don’t have enough meetings. I have to qualify these opinions, however, by saying that they only apply to the right kinds of meetings. Regularly scheduled project status meetings that involve an entire team are definitely the wrong kind of meeting. They provide very little useful communication, and they kill productivity. There are better ways to accomplish the purpose of status meetings without actually having them.

Continue reading ‘Please Stop Holding Project Status Meetings’ »

Share

Supporting the Ribbon and Menus

(I’ve posted a version of this article on Code Project.)

I’ve finally come back to Ripsaw, in a round-about way. I’ve started working on the client application again as a way to investigate the Windows Ribbon Framework. Originally, I had planned to create a Ribbon implementation for Windows 7 and later, and a menu-based implementation for earlier Windows versions, or for users that preferred a menu over the Ribbon.

Scratch Ribbon Project

After I played around with the API a while, I realized it would be fairly simple to support both the Ribbon and the traditional menu in one executable. In this article I’ll describe a sample app that I put together that shows how to accomplish support for both command-selection methods.

(Download the source code)
(Download the executable)
(Download the Visual C++ 2010 Redistributable)

Continue reading ‘Supporting the Ribbon and Menus’ »

Share

New Contract

I’ve been signed to a new contract with my current client, on a new project working on self-service grocery again. This one should carry me well into next year, but I’m always keeping my eyes open just in case.

Share

Ripsaw COM Interface, First Pass

In this installment of the Ripsaw article series we’ll finally get to write some code. We’ve already gotten a pretty good idea about how we want to implement the core Ripsaw library, so now we’re going to define enough of the COM interface that we can create a simple test script that will eventually be used to exercise the library.

Continue reading ‘Ripsaw COM Interface, First Pass’ »

Share

Refining Ripsaw’s Design

In my last entry in the Ripsaw article series, I discussed some of the design goals for Ripsaw. In this article I’ll flesh out the design a little more and discuss specific implementation possibilities.

To bring you up to speed, Ripsaw is a log-viewing utility for Windows that I initially wrote about six years ago, but never released widely. I’ve decided to rewrite it and discuss each step of the rewrite here.
Continue reading ‘Refining Ripsaw’s Design’ »

Share

Busy Until January

I’ve been assigned to a new project through the end of 2009 so I’m unavailable for now, but if I’m not picked up for an extension I’ll be looking for new projects in 2010. Take a look at my resume and let me know if I might be a good fit for any contract or consulting opportunities in your organization. I’m currently W-2 with a small consulting company, but I’m open to 1099 or corp-to-corp starting next year.

Share

Design Goals for Ripsaw

In this installment of the Ripsaw project series I’ll sketch out some of my design goals for the new version of Ripsaw, and the rationale for those goals.
Continue reading ‘Design Goals for Ripsaw’ »

Share