Chris Pietschmann

husband, father, hacker, entrepreneur, futurist, innovator, autodidact


Cheap PC 2009 - Custom Built PC under $500 that includes Windows Vista Home Premium

Two years ago I posted "Cheap PC - Build a Vista Premium Ready system for under $500 including the OS". I can't believe that was two years ago already! Anyway, the original premise of the post was to point out that you could build a "cheap" PC for under $500 that included and could run Windows Vista with "Aero" Glass Enabled. After I wrote that post I decided that I would try to remember to write a post like that every year to serve two purposes: 1) chronicle wh... [More]

Live Framework: Connecting to the Local Live Operating Environment (LOE) for Offline Applications

One of the things the Live Framework has to offer is a Local Live Operating Environment you can connect to so that you can Offline Enable your Live Framework Enabled Desktop Applications. I found the process of getting it to work a little tricky (especially since I was running Win7 Beta; I'll explain down further) so I've decided to write up a summary of my experience to help anyone else interested. This was written using the Live Framework CTP. Connecting to the Live Operating Environment Th... [More]

I've jumped on the "Anti-IE6" band wagon

There have been a lot of talk online for a while now about the much desired demise of Internet Explorer 6, and other out dated web browsers. I don't think I've used IE6 since the first Beta of IE7, and I haven't used Firefox 2.0 since Firefox 3.0 was released. However, I can see that there are still a few users that visit this blog of whom are still using some of these OLD versions of these web browsers. So, I am joining the effort to "Push up the web" by including the scri... [More]

.NET Framework: Communicate through NAT Router via UPnP (Universal Plug and Play)

I've been working on an application recently that needs to be able to communicate through a router/firewall using TCP. I've read/heard a bit of information about NAT Routers and UPnP; the technoligies used in almost every router sold commercially. So, I knew that you could use the Universal Plug and Play (UPnP) features of the NAT Router to automatically open up the firewall via Port Forwarding to allow other computers on the Internet to connect directly to the one your application is running on... [More]

Using LINQ to SQL with SQL Server Compact Edition

I'm currently building a desktop application that needs to store a bunch of data on the users computer, so I've decided to use SQL Server Compact 3.5 for this. There's only one problem, Visual Studio 2008 doesn't support using LINQ to SQL with SQL Server Compact. However, the .NET Framework does and there's a work around to get it working in VS'08 that I'll describe below. In case you aren't aware of what SQL Server Compact 3.5 is, here's the short description that Microsoft gives on their webs... [More]

C#: Flash Window in Taskbar via Win32 FlashWindowEx

The Windows API (Win32) has the FlashWindowEx method within the User32 library; this method allows you (the developer) to Flash a Window, signifying to the user that some major event occurred within the application that requires their attention. The most common use of this is to flash the window until the user returns focus to the application. However, you can also flash the window a specified number of times, or just keep flashing it until you decide when to stop. The use of the FlashWindowEx m... [More]

VEToolkit - Virtual Earth Toolkit v6.2.012509.1053 Released!

This is the first official release of the Virtual Earth Toolkit. The toolkit is by no means complete, but this is a "stable" collection of the Controls, Extenders and Methods that have been implemented thus far. Project: Download the Release: What is the Virtual Earth Toolkit? The Virtual Earth Toolkit is a set of JavaScript-based Controls/Tools that Extend Virtual Earth with... [More]

Simple Port Scanner Written in VB.NET 2003/2008

I was looking over some of the old prototypes I've written in the past, and I can across a Simple Port Scanner that I originally wrote in VB.NET 2003. I originally wrote this back in 2004 (I think), and even posted a compiled version on my website that I have since removed/deleted. So, since it's just sitting on my hard drive collecting virtual dust, I thought I'd post it here in case anyone else can find it usefull. This Port Scanner implements Multi-T... [More]

Windows 7 Beta - Media Player 12 - Bigger Focus On Playing Media/Content

A couple days ago I posted some of my thoughts on the Good and Bad Parts of the Windows 7 Beta, but it was a somewhat incomplete list. So, I've decided to expand upon that list in an additional post. Why? Well, because there are some rather nice improvements worth mentioning that I didn't mention in the previous post. Windows Media Player 12   Bigger Focus on the Playing Media The most noticable (IMO) change to Media Player in v12 is the bigger focus on the media cont... [More]

Windows 7 Beta Has Good and Bad Points - A Short Review

I've been using the Windows 7 Beta (build 7000) for a few days now, and I've starting to form opinions on some of the new changes that have been made. There are good and bad things about this next version of Windows; so I thought I'd share some of my thoughts with anyone interested. Windows 7 Beta Good Points I thought I'd start with the Good Points first, this way you wont just read the bad first and stop reading the article thinking Windows 7 sucks. There are actually some good improvements ... [More]

SQL Compact And The "Unable to load DLL 'sqlceme35.dll'" Runtime Exception

I installed SQL Server Compact 3.5 x86 and started testing it out when I got a nice "Unable to load DLL 'sqlceme35.dll" runtime exception. This seems like odd behaviour for a clean install. In a fairly quick search I found an article on the SQL Server Compact Team Blog that covers a couple possible causes/solutions for this exception. My Solution - Target x86 Only Even though there are 5 possi... [More]

Top Posts of 2008 Plus Overall Traffic Stats

Now that 2008 has come to a close, and I finally have a full two years of traffic history that I can use for comparison I've decided to post a traffic summary as well as list the top posts of 2008. Top Posts of 2008 Here's a list of my most popular posts from 2008. This list only counts the posts I've posted during 2008. JavaScript ForEach Equivalent - 38,171 pageviews .NET 3.5: JSON Serialization using the DataContractJsonSerializer - 8,454 pageviews ASP.NET: Create ... [More]

Single Instance WPF Application in .NET 3.x

If you do a search on implementing a Single Instance application in WPF you'll get quite a few results. From what I've seen there are really only 2 solutions. One is really simplistic and the other offers more functionality; both of which are fairly simple to implement. Method 1: Checking Existing Processes By Name This is the simplest to implement. All you do is check if there is more than 1 running process with the same name as the current process. Here's the code: public partial class App : A... [More]

Windows speech recognition saves the day!

Since my arm/hand was injured last week, I have started using the Windows Vista Speech Recognition and it is helping me to type since I can only type with one hand.  It still takes a little while to type things, but it does help with some of the frustration.  In fact I typed this post by dictation, with a little help of one handed typing.  Speech recognition is fairly simple to use but it does take some getting used to; you need to learn the commands and I have yet to get it worki... [More]

Vista Sidebar Gadget for Pandora Radio

I see that Pandora has released a Windows Sidebar Gadget themselves. You can find it here: I found the Pandora Sidebar Gadget. This gadget lets Pandora live within the Vista Sidebar, thus not taking up (waisting) any valuable taskbar space. This gadget is simple and it just works. Awesome job Brad! You can download it here:

Develop Software for the Microsoft Windows Platform for FREE

I've been lucky enough to get 2 free MSDN subscriptions over the last few years, so I've never needed to purchase Visual Studio, Office or SQL Server. The first MSDN subscription I won in a blogging contest back in 2006, and the second I got when I won the Microsoft MVP award earlier this year (2008). Before you start to think that I'm braging; just let me point out that I am very greatful for this. Below is a list/guide that I would follow if I wasn't so fortunate, and I'm not talking about sof... [More]

Internet Explorer 6, wont you ever die?!

I've come across the website a couple times recently, and I definately agree. And I quote from the site: "Internet Explorer 6 will be SEVEN years old on August 27th [2008]. It came out a few weeks before the Twin Towers fell. It came out before the Nintendo GameCube. It came out before the first iPod. It's time to put a deadline on dropping IE6, and I say that time is now, and the deadline should be soon... say like, March 2009. That's roughly ... [More]

Busby SEO Test

Busby SEO Test is Polluting the Internet with Link Spam!!! For awhile now (a couple months I believe) I've been getting Comment Spam for this "Busby SEO Test" contest. The commenters post some crap comment, and they enter their name as "Busby SEO Test" and put in their contest landing page as their URL. It's almost impossible to figure out who is behind this 'contest' since searching for "Busby SEO Test" on Google just pulls up all these ... [More]

Intel Core i7 920 - Initial Thoughts, Overclocking and Windows Vista

I recently upgraded my main desktop machine to a new Intel Core i7 920 CPU and all its glory. Here's a write up of my experience in choosing the Core i7 (over the Core 2 Quad) and my experiences with it so far. Thoughts Before Upgrading - Core 2 Quad or Core i7? My previous machine was an AMD Athlon 64 X2 4200+ (2.2Ghz) with 4GB DDR2 800Mhz Ram. The system ran great, but it was two years old and my requirements for using Virtualization (via Virtual PC) have increased so it's time for an upgrad... [More]

ASP.NET AJAX: Create a JavaScript Component with Events

In the spirit of my "Mixing OOP and Event Driving Programming" article I posted a couple days ago; this article discusses how to implement the same thing using the ASP.NET AJAX JavaScript Library. Using inheritence (the ASP.NET AJAX way) it is even easier to implement a little Event Driven Model into your client-side, JavaScript classes/components. Event Driven Basics First we'll start by creating a Person class that inherits from the Sys.Component class. Now remember, sin... [More]

JavaScript: Mixing OOP and Event Driven Programming

To expand on my previous article on how to create Objects in JavaScript using Prototypal Inheritence, this article will show you how to implement Event Driven Programming with those objects. Implementing Event Driven Programming in JavaScript sounds difficult, but it's actually rather simpel to implement. To keep with the Prototypal Inheritence theme, we'll create an "EventObject" class that will have the plumbing necessary for implementing Events, and then we'll inher... [More]

Implementing Namespaces in Ruby using Nested Modules

Recently, I finally got around to starting to learn Ruby. I am finding it to be rather pleasant to program in. Now, one thing that I am used to using with an Object Oriented language (especially with my .NET background) are Namespaces. The only problem is that you can't just declare a namespace in Ruby using a "namespace" keyword. However, it's not difficult to implement Namespaces in Ruby, all you need to do is nest some modules. To demonstrate this, I'll show you how... [More]

A Couple VB.NET Language Tips for C# Developers

Originally, I started out as a Visual Basic developer, and have since moved mostly to C#. However, when doing consulting work, I do need to cross back and forth quite often. Here are a couple VB.NET tips that you probably aren't aware of if you're mostly a C# developer. Some VB.NET developers may not even know about then either. Null Coalesce Null Coalescing is really simple in C#: [code:c#] // If "someValue" is Null then set "i" to 0 (zero) // otherwise set it to the value of "someValue" in... [More]