On Icons

July 12, 2012

As I’m responsible for both the code and the graphics of Grasshopper™, icon design is a significant part of my job. In fact, my very first productive work on computers at all was icon design. When I was 14-ish my dad got an Acorn RISC PC with RISC OS 3.5 and using applications such as Paint, Draw, Artworks and later on PhotoDesk and Compo I spend many a happy afternoon replacing icons for file formats, applications and toolbars. It wasn’t until the start of my actual programming career that icon design became a vital part of my skill set and I have a suspicion that —just like programming itself— it’s something you simply cannot master. No matter how much code you write or how many icons you draw, there’s always room for improvement.

These days I work on Windows and I primarily use Xara for my icon design, augmented by Rhino for complicated 3D shapes and Paint.NET for pixel post-processing. Over the years I have amassed some opinions, guidelines and techniques on the matter, some of which I’d like to share with all of you. Let’s start with what icons are and what they should not be.

  1. Icons are visual cues that aid in the process of navigation, messaging or analysis.
  2. Icons are conduits of love from developers to users.
  3. Icons are not descriptions of features.
  4. Icons are not art.

Read the rest of this entry »

This is the second instalment in a collection of articles about .NET fundamentals. The first one dealt with Reference and Value types, or “classes” and “structures” as they are known in VB. In this article I’ll discuss the difference between classes and interfaces. But first allow me to bloviate about OOP.

Object Oriented Programming (OOP) is a programming paradigm that has proven very successful indeed. The bulk of programming languages you’ve heard about will  be based on or at least support OOP; LISP, C++, Pascal, Python, the entire .NET framework, the list goes on. I won’t dive into a full description of what OOP is and how it works, there’s plenty of online resources for that already. I’ll just give you a basic breakdown of the concepts.

Read the rest of this entry »