Windows XP better as a VM than Vista – Duh

Vistato XP

After reading this great, hilarious, post on upgrading to XP (yes, you read that right – this isn’t a Vista upgrade), I decided to take the plunge. I’ve been punished long enough for using Vista Ultimate in my VMware environment and portable laptop. It’s been a nice OS, but performance is in the toilet and I can’t take it any more.

It’ll hang around for testing purposes… Here’s hoping SP1 brings some hope to Vista.

The Mac/PC dev/QA environment

 Mac/PC Dev Environment

Developing PC applications on the Mac is great, contrary to what some believe. I too was once in the ‘build-on-the-platform-you-target’ camp. Forget that horse-puckie and get efficient:

  1. Get VMware Fusion: http://www.vmware.com/products/fusion/.
  2. Make sure you’ve got XCode. This will be sixty percent of your development environment and you’ll be coding in OS X.
  3. Install Windows XP or Vista, your choice, as a new VM in Fusion. This will be the other forty percent of your development environment where you’ll step code and delve out builds. Don’t set it up with more than 40% of your Mac’s RAM assigned (preferably 25%).
  4. Install your development tools on this Windows instance, probably .NET 2005.
  5. Set up a shared folder for your source code between your Mac user folder and the dev VM. Make it read-write by both systems (a setting in Fusion).
  6. Set up more VMs in Fusion. These are your Test VMs (smaller, fast Windows instances used as QA machines) – as of this writing you should make XP Home, XP Pro, Vista Home, and Vista Ultimate VMs. You may want additional setups depending on your apps needs (administrator settings, etc). Set these up with 25% or less of your available RAM.
  7. Do nothing… I’m waiting for you to finish step 6… It takes a while.
  8. Run Windows Update (if desired) and take Snapshots of each VM (Command+T) after they’re set up. These Snapshots will let you revert to a clean state any time you wish.

Great, now you’re hooked up and can get your code on. With XCode you can utilize all your monitors (if you’re a developer using less than 2 monitors, we need to talk…). You’ll have XCode running with your source code all over the place organized how you like it. You’ll have your development VM running in a corner.

Use XCode as the code editor (you’ve got your source files saved on the Mac, in the shared folder). Keep the development VM running and hit Control+B in it (or better yet, add an AppleScript to XCode to pass Control+B to the VM) when you need a new build. You can step through the code when you need to.

When you’re ready to test your app(s) on all flavors of Windows, launch up the various VMs and install the app(s). Afterwards, restore to the Snapshot you took before. You’re starting from a nice clean start every time.

iofy account management – Really Simple Development

 

iofy software

My dev team is prepping the release of our REST / RSS / JavaScript based account management this week. It marks the completion of building, then harnessing, a suite of RESTful RSS 2.0 feed based web services. The idea has been “avoid people wasting time, working on stuff they suck at focus developers on code they enjoy and excel at.”

We had problems with our 1.0 account management. User interfaces were tied too tightly to the back end. Heavy hitting framework and server programmers were working out UI kinks while artistic graphic designers were figuring out database calls. This was a huge waste. The site looked heinous and didn’t work the way we wanted it to.

Graphic designers don’t think in OO, let alone big-O. Server programmers don’t communicate visually.

Serial

It seems easy to fix, right? Just have heavy hitters do hard stuff and then have graphic designers make it look pretty? Make it look pretty first, then tie in the hard stuff? Not exactly. It requires a lot of planning and effort to coordinate and manage people’s time like that. It also requires serial development where people are waiting before they can start. All of which is a waste – this needs to be automatic and parallel. Don’t waste time trying to manage this if it can be done for you.

Enter REST. Enter RSS.

RSS (Really Simple Syndication) came first. Dave Winer, back in ’98, grew it from XML. It allows for simplified packaging of data. One can package and list blog entries, offer an MP3 playlist, send table-of-contents information, or transport code via codecast. At iofy we use it as a container to package web service responses.

RESTful development is also based on simplicity (here’s a great doc on REST). Get things done in an HTTP packaged call. With a very simple request in JavaScript, the web service is queried and you’ve got an RSS feed as a response. Our designers have their functionality via web services. Our server coders don’t touch the front end.

The server developers make the RSS feeds. This makes them happy and gives them time to build the critical server components. The graphic designers use JavaScript to call iofy’s RESTful Web Services API (link coming Monday). We use jQuery as our base JavaScript library. It’s damned fast to dev.

This simplified my project management. Tasks became clearly defined. In the beginning I was worried the approach would put a wedge between roles, but it worked in reverse. People understood the importance of their own functions and became reliant on each other for success.

Parallel Development.

Parallel

While the design team determined a desired look and feel, the back end team planned architecture and database schema. As feeds were developed and APIs took shape, so did the layout of the site. When feeds became ready for harnessing, pages were ready. Management of the nitty-gritty became unnecessary.

We launch account management this week. You too can harness it in your language of choice (we’ll provide JavaScript code which lets you do this simply by dropping some .js on your page and a script on your server). iofy’s services are controllable from your own site.

iofy’s development team builds client software, web sites, and web services powering audiobook content delivery. We move content securely from server, to client, to iPod, and SD chip. 

Brain-drain prediction due to asian success

Pic of IT walking awayI’m reading more and more about IT in Asia having trouble retaining technically competent employees. Salaries are growing to impressive levels. In Singapore, salaries are closing in on Silicon Valley levels. With the present competition for talent growth in that country, salaries will soon be greater there.

<prediction>We won’t be looking at an all-out brain-drain, but with the present economic climate in the US and the present growth in Asia, we’re looking at some movement of IT in the next five years.</prediction>