Thursday saw the public release of Windows 7, and as with any OS upgrade, it’s a chance for a fresh start, a chance to pair our software installs back to the minimum we need. It’s all with the good intention to keep our computer leaner and faster than before.

With this in mind I’ve been thinking about the software I use frequently; what I need, what I don’t, and what I can consolidate. I was quite inspired by Dan’s setup, with its focus on simplicity and “less”. From a developer standpoint I also referenced Scott Hanselman’s tools list, but not much of that makes it onto this list, which is more general.

Bare Essentials

I mean it when I say these are the very first things I install on any Windows PC:

  • 7-Zip: I’ve been a fan of 7-Zip for years now. It’s (in my mind) the best file archiver/unarchiver around. It supports nearly every format you can think of, it’ s free, and its own 7z compression format is the best around.
  • Firefox: Chrome nearly won out the browser war for my PC, thanks to its lean and fast nature, but Firefox beat it out by being so damn flexible. I won’t go into any detail on my Add-Ons just yet, as that’s subject enough for another post. Suffice to say, the browser is increasingly becoming the focal point of the computer, so having as much flexibility as possible is essential.
  • Cygwin: I love the command-line. There’s something about it that evokes all the wonder and mystery about computers I had when I was a kid. The standard Windows Command Prompt is under-powered, and Powershell has a steep learning curve, so for years I’ve relied on Cygwin to bring some Unixy goodness to Windows. For Windows 7, make sure to grab the 1.7 beta setup.
  • AVG Free: There are a lot of good, free, anti-virus packages around, that don’t have the bloat of the likes of McAfee or Norton. AVG hasn’t let me down yet, so it’s my personal choice.
  • Foxit PDF Reader: Faster and less resource intensive than Adobe’s Reader, Foxit is a fully featured, free alternative.

Staying Organised

I admit it – I’m bloody terrible at keeping myself organised. To try fix this I have a couple of tools in my arsenal.

  • Evernote: I have Evernote everywhere I go. Either through the desktop client, my iPhone, or through the web. I use it as a dumping ground for nearly any little snippet of information I think I might need later. One of my favourite tricks is to use the “Mail Tweet” function in Tweetie 2 to send interesting/useful tweets straight to Evernote via email.
  • App for the Milk: Like Evernote, Remember the Milk is a tool I (try) to use everywhere: through the web, on my iPhone, or on the desktop using my favourite (and newest) desktop client. App for the Milk is an Adobe Air application, which some people don’t like, but in my mind it’s no worse than needing the .NET framework for an application. If you don’t like Air, I can recommend the Windows port of Tasque.
  • Dropbox: If there’s any file I think I might need on another computer then it goes into Dropbox. I’m always losing pen-drives, but I can get Dropbox through either the synced folder or the web application. As an example, I keep my reference library of screen-casts and eBooks in Dropbox so I can access them from work or home.

New Media

Strangely, all the while I was running the Windows 7 RC, I found my favourite media video player to be Windows Media Player. This is certainly a change from previous versions, but that doesn’t mean there aren’t a few other bits and bobs we can install to make it even better. As an iPhone user, iTunes is pretty much required, but I’m not including it below because I’d ditch it if I could!

  • Shark007 Codec Pack: This is a gem of a codec pack. With this installed I’ve yet to come across a video I can’t play. There’s a load of options you can configure, but I’ve found I didn’t need to and just left things as the default.
  • MKV on Windows 7: This is a “Tech Preview” from DivX Labs that lets Windows treat MKV video files like native AVIs – you get thumbnails, proper file information, compatibility with WMP, and best of all you can stream the files to any DNLA device such as a PS3.

Getting Social

IM, Twitter, Facebook and the like all fit into our daily lives nowadays, so it’s useful to have a desktop client to manage these.

  • TweetDeck: Another Adobe Air application, TweetDeck is a popular Twitter desktop client which lets you track a lot of information on-screen at once thanks to its multi-column setup. TweetDeck will also handle your FaceBook news feed meaning you don’t need another, separate client.
  • Skype: Admittedly, I only really use Skype at work, or on my Netbook, but it’s an excellent tool for quick video calls, especially as the call quality is second to none.
  • Pidgin: Formerly known as GAIM, Pidgin is a multi-protocol IM program which can connect to just about any network, from AIM to Windows Live Messenger (MSN). Plug-ins help round out any missing features, and it is theme-able.

Utility Belt

These are the nice little extras that make life that little bit easier. They’re not essential, but they sure do come in handy!

  • Console2: One command prompt to rule them all! With Console2 I can tabbed command prompts, and combine Windows CMD, Cygwin and Powershell all into one console. The only thing which would be more awesome would be if I could pipe the output from one prompt into another (say pipe Cygwin output into Powershell)
  • A Good Text Editor: Notepad sucks, and sooner or later you’re bound to need a decent text editor. My personal, all-time favourite editor, Textmate isn’t available for Windows, but E Text Editor sets out to be as compatible as possible, right down to supporting the same themes and code bundles. Other great choices include NotePad++ and Sublime.
  • Jing: I nearly didn’t put this down, as it requires a free Screencast.com account, but since coming across Jing (from the same folks who make Camtasia Studio and Snagit) I’ve been using it nearly everyday. Jing is a free screen-capture tool which supports both capturing pictures and videos. With it you can capture the whole screen, a certain window (or part there of), or just a selection of your screen. Some basic annotation tools are also required. The “Pro” version adds in a few extra features like MPEG-4 video recording and more sharing options

