Scott Hanselman

Exploring the new .NET "dotnet" Command Line Interface (CLI)

December 24, '15 Comments [38] Posted in Open Source
Sponsored By

I've never much liked the whole "dnvm" and "dnu" and "dnx" command line stuff in the new ASP.NET 5 beta bits. There's reasons for each to exist and they were and they have been important steps, both organizationally and as aids to the learning process.

My thinking has always been that when a new person sits down to learn node, python, ruby, golang, whatever, for the most part their experience is something like this. It should be just as easy - or easier - to use .NET.

This is just a psuedocode. Don't sweat it too much.

apt-get install mylang #where mylang is some language/runtime
#write or generate a foo.fb hello world program
mylang foo #compiles and runs foo

I think folks using and learning .NET should have the same experience as with Go or Ruby.

  • Easy To Get - Getting .NET should be super easy on every platform.
    • We are starting to do this with and we'll have the same for .NET Core alone, I'm sure.
  • Easy Hello World - It should be easy to create a basic app and build from there.
    • You can "dotnet new" and get hello world. Perhaps more someday?
  • Easy Compile and Run
    • Just "dotnet run" and it compiles AND executes
  • Real .NET
    • Fast, scalable, native speed when possible, reliable

I've been exploring the (very early but promising) work at that will ship next year sometime.

IMPORTANT NOTE: This toolchain is [today] independent from the DNX-based .NET Core + ASP.NET 5 RC bits. If you are looking for .NET Core + ASP.NET 5 RC bits, you can find instructions on the

Once I installed the "dotnet" cli, I can do this:

>dotnet new
>dotnet restore
>dotnet run

Imagine with me, when you combine this with the free Visual Studio Code editor which runs on Mac, Windows, and Linux, you've got a pretty interesting story. Open Source .NET that runs everywhere, easily.

Here is a longer command line prompt that includes me just typing "dotnet" at the top to get a sense of what's available.

.NET Command Line Interface
Usage: dotnet [common-options] [command] [arguments]

[command] The command to execute
[arguments] Arguments to pass to the command

Common Options (passed before the command):
-v|--verbose Enable verbose output

Common Commands:
new Initialize a basic .NET project
restore Restore dependencies specified in the .NET project
compile Compiles a .NET project
publish Publishes a .NET project for deployment (including the runtime)
run Compiles and immediately executes a .NET project
repl Launch an interactive session (read, eval, print, loop)
pack Creates a NuGet package

C:\Users\Scott\Desktop\fabulous>dotnet new
Created new project in C:\Users\Scott\Desktop\fabulous.

C:\Users\Scott\Desktop\fabulous>dotnet restore
Microsoft .NET Development Utility CoreClr-x64-1.0.0-rc1-16231

Restoring packages for C:\Users\Scott\Desktop\fabulous\project.json
Writing lock file C:\Users\Scott\Desktop\fabulous\project.lock.json
Restore complete, 947ms elapsed

NuGet Config files used:

Feeds used:

C:\Users\Scott\Desktop\fabulous>dotnet run
Hello World!

Note that I ran dotnet restore once before on another projects so that output was not very noisy this time.

Native Compilation of .NET applications

This is cool, but things get REALLY compelling when we consider native compilation. That literally means our EXE becomes a native executable on a platform that doesn't require any external dependencies. No .NET. It just runs and it runs fast.

It's early days, and right now per the repro it's just hello world and a few samples but essentially when you do "dotnet compile" you get this, right, but it requires the .NET Core Runtime and all the supporting libraries. It JITs when it runs like the .NET you know and love.

.NET Core Compiled EXE

But if you "dotnet compile --native" you run it through the .NET Native chain and a larger EXE pops out. But that EXE is singular and native and just runs.

Native compiled .NET Core EXE

Again, early days, but hugely exciting. Here's the high-level engineering plan on GitHub that you can explore.

Related Projects

There are many .NET related projects on GitHub.

