Tuesday, December 27, 2011

Saying Goodbye

I’m closing out of a chapter of my life here, and thought I’d write down some transition thoughts.

1. Clearly cut off – no loose threads
While this is a direct tie to number 2 below, don’t leave anything hanging for someone to pull you back again.

2. Document, document, document
This is as much about them as it is you…. Think of it as pro-active self defense. Do you really want to get called once your gone about something you’d possibly rather not remember?

3. Say good-bye
Saying good-bye can be a powerful way to leave a positive last impression – and people DO remember how you exit.

4. Get references
Always find a way to stay in touch once gone, too.

Tuesday, November 22, 2011

New definition of "Introverted"

Introverted, as it relates to work:
I'm an internally motivated individual. Not giving me goals doesn't mean I don't or won't have any.

Extroverted, as it relates to work:
I'm an externally motivated resource. Public recognition and the stage are what I need. Fail to put me in the spotlight at the monthly team meetings at your own peril.

Tuesday, November 15, 2011

Well done WordPress how-to

I desire more technical documentation that is written as simply and cleanly as this WordPress how-to:


Wow. Nicely done.

Wednesday, November 9, 2011

Weak wifi?


Here's the headline from the article. I can't really add anything to this !

Weak wifi? Use a baking tray

Tuesday, November 8, 2011

Monday, November 7, 2011

Great leadership summary

Great leadership summary in this pastors.com blog article.
  1. Clear expectations.
  2. A listening ear. 
  3. Time.
  4. Space. 

Friday, November 4, 2011

Doomsday is coming, and it's passing gas

OK, this line is awesome!

...there was no known advantage to cyanobacteria developing a metabolism that farted out oxygen...

From this article.

Thursday, November 3, 2011

Wednesday, November 2, 2011

Creative use of iPhone...

I thought this was a cool use of technology. I also wonder why they picked the iPhone. I mean, sure, there's potentially still more of them out there than Android devices (today, anyway), but wouldn't it have been easier to write something like this IN Android?

iPhone hacked into spiPhone to eavesdrop

Tuesday, November 1, 2011

The little engine that could

There's an old saying:

Whether you think you can, or you think you can't, you're right.

This really applies to coding as a form of work and creative outlet.

So very often, the issue is not with the code, but with our *understanding* of the issue. How many times have you seen a work stoppage because the leader didn't take the time to ask questions, and instead relied on their imperfect understanding of the situation/task/issue/patch??

Monday, October 31, 2011

Tuesday, October 25, 2011


I didn't realize until today that WireShark can be downloaded for free. Normally, I've used it or had it used at work, and didn't even think about it. There's been several time recently where I've wanted to peer into the dark, smelly nether regions of my wireless connection(s), and WireShark could have been very useful for that.

As it was, I just bounced my core router and went on. :)

Tuesday, October 18, 2011

Say Whaaa?

Say Whaaa?

Fire my customers?


I love his points in this article. My own experiences lead me to think that some basics get overlooked very often:
  • Cost Control is king. Period. Debt == Death.
  • Knowing your stock levels (meaning product, not market capitalization). If you don't know what you have to sell, how can you market it? This is true with SAAS, too - do you know what you're really selling? Or what it's costing you to add that one last software feature?
  • Control your culture. Preach the gospel of success and learning constantly. Fire as needed to get rid of the naysayers and bad apples - sometimes, they just need to go.

Tuesday, October 11, 2011


I'm a fan of volunteering. I think it's a great way to
  • grow yourself personally
  • grow yourself professionally
  • make contacts 
  • have fun doing things that matter to you

I ran across this link today, and didn't know that Code Project offered a way to volunteer. Cool!


Tuesday, October 4, 2011

9 Ways to Stay Motivated

Great advice from Rick Warren.

1. Put your plans on paper
2. Break big tasks into small steps.
3. Decide where you want to start
4. Establish check points to track your progress
5. Start on the task whether you feel like it or not
6. Remind yourself of the benefits of completing the task.
7. Do a small part right now.
8. Be optimistic
9. Establish an action environment.


Tuesday, September 27, 2011

Interview issues

Okay, I'm thinking that if this is you? You need to get a new perspective more than you need a new employer.

Shares an interviewer, "[One] applicant was doing really well in the interview until she got to the reason she left her other job. She told us everyone was out to get her."

You can find the article over here on Monster. I really wonder about how other people interview. Some seem to have a great handle on their inner monologue, while others seem to really struggle with communicating basic information such as their core competencies, or main enthusiasms.

