Monthly Archives: January 2008

So you want to use the funky XYZ framework?

If you work in software development trends come and go, and we are constantly inundated with new frameworks to learn. Whenever someone says to me “what do you think of this” I almost feel like they are saying if you can’t come up with something really negative we are going to throw it in – but because I like to keep things simple I usually go through this list in my head:

  • Does it make it more complex than it needs to be?
  • Does it really add any value beyond allowing me to +1 the font size on the “A” on my “Architect” t-shirt?
  • Who is going to support it?
  • Will it impact performance?
  • Does it solve a problem that actually exists?
  • Could I solve that problem easier with 10 lines of C# code?

… the list goes on. Essentially I fear complexity for the sake of it, software has so many inherent complexities that you can’t avoid that adding more just seems insane.

Now what one person calls complex, and what another calls a simplification really where the debate happens …

C# Dynamic Lookup – a suggestion.

Paul Stovell passed around a link to this blog post by Charlie Calvert and Mads Torgersen about the dynamic lookup feature in a future version of C#. Personally I like the feature and I can see myself using it in a few specific circumstances.

Reading through it, I’ve got two suggestions. We need to ability to use a string variable or literal to name the member that we are interacting with. This would be incredibly helpful for things like dynamic sorting scenarios in web applications.

The second suggestion is turning the dynamic lookup into a kind of duck typing facility where-by you can continue to use the object outside the dynamic scope provided you only access the members that you had accessed inside the dynamic scope – although I am not sure if that is terribly useful, just a thought.

Waiting for "The Ashes of Worlds"

Yesterday whilst on a plane to Sydney I finally finished Metal Swarm by Kevin J. Anderson. Metal Swarm is book six in a series called “The Saga of the Seven Suns” which tells the story of humanity, elemental beings and a few alien races and other sentient life forms.

If you are into space opera then I strongly encourage you to pick up this series. Each book continues the overall story but has a number of self contained sub plots. This last book was quite hard to get through because I felt that after book five we were well past the climax but it finally pulled itself up and I am keen to get onto the next book “The Ashes of Worlds“. Unfortunately the seventh and final book in the series hasn’t been published yet so I am going to have to wait, just like I am waiting for The Temporal Void which will add to the Commonwealth Universe created by Peter F. Hamilton.

Today I went to the book shop and picked up “The New Space Opera” which I believe is a collection of short stories by a number of authors. Should make for some good bite size reading. I’d love to get into writing short stories in the sci-fi genre – maybe one day inspiration will take me.

How To: Create a UI mock-up with ArtRage

Earlier today Darren Neimke posted up about the various mock-up techniques he has seen out there in the wild and used one of my crayon-style drawings as one example. The mock-up he used was a simple screen that a user would visit after receiving a URL in an e-mail which allows them to add meta-data to tag to help add structure to the tag cloud.

Since I thought folks might be interested, I thought I would write up a follow-up to Darrren’s post which explained a little bit about the process I used to come up with those mock-ups. It isn’t rocket science so this should be a fairly short post 🙂

The Tools

The first thing to consider is the tools that I use. I’m lucky enough to be a Tablet PC user which means that I can use free hand drawing tools to quickly sketch something out. In fact, being about to sketch things out like I would on a Napkin was one of the big drivers for me getting a Tablet PC – I wanted that experience specifically.

Other than having a Tablet PC I would remiss not to mention the awesome software from AmbientDesign, ArtRage (I am using ArtRage 2.5 Full Edition). ArtRage is specifically designed for use with digitisers and absolutely comes into its own with a Tablet PC. It provides a textured drawing surface with a tools with adjustable attributes (such as wetness, pressure etc).

ArtRage0

Obviously when using the pen you don’t get the same feel as a brush would give you on paper but the way the tool tracks the stroke and renders the line makes it seem like the least computerish computer stroke I’ve ever seen. You can actually see the texture of the stroke on the screen, and then scrape the extra paint loaded on the surface away – leaving a mark. Very realistic effect.

