February 2011

I started my blog back in December 2010 and it's still going strong. I've posted at least once post a month since then, so feel free to browse through the archives.

My Favourite Pen Collection

It’s quite hard to pick an individual favourite pen because each one is handy for different purposes. However a good start is to write about my favourite pen collection. This is an Edwin pencil case purchased from JetPens which contains a collection I call my “White Pens” – you’ll see why.

Edwin Pencil Case from Japan

The pencil case itself has two main compartments which open right out. Included are a number of pockets – though I mainly just keep a set of pens in each compartment, and only use the pockets when I need them.

My main pens are all black – with a pencil and eraser added in for good measure – both of which are extremely handy for university work. I generally prefer using black ink for writing, but I do like to change my inks. I’m rather fond of Uni’s Jetstream ink – but I also really like their gel inks. This is what makes up the main body of the pens, with a couple of extras to fill in the missing pieces.

I also have a set of colour inks which I use when making notes, creating diagrams and drawing mind-maps. These are all 0.5 mm and look really good together.

There’s always favourites among favourites – and in this case it’s the Jetstream Alpha Gel and the Kuru Toga High Grade. The pen is super comfortable and very thin (I put a 0.5 mm refill in there). It’s generally awesome for writing in small Moleskine notebooks. Whereas the pencil has a super cool revolving mechanism inside which keeps the lead sharp, this is what I use for writing most of the time while I’m at work.

Find out more about these pens:

Principles and actions for Metro apps

Metro User Interface Design

I saw that there was a very interesting post on the Windows Phone Developer Blog about the Metro design philosophy titled ‘From Transportation to Pixels‘ and I wanted to add a few thoughts on the process of designing an application which uses Metro.

There’s always a lot of fads which come and go in user interface design. (Glossy buttons anyone?) but good design lasts forever. One of my favourite designers is Dieter Rams – some of the stuff he made with Braun was very impressive (as Apple have noticed).

Dieter Rams ‘good design’ principles

  • Good design makes a product useful
  • Good design is aesthetic
  • Good design helps us to understand a product
  • Good design is unobtrusive
  • Good design is honest
  • Good design is durable
  • Good design is consequent to the last detail
  • Good design is concerned with the environment
  • Good design is as little design as possible

While this is mainly about hardware, many the principles still hold strong for software – including applications designed to follow the principles of the Metro design language.

Actions for designing Metro applications

Keep it light & simple

  • Focus on primary task
  • Do a lot with very little
  • Fiercely reduce unnecessary elements
  • Use whitespace to delight your users
  • Make sure things feel fast and responsive

Typography is ideal for information

  • Remember that type is beautiful
  • Use clear, straightforward information design
  • Be uncompromising in sensitivity to weight, balance and scale

Motion brings your app to life

  • Make it feel responsive and alive
  • Use transitions to give context and improve usability
  • Create depth and dimension by using motion

Focus on content, not chrome

  • Delight users through the content instead of decoration
  • Reduce visuals that are not content to the minimum
  • Content can become the UI so users interact with the content directly

Be honest

  • Design for the form factor
  • Be authentically digital
  • Don’t try to make it what it’s NOT
  • Always be direct

While I do believe that the Metro design principles are super important, I do not feel the need to treat them like a fad and just start redesigning everything in the name of Metro. For example – I have seen people update their websites and say “Hey look at my new Metro site!” which just makes me think they are missing the point…

Follow the actions listed above at all stages of your application design, and make sure it fits in with the good design principles that has lasted for so many years. Keep at it, and you can’t go wrong.

But don’t kid yourself – Metro is not the ultimate interface, it’s just the (very cool) start of a whole new generation.

Application Bar changes coming in Windows Phone 7

As expected Microsoft has announced plenty of stuff at MWC. Including the following features:

  • Multitasking
  • Twitter integration
  • Office on SkyDrive
  • Internet Explorer 9

As I said, totally expected. However I did see a larger screenshot of the new Internet Explorer 9 over on Tom Warren’s site.

Application Bar Changes in Windows Phone 7

Notice that the Application Bar contains something other than buttons. Very cool. Looks like this change will be coming to the platform shortly!

Photographing Jupiter

I remember the first photo I took of Jupiter – well the first one that mattered anyway. I’d recently got a zoom adapter for my trusty old Canon G9 and I thought I’d try pointing it at Jupiter to see what I’d get. After a lot of playing with the settings, I managed to get this shot -

Jupiter Photo

What you can see here is Jupiter and some of it’s moons in a big mess of light. At first it just looks like some kind of camera movement – but upon checking WorldWide Telescope I confirmed that this was the correct location of the moons from my location at that time of night.

I was hooked, naturally. I thought I’d just share a few of the more recent photos of Jupiter – both of which were taken with my shiny new Canon 7D -

Photo of Jupiter and moons through the clouds

Jupiter’s moons through the clouds.

Photo of Jupiter and Uranus

Jupiter and Uranus (the bluish light at the top left)

You can see more of my photography on my Flickr website.

Download xsd.exe

Microsoft has a nifty little tool called xsd.exe which lets you create serializable classes for the .NET framework from an XSD or XML file.

PS>.\xsd juliankay.xsd /c /l:cs
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'C:\Users\Julian.Kay\Desktop\juliankay.cs'.

Unfortunately it doesn’t come with the latest versions of Visual Studio and you have to download the Windows SDK to get hold of it.

Or you can just download it here!

Microsoft’s Web Platform Installer

As a developer on the Microsoft Platform, there’s nothing as simple as setting up your development machine with the Web Platform Installer.

Version 3.0 – which is the latest at the time of this post – includes fantastic tools like WebMatrix and Visual Studio Express, as well as cutting-edge frameworks like the new Orchard CMS and the latest version of ASP.NET MVC.

Everything can be downloaded for you, and any dependancies are automatically selected as required. I remember how tricky it was before: you had to download all this stuff, then click on each installer in turn. What a pain!

But don’t click all those links above, just check out microsoft.com/web.

Too much codes?

So recently my coding style has changed. Probably because I write more F# than I used to! But there’s something that just seems over the top when I see code like this:

/// <summary>
/// A flag to keep track of whether help message was shown earlier.
/// </summary>
private static bool helpShown = false;

I understand why we have these all this extra fluff, but how much am I really getting for these extra lines?

This variable is not just called ‘bool1’ or something odd – it’s pretty self documenting. We already know that a Boolean variable is initialized as false by default so that’s not required either.

Is it wrong that I’d just want to type this:

private static bool helpShown;