Sponsor: Big thanks to Redgate for sponsoring the feed this week! Have you got SQL fingers? Try SQL Prompt and you’ll be able to write, refactor, and reformat SQL effortlessly in SSMS and Visual Studio. Find out more with a 28 day free trial!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

3D Printing is for so much more than just making brightly colored plastic pieces of crap

December 21, '15 Comments [34] Posted in 3D Printing
Sponsored By

Cute, a red Groot...but so what?When you first start learning about 3D Printing you'll usually find yourself looking at a bunch of brightly colored plastic busts. The first 3D printed thing I ever saw was a florescent green Yoda head. First you're like "HOW DID YOU DO THIS?" but quickly you're more like "OK, how many brightly colored plastic pieces of crap do I really need in my life?"

At this point you've likely dismissed 3D Printing as the world of the rich, the insane, or the nerdy, or all three. This is where I was.

I thought a 3D Printer was a $2000 thing, and of course, that's a heck of a lot of money. But I wanted to get into 3D Printing because I'd started to talk to some more advanced folks locally here in Portland and they assured me that it was cheaper than I thought and more useful than I thought. I got a $599 Printrbot Simple Metal from Amazon. You can also get a kit and assemble it yourself for $539 but the assembling is kind of hard work.

Later as I was having so much fun I got a Dremel 3D Printer for $899 also off Amazon and it's been absolutely reliable and super fun. I now consider the Printrbot a great "prosumer" hobbyist printer for folks to tinker with and improve, but the Dremel just prints, and it prints well. I had it printing well within 10 minutes of unboxing it. Both of these printers are great, but the Dremel (in my experience) has required less adjustment.

I've learned three things. They are perhaps obvious to you, but they have been amazing for me and my sons as we learn more about 3D Printing.

Lesson 1 - You can upgrade your 3D Printer

There's a great website called Thingiverse that is filled with models that others have made or remixed. You can join in and just download, or, ideally, create your own models and share. I've used Tinkercad with the kids to create new models.

