The Bob Bloom Show #47: Alan Langford Tables Paid Extension

Thursday February 23rd, 2012



Alan Langford was born waiting for the Internet. In 1964 he decided he was going to work with computers. By 1970 he was baffling teachers with essays on how connected computing would change society. In the mid-70's he wrote a popular instant messaging application for his university's mainframe that offered both user presence and geo-location features. His love of telecommunications drew him to technology projects at Bell-Northern Research and Mitel, including work on the Telidon videotex system. In the mid 1980's he started working with Interactive Voice Response systems, holding senior positions at several companies and publishing a newsletter on the industry. As the Web first started to gain popularity, he served as a General Manager for the interactive unit of Grey Canada, where he contributed to a variety of projects and used early forms of Web 2.0 technology to build more interactive user experiences. Alan is fascinated with how communications technologies continuously shape society, business, politics, and the economy. He is an advocate for open source software and passionate about small business and the entrepreneurial process. Alan is deeply involved in the Joomla project. He is a member of the Joomla Security Team and the Joomla Bug Squad. He has made significant code contributions to the Joomla core and has taken on a leadership role in the Joomla User Group Toronto. Alan is the founder of Abivia Web Hosting and Development, suppliers of high quality web hosting, web sites, and Joomla extensions.


Welcome to the 47th “The Bob Bloom Show”. My name is Bob Bloom from Toronto, Canada. Today is Thursday, February 23th, 2012.

Alan Langford joins me today.

Bob: Alan, how are you?

Alan: I’m good thank you Bob.

Bob: Alan, thank you for being such a good sport about our December interview. Our Skype recording did not save to disk after multiple takes, which led to my first interview with a Virtual Guest.  Which is an interesting idea.

Alan: Well I sure sounded good.

Bob: We talked at last week’s Toronto Joomla Meetup of which you are our Grand Poobah.  We talked about your new commercial extension.   What is your new commercial extension?

Alan: Super Table Pro, currently awaiting approval by the Joomla Extensions Directory – you want to know about it?

Bob: Well should we, we talked about the JED, I’m thinking we should talk about that – yes tell us about it.

Alan: Yes, I’ve got a couple of forum posts.  I really have a lot of sympathy for the guys in the extensions directory.  I’m not going to be particularly critical of them – they have a huge job and they’re doing stuff on a volunteer basis just like everybody else on the project; and, you know, when you have an extension sitting in the queue you want it to be approved yesterday, but last time I checked there was 161 between me and there, so they really do have a massive job to do and I think to be critical of them is not necessarily fair.

Bob: There’s 161 extensions in the queue?

Alan: At this point in time, as of yesterday morning.

Bob: And they’re up to 8,800?

Alan: You know it was over 9,000 for a while there and then I think they must have done a house cleaning.

Bob: That’s incredible.

Alan: Yeah, it certainly is.

Bob: And Super Tables Pro – what is that?

Alan: Okay well I’ll back up a bit.  The Super Table is a quick little plug in that allows you to turn a standard html table into a really nice looking table in a matter of seconds, in about 30 seconds and you can drop in some predefined styles and you’ve got a table that’s got a little animation in it and you know it was originally developed for display of hosting plans on of course; and, it was so much fun that I decided to turn it into a plugin.

The same thing, mostly an internal requirement our hosting plans come out of a pricing database and from time to time those prices change and I’m not a really good one for remembering all the places where you have to go in and manually change things in order to get the price on this side to look the price on that side.  Since all this stuff is in a database the logical solution is to just have a query populate the table and away we go.  And so that’s what Super Table Pro does – it allows you to query a local or remote Joomla database, or anything that Joomla supports for a database connection, so you know my SQL and you know in 2.5 SQL Server to fire a query over it to get a row set back and then to do a little bit of formatting and turn it into a snazzy looking table.

Bob: What would possess you to commercialize an extension you’ve built for your own site?

Alan: Well, obviously, I guess there’s a couple of things.  One, you know you want to re-coup your investment, you want to share what you’ve done with the community, but this is a pretty specific requirement.  If you don’t have somebody who is doing something that’s close to development for pulling up a SQL query and a couple of other things then you don’t really have a use for it.

