I just ordered an ASUS EEE PC. This has been done in response to the news that I will once again be commuting into and out of London several times a week over the next few months. Last year a Macbook accompanied me on my journey (and was fantastic), but it has since become the shared utility computer at home - living it’s life between the study, the lounge and the kitchen.

So what is the Asus EEE PC ? It’s damn small, and it’s damn good value - that’s what it is.

Here’s the specifications of the one I just bought…

  • Size - 22.5 cm x 16.5 cm x 3.5 cm
  • Weight - 0.92Kg
  • Processor - Celeron M 353
  • RAM - 512Mb
  • Storage - 4Gb

I also bought an 8Gb SSD card to go in it - which will effectively triple the built in storage. The main uses of the machine will be writing on the way to and from work (emails, blog posts), and the odd conversation with friends - I’ll have to get a bluetooth dongle for that though.

I will of course document the unboxing, and first user experiences with the machine. The first trial will undoubtedly be installing Windows XP on it. Although it comes with Xandros Linux pre-installed, I would rather have something I know inside out installed…

If you are reading this blog post, you are either one of the small number of people who regularly read what I have to say, or you have found your way here via a search engine - and have been tasked with writing content for the web.

Writing content for the web should be easy. Look how many web sites there are - and how many people write blogs? The problem is of course that 90% of websites are awful, 10% of blogs are well written, and 92.63% of statistics are made up.

Help is at hand though - here are some tips that will help you write engaging, successful words for the web.

  • Make every page independent
    You don’t know how or where a user will enter a website. Keep pages to a single topic, and explain your subject without assumptions about content elsewhere.
  • Reduce the word count
    People don’t like reading large swathes of text on screens. Pare your writing down to the bone.
  • Be Direct
    Put your most important information in the first paragraph. Qualify it in the remainder of the page.
  • Inform Quickly
    Web users are impatient and critical - tell them what they want to know - not how great you are.
  • Credibility Rules
    You need to build a trust relationship with the reader - the quickest way to lose it is with jargon, or marketing spiel. Be objective.
  • Keep it Informal
    You are not writing a letter to William Shakespeare. Your reader wants to read quickly - they are not going to gasp in admiration of your word power.
  • Keep Headings Simple
    Do not write anything cleverly - make headings obvious and meaningful. It will pay off in search results.
  • Avoid Acronyms and Colloquialisms
    Nobody wants to figure out what all your little pet acronyms stand for. Don’t make them figure it out either.
  • Keep it Fresh
    Make sure the content is accurate and up-to-date. Nothing turns readers away more than content that was written in the last millennium.

  • Proof Read, Proof Read, Proof Read
    Make sure your punctuation, spelling, and grammar are correct. Get somebody else to check what you have written. Check it again. More people than you imagine will walk away if your content is littered with mistakes or is just badly written.

I had an interesting philosophical discussion with a co-worker this morning about instant messaging applications - and their usefulness as a tool in the workplace.

Following recent rumblings within my workplace about the idea of all staff installing and using Windows Live Messenger, we are wondering what it’s pro’s and cons might be.

Pros

  • Immediate access to contacts
  • Silent, immediate access to contacts
  • Broadcast your availability through your “status” or “presence” in the IM application

Cons

  • Disruption
  • You need to be logged on for it to work
  • Everybody needs to use the same application

If immediate access to somebody is required, what stops you using the telephone (or visiting their desk)? If you need to send somebody a file, or a link, what stops you using email?

After cancelling out availability and disruption, the most plausible benefit of using instant messaging appears to be letting others know where you are and what you are doing - but then this only works if you logged in at some point during the day to update it.

It strikes me that a much more sensible system would be something like Twitter, Jaiku (recently acquired by Google) or Pownce - that let people inform others once of their status or “presence”, and then be read many times by many people.

There is crossover with shared calendars. If you want to find out what co-workers are up to, you can always look at the calendar in Outlook - but this relies on them having kept their calendar up-to-date. The same problem will exist for any “presence” broadcasting system.

