Rigidly defined areas of doubt and uncertainty.

Thursday, March 23, 2006

I heart Ruby

I've been working my way through the Pickaxe book, mostly over a nice coffee and panini at Caffé Nero, and I'm really enjoying what I'm finding out about Ruby. It takes the best ideas from more academic languages such as Lisp and Smalltalk and puts them in a practical setting, with a well designed expressive syntax. It gives me a great feeling of liberation to know I that all these wonderful new toys (full OO, continuations, closures, introspection, metaprogramming) are within easy reach. I can see myself devoting a lot of time to Ruby. I'm sure it's a worthwhile investment.

Friday, February 24, 2006

Analysis Paralysis

Yesterday I was thinking myself into a corner about the best way to refactor some code I'd written. The thoughts just went round and round in my head with no hope of conclusion. This can get pretty tiring after a while, so I went for a short walk. While walking, the facts seemed to order themselves and present me with a couple of simple options to choose from. So now I can just get on with implementing them.

I've just finished reading Blink, and that surprised me with some interesting stories about the power of the unconscious mind. Sometimes consciously thinking about something doesn't work as well as leaving your unconscious to get on with it. I think I might do well to heed Ap Dijksterhuis's advice in this New Scientist article 'Sleeping on it' best for complex decisions
“At some point in our evolution, we started to make decisions consciously, and we’re not very good at it. We should learn to let our unconscious handle the complicated things,”

Saturday, July 16, 2005

Perfection vs performance

This essay The psychology of learning by Robert Strandh is worth reflecting on. He draws attention to people being too 'performance oriented' - sticking to what they know will give them immediate results, at the expense of discovering better ways of working. I'm generally more 'perfection oriented'. I'm interested in learning for its own sake, particularly when it comes to computers. However, I have been guilty of dismissing ideas, tools and languages I haven't spent enough time to understand. Maybe I'll give them another look, or at least acknowledge my ignorance.

Of course, and this is something he doesn't mention, you can be too perfection oriented. The trick is knowing the difference between the two attitudes and choosing the right one at the right time.

Thursday, July 07, 2005

Oh no, not again!

So terrorist bombings have become a fact of daily life once again. That's just brilliant.

Wednesday, June 08, 2005

Apple, Intel and Hollywood

Wired and Bubblegeneration have the most insightful commentary on Apple's decision to switch to Intel processors. As Cringely has pointed out several times, Apple wants to have the same success as a digital movie distributor as it has had as a digital music distributor. Hollywood won't cooperate without strong DRM protection which Intel can provide.

Strategies that acknowledge that digital reproduction and modification is easy and inevitable, and work with that will be more productive than those that waste energy fighting against it. Can Apple be a platform for all players, or have they chosen the losing side?

Wednesday, May 25, 2005

A message from Bill

"I’m dead, you’re in hell. Ironic how that turned out."

Bill Hicks
From http://www.whatwouldbillhickssay.com/

Sunday, May 22, 2005

Revenge of the Sith

Now that was more like it! A Star Wars movie with a bit of passion at last! That was what I wanted to see when The Phantom Menace came out. Did we really have to go through episodes I and II to get here? It seems now that they were only backstory to the main event. Take out the filler and you're left with no more than an hour of material - if that.

What a program is

"Programs must be written for people to read, and only incidentally for machines to execute."

- Abelson & Sussman, SICP, preface to the first edition

These words ring very true to me right now, as I read through reams of open source code composed of deeply nested six page long if statements, sparse one-line comments and a smattering of global variables for extra flavour.

My own formulation of the same sentiment might be "Programs are documents used by programmers to communicate their ideas to each other, which also happen to be readable by computers." Or more briefly "Code is documentation".

Now any book that starts with a statement like that must be worth reading. It's been on my to-read list for a long time, but never really seemed essential. Now I think it is. The systems I work with are getting bigger and more complex, so I need more guidance on how to deal with that.

Thursday, May 19, 2005

Reading - The Tao of Pooh and the Te of Piglet

I've nearly finished The Tao of Pooh and the Te of Piglet. I liked the first best, but they're both easy reads. A lot easier to understand than the Tao te Ching!

I've never read the original Pooh books, I think I'd like them - apparently they were an influence on Douglas Adams' Hitchhikers Guide to the Galaxy. From the excerpts I've read I can see some parallels between the two. Pooh shares a similar warped logic with the guide, and obviously Marvin is Eeyore.

Nobody likes a smart arse part 2 - I've created a monster

I've done it again. Another overdeveloped abstraction that takes more time to understand than it could possibly save. Amazingly I managed to get a working project out of it, but it's not been fun to write.

Lessons learned:
  • Work it out on paper first. I now carry with me a low-tech pda (a small notepad and a retractable pencil) to develop my ideas on.
  • Write small libraries/classes that can be easily picked up by others and are an obvious benefit.
  • Solve the problem at hand, not the one you'd like to be working on.
  • Know what the problem is!

I heart del.icio.us

