The Sub-$1000 Opportunity?

U.S. $1000 bill

Here’s a thought experiment for you Windows developers out there: the fact that Apple pretty much owns the $1000+ computer market is in fact an opportunity. Discuss.

(This article appears with slightly different wording – to try things from a different perspective – on the official Microsoft Canada developer blog, Canadian Developer Connection.)


Windows 7 and Server 2008 R2: RTM and FTW!

 XBox 360-style achievement: "Achievement Unlocked: Windows 7 and Server 2008 R2 RTM'd" Windows 7 logo

Windows 7 Released to Manufacturing

It’s been announced on the Windows Blog: Windows 7 has been released to manufacturing!

Brandon LeBlanc explained that “RTM” happens only after it’s been signed off. One of the release candidate builds becomes a contender for release to manufacturing after it goes through significant testing and passes all the validation tests for RTM including having all languages for that build completed. Build 7600 crossed all those hurdles and got signed off today.

The beta and release candidate period for “Seven” was quite unusual. Rather than hand it out to a closed group of beta testers, it was made available for download and I was given piles and piles of DVD-ROMs to hand out like candy. And strangely enough, people were asking for it. At the EnergizeIT installfests this spring, we played to packed rooms of people who took time out of their Saturday mornings and schlepped to Mississauga to install the beta. Even people with Macs, who ran it under Boot Camp or Parallels. It’s unusual for an operating system in beta – especially one from The Empire – to be in such demand.

I’ve been using the beta since January and the release candidate for the past few weeks as my primary operating systems with nary a hitch, glitch or blue screen. I’m looking forward to getting the final version of Windows 7, which will be the first of many new goodies coming from The Empire over the coming months,

If you’re a developer with an MSDN subscription or an IT pro with a TechNet subscription, you’ll be able to download the English Windows 7 RTM on August 6th, with other language versions on October 1st. Windows 7 will go on sale to the general public on October 22nd.

Windows Server 2008 R2

Windows Server 2008 R2 logo Windows Server 2008 R2 was also released to manufacturing today. As they state in the Windows Server Division Weblog, the simultaneous release is no coincidence but a design goal. “R2”, as I prefer to call it, boasts a lot of features such as Hyper-V, Live Migration, File Classification Infrastructure, an improved Active Directory, Pervasive PowerShell, IIS 7.5, server scalability, DirectAccess, BranchCache and improved Remote Desktop.


Installing PHP on Windows Using the Web Platform Installer 2.0 Beta

This article also appears in Canadian Developer Connection.

Yesterday, I showed you how to install MySQL Server 5.1 (Community Edition) onto your Windows-based development machine. The reason I wrote the article was to help you prep your machine for installing PHP and PHP-based applications using Microsoft’s Web Platform Installer.

What is Web Platform Installer?

Web Platform Installer is, as the website puts it, “a free tool that makes it simple to download, install and keep up-to-date with the latest components of the Microsoft Web Platform”. Yes, this is stuff you can do yourself, but I’m all for tools that automate away drudgery.

As of this writing, there are two versions of Web Platform Installer available: the original 1.0 version and the beta 2.0 version. In this article, I’m going to focus on the 2.0 version.

Here’s what you’ll see when you fire up the Web Platform Installer 2.0 beta:


Web Platform Installer has three tabs:

  1. What’s New?: This lists the newest applications that are available for download and aren’t already installed on your system. This is the tab that is automatically selected when you launch Web Platform Installer.
  2. Web Platform: This lists web platform applications that are available for download and whether they’re installed on your system. These apps are divided into the following categories:
    • Web Server Applications: Extensions for IIS as well as other server software such as the FTP server
    • Frameworks and Runtimes: Both Microsoft and open source frameworks and runtimes, such as .NET Framework and ASP.NET MVC. This is where you’ll find PHP.
    • Database: SQL Server Express and management tools.
    • Tools: Applications for web development, such as Silverlight and Visual Web Developer Express.
  3. Web Applications: This lists web applications that are available for download and whether they’re installed on your system. These apps are divided into the following categories:
    • Blogs: A selection of .NET blogging apps such as BlogEngine.NET and DasBlog, as well as WordPress.
    • Content Management: Applications like DotNetNuke and Acquia Drupal.
    • Galleries: Photo gallery applications.
    • Wiki: Wikis and apps with wiki functionality, such as the PHP-based Acquia Drupal and the ASP.NET-based ScrewTurn Wiki.

