WordPress Premium Plugin Is Ticking Along Nicely

Back in October, I decided to extend my experiment of WordPress plugin development by producing a premium version of my free Slickr Flickr plugin that makes it easy to include your photos within a WordPress blog.

Originally I had been hesitant that no-one would pay for a premium version given that so many themes and plugins are free, but having researched and understood the GPL (GNU Public Licence) and the principles behind it, I decided to proceed. In a nutshell, the driving principle is that a user is free to change and distribute the software but the developer is able to charge for support and upgrades.

Therefore Slickr Flickr Pro version differs when the free version in that there is Priority Support via a private members forum plus a number of bonus features.

I decided to pitch the price low at $2 per month being mindful that the brilliant free WordPress theme ‘Hybrid’ only costs $25 a year for membership of Justin Tadlock’s support forum

Creating a paid version of WordPress plugin was not entirely straightforward as it involved creating a whole bunch of infrastructure: I ended up writing a plugin to integrate PayPal subscriptions with the InfusionSoft billing system, setting up a sales video, an order form, email templates, a membership site with training videos and a couple of support forums. All in all it took about a couple of months in total to get the whole marketing, sales and operational systems and processes together before a low key launch in mid December.

It has now been running along nicely with a handful of sales per day. The goal in the next few weeks is to ramp up the promotion of the plugin through social media, forums posts, blog comments and perhaps some guest blogging. I may actually have to do some tweeting!


iPhone or Android – Need help

In 20 days I am attending a conference in Central America. And I want to stay in touch. The question is how? iPhone, iPad or Android?


My current phone is a Samsung SJH J700 which was low cost place-holder while the technology improved. But what next?

My requirements? Email, Twitter, GPS, coverage in Devon and Costa Rica, a keypad I can work with my larger than average fingers – definitely not reet petite.

On the 11th April my flight to San Jose, Costa Rica, is via Dallas so I am able to buy an iPad at the airport if any are for sale.

My wife Liz, has an iPhone, but maybe I should play away in the Android camp?

What is the best phone, given I need to buy by the end of March 2010?


Display your Flickr Photos in Slideshows using Slickr Flickr

If you have a lot of photos on Flickr and want to show them in a slideshow on your WordPress blog then Slickr Flickr is the plugin to use.

Rocco Slideshow

I tagged the following photos with “Rocco” and added the slideshow to my post using the line [slickr-flickr tag=”rocco” type=”slideshow”]

[slickr-flickr tag=”rocco” type=”slideshow”]

Roma Gallery

I then tagged the following photos with “Roma” and added the gallery to my post using the line [slickr-flickr tag=”roma” type=”gallery”]

[slickr-flickr tag=”roma&7″ type=”galleria”]

Rio Slideshow

I then tagged the following photos with “Rio” and added the slideshow to my post by adding the line [slickr-flickr tag=”rio” type=”slideshow”]

[slickr-flickr tag=”rio” type=”slideshow”]

  • Slickr Flickr enables you to have slideshows as well as galleries.
  • You can show photos on pages, posts and in text widgets in the sidebar
  • You can show photos with different sizes
  • You can show photos with different formats – landscape or portrait
  • You can show or hide captions
  • You can show photos from other Flickr accounts
  • There are now even more ways to admire Rio, Rocco and Roma – my three cavaliers

Ronald Rae Sculpture

Moving an artist’s website onto WordPress

Last month, I migrated my brother-in-law’s sculpture web site Ronald Rae Sculpture onto the Power Blog Service. Ronnie is a famous sculptor who hand carves enormous granite sculptures. They are awesome.

We have kept the way the site looks pretty much the same as the old site as this was one of the attractions of the original site design. Using the Thesis theme makes it pretty easy to duplicate how the old site looked. We moved the menu across to the right hand side for SEO reasons and moved the telephone number to a more prominent location. Spot the differences below.

Original Ronald Rae Web SiteRonald Rae Web Site on WordPress

Lots More Traffic To The Site

However, what is different is that my sister, Ronnie’s marketing administrator, has the ability to update the site herself and also visitors can make comments, bookmark the site or tweet about the sculptures. And of course, now the platform is WordPress, we have syndication of content and pinging of blog directories.

