Tuesday, December 28, 2010

Controlling iTunes playlists

Here's an example of how to control iTunes playlists from vb.net:

http://www.codeproject.com/KB/audio-video/iTuneit.aspx?fid=353744&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26#xx0xx

Tuesday, December 21, 2010

Zip Codes

Cool use of Google maps overlaying features to show zipcodes:

http://maps.huge.info/zip.htm

Tuesday, December 14, 2010

Adobe Acrobat Reader

Adobe Acrobat Reader is, for better or worse, an essential piece of software in today's world. You can't live without it, really.

That said, in order to download Acrobat Reader from Adobe's website, you have to submit to an intrusive install of both McAfee somethingorother and Adobe's own download manager.

This is not what I want, nor will I be forced to submit.

Instead, try this link:

ftp://ftp.adobe.com/pub/adobe/reader/

Tuesday, December 7, 2010

RichCopy

I love this utility...

http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx?pr=blog

The fact that multi-threaded file transfer exists for free just makes me happy.

Tuesday, November 30, 2010

Christmas Listing

What are you doing to manage your Christmas listing this year?

Me?

I just make a list, value balance it, and then buy the things. :)

Tuesday, November 23, 2010

On seeing the future

I stare A LOT into my crystal ball, trying to analyze the best course of action. I have found that having two calendars really helps.

One is high-level, and shows the course of the months, and my defined all-day events.

The other is weekly, and shows my commitments by the hour (or half-hour, depending)

Tuesday, November 16, 2010

Cutting your losses

When is the right time to cut your losses?

Generally, when the input exceeds the output over some period of time, right?

What about when it's a person? How then do you measure your staff development?

Lines of code?
Cases processed?
Amount of some-other-trackable number?
(i.e. Ambulance runs)

Tuesday, November 9, 2010

Test with images

To send a test message from SQL Server 2008 Database Mail:
Open the server via Object Explorer, and click through to
Server >> Management >> Database Mail
Right click on Database Mail.


You should see a dialog box like the following:




The email address should already be filled in for you! If everything looks good, click the button, and you should see a pop up like the one below.



Tuesday, November 2, 2010

VHD Expansion

I couldn't use the tool & sequence mentioned in last weeks post.

That was a bummer, on the one hand, as I had to rebuild my favorite VPC image.

On the other hand, it's been cool, because I can now REALLY expand the VHD size.

Tuesday, October 26, 2010

VHD

Ok, so my VHD is a little too small for what I'm trying to do.

My local disk is cheap to use - it's built in, and already paid for. Buying another one is not. This is part of the reason I run VHD's - it's much easier to spend only time to stand up a new server, rather than the outlay for a new server box.

That said, if I can get a bigger VHD/Hard Drive File when I need it, VPC/VHD isn't going to do me much good, is it?

I found this great writeup:

http://www.cosky.com/expanding_a_virtual_pc_vhd

Tuesday, October 19, 2010

Groceries

What if you had a list of groceries you wanted to store in a shopping list style list?

How would you do that?

I would define a simple table, like this:



ItemDefault_Qty
Milk1

So then what?? How do you turn that into SQL? Well, that's easy, right?

First you define the table:

create table groceries
(
Item varchar(50)
, Default_Qty int
);

And then you insert some sample data:

insert into groceries (item, default_qty) values ('Milk', 1);

Tuesday, October 12, 2010

Still rebuilding....

I'm still digging out from my PC rebuild.

Tuesday, October 5, 2010

PC Rebuild

My PC is being rebuilt. This is causing me to go off-schedule a bit. Hopefully I'll be back next week.

Tuesday, September 28, 2010

Loading Error

Having an SSIS package loading error today. Can't figure out why it would get corrupted. Odd.

I'll try to post some screenshots a little later.

Tuesday, September 21, 2010

Five button combination

So, let's say you have a five button combination lock, and you want to generate a list of values to manually crack said combination. How would you do it?

First, assume that for mnemonic reasons, the buttons are labelled with "1/2", "3/4", and so on. This means that for coding purposes, you don't have to account for every value, only the odd-numbered ones.

Also, assume that, as shown in the last SQL statement, you only need non-sequential results. Interestingly, this isn't going to be true in the real world, as a customer may need the ability to set the combination with a duplicate value to be more easily recalled, but it works for this blog post. :)


-- to reduce all the "Inserted 1 row" messages
set nocount on;