The Outlook option would be persuasive if a solution existed to open everybody’s calendar and just show what they say they are up to now, and perhaps later. This would of course have to be built, because no such “view” exists in Outlook.

I read an interesting observation by Merlin Mann over at 43 Folders about email this morning;

Right this minute, you can create an email of unlimited length covering topics of unlimited scope and then send it to unlimited numbers of people — whom you may or may not even know — all at absolutely no cost to you. There is also no prohibition or boundary of any kind on how you phrase that email. There’s no formal penalty or even feedback for when you’re using email inappropriately (e.g. the dirty look that you’d get if you said something this weird to someone’s face). Plus, of course, YOU get to decide (at least in your own head) exactly how quickly all those people should be getting back to you about whatever it is you emailed them about. And you can do this pretty much any time you want and as many times a day as it suits you. No Limits.

Having been tasked with learning the ins and outs of Microsoft Office SharePoint Server and it’s Web Content Management features, I ran into something of a black hole in the documentation - how to configure content deployment.

The basic idea behind content deployment is that you have two SharePoint servers - your “staging” server that is used to prepare the content of a website, and you “production” server that is public (or company) facing. You then use the content deployment features to automate the movement of site collections from the staging to the production environment.

For the purposes of this step-by-step, we are doing everything on a single SharePoint server.

  1. Create Production Site Collection
    • Open “Central Administration”
    • Go to “Application Management”
    • Select “Create or extend Web application”
    • Select “Create a new Web Application”
    • Choose a new port number (e.g. 12345)
    • Fill in credentials to create a new app pool
    • Choose a new database name such as SHAREPOINT_PRODUCTION
    • Click OK (and wait for the Web application to be created)
  2. Create Site Collection
    • Ensure that your new Web Application is selected
    • Fill in a title for the site (it will be overwritten during deployment)
    • Use the “Blank Site” as the template. This is IMPORTANT (Blank Site is the only template that you can import into via deployment)
    • Fill in the site collection owners
    • Click OK
  3. Allow Incoming Content Deployment Jobs on the Production Site
    • In Central Administration, click “Operations”
    • Go to “Content deployment settings”
    • Choose “Accept incoming content deployment jobs”
    • Tick “Do not require encryption”, and click OK
  4. Create Content Deployment Path from Staging to Production
    • Go to “Content deployment paths and jobs” in Central Adminstration
    • Click New Path
    • Type a descriptive name for the path.
    • Select the web application and site collection for the staging site (where content will come from)
    • Fill in the URL of the Central Administration web site of the production site.
    • Click Connect, which (when successful) will enable the rest of the form
    • Fill in the URL of the web application and site collection you created for production in the destination fields.
    • Choose “deploy user names and security” if you want to
    • Click OK
  5. Create Content Deployment Job
    • Go to Content Deployment Jobs in “Central Administration”
    • Click New Job
    • Type a name, and then select the path you created
    • Leave all other settings, and click OK.
    • Run the Job, and select “Run Now” from the context menu.
    • Refresh the page (F5) periodically - you will see the status change from “preparing” to “running” and finally “Succeeded”.
    • Visit the URL of the production site and take a look!

AJAX stands for “Asynchronous Javascript and XML”. It allows browsers to do out of process work, to hoodwink the user into thinking something is happening more quickly than it actually has. A good example are the stars in Google applications - just how do they get saved so quickly?

Here’s what really happens (in laymans terms) - through the bit of javascript below, your browser makes a pretend second browser, which knows how to call other web pages. Your browser does this, and then forgets about it - then (when the second browser gets it’s response) it reminds your browser, and it does something with the response. This is called a “callback”.

If you throw the javascript below into script tags in an HTML page, and also make sure you have a DIV tag with the id “ajax_output”, and another html file called “test.html”, you will see your div tag get populated by whatever is in test.html.

