tag:blogger.com,1999:blog-308890852008-05-09T09:05:14.749+01:00juliansimpson.orgJulianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comBlogger44125tag:blogger.com,1999:blog-30889085.post-54681183847691897472008-05-08T22:42:00.002+01:002008-05-08T22:46:29.270+01:00Last chance to sponsor us before the Woking bikeathon.<span style="font-size:small;"><b></b></span>Leukemia is horrid. Riding bikes is good. That's why we are riding in the 2008 Woking Bikeathon for Leukaemia Research. More info: <a href="http://justgiving.com/lesleyandjules">Link</a>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-58047106061651729552008-04-21T18:22:00.002+01:002008-04-21T18:25:39.724+01:00Scaling up CruiseControl ...<span style="font-size:small;"><b></b></span>... is my latest CruiseControl best practice post. In <a href="http://www.build-doctor.com/2008/03/cruisecontrol-enterprise-best-practices.html">English </a>and <a href="http://www.blogjava.net/chelsea/archive/2008/04/12/192481.html">Chinese</a>.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-47726538358124224302008-04-07T20:34:00.003+01:002008-04-09T22:22:37.108+01:00Do you have a Mac OS 7 install CD or disks cluttering up your office?<span style="font-size:small;"><b></b></span>I'm going to either:<br /><br />- give away my beloved Apple MacIntosh SE/30, or<br />- make the thing work.<br /><br />I'm looking for a copy of Mac OS 7 so I can make it boot. With the 80Mb hard disk that I used to run my business on in 1996, an external SCSI CD-RW drive and a little luck, I think I stand a decent chance. Drop me a comment if you know where I might get a copy. Thanks.<br /><br /><span style="font-weight: bold;">Update:</span> It looks like I'll need to resurrect the x86 machine in my cupboard, burn some floppies to boot from, and then boot up the Mac. I should have been doing this on those long winter nights ...Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-87161121467455028072008-04-01T22:55:00.003+01:002008-04-01T23:00:02.470+01:00Looking for the CruiseControl validator?<span style="font-size:small;">Short Answer: Sorry about that. You can find it on <a href="http://www.build-doctor.com/2008/04/cruisecontrol-best-practices-series.html">Build Doctor.</a><br /><br />Longer Answer: After my hosting firm destroyed my server, I set up a blog on blogger to keep going with. Tonight I decided to have a spring clean and get rid of my single static HTML site at www.juliansimpson.org, and redirect the blogger blog to that address. Things might be weird for a day or so.<br /><br /></span>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-88860409670737857462008-03-31T22:47:00.001+01:002008-03-31T22:49:43.144+01:00Riding 30 miles for charity againWe're riding the annual Woking bikathon in support of Lukaemia Research, on May 11. <a href="http://www.justgiving.com/lesleyandjules">Link</a>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-31701811437743500192008-03-08T10:52:00.002Z2008-03-08T11:02:14.613ZMy latest CruiseControl Post in English and Chinese<span style="font-size:small;"><b></b></span>English version on www.build-doctor.com: <a href="http://www.build-doctor.com/2008/02/refactor-your-configuration-file.html">Link</a><br /><br />Chinese version on blogjava.net: <a href="http://www.blogjava.net/chelsea/archive/2008/03/06/184374.html">Link</a>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-44735568292995690622008-03-02T22:17:00.002Z2008-03-02T22:37:14.433ZI'm glad that's over<span style="font-size:small;"><b></b></span>We moved house in the latter part of January. I was looking forward to getting an office again. My last office was converted into a small child's bedroom after a prospective buyer of our old house was heard to mention "There's nothing but computers in there!". Abby was so happy with her hastily arranged new bedroom that I couldn't bring myself to kick her out again.<br /><br />So for the first time in about 3 years, we have an office. It still looks like a bomb hit it, but I have been able to do some blogging. Now that the broadband is alive again. We changed phone and broadband providers with the house move. A week with no BT line. 40 days and 40 nights (literally) with no broadband. Thank you, as yet unnamed telco. It's amazing how inadequate dialup is. Especially when you've just had to hand back your shiny new Mac Book Pro to your old employers and need to set up a new computer.<br /><br />I can sympathize with <a href="http://www.warrenellis.com/?p=5661">Warren Ellis</a>.<br /><br />This weekend I did manage to upload a new <a href="http://www.build-doctor.com/2008/02/refactor-your-configuration-file.html">CruiseControl Best Practices post</a>. I'm publishing on Build Doctor at least in the interim. I'm not sure what the deal is for ex-ThoughtWorkers posting on the ThoughtWorks studios blog. There's another in the pipeline, too. I also finished a couple of other <a href="http://www.build-doctor.com/2008/02/it-really-does-work-on-my-computer.html">new</a> <a href="http://www.build-doctor.com/2008/03/it-even-works-on-your-computer.html">posts</a> for build-doctor.com as well.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-20553595188246141892008-02-20T14:07:00.002Z2008-02-20T14:39:50.970ZGoodbye, ThoughtWorks<span style="font-size:small;">This is my last afternoon as a ThoughtWorker. After 7 major projects in 3 countries, I'm calling it a day.<br /><br />It's a difficult decision: I have learned so much about people and technology since I started nearly 4 years ago. Especially about people.<br /><br /></span>In my career so far, I have only worked for two or three companies where I have actually felt proud to say I worked there. ThoughtWorks is one of them. More on the new role later.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-78408710828160134882008-02-18T14:41:00.001Z2008-02-18T14:43:23.373ZMy latest CruiseControl best practice post in ChineseFresh from our star translator Guanglei:<br /><a href="http://www.blogjava.net/chelsea/archive/2008/02/17/180326.html"><br />http://www.blogjava.net/chelsea/archive/2008/02/17/180326.html</a><br /><span style="font-weight: bold;"></span>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-46175288635766031352008-01-24T13:19:00.000Z2008-01-24T13:22:25.530ZCruiseControl Enterprise Best Practices, part 4<span style="font-size:small;">The guys at ThoughtWorks Studios just published my fourth post on CruiseControl Enterprise Best Practises, <a href="http://studios.thoughtworks.com/2008/1/24/bootstrap-with-a-bootstrapper">here</a>.<b><br /></b></span>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-71562897048670405012008-01-02T21:55:00.000Z2008-01-02T21:57:45.132ZIrradiating your developersI recently wrote an article on building an Information Radiator for my project, <a href="http://www.build-doctor.com/2007/12/irradiating-whole-team.html">here</a>.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-32361606622028604352007-12-27T11:22:00.001Z2007-12-28T09:52:28.562ZHow to reply to a FreeCycle offer<a href="http://www.freecycle.org/">Freecycle</a> is a wonderful way to help save the planet. It's a very simple idea - a mailing list for people in your area to give away unwanted things (or ask for things that people might want to give away). We're having a premature spring clean this month because we're moving house. So we're listing loads of things, and we've had loads of replies. Some are fast and terse, some are polite and thoughtful. If you want to be the person to collect the goods, here's the best way to ask for something:<br /><ul><li>Greet the person who posted the message. It's only polite. I find that the word "Hello" helps. Or the abbreviation "Hi".</li><li>Tell them that you would be interested in the item (without presuming<br />that they will give it to you).</li><li>Tell them how it would improve your life, or someone else's life.</li><li>Don't abbreviate your message. Use full words.</li><li>Make sure that your email software is set up to use your full name. I'd<br />much rather agree to pass something on to a named person, instead of<br />'booboo75@yahoo.co.uk'.</li><li>Thank the person for their time.</li></ul><p>Some may argue that speed is of the essence, and that the fastest email<br />will win. Maybe. But unless you're sat there watching the emails roll<br />in, you're probably not the first to reply, anyhow.</p><p>Besides: Freecycle is about reducing consumerism and landfill use. Which email approach do you think is most appropriate?</p>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-63209020495234098392007-12-19T16:41:00.001Z2007-12-19T16:49:58.046ZMy daughter isn't even 5 yet and she draws mind mapsSometimes when I feel the need to get an overview of something, I draw a mind map. Yesterday I announced my intention to do just that when Abby said: "I can do mind maps!". She proceeded to do this animal themed map in my notebook.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_-rlZcQ-7nAM/R2lJ46uIgkI/AAAAAAAAAAM/0ySu4pxqsDo/s1600-h/abby-mind-map.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_-rlZcQ-7nAM/R2lJ46uIgkI/AAAAAAAAAAM/0ySu4pxqsDo/s320/abby-mind-map.jpg" alt="" id="BLOGGER_PHOTO_ID_5145725291431756354" border="0" /></a><br />I feel very proud and old, at the same time. I was 20 when I first read about mind maps.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-14783277584915239372007-12-05T22:05:00.000Z2007-12-05T22:07:43.070Zbuild vs. deployI just wrote an email on confusing Build with Deploy on my other blog:<br /><br /><a href="http://www.build-doctor.com/2007/12/on-confusing-build-and-deploy.html">http://www.build-doctor.com/2007/12/on-confusing-build-and-deploy.html</a>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-87266475515573775002007-11-25T20:07:00.000Z2007-11-25T20:56:09.222ZXP Day 2007: Brilliant!Presenting an experience report while recovering from a bout of stomach bug: Interesting. I think I did well considering. The response was positive, with two pieces of negative or neutral feedback, but 17 positive. I presented this talk at Agile 2007 this year with my friends Shane and Rolf. We assumed that was it (we all binned our talk notes, which didn't help me), until <a href="http://www.xpday.org/user/4">Angela Martin</a> kindly suggested that we submit it for this conference.<br /><br />Top tip: if you present 3 person report without the other two people, rewrite slides so you know what it's really on about.<br /><br />I'd never been to an <a href="http://www.xpday.org">XP Day</a> before; I was very pleasantly surprised by the lovely people and the great sessions. Highlights for me were:<br /><ul><li>Catching up with former colleagues, people from <a href="http://www.citconf.com/">CITCON,</a> and other conferences<br /></li><li>Being prepared to argue about Non Functional Requirements in Sally Ann Freudenberg's <a href="http://www.xpday.org/node/106">fishbowl,</a> and having Nat Pryce and Keith Braithwaite argue most of what I wanted to say anyway.</li><li>Duncan Pierce and Rachel Davies' standing-room-only session '<a href="http://www.xpday.org/node/101">Cognitive Bias in Decision-making</a>'</li><li>The final session for the second day of the developer track was Steve Freeman's panel: '<a href="http://www.xpday.org/node/48">Have we lost our Mojo?</a>'. It was great to see so many notable people debating the state of the Agile community.</li></ul>In summary: It's well worth attending.<br /><br />I think the Mojo is behind the cushions on the sofa, anyhow.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-6356207614578394142007-11-14T10:02:00.000Z2007-11-14T13:24:55.263ZI'm presenting at XP Day London next weekI'm presenting an experience report called "Large Build Teams: Help or Hindrance?" at <a href="http://www.xpday.org/programme">XP Day London</a> this Monday. Looking forward to it.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-18959758007418230302007-11-09T11:02:00.000Z2007-11-09T11:44:10.385ZCruiseControl Best Practices - part 3 in English and ChineseThe third installment of my series, "CruiseControl Enterprise Best Practices" is available in <a href="http://studios.thoughtworks.com/2007/11/8/configuring-cruisecontrol-the-cruisecontrol-way">English</a> and <a href="http://www.blogjava.net/chelsea/archive/2007/11/09/159226.html">Chinese.</a> Thanks as usual to John, who publishes the ThoughtWorks Studios blog posts for us, and Guanglei for the Chinese translation.<br /><br />Also, thanks to <a href="http://www.chris-read.net/">Chris</a> who pointed out the WTF in my tests for validator code.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-32206573399561552832007-10-22T22:51:00.000+01:002007-10-22T23:03:39.060+01:00My CruiseControl blog posts, in ChineseMy colleague in Beijing, Guanglei Li has very kindly translated my first two blog posts for ThoughtWorks studios into Chinese:<br /><br /><a href="http://www.blogjava.net/chelsea/archive/2007/10/12/152185.html">http://www.blogjava.net/chelsea/archive/2007/10/12/152185.html</a><br /><br /><a href="http://www.blogjava.net/chelsea/archive/2007/10/15/153125.html">http://www.blogjava.net/chelsea/archive/2007/10/15/153125.html</a><br /><br />Thank you Guanglei.<br /><br />I was hoping to complete the third post at <a href="http://www.citconf.com/brussels2007/">CITCON Europe</a> this weekend, but it's not quite finished. More on that soon as well.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-45292455741921976912007-10-01T21:20:00.000+01:002007-10-01T22:28:12.687+01:00More build pipeline discussions at InfoQ<a href="http://elssamadisy.com/">Amr Elssamadisy</a> at <a href="http://www.infoq.com/">InfoQ</a> <a href="http://www.infoq.com/news/2007/09/CI_Pipeline">wrote up</a> the conversation that <a href="http://www.pubbitch.org/blog">Simon Stewart</a> and I have been having about the Build Pipeline, here. Thanks Amr!Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-64718999889603906172007-09-24T10:15:00.000+01:002007-09-24T10:25:46.887+01:00CruiseControl best practices on the ThoughtWorks Studios blogI'm writing a series of best practices for <a href="http://studios.thoughtworks.com/cruisecontrol">CruiseControl Enterprise</a> on the ThoughtWorks Studios <a href="http://studios.thoughtworks.com/blog">blog</a>. <br /><br />Posts <a href="http://studios.thoughtworks.com/2007/8/15/cruisecontrol-enterprise-best-practises">#1</a> and <a href="http://studios.thoughtworks.com/2007/9/24/keep-your-dependencies-to-yourself">#2</a> have been published already.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-83788111532285528792007-09-16T20:58:00.000+01:002007-09-16T21:42:40.603+01:00bike thieves: scum sucking leechesAnt and Smartfrog maintainer (and keen cyclist ) Steve Loughran had his bike stolen in Bristol today. <br /><br />Charmingly they knocked over his 5 year old son while nicking it. The full story is on his <a href="http://www.1060.org/blogxter/publish/5">blog</a>. If you live in or near Bristol, England (or even if you don't), please have a look. You just might help recover it.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-8522554427200944832007-09-12T22:48:00.000+01:002007-09-24T10:15:24.179+01:00Damn you, Obsolescence!My first real job was in a computer rental company. I used to service and install <a href="http://en.wikipedia.org/wiki/Apple_Mac">Apple MacIntosh computers</a>. I'm in my 30's now and I was 19 then. The only thing that the me of 1992 would recognise in an Apple Store in 2007 would be the logo. Perhaps that's why I am so obsessed with ancient Mac systems now - perhaps it's a way of holding onto my past identity as someone who loved working on Apple computers. I'll save that one for therapy.<br /><br />Anyway, right now I have a leaky garage full of Apple Mac parts that I need to shift before winter. I've decided to stick with one ancient Mac and find a new home for the rest. It drives me mad to see people making aquariums out of working computers that could still be used. So if you know anybody who tinkers with old Apple kit, please send them the <a href="http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=170148891781">link</a> below. I don't normally pimp my Ebay auctions on my blog, but in this case my motivation is to keep some working computer parts out of landfill.<br /><br /><a href="http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=170148891781">http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=170148891781</a><br /><br /><span style="font-weight:bold;">Update:</span> A very nice man collected the whole pile of Mac gear on Friday. Now I need to <a href="http://www.freecycle.org">freecycle</a> the PC bits ...Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-65544277794709203252007-09-01T16:43:00.000+01:002007-09-01T17:05:55.179+01:00published at lastI presented an <a href="http://doi.ieeecomputersociety.org/10.1109/AGILE.2007.37">experience report</a> at Agile 2007 last month with my colleagues <a href="http://www.shaneduan.com/">Shane Duan</a> and Rolf Russell.<br /><br />The full paper is available from the Agile 2007 website:<br /><br /><a href="http://www.agile2007.org/index.php?page=sub/&id=542">http://www.agile2007.org/index.php?page=sub/&id=542</a><br /><br />I also helped present a <a href="http://www.agile2007.org/index.php?page=sub/&id=406">workshop on Continuous Integration</a> with Tom Sulston and <a href="http://pauljulius.com/blog/">Paul Julius</a>. Photos here:<br /><br /><a href="http://www.flickr.com/photos/tags/thedailyci/">http://www.flickr.com/photos/tags/thedailyci/</a>Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-4829036508585793332007-08-03T22:27:00.000+01:002007-08-03T22:37:57.829+01:00The cost of change for build and deployDeploying software in Agile projects is often considered a black art or a thankless task.<br /><br /><span style="font-size:130%;">Flattening the cost of change ...</span><br /><br />We've pretty much always known that in waterfall projects, later changes cost a lot more than early changes. Agile methodologies attempt to flatten the cost of change by the use of practises such as testing, continuous integration, iterative developmet, collective code ownership and early deployment. This is successful in a majority of Agile development projects; and we continue to write tools and frameworks to allow us to write software faster and cheaper. This is all good and I wouldn't want to work any other way.<br /><br /><span style="font-size:130%;">... for everything?</span><br /><br />The software project that I am working on is delivering well software when we plan to deliver it: we have a large team turning out Java applications that are delivering value to the business.<br /><br />So why is deployment such a poor cousin to the code that it deploys? Almost every project I have worked on has ended up with a deployment script that is a polyglot of Unix shell script commands. I don't attribute the problem to the choice of scripting language; such scripts make computer systems around the world run, and will continue to do so for years to come. What I want to explore is how we deploy software quickly without creating a deployment script that nobody wants to touch.<br /><span style="font-size:130%;"><br />The safety net</span><br />Refactoring poor code can be challenging, but it's certainly possible to do so without breaking the build. Chances are that you'll be able to ensure that at least your new code has test coverage to give you some confidence. You can always fall back on the debugger in your IDE. When you do break the build, you'll most likely be able to use the feedback to resolve the issue. <br /><br />Compare this activity to changing build and release scripts. You don't often have test coverage for what you are doing in this world. Your scripts may not be executed until days later, perhaps more.<br /><br />Finding out that every released version of code since last week has been broken by your change could be considered a gumption trap.<br /><br /><span style="font-size:130%;">The 1990's called. They want their deployment system back.</span><br /><br />The cost of change, which we have done a great job of flattening in software projects comes back with a vengeance here. Once we leave the IDE , we seem to give up our agile practises. We cheerfully deploy fully tested code with an untested deployment system.<br /><br />We seem to confuse several activities on software projects: build, deploy and systems administration.<br /><br />Because deployment is the area where code artifacts meet the systems run by the operations people, it makes sense in a narrow way to have those people own the deployment scripts and process. But to do that overlooks the fact that developers can bring a lot to the deployment process. I'd much rather see collaboration between the developers, who bring coding expertise and the systems people, who know a thing or two about how to deploy applications. In my experience, throwing deployment entirely over the wall leads to a less than optimal process and developers who know nothing about how the code that they write gets run.<br /><span style="font-size:130%;"><br />All very depressing. what can we do?</span><br /><span style="font-size:100%;"><br /><br /><span style="font-weight: bold;">Consider your options for deployment systems</span></span><br />At the very least, consider writing your deployment system in a language that is easily testable. Python and Ruby come to mind. You may also be able to adopt a framework like SmartFrog or Capistrano, rather than rolling your own.<br /><br /><span style="font-weight: bold;">Exercise the production deployment process in Continuous Integration</span><br /><p><br />We rehearse plays, weddings and deployments. But are we rehearsing the same thing that we perform on the night? Not on some projects: we have seen farce being rehearsed during development, and then drama being rehearsed in the deployments to test environments. Many projects suffer from a scarcity of test environments. Use your time on them testing software rather than debugging deployments.<br /></P><br /><span style="font-weight: bold;">Think up front about your requirements</span><br />Spend some time at the whiteboard, thinking about your requirements for deployment, and what might come down the road. If you have time to implement them and you can, do it. This goes against the grain of Agile software projects, but when you don't have the benefit of refactoring, or other nifty practises, you'll constantly be playing catch-up.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.comtag:blogger.com,1999:blog-30889085.post-20590582366210485912007-07-30T22:06:00.001+01:002007-09-11T22:13:55.382+01:00The pipeline of doom<p><br /><a href="http://www.pubbitch.org/blog">Simon</a> wrote recently about <a href="http://www.pubbitch.org/blog/2007/07/28/the_build_pipeline">the Build Pipeline</a>. His enthusiasm for the technique is infectious, but I have to add a note of caution. The big idea is to reduce the feedback cycle for developers ("the unit and db tests passed on CruiseControl, our checkin looks okay") while still allowing slower automated acceptance or regression tests to run afterward. Of course, the entire team needs to treat the second build with as much reverence as the first.<br /><p><br />I haven't always found that to be the case. So I wouldn't recommend this technique unless the team already has enough discipline to keep a <a href="http://martinfowler.com/articles/continuousIntegration.html">Continuous Integration</a> build green, for starters. <br /><p><br />The other aspect of the pipeline that I find troubling is this: by not forcing the developers to sit through the functional tests before they check in their code, you prevent their <a href="http://c2.com/cgi/wiki?LazinessImpatienceHubris">fantastic brains </a>from reflecting on improving them. If people are feeling the pain of running them, they have a good motivation to fix them. Those tests ought to provide the biggest bang for your buck: unless you're careful you could be running poor tests dozens of times a day.<br /><p><br />Don't simply push those tests down the pipeline, but fix them where you can, and keep the feedback loop as fast as you can for the entire team. After all, there's <a href="http://en.wikipedia.org/wiki/No_silver_bullet">no silver bullet</a>.Julianhttp://www.blogger.com/profile/06148753904642162513noreply@blogger.com