The free version I think covers 95% of the needs out there and getting the database connectivity in was a significant amount of effort and I felt that I wanted to share it but at the same time that it was going to be other developers that were using it and those developers were probably making money in the process so they should not have a big problem with sending me a little bit of money along the way.

Bob: But this is your first ever commercial extension – right?

Alan: It is.

Bob: So what put you over.  You’ve always had extensions you’ve offered for free.


Bob: Which are the same – you’ve used them yourself and you just offer them for free download?

Alan: Right – exactly.

Bob: But this time was different…

Alan: Well you know, for the most part the free extensions that I’ve got are not what I would call huge development efforts.  You know, some of them might have sort of turned into it after the fact but for the most part they were just things that were interesting like let’s get a Twitter Feed up, you know, let’s make it so that when another extension insists on putting a signature in that you can make the signature go away.  I mean there was some complexity in there but in terms of actual monetary value to someone building a site, you know, a lot of those things I just don’t think anybody’s prepared to pay for.  I don’t think there’s necessarily a market for them.

The only thing that has the potential for going commercial would be the Abivia Content Patterns plugin and that, I think, in order to be a commercial product actually needs a component that really supports the data structures and makes it easier to use.  I mean it’s very much a developer tool as it stands.  It could be an end user tool if it had a great UI but that great UI would require significant investment in software development and you know at that point in time I would probably make the great UI a commercial product.

Bob: So what’s the demarcation between commercial and free?

Alan: Well, one, I think is – will anybody pay for it?

If I’ve got, well take Auto-copyright for example.  You know this nice little plugin that you put in the date you started your site so 2009 and then you tell it where you want it to put the current year in and in 2011 it says 2009-2011 and in 2012 it changes to 2012.  I mean it’s possibly the simplest extension we’ve ever written and I was incredibly surprised that it hadn’t actually been done right before – there were two or three attempts at it, but nobody actually implemented the requirements that your average site has.  And so you know, I literally took two and a half hours to put it together and then fired it up into the extensions directory and it’s proven to be extremely popular.

But, I wouldn’t pay for that, you know I mean there’s two hours of development involved, it’s a convenience, so that’s never going to be a commercial extension.  Whereas I think the same thing is true of the Super Table.  The non pro version is neat and it does some interesting things but would somebody shell out 20 bucks just to get a sexy looking table?  You know, would I shell out 20 bucks just to get a sexy looking table is probably the question.  And I don’t think that I would.  Whereas would I shell out a little bit of money in order to get something that knows how to connect into a database, knows how to do prefixes if I’m connecting to a different Joomla database with a different prefix that I can set that up and I can do all these things that I can stash my database credentials away in the plugin parameters so there’s a little bit of security and then I never have to go back and change this web page again when the core data changes someplace else.  Okay, now that’s valuable, so that’s why it’s commercial.

Bob: It’s interesting of course… with Moneyball on my mind all the time these days and where the value is.  Why would somebody consider that so valuable they pay for it?

Alan: Well,

Bob: Because it’s hard to replicate that.

Alan: Yeah I mean the code is non-trivial, you know, there’s a significant amount of work involved in getting it to do it right and to build it and make it reliably.  I mean, I probably spent, sum total a couple of weeks on it, so there’s probably a couple of thousand dollars worth of development time into the plugin.

Bob: So there’s a significant barrier of technical skill and time it takes?

Alan: Exactly, it’s not something that you would go back out and you know just go oh well, it’s not like autocopy.  Autocopy, if somebody wants ten bucks for it it’s like, eh, I can do that myself in, I can in something and pull in some source code and I can hack it together in you know a couple of minutes.  So it’s not even worth five bucks to me.  Because then what if it doesn’t work, what if it’s this, what if it’s that?

You know there’s always an acquisition cost for an extension.  You know you go and you find something in the extensions directory and it looks wonderful and it’s got reviews and it’s got all this kind of stuff but how frequently is it that you install it and it either doesn’t do something the way you want or it’s got some kind of fundamental breakage or just what you understand that it did isn’t what it actually does.  But it takes time to go through that process of evaluating and looking at it, and, if you’re like me, I actually crank open the code and take a look at the quality of the code underneath because if I install it on a customer site and the developer gets hit by a truck, I’m the guy who has to be able to make sure that something gets fixed if it’s busted.