var xmlHttp=null;
try {
  xmlHttp = new XMLHttpRequest();
} catch (e) {
  try {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
}
xmlHttp.onreadystatechange = function() {
  if (xmlHttp.readyState == 4)
    try {
      if (xmlHttp.status == 200) {
        document.getElementById("ajax_output").innerHTML = xmlHttp.responseText;
      }
    } catch (e) {
      document.getElementById("ajax_output").innerHTML = "Error : " + e.description;
    }
}
xmlHttp.open("get","test.html");
xmlHttp.send(null);

The real benefit of AJAX comes when you have a rich interface involving lots of javascript or graphics, and you don’t want to make a trip back to the server to update something (which would cause the entire page to reload). The answer is to use AJAX, and get the update to happen out of process.

Make sense?

Everybody who works in IT - be that developer, designer, architect, engineer, or whatever - has a list of software that they rely on on a daily basis. I’m guessing I’m not the “norm” because I use Windows at work, and OSX at home - which perhaps gives me a little more perspective than some, but also means I regret not having some application or other that is only available on one platform or the other.

For the purposes of this list, I’ll stick with Microsoft Windows - but expect a list for the Mac soon too.

Textpad
www.textpad.com
Everybody knows that Notepad is rubbish. Everybody puts up with it if there is no sensible alternative. Textpad does most of the things you expect - syntax highlighting, multiple files, find in files, and regular expression search/replace - but it doesn’t do “projects” or interpretation of object oriented code like many similar editors. It does allow you to integrate external command line utilities and capture their output back into the editor though - even associating line numbers reported (by compilation, for example).

FileZilla
http://filezilla-project.org
FileZilla is probably the most solid and reliable FTP client available for Windows. Granted, it doesn’t have the bells and whistles of it’s commercial rivals - such as SmartFTP have - but it does the basics wonderfully. The only thing I wish it did (that it doesn’t) is allow right click opening of files from within the FTP client. After you have used CyberDuck allied with TextMate on the Mac, editing and altering files any other way is a bit of a drag.

Pidgin
www.pidgin.im
Pidgin is a multi-protocol Instant Messaging client that allows you to use all of your IM accounts at once. Pidgin can work with AIM, Bonjour, Gadu-Gadu, Google Talk, Groupwise, ICQ, IRC, MSN, MySpaceIM, QQ, SILC, SIMPLE, Sametime, XMPP, Yahoo!, and Zephyr (according to the website). I am routinely logged into the big IM networks with it, and pretty much rely on it from day to day. It’s solid, dependable and has no crap and no advertising in it. If you were wondering, the core messaging code in it is identical to Adium on the Mac. My favourite feature? The Jedi plugin that tells you when somebody else starts typing a message to you with the words “You feel a disturbance in the force…”

IrfanView
www.irfanview.com
IrfanView is a very fast, small, compact and innovative freeware (for non-commercial use) graphic viewer. It lets you open just about any bitmap graphics file, then resize, recolour, sharpen or crop it before re-saving it in just about any format. It’s tiny, it’s fast and it’s reliable. I use it to crop screenshots all the time.

Foxit Reader
www.foxitsoftware.com/pdf/rd_intro.php
Foxit Reader is a free PDF document viewer and printer, with incredible small size (only 2.55 M download size), breezing-fast launch speed and rich feature set. After suffering the launch time of Adobe Acrobat (perhaps the most bloated piece of software in the known universe) for years, Foxit is a breath of fresh air. It launches in under a second - even on my rubbish PC at home. It works and it’s fast.

It’s taken a while, but Sun Microsystems has finally made the Java SE and ME implementations “open source” - meaning anybody can download the source code and tinker with them.

Here’s the official announcement from James Gosling, the “father” of the Java programming language…

Dear Java Community,

As you can see, we’re making progress with our plans to open source Sun’s implementations of the Java platform. I’m happy to see Java technology embarking on a new journey with this official open-source licensing announcement.

Java technology has been a cornerstone of software development for more than a decade now — the community is ready for the next chapter, and the timing is right. As we stated at the JavaOne conference last May, the most crucial part of this decision was that we realized developers want to preserve compatibility, interoperability, and reliability. We intend to take steps to help make sure Java technology remains compatible, interoperable, and reliable. And we know the Java community feels the same way.

We will continue to do an immense amount of testing with the Java platform. Everything we do will get checked, rechecked, and we will debug rigorously. We expect that people who care about reliability and compatibility with the Java specification will continue to use and enhance Java technology.

One reason Java technology remains so popular is that it’s remarkably successful at spanning a lot of different domains. You can write software for application servers, cell phones, scientific programming, desktop applications, games, embedded software — the list is endless. We’re intend to maintain the support of this broad span of domains.

Sun continues to embrace open source, and I invite you to join us. There are all kinds of contributions you can make. If there’s a bug that you really care about, you can go work out a fix. (That’s one area where developers have made tens of thousands of contributions over the years.) I also invite you to help us add new features. If there’s new functionality that you really want in Java technology, the process is there to help you to add that to the platform as well.

Sincerely,

James Gosling

I’m guessing this is a direct result of Java being overtaken by C#, PHP and the impending arrival of Python, courtesy of the Google App Engine.

Sometimes the ignorance, idiocy and lies that come out of Gartner amaze me - as is the case this morning with the various news stories doing the rounds that Windows is “collapsing”.

Gartner analysts Michael Silver and Neil MacDonald appeared at a Gartner sponsored conference in Las Vegas, and (among other claims), stated that…

  • The Microsoft Windows ecosystem and customer situation is untenable
  • The operating system itself is collapsing due to two decades of legacy code and decisions
  • Windows will become irrelevant unless Microsoft does something about it

I’m guessing Gartner employs analysts who have no idea what is going on either with currently released Microsoft products, or those in development (and in the news) right now. Their sheer ignorance astounds me.

Silver and MacDonald go on to state

“Apple introduced its iPhone running OS X, but Microsoft requires a different product on handhelds because Windows Vista is too large, which makes application development, support and the user experience all more difficult,”

Flat out wrong! The version of OSX that runs on the iPhone is not the same as that which runs on desktop Macs.

The ignorance continues…

“We envision a very modular and virtualized world…. An OS, in this case Windows, will ride atop the hypervisor, but it will be much thinner, smaller and modular than it is today. Even the Win32 API set should be a module that can be deployed to maintain support for traditional Windows applications on some devices, but other[s] may not have that module installed.”

Have they no idea about the virtualisation software already released by Microsoft? (one of my colleagues has the installation media on his desk right now!)

Gartner have wound me up more and more in recent years - it would seem that commercial directors, managers and even the mainstream IT media take Gartner’s analyst opinions as fact, which is colossally stupid. Go have a read for yourself…

When I first used Microsoft Office 2007, after the initial shock of the menus not being there (the blow was softened by sight of “Windows Live Messenger” some months previously), I forgot all about it’s eschewing of the tenets that Windows Logo’s have been bestowed upon for the last 20 years.

It was brought sharply back into focus by my infinitely better half a couple of nights ago. She had been budgeting for our household in Microsoft Excel, and wanted to “Save As” what she had done. She couldn’t figure out how. It’s worth pointing out that she is a highly qualified management accountant, and has spent her entire career using computers. Among her peers she is perhaps the most technologically literate - she can even write HTML.

For those of you not using Office 2007 yet, let me show you Microsoft Word as an example…

If you had not seen Office 2007 before, would you be able to guess what you do to “Save As” ? You click on the logo at the top left. Really obvious, isn’t it. A bit like pressing the logo in the middle of your car steering wheel to start or stop the engine.

I don’t tend to notice such user interface failures - perhaps because I am a software developer, I use keystrokes for virtually everything (and become annoyed if something cannot be done with a keystroke). Thankfully ALT+F A still works in Microsoft Office. If it didn’t, I too would have been cursing, and complaining to the Microsoft gods just as strongly as my other half.

When I showed her where the save option was, her mouth hung open - and there was a pause of several moments before she started cursing more profanely and prodigiously.