May 2007 Entries

How To Stop a Team Foundation Server Build with Samurai Style

This afternoon I kicked off a Team Build and waited... .. and waited ... ... and waited... ... and then realized something was terribly wrong with the TFS server. A general sense of panic swept into the office when we couldn't bring up the login dialog box on the server's console. A recent rash of hardware failures made us jumpy and we feared the worst. Just a couple months ago, 2 out of 3 drives in a RAID 5 array died in a single afternoon. What are the odds? The server came back to life after a hard reboot, but the last build was...

Swinging In Silverlight

Note: this sample is now updated to work with Silverlight 1.0 I decided to catch up with the latest Silverlight release. With the WPF/E release last year I dabbled with Conway's Game Of Life, but instead of porting old code I decided to try something new. During my short stint in the video game industry I found Gamasutra to be a great source of technical articles, and the article "Advanced Character Physics" by Thomas Jakobsen gave me an idea. The article describes the verlet integration algorithm used in molecular dynamics models. The subject matter sounds intimidating, but the algorithm turns out...

That's RAD

Back in February, JetBlue flight operations were shut down by a winter ice storm and a series of bad decisions. Some passengers stewed inside airplanes for 11 hours as the planes were stuck on the airport tarmac. Baseline tells the story of the JetBlue meltdown through the eyes of CIO Charles Mess. There are more than a few interesting software stories inside the article. For instance, the checked baggage of enraged passengers was piled to the ceiling inside the JFK airport. JetBlue had no software in place to match passengers to their luggage. Time to call in the .NET developers: A...

ReportViewer Components and Visual Studio SP1

The ReportViewer components in Visual Studio 2005 can display and export reports. The report definitions can be local .rdlc files, or remote files hosted and rendered by SQL Server Reporting Services. There are components available for both web and Windows applications. A couple notes: These components are not part of the .NET framework, so you need to install a redistributable package on the machines where the components will execute. The installation package will GAC the four assemblies required by the ReportViewer components. More importantly: Microsoft did update the ReportViewer components in SP1 for Visual Studio, but did not update the redistributable...

No Macro Recording for You

PowerPoint 2007 doesn't have a macro recorder. When I discovered this fact, three possible explanations jumped to mind: PowerPoint developers ran into a technology obstacle or time constraint that prevented them from shipping the macro recorder in 2007. Statistics indicated nobody was using the PowerPoint macro recorder, and a member of the team decided to cut the feature. A participant in a usability test was fiddling with the macro recorder when something amazing happened. Something . . . unexpected. PowerPoint achieved sentience, and began to create new software from information it found in bullet points. Amazing software. Business software. Commercial...

Hardware Virtualization: Off By Default

I noticed my x60 tablet had “Intel Virtualization Technology” off by default in the bios. In talking to people and reading blogs, a lot of manufacturers configure their machines similarly. Turning on VT Technology enables “Hardware Assisted Virtualization” in Virtual PC, which gives virtual machines a performance boost. See Scott Hanselman’s “Virtual PC Tips and Hardware Assisted Virtualization” for more details. It’s a simple job to enable VT Technology in the BIOS, but I started wondering why every machine seems to have this feature turned off. “Off by default” is a security mantra, and it turns out hardware virtualization extensions do...

My JavaScript Article

My latest OdeToCode article is online: “What ASP.NET Developers Should Know About JavaScript”. The article covers what I personally had to learn before feeling comfortable with modern JavaScript toolkits, frameworks, and libraries. It all boiled down to the following:Every JavaScript object is a dictionary.Every JavaScript function is an object.Every JavaScript object references a prototype object. Here is the introduction: JavaScript – It's beat up, put down, shrugged off and kicked around. Cursed by the web browser's inconsistency yet blessed by a pervasive ubiquity -it's a technology many try to disregard even when its potential is something few can ignore. If you want to write an interactive application...

My New Tablet PC

… is a ThinkPad x60. It's the lightest, quietest, fastest notebook I've ever owned (and has the longest battery life, too (over 5 hours)). It took about 3 weeks to build and ship from Shanghai, and came with a 1.67 GHz Core Duo CPU, 2 GB RAM, and a 7200 RPM drive. Performance with Vista is pleasing and smooth. Compare those stats to my older tablet, a Toshiba M200. This machine has a 1.7GHz Pentium M, 1GB RAM, and a 7200 RPM drive. Then there is my "performance" laptop, a 3 year old Dell Inspiron 9100 (2.8 GHz Pentium D,...

Comparing Strings in NUnit 2.2 versus NUnit 2.4

John and I were trying to figure out why a test wasn't failing on his machine. We finally realized different versions of NUnit were producing different results. In nUnit 2.2, Assert.AreEqual(string, string) ultimately calls String.Equals to perform the string comparison. In nUnit 2.4, Assert.AreEqual(string, string) ultimately calls String.Compare to perform the string comparison. As the following code will demonstrate, these methods can behave differently. class Program { ...

5 Things To Do With A Big, Fast Flash Drive

Save some time installing Vista. Kurt Shintaku describes how to format a bootable flash drive with the contents of the Vista DVD. If your machine can boot from a USB device, this approach does shave some time off the Vista install. Improve Vista performance with ReadyBoost. ReadyBoost allows Vista to use a fast USB memory device as an intermediate caching area between memory and disk. Tom Archer has a ReadyBoost Q&A with the technical details. Carry a suite of portable applications. PortableApps.com packages a browser, email client, backup utility and more configured to work from any USB memory device. The...

What Was Wrong With #15?

Not many takers on WWWTC #15, but Jason finally nailed it. The bug in the code revolves around how VB allocates arrays. The following code snippet creates an array of 5 System.Char objects, and will output the number 5 ...

Groove versus FolderShare

I've been running FolderShare (a Windows Live Service) and Microsoft Groove (part of Microsoft Office 2007) concurrently for the last few weeks. Both products are Microsoft offerings, and both provide file synchronization features. Which one do I like better? FolderShare FolderShare is lightweight and "just works". For over one year now I've been synching documents, IE favorites, OneNote notebooks, and scripts across 4 different machines with no issues. FolderShare creates a secure P2P network to perform the exchanges, and the only limitation I know of is the file size limitation (no files over 2GB). All you'll see of FolderShare on your...

What's Wrong With This Code? (#15)

Mortimer is taking up TDD, and starts a new project by writing the following test. <TestMethod()> _ Public Sub CanReverseString() Dim input As String = "OdeToCode" Dim result As String = Utility.ReverseString(input) Assert.AreEqual("edoCoTedO", result) End Sub Yes, it's another one of those big projects that reverses strings all the time. With a test in place, Mortimer writes the following stub. Public Class Utility Public Shared Function ReverseString( _ ByVal input As String) As String Return Nothing ...

Scott Allen
Posts - 869
Comments - 4493
Stories - 14