declare @i int = 1;
declare @j int = 1;
declare @k int = 1;
declare @g int = 1;
declare @h int = 1;
declare @b table
(
push1 int, push2 int, push3 int, push4 int, push5 int
)

while @g <= 9
begin
while @h <= 9
begin
while @i <= 9
begin
while @j <= 9
begin
while @k <= 9
begin
insert into @b select @g, @h, @i, @j, @k
set @k += 2;
end
set @k = 1;
set @j += 2;
end
set @k = 1;
set @j = 1;
set @i += 2;
end
set @k = 1;
set @j = 1;
set @i = 1 ;
set @h += 2;
end
set @k = 1;
set @j = 1;
set @i = 1;
set @h = 1;
set @g += 2;
end

-- If you want to see everything, you can uncomment this . . .
-- select count(*) as raw_count from @b;

-- To elimate 1-1-1-1-1 and 3-3-3-5-5
select *
from @b
where push1 <> push2
and push2 <> push3
and push3 <> push4
and push4 <> push5;

Tuesday, September 14, 2010

Book List: Task 2.5 - SSIS

So, let's review:

You put in what essentially amounts to userid/password, along with some keywords, and out comes XML. SSIS's webservice component should be able to handle this no issue, right?

Turns out, it should be. Instead, what you actually get is a known issue with the error "the selected web method contains unsupported arguments"

Check out this URL to see what I mean:

http://www.bigresource.com/Tracker/Track-ms_sql-hskONpQF/

So, this bummed me out. I thought "There HAS to be a way to do this!"

In searching for an answer, I also came across the MSN WSDL file, to feed into the SSIS webservice task. This was useful to prove that it wasn't just Amazon's file. You can find it here:

http://soap.search.msn.com/webservices.asmx?wsdl

Tuesday, September 7, 2010

Book List: Task 2.5 - Introduction

Here's what I want to do:
  • Take a string that I suspect is the title of a book, like "Huck Finn".
  • Send this title to Amazon's Web Service, the Product Advertising API, to see if it's valid.
  • Receive a response indicating the validity of this string as a title using number of matches to validate.

First, I want to do this manually. That, in and of itself, is not quick or easy. First, you have to sign up for an amazon account. That was simple, I already had one. My account was also already an associate, so that helped - I had poked around their site a bit already.

Then, you have to go to

https://aws.amazon.com

and get your amazon.com account registered for Product API access.

That done, you then go back to

https://aws-portal.amazon.com

Where you can now access your security credentials, under the heading of "Access Keys". From here, you grab your two string-based access ID's, and save them off someplace. You'll need them again in a minute.

Now, head to http://associates-amazon.s3.amazonaws.com/signed-requests/helper/index.html

This is a web page that will allow you submit requests manually. It's a syntax checker! Woohoo! A button I can push! :)

Now, I put in the information, and it spits back the various information about the URL. This is cool! Copy and paste the URL from the bottom-most text box labelled "Signed URL" into a spare browser window, and POOF! You have a fully formed amazon result right there! Success!

Most of this information is covered in one form or another in the official "Getting Started Guide":

http://s3.amazonaws.com/awsdocs/Associates/2010-06-01/prod-adv-api-gsg-2010-06-01.pdf

So, let's review:

You put in what essentially amounts to userid/password, along with some keywords, and out comes XML. SSIS's webservice component should be able to handle this no issue, right?

Tuesday, August 31, 2010

Book List: Task 2

The next task in this project was to import the text files into a SQL Server 2008 DB.

To do this, I created an SSIS package. I will cover the package creation in another post.

The next step actually bears the point of this series, as attempting the validation of the title/authors has become the crux of the whole thing (as data validation usually is).

The basic problem looks like this:

Column_1 Column_2
Mark Twain Huck Finn
Tom Sawyer Mark Twain
Call Of The Wild Jack London
Arthur Conan Doyle Sherlock Holmes

In the case of Mark Twain and Tom Sawyer, they can both be valid author names - there's no special characters, etc.

So, I went looking for a validation method. My first thought was to use Amazon. That should be pretty simple, right? Just grab an API, plug it in, and away we go!

As it turns out? Not so simple to use Amazon from SSIS.

Tuesday, August 24, 2010

Book List: Task 1

Getting the book list itself was pretty simple, really, even though the physical files were spread over several devices and/or formats.