One of the great jokes in 3D Printing is that people with printers never print anything useful, they just print upgrades to their printers. When you are getting started, this is actually kind of true. I took my PrinterBot and printed a base, a spool holder (figuring out where to safely and reliably hang the spools of plastic filament is a big problem.


The Dremel has a top lid and usually you'll have the filament inside on a special plastic spool holder. However, if you use larger or non-Dremel filaments you'll want a reliable "big spool" solution. There's a "system" at Thingiverse called the "OmniStand" that you can print that will literally replace the internal one. You can also print an OmniStand for the top of the printer (as seen in this picture below) that will let it print off very large spools.


These were small but significant victories. This was a reminder to my sons and I that we could change these devices and make them work how WE wanted, not necessarily how the they were designed.

NOTE: You can also upgrade the Nozzle in your printer. Later I'll talk about "exotic" filaments that can give amazing results but are also more abrasive and can wear out the stock nozzles that come with your printer. I upgraded the nozzle on my Dremel for just $14.99 using this Brass Nozzle from Proto-Pasta and was able to make the swap and get back to printing in about 20 minutes, not counting the feeling of accomplishment.

OK, so you can print things to make your printer work better, cool...what else?

Lesson 2 - There are "exotic" plastic filaments that are game changers

There's a local small business just over the river in Vancouver, Washington called "Proto-Pasta." They a company of just three people that started as a Kickstarter two years ago. They sell "exotic" plastic filaments that have additives and properties that take your prints out of the "bright plastic crap" category and into something more interesting.

They have a filament with added Carbon Fiber that has created some of the smoothest and most amazing prints I've ever made. It doesn't gain strength with this addition, but rather rigidity. They have a Stainless Steel filament that is great for making jewelry or robots or anything that you want to have the heft and feel of steel. They've even got a filament with Iron so your prints can react to magnets.

I've used their High-Temperature filament that starts out clear but you bake it (literally, in your oven) afterwards and it'll shrink slightly and get VERY hard and turn opaque.

More recently I've been trying a filament with added Pine (yes, wood) that not only smells great but looks amazing with wood flecks inside the filament.

I've made dishes, vases, pieces of art for shelves, and geometric shapes for gifts this Christmas. Each one is VERTY different just by changing the filament. It's been more than changing color. These exotics change the texture and weight, and by making small changes in the software you can make them thicker or, in my case, thinner and more translucent.



I hope the folks who get these for Christmas appreciate the work and thought that went into them.

Lesson 3 - You can print parts and then assemble things using bolts, glue, etc.

This one may be obvious, but you don't have to do everything with plastic. My 8 year old and I are slowly making a "T4 Quadcopter" designed by Brendan from New Zealand (a reader of this blog) and this project will require not only lots of printed pieces but assembled pieces. You can super glue, screw, bolt, zip-tie and snap 3D printed parts together. I've been surprised at how string these parts can be when they are combined. This quadcopter will be held together with small metric nuts and bolts and zip-ties as well as some very clever snaps built-in as part of the 3D Printed model.


We are having a blast with this family hobby. We've fixed things around the house, made art, explored material science, thought about geometry, and learned about how software and hardware work together to create something bigger. Are you getting into 3D Printing?

Related Links

Also, please do follow my adventures on Instagram at @shanselman!

Sponsor: Big thanks to Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Signing into Windows 10 with your Face - Using an Xbox One Kinect with Windows Hello

December 18, '15 Comments [17] Posted in Musings | Win10
Sponsored By

The original version of the Kinect camera had an Xbox version and a PC version, and this sucked for a few reasons. Fast forward to the days of Xbox One, and the Kinect v2 for Xbox One has changed a lot. It has a 1080p color camera, IR capabilities that are separate from color, a wider FOV (field of view), and can track 6 skeletons. AND, most importantly, you can use your existing Xbox One Kinect with your PC with an adapter. No need for a second Kinect. The Kinect Adapter for Windows is $50 and took me 5 min to set up. It's basically a power brick and a USB 3 bridge to your PC.

You do need a decent machine to handle the Kinect for Xbox One, so there's a Kinect Configuration Verifier Tool that can quickly tell you if you're up to spec. If you are developing applications, download and install the free SDK 2.0. It's worth getting this even if you aren't, if only to see the cool stuff your Kinect can see about you.

A Kinect can see you in 3D

The Kinect knows too much!

Setting up your Kinect v2 to support Windows Hello on your Windows 10 PC

Here's how you setup Windows Hello. It's pretty awesome because my home computer unlocks and logs in when I sit down and look at it.

  • Update the Registry to get Drivers that aren't available yet. Make a text file "kinectdrivers.reg" and put this text in it. Double-click it to import into your Registry.
Windows Registry Editor Version 5.00
  • If you've already set up your Kinect, refresh it's drivers in the Device Manager.
    1. Open Device Manager (Windows Key + X, then press M)
    2. Expand “Kinect sensor devices”.
    3. Right-click on "WDF KinectSensor Interface 0"
    4. Click "Update Driver Software..."
    5. Click "Search automatically for updated driver software"
    6. Allow it to download and install the new driver
    7. Reboot
  • Set up Windows Hello. Press the Start button and type "hello" or "face sign-in" and you'll get here. You'll want to setup a PIN first.
Windows Hello

Run through the wizard, except look nicer than this.


You're all set! Now when you sit at your computer and see the Lock Screen, it will look for you.

Privacy Note: The camera isn't on and looking all the time. It's just looking when the screen is locked AND the screen saver (power saver) isn't going. Additionally, the Kinect light will turn on showing you that it's on. It's not streaming your face to any remote servers, it's using what it knows about your face as a key to unlock secure storages locally.

Making sure it's you

Then you just hit the space bar or click the mouse and you're in!

It is! Hello!

Windows Hello is also built into the Surface Pro 4 and the SurfaceBook, but you can add this functionality to your PC with a Kinect...OR....

If you don't want a Kinect + Adapter or a new PC, you can buy an eye tracker like the Tobii Eye Controller or the SteelSeries Gaming Eye Tracker. Tobii just added support for Windows 10 with Windows Hello to their controller! So for $139 you could get a nice upgrade to your PC with face recognition, not to mention all the other cool stuff a Tobii can do!

Tobii Eye Tracker adds Windows Hello to your PC

The Tobii $139 device can let you (or a disabled relative) control your computer with just your eyes. There's a wonderful open source tool called OptiKey that helps folks with Motor Neuron disease or ALS control their Windows machines, and I had the developer on my podcast recently. Definitely check it out as a compelling and accurate alternative way to control your PC!

Sponsor: Big thanks to Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Announcing Open Live Writer - An Open Source Fork of Windows Live Writer

December 9, '15 Comments [184] Posted in Open Source
Sponsored By

Open Live Writer is the spiritual successor to Windows Live Writer

Meta enough for you?Today is the day. An independent group of volunteers within Microsoft has successfully open sourced and forked Windows Live Writer. The fork is called Open Live Writer (also known as OLW) and it is part of the .NET Foundation and managed by this group of volunteers. Read the fantastic announcement at the .NET Foundation Blog! Download Open Live Writer now!

Windows Live Writer 2012 was the last version Microsoft released and can still be downloaded from If you're not comfortable using Open Source Software, I recommend you stick with classic WLW.

If you're willing to put up with some bugs, then join us in this brave new world, you can download Open Live Writer from We're calling today's release version 0.5.

Here's some of the added features, the removed features, the stuff that doesn't work, and our plans for the future:

  • REMOVED: Spell Checking. The implementation was super old and used a 3rd party spell checker we didn't have a license to include an open source release. Going forward we will add Spell Check using the built-in spell checker that was added in Windows 8. Open Live Writer on Windows 7 probably won't have spell check.
  • REMOVED: The Blog This API. It was a plugin to Internet Explorer and Firefox and was a mess of old COM stuff.
  • REMOVED: The "Albums" feature. It uploaded photos to OneDrive but depended on a library that was packaged with Windows Live Mail and Live Messenger and we couldn't easily get permission to distribute it in an open source project.
  • ADDING VERY SOON: Google runs the excellent Blogger blog service. We've worked with the Blogger Team within Google on this project, and they've been kind enough to keep an older authentication endpoint running for many months while we work on Open Live Writer. Soon, Google and Blogger will finally shut down this older authentication system. Blogger will use the more modern OAuth 2 and Open Live Writer will be updated to support OAuth 2. Windows Live Writer will never support this new OAuth 2 authentication system, so if you use Blogger, you'll need to use Open Live Writer.
  • BROKEN/KNOWN ISSUES: We are actively working on supporting Plugins. We have an plan in place and we are looking for your feedback on the most popular plugins that you want brought over from the Windows Live Writer ecosystem.

Our roadmap for the future is published here on GitHub.

NOTE: Open Live Writer is NOT a Microsoft product. It is an open source project under the .NET Foundation and is managed and coded by volunteers. Some of the volunteers work for Microsoft and are doing this work in their spare time.

Are you an existing user of Windows Live Writer?

We encourage you to install Open Live Writer and try it out! OLW will run side-by-side with your existing Windows Live Writer installation. Open Live Writer installs VERY quickly and updates itself automatically. Try it out! It's early but it's a start. Please bear with us as we work to improve Open Live Writer.

if you do find bugs, please share your bugs at and be specific about what's not working. And please, be patient. We are doing this as volunteers - we are NOT representing Microsoft. Open Live Writer is no longer a Microsoft project, so while we will do our best to support you, let's all try to support one another!

Are you a developer/designer/writer?

We've got dozens of volunteers and a few dedicated core committers. Your Pull Requests and code ARE appreciated, but please talk to the team and comment on issues before submitting any major Pull Requests (PRs). Community is appreciated and we don't want to reject your hard work, so it's best you talk to the team in a GitHub Issue and get approved for large work items before you spend a lot of time on OLW. We welcome to open source as well! Help us with our docs, as well!

IMPORTANT HISTORICAL NOTE: Much of the code in Open Live Writer is nearly 10 years old. The coding conventions, styles, and idioms are circa .NET 1.0 and .NET 1.1. You may find the code unusual or unfamiliar, so keep that in mind when commenting and discussing the code. Before we start adding a bunch of async and await and new .NET 4.6isms, we want to focus on stability and regular updates. 

Building Open Live Writer and making your own personal copy!

To be clear, you don't need to be a programmer to run OLW. Just head over to and download now. However, if you do want to hack on OLW here's how!

  • Clone the sources: git clone

At this point, you can build and run inside Visual Studio 2015 Community. It's free to download at A solution file for OLW is located at.\src\managed\writer.sln.

  • Alternatively, you can build at the command prompt:
    • Run .\build to compile. The binaries are dropped in .\src\managed\bin\Debug\i386\Writer\
    • Run .\run to launch Writer.

Going Forward

I know it felt like it took a long time to open source Open Live Writer. In fact, my buddy John Gallant found the first email where we started asking questions in April of 2013. There was a lot involved both legally and technically as we were breaking new ground for Microsoft. Consider this. We've successfully open sourced a previously completely proprietary piece of Windows software that shipped as part of Windows Live Essentials. This software was used by millions and contained code as old as a decade or more. Persistence pays off.

This is just the beginning! Big thanks to the team that made this possible. Specifically I want to call out Will Duff, Rob Dolin, and Robert Standefer who have been there from the beginning offering coding, logistical, and legal support. Thanks to Ben Pham for our logo, and Martin Woodward from the .NET Foundation for his support, Azure Storage account, and code signing certificate! I can't thank everyone here, there's a longer list of contributors on our home page!

We are looking forward to hearing from you and perhaps you'll join us in our open source journey.

Sponsor: Big thanks to Infragistics for sponsoring the feed this week. Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

The 2015 Christmas List of Best STEM Toys for your little nerds and nerdettes

December 6, '15 Comments [27] Posted in Musings
Sponsored By

My 8 year old (recently 7, they grow so fast) asked recently, "are we nerds yet?" Being a nerd doesn't have the negative stigma it once did. A nerd is a fan, and everyone should be enthusiastic about something. You might be a gardening nerd or a woodworking nerd. In this house, we are Maker Nerds. We've been doing some 3D Printing lately, and are trying to expand into all kinds of makings.

NOTE: We're gearing up for another year of March Is For Makers coming soon in March of 2016. Now is a great time for you to catch up on March 2015's content!

Here's a Christmas List of things that I've either personally purchased, tried for a time, or borrowed from a friend. These are great toys and products for kids of all genders and people of all ages.

Snap Circuits

Snap Circuits

I love Snap Circuits and have talked about them before on my blog. We quickly outgrew the 30 parts in the Snap Circuits Jr. Even though it has 100 projects, I recommend you get the Snap Circuits SC-300 that has 60 parts and 300 projects, or do what we did and just get the Snap Circuits Extreme SC-750 that has 80+ parts and 750 projects. I like this one because it includes a computer interface (via your microphone jack, so any old computer will work!) as well as a Solar Panel.

Dremel 3D Printer

We still use our Dremel 3D Printer at least two or three times a week. We're printing a quadcopter, making Minecraft Chess sets, and creating gifts for the family.

Minecraft 3D Printed Chess Set

Here's some of my 3D Printing posts so far:

It's been extremely reliable. Some folks complain that the Dremel system and software is proprietary, but it's very easy to use. Additionally, if you really don't like their custom software, companies like Simplify3D have Dremel support built right in. You can also use third party filament like Proto-pasta with great success. We even extended the Dremel with a custom 3D printed spool adapter for Proto-pasta and upgraded nozzle and build plate. It's been fantastically reliable and I recommend the Dremel highly.

littleBits Electronics Gizmos and Gadgets

LittleBits are a more expensive than Snap Circuits, but they operate at a higher level of abstraction. While Snap Circuits will teach you about resistors and current and voltage, litlteBits is more oriented towards System Thinking. The littleBits Electronics Gizmos & Gadgets kit is massive and has kept my kids entertained for the last few weeks. It includes motors, wheels, lights, switches, servos, buzzers even a remote control. In fact, the remote control lets you remote any signal and make any gadget you come up with a wireless one.


LittleBits also has a LEGO compatibility system which, while a little persnickety, has allowed the kids to create remote controlled LEGO cars in minutes. They are very expandable and everything is modular. You can build more with additional kits, or you can get just one sensor or that one motor that you need.

The HP Stream 11.6 Laptop

First, let's be serious. The HP Stream is a $199 laptop with an 11.6" screen. Surprisingly, you can get a 13.3" screen for just $210. But on the real, it's not for office workers. It's not even for you. It's for the kids in your life. It's a good, solid, beginner laptop for kids. 2 gigs of ram, and a very modest 1.6 Ghz processor with just a 1366x768 screen, it runs Windows 10 pretty well, in fact and even includes Office 365 Personal for a year (that's Word, Excel, etc).