The Process

Starting with a blank canvas can be pretty scary so I’ve actually got a technique that gets me into the mood and allows me a few moments of think time. Basically I’ll grab a sharpie, choose a colour and just build a textured background. While I’m doing this I’m really just loading all the basic requirements for the page I need into my head.

1

2

One of the nice side effects of this is that if I can’t think what the page should look like in a few strokes of the brush, then I am probably trying to get it to do too much (the notable exception to this would be portal pages I suppose). Once I know where I am going I frame the page.

3

4

And this is really where I get into fleshing out the page. Actually here I really need to give credit to the 37signals guys that got me going down this path. They pulled together a book called Getting Real which captured their design/development process and talked about a concept called “epicenter design“.

You might think I’ve ignored their advice about framing the page, but if you look carefully all the work I’ve done up until now isn’t about colour or style (the back of the page isn’t going to be orange – that was just to get my creative juices flowing), and the frame I drew wasn’t the border of some inner div on the page, it is actually the edge of the browser.

So epicenter design then, for me, is about designing that critical functionality into the page. Usually I’ll just do a bit of a skeleton using a pencil tool, maybe with different gray scales just to add a bit of contrast for the different types of UI elements.

In this case I am designing a simple little application where our guys can basically vote on various aspects of their working day. I’ll leave out why we might want to do this, but just accept for now that it is something that I think we need as a bit of a real-time business intelligence tool.

5

Once I am happy with the general function of the page I *might* add a bit of colour. This is usually more to do with ensuring the consumer of the mock-up doesn’t have to squint so much and can understand the intent of the various UI elements. In this case adding red and green to the buttons really helps convey a positive and negative feel.

6

If I’m happy with the function of the page I might add a little bit more polish just to compartmentalise the page a little bit but I would expect most HTML gurus to do this anyway whilst they are tweaking the layout a bit.

7

And there we have the finished product, well, a suggestion of what the finished product should look like. There isn’t much to it, and I think that there are plenty of places where I could improve my technique.

  • Remembering to use layers so I can “fix” things; in this case I wanted to add more of a gradient to the section behind the centre of the page, but I forgot to put in layers so I couldn’t, that is why I’ve got the diagonal lines to add some texture there.
  • Capturing movement in the page; when [+1] or [-1] is pressed I want some kind of fade-in/fade-out popup to acknowledge their input.

Anyway – that is how I do it, like Darren I am interested in seeing what others do.

Beautiful machines.

Roger Lawrence over at the Microsoft DPE team is talking about his Toshiba
Portege R500
. Personally I like the look of the R400 better. Obviously an older machine, but I can’t go past a Tablet these days – they are just too damned useful. I’m waiting to order a new Fujitsu T4220, it’ll look exactly the same as my current Tablet (shame, because the R400 looks nicer), but it will back an awesome developer sized punch.

Knowing my luck, as soon as I buy it something as powerful, yet more stylish will come out 🙂

Conspiracy Theory: Google is training a neural network.

image…and that is the ability to quickly perform a search. However, when I simply type http://www.google.com into my browser, I get this sorry page with a Captcha down the bottom. It is starting to become annoying, I haven’t even searched for anything yet – I’m just hitting their homepage.

Actually I think that there is something behind this, because what they are doing is so bone headed that there must be an ulterior motive. I think that they are training a neural net.

OK, so before you label me as a conspiracy theorist lets look at it. Google probably gets more hits than any other site on the web. Now, if they start getting their users to start solving captchas then they basically have one half of a feedback mechanism required for training a neural net. Eventually they’ll come up with a network that can solve captchas and allow the Google search-bot to bypass those simple “are you a human” checks that people have all over the place.

In fact, given the speed with which people will be hitting the Google site they may not even need the neural network because they could just serve up replicas of the captchas that their search-bot is coming across and get a search user to solve it real-time. The Sorry screen is just an interface that Google is using to harness the human brain.

We already know Google is interested in this space, and this is just a way of ramping up their computational capability.