tag:blogger.com,1999:blog-94445802024-03-13T14:30:17.644+00:00CR LinefeedError in tagline.rb at line 5: use of clichés disallowed. Please remove references to 'random thoughts', 'musing' etc.Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-9444580.post-1165239738372823162006-12-04T13:40:00.000+00:002006-12-04T13:43:20.370+00:00This blog has movedWell actually, all this stuff is still here. It's just that I'm going to be posting new things at my new Wordpress powered blog, which is at <a href="http://chrs.me.uk">http://chrs.me.uk</a> ...Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1149537864192355262006-06-05T20:20:00.000+01:002006-06-05T21:04:24.263+01:00My new methodologyI read a fair few blog articles out there on the subject of software development. It isn't often that I read one that makes me mutter to myself "what are you talking about?". <a href="http://herdingcats.typepad.com/my_weblog/2006/05/the_three_laws_.html">This</a> is one of those articles. In it, Glen Alleman states <blockquote>the net effort to deliver the project is the same no matter what the methodology used.</blockquote> This is patently not true. But let's suppose it is, just for fun. Given that, let me introduce my own methodology, the <span style="font-weight: bold;">aeronautical software development system</span>. This methodology is very much like a traditional software development methodology, but developers are required to spend an hour folding paper planes after each line of code written. These paper planes are to be folded from large A3 sheets of paper and are required to closely model the Boeing 747. Once folded the aircraft must be painted to closely match the livery of a randomly chosen international airline. The developer must then write out a passenger list and for each passenger on this list, must write a short biography of at least 100 words. Then... <br /><br />Hold on a second, this is just ridiculous isn't it? Apparently not, because remember, whether you are talking to your customer about requirements, typing in code or folding paper planes it doesn't matter. <span style="font-weight:bold;">All methodologies are equal</span>.<br /><br />I can believe it is true that the effort spent doing valuable work is pretty much the same regardless of methodology. So in that sense software development <span style="font-weight:bold;">is</span> a zero sum game. The problem is that a lot of effort is spent doing work that isn't valuable. The skill is in reducing this effort as much as possible.Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1145625751898624492006-04-21T14:17:00.000+01:002006-04-23T19:29:47.083+01:00Oxtremists - Oxford Agile Book GroupI've started a book group for anyone in the Oxford area who'd like to meet up and talk about agile software development. There's a blog-based <a href="http://www.oxtremists.co.uk">website</a> and a <a href="http://groups.yahoo.com/groups/oxtremists">Yahoo group</a> to help spread the word.<br /><br />The first meeting is at "Far from the Madding Crowd" on 3 May 2006 at 8pm. We'll be discussing "Refactoring" by Martin Fowler. This is a book I've been meaning to re-read for some time, so now I've got a real incentive to do so! Anyone with an interest in Agile is welcome, even if you've never read the book...Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com2tag:blogger.com,1999:blog-9444580.post-1141826284546133722006-03-08T13:47:00.000+00:002006-03-08T13:58:04.586+00:00Name changeNo, I haven't <a href="http://chrs.blogspot.com/2005/10/how-to-break-national-identity.html">changed my name to a SQL injection attack</a> yet. I'm referring to the blog title. I thought I'd capitalize on my geeky initials.<br /><br />Incidentally, I've always considered my surname to be of Scandinavian origin. My Dad's family come from Formby just north of Liverpool, which is traditionally considered to be a <a href="http://www.formby-online.co.uk/community/viking.htm">Viking village</a>. The -by at the end is a bit of clue for starters. My favourite explanation is that "Rimmer" means "Poet" and comes from the same root as "Rhyme". So I was very interested to learn recently that there is a traditional form of Icelandic poetry called "<a href="http://en.wikipedia.org/wiki/R%C3%ADmur">Rimur</a>". Draw your own conclusions...Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1139412165040079642006-02-08T15:21:00.000+00:002006-02-08T15:24:35.806+00:00Now I live at a URLYes, my house is at <a href="http://107.the.avenue.org.uk">http://107.the.avenue.org.uk</a>...<br /><br />All I need to do is register road.org.uk, crescent.org.uk, street.org.uk and I can start my own business mapping houses to URLs.Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1129239277230311572005-10-13T22:25:00.000+01:002005-10-14T09:23:48.536+01:00How to break the National Identity RegisterI've just been at a public meeting of the <a href="http://www.no2id-oxford.org/">Oxford branch</a> of <a href="http://www.no2id.net/">NO2ID</a>, where a couple of MPs spoke about why they are opposed to the legislation. Before the event began a bunch of us in the office were having a database related discussion on the National Identity Register (NIR). We came up with ways to break the Register:<br /><ul> <li>Change your name to add some funny characters like a single quote or question mark,</li> </ul>or best of all:<ul> <li>Turn your name into a <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL Injection</a> Attack. I'll let you know when I've changed my name to <span style="color: rgb(255, 0, 0); font-family: courier new;">'; DROP TABLE REGISTER;</span></li> </ul>Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com1tag:blogger.com,1999:blog-9444580.post-1128516385428969622005-10-05T13:16:00.000+01:002005-10-05T13:55:38.710+01:00Thoughts from JAOOSo, I've finally got round to blogging about my trip to <a href="http://www.jaoo.dk/">JAOO</a> in Denmark. I've already posted <a href="http://blog.nominet.org.uk/tech/Software/2005/10/05/JAOO_Software_Conference.html">something</a> on my official work blog about the surprising lack of non-Danes at the conference. Looking back on it, I think the most interesting talk was by <a href="http://www.advanced.org/jaron/">Jaron Lanier</a> on Phenotropic Computing (see <a href="http://java.sun.com/features/2003/01/lanier_qa1.html">this interview</a> for more). His basic thesis is that protocols are bad, because they don't degrade nicely. As a program gets larger and larger these problems build up until the whole thing falls apart. The solution? Use something like pattern recognition for components to talk to one another. It wasn't something you could take back to the office and use straight away, but it certainly was something to get you thinking.<br /><br />On a more practical level, the introductory talk by <a href="http://www.martinfowler.com/aboutMe.html">Martin Fowler</a> on Domain Specific Languages was very good. He managed to get a good deal more interesting material into the short, half hour slot he was given than certain other speakers delivered in an hour. The point that I found particularly interesting was that he pointed out that all programming is using domain specific languages (DSLs) to one degree or other. As soon as you start using an API, that is in effect a DSL. The real difference is the programmers attitude rather than anything else.<br /><br />I think the biggest disappointment was <a href="http://www.ivarjacobson.com/html/index.html">Ivar Jacobson</a>'s keynote speech. I didn't really 'get' it and I wasn't the only one. Another of the speakers characterised it as 'basically nonsense'. He seems to be reacting to the fact that people have difficulty using the <a href="http://en.wikipedia.org/wiki/Rational_Unified_Process">Unified Process</a> not by thinking 'Hmmm, perhaps this is too complicated', but by trying to create some kind of intelligent agent to guide your development. This sounds like 'Clippy' from Microsoft Word to me - I'd rather pair program with a person than an animated paperclip, thanks!<br /><br />(By the way, if you're looking for somewhere to eat in Aarhus close to the Scandinavian Center and the Concert Hall (Musikhuset), I'd recommend the Raadhuus Kafeen (ugly website: <a href="http://www.raadhuus-kafeen.dk">www.raadhuus-kafeen.dk</a>), right opposite the City Hall. I'm no expert, but this seems to me to be an old fashioned Danish restaurant. It wasn't too busy even on a Friday night, the food was good and the portions were enormous. I just hope they're still in business if I get to go to JAOO 2006...)Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1128101036966718022005-09-30T18:22:00.000+01:002005-09-30T18:23:56.970+01:00In DenmarkI'm currently in Denmark, having attended <a href="http://www.jaoo.dk">JAOO</a>. I'll be posting some thoughts etc here very soon...Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1126859758455966902005-09-16T09:33:00.000+01:002005-09-16T10:57:38.756+01:00Welcome to East Germany<a href="http://en.wikipedia.org/wiki/UK">East Germany</a>. A country where you can be <a href="http://news.bbc.co.uk/1/hi/uk_politics/4303427.stm">detained without trial</a> or <a href="http://news.bbc.co.uk/1/hi/uk_politics/3375115.stm">stripped of your rights</a> on the word of a government official. A country where they <a href="http://news.bbc.co.uk/1/hi/uk_politics/4554827.stm">open a file on every citizen</a> and track their every move. A country run by an <a href="http://en.wikipedia.org/wiki/Tony_Blair">authoritarian, supposedly left-wing</a> government.<br /><br />But hey, don't worry about that, look at the <a href="http://news.bbc.co.uk/sport1/hi/front_page/4655555.stm">sporting</a> <a href="http://news.bbc.co.uk/sport1/hi/cricket/4237610.stm">successes</a>.<br /><br />Can I go home please?Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1126703802011491492005-09-14T13:57:00.000+01:002005-09-14T14:16:42.070+01:00100 Bonus Geek PointsHello. Yes, I'm still here despite my recent silence. Just had to point out that I've just gained 100 Bonus Geek Points by being mentioned in an O'Reilly book:<br /><br /><a href="http://www.oreilly.com/catalog/oraclep4/">http://www.oreilly.com/catalog/oraclep4/</a><br /><br />I reviewed Chapter 6 (Exception Handling - take a look, I think you'll find it's one of the best ;-)) so Steven kindly thanked me in the Acknowledgements.<br /><br />I guess the next step is to appear on the front of an O'Reilly book. Only my writing skills are non-existent. Oh well.Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com2tag:blogger.com,1999:blog-9444580.post-1117195696031082462005-05-27T12:35:00.000+01:002005-05-27T14:47:37.480+01:00Moving to TextdriveI've used <a href="http://www.f9.net.uk/">Force 9</a> aka PlusNet for about 8 years as my ISP, then also to register and host my domains. However, since I now get broadband access paid for by <a href="http://www.nominet.org.uk/">my employer</a>, I don't really need an ISP. (As it happens this broadband access is via the very same PlusNet at my suggestion). So, I only need somewhere to host my domains and my email.<br /><br />My domains are now at <a href="http://www.1and1.co.uk/">1 and 1</a>, because they offer domains at below cost price with no strings attached and full control of the DNS. But I still need somewhere to actually host webspace and email. I don't know about you, but whenever I've looked at this sort of thing in the past, it always seems that these companies are aiming themselves squarely at the business market, rather than the 'geek' market. So there's an entry level which gives you some webspace and some mailboxes. But if you want all the toys (shell access, cron jobs, cgi-bin scripts, mySQL databases etc etc) you have to buy one of the high end accounts which give you acres of disk space and vast amounts of bandwidth and cost an arm and a leg.<br /><br />Some of you (or perhaps both of my regular blog readers...) are probably saying "do it yourself!" at this point. But I really don't want to have to run machines in my house connected to the net 24/7 and worry about administering the damn thing. I'm a programmer, not a sysadmin!<br /><br />To cut a long story short, I'm moving to <a href="http://textdrive.com/">Textdrive</a> having heard good things in the Ruby community, including <a href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi/Random/TwoISPs.rdoc">here</a>, <a href="http://www.clarkware.com/cgi/blosxom/2005/05/20#TextDrive">here</a> and <a href="http://jamis.jamisbuck.org/articles/2005/05/15/moved">here</a>. They give you all the toys you could possibly want, starting from the cheapest hosting package and they seem to know what they are doing. You've got to love the quote on the front page of the website:<br /><blockquote>We have no photographs of our CEO strutting past server racks, or of women in telephone headsets ready to take your call, but we hope you’ll consider joining us all the same.</blockquote><br />One of these days I may get round to moving this blog too...Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1117109937637467072005-05-26T12:59:00.000+01:002005-05-26T13:18:57.646+01:00Borland have got a silver bulletHold the front page! Borland have discovered the holy grail of software development. To quote their ad which appears in <a href="http://www.computing.co.uk/">Computing Magazine</a> (and doubtless elsewhere in the IT press):<br /><blockquote>Software Delivery Optimization transforms software development into a predictable, reliable, managed business process.<br /></blockquote>I'm sorry, but as soon as I read something like this, it makes me <a href="http://c2.com/cgi/wiki?SetTheBozoBit">set the bozo bit</a>, which is probably not what the ad is supposed to achieve. Surely we're all mature enough to know that there are no silver bullets. There are better ways to build software and there are worse ways. Who knows, perhaps <a href="http://info.borland.com/05/ad/Borland_SDOuk.html">SDO</a> is one of the better ways and maybe this choice of words is just a load of marketing nonsense. But software development can only be predictable and reliable if the environment it is in is also predictable and reliable. If the organisation you develop for has requirements that never change and can be predictably mapped out for the forseeable future, then maybe this is possible. Otherwise, it's not going to happen.Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1116590630271751882005-05-20T12:50:00.000+01:002005-05-20T13:03:50.276+01:00Sign a petition against ID cardsI think that the UK Government's idea of a compulsory ID card and associated giant identity database is dreadful idea. There can be no doubt that it is an invasion of privacy and curtailment of freedom. In effect, you'll have to register with the government for the right to exist. Otherwise, you'll be a criminal. <br /><br />If there was a good reason for it, then perhaps I could put up with it. I mean, we give up various freedoms for the common good all the time. So the police can break into your house and arrest you. That certainly is a curtailment of freedom and privacy! But we only allow it where the person is suspected of a serious crime. We <span style="font-weight: bold;">don't</span> allow it willy-nilly. The justifications that have been trotted out have ranged from terrorism to immigration and making it easy to join a video club. I don't believe it will make any difference in the former cases and I don't think the latter is a problem that needs solving with illiberal legislation and millions of pounds of taxpayer's money!<br /><br />If you agree with me on this, sign the No2ID petition here: <a href="http://www.no2id-petition.net/">http://www.no2id-petition.net/</a>Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1115112018055864552005-05-03T10:01:00.000+01:002005-05-03T10:20:18.056+01:00Software Development and Game TheoryI've started reading "<a href="http://www.amazon.co.uk/exec/obidos/ASIN/0201699699/">Agile Software Development</a>" by Alistair Cockburn. I haven't had the time to get very far as yet, but I do like the way he analyzes software development as a game (that's game as in <a href="http://en.wikipedia.org/wiki/Game_theory">Game Theory</a>). He characterizes it as a co-operative game of invention and communication. He also talks about how each project is a game, but that this fits into a larger game of corporate strategy. Looking at it this way helps us to understand that decisions that make no sense at the micro (project) level can make sense at the macro (corporate) level. So <a href="http://bossavit.com/thoughts/archives/000811.html">this post</a> by Laurent Bossavit fitted nicely into topics I was thinking about. He is talking about the corporate level and why organisations sometimes don't do things the best way (e.g. Agile development), using the Prisoner's Dilemma to explain it.Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1113292438008927622005-04-12T08:41:00.000+01:002005-04-12T09:24:57.166+01:00Where are the RESTful frameworks for Java?I've been doing some research into RESTful web services recently. We may be going down this route, so I've been tasked with giving a presentation to the development team on the topic. As part of this, I checked out what Java frameworks are available to simplify the process. The answer seems to be - not many. I've found <a href="http://sourceforge.net/projects/gomba/">Gomba</a> and <a href="http://sourceforge.net/projects/sqlrest/">sqlREST</a> which both turn data exposed via JDBC into RESTful web services. But that's it.<br /><br />I'd expect that there'd be something along the lines of Hibernate that would allow you to declare resources, their URIs and how the different operations (GET, POST etc) map to method calls in Java.<br /><br />Maybe I'm not looking hard enough, or I've overlooked some reason why such a framework isn't worth writing?<br /><br />(Btw, the links I've collected during my research are available here: <a href="http://del.icio.us/chrs/REST">http://del.icio.us/chrs/REST</a>)Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com2tag:blogger.com,1999:blog-9444580.post-1106438734723969912005-01-22T23:34:00.000+00:002005-01-23T00:11:17.560+00:00Getting Things Done vs AgileI've been reading <a href="http://www.amazon.co.uk/exec/obidos/ASIN/0749922648">Getting Things Done</a> (GTD), just because of all the stuff I've seen written about it all over the web. To explain briefly, it's about techniques to get yourself in control of all the things you need to do in your life, both professionally and personally. Being very interested in all things agile, I have been looking at it from that perspective. Do other agilistas out there have this experience? You find yourself saying "let's just do the simplest thing that could possibly work" in completely non-technical situations? Anyhow, I believe there are certain parallels:
<br /><ul> <li>Many adherents believe in using low-tech solutions, especially index cards. <a href="http://merlin.blogs.com/43folders/2004/09/introducing_the.html">Exhibit A</a>. <a href="http://c2.com/cgi/wiki?IndexCard">Exhibit B</a>.
<br /></li> <li>Both are designed to work with human nature, rather than coming up with a system and then trying to get people to fit around it.</li><li>Periodic review and reflection are a vital part of each.</li> <li>The work which needs doing in each is listed in simple "bullet point" style.</li> <li>The whole point of each system is to get stuff done as efficiently as possible so that you have time for other things.
<br /></li> </ul>There are some things which might seem to be contradictory:
<br /><ul> <li>GTD stresses getting everything down on paper. Agile stresses verbal communication over everything.</li> <li>GTD suggests delegating work by email as first preference, face-to-face as last preference. Agile prefers face-to-face to email wherever possible.
<br /></li> </ul> The first of these is not really a contradiction - GTD talks about getting something down on paper for everything you need to think about. But this is just one line in a list as a marker or reminder. So the "Next Actions" of GTD are really like Stories for yourself. Which brings us back to the final bullet point of the previous list.
<br />
<br />I've started putting the recommendations of GTD into place and I'm finding it useful so far. Right, so I can cross off "Write blog entry on GTD vs Agile" from my "At Computer" next actions...
<br />Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1105910294564611572005-01-16T21:03:00.000+00:002005-01-16T21:20:27.190+00:00Sorry - No web access on SundaysMy <a href="http://www.nominet.org.uk/">employer</a> is a big user of the details stored at <a href="http://www.companieshouse.gov.uk/">companies house</a>. This information is very useful for proving that companies really are who they say they are. When I recently saw that we get charged £1 everytime we look at the details of directors of a company and that these searches have to be done via a web browser, I wondered if there was any way to link directly to their database using some kind of webservice interface. The answer is no, but the more interesting thing I found out was that you can't actually access their systems on Sundays, or after midnight:
<br /><img width=419 src="http://photos3.flickr.com/3433756_85bca837f5.jpg" alt="Closed" />
<br />Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1103635613587440982004-12-21T13:20:00.000+00:002004-12-21T13:28:08.763+00:00No Happy EndingsI'm still only half way through <a href="http://www.amazon.co.uk/exec/obidos/ASIN/0321278658/qid=1102082358/ref=sr_8_xs_ap_i1_xgl/202-6996083-1091862">The White Book v2</a> but something has struck me. Whenever Kent Beck comes up with an anecdote about a real project that had problems, it seems that it usually ends with "...unfortunately I couldn't convince them to...". Am I just imagining this? If he can see problems, but can't convince people to try his solution, what hope for the rest of us?
<br />Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1103046703598748492004-12-14T17:35:00.000+00:002004-12-14T17:51:43.596+00:00No VelocitySo it seems that Kent Beck has completely replaced the concept of "Velocity" with the idea of a "Budget" in XP version 2. I think this is an attempt to speak in language that business people will understand. To be honest though, it seems that even technical people have difficulty with this word too. I've seen velocity used where it means:
<br /><ul> <li>Number of story points completed in an iteration (This one is correct!)</li> <li>Number of story points completed so far this iteration.</li> <li>Number of points attached to a given story.</li> </ul> Using the word "budget" for the first one means that the other two come out as something like "value of items purchased" and the third one as just "price".
<br />
<br />Hopefully this will stop the misuse of "Velocity" - whenever I see it, it brings out my pedantic side.
<br />Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1102366034141076072004-12-06T20:29:00.000+00:002004-12-06T20:47:14.140+00:00Google-style stateless cursorsIn the good old days when I spent my time cranking out PL/SQL, I spent lots of time creating cursors, since these are the best way for PL/SQL to interact with SQL. So, you define a cursor, open it and step through the rows that get returned, usually doing stuff with each row. End of story.
<br />
<br />Fast forward to the present day and I am implementing search functionality in a stateless architecture. So you can't open a cursor and step through all of the rows. You have to come up with something like Google, where you get displayed results a page at a time. So, you can open a cursor and pull back a page of results, but when you want the next page obviously the cursor you had has gone. So you have to open a new one and move through it until you get to page 2.
<br />
<br />This seems like something the world and his dog must have done, but I can't find much discussion of the topic and any techniques for doing it efficiently. Maybe I'm just not looking hard enough? Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com2tag:blogger.com,1999:blog-9444580.post-1102345061260887762004-12-06T14:53:00.000+00:002004-12-06T14:58:51.856+00:00Managing ExpectationsOnly a little way into "The White Book" (<a href="http://chrs.blogspot.com/2004/12/white-book-v2.html">see previous post</a>) and already there are some nice quotable nuggets. I like this particularly:
<br /><blockquote style="font-style: italic;">It's not my job to "manage" someone else's expectations. It's their job to manage their expectations. It's my job to do my best and to communicate clearly.</blockquote>As usual, Kent Beck takes the accepted wisdom, turns it on its head and then points out that it should have been that way up all along!
<br />
<br />
<br />Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0tag:blogger.com,1999:blog-9444580.post-1102080537403689672004-12-03T13:28:00.000+00:002004-12-03T14:01:42.486+00:00White Book v2I've just got a copy of v2 of the "<a href="http://www.amazon.co.uk/exec/obidos/ASIN/0321278658/qid=1102082358/ref=sr_8_xs_ap_i1_xgl/202-6996083-1091862">White Book</a>". Having just been to <a href="http://www.xpday.org/">XPDay</a>, I'm full of agile zeal, so it shouldn't take too long to read it...
<br />Chrishttp://www.blogger.com/profile/09585902548424363489noreply@blogger.com0