Saturday, July 30, 2005

What's wrong with being a fundamentalist?

Recently the word fundamentalist has become an almost uniformly derogative term, most often applied to Moslems, and often to Christians, but in many other areas too. I think this is unfortunate.

Quite a few years ago I learnt to play the Oriental board game called Go, (also known as Igo, Wei Chi, and Baduk). A little yellow book by Toshiro Kageyama called Lessons in the Fundamentals of Go was the book that helped me improve the most. Whatever level in the game I had reached, I could come back, reread it, and my game would always improve. In the introduction he talks about the importance of fundamentals in all areas, and starts comparing baseball in America and Japan. He says:

"In every confrontation with a real American professional team it seems that what we need to learn from them, besides their technique of course, is how uniformly faithful their players are to the fundamentals. Faithfulness to fundamentals seems to be a common thread linking professionalism in all areas. If we consider the American professionals as the real professionals in baseball, then I think we have to consider their Japanese counterparts, who tend to pass over the fundamentals, as nothing more than advanced amateurs."

What should "Islamic fundamentalist" mean? I am not a Moslem, but in my understanding the most fundamental thing must be the confession you make if you become a Moslem. The Shahada (confession) is, in translation "I testify that there is no God but Allah; I testify to His Unity and that He has no partner; I testify that Muhammad is his servant and his Messenger." or in an even shorter form, the kalima, "I testify that there is no Allah but Allah, and I testify that Muhammad is the Apostle of Allah". I disagree with this statement, but it does not seem to include many of the things that seem to be called Islamic fundamentalism, but I'm not really qualified to comment.

I'm much better qualified as regards Christianity. I'm a Christian, and many might call me a Christian fundamentalist. So what do I think the fundamentals of Christianity are? It has to be, in the simplest form, the accepting of Jesus Christ as both Lord and Saviour. The Apostles Creed, long taken by Christians as a way of defining their faith, is all about Jesus, not about Christians and what they do.

So what if by fundamentals you mean how Christians should live and what they do? If you accept Jesus as Lord this has to be defined by his teachings. And the shortest, simplest summary of his teachings is (from Matthew 22:34-40):

"You shall love the Lord your God with all your heart and with all your soul and with all your mind." and "You shall love your neighbor as yourself."

Now those people who are normally called fundamentalists are those bombing abortion clinics (which I condemn), hating homosexuals (which I condemn) and creationists (as the term is commonly used - I don't condemn them, but I think they are misguided). These are only related to fundamentals in one way, and that is the authority of scripture. Many Christians, myself included, think the Bible is the inspired word of God. Unfortunately, we cannot always agree on how the Bible's teaching applies to a particular situation. That doesn't mean that the fundamental (the Bible's authority) is wrong, just that at least one of our interpretations is wrong. However, if any group abandons its fundamentals, it becomes trivial and shallow.

I'm very conscious of the fact that one of the wonderful things about the English language is its dynamism and that meanings change and develop. And I'm also aware I sound like the old man who makes himself look ridiculous by bemoaning the fact that gay no longer usually means "Showing or characterized by cheerfulness and lighthearted excitement; merry". But I wish people would use the word extremist rather than fundamentalist, when that is what they mean. Because being a fundamentalist, thinking about what is fundamental, should be a good thing.

Friday, July 29, 2005

Book Review: The Best Software Writing 1

The Best Software Writing I:
Selected and Introduced by Joel Spolsky
ISBN: 1590595009

This book aims to collect the best software writing, usually from online sources, over the last year or so and reproduce it in book form. The idea is to have a series - think about is as the Now of software writing (for any British readers).

By software writing it means writing in English related to software development. There's a couple of posts from Eric Sink about running a software company, an introduction to Ruby with cartoon foxes, and many other gems. The book is great and you should buy it, read it, and lend it to your friends.

It has two major weaknesses. Firstly, if you regularly read Joel's blog and follow the links, you'll probably have read much of it already. Secondly, because Joel is editing it none of his own writing makes it in.

I think the most important thing about it is that it is inspirational. It makes me think that I want to write well-written, provocative articles related to software, in the hope that one of them makes it into book 2. If it encourages others to think and act the same way then Joel and the publishers have done the world a service. It's a lot easier to write an insightful single article than to write "Writing Solid Code" or "The Mythical Man Month", and if this encourages people to start writing, we might have more classic software books to read.

