Saturday, 20 December 2014

Design of everyday things and challenges

Keeping up with reading, this time I read The Design of Everyday Things. There are a lot products in the book that I have encountered, a sink I couldn't empty or a tap that looked weird and took a few seconds to work out rather than just being obvious. Apparently it is all poor design, most I agree with especially hob control layout. 

A5 sized book with green cover, yellow title, with image of teapot having handle and spout on same side

Take aways for me are,
  • Affordances, a chair affords sitting.
  • Anti-affordances, put a slope on a control panel so people don't put coffee on it.
  • Signifiers, a clue of what should happen or what to do.
  • The 5 whys.
  • Poke yoke, idiot proofing.
People make errors, slips and mistakes, in fact this is not always our fault, humans can live with the situation being a bit fuzzy, machines often need precision. Asking humans to be very precise is not a good idea. 

For all of this I bought some new shoe polish, cherry blossom, it is actually made in England and cheap. The point is the tin, instead of the wedge which has to be twisted all you do on these is press and the tin pops open. Simple effective design. 

Small tin of shoe polish with press here to open displayed at the bottom

Still been going at the coding challenges, the grey-scale image one, simple yet nice to see something other than console output for a challenge 

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace Challenge179
{
    class Program
    {
        static void Main(string[] args)
        {
            var path = @"C:\Users\R\Desktop\bikers.bmp";
            var pictureStream = new FileStream(path, FileMode.Open);
            var rawImage = new Bitmap(pictureStream);
           
            for (int i = 0; i < rawImage.Width /2; i++)
            {
                for (int j = 0; j < rawImage.Height; j++)
                {
                    Color pixelColor = rawImage.GetPixel(i, j);
                    var newColor = (int)Math.Round((pixelColor.R * 0.21) + (pixelColor.G * 0.72) + (pixelColor.B * 0.07));
                    rawImage.SetPixel(i, j, Color.FromArgb(newColor, newColor, newColor));
                }
            }
            rawImage.Save(pictureStream, ImageFormat.Bmp);
            pictureStream.Close();
        }
    }
}




Also properly tackling an intermediate challenge without asking for help or browsing the already prepared solutions, I am pleased. Challenge 181. 181 iterates over speed average speed camera logs to check for the limit and car registrations. 

Little bits, blog has now been up for six months, behind with my own website and should get on with the MVC book. Looked at a lot of algorithm and Maths books, how much this will help I don't know. Going to re-read the pragmatic programmer. Hopefully this will give some insight into how far or how little I have come. 

No comments:

Post a Comment