TortoiseSVN Externals

I know that I’m going to forget this within the next couple of weeks, but it’s worth remembering.  When adding dependencies to your SVN projects, use externals.  They’re a little confusing, but if you use the “drag and drop” method outlined in the documentation, it’s not that bad.

Creating externals via drag and drop

If you already have a working copy of the files or folders you want to include as externals in another working copy, you can simply add those via drag and drop from the windows explorer.

Simply right drag the file or folder from one working copy to where you want those to be included as externals. A context menu appears when you release the mouse button: SVN Add as externals here if you click on that context menu entry, the svn:externals property is automatically added. All you have to do after that is commit the property changes and update to get those externals properly included in your working copy.


Now on GitHub, VsPad!


Yesterday, I published a new GitHub project aimed at facilitating a relatively light-weight “playground” type environment for testing code in Visual Studio.  It is inspired by LINQPad.  Here is the README for the project:

LINQPad is a .NET language playground that quickly and easily allows you to type in or paste code for testing and refining without having to go through the trouble of creating a Visual Studio project.  I highly recommend it and it can save you a lot of time.  It is an excellent piece of software.
However, as I was seriously considering what type of license I should try to ask my company to reimburse me for, I was mentally going through the benefits of each one and realized that I would need the premium version.  Syntax highlighting, autocompletion, outlining, code snippets, NuGet integration, integrated debugger, etc… Sound familiar?  Why not just use Visual Studio, I thought?  The main difference is that there’s a lot more overhead to firing it up.  Nothing can be done about that.  There are also the built-in LINQPad extension methods, such as Dump, which displays a very nice tabular display of the object or primitive that you need to view.
But with those benefits aside, I felt it was a bit much to ask my company to pay for this software when they are already very generously providing an MSDN subscription. Not that the Premium license fee is a huge financial burden, but still… So I went about seeing if there was a way to get some of the convenience of LINQPad back into Visual Studio.
VsPad is what I have come up with so far.  It still has a much larger footprint than LINQPad, but thanks to a clever extension method from _Noctis_ at CodeProject to provide the Dump() functionality, I can get most of the benefits of a premium license.  Not to mention that I have access to any other feature of Visual Studio and whatever other third-party add-ons I have, such as ReSharper.
To use VsPad, clone it or download the solution file and open it up in visual studio.  It requires the Newtonsoft JSON package for displaying the Dump() results, or of course you can just use Console.WriteLine().  I recommend running it in the debugger after setting a breakpoint or start it with Ctrl-F5 (which will run the console program and leave the console window open until a key is pressed, so you can see the results).


VsPad is available on GitHub.

Choose Your Font Wisely


I hadn’t thought much about which font to use when coding before I stumbled across a recent article.

But why not?  I spend pretty much all day somewhere between Visual Studio, Code, Notepad++, and recently the PowerShell ISE.  Maybe the default font is OK, but this got me wondering if there was something that would give me a slight edge.

The article’s recommendation was Monoid, a new font face designed to be “clean, uniform, and precise,” so I went directly to this and tried it out.  It wasn’t long before I found what I feel is a critical issue.  Here is a small snippet from some PowerShell comments I was writing.  See how the m’s bleed together?  I hate that.  Is it and n and then an m?  An r, maybe?  It’s hard to tell.  The font is also just a little too skinny for my liking.


So rather than just going back with the status quo, I did a bit more digging… Found another article.  The top recommendation from this article is Inconsolata.  Again, it didn’t take me long to find something I hated about it:


Yes, that strange line before Get-Choice is supposed to be an equal-sign.  Absolutely unusable.  I’m not sure, even, how that could happen… Maybe I needed to reboot after installing or something, but it doesn’t seem possible that a font could be available with such an issue.  Anyway, I decided to keep looking. 

One font that seems to come up a lot is Consolas, although there is some confusion on whether it can be installed for free or not.  It is the runner-up suggestion at Slant’s list of the best programming fonts.  This is the one that I have settled on for now and have been happy with it after setting it as the default font for all of my IDE’s and text editors.  It does seem to be available for free from here.