In order to make my life easier, I decided that a ANSI/ASCII text file would present the fewest problems. The easy way to do this, of course, seemed to be to go into each device/format and email the files to one PC, and then "Save As..." to get them all to the same physical disk.

It was, suprisingly, just that simple.

Tuesday, August 17, 2010

Book List

I have a list of books that I want to import into a DB, so I can sort them, group them, and just generally use them as sample data. This doesn't seem like it should be that big of a deal.

Right?

Okay, well, perhaps the list is a little unscrubbed because I both pulled some entries from the Internets and hand entered some others into this list. Still, it shouldn't be that big of a deal, right?

Ha! You'd like to think so, wouldn't you?

So, the simple version of the project plan looks like this:
  1. Take multiple files, filled with some combination of
  • Author
  • Title
  • Other Spacing / Whitespace
  1. Import said files into a SQL 2008 DB
  2. Validate that authors are really authors, titles are really titles
  3. Run a single select to indicate the distinct list of books in the set
  4. BONUS: Add a column indicating ownership status
  5. BONUS: Add a column indicating "have read" status

Tuesday, August 10, 2010

Blackberry date issues

I have a problem - my BlackBerry, when I sync it, doesn't keep all day events as all day. Instead, it changes them internally to midnight-based.

This is an issue, as once the BB changes them to midnight-based, and they get synced back to Outlook/Exchange, they show up in Outlook as existing only at 12:00AM on the day of the event. Since the bulk of my calendar time isn't spent looking around the overnight hours, but instead is focused on waking hours activities, so it's rather easy to miss activities.

Armed with Outlook macros, I wanted to try and see what was going on under the covers.

I've written a form and a macro to expose all events that have an Outlook start date of midnight.

I ran into a couple of things really quick:
  • Outlook stores its dates in UTC
  • My time zone is -5
  • I have no record of what an event USED to be

Outlook storing dates
Outlook stores its dates in UTC, Universally Troublesome Conversions. Basically, it's a fancy name for not-your-local-time. Yes, I know what it is really.
That said, you're going to have to get the appointment in UTC, and convert it back to your local time zone. Or, if you're a programmer by nature, you do the math in your head, and hardcode the value in during the R&D phase. That said, instead of looking for events at midnight, I'm now looking for them at 04:00.

My time zone
My time zone is -5. I didn't know, when I began, that Outlook was storing things in UTC, so I hadn't recalled what my time zone UTC differential was.

No record
This is actually what's got me stuck. I have no way of knowing, just from programmatically reviewing an events current properties, if it should be an all day event or not. If I did, then I could write a sync program pretty easily. Since I don't, what we're talking about is writing a sync program that would run to "backup" the current Outlook calendar dates, and adjust them before or after the BlackBerry sync runs.

That seems like overkill - after, don't I already have a sync program?

Tuesday, August 3, 2010

Documenting Requirements

While building a requirements document recently, I came across the challenge of building for purpose. I found that in order be as clear as possible for the developer who was the target audience, I was going to have to build the document in such a way that it didn't know anything about future maintenance.

This presented an interesting dilemma, as how could I then use these same requirements for the maintenance work that I know is coming for this work product?

I found there were certain aspects I could boil it down to, and instead of creating a large, formal document, I boiled the whole thing down to an email with three parts.

  • Background - I used this to cover the ground with a general layout of where we were.
  • Current Issue - I used this section to cover how we got here, from there, and what exactly "there" was.
  • Proposed Solution - Lastly, I outlined what I was proposing we do about it.

Tuesday, July 27, 2010

Lead Thoughts

I took my kids out shopping the other day to pick some things up. While we were out, one of the kids started playing one of the demonstration video games in the store. They hadn't played the game before, and weren't really all that concerned about place or position - they just knew they were having fun.

While playing the racing game on the demonstration system, they were driving around what appeared to be a mostly-deserted track. I knew from experience that it wasn't, and I noticed immediately the indicator that showed them in 8th of 8 places. They didn't seem to notice, or care, and it made me reflect.

How do you know when you're leading?

How do you know you're not behind the curve, and just can't see the first place car?

Tuesday, July 20, 2010

On-Call Best Practices

