Windows 7 Beta

Here are my brief impressions of it so far:

Installation

Requires that Vista be on the machine in order to upgrade to Windows 7 Beta.  Otherwise, you have to do a clean install.  Unfortunately, you have to attempt the illegal upgrade before you get the message that tells you this.  If Microsoft is trying to get people to let go of XP, letting them upgrade from XP directly to Windows 7 might be a good idea.  Otherwise, the install was pretty straightforward.

IE8

Disappointing.  It can’t render http://www.vmware.com correctly, so I couldn’t download VMware Player from the site.  I had a copy on a flash drive fortunately, and was able to install from there.  Firefox works just fine (so far).

Virtual Machine

It looks like there’s some sort of permissions thing preventing me from running them.  Adding the VMWare Player created an additional user on the machine.  When I tried to open the VM I already had, I got some odd sort of permissions error.

Drivers

Windows 7 Beta detected the biometric scanner on the Lenovo T61 I’m using and directed me to the most current driver.  Once I “enrolled” my fingers, it worked just fine.  It didn’t have any trouble at all with the SanDisk Cruzer Micro 2GB I’m using either.

Miscellaneous

The way Windows 7 handles active program icons in the start bar is rather clever, though it still retains the unfortunate multi-function button for logging out, switching users, shutting down, etc.

More impressions later as I play with the operating system more.  This version of the beta doesn’t expire until August 1, 2009.

World of Goo

For years I’ve been more of a console gamer (XBox 360) than a computer gamer, but World of Goo is trying very hard to change that.  I don’t normally like puzzle games, but World of Goo tricked me by hiding the puzzle/construction/physics inside a hilarious cartoon.  In addition to being fun, simple to control, and great-looking, it’s just $20.  So far, it’s available for the PC, Mac, and Wii.

In Search of Wireless Internet

Recently, I’ve gotten a couple of questions from family about where they can get wireless internet access.  People usually mean wi-fi when they ask this.  I tend to address this problem by location–either you want wireless internet when you’re at home, when you aren’t, or both.

The variety of places offering wi-fi is definitely increasing.  Beyond the usual suspects (Starbucks, Panera Bread, airports and hotels), it’s showing up in other places (e.g. downtown Silver Spring).  If you want to find the nearest wi-fi offerings in your zip code, visit http://hotspotr.com/wifi (thanks for the link Adrienne).  If there’s a charge for the wi-fi access, the service is mostly likely provided by one of the major cellphone service providers (Verizon, AT&T, T-Mobile).

For wireless access at home, you have your choice of any provider who offers broadband access.  For most of us, that provider will be a cable company like Comcast or a phone company like Verizon.  Either type of provider will be able to offer you a modem that provides wired internet access and wireless internet access.  They may try to charge extra for setting up more than one computer, but I recommend not paying.  You’ll be able to get a family member or friend to help you for free, or a local high school or college student for a lot less than Comcast or Verizon will charge.

Alternatives to Microsoft Office

My dad asked me yesterday if there were any free alternatives to Microsoft Office.  The one that came to mind right away was OpenOffice.org.  Writer, Calc, Impress, Draw and Base are the OpenOffice.org answers to Word, Excel, PowerPoint, Visio and Access.  The suite is free, open source, and available for Windows, Mac OS X, Linux, and Solaris.

If you’re ready to embrace cloud computing, even more options are available to you.  Google Docs offers word processing, spreadsheets, and presentation capabilities.  It does a nice job of handling Microsoft Word and Excel files.  Another alternative to the Microsoft Office suite comes from zoho.com.  It offers the same level of compatibility with Word, Excel, and PowerPoint of Google Docs or OpenOffice.org.  Zoho.com offers a wider variety of applications than Google Docs.  They use plug-ins to integrate with MS Office, Outlook, Internet Explorer, Firefox–even Facebook and smartphones (iPhone and Windows Mobile).

Free Test Data

If you find yourself in need of test data (and if you write software for a living, you’ve got that need pretty often), pay a visit to generatedata.com.  You have your choice of five different result formats: HTML, Excel, CSV, XML, and SQL.  If you’re using it for free, you’re limited to 200 rows of test data.  Donate $20 or more and the limit increases to 5000 rows.  If you don’t mind fiddling with PHP and MySQL, you can download the generator for free and set it up on your own server.

Another use for RSS feeds

Caphyon, the vendor of Advanced Installer, has a feed for updates of the software.  A brief look at the feed shows a pretty regular schedule of updates.  Each entry in the feed contains the release notes, with new features, enhancements, and bug fixes.

Quick thanks to my friend Dave, who sent me a tweet about this product.  Now we’ll see how it stacks up against InstallShield.

Comparing XML Strings in Unit Tests

Comparing two XML strings is painful.  So of course, my current project required me to come up with a way to do it in .NET.  I could only use version 2.0 of the framework, and I didn’t want to add more dependencies to solution that already has plenty (which ruled out XML Diff and Patch).  So far, I’ve come up with the following bit of code:

The validationXml contains a string representation of the XML being validated against.  It also means I only have to create one instance of XmlDocument.  After creating an XPathNavigator on the XmlDocument being compared,  an XPathExpression for the subset of XmlDocument being validated, and an XPathIterator, it can be called.

The “params” keyword makes the last argument optional, so it can contain zero or more names of XML elements to ignore when deciding whether or not to call an Assert.  I’m still figuring out how to optimize this, but I think it’s a good start.