HP Stream 11.6" Laptop

I've even heard a parent call the HP Stream the "Minecraft Laptop." My sons took a week-long summer school Minecraft class with a room filled with these little laptops and they did just fine. It has just a 32gig SSD for a hard drive, but for <$20 you can add and drop in a 64gig SD Card and tell Windows 10 to put downloaded apps onto the SD Card directly.

This is a great machine for <$200 that you can feel comfortable giving to an 8 year old or tween and teach them how to code.

Raspberry Pi (any kind!)

Little boys on the Raspberry Pi

Every STEM house should have a Raspberry Pi or six! We've got 4? Or 5? They end up living inside robots, or taped to the garage door, or running SCUMMVM Game Emulators, or powering DIY GameBoys.

I recommend a complete Raspberry Pi Kit when you're just getting started as it guarantees you'll be up and running in minutes. They include the SD Card (acts as a hard drive), a power supply, a case, etc. All you need to provide is a USB Keyboard and Mouse. I ended up getting a cheap Mini USB wired keyboard and cheap USB wired mouse for simplicity.

Raspberry Pis will give you back as much as you can put into them. While you can treat it as a very low-powered browser or basic machine, you should really explore the breadth of projects you can make with a Raspberry Pi. Sure, the kids can learn Scratch or Python, but they can also build Raspberry Pi Robots or run a version of Windows 10 and play with C#. They can add their own electronics, lights, sounds, make radios, and more.

If you want to save money, get just a Raspberry Pi alone for <$40 and use a micro-USB Cell Phone Power Supply, and whatever electronics you have around the house. Once I took a local kid to Goodwill (a thrift store) and we found the power supply, mouse, keyboard, AND LCD Monitor all in the electronics junk pile of the store for $25 total.

OWI Robotic Arm Edge

The OWI Robotic Arm Edge isn't a kit but it's a reasonably priced robotic arm to get kids thinking in terms of command and control and multiple dimensions. OWI also has a cool 3in1 robot RC kit if you prefer driving robots around and more "rebuildability."

OWI Robotic Arm Edge

What educational toys do YOU recommend this holiday season?

FYI: These Amazon links are referral links. When you use them I get a tiny percentage. It adds up to taco money for me and the kids! I appreciate you - and you appreciate me-  when you use these links to buy stuff.

Sponsor: Big thanks to Infragistics for sponsoring the feed this week. Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.