Tuesday, September 20, 2011

Project Managers? You should . . .

Are you a project manager?

Then you should be taking notes in your own meetings, when no one else is. 'Nuff said.

Tuesday, September 13, 2011

Expression Editor

I needed a way to test the logic of my expressions outside of BIDS. A quick Google search later, and I ran across this. It's worked wonders for me so far, in that it forces me to think through my test before I take the expression back to my package(s).


Tuesday, September 6, 2011

Ten things to do...

Being myself a guy who built a video game in college in C++ and DirectX, I liked this guy's list. It does give a nice overview of the basic "to do" list when starting out:


Tuesday, August 30, 2011

Tuesday, August 23, 2011

Get all the DB's programatically

To get all the DB's programatically on a local instance of SQL Server using SMO.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
namespace ConsoleApplication1
    class Program
        static void Main(string[] args)
            Server s = new Server(".\\INSTANCENAME");
            foreach (Database d in s.Databases)

Points of Interest

Don't forget to add the references via Project >> Add Reference... >> Browse tab

Tuesday, August 16, 2011

C# User Wizard

I need to build a wizard in C# to walk a user through gathering some information.

I went poking around Google, and found this little fellow on Code Project.


Tuesday, August 9, 2011

Backing Up Laptop

I use SQL Server on my laptop. Surprising, I'm sure.

However, in order to backup my local databases, I use a basic file copy method. (SyncToy and xcopy are examples of MicroSoft free/included utilities that do this)

In order to make a copy/backup of the databases I use, I first have to turn off SQL Server. This is because the basic file-copy utilities I use can't copy a file currently in use. A running instance of SQL Server automatically means there are DB files in use.

Therefore, it is necessary to kill all going SQL Server instances. This has a secondary benefit of reducing CPU overhead from the running SQL Server processes, and is useful while running the laptop on battery. Say, while writing blog posts on the couch after hours.

So, you need to kill all open processes.

The easiest way I've found to do this is
  1. Press windows+R to get a "Run" window
  2. Type "cmd" and press enter to get a command shell
    1. Note that you may have to gain an administrator shell to do this...
    2. Since I'm currently running enhanced permissions on my user account, YMMV
  3. Type "NET START" to get the list of all currently running processes
  4. Copy all SQL Server entries from the windowed results
    1. Alternately, you can type something like
    3. This will generate a text file containing all the processes you're currently running.
  5. No matter how you get your process list, you have to:
    1. Get the list into a text file
    2. Edit it so it doesn't contain any processes but SQL Server processes
  6. For each SQL Server process listed, prepend the line with "NET STOP"
You should wind up with text that looks like this:
NET STOP "SQL Server Analysis Services (MSSQLSERVER)"
NET STOP "SQL Server Browser"
NET STOP "SQL Server Reporting Services (MSSQLSERVER)"
NET STOP "SQL Full-text Filter Daemon Launcher (BLANCO)"
NET STOP "SQL Full-text Filter Daemon Launcher (MSSQLSERVER)"
NET STOP "SQL Server VSS Writer"
Personally, I just put this into a file named KillSQL.cmd, and I run it right before I back up my PC.

Don't forget to make a file full of "NET START" commands to bring everything back to life again.

Tuesday, August 2, 2011

Lost my hibernate option

powercfg.exe /hibernate on

That's all it took to bring back Hibernate on my PC from the dead. 

WHY it disappeared as an option is another matter entirely.

Tuesday, July 26, 2011

What's Next?

Part of goal setting is deciding what's next.

This is true for people you lead, as well.

How many times have you seen a sudden drop in motivation or performance, yet when that same person or team is given self-directed time to accomplish things, they'll spend a disproportionate amount of time researching it?

I like to call this the "summer vacation planning method".

Most people put more time into planning their summer vacation than they do into planning
  • Their families
  • Their careers
  • Their next step(s)

As leaders, we have an obligation to those counting on us to
  1. Understand where they are in their goal-reaching progress, and
  2. Help them identify the "next step" when they've reached a certain point in their progress.

I have found that 40%-50% completed is about where attention starts to fall off, and the next goal needs to be defined. This same goal will need to be sharpened, refined, and (potentially even) publicized around 85%-90% complete.

Tuesday, July 19, 2011

Tuesday, July 12, 2011

Indexing article on sqlservercentral

Indexes, Indexes, Indexes