Thursday, July 28, 2005

Ideas Factory: Developer Recruitment Agency

Yesterday I was complaining the patent system meant that people were not encouraged to share good ideas when they had one, which means the world does not improve as fast as it could. I said that I was going to put my money where my mouth was, and start sharing my ideas. Well, here's the first idea, but it's not an idea for a piece of software, its an idea for a business.

I've had to deal with a number of IT recruitment agencies, both as someone looking to hire and as someone looking for a job. The worst ones have been bad, though one, ECM was good, from both perspectives. However, they all have the same core approach - text searching on a candidates CV. This might work ok if you are looking for a Java developer with 3 years experience. However, as Joel Spolsky has commented, you should be looking to hire the superstars. And the superstars might not know Java, but they could probably learn it in a week, and be a better programmer than one of the unwashed masses with 3 years experience. CV text search is obviously the wrong solution.

The right solution involves trying to find people who are smart and get things done. If you had an agency which measured how smart people were, and how good at getting things done, then it would be much more useful. If it had features so the superstars really stood out, you would want to use that agency if you were looking to hire a superstar. And you would want to use that agency if you were a superstar, because you would know you were going to work for a company where they appreciated you. You probably wouldn't want to use the agency if you were a poor programmer because it would be obvious very quickly, thus improving the quality of the hirees.

So how would you do this? Well people looking to hire clearly have money, or they couldn't afford to hire a superstar, but not much time, whereas people looking for a job probably have more time, especially those in college, but less money. So the site should be cheap but possibly time consuming for the hirees, and quick and time-saving but with the hirers paying for it. Monster already have this model.

My idea is have a site with lots of puzzles, intelligence tests, essay questions etc., ideally most of them automatically marked. In my experience, most superstars like solving puzzles, and like being told they are smarter than other people, and being able to see their rank. IQ tests may only show how well you do IQ tests, but they are probably well correlated with intelligence. Every test you allow people to take multiple times and improve their score. That way, people who are willing to work hard do better, and you get people who get things done nearer the top of the list.

There are a million and one different competitions and tests you could have. You could get people to submit code samples and run them through an automated, lint-like code quality detector. It wouldn't be perfect, but it would be fun to use, and competitive. You could ask people which software books they have read. You could even make them write a review of them. You could get other people to rate their reviews, and through an emergent process of how their reviews were rated, and how their ratings correlated with other people, you could probably get quite a good measure. You'd also end up with people knowing that if they want to do better they should read book X, or write code in the style Y, and so people could actually be inspired to improve through using the site. I'm sure you can think of more ideas for clever tests.

If you had enough different sensible tests, and gave people free choices of which ones they did, then I suspect the ranking you gained might be well-correlated with how smart people were and how good they are at getting things done. And it would help software companies hire superstars, and superstars be better recognized and find better jobs. Which should improve software for everyone. And the world would be a better place.

Wednesday, July 27, 2005

Book Review: The End of the Line

The End of The Line - How Overfishing Is Changing The World And What We Eat
Charles Clover
ISBN 009189781-5

I read this book on the recommendation of a friend, and in turn would recommend it to anyone. This book describes some of the current fishing practices and economic effects causing them and argues that the resulting overfishing we are nearing the end of the line for fish stocks and dramatically altering the ocean ecosystems.

The book is gripping reading. It does not read like typical environmental literature. Charles Clover is a journalist for the Daily Telegraph, an English broadsheet (ie quality) newspaper, which I think it is fair to say most people would regard as rightwing. Probably as a result of this it reads more like an article from the Economist magazine, giving plenty of facts and an informed, well-written argument, rather than a rant.

It ends with a brief guide to buying fish in a sustainable way, though this he admits is not the purpose to the book. If you read this you may never order fish and chips at a fish shop again. But if enough people read it, we might have fish and chip shops in the future.

1% inspiration, 99% perspiration

Yesterday I was writing about one reason I'm not keen on software patents. I thought today I'd tell you another one.

One of my favourite software writers, Joel Spolsky has written an article on interviewing developers for a job. The article boils down to "Hire people who are smart and get things done." This maxim has served me well so far.

All cultures place a value on being smart and getting things done, but differ in how much relative value they place on them. I've lived in North America and the UK, and have noticed that the British seem to place far more value on being smart than working hard. You will often read articles in the British media praising an inventor's brilliant idea, but very rarely praising his hard work. The hard work is often presented as a surprising thing, or an unfortunate setback.

