jamesdeakin.com

Icon

digital marketing consultant

Checklists

Checklists are brilliant. I have used them for years. They are not glamorous but they are one of the best tools you can use. I recently read The Checklist Manifesto: How to get things right (Hardcover)


book which very eloquently extols their virtues. I will be sharing some of the lists I use to make my job and life easier.

Proverb Mashup

I had a strange Sunday, I wrote a script that mashes up text. I fed it some English proverbs and this was the result. Thing is i’m not sure what possessed me to do that.

A golden key  as strong as its weakest link
A good beginning  does you good
A cat may  change its spots
A penny saved  does you good
A chain is only  cannot stand
A little of what you fancy  has a fool for his client
A journey of a thousand miles  is a penny earned
A new broom  as good as a mile
A house is  begins with a single step
A good man  are soon parted
A golden key  is a dangerous thing
A little of what you fancy  makes a good ending
A change is  is a penny earned
A leopard cannot  is hard to find
A fool and his money  look at a king
A golden key  is hard to find
A cat may  has a fool for his client
A good beginning  not a home
A leopard cannot  sweeps clean
A chain is only  is a friend indeed
A man who is his own lawyer as strong as its weakest link
A drowning man is a dangerous thing
A golden key sweeps clean
A change is has a fool for his client
A house is sweeps clean
A miss is is a dangerous thing
A miss is begins with a single step
A good beginning is a dangerous thing
A golden key as good as a mile
A new broom as good as a mile
A new broom has a fool for his client
A little knowledge look at a king
A fool and his money has a fool for his client
A drowning man can open any door
A drowning man will clutch at a straw
A golden key will clutch at a straw
A house is as good as a mile
A good man as good as a rest
A house divided against itself cannot stand
A change is is a friend indeed
A drowning man begins with a single step
A journey of a thousand miles cannot stand
A change is is hard to find
A little knowledge is a friend indeed
A drowning man as strong as its weakest link
A house is not a home
A good man can open any door
A change is is a penny earned
A chain is only as good as a mile
A little of what you fancy begins with a single step
A golden key makes a good ending
A penny saved is hard to find
A penny saved are soon parted
A little knowledge will clutch at a straw
A fool and his money as strong as its weakest link
A drowning man will clutch at a straw
A fool and his money is a friend indeed
A fool and his money as good as a mile
A miss is as strong as its weakest link
A chain is only not a home
A journey of a thousand miles will clutch at a straw
A penny saved cannot stand
A little knowledge is a dangerous thing
A change is is hard to find
A golden key is a friend indeed
A drowning man is hard to find
A leopard  are soon parted
A little of what you fancy does you good
A leopard  is a penny earned
A house divided against itself has a fool for his client
A change is is hard to find
A good beginning as good as a mile
A leopard  as strong as its weakest link
A change is as good as a mile
A house is cannot change its spots
A fool and his money is hard to find
A good beginning is a friend indeed
A good man cannot change its spots
A golden key as good as a rest
A miss is is a dangerous thing

Finding the holes in the boat

Find problems and deal with them before they sink your project. Use a risk matrix. Before I commit to delivering a project I often do the following.

  1. Have a negative brain storm
  2. Size up the risks with a risk matrix

Negative brainstorming simply means taking the time to think of all the things that might go wrong. With technology project there are usually lots of things that could be a problem. Everything from late assets to legal issues. I have done this so often that I now have a checklist of things that could go wrong. I use that for the basis and try to think of any others that might crop up.  There are usually lots. Its important to know how big a risk is, if the risk is large enough you might want to avoid the project completely or renegotiate the deliverables. Mostly you will want to know what order to deal with them in, you need to prioritise?

This is where a risk matrix comes in handy. You plot the likelihood of occurrence against the impact if it happens. You can then times the scores to get an indication of how big a risk is. I like to use a 5 point scale. That way you can times the result by 4 and get an approximate percentage.  You can then brainstorm ways to mitigate the risks. Here is an example matrix.

The second death star was built by an agile project manager

You can tell by the fact that they had obviously prioritized correctly. They had identified the features that were of high business value and delivered them before the others. That’s why the Emperor was able to gloat about having a fully functional Deathstar. Ok some of the toilets didn’t work but they were first to market with the big planet killing particle beam and that gave the Empire a business advantage.

I wouldn’t recommend Darth’s management style though. The empire suffered from high staff turnover.

What, who, how, why code

Recently I realized what is missing from programming languages. What, why and who. 