He's got some good points. Interesting in that I'm wondering if you could schedule the pull down of the stats to a development laptop, for local analysis, and what that would do to the performance of the thing if you accidentally went some time period without downloading the stats. Think sine wave - one day, lots and lots of collected stats, and the next day, nothing.

Shouldn't have any impact, but could be interesting to test.


Tuesday, July 5, 2011

Go Army!

Another good resource for finding "Out Of Office" opportunities in the DC region is the Army Corps Of Engineers, Baltimore District:


Tuesday, June 28, 2011

Savage River Forest

If you live anywhere close to DC, and enjoy camping, you should check out this area of Western Maryland & Eastern West Virginia:


Tuesday, June 21, 2011

Calculating your own taxes

You ever tried to calculate your own Federal taxes? For being W2?

Everything you need to know is probably in this document... Publication 15


Tuesday, June 14, 2011

MSDN on c# binding

A whole boatload of C# binding information can be found over here, at MSDN:


Tuesday, June 7, 2011

SQL Server 2008 R2 Query Execution Plan icons

Okay, this page is cool. All the SQL Server 2008 R2 Query Execution Plan icons on one page, with links back  to MSDN pages about each icon/topic.


Tuesday, May 24, 2011

MS-PL License

I recently found this new license type for writing software. As I read it, nothing says you can't just make your source code "email me for the source."


While I don't know that I want 10,000 hits requesting my source code for any of my projects, it could be a good way to do things. Alternately, if you have an email auto-responder through your web host, you could just setup one of those to auto-respond to any requests with a zip file of the code.

Tuesday, May 10, 2011

Tuesday, May 3, 2011

Tuesday, April 26, 2011

Changing what browser Visual Studio 2010 uses

You know what I love about the Internets? You can find a fix for daggone near anything that ails you.

For example, from the developer's website:

World of VS Default Browser Switcher

Currently it is a bit of a pain (as in “too many clicks” and sometimes non-visible options) to change the browser used by VS when you’re developing and testing your website.


Tuesday, April 19, 2011

Tuesday, April 12, 2011

Making an org chart from Exchange, part 4

So, I want to build a simple report to draw out my org chart from Outlook / Exchange / Active Directory. To do that, I outlined a pretty straightforward data table:

CREATE TABLE [dbo].[reportsto](
[ID] [varchar](1000) NULL,
[pname] [varchar](1000) NULL,
[pmanager] [varchar](1000) NULL,
[paddress] [varchar](1000) NULL,
[INSERTED] [datetime] NULL

I then wrote a script to draw down various entities from Active Directory to my local SQL Server. You can simulate what data I got with the following inserts:

insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 1', '123 Main Street', '',null);
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 2', '123 Main Street', 'test person 1',(select pid from dbo.reportsto where pname = 'test person 1'));
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 3', '123 Main Street', 'test person 1',(select pid from dbo.reportsto where pname = 'test person 1'));
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 4', '123 Main Street', 'test person 2',(select pid from dbo.reportsto where pname = 'test person 2'));
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 5', '123 Main Street', 'test person 2',(select pid from dbo.reportsto where pname = 'test person 2'));
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 6', '123 Main Street', 'test person 2',(select pid from dbo.reportsto where pname = 'test person 2'));
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 7', '123 Main Street', 'test person 2',(select pid from dbo.reportsto where pname = 'test person 2'));
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 8', '123 Main Street', 'test person 2',(select pid from dbo.reportsto where pname = 'test person 2'));
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 9', '123 Main Street', 'test person 2',(select pid from dbo.reportsto where pname = 'test person 2'));
insert into dbo.reportsto(pname,paddress,pmanager,pmid) values ('test person 10', '123 Main Street', 'test person 3',(select pid from dbo.reportsto where pname = 'test person 3'));

Tuesday, April 5, 2011

Making an org chart from Exchange, part 3

Creating a new SQL Server reporting services DB - writing your first report will come quick enough after you setup the server.

Creating your first report in Reporting Services can be rather... interesting... if you haven't done the the necessary config first. To get Reporting Services up and running, you have to make sure you have run the configuration tool.

Note that I'm assuming you've already run the SQL Server setup program and have IIS installed.

I'm running SQL Server 2008 R2, so it's Start >> All Programs >> SQL Server 2008 R2 >> Configuration Tools >> Reporting Services Configuration Manager

You'll get the popup window labelled "Reporting Services Configuration Connection"... quite the mouthful, and just put in your server \ instance name, and click ok.

You can click through the various tabs on the left. I found that during my setup, the reporting database wasn't installed for whatever reason. I went to the Database tab, and clicked the "Change Database" button. I was able to create a new reporting server database from the wizard, and then that was it.

Tuesday, March 29, 2011

Split a PDF

From the developers website:

pdfsam basic:

A simple tool designed to split and merge pdf files. With it’s simple and intuitive interface you can:

  • split your pdf documents (into chapters, single pages, etc.).
  • merge many pdf documents or subsections of them.
  • extract sections of your document into a single pdf document.
  • mix alternate pages taken from two pdf documents in straight or reverse order into a single document.
  • rotate pages of the selected pdf documents.
  • visually reorder pages of a selected pdf document.
  • visually compose a document dragging pages from selected pdf documents.
  • save and load your environment to automatize your recurrent jobs.
  • manage pdfsam settings and set an environment to load at start up.

Find it here:

Tuesday, March 22, 2011

Making an org chart from Exchange, part 2.5

Here's a link to one of the samples I'm using while building this:


In the author's words:
Dumping the Global Address List (GAL) to Excel provides an list in a form that can be easily searched or summarized. I recently had a phone call that was garbled and I caught only a fragment of his mobile phone number. I was able to quickly find this person's details by searching the Excel list. Can also be used to find multiple addresses in the GAL or to filter the GAL by location.

Here's another:

And another:

And from the OutlookCode.com, above, links here:

Tuesday, March 15, 2011

Making an org chart from Exchange, part 2

So what I want to do is, like I said before, is build a report that displays an org chart for my organization.

In order to do this, I'm think I'm going to need to
  • Figure out SSRS - I've done lots of Crystal Report writing in a previous life, so this should be more a matter of learning the UI
  • Find the data lurking somewhere inside of Outlook
  • Write a VBScript extraction routine inside of Outlook to push the data to a database source somewhere
  • Write the report, being cognizant of the org structure of my organization, and how the data is grouped

Tuesday, March 1, 2011

PowerShell math shortcut

So I'm using PowerShell as a calculator - I mean, why not, right? I've got the window open, and it's great for quick "What's the size of the LUN again?" sorts of questions. It's also really good at telling me the cost of things on a monthly basis.

For example, if you're spending $10/week on coffee, and you want to know how to figure that as a monthly cost, you'd multiply 10*4.3 in the PowerShell prompt for an answer of 43.

However, what if you want to find out how much it would be if you spent $12.50 a week? Rather than type in the full equation of 12.50*4.3, you might think you could use the last-tag-in command, or $$.

But instead, if you put $$*12.5 in the prompt, and hit enter, PowerShell returns that string 12.5 times, or

This appears because PowerShell is treating the last tag as typeless, with a default value of text.

Tuesday, February 22, 2011

Powershell Overview

I ran across this article the other day about PowerShell, and thought it was a very good 50,000 foot view of "learn these things in PowerShell"

10 fundamental concepts for PowerShell scripting

or here:

And here's a cool trick:


Tuesday, February 15, 2011

Enabling the wireless network in Windows Server 2008

Since I had to re-do this recently, I thought I'd write a blog about enabling the wireless network in Windows Server 2008. Turns out? Somebody's already written a rather good one:


Tuesday, February 8, 2011


Okay, so when I first heard about DownThemAll, pulling tons of files off the Internet WASN'T what first came to mind.

However, I've been using this to pull files en masse from various tech websites, and I have to say I like it.

Tuesday, February 1, 2011

Life with Word

Life with Word can be fun. However, in Word 2007, MS introduced the automatic paragraph line behavior. This does not support how I use Word. I finally had enough, and went hunting for help - I found this article on the MS support site that tells you how to fix the issue:


Tuesday, January 25, 2011

Smartphone Cases

I have to tell you, I'm a fan of SmartPhones, and the one-device-to-rule-them-all idea. That said, I don't want to take unneccessary chances with my data or device.

To that end, I do two things with each smartphone when I get it:

1) I password it

2) I buy a snapping holster from Seidio

Tuesday, January 18, 2011

Oh bother

Every so often I change my network password, and get this error:

The local device name is already in use

Here's more info:


Tuesday, January 11, 2011

"0x80070002" or "0x80070003" error code

I got the errors above while working on a PC that wouldn't run Windows Update, and found this:


I also found that no matter how aggressive the repair wizard or I got, the problem wouldn't go away, and I wound up having to reinstall Windows.

Tuesday, January 4, 2011

Happy New Year!

Happy 2011!