The site now enjoys a tenfold increase in traffic over the original site and we have not even started taking any steps to promote the site or improve its SEO.

Innovations with Slideshows

The only real customization we needed was to handle slideshows of sculptures, which were previously created in flash. Each exhibition has it own slideshow of sculptures that are in that exhibition. There were also separate slideshows for ‘sculptures for sale’ and ‘sculptures in collections’. When sculptures are sold they move out of the exhibition and into a private collection and hence the slideshows are always having to be updated.

I wanted to create a mechanism where my sister could move sculptures between exhibitions herself using standard WordPress tools. We solved this challenge using tags, the D13Slideshow plugin and a few lines of custom code in the custom_functions.php file.

The D13Slideshow can be inserted into a post using a PHP call. What the code below does is display a slideshow of images for all posts, (excluding the current post) that have a specific tag.

function show_slideshow($slideshowtag) {
if (($slideshowtag)
&& ($postids = pbs_get_posts_by_tag($slideshowtag))
&& (count($postids) >0)) {
function pbs_get_posts_by_tag($tag) {
$thispostid = get_the_ID();
$postids = array();
$posts = get_posts('numberposts=50&tag='.$tag);
foreach ($posts as $post) {
if ($post->ID != $thispostid ) {
$postids[] = $post->ID;
return $postids;

So for example show_slideshow(‘for-sale’) will display a slideshow of all sculptures that are tagged as ‘for sale’. If the Lion Of Scotland sculpture is sold, my sister only needs to remove the ‘for-sale’ tag and add the ‘collections’ tag to make the sculpture disappear from the ‘Sculptures For Sale’ slideshow and appear in the ‘Sculptures In Collections’ slideshow. Zero work for me and an immediate result for her.

When it is a blog not a blog?

This case study goes to show that with WordPress, Thesis and a few plugins you have everything to gain and nothing to lose by moving your site on a blogging platform such as WordPress even if your site is not a blog. WordPress is a really cost effective platform for building more visitors to your site and then starting a dialogue with them.


Back from Stompernet Internet Marketing Conference

I am back in the UK after ten days in Atlanta; four of which of which at Stompernet’s annual Internet Marketing Conference and six days holiday with family. Still jetlagged, I am now getting back to work with a head full of business strategies, online and offline marketing strategies, web design tips, SEO best practices and thankfully some time management tips to boot.

Stompernet 7 Speakers and Highlights

  • Paul Lemberg – a truly awesome approach to generating volumes of content in days rather than weeks – business acceleration
  • Dan Thies – SEO specialist – tips on desktop and time management – using an integrated toolset to drive productivity – how iPhone, iMac, MobileMe and iTools rock
  • Don Crowther – PR specialist – the power of offline marketing through direct mail, postcards, inserts, classfied ads.
  • Perry Belcher – an eye widening explanation on why Twitter can boost your marketing efforts – how to tweet, what to tweet, when to tweet and how to integrate this with facebook, youtube and your blog – best practices for marketing using social media
  • Jaime Mintun – copyrighter and consultant – use of competitor analysis to drive consultancy
  • David Bullock – the role of social media marketing campaigns in Barack Obama’s election success
  • Stephen Pierce – a highly focused and disciplined framework for business planning and execution – probably the best speaker at the conference

Overall, I am left with a sense of confidence in my business plans and a mass of ideas to implement before launch on the 7th April.


Syntax error: unexpected end of file

Shell Script Syntax Error

Operating System: Red Hat Linux
Click here for the solution without the preamble.

I had just written a 70 line shell script on my PC on notepad before copying it up on to the Linux Server so I could forgive myself for a typo and the resultant error. I googled the error and it indicated I had an opening " without a closing one. I scanned the file but did not see anything amiss. I set on a path to investigate.

Linux Shell Execute Permission

The other main suggestion was about the file permissions. However I had already fixed this by a chmod u+x ./

Linux Shell Script Debugging

Following a Shell Script Tutorial I tried adding some debugging

echo “starting”
set -v on
set -x on
…rest of script
set -v off
set -x off
echo “done”

This printed out the whole file however the echoed statement it did not get past the starting

Simplify The Script

Next step was to collapse the script down to half a dozen lines. It still failed in the same way with a syntax error: unexpected end of file.

if [ $# -ne 4 ]; then
echo “missing parameters – source domain, template domain, target domain, owner”
exit 127
echo “Got here”
exit 0

If you cannot see the problem it is invisible but still present

While digging deeper into shell script debugging I read a later section on the same page that referred to Windows Carriage Returns. By opening the file with vi and using the set list command I was able to see that every line was terminated by ^M.


Convert file from Windows to Unix format using dos2unix

I ran dos2unix ./

And problem solved. No more syntax error: unexpected end of file.

My script then worked first time after that, even the 70 line version.

So the moral of the story is.

Either do your editing entirely on Linux or always remember to convert dos2unix having copied the files on to the server if you are using low tech editors like notepad (as opposed to sophsiticated ones like vi ūüôā


Snowed In

Today was a typical day in my new, post Barclays life, in Devon.

Having fed the dogs their breakfast of Weetabix (don’t say anything), I sat down at my computer at 08:30. I had neglected my CFA studies for a couple of days this week so decided to catch up on Session 4, Private Wealth Management. This comprises readings on

  • Managing Individual Investor Portfolios – using situational profiling and psychological profiling to create a meaningful Investment Policy Statement
  • Excerpts from Investment Management for Taxable Private Investors – understanding tax implications – now I prefer death to taxes
  • Multiple Asset Locations – how the wealthy avoid tax through various vehicles such as GRATs, GSTs, CTs, VLIPs, Foundations and Intergenerational Transfers
  • Low-Basis Stock – about the emotional attachment and letting go as entrepreneur becomes an executive and then finally an investor in his own business
  • Goals-Based Investing: Integrating Traditional and Behavioral Finance – setting understandable, meaningful and tangible goals for the client
  • Life-Cycle Investing – about how level of wealth supersedes age in setting risk objectives: the wealthy, at any age can invest aggressively while the not wealthy (poor) should always take a conservative approach (i.e no lottery tickets)
  • Human Capital, Asset Allocation, and Life Insurance – human capital seemed to be defined as the present value of total future earnings potential and hence declines from start of working life until retirement

At lunchtime I walked the dogs..

From Snowed In

In the afternoon I was doing some website updates for a client who wanted to launch a new pricing scheme that required Worldpay Remote Administration so I was doing some prototyping to check it out. It seemed a little insecure but use of PHP CURL to perform the updates should minimize risk.

$ch = curl_init();

$data = array(‘instId’ => ‘123321’, ‘authPW’ => ‘guessMe’,
‘futurePayId’ => ‘$futurePayId’, ‘op-adjustRFP’ => ”, ‘amount’ => ‘$amount’);

curl_setopt($ch, CURLOPT_URL, ‘’);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exéc($ch);


Widgets and Blidgets

Today I discovered a website that really impressed. It is called

What it does it allow you to build widgets, or in my case a blog widget or blidget which produces a cool viewer of my recent posts on my

It literally took under five minutes, it was intuitive and it all worked first time.

The widget can be delivered under various technologies: Javascript, Flash or as a MYSpace application: all you do it cut and paste the code

Javascript version
flash version

MySpace version


Technology Overload

Today was spent developing a couple of web pages on Spring MVC Controller technology.

I find it difficult to know what logic to put in the remote EJB’s, what to put in the controller, what to put in the service layers and then what to put in the JSP. This is how I broke it down:

  • HIbernate DAOs : data access
  • Remote EJBs : business logic
  • Service Layer : no logic – just wiring
  • Controller : control logic, permissions, filtering¬†of ¬†authorized data sets
  • JSP : presentation logic
  • CSS : styling and positioning

After resolving the usual lapse of missing an entry in the application-service.xml file it all seems to work okay, if a little slowly.

Anyway, the day job is over, now back to preparation for the Credit Crunch website for installing some social networking tools:


CodeIgniter, SimplePie, Artisteer – all for one page

Today I spent about 12 hours getting to grips with a number of technologies:

Screenshot of the main site Screenshot of the blog

The outcome is that the main site has a ‘home’ and an ‘about the author’ page and a section that takes a RSS feed from the blog and displays the two most recent posts.

Over the weekend the focus will be on adding wordpress plugins, setting up Google Analytics, plus adding another half a dozen pages to the site.