I personally think that good ideas are easy, in comparison to the hard work needed to make them a success Thomas Alva Edison is reputed to have said "genius is one percent inspiration, ninety-nine percent perspiration.", and I suspect you'll find anyone who has made a financial success out of a good idea will agree.

I think this especially true for software. Software very rarely becomes successful because it has a unique, patented brilliant idea. Usually successful software has many hours put into it to make it exceedingly usable, and continual improvement keeping it that way. It isn't from a new idea with no competitors, as Eric Sink comments.

Software patents encourage the idea that having an inspirational idea is the hard part, and the hard work into making a great product is easy, and anyone can do it. When a company like Microsoft copies the idea of a spreadsheet from Visicalc, and do it so well that we get the current Excel, that should be congratulated, not be treated like a stolen idea. Otherwise, be probably wouldn't have a spreadsheet as good as Excel.

Especially in the UK, I think we should be encouraging people to take their good ideas and make them public and freely available, not advising them how to protect them. Then we will learn that the way to successful entrepreneurship is through hard work, and my country might have an economy approaching America's success. This is just basic economics. I am a reasonably intelligent person, who is also quite busy. Occasionally I have a good idea for a business or software product. I have three options.

  1. I can quit my job and start trying to make the idea a success.
  2. I can keep the idea secret, and plan to do something about it in the future.
  3. Or I can publicise the idea as widely as I can, and hope someone else makes a successful business out of it.

In the first case, I run a very risky path, but have some chance of success. In the third case, at least I get the benefit of the product or service provides, so my life will be better. Only the second case does nothing at all to make my life better, and so is almost certainly the worst course to take, and yet the patenting system encourages this precise course for risk averse people.

I'm going to put my money where my mouth is on this one. I have ideas that I think would be successful on a fairly regular basis. I'm going to start putting them up on this website. That means:

  • If someone takes the idea and uses it, then I have a new product or service that I wanted
  • They might give me credit, which will make me feel good
  • They might feel generous enough to share some financial success with me
  • No-one can then patent the idea, which removes the chance of someone patenting it and stopping an entrepreneurial person from actually working hard to use the idea
  • If people think it is a good idea then they might well me, which means I have more evidence if I want to proceed
  • If people think it is a bad idea then they might tell me and I am less likely to work on it myself and hence waste my time

Tuesday, July 26, 2005

Embrace and Extend

You might think I'd be in favour of software patents, as I am the named inventor on a few myself. They were filed when I worked for a previous employer. However, I'm really not keen on them, for a number of reasons. I'll explain one of them here.

"Embrace and extend"
is a phrase usually used derogatively when talking about software standards, but it applies well to a tactic that can be used for patents too. Let me tell you a story, which I was told as an anecdote and may not be true, but certainly could happen.

A company, let us call then Xenon, invents the photocopier and patents it. Another company, Argon, sees this idea, and thinks, "Hey, this could really be improved by adding a memory to the photocopier, that way every copy would be the same if you made more than one copy, and you wouldn't have to scan so often." Argon duly file a patent on their extension.

Now, the Argon can't sell a photocopier without licensing the patent from the Xenon. The Xenon would like to add a memory, as they think it's a fantastic idea, but can't add the feature without licensing the patent from the Argon. Both companies are pragmatic, and so decide to swap patents, knowing that no third company can compete with them, without paying for two patents. They both get well rewarded for their inventions.

You might think this is a fair outcome because they both invented something. Or you might think it is unfair, because the first company had the much more important idea. However, if the extension was so unimportant, the first company doesn't have to use it. The situation becomes much more serious though if the invention is software, and the first company doesn't patent.

Suppose I have a great idea for a piece of software - like a web browser. But I decide I don't want to patent it because I don't believe in software patents. So I release my web browser, but while it only supports text web pages. I'd like to have pictures and sounds though, so I say "soon I'll release a version with full multimedia pages."

You might see my web browser, and extend it by designing a way of loading images and sounds, and patent this extension. It will probably be very similar to the way I planned to add the feature, but that does not allow me to add the feature to my browser. How I was going to add images and sound was not public, and has not been done already. Even though I said I was going to include "multimedia", patents are always on a method or physical item, so I cannot claim prior art. If I had patented my web browser I could have trade the patent with you, but because I didn't want to patent, there is nothing I can do. I have to give up on having a full-featured free web-browser and cry.