All we have is how. When you fire up an IDE or open a file in a text editor all you get lots of how. 

Stuff like. 

If(camera.isavailable == true)
{
    camera.snapShot();
}

You have to figure out the what from the how. You read that and you realize that there is some object called camera and that it has a property that says if it’s currently available and that if it is that it should execute its snapShot(); method. None of that explicitly tells you what the person who wrote the code was trying to do, you have to guess. 

Why does he want to take a snap shot? you would have to read a lot of code to know for sure and in some cases you might not be able to tell even if you read all the code in the whole app.

Why is even worse. There are lots of times that I have been left wondering why a developer tried to do something In a particular way. Often that cost me and the projects I was working on lots of time. 

Who is in most cases non existent. Ok a good IDE usually puts the name of the developer at the top of the file but if you have just been sent a load of code you have no idea who John doe was, where he worked what he was doing on the project.

So all of this is left to documentation and we all know how often that is inaccurate or simply not available.

Isn’t it time we developed a language that had who when how what and why as an integral part of the code? Time for a language that is truly self documenting.

useful things are the best marketing

What really makes you feel all warm and fuzzy about a brand? Entertainment value is a wonderful thing but to deliver that well usually costs a lot in terms of content and effort. If a brand sponsors something truly useful you will make use of it.

Take a look at google. They don’t really market themselves, they don’t need to. Nearly everyone on the web makes use of at least one of their services everyday. They just become associate with getting stuff done. Shouldn’t other brands be thinking the along the same lines. Ok I know that googles whole business is about delivering online services and deriving revenue from them. So if your trying to sell beer or sports wear it might seem like an odd way to go. Find a need that your users have and spend some of your marketing money helping them to answer it and it think your onto a good thing.

I’ll take use value over entertainment value 80% of the time and I’m guessing that other people think the same way.

AS3 Frameworks and tool kits

It was great to catch up with the guys at LFPUG last week. It was an impressive turn out  and an even more impressive couple of sessions. Eamonn Faherty put the assembled masses through their paces with a session on design patterns and Richard Lord gave a brilliant round up of the latest and greatest ActionScript frameworks and tool kits.

While he was talking about the various options in-terms of dependancy injection, he really got me thinking about what might be missing from the ActionScript communities bag of tricks. We had a bit of a chat about how we could make aspect oriented programming work in AS3 after the session.

I have to drop in more often, I had almost forgotten how much fun it is. Talking about code and drinking, what could be better?

Create a MYSQL database via linux command line

If you need to create a MYSQL database on a linux server and you don’t have PhpMyAdmin installed but you have command line access you can do so by following these steps. The commands to enter are in orange and things where you need to enter your own details are in blue.

mysqladmin -u root -p create yourdatabasename

mysql -u root -p

You do not want to have your application use the mysql root user to access the database. The below command creates a mysql user (other than the mysql root user) with some priviledges to use the drupal database. You should pick something different yourdatabaseuser and yourdatabasepassword you can use anything you like.

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON yourdatabasename.* TO ‘yourdatabaseuser‘@’localhost’ IDENTIFIED BY ‘yourdatabasepassword‘;

If the command was successful, activate the new permissions with the following command:

mysql> FLUSH PRIVILEGES;

Quit the mysql prompt:

mysql> \q

here is a handy reference http://www.pantz.org/software/mysql/mysqlcommands.html

Creative technology round up

Torn Away by Eric NatzkeGenerative art
http://en.wikipedia.org/wiki/Generative_art
http://gskinner.com/playpen/tweetcoding_0/
http://www.openframeworks.cc/
http://www.flight404.com/version8/
http://www.flight404.com/_videos/magnetosphere/index.html
http://jot.eriknatzke.com/?p=315
http://www.unitzeroone.com/labs/vertexmap/
http://www.letitbloom.com/#ralph

data visualization
http://blog.blprnt.com/
http://blog.blprnt.com/
http://www.wefeelfine.org/

Audio
http://lab.andre-michelle.com/tonematrix
http://www.hobnox.com/index.1056.en.html

Other
http://aviary.com/
http://www.youtube.com/twinrawk

Design patterns implemented in AS3

I came across some great resources while putting together some documentation on design patterns for our team. I figured I would share.

http://www.antropyconsulting.com/code/adobe_flex/

http://www.as3dp.com/2009/07/15/actionscript-30-design-pattern-catalog-creational-patterns/

Get Adobe Flash playerPlugin by wpburn.com wordpress themes