I've studied on-call best practices, and they all seem to come down to:

  1. Communicate. First think of yourself as in sales - you are selling your customers and co-workers that you are the buck stopper, and once you own problems, they WILL get fixed. Do whatever you have to do to cultivate that image, especially if you don't like the on-call portion of your job.
  2. Track what you do. You can bet your customer/co-worker/boss will, if they think you're slipping!
  3. Communicate. Tell people what you did.
  4. Track when you do it. This may seem to be a part of #1, above, but it really isn't. Using simple tools, like the calendar portion of your email client, is a pretty simple, integrated way to get this done.
  5. Communicate. The timeliness of your actions can make or break other peoples solutions, so don't be afraid to talk, talk, talk!
  6. Track how you do it. If you involve someone else, especially on the late night calls, a quick email outlining the steps you took while the issue is still fresh in your mind can (and will!) save you both later.
  7. Communicate. Telling others how to reproduce your success isn't being generous, it's being responsible.
I hope you see the pattern. :)

Tuesday, July 13, 2010

SSIS /dev/null

While working with SSIS 2008 recently, I needed some random data. While I was poking around on the same site, I found this:

http://www.sqlis.com/post/Trash-Destination-Adapter.aspx

From their webpage:
When developing a package it is very useful to have a destination adapter that does nothing but consume rows with no setup requirement. You often want run a package part way through development, or just add a path so you can set a Data Viewer. There are stock tasks that can be used, but with the Trash Destination all columns are treated as selected automatically (usage type of read-only), so the pipeline knows they are required. It is also obvious that this is for development or diagnostic purposes, and is clearly not a part of the functional design of the package.



So, basically it's a /dev/null for SSIS. Cool!

Tuesday, July 6, 2010

SSIS Sample Data

While working with SSIS 2008 recently, I needed some random data. I found this:

http://www.sqlis.com/post/Data-Generator-Source-Adapter.aspx

From their webpage:
It generates random integer (DT_I4) and string (DT_WSTR) data and places them in the pipeline. You specify how many columns of each you would like and for any string columns you pass a fixed length value. You then need to specify how many rows in total you require to be generated.

Tuesday, June 29, 2010

SSMS Duplicated Menu Entries

Have you ever seen this? Where Management Studio is duplicating its menu entries? I had this happen the other day.




I went hunting, and found this MS link to fix it:

https://connect.microsoft.com/VisualStudio/feedback/details/328568/repeating-menu-multiple-menus-on-visual-studio?wa=wsignin1.0

Tuesday, June 22, 2010

Upgrading Desire

I believe from time to time you have to upgrade what you desire. Sometimes this happens naturally - you experience your first kiss, at some point during your teenage years, and all of a sudden girls aren't so icky anymore. :) Firsts are like that - first car, first love, first kiss, first ice cream cone.

What if you want to control that process, instead of being controlled by it? What would that look like? And, if you could deconstruct the process into its pieces, you should be able to loop it back on itself to create an upward spiral.

That said, I believe the process looks like this:

Desire
|
| seeks
|
V
Experience(s)
|
| Creates
|
V
Knowledge
|
| Refines
|
V
Desire

The big caveat to this is that there's a shadow side, as well.

Desire
|
| seeks
|
V
Experience
|
| Doesn't Expect
|
V
Fear
|
| unchallenged becomes
|
V
Death

It's a little morbid, I know. However, how many people have you met who, unable to confront their own internal issues, are wound up tight, bound up in cages of unfulfilled desires?

Tuesday, June 15, 2010

What is curiosity?

What is curiosity? Where does it come from? How do you grow it? And, more importantly, how do you grow it in others?

First, curiosity is defined by dictionary.com as
cu·ri·os·i·ty
/?ky??ri'?s?ti/ [kyoor-ee-os-i-tee] –noun,plural-ties.
1. the desire to learn or know about anything; inquisitiveness.
2. a curious, rare, or novel thing.
3. a strange, curious, or interesting quality.
4. Archaic. carefulness; fastidiousness.


If, perhaps, we first consider where it comes from, we could figure out where it goes. There seems to be cultural awareness that acting curios is the realm of the young. Why is that? Is it associated with youth because only the young have it? I don't think so. I think, instead, that the source is WANTING.

The young and youthful WANT to know things they don't already know. They, quite naturally, and just like the rest of us, really dislike that tone used with a petulant child that keeps asking "Why?" However, the young and youthful are able to ignore the tone and go for the answer. We call this curios-ness.

So the answer would seem to be that, in order to grow this skill in ourselves or others, that we should seek to be more youthful. That seems, to me, to be ignorant of the choice that we have as adults to specialize. The best specialists are those who are constantly questioning, learning, growing, and exploring deeply within one particular topic or subject.