Where’s the Rest?

I’ve purposefully made this list cover just what I consider the absolute bare essentials for my computer. There are other applications I could list, such a office suites, developer tools… heck, I’ve not even mentioned an email client! Developer tools will be covered in another post I have in the works, but the rest is down to personal preference. For both email and office needs I use Google Apps, where as you might prefer OpenOffice.orgThunderbird, or even Office 2007. Install what you need, just make sure you really need it, and try to keep it light-weight!

I’m pretty OS agnostic. I’ll use the best tool for whatever the job is at the time. For my main computer I’ve switched between Windows and Linux, replaced the PC with various Macs for a time… just whatever is needed.

My Netbook has had Windows, Linux, and Mac OS X on it at various times. OS X works suprisingly well on such a little machine, but I wanted to try something designed specifically for working with the constraints of a netbook. Knowing I have some Linux/LAMP work ahead of me, I also wanted something Linux-based so I could refresh my CLI-Fu.

Enter Jolicloud

I’d heard mention of Jolicloud, as some sort of Netbook-centric Linux distro. The selling point was supposedly the very “un-Linux” GUI, optimised for a small Netbook screen, which in most of the screenshots posted around the web looks something like this:

Looks good, doesn’t it? The official site bills Jolicloud as “a cool new OS for your netbook“. Intrigued, I applied for an Alpha invite to try it out. A day later I had been accepted, downloaded the install image, and was ready to go.

Confusion Sets In

After installation I was presented not with a screen similar to the above, but with what looked, acted, even sounded like the Ubuntu Netbook Remix. Hrmmm. There was a Jolicloud “Get Started” icon, so naturally I clicked on that; up popped the dashboard I had been expecting to see at startup.

At this point, Jolicloud isn’t an OS; it now looks like an application installer/launcher with some “Social” features built in.

Speaking of those Social features, it appears Jolicloud has it’s own social network in the making to power the friends and notifications. It would be nice if I could instead use my existing networksinstead. However, I digress…

A computer is nothing without applications. Jolicloud presents a lot of applications for installation, a mix of “normal” applications with a heavy dose of web apps. Everything from Google Apps toZoho is available to install. This fits with the marketing pitch for Netbooks – processor doesn’t matter when your app is run “in the cloud”. Installing these applications is so simple it almost hurts.

Logically, one would expect to be able to launch the apps I have installed from the Jolicloud dashboard. Well, simply put, you can’t. Applications are launched from the Netbook home screen – the one we were given at logon.

So now Jolicloud isn’t a launcher/installer, it’s almost just a installer. An App Store for Web Apps if you will.

There’s a big difference between “a cool new OS for your netbook” and an installer.

So What Exactly is Jolicloud?

In the words of the Jolicloud developers:

“Jolicloud is an Internet operating system. It combines the two driving forces of the modern computing industry: the open source and the open web.”

In my words:

“Jolicloud is a simple means to add Site-Specific Browsers (SSBs) for your favourite web applications to your Netbook by utilising Mozilla Prism on top of Ubuntu Linux Netbook Remix.”

I guess my version isn’t as buzzword friendly as the official statement.

In Defence

Maybe I’m being harsh. In fact I probably am, as I’m feeling a bit grumpy today. Jolicloud is still alpha software (that’s pre-beta, for those who’ve forgotten), and will no doubt morph and change before it goes to wider release. I just find calling it an OS is a bit… wrong.

Next week on “Grumpy Netbook OS Ramblings” – Moblin.

The beauty of web development is that, ultimately, the code behind it is simple. Yes, web apps have taken leaps and bounds over the last few years, and are capable of so much more than ever before, but lets face it – we’re not exactly writing DNA sequencers. Yet.

It frustrates me when I find someone has made life difficult for themselves or the person who will inherit their code, by using the wrong tool for the job. I’m not claiming to be a saint here either – I often look back at some of my own code and shudder (it helps keep me right in the future!).

Consider the following snippet, from the View (presentation) file of an MVC app I inherited:

<?php
echo "<h1>$category</h1>";
echo "<h3>$company ($name)</h3>";
echo "<p>";
echo "$address<br />";
echo "$town<br />";
echo "$city<br />";
echo "$post_code<br />";
echo "$phone<br />";
echo "$email<br />";
echo "</p>";
echo "<br />";
echo "<br />";
?>

PHP needs to be used to output the data passed from the Controller, yes, but there’s no need for it to be outputting the HTML too. Let HTML itself worry about that!

<h1><?= $category ?></h1>
<div>
<h3><?= $company ?> (<span><?= $name ?></span>)</h3>
<address>
<span><?= $address ?></span>
<span><?= $town ?></span>
<span><?= $city ?></span>
<span><?= $post_code ?></span>
<span><?= $phone ?> </span>
<span><?= $email ?></span>
</address>
</div>

I don’t know about you, but the HTML-based version above is easier to follow and spot coding errors. No doubt someone will point out there’s more HTML tags/bytes in this example than the first, but that is because I coded it with semantics and microformats in mind; add in the right classes and you suddenly have a hCard.

Possibly more importantly in my mind, the HTML example is easier to follow for someone who isn’t PHP literate, like many front-end designers I know.

I’m picking on this example as it’s the most recent I’ve come across, and the first to come hand. It’s not the first example I’ve come across, it won’t be the last, and it’s certainly not the worst!

Pure, simple HTML can be a wondrous thing. Lets try not to spoil it by abusing it with our fancy server-side languages. K.I.S.S!