Renaissance Developer
A Renaissance Developer is a Generalising Specialist - a jack-of-all-trades,
master of a few. For futher details, see Renaissance Developer.
Otherwise, read on...
- Jonathan Coulton in London
- permanent link
- Sunday, 09 March 2008
-
Wow, hey! Jonathan Coulton is coming to London!. I've already booked tickets for a friend and I. I heartily recommend that anyone else come along to see the Godfather of Geek Rock.
- Updated CruiseControl Presentation
- permanent link
- Thursday, 22 November 2007
-
I just done a minor update to my Introduction to CruiseControl slide show. A huge "thank you" to Siegfried Goeschl, who sent me his changes.
- Postfix SpamAssassin and SELinux
- permanent link
- Tuesday, 16 October 2007
-
I've just had three very long nights in a row, configuring a new mail server for Lillifoot, and trying to get SpamAssassin working. It's finally working very sweetly, but I pulled a fair amount of hair out getting there.
My configuration is as follows:
- Xen Hypervisor: Dual Core 3.0GHz Intel Pentium 2Gb. I'm currently only running the mailserver as a Xen guest on this right now, but I will add more virtual machines later.
- Mailserver (Xen Guest): I set up a guest and called it
mail.exubero.com. - Operating System: I'm running Centos 5 in the Xen guest. I performed a clean minimal installation (headless), and disabled all services except sshd.
- Services: On top of the above base, the following services were installed:
I was able to install Postfix without too much trouble. After updating the DNS MX records for exubero.com and lillifoot.co.uk to point to mail.exubero.com, we're in business. There were a number of issues in the first day as I worked the kinks out of the configuration (I'm only really an amateur mailserver administrator).
What I hadn't previously appreciated was how much spam my previous ISP had been catching. Not a huge amount, but still in the range of 20-30 per day. Not a problem: off to install SpamAssassin.
I found a very good configuration guide for Postfix, SpamAssassin and Procmail by Robert Bushman. There were very clear instructions with easy to follow steps. All preparation steps worked fine, and I was able to test the configuration without issue. However, after I enabled the configuration in the running server, I got a strange error:
pipe[4403]: fatal: pipe_command: execvp /usr/local/bin/sa-filter: Permission denied postfix/pipe[4400]: 5ECB0186DD3: to=<joe@example.com>, relay=spamassassin, delay=3.4, delays=2.9/0.04/0/0.46, dsn=4.3.0, status=deferred (temporary failure. Command output: pipe: fatal: pipe_command: execvp /usr/local/bin/sa-filter: Permission denied )
This is saying that the SpamAssassin filter (
sa-filter) did not have permissions to run.The configuration in
master.cfshows that the script is run using the new "filter" user I created as per the instructions:# Spam Filter spamassassin unix - n n - - pipe user=filter argv=/usr/local/bin/sa-filter -f ${sender} -- ${recipient}Hmmmm... the script worked fine when I was testing it manually, and running under the
filteruser. Check the script permissions:[joe@mail ~]$ ll /usr/local/bin/sa-filter -rwxr-xr-- 1 filter filter 72 Oct 16 01:21 /usr/local/bin/sa-filter
That looks good. I spent a long time researching this particular problem, without much success. The logs were inconclusive, and I couldn't track down anything useful. In the end, I reverted the Postfix configuration changes, and left it for a day.
Finally, researching a related but different problem, I came across a reference to SELinux causing problems with Postfix. With this idea, I tried changing the SELinux policy to "
permissive"; suddenly, everything starts working. Wheee! For some reason, SELinux wasn't logging it's usual error messages to/var/log/messages.Obviously, the more robust solution is to tweak the SELinux configuration to allow the script to run while SELinux is enabled. Dear Lazyweb, If anyone can help me on that one, send me an email and I'll post an update to this article.
- Jonathan Coulton
- permanent link
- Tuesday, 25 September 2007
-
Jonathan Coulton's music has been playing pretty non-stop on my music player for the last week now. It's great music, and the lyrics often have a perverse humour based on maths, science fiction and other geeky subjects that really appeals to me. Who else can sing about the Mandelbrot Set without sounding lame?
I've known about Jonathan Coulton for about two years now, after I first heard about him after a mention about his song Code Monkey on the Java Posse, and then again later on Slashdot. I though Code Monkey was a great song at the time, but I didn't look any further then.
Recently, I heard reports of him wowing the crowd at PAX. One thing that really struck me was the description of his reaction to the size of the crowd, which was about 3000 (compared to his normal crowd of about 50-200). All of them were screaming "all we want to do is eat your brains", which sounds grusome, but makes sense if you know that particular song. All this prompted me to check out his music again, which lead me to make my first music purchase in more than three years.
One (other) thing which makes Jonathan's music relatively unusual is the fact that he releases it under the Creative Commons. This means that people are free to make non-commercial derivative works. As a result, there are many amateur and semi-professional videos available, most of them linked from Jonathan's site. Spiff does some excellent machinima videos using the World of Warcraft.
Some of my favorites:
- The Future Soon (Ill probably be some kind of scientist building inventions in my space lab in space)
- Skullcrusher Mountain (I made this half-pony half-monkey monster to please you)
- Mandelbrot Set (Kickass fucking fractal!)
- Chiron Beta Prime (were working in a mine for our robot overlords. Did I say overlords? I meant protectors)
Anyway, enough gushing on about music. More technical content to follow.
- Test Driven
- permanent link
- Thursday, 20 September 2007
-
This is one of those strange examples of synchronicity. I was moderating a message on the JUnit discussion group, when I came across a message by Lasse Koskela, which reminded me of his upcoming book: Test Driven. For a long time I had been planning to go and buy a copy, because I'm very interested in the subject, and I thought it had been published (I'd seen a message on his blog a few months prior that suggested that it was imminent). A few minutes searching online was enough for me to find out that it hadn't been published yet. That would have been the end of it for the moment, except that a few minutes later, an email arrived from a chap at Manning (the publishers). Lasse had suggested that I might be interested in looking at a review copy, and would I be interested? Sweet!
So the state of play is this: I have a PDF copy of the draft manuscript, which I've printed out so I can scrawl all over it. Should be fun, I'll post a report later.
- Lillifoot Website
- permanent link
- Sunday, 09 September 2007
-
As I've hinted previouly, my wife and I opened up a new shoe store last month: Lillifoot. A major reason why I haven't been blogging as much lately is because I've been so busy with Lillfoot. We've effectively set up a complete retail business from scratch. It's been an incredible learning experience, as we've had to grapple with real estate agents, builders, suppliers, staff, computer systems and processes. This has been all the more stressful because neither Annie or I had any previous experience retail, not to mention we're both still working in our day jobs. Given the nature of this blog, I'll eventually get around to covering some of the technical issues surrounding getting a new shoe store up and running.
This main point I'll mention today is the website. It's taken me quite a few evenings, but I've finally got a design that I'm fairly happy with - though a professional graphic designer might have a different opinion (hi Sol! Any comments?).
As is usual with me, the site is fully standards based, using semantic markup with cascading stylesheets. Clicking on "view source" shows a very sparse html markup, which enormously simplies the maintenance of the site. Even with that, I think that there is a certain attractive look to the site (though I might change my mind about the hot pink in a month or two!). Stylesheets give you the freedom to change you mind without too much work, though.
Still to do on the site: install Wordpress or Joomla! to enable people other than me to update the site (and the news); get more pictures in the brand pages, and get a webstore up and running. Plenty to do!
- phpMyFlatSite
- permanent link
- Friday, 10 August 2007
-
Nicolas Seriot wrote to tell me about how he has adapted the exubero stylesheet for his own software: phpMyFlatSite. Not that I'm biased, but it looks very good. :-)
- Nautilus Scripts for Subversion
- permanent link
- Friday, 01 June 2007
-
I'm in the process of helping my wife start up a new business venture (more on that later). As a result, we are hiring people to help us. At this stage, there is a large amount of planning involved, and so I have set up a subversion repository where we can share and collaborate on documents.
We have hired Lisa to work for us part time on marketing. She has her own computer running Windows Vista. After getting her to install TortoiseSVN, and giving her a short training course, she was quickly up and running. As Lisa was already experienced in using the File Explorer in windows, she was easily able to grasp the extra functionality and purpose of TortoiseSVN. In this way, I think that TortoiseSVN excels at being an incredibly useful piece of software with a minimal UI that doesn't get in the way. Non-developers can easily use it.
We have also hired Jan as a new store manager. I provided her with a laptop running Ubuntu Feisty. With OpenOffice installed, it makes an excellent document writing tool, and virtually immune to the virus and malware problems that plague Windows. I believed it would be just as usable, until I hit a snag: I couldn't find an equivalent of TortoiseSVN for Linux. Although there are a large number of Subversion clients, most of them are aimed at developers. Non-developers are left to fend for themselves among the complex user interface options that they don't really care about or want to know.
Luckily, after a bit of extra digging, I found the Nautilus Scripts for Subversion, by Marius Scurtescu. From my (and Jan's!) point of view, they give almost the same level of usabilty for a non-developer user. They're even available on Feisty.
I also found them suprising easy to extend. I was able to add two new commands ("Lock" and "Unlock") in moments by modifying existing scripts. I was also able to fix a problem: stderr wasn't being redirected to the zenity input file in all cases. A simple fix was to add a few
&>about to redirect io from svn correctly.I have made my changes available: here are my Updated Nautilus Scripts for Subversion. Marius, if you want to include these changes in your distribution, feel free to take them from here.
- The Business Case for a Blog
- permanent link
- Tuesday, 22 May 2007
-
The Cluetrain Manifesto struck a chord with me when I first read it. In the eight years since it was published, I sometimes see signs that companies have paid attention to that message. More often, the same old closed shop business practices are seen.
A friend recently started a new business installing and servicing domestic heating systems. Remembering the lessons of the Manifesto, I urged him to start a blog. I put together the following issues he needs to consider. I think it makes a good case why any business should consider creating a blog. It was written with a domestic heating engineer in mind, but the ideas translate to many other areas.
Benefits of a Blog
- Extra business: by updating your blog regularly (for
example daily, weekly or monthly), you will gain an interested audience:
- Clients and friends (and competitors) may subscribe to your blog (or at least look over it every now and then), to see what you've been up to. This will keep you fresh in people's minds.
- Search engines will notice that you update your site often, and start paying more attention to it, and raising it in the search rankings. People will find you this way.
- Public exposure: there are no other heating installers who have any web presence at the moment (I've checked). You can be one of the first. Once again, search engines will reward your uniqueness (as long as you have interesting content - more on that later).
- Customer confidence: potential customers can gain insight into the work that you do. Hopefully, they will gain some confidence in your work from reading your blog.
Costs of a Blog
- Time spent maintaining the diary, including writing entries and maintaining comments.
- If you become popular, you will have to get a more robust hosting solution. Although there are free blogging services, but it is much better to get all your content within your domain, as search engines will take note that your domain is updated regularly.
Risks of a Blog
- Privacy concerns: you must be very scrupulous about not putting personal information about clients anywhere on your blog. You must state this clearly somewhere.
- Loss of customer confidence: potential customers can be scared off if they read content that doesn't sound professional, or if private details of other clients are discussed. You need to be aware of how potential customers will view the information.
What Content?
As mentioned, keep your content work related, while avoiding any confidential information. Some suggestions:
- Where you were working (to the town/suburb, don't specify street address). This gives search engines a chance to show your site for relevant searches.
- What you did. Be specific. Give brand names and model numbers. Give out the dirt. What's crap? what do you avoid? What's a good brand or model? What's a good technique? What are the trade-offs when deciding one brand or technique over another? This is a chance to prove your expertise in a public forum. Done well, your blog and associated website can become a web authority on the subject.
- What went wrong, and how you fixed it. Show that you're proactive and get things done, customer centric, and so on.
- Add a client feature "Ask a Heating Engineer" or something equivalent. People can email you a question, and you can blog an answer.
All these things will help enormously in promoting your site via search engines. People will tend to search for suburbs and specific model numbers. If you can give some useful experience and advice, you've effectively struck gold.
Taking a Long View
The above advice must be taken as a long term strategy. It is a combination of white hat seach engine optimisation and hopefully interesting content. This takes a long time to gain appreciable results.
In the case of my friend Stu's blog, he has been posting entries for a couple of months now. Traffic is still very low, but increasing rapidly each month. I was pleased to see that because of his latest entry, Google is now returning his blog on the first page for searching for magna clean, and it's the top result (right now) for the search magna clean power flush. This trend will get much better as time goes on.
- Extra business: by updating your blog regularly (for
example daily, weekly or monthly), you will gain an interested audience:
- Follically Challenged in a Hirsute World
- permanent link
- Monday, 21 May 2007
-
As I mentioned before, I went to the LondonJava Meetup on Tuesday 1st May. In my usual tardy fashion, I'm finally writing about the night (only three weeks late!).
Tim Bray turned up that night, along with many other regulars. By the end of the night, I managed to work through discussions about CORBA, the weather in Melbourne, XML, the performance of XMPP parsers (very fast, if done well), dynamic languages in general (the phrase "Uniform Access Principle" was mentioned in this context).
By 11pm there were 4 of us remaining: Jez Raynor, Simon Brunning, Tom White and myself. I really enjoyed the night, and managed to add another blog feed to my subscriptions (thanks Tom!).
Tim published a picture of me the night on his blog. This prompted an email from my friend George Petrov entitled "Shiny Forehead". And that explains the title of the this entry tonight.