So, can you be a generalist and still desire and WANT knowledge? I believe so, however, that's internally sourced motivation, and not generally the subject of this post.

How do you grow folks desire for knowledge, from the outside in? How to instill the "want to" from the outside? This pre-supposes that they're not coming to you asking for your help to get access to these things.

It takes various forms:
  1. Paying direct attention to what's important to them
  2. Asking them what's important to them
  3. Helping them discover what's important to them

and then, facilitating their getting more access, time, or exposure to that "thing", whatever it is.

Tuesday, June 8, 2010

Testing Disk IO on a new system?

So, you're feelin all snazzy, cause you gots youselfs some new duds, huh? Yousa likin that brand new LUN? Howzabout them new mount points 'n drive letters, there, pal? Yousa likin it lotsa goods? Hows about a leetle test drive?



Best tool out there, in my opinion, to blitzkrieg a new disk? SQL IO SIM.


You can find out more here:

http://msdn.microsoft.com/en-us/library/dd819901.aspx


And here's the download link:

http://support.microsoft.com/kb/231619

Tuesday, June 1, 2010

idera's powershell scripts

idera offers some PowerShell scripts for SQL Server for free. Yes, you have to give up your personal info to their checkout system, and if you can handle that, the link is here:

http://www.idera.com/Products/Free-Tools/PowerShell-scripts/

Tuesday, May 25, 2010

Outlook: clear task due dates

I really like Outlooks 2007's task list features. However, I have some resistance to being told to do things "TODAY, like RIGHT NOW!!! SEE??? I put the task in RED in your task list!! Now you MUST do it!!"

Yeah, that? Not my favorite part.

So, I wrote a macro to adjust the dates in Outlook, so they don't turn red automatically.




Sub BlankDueDates()
On Error Resume Next
Dim ns As NameSpace
Dim fld As Folder
Dim task As TaskItem
Dim items As Outlook.items
Dim rest As Outlook.items
Dim filterSQL As String
Dim i As Integer
i = 0
Set ns = Application.GetNamespace("MAPI")
Set fld = ns.GetDefaultFolder(olFolderTasks)
Set items = fld.items
Set rest = items.Restrict("[Status] <> 'Completed'")
For Each task In rest
If task.DueDate <> "1/1/4501" Then
task.DueDate = "1/1/4501"
task.Save
End If
i = i + 1
Next

For Each task In rest
If task.Importance <> olImportanceNormal Then
task.Importance = olImportanceNormal
task.Save
End If
Next
MsgBox ("Done")

Set ns = Nothing
Set fld = Nothing
Set task = Nothing
Set items = Nothing
Set rest = Nothing

End Sub

Tuesday, May 18, 2010

Outlook: Cleaning up contacts

I love my BlackBerry.

I hate manually cleaning up after the fact when it snargleblatts itself inside Outlook.

Here's a quick-and-dirty macro I wrote to clean up after it snargleblatted my contact list by adding the string "(Home)" and "(Work)" to the names of some of my contacts without asking.




Sub AdjustContactName()
On Error Resume Next
Dim ns As NameSpace
Dim fld As Folder
Dim contact As ContactItem
Dim items As Outlook.items
Dim i As Integer
i = 0
Dim changeflag As Boolean
changeflag = False

Set ns = Application.GetNamespace("MAPI")
Set fld = ns.GetDefaultFolder(olFolderContacts)
Set items = fld.items
For Each contact In items
If InStr(1, contact.FullName, "(Home)") Then
contact.FullName = Replace(contact.FullName, "(Home)", "")
changeflag = True
i = i + 1
End If

If InStr(1, contact.FullName, "(Work)") Then
contact.FullName = Replace(contact.FullName, "(Work)", "")
changeflag = True
i = i + 1
End If

If InStr(1, contact.FileAs, "(Home),") Then
contact.FileAs = Replace(contact.FileAs, "(Home),", "")
changeflag = True
i = i + 1
End If

If InStr(1, contact.FileAs, "(Work),") Then
contact.FileAs = Replace(contact.FileAs, "(Work),", "")
changeflag = True
i = i + 1
End If

If changeflag Then
contact.Save
changeflag = False
End If
Next

MsgBox ("Done." + vbCrLf + "Counted: " + CStr(i))

Set ns = Nothing
Set fld = Nothing
Set contact = Nothing
Set items = Nothing

