Archive for the ‘design’ Category

Faking nature in your work environment.

Tuesday, July 5th, 2011

canary-wharf-one

Once upon a time I worked in a digital agency, in London, in Canary Wharf, also known as “Thatcher’s armpit”. The office was fairly standard, it was on the 14th floor and on all the other floors were home to banking institutions. Our office looked a bit like a bank. The tables were those horrible standard tables you get in offices with the stupid little walls to segregate you from talking to one another. The ceiling was a hanging ceiling made of the nasty white tiles with strip lighting that made you look like you had a terminal disease. For all intensive purposes it felt like a bank.

But there was one redeeming feature of this office, that made it not so bank-like, the back wall was covered in wallpaper that had a forest scene painted printed on it.

At the time I was a hardcore lonestar programmer (not something I would recommend these days), coding late, headphones on, many hours spent in my head and in the machine in front of me. After an hour or so of intensive logic thought based activity, often, I would get up to go get a glass of water and relax and more often than not, I would spend a few moments inspecting the wall paper.

Something about it, enveloped you. The level of detail, everytime you looked at it, you would find something new, something you hadn’t seen before. It was refreshing, regenerating, revitalizing. And then almost effortlessly you jumped back into the code and back into the flow.

Years later, I am reading the book: 125 design principles, a recommendation from my father, and I was amused to find very early on a mention of ‘the biophilia effect’ and more specifically the ‘attention restoration theory’.The later theory states:

Attention Restoration Theory (ART) asserts that people can concentrate better after spending time in nature, or even looking at scenes of nature. Natural environments abound with “soft fascinations” which a person can reflect upon in “effortless attention”, such as clouds moving across the sky, leaves rustling in a breeze or water bubbling over rocks in a stream.

The book further describes the science of how nature scenery affects us as creatures and should be specifically “in environments where learning, healing and concentration are paramount”. So now it begins to make sense why back in that office, that wall paper made so much of a difference to my working environment. Programming is nothing if not something that requires exceptional concentration abilities, and the ability to be able to quickly relax and regenerate is exceedingly important.

So, now I find myself as the manager and I understand the ‘why’, so lets get on with the ‘how’. Below is a picture of my new attention restoring office.

wp_000070-2_resize

The best company I found to help is wallpapermurals.co.uk, the pictures are good quality and indeed help you to relax when you most need it.

I highly recommend you go forth, and even if you work in the drabbest of banks, add a little regenerative imagery to your wall. It will make you feel that tiny bit better.

The truth about innovation

Friday, July 1st, 2011

I thought I would share the slide deck for a short talk I held on the truth about innovation in agile environments.

Google maps, bubble biased?

Friday, July 1st, 2011

Yesterday, Google launched wave v2.0, er, I mean Google+.

Rather than do an extensive product review and tell you why it will fail, I’ll let the product speak for itself, suffice to say a company who’s mantra is organising the worlds information, it never going to be a real success in the social arena. But instead I want to talk about the small visual changes they have made to Google Maps, specifically, to the place bubble.

googlemaps

Now, you may be wondering what the change is, it’s quite subtle, the eagel eye’d of you will notice that the bubble, is no longer a bubble, infact it’s now a box. Yep. It’s a box. Look again. It’s a box.

So why would Google, the company who pioneered cutting edge web technologies suddenly change to sharp corners?

When I worked as a CSS developer, CSS3 didn’t exist. The only way to do rounded corner boxes was to use a million div elements all with various different background image strategies. It was hell. Whenever you heard a designer say, I want a rounded box, your heart would sink and you could cry salty tears as you watched your clean, semantic markup explode, into a chaotic mess.

But now, all you have to do is set border-radius. It’s as easy as eating a piece of Normas cherry pie, with ice cream, and sugar sprinkled ontop. So why would Google revert to sharp corners? Well, maybe like me they read page 63 of “the universal principles of design” on contour bias.

To quote the book:

universal-principles-of-design

“…Objects with pointed features, elicited stronger activations in the region of the brain related to associative processing, meaning that although angular objects were less liked they elicited a deeper level of processing that did the contoured objects - they were in effect, more interesting and more thought-provoking to look at….”

Basically the book goes on to say that humans are implicitly aware of sharp corners, because they are more dangerous than soft ones, for example an axe, when used in conjunction with your head, could be very dangerous, however a banana, not so dangerous. So a banana is liked more, but an axe is paid more attention to avoid the head embedding scenario.