Almost any good free idea can be taken over by this "embrace and extend" method. The big patent filers know this, and the standards set out by standards bodides are their favourite playground. Software is particularly vulnerable, because how it works can claim to be a trade secret. A good programmer can look at most programs and guess exactly how they work internally, but officially the code is not public, and so releasing software is treated very differently from selling a physical device. Anyone can take apart a physical device, but software normally comes with a clause against reverse engineering.

It would be fantastic if there was a cheap way of making a software idea public, with a GNU style copyleft, so that any extension of the idea would have to be allowed free use as well, but I cannot see any practical way of making this happen. Never mind - just keep lobbying against software patents.

Thursday, July 14, 2005

The Honour System Virus

On June 9, 2000 my friend and colleague Aaron Kotcheff posted the
following joke to our local "funny" newsgroup.

The joke

Honor System Virus:

This virus works on the honor system.

Please delete all the files on your hard disk, then forward this
message to everyone you know.

Thank you for your cooperation.

What we're doing

It's great isn't it? But besides being great, I noticed it was new! It is short enough that it is not just a derivative of another joke. The subject matter (computer viruses) is new enough that it must have been written in the previous 20 years or so. So the person who invented it is probably still alive. So I decided to try and find the person who actually invented a new joke. If you passed it along, and get an email requesting you to say who sent it to you, please carry the chain on. The chain will always be displayed here.

If you want your email address left off, fine. If you want your name
left off, fine. Even if you want your country left off, fine. Just please
don't stop us finding this out.

The chain so far, backwards

Thanks so much to everyone below who has helped so far.

Nick Fortescue9 June
Aaron Kotcheff9 June 2000England
David Bonas 8 June 2000
Martha Mazon 8 June
Diana Monterola8 June 2000USA
Renee C TylerUSA
Deb MedelUSA
Ed StokesUSA
Greg BruceUSA
Steve Groth?USA

Stop Press! We've found it. See this For details. Or read on.

We've found the source!We've found the (or a) source of the joke. For more details see here. But please don't let this stop you helping us trace the chain back. It will be really interesting to see how it got from the source to me. And it shouldn't be too long, as it was first posted on May 5 2000, and I received it on June 9, 2000.

Other sightings
These are other early sightings of variants. We are tracing their chain back too, including this post on Deja news which led to us finding the record of rec.humor.funny post
May 16 2000, Dr Billy Newsletter
May 25 2000, GCS tasteless joke board

To contact us, or send us information about early sightings please email:

A Bit About Me

You are currently reading this page, and I don't know who you are. You might be me while I edit this page, a bored friend or colleague trying to avoid doing something more constructive, or someone who might be interested in employing me.

This is worrying, as it means I have to be correct in spelling and grammar, and appear interesting and amusing, while simultaneously being responsible, professional and intelligent. If you want a more formal description of who I am, why not have a look at my C.V. It is guaranteed to be completely honest, though probably quite boring.

At the moment I live in Oxford, and work in London, taking the train every day. I am a member of St. Ebbes church. I might see you at the 6.30 service or Roots, and really enjoy helping with the sound desk.

Most of my spare time is taken up with dancing, with as many different styles as I can try. At the moment this is mostly modern jive, lindy hop, and west coast swing. Modern Jive is both at Ceroc, sometime in Kidlington or Oxford Town Centre and at Jive+. West coast swing is Paul Warden's classes in Oxford organised by Jive+. Lindy Hop I don't social dance anywhere regularly, but will be around at most of the weekends, including Camp Savoy, Swing Jam, Beach Boogie Swing, Hop the Castle, etc. I used to do a lot of Aerials with Andy and Rena at Jump 'n' Jive, but haven't done so many lately, and with Ruth Etherington was UK Aerials Champion at Beach Boogie in 2003.

For the last four years I've been studying for an Open University degree in Psychology. I'm nearing the end (final exam October 2005) with a sense of relief, but it's been fascinating.

Other things which I've done more of in the past, but don't do so much now include playing Go, juggling, most adventurous sports (rock climbing, walking, abseiling, canoeing, kayaking, skiing, x-country & downhill). I've done a sponsored parachute jump with the Red Devils, a short course in Hang-Gliding, and have done my CBT and theory test for my motorcycle license, but haven't got around to the real test yet.

© Nick Fortescue 1997-2005