End Sub

Tuesday, May 11, 2010

Event Horizons

I believe in communicating graphically and out loud whenever possible. This is not always immediately grasped by those who understand communication as "words". It isn't. One very common example of this are event horizons.

An event horizon is defined by the dictionary as:

event horizon. (n.d.). The American Heritage® Dictionary of the English Language, Fourth Edition. Retrieved from Dictionary.com website: http://dictionary.reference.com/browse/event horizon


When I describe it to people, I tell them it's:
An event that, although the timing is potentially unknown or uncontrollable, will change everything around it.


I use this all the time to share with people how key events are going to impact them, and so I want to share it with you.

In its graphical form, they look like the dotted line here:



It's worth noting that event horizons are vastly different from critical paths. In critical paths, what you're communicating is the sequence of events, their importance to the overall plan, their cost, both relative and absolute, and several other things (can you tell I like that method? )

With an event horizon, what you're doing is communicating grahpically to someone the decisions that will be impacted by something outside of their flow. This isn't very well handled by the traditional critical path, which is a series of linked events. Instead, you have to start thinking graphically. For example, if you add color to your critical path, during the planning phase, that is, before color is used to communicate status, then you can begin to get an idea of how you might approximate this.

For me, the big difference is that the event horizon in and of itself, can be an event generator.

For example:



Since you can't control or sometimes even plan for the things/people/places/events/articles/mishaps/synchronicities that spawn event horizons, you can't fit that event *neatly* into a project plan.

Yes, I know you can fit them in, but I'm saying *neatly*, not "at all". There's a big difference. Event Horizons, as I'm using the term today, are the 1% chance game changers - the 100 year floods, so to speak.

My graphical model is designed to quickly communicate to people how significantly changed the world on the other side of that event looks.

Tuesday, May 4, 2010

Patching a VPC: Revisited

So after installing my VPC, and starting it up to update it, I realized it wasn't getting SQL Server updates.

Here's what I did to fix that:

  1. Click Start >> All Programs
  2. Click Windows Update
  3. In the Windows Update window, there's a link that says "Learn More" or "More Info"... click it
  4. This takes you to a Microsoft Page where you get to make a choice. While the verbage is designed to steer you towards picking their reccommended setting, as I understand it, either choice will upgrade your Windows Update to now include SQL Server.
  5. Click Install, and you should be brought back to the Windows Update window, where it should already have begun a scan of your local drive.
You'll know your update type changed if the section of the window "Most recent check for updates" now says "Never" instead of the date/time it held before.

Tuesday, April 27, 2010

SQL 2005 Login Issues

If you see error messages like this one:


Date 1/1/2010 5:54:32 AM
Log SQL Server (Current - 1/1/2010 8:40:00 PM)

Source Logon

Message
Error: 18456, Severity: 14, State: 16.


Followed by something like this:

Date 1/1/2010 5:54:32 AM
Log SQL Server (Current - 1/1/2010 8:40:00 PM)

Source Logon

Message
Login failed for user 'DOMAIN\userid'. [CLIENT: 192.168.1.1]




You might just find you have this issue:

FIX: Error message when you try to use a SQL Server authenticated login to log on to an instance of SQL Server 2005: "Logon error: 18456"

http://support.microsoft.com/kb/925744

Tuesday, April 20, 2010

Lessons learned from WoW: Showing Progress

There's clear progress markers on your way to the bank.

There's also a ready dashboard of your progress.

Think about it.

Let's say you get a small refund from your local office supply store for that latest thingamabob that you just bought. Let's also say you have a chance over your lunch hour at work to run the check to the bank. Let's also say, just for fun, that you're NOT going to drive.

How would you know you're making progress on your way to the bank? What if you haven't been to this branch before (perhaps the job is new)?

