Updates for Twisten - Lists and Images

Twisten got an update! A few bug fixes, and new support for reading a list and showing images inline.

author: Nathan Allen-Wagner | posted @ Friday, August 28, 2015 12:01 PM | Feedback (0)

VS Code IDE with Passphrased Git SSH Keys

I'm just kicking the tires with Visual Studio Code. So far, it seems like a nice little editor! One thing that tripped me up a bit was the Git integration... permission denied errors due to ssh keys that use passphrases. Here's how I solved it...

author: Nathan Allen-Wagner | posted @ Monday, August 24, 2015 5:50 PM | Feedback (4)

Code Coverage via OpenCover and ReportGenerator

Visual Studio has code coverage built in, but only if you run VS Premium or better. Sometimes this isn't available, which is what sent me looking for a free alternative. OpenCover fits this goal perfectly. The output isn't as pretty as VS, but no worries. ReportGenerator has integrations with the OpenCover output and creates some really nice reports. Below is the output and the simple steps that worked for me.

author: Nathan Allen-Wagner | posted @ Thursday, August 15, 2013 4:49 PM | Feedback (6)

Healthy Debate on “Software Craftsmanship” and Elitism

Can we find a way to move things forward without thumping our own chest and putting others down? Can we improve ourselves and find pride in our work without being too inwardly focused? Are we able to “Git’r done” with some “low quality code” if that’s what the client really needs? I think so, but it takes awareness of the issues and the world around us. It requires that we pull out heads out of the code sand to see what’s appropriate for the task at hand.

author: Nathan Allen-Wagner | posted @ Monday, February 11, 2013 8:00 AM | Feedback (1)

Going Offline-Online with VS Missed a File

I really appreciate Visual Studio’s “Go Offline” with TFS feature. Saves me a bunch of headache when I’m disconnected. And for the most part it works great.

Yesterday, I discovered that somehow, the “Go Online” had not picked up all my changes. Why?

It seems that the “Go Online” logic traverses the solution tree to find files that it should consider. That’s all well and good, but I have some files that are conditionally included in the solution. VS always seems to treat these as not part of the solution. But they are in source control and they are part of the compilation.

I edited these files while offline and then, when going online, they were skipped. Now TFS had a different copy that on my local machine. Had I not seen some strange behavior, I probably never would have caught it.

My mistake, and yes, I see that this is how the feature works, but I still stumbled on this one.


author: Nathan Allen-Wagner | posted @ Thursday, December 13, 2012 8:07 PM | Feedback (1)

Standing to Code

Today I tried a Standing Desk for the day. I've heard about this a number of times, mostly on Twitter. The idea's not new, but it is gaining attention due to the health concerns around so much sitting.

I started standing at 7am. It's currently 3pm, and I'm still standing here. So far so good. My muscles are a little tired, but my mind feels more awake than most other days!

Another thing I'm noticing is that it's a lot easier to switch gears. If I need to step over for a cup of coffee, I'm already standing. No big deal. And getting back to coding is just as easy. Just walk up and get to it. No need to try and find that comfortable position in the chair, scoot it up to the desk, etc.

As for my desk… Well, it's the same desk I usually use… plus some boxes and a board to elevate my laptop to standing height.

Cost = $0. Adding years to my life and energy to my day… priceless.

(I'll report back soon to let you know how things are going after a week of standing)


author: Nathan Allen-Wagner | posted @ Tuesday, March 20, 2012 3:12 PM | Feedback (3)

SqlTransaction Ain't Always Transactional (WAT!?!)

True or False: "SQL run using a SqlTransaction is part of a SQL Server Transaction and can be rolled back." The answer is of course "True", right? That's what I thought too. This scenario showed me some exceptions to this rule.

author: Nathan Allen-Wagner | posted @ Sunday, March 04, 2012 10:03 PM | Feedback (27)

Updated version of Monitored Undo Framework released

Today I released an updated version of the Monitored Undo Framework.

Changes include:

  1. A new parameter on the DefaultChangeFactory's methods for specifying the "description of the change". This can be helpful in cases where the UI shows a list of the undo / redo changes.
  2. A new WPF sample that shows, in a simpler codebase, how to use the framework.
  3. Updated build script that compiles all solutions, run the tests, and package the NuGet package.

These changes are also available via NuGet.


author: Nathan Allen-Wagner | posted @ Tuesday, January 31, 2012 10:24 AM | Feedback (0)

"tfpt unshelve /migrate" Doesn't Account for Renames

A quick note about Team Foundation Power Tools (TFPT)'s "Unshelve" command…

tfpt unshelve has a /MIGRATE switch that will allow unshelving changes into a different branch / location than the one where they were originally shelved. I won't re-iterate the many articles describing how to use this command.

One issue that I ran into is unshelving a set of changes into a branch where some of the shelved files had been renamed / moved. It seems that the /migrate switch doesn't go back into TFS version history to locate the renames. Instead, it simply pulls out the changes and re-applies them to the new location.

For Example:

Let's say that I start with Branch A. One user (John Doe) get's latest and starts making changes.

Branch A

Then… a different user (Jane Smith) renames File1.txt and checks that in.

Branch A

Then… (for some reason), they need to move John's changes from Branch A to another branch. (Let's pretend that Branch A is the main branch, but the changes are too large for this iteration, so they want to move them to a separate branch for a future release.) So they create Branch B, which looks like this:

Branch B

Then… John shelves his changes and they attempt to use tfpt unshelve /migrate to move the changes to Branch B.

But a strange thing happens. They end up with this:

Branch B

Huh? How'd that happen?

Someone who knows version control well could probably explain why, and suggest that this is obvious. But it wasn't to me, and as a result, some of the changes in the shelveset did not make it into the target solution.

How I should have done it…

If I was going to do this again, I think I'd:

  1. Get the source and the target branches to the same version. (Merge changes as needed between the branches.)
  2. In the source branch, get latest version so that the local workspace has the latest version.
    1. This should propagate any pending renames / moves that were made in that source branch, or it's parent branches.
  3. Shelve the changes that should be moved.
  4. In the target branch, get latest version.
  5. Run tfpt unshelve /migrate …



author: Nathan Allen-Wagner | posted @ Thursday, January 26, 2012 4:14 PM | Feedback (0)

A Visual Studio Extesion to make Scrolling Better!

Hi All,

A friend of mine (John Nastase) saw a tweet or two of mine complaining about scrolling in Visual Studio.

What did he do? He wrote a VS extension to make it happen!!!

Here's the extension that he just published in the VS extension gallery.

It basically adds a "cursor buffer" space to the top and bottom of the window so that as arrow down the page, the page starts to scrolling before the cursor hits the VERY BOTTOM OF THE PAGE. Instead, it starts scrolling a little earlier so that you can see what's coming. This saves you from scrolling too far and then having to arrow back up to where you want to be.



author: Nathan Allen-Wagner | posted @ Monday, January 23, 2012 10:37 PM | Feedback (0)