Installing PHP

If PHP isn’t on your system, it will appear on the What’s New? tab page. If you click on the “information” icon beside the checkbox item for PHP, you’ll be shown its information page:


You can choose to install PHP by checking PHP’s checkbox in the list of applications or the Click to include in your install button.

You can choose to add other applications to your install. Once you’ve chosen all the apps you want, click the Install button. You’ll be presented with a list of the apps you chose for review, along with any dependencies for those apps:


To start the installation, click the I Accept button, and Web Platform Installer will do its thing:


Taking PHP for a Quick Spin

Let’s write a very quick script to confirm that PHP is up and running:




In case you’re not familiar with PHP’s built-in phpinfo() function, it returns information about your PHP installation, its configuration and its current environment. It’s useful for all sorts of things, not the least of which is checking to see if your PHP installation worked.

Enter the script above using your favourite editor, and save it as test.php into the web root directory, c:/inetpub/wwwroot Note that in order to save to this directory, you’ll need to be running the editor with administrator privileges. Alternately, you can save to another directory and then copy the file to c:/inetpub/wwwroot, giving your administrative approval when prompted by the dialog box.

Then point your browser at http://localhost/test.php — you should see something that looks like this:


Next Steps

With PHP up and running, you can install PHP-based apps. PHP apps are like old-school ASP apps; installing them is often a matter of moving the files into the webroot directory and perhaps running an install script by typing its URL into your browser.


One app you might want to consider installing is phpMyAdmin, a PHP-based web application for administering MySQL databases. While it’s possible to administer MySQL solely through its command-line interfaces, phpMyAdmin makes it so much easier. I can’t recommend this utility enough.

Cover of "Wicked Cool PHP"

If I had to recommend just one PHP book, it would be No Starch Press’ Wicked Cool PHP. I find No Starch books to be both informative and enjoyable reads, and this book is no exception. If you’ve got at least a little programming experience under your belt. I think that you’ll find this book and its very useful examples, coupled with the online documentation at, will serve you very well.

Happy PHPing!


Bryan Lunduke’s “Linux Sucks” Presentation

Here’s a presentation that’s worth watching, regardless of what operating system you use: it’s Bryan Lunduke’s presentation from Linux Fest Northwest – a Linux conference for “Rebel Scum” deep in the heart of The Empire — and it’s titled Linux Sucks, in which he talks about what needs to be fixed in desktop Linux. His Linux laptop helped prove the point at the beginning of the presentation by stubbornly refusing to display anything on the projector and requiring some guy to noodle with the X configs:

(By the bye, hooking up multiple monitors to a Windows 7 machine is dirt easy. The Windows-P key combo toggles between main monitor-only, other monitor-only, mirrored and “extend desktop” modes. The “Linux laptops and projectors” problem is a common one; I remember gently poking presenters at CUSEC trying to get their Linux laptops to display on the projector with “If you were running Win 7, you’d be done by now.”)

I think that this is an important presentation for developers to watch, whether they develop for Windows or the Esteemed Competition, because all operating systems suck, and it’s our job as developers to make them suck less. Linux on the desktop has all sorts of problems because it’s a free-for-all run but a rag-tag fleet of development shops, but Windows has its own problems stemming from all sorts of things, such as having to maintain some kind of backward compatibility for the sake of enterprise installations at Fortune 500 companies.

The lesson to take from this video should be that we should forget the rah-rah boosterism, take a good hard look at the platforms for which we build, and do what we can to make them better. The best platform advocacy is to make the platform suck less.


Windows 7’s Groovy Desktop Backgrounds

Among Windows 7’s Release Candidate 1’s Best New Surprise Features in Gizmodo are the funky (and quite unexpected!) new desktop backgrounds that come with “the Vista that should’ve been”. I have a couple of favourites. One is the one below, which is reminiscent of one of my favourite videogames of all time, Katamari Damacy:

"Katamari Damacy"-esque Windows 7 desktop

I also like the one below.  Can anyone tell me which bridge or road is depicted in the photo?

Bridge Windows 7 desktop


More Thoughts on Windows Whatever-it-is-That-Runs-on-Phones

The Developer Angle

A sad-looking kid in a Darth Vader sitting at a fast food restaurant table

In case you don’t recognize the photo on the right, it’s the “Sad Darth Vader” photo from my earlier article titled This is How the Current State of Windows Mobile Makes Me Feel. I posted it in response to The Empire’s seemingly directionless efforts with its phone platform, Windows Mobile. Or, as it’s called now, Windows Phone. Or, as it used to be called, Windows CE. Or was that Windows Embedded?

Therein lies the first problem as far as developers are concerned: finding documentation on the subject of developing for Windows Whatever-it-is-that-runs-on-phones. It’s confusing because it’s hard to even figure out what the name of the SDK you’re supposed to use is – they all sound applicable. Is it Windows CE? Windows Mobile? Windows Embedded?

(By the bye, for current phones, it’s Windows Mobile, which is based on Windows Embedded CE. Now that this new brand, Windows Phone, is kicking around, there’s a chance that it’ll get filed under that name soon.)

Joey deVilla's Palm Treo

As an evangelist for The Empire, it’s my job to help developers figure their way around our various platforms, and I’m hard-pressed to think of a platform that appears more shrouded in mystery and confusion than Windows Whatever-it-is-that-runs-on-phones. Over the next little while, I’m going to post pointers to existing Windows Mobile/Windows Phone development articles as well as articles based on my own experiences developing for the Windows-based phone I picked up while at the recent TechReady 8 conference in Seattle. It’s a Palm Treo Pro, pictured on the left, and I chose it because out of all the mobiles at the Expansys booth (they always have a booth at the big Microsoft developer conferences), it was the one with the best “feel”.

My first pointer is to Microsoft’s own Windows Mobile 6 Documentation, located a couple of levels into the MSDN site. The main page for this section presents a giant point-and-click map of key topics for developers who want to write apps for Windows Whatever-it-is-that-runs-on-phones. I’m going to try out some of the exercises on that site and report back with stories of my experiences of getting started with Windows phone development, and whatever tips and tricks I pick up along the way.

If you’ve got any questions about developing for Windows Whatever-it-is-that-runs-on-phones, feel free to ask me, whether in the comments or via email. I may not have the answers myself, but since I’m on the inside at Microsoft, I can say that “I know a guy who knows a guy,” if you get my drift.

The User Angle

The upcoming 6.5 version of Windows Mobile – or more appropriately, Windows Phone – was announced earlier today at Mobile World Congress in Barcelona.  It features a user interface that’s considerably more finger-friendly than the current 6.1, whose stylus-reliant design seems stuck in the era of the Palm Pilot. Gizmodo’s Jesus Diaz seems to really like it, as evidenced in the video he shot for his article titled Windows Mobile 6.5 Hands On: The New Interface Rocks:

Windows Mobile 6.5 Running on HTC from Jesus Diaz on Vimeo.

Diaz ends his article on a positive note, a rare thing for a writeup on Windows Whatever-it-is-that-runs-on-phones:

From this first touch on, it looks like Microsoft is back in the game. They don’t have the upper hand yet, but they are clearly waking up. We will see what happens and how deep these changes really are once it gets released.

The Developer Angle, Once More

The apparent improvements in 6.5 and promised continued improvements in Windows Whatever-it-is-that-runs-on-phones version 7 are a good sign, but a lot of the success story I’m hoping for rests with applications for these phones. For that, there has to be a developer community that has the tools, resources and encouragement to develop for Windows Whatever-it-is-that-runs-on-phones. Building that community is a challenge that I’m taking up. What can I do to help?


This is How the Current State of Windows Mobile Makes Me Feel

Sad-looking kid in a Darth Vader mask sitting alone at a fast-food restaurant table.Photo courtesy of Alex Brown Photography.