You would

  • look for indicators
  • watch for changes in the landscape
  • recognize the landmarks from the path you researched
  • see things changing around you

    All of these are positives. Now, what if it's raining out? Would that change how you measured your progress?

    And how would you tell your wife/sister/lover/brother/kid/boss/coworker that you had made progress, if they called you while you were walking? To someone who isn't familiar with your methods, ways, speed(s), knowledge, how would you communicate clearly how close/far you are to/from the bank?

    I think, if you're like most people, you would try to make the abstract concrete by wrapping your progress in artificial numbers. Meaningless, really, since that branch could be closed for remodeling this week, and your *actual* progress is really much smaller. While we're not getting into scope creep in this entry, how do you communicate your progress?

    In WoW, the presentation format (3-d PC graphics rendered in a 2-d screen) allows for graphical progress representation. How could you do that for your walk to the bank? There are some ways, actually.

    However, what if it were more complex than just a walk to the bank? What if it were showing progress on your Software Development project, across teams, divisions, and software versions? How would you show the same progress?

    Would you treat it as a walk to the bank?

  • Tuesday, April 13, 2010

    Lessons Learned from WoW: Vision

    Warcraft's vision is easy to swallow.

    It's easy to understand, and you can grasp it within minutes of playing for the first time.

    The vision becomes personal or personalized very quickly, and seemingly anyone, IF A PLAYER, can internalize how the goals ("quests") align with the vision.

    I describe the player vision as

    "Get to level 80"

    However, it seems to me the larger corporate vision is best described as

    "Create an immersive environment that encourages social connection and self-accomplishment"

    I find that creating a description that's easily digested by friends and family of my own vision for my own life is equally simple:

    "Raise three model citizens"

    However, the underlying version is much more complex:

    "While successfully raising three model citizens, keep moving forward and evolving"

    Tuesday, April 6, 2010

    What if you KNEW

    What if you KNEW your car was going to break down?

    I don't mean you THINK your car is going downhill. I mean exactly what I said - you KNOW, for ABSOLUTE, for CERTAIN, that your car is going to break down.

    To think of it another way, the "IF" has been handled. The only question now is "When?"

    If you knew this, with confidence, what would you do?

    Would you get a qualified estimate of "when" from someone who could guess better than you?

    How would you prepare?

    Would you look at other cars? Maybe take a test drive or two? Or sixteen?

    Would you call your bank, to see what kind of financing you could get?

    Are you the type who would start noticing everything wrong with your current ride, in order to begin preparing yourself mentally for the expense you're about to be hit with?

    How about maintenance - would you stop maintaining the vehicle, or would you suddenly pay even better attention to the little repairs, hoping to stave off the inevitable day? What about the old saying "Clean it like you're gonna sell it, and you won't want to"?

    Now, what would you do if it was your job that had a shelf life of six months?

    Tuesday, March 30, 2010

    Working Music

    I have found that, while not neccessarily falling in the category of "have to use a computer for", I do REALLY like having music to work with.

    I also rather enjoy having more channels to watch than my local over-the-air broadcast television stations.

    That said, my local cable provider sends some digital music channels my way, and I personally really like either the techno/dance channel, or the classical channel. It depends on the coding involved on which I tune into.

    What's really cool is that, through being a subscriber, I can get either channel over the internets, do research on track lists, etc.

    Tuesday, March 23, 2010

    Hey, ow. :)

    I went and did something crazy.


    I certainly hope to run this again next year - it was a blast. Good course, good friends, and rather nice weather compared to Virginia in early March!


    Hope to see you there!


    The website for next years race is found here

    Tuesday, March 16, 2010

    Travel!

    I am travelling this week, and won't be making a blog post.

    In the meantime, you should go read this.

    Tuesday, March 9, 2010

    How To Build A Virtual PC: The OS - Patch That Up!

    Don't forget to force a patch session for your new VPC!



    To do this, you'll need to configure Windows Update, and then force it to do a manual scan, if it doesn't automatically. In my case, I configured Windows Update for a daily scan, went to bed, and came back the next morning to patches waiting to be installed.

    Hooray for automation! :)

    Tuesday, March 2, 2010

    How To Build A Virtual PC: The OS

    I wound up going with Windows 2008 Server Standard for this build, instead of my intended Windows 7. Let's get to building!

    First up, you have to attach the ISO / DVD Drive to the virtual PC. In my case, I was able to attach it by clicking CD >> Capture ISO Image...

    You'll get prompted for the .iso file you want to use. Find the file, and click Open.

    I have to reset my VPC when I do this. To do that, click Action >> Reset.


    Next comes the setup screens.







    They are rather self-explanatory - for 2008 Server Standard, I accepted the defaults.




    However, because this appears to the OS Wizard as a green fields system, it's going to only allow me to do a "Custom" install.





    Finally, this is what I wanted to see! One thing worth noting - I put the ISO I built from on a USB drive, and loaded it to my hard drive. It kept my thrash down enough on my hard drive that I was able to surf the web, write some in Word, do email, etc. I don't think I would try playing World of Warcraft, though, while it loads. :)



    Almost there....




    Ah-ha! I have a server!

    If you're playing along at home, don't forget to configure and install the available updates from MicroSoft, post-install!

    Tuesday, February 23, 2010

    How To Build A Virtual PC: The VHD - Part 2


    This is the Settings screen you should be seeing from when we left off last time. Click the button marked "Virtual Disk Wizard".



    You should now see the Welcome page. Click Next.



    For our application here, you want to create a new virtual disk, so leave that option checked, and click Next.



    You will now be asked what kind of drive you want to create. Accept the default, "A virtual hard disk", and click Next.



    Now, you have to give a location for the Virtual Hard Disk file itself. As a general rule, I put my VHD files into
    My Home Folder >> My Virtual PCs >> VPC Name



    I also name them the same as the VPC, so I can't misplace them. This also helps if I want to give them to someone else - I don't have to explain as much what the machine is for if the file name tells them. :)



    Once you've given a name to your file, click Save. To save the name, click Next on the VHD Location window.



    For our purposes, we want to go with the Dynamically Expanding disk size, since this is going to be a database-driven application development VPC.



    Next is the VHD size. For this, my copy of VPC defaults to 16GB. It will take less space than that, depending on what the OS install puts out there, but 16GB (should be) more than enough room, even with SQL Server, sample data, and Visual Studio. Click Next to continue.


    Click Finish to close the wizard. When the file has been created on your disk, you should get a success message popup.



    You should now see something that looks like this. You may have to click the radio button and browse to the file location, but that's easy.

    Tuesday, February 16, 2010

    How To Build A Virtual PC: The VHD - Part 1



    The first thing you'll see when you start VPC 2007 is this screen. From here, click "New..." This brings up the Welcome screen.




    From here, click "Next"




    You'll see three options - since this How To is all about making a new Virtual PC quickly and painlessly, we're going to pick "Use default settings to create a virtual machine", and leave the other options alone (for now!).




    Now, you'll need to give your Virtual PC a name. In this case, I've decided to name my machine "Win 7 VS SQL 2008".



    Click Finish to open the settings screen.

    Congratulations! You now have a Virtual PC! Woohoo for you! :)

    Tuesday, February 9, 2010

    How To Build A Virtual PC: The Software

    Really, the only thing I'm going to need to build a new Virtual PC is the Virtual PC software itself. You, too, can get a copy of that software right here:

    http://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402-3199-48A3-AFA2-2DC0B40A73B6&displaylang=en


    Oh, and once you get that downloaded and installed, you might want a copy of an OS. For my example, I'm going with Windows 7. You can get your own copy of that here:

    Microsoft Windows 7 Ultimate


    After that, everything else is an application, and follows the same steps to load as the OS. I love that about the virtual PCs. :)

    Tuesday, February 2, 2010

    How To Build A Virtual PC

    So, I recently had an adventure with Ubuntu 9.04.

    Please don't misunderstand - I liked it, I really did.

    However! What I found out is that there are just a few things that my daily workflow requires. These are largely application based. In no particular order, they are: MS Office, Synctoy, iTunes, and World Of Warcraft. Some of the things I liked about the Ubuntu experiment were: FFMpeg, Thunderbird's native integration, Ease of setup, Security, and the UI.

    Some of the things I missed you can run in an emulation window, or even a virtual PC. However, mostly, I wasn't interested in emulating success, and decided to make the switch back to Windows.

    In switching back, I find that although I CAN, I really don't want to be rebuilding my PC again anytime soon. That said, I do need a place to develop some software.

    I am going to be building a Virtual PC to solve this problem.

    I intend to load it with Windows 7, SQL Server 2008, and Visual Studio.

    And no Ubuntu this time.

    Tuesday, January 26, 2010

    Activating Windows Server from the command line

    Found the following over at
    http://www.petri.co.il/forums/showthread.php?t=39459


    How to Activate 2008 from command line
    Open a command windows

    slmgr.vbs -ipk "product key"

    You should recieve a cscript success message

    now run windows\system32\slui.exe

    now just follow the normal activation instructions.


    Use this to check activation state: slmgr.vbs /dli

    Tuesday, January 5, 2010

    MCTS: SQL Server

    I passed my MCTS exam! 70-433, MCTS: Microsoft SQL Server 2008, Database Development