I read Ontology is Overrated: Categories, Links, and Tags and signed up to del.icio.us to see what he was talking about. I really like it. It's a much better way to organise my bookmarks than a rigid heirarchy. I like the idea so much I'm going to steal it. I've already written a few notes on my ideas for a CMS organised around URLs, tags and links.

Evil!

There is a special level of hell for people who write code that looks like this:

var e = "";
var r = true;
var z,n,q,t;

t = true;
q = 0;
n = 0;
z = 0;

Monday, January 24, 2005

The future's back

While high street retailers were reporting 'disappointing' Christmas sales, online shopping in the UK is going from strength to strength. I was pleased to read, in several papers this weekend, about Asos the online fashion retailer. It's a particularly interesting example because clothes are one of the things that, with post dot bomb hindsight, obviously can't be sold online. I guess they can now. The key selling point of Asos is that their range is based on the clothes that celebrities wear. You see your favourite celeb wearing something you like on TV, and with a few clicks you can find something just like it online. The founders admit that this is not a new idea, it's what fashion magazines do all the time. The difference is that being online Asos can update their catalogue instantly.

Dot com is back, and this time it has a business plan! Old ideas are coming back in new guises. As Alvin Toffler wrote in Future Shock "The future arrives too soon and in the wrong order." I think we're sorting it out now.

Friday, January 14, 2005

Tai chi classes

My tai chi classes started again this week. I much prefer doing tai chi in a group to practicing alone. I'm feeling quite pleased with myself for having kept up practice over the Christmas break. I took special trouble to focus on a sequence that I know I'm weak on, and was quite pleased when we got to that part and I passed through it smoothly.

After warm up and going through the form we tried a new exercise. The purpose of it is to develop a sense of where your partners 'root' is. Your partner stands still with their arms folded, feet shoulder-width apart and sinks their weight down into the ground. You do the same and place your hands on their elbows. Slowly, without pushing, you then sink into their space, sensing where they are rooted and eventually uprooting them, so they have to step back or fall over. The movement is very very subtle. An observer would only see two people standing still. It doesn't feel like pushing either - as I stood there with my arms folded, all I could feel was my centre of gravity shifting slowly backwards, making it harder and harder to keep my balance. On the other side it doesn't feel like pushing either, I just tried to feel where my partner was rooted and expand my root into that space. Very little happened for a long time until suddenly they went.

Having experienced tai chi it's very easy to believe in concepts like chi energy. Some people where quite happy to speak in those terms to describe what they were doing. I'm not ready to believe such a thing exists in an objective measurable sense. It does, however, match my subjective experience, so for the practical purpose of learning tai chi it's the best way to visualise what's going on. Just one more impossible thing to believe before breakfast!

In exercises like this I find that every partner is different, and I'm different with every partner. Some seem heavy, some light, some stiff, some flexible. You don't often get the opportunity to read someone like that.

Friday, January 07, 2005

Tower of Babel

On wednesday night I attended the weekly Brighton freelancers meeting at the Lord Nelson. By random chance many of the conversations highlighted the importance, and difficulty, of effective communication.

Paul Silver related the difficulties he had had explaining to a non-technical client what exactly it is that MySQL is, and why PHP and MySQL are nearly always used together like bread and butter.

Richard praised Sevan's encylopaedic knowledge of windows security and configuration issues, but professed to not always following his detailed explanations of how he fixed his PC. The tables were turned when Richard gave Sevan his wife's PC to fix. "It's all in Chinese!" He navigated the menus by memory, but eventually had to find another way.

As we'd all had very little chance to talk tech over Christmas, there was little room for social chit chat, and conversation narrowed in on quite specialised areas of technology. I bobbed along in the fast moving stream of in-depth hardware and networking talk, occasionally gaining some insight, but finding it hard to contribute much.

All this has made me more aware of how easy it is to mistakenly assume your audience has understood what, to you appears pefectly obvious, but to them may as well have been spoken in Chinese. Intelligence and technical knowledge don't always guarantee understanding either, as even in this group of highly technical people, we each speak a language based on our own knowledge and experience. To get the most out of a conversation, whether in a social, business or technical context, clarity and understanding are vital. I can recall conversations I've had where we've both been talking past each other. Taking a little time to consider, listen and ask questions would have helped a lot.

Friday, December 24, 2004

Scientologists 1 Chuggers 0

Out Christmas shopping over the last couple of weeks I've seen two groups of people trying to get money from strangers. One of them is using a much better strategy than the other. One group is the so called 'Charity Muggers', or chuggers for short - the bib clad agents hired by major charities to accost strangers in the street and charm them into signing up for a monthly donation. They operate in packs of about four and it's quite a job to get past them without being spotted. On a quiet day in Lewes I was practically chased by one of them. Twice. Maybe this aggressive style of marketing is seen as unavoidable in a world where there are so many people demanding our attention, but the charities that use it are burning through their social capital, and in a competitive market for attention, chugging won't maintain its advantage for long.