Bob: Joe at the Toronto Meet Up, Joe and I talked about that – big time.  I’m not going to get into that right now.

Alan: No, I mean it’s a whole other thing, but it is one of the things that plays into the Open Source equation you know, and if you’re just an end user and you’re downloading extensions and it works or doesn’t work and you know, that’s one thing, but you know I have clients who pay me money to build websites that work and so I have a certain amount of responsibility. If I’ve come along and I’ve said “okay, here’s XYZ extension and it’s going to do this job for you Mr. Customer”, if it doesn’t do that job Mr. Customer really doesn’t care whether or not it was written by Joe, Sam, Bob or anybody else – he’s holding me responsible for it working.

So, I have to make sure that there’s a certain quality bar in anything that I install, even anything as simple as Autocopy – you want to go in and make sure it’s not doing things like, you know the original reason why I wrote my Social Bookmarking Plugin is because they most popular version that was on the extensions directory had a very clever hidden back link to a foreign exchange trading site.  So it was just generating link juice for Google in a way that you know Google would see the page if it wasn’t running Java Script but that it disappeared completely and the “add this” widget came up instead.  Well I’m sorry, I’m not going to be doing that to any of my customers and if I hadn’t looked at the source code I wouldn’t have discovered that, so I promptly recoded the functionality from scratch [naturally – Bob] and introduced it.

Well I mean I didn’t even use this code because it was pretty crappy, but you know, and the add this API is fully documented so it’s not that difficult to go in and do a replacement and set up some parameters for it, but then I went and posted it back into the extensions directory saying “hey this one doesn’t have back links”.  That’s not playing ball as far as I’m concerned.

Bob: I did a homemade plugin for site subscriptions just to make sure that you couldn’t really get into a certain component.  The plugin says, if option=com_xx, then redirect, but I would never consider putting that even up for free download because I don’t want to support it.  It sort of the basis the way Bob does it, but when you put it up for paid you have extra responsibility to support it now.

Alan: Yeah, I believe you do, but you know I think if you make something available you have a certain responsibility to support it anyway, you know I mean I’m not particularly fond of the fire and forget mode, where you know somebody writes some little ditty and then takes it and sticks it up on Joomla code and gets a JED listing for it and then completely walks away from it.

I will be introducing a PayPal donations component at some point in time because all of them are based on old versions of the PayPal API, none of them has been updated, the commercial ones and the non-commercial ones are all based on the same bad code as far as I could tell and I haven’t actually gone back and looked at it closely for a year or so ago but it was just so awful that I’m going to re-code it simply because I don’t want it breaking and then I’ll make it available to everybody else just because what’s the point of keeping it under wraps.  The only time I build something that I don’t release is when I’m not willing to put in the extra effort to product-ize it.

Bob: [laughing] Productize it.

Alan: Exactly.  My multi-twitter widget is still, unfortunately, firmly based in 1.5, I have some significant work to do in order to get it up to the 2.5 standard so I’ve implemented a couple of 2.5 sites that needed a Twitter presence so I’ve implemented the Twitter Widget into a module that allows me to put Twitter’s generic widget up there, I haven’t got that up as a free download on at this point largely because there’s a certain amount of effort required to go in and describe it and to just get it to the point where people know what the plugin parameters are and just a little bit of basic documentation.  I’m just not going to release crap, so it’s got to have a certain standard before I’ll put it up on the site and getting multi-twitter ported to 2.5 is actually more important than getting that widget up, so it will sit there in my private tool kit but there aren’t very many things that are in my private tool kit.

Bob: Super Table Pro is compact enough it sounds like it doesn’t need a lot of support anyways, not like the other extensions we’ve talked about on my podcasts.  You don’t really expect that you’re going to need a lot of support and if somebody sees a sort of a weakness you could put documentation right into that point.

Alan: Yeah, exactly.

Bob:  I guess you’d just be getting bug reports more than support requests?