I just wish I had known this several years ago, when I was fighting the rounded corner box battle…

BDD + CSS = DDCSS, introducing a new dsl for the web.

Tuesday, March 8th, 2011

Usually when I have an idea, I try to code it first, then often I get half way through and get side tracked by something else and the idea never gets finished and so I never get to write about it. This time I thought I would experiment and write the idea up first before writing any code, and then if I never get to write it and it becomes famous, at least I can say, “Well, I thought of that ages ago”.

I’m a big fan of Dan North, especially some of the concepts he pioneered like BDD. It really changed the way I thought about code, writing literate programming may have been around for some time but this was the first introduction I had to it.

I’ve also been around presentation code and CSS for a long time. In fact it was one of the first declarative languages I mastered. When I was earning a living through CSS, it was more of an artform, a careful balance between unrealistic requirements from print turned digital designers, browser quirks, performance and simplicity were all key to creating what you could call clean code.

Now, the challenges are different with CSS, you don’t have to worry so much about cross browser quirks as the older out of date browsers have less influence. You can use more CSS3 properties that take away a lot of the old pain of for example rounded corners and enable more of the print designs to be created. Performance can be automatically optimized with compressors, but you still have the problem of the language of CSS.

There have been some attempts to make CSS more like a classic programming language following the tenants of inherence and mixins. To be honest I think this misses the point.

The most common use of CSS is to enable a coder to convert the static designs of a designer into a working web site. But the static designs are only part of the story. In agile we say that a story card is a place holder for a conversation. When you start every story it is your job to go to the designer and have a conversation. That conversation transfers knowledge about the design. For example, you might go and ask for the specific hex colour of a module or the number of pixels padding it has or the radius of the round corners.

Then you convert that data into CSS. So CSS is already a DSL, just not a very good one. It does not satisfy the programming domain and it does not satisfy the design domain. So ok, we could go the way of less and try to make CSS more like a programming language, but why not go the other way like we do in BDD? Why not let’s use natural language from the design domain to help us create more readable code that generates CSS, code that the designer and programmer can use alike to achieve their goals.

Introducing DDCSS, or Design driven cascading style sheets.

Lets take the following element of design from a famous website:

Now in terms of CSS, it would look something like this:

.moduleA {

    border: 1px solid red;
    margin: 0 10px 5px 10px;
    padding-top: 10px;
    width: 200px;

}

Now in DDCSS it would look more like this:


    ...
    a generic Module A has
    a 1px solid red border,
    a 0 margin-top,
    a 10px margin-left and margin-right and padding-top
    a 200px width.

So, not much difference so far, Why bother? Well, how often is CSS this simple? More likey, you do this CSS and then it doesn’t work in a certain scenario, so you go back to the designer and you find out a variation. Then your code begins to look something like this:

.moduleA {

    border: 1px solid red;
    margin: 0 10px 5px 10px;
    padding-top: 10px;
    width: 200px;

}

.situationB .moduleA {

    width: 150px;

}

And this is where DDCSS starts to look better and much less terse than the raw CSS.


    ...
    a generic Module A has
    a 1px solid red border,
    a 0 margin-top,
    a 10px margin-left and margin-right and padding-top,
    a 200px width,

   Given Module A is inside Scenario B
   Then Module A has
   a 150px width.

Now using a DSL more like this, we could start to easily share code between our designer and programmer. What’s more is it creates an easy accesible way for the two to have a discussion, if your DDCSS is starting to look really messy or there is a lot of repetition with only tiny changes, then maybe it time to take it back to the designer and say we have a consistency problem. Not only that but it’s something you could take to a third party like a product owner to look through and have discussions about what could be changed. Finally I allows small changes to be edited directly by the designer. It becomes both a code generating style guide and a reference to write tests against.

So, finally, now I’ve written about it - anyone interested in building it?

Tiny Berlin

Friday, August 20th, 2010

Little Big Berlin from pilpop on Vimeo.

Remember this effect? Perspective control lens is back, and bigger and better.

switching off pressure sensitivity in GIMP when using a bamboo touch tablet

Friday, August 20th, 2010

In the toolbox, select the pencil or brush tool and open up the Brush Dynamics section, by clicking on the ‘plus (+)’ symbol. Then deselect ‘Pressure:’ under the ‘opacity’ column.

how to not get annoyed[/caption]