The other group is the scientologists. I hadn't seen the Brighton section out on the streets for some time, but they've been out every day over the Christmas shopping period. They have a couple of tables set out in front of their offices by Churchill square, with a sign reading 'Free stress test', and people are sitting down to talk to them. Voluntarily. Imagine that! People come to you and give you five, ten, fifteen minutes of their time. They're interested in what you're offering and pay attention to what you have to say.

The scientologists' strategy is an example of what Seth Godin has termed permission marketing. In your first contact with a stranger you shouldn't try to sell your ultimate product, you should offer them something for free, like the stress test. That's already qualified your potential customer as someone who might have an interest in your product. The attention your free offer has bought you is then used to sell the next meeting, and that one the next, in a series of exchanges over which you educate your potential customer about your product. It's a much more focused approach than the scattershot techniques of the chuggers and most of mainstream marketing. It takes longer to see results, but you've developed a relationship with your customers where they expect to hear from you and actually want to be sold to.

Perhaps the nature of their product has put evolutionary pressure on the scientologists marketing strategy. It must be a lot easier to get people to give money to save the baby seals than it is to convince them of the merits of joining a UFO cult. It suggests an interesting avenue for research - difficult products produce the best marketing - though I'm not sure I want to investigate too far!

Tuesday, December 07, 2004

Site update

As part of my new marketing drive I've updated my website. The recent work section has been updated and I've rewritten most of the descriptive content. I've tried to change the focus to what other people think is important rather than what I find technically interesting. I've given it a bit of a makeover too. It's still all on one page. If it gets much bigger I'll split the sections into seperate areas and put it all into a CMS, perhaps with a one page summary for printing.

Monday, December 06, 2004

Marketing myself

Recently I read the online book The Bootstrappers Bible (pdf). It's a short (100 pages) readable guide to bootstrapping a small business. One thing it highlighted to me is how absolutely essential it is for me to keep marketing myself, and to do that first, before doing anything else. It doesn't take a genius to work out that marketing is important, but for me it's always come second place behind improving my technical knowledge and ability. I used to take the cautious approach of learning absolutely everything I could about a language / technology / product before starting any paid work using it. I now believe that this is far far to cautious. My own experience, if I listen to it, tells me that I learn more and faster working on a challenging project for a client than I ever do from studying alone without a clear goal. Also, until I've actually talked to a client I don't know if what I'm learning / writing is what they want. I'm not saying that I should give up studying alone, or take on projects I know nothing at all about, just that if I let the breaks off a little it will get a bit scarier, but I'll have more success.

So, fired up with the motivation to get serious about marketing I've done a little research. I've looked at marieting books before, and they were terribly dry and difficult to apply. This time I've found a couple that I think I can get on with. I've ordered Permission Marketing and the followup Unleashing the Ideavirus. They should arrive tomorrow. Both deal with the idea of marketing through word of mouth. The New York Times has a related story The Hidden (in Plain Sight) Persuaders. I'm attracted to this idea of marketing as a conversation, rather than an interruption. It fits rather well with the ideas in the Cluetrain Manifesto which states that the spread of the internet is transforming the marketplace and the workplace from a top down command and control heirarchy into a network of peers.

Thursday, November 25, 2004

USB port to the brain

New Tools to Help Patients Reclaim Damaged Senses from NYT via Bubblegeneration.
Using novel electronic aids, vision can be represented on the skin, tongue or through the ears.
The theory behind this is that it doesn't matter what nerves are carrying the signals, the brain can adapt to process them appropriately. Think of the applications.

Also, this adaptabilty to new sensory inputs implies to me that with enough training, perception of existing senses can be dramatically changed.



Wednesday, November 24, 2004

Nanny knows best

Lately I've been learning to use the ezPublish content management
system. One aspect of it that is causing me unneccessary frustration
and inconvience is it's templating language. I already have a
templating language thankyouverymuch. It's called PHP and it's
faster, better and cheaper than anything they're likely to produce.
And crucially I already know it. They've wasted their own time
reinventing the wheel and now they're wasting mine by making me learn
it. The template language exists for one reason above all others - to
control me, to force me to submit to their ideas of good practice.
Their rules. I don't like that. Help me, give me tools, but let me
decide how to use them. I'll use them in ways you never imagined.

Of course template language designers aren't alone. Platforms and
languages are frequently used to impose the will of their designers on
their users. Java is a prominent current example. Programmers are
voting with their feet and migrating to Python (and PHP and Perl).
I've not heard any reports of programmers going the other way. Java
may well have advantages over Python in some other areas, but in user
freedom Python is the clear winner.

What motivates designers to dictate to their users like this? Perhaps
it's a hang-over from proprietary programming, where deliberately
incompatible systems insulate you from the competition. Maybe it's
nothing more than laziness. By imposing limits on their users they've
dramatically simplified the problem they have to solve - "But what if
I do this?" "You can't". Designing systems that aid users without
taking away their freedoms is hard but worth doing.