Alan: Yeah, exactly and I think that making it a commercial extension also helps with that.  I think if it was available as a free download then I’d probably have a flood of support requests with people asking me how to write SQL queries [bet your ass -Bob].  That’s pretty much out of scope for support, at least I think if you’ve got somebody who’s willing to put a little bit of money in order to get the component that they’re serious about what they’re doing and it’s not that they misunderstand, because there’s a lot of people out there who have a very limited understanding of technology and they’ll think, well, you know I’ve read the description of your component and I just thought all of my data was magically going to appear on my page, now you have to help me.  I feel for those people, they’re coming from a position of ignorance but the learning curve is really really high and there’s no way that I can support a bunch of people through that learning curve.

Bob: That’s a problem that an extension is a Trojan Horse for consulting; and, support, whether it’s free or commercial, has come up again and again and again.  People need consulting and they try to get it for free or low cost by getting an extension and then blaming “oh it doesn’t work, or you know your think doesn’t like this”.  Like you said the queries, so, but, your extension is compact, there’s not a lot of room for misunderstanding what it is.

Alan: Right, exactly.

Bob: How did you determine what the price would be?

Alan: It was pretty much a seat of the pants guess.  Basically it’s 35 bucks.  So, $25 just seemed like it was a little too low for some reason and 50 bucks seemed too high.  So I kind of tried to pick a number that was somewhere in between.

I think that, you know, I don’t have expectations that I’m going to sell thousands of these things.  If I thought it was going to be the world’s most popular extension I might move the price point down a little bit, I’m actually debating version 1.1 will come out fairly soon and it will allow you to do highlighting across rows instead of just highlighting down columns and this has come from people who have seen the Super Table Pro, they want to query databases and it’s clear the application is things like parts lists, where you’ve got long tables of multiple values so you might have four columns but 30 or 40 rows.  So that’s clearly a row mode version that’s going to be in 1.1 it’s going to be part of the Pro package but that’s something that I think has some common utility to people who are just doing html tables now, highlighting the other way around.

I’m debating whether or not I should stick it in the Pro version and move the price point down, if I should leave it status quo or if I should just stick it into the free version and you know, there’s no definitive manual that tells you what the right choice is – you just sort of have to guess and see how it works.

Bob: If the price is too low, people who buy it really don’t value it.  If it’s priced a little higher the people have to, they feel that it’s valuable.  I think that this is substitution here, that it’s cheaper to get it from you than to write it.

Alan: Right.

Bob: or to get something and hack it.  So it’s a substitute for hiring a mercenary to do this, or a developer would rather do work they can bill than ….. you know what I mean?

Alan: Yeah exactly.

Bob: So I think if you price it high enough it’s like well, that’s like, I’m making this up – a half hour of what’s a half hour of billable time – right?

Alan: Yeah, exactly.

Bob: It’s like they, so in a way they think well there’s a whole bunch of us and in a sense we’re just amortizing the cost across all the purchasers is something technical that we need; and, I think that’s a good fit for you, because I gave you trouble about your price at the Toronto Joomla Meet Up. [laughter] I’m understanding it more.

Alan: Yeah, plus it’s also something where you know if you’re a PHP developer you might sit there and go yeah well no problem, I’ll just imbed a little bit of PHP, I’ll pull this stuff up, I can do this and I can format a table and off I go – which is true. But, at the same time you’d also better be pretty good at Java Script and css ’cause there’s some tricky stuff that goes on over there, especially in the css.

Maybe you can get your data out of the database and get it onto a page but making it look good once it’s on that page is perhaps a little bit more difficult.  On the other hand you might be a css whiz and you can get that table to, you know you can crank that out in half a day but chances are you don’t understand SQL queries at the same time so you know there’s a broad skill set that goes into it and there’s complexity on either side and it’s sort of like I just want to make it compelling, I want somebody to look at it and go boy I could spend two days working on this and get something that might work and might need support or I can drop 35 bucks on this and know that it’s coming from an extension developer with a really good reputation for support, especially on the free side, and good ratings on the extension directory and all those other things.  I’m clearly not about to go away, I’m not going to abandon the thing tomorrow morning and disappear, so it’s probably a pretty safe investment of not a huge amount of money.  So the idea is to make it a compelling purchase.

Bob: I always find it hard because you can get a three month template subscription from one of the clubs for $35 and get all the extensions that come with the templates and stuff and then there’s this niche, like you have, and it’s $35 and it’s like “oh wow in comparison this is massive”.

Alan: Right.

Bob: So, there’s thousands of people on this template club and it’s a niche product, so people just don’t make the jump.  They think everything should be $35, $25, $10.

Alan: Right, but those aren’t the people that I’m selling this product to.  This, like ACP or something like that, these are things that are designed for people who are building websites, not necessarily for people who are just going out and downloading Joomla and buying a template from somebody and then starting to tinker around.  First off the chances that they are going to need the Pro features of Super Table are pretty low, if that’s what they’re doing, and they’re not my target market.  I’m interested in people who are looking to find ways to build sites that are professional, dynamic and that they’re not going to get a call from a customer saying “hey you know we changed our pricing database, can you go back to that article that’s got out stuff on it and update all the prices for me?”.  I mean, I don’t know about you but for me that’s the worst kind of work to have to do, is a customer calls you and says can you just go in and modify a little bit of text for me and here’s a new pricing sheet and here’s the excel sheet, go and copy/paste all these values in the right place and don’t make a mistake.  That’s my version of hell.  I’m willing to pay 35 bucks to get out of that one.

Bob: Then you build that little database table, a client doesn’t know and you put all the numbers in there and connect it to your extension.

Alan: Yeah, or if it’s actually coming out of a data source someplace, if  it’s coming out of your network attached SQL server that’s got your major pricing database on it then all you have to do is write a query that works.

Bob: As long as you can connect to it.

Alan: Right exactly, but if it’s a back end network and you know one of the things that will come out in Super Table 1.2 will be the ability to grab probably XML and JSON from through a GET request, so then you’ll be able to do web services update.

Bob: Wow.  You should put this in the commercial part.

Alan: Oh that’s definitely going to be in the commercial part.  It’s coded for the original spec for this was static tables then database queries and then web services.

Bob: It’s amazing once you have an extension how it expands.

Alan: You know, this has been an incredibly surprising extension.  It’s been out now for I guess 65 days.  It became popular on the extensions directory almost immediately, it’s been viewed there over 10,000 times, I’ve had close to 3,000 downloads, it’s just been an exceptionally surprisingly popular plugin and so I was busy working away on the Pro version just after I released the initial version because that was my personal requirements to get my own database queries running on this thing and the thing basically lit up so it’s been getting a fair bit more attention as a result of that.  I’ve sold a couple of copies, it’s not even listed on the extensions directory yet so I have high hopes that when it does make it through that hurdle that we’ll see some significant traffic on it and we’ll go from there.

The sales to date are all down to Brian Teeman who initially discovered Super Table the non Pro version and used it on theJandBeyond site for 2012 and then when I got the database queries going I told him about it and he picked it up and used it to database drive some of the stuff out of the site now and then he mentioned it in his newsletter and said wonderful things about it so I’ve been getting a lot of PR from some very influential people and it’s very much appreciated.

Bob: and deserved

Alan: well thank you.

Bob: We’re a little over, but it’s always a pleasure.

Alan: Yes, it’s been fun as usual.

Bob: I think everyone has to come to the Toronto Meet Ups to talk to Alan.  Time flies.  That’s our show and this is Bob Bloom, signing off, wishing you a profitable week.

You have been listening to a production. Opinions expressed are not necessarily those of SouthLaSalleMEDIA dot com, nor of the organizations represented. Links and materials discussed on air are available in the Show Notes for this show. Information contained herein have been obtained from sources believed to be reliable, but are not guaranteed. Podcasts are released under a creative commons licence. Some rights are reserved. Email correspondence to the attention of Bob Bloom at info at SouthLaSalleMedia dot com.

Monthly commentary and interviews about websites, technology, and consulting. Produced by Bob Bloom, founder and developer of LaSalle Software.

Produced 57 podcasts from 2010 to 2016.

Currently on hiatus.

All Episodes