Word Hard At Being Simple

This is one of the earliest nuggets of wisdom I can remember my father giving me. He was speaking about a preacher (Spurgeon), but the same applies in any area of life.

Work hard at making things simple.

For the developer, there are many implications.

  1. Work hard at making an interface that is simple.

    Let’s face it, this one is so important that it must be in our planning from right at the beginning. You can’t get away with having a cludgy interface, because, even if you have market share now (or whatever), someone will come along and do it better. It doesn’t take much if you work hard at the beginning on this.

  2. Work hard at the power behind the interface.

    This goes hand in hand with the first point.

Jamash, The Software to Rule

If only we could build our dreams.

Jamash would be my baby.

It wouldn’t be actual applications, but rather technology. It would combine all the methodologies I’ve learned over the past couple of years along with all the stuff I’ve/We’ve dreamed of. A clean structure for plugins. Unparalleled User Interface. Error/Action reporting & logging. Simple (but powerful) interface between the web and desktop. In fact, it would bridge the gap like nothing before it. You could develop single systems, client/server, or even a super-structure of nodes and leaves throughout the world.

Jamash would be the grail, for myself at least.

jamash_001

I guess I’ve never thought about that kind of long-term achievement within software development. I mean, I’ve got plenty of dreams, but never crystalised into that kind of purpose.

Jamash would do that. It could be a gaming platform, because that’s really one of my secret unfulfilled desires. Secret Ha ha.

Jamash.

Say it slow. Say it loud. Jamash.

It roles off the tongue.

Jamash.

Projman .. My first WebBaby

Welcome to the intial release (in a pre pre pre alpha form, ha ha) of Projman .. a Project Management System that allows you to access your Todo’s from anywhere you can access the web.

As it is an initial product, the extent of it’s functionality is small. Basic. But the potential is there I believe.

One exciting aspect of this "project" is that it showcases the wonderful NetTalk 4 (WebServices).

I have had some trouble with child browses, but Bruce (i believe i read this somewhere) is on the ball, adding support for this very shortly (if not already). Once I can get them working, the functionality will expand (think Sub-Tasks, very important).

Edit: After checking the latest version of NetTalk 4 .. these are indeed implemented. So the next version of Projman should include them. Nice.

Visit the Projman page, or just download it.

Cheers,

p.s.

As of 0.1.0 you must point your web browser to 127.0.0.1:88 .. a future version will allow the user to change this.

p.p.s.

There may be an issue with the Install. It could be that I’ve missed a dll that is inherent to clarion. It’s harder to test for, because no "errors" come up telling you what dll is missing.

The Day My Brain Broke

Yesterday was a long day.

You know what I’m talking about.

There were a few uglies that reared their head in the project. I was sure I’d smashed them to pieces before. I knew there was an answer.

So, obviously, instead of actually utilising the problem-solving skills I’ve worked hard at the last few years, my brain froze. Following is the conversation I had.

It’s hopeless. Nothing is working. It’s all a shambles. I can’t get anything to work. You may as well go home and take a nap. Mmmmmmm, chicken and chips.

Also, here’s an awesome rendering of my state of mind:

testing_pre

So what was the solution?

There’s lots of fancy names. I simply use :: DeTransCombuSegmeFreeTationalism .. or:

Stop. Break things down. Take a look at each piece in the puzzle.

It was around 5pm, which is the best time to come back to a problem. I’d done some other work for a few hours. So I then went back to the teaching of sensei .. or something like that.

It took approximately .. about .. 2 minutes to find the problem. Actually less, but implementation is added into that :).

Just to show I’m not a one-picture-man-band .. here’s the after shot:

testing_post

So, to everyone who bullrushes into problems (like I did), not thinking, not using the methodologies that work so well .. please continue! Makes me feel okay .. heh heh. Well, no, don’t continue. Take a leaf out of my hard-learned book.

It’s always better to discipline your mind to run in certain patterns of problem-solving. Always. So that even the small problems are done in this way, examining them, breaking them down, looking for the far-reaching consequences.

Anyway, as our favourite admantium bone-covered mutant hero has been known to propound .. ‘Nuff Said.

Development Vice

I never watched Miami Vice .. but I know a fair amount about the second word in that equation.

When you really get into development, you know that weeks, months, even for some, years can go by without you raising your head out of the code/development. It’s a wonderful thing, a gift perhaps.

But there’s also a flip-side. At least, for me there is.

I have always, looooong time before I was into development, loved computer games. From when Dad bought home our first, green-screen XT (i think) pc .. with a version of space invaders on it (later we got a donkey kong clone and a game called Big Top), they’ve been something that could bring me a lot of joy.

However, as you can see very clearly from the picture below :) .. the same wonderful ability to jump down a hole and disappear within a project for many moons, also transfers to other activities.

vices_001

Some might not see a problem. I’m not laying out judgement on anyone else.

Well. judgement has many flavours .. but seriously .. it can be, without proper discipline a real burden.

In fact, the best defence is to just resist altogether. Certain other companions in our little band of coding warriors do it very well. I can do it okay .. until a game like Oblivion comes along.

What’s the solution? I’m not sure. Each time is new and fresh in it’s crazy vice-like grip.

I’m over the worst of it now. The game has lost some of the allure it had. But I don’t like that being the reason I’m coming up for air. Today I got excited again about non-work development. And it was good. I’ve done some blogging, some dev, some thinking / planning. It’s been good to get back.

Now, if only I could close the gates of oblivion, maybe I could really get some work done :).

Remembering more.

On a different aspect, but same partial subject matter .. If Oblivion was a business application, you can bet it would be the Google who would have made it. Or at least, someone with an awesome understanding of almost every aspect. The gameplay, the interface, technical functionality, the hype-monkey, the fans, the players, the press, .. it’s all been a really amazing wheel to watch turning.

I’ve never played a game like this, where I can watch as a mounted guard jumps from his horse and races off into a nearby bandit camp, bringing blood and death with my lending a hand. And then, to see said guard actually looting the corpses before I got to them.

Nice. Very nice.

It’s that kind of development that stirs the blood. Not just gaming, any sphere .. but the stuff that is absolutely biting off more than it can chew, and getting it pretty well right. Learning from previous projects, putting it together.

A good memory. Not just remembering, but I’d think actually putting all the lessons into a brain that would bring them into the next development. Becuase too often we can learn something from a project, forget, and do it similarly the next time around.

Anyway.

‘Nuff Said.

Uma Is Watching Me

‘Over here in Oz, there’s some kind of magazine that’s advertising it’s latest cover all over the bus-stops etc. The one I walk past every day has had quite a few different posters in it.

For the past week or so, it’s been a big picture of Uma’s head/torso staring at me. It’s kind of haunting.

And this morning it got me thinking.

What instances within Development do we have the chance to bombard our users with whatever kind of advertising we wish?

Well, firstly. I think there will be some new-fangled stuff coming along in the next couple of years. Innovation isn’t done yet in our domain.

But the biggest one that springs to mind is … Loading Screens.

Of course, these are mainly within the realm of games, but not entirely. The OS gets a chance. Adobe software has it in the splash screen that starts up, running all the initialisation stuff. Which is entirely similar to how Sims did it. "Reticulating Splines" in-particular has stayed in my memory, even though it was my wife who played the game.

But Loading Screens, and other minor off-shoot paradigm-ee screens, are very effective when done well. Most games these days give you hints about the game. General hints. Some pictures of some format or another will appear.

I installed Oblivion last night, and it had some cool pictures on install.

World of Warcraft has recently upgraded to giving hint out on their loading screen. Along with cool drawings of their world (these were always there, well, since retail at least).

But what about other forms of software? Surely there are ways to subtly ingrate some form of advertising, whether it be of the product in question, or other, more calculated, subjects.

The problem with software, business software mostly, is that people don’t want to wait. I want to fire the program up and use it.

So that just means that the advertising has to be smarter. Games have an in. People are willing to accept some length of load times.

But other applications need to look at things differently. I’m not sure about where this thought is headed. I don’t have anything definitive yet .. but it’s not a bad one.

And anyway, this thought has run it’s course for the moment.

So if you’ve got some ideas, comment away. If not .. (with the sound of the Hypno-Toad) Comment Away.

Process & Initiative

I’ve got to post this. Not enough yet for an article, maybe later.

I’ve been learning a valuable lessons lately. The art of interfaces and processes. Where to put process, when to push it into the interface, how to create said interface?

When I put a button on an update window, let’s say it’s called ‘Send Email’, that is a Process. The process is held within an update window. To reach it, the User has to enter through a browse, or some kind of searching functionality, which really is a browse anyway.

Why should the User have to enter the update window to send the email? Well, the biggest reason is because that particular record doesnt’ have an email address field filled in. True. Okay.

But that’s like ONCE. What about the infinite next-times when the User wants to send an email?

These thoughts are new, and not nearly fully-formed .. but they are on the right track i believe. Of course, kudos to the brain that pushed me down this road.

Anyway. So we need to think of a intuitive interface. Functionality that cuts out any uneccessary steps. The most immediate thought is to implement a right-click popup menu on the browse, if it’s not already there. You know the one .. windows uses them extensively. They’re pretty good value.

Right-click, choose ‘Send Email’, and Bling, up pops an email window.

Now, I’ve missed a reason in here. I think there’s more to the Process/Interface argument than just "let’s move it out of this child screen onto the parent screen", although that’s a pretty big nice reason. Having process on the parent screen would probably eliminate errors that occur in update screens. Would relieve the update screen from a lot of logic, having to worry about things.

The more I go down this rabbit hole, the more questions arise. This brain doesn’t have the power at the moment. Gotta sleep. So more later. Posting this should be enough to keep it alive. Will think some more.