Bob: Welcome to the 46th “The Bob Bloom Show”. My name is Bob Bloom from Toronto, Canada. Today is Thursday, January 19th, 2012.
Jeremy Wilken is a first time guest, and my first guest of this new year. Thanks for being here, Jeremy.
Jeremy: Thanks for inviting me.
Bob: Today is the second of a two part podcast with Jeremy. The first was last week on January 12th and we’re talking about Jeremy’s new Joomla Distro called Square One CMS atsquareonecms.org and it is a distro of Joomla 2.5 which may or may not be out, I think it’s supposed to come out on the 24th.
Jeremy: Yes. It shouldn’t be out until the 24th – that’s the target date.
Bob: Jeremy is the first Joomla Distro that I’ve seen and he’s using GitHub.com and he has a separate website. What I love about GitHub is I can see clearly all the branches and I can see all the commit messages, this is very helpful to see what he’s working on. I see the words “remove” and “clean” in a lot of the messages and a lot of what you’re doing is removing and cleaning.
Jeremy: um hum. Yes, that’s been a big part of the initial part of the project. That’s sort of what Phase One of Square One is. That sounds a little funny, but the initial release is about stripping it down quite a bit. That’s not just because it’s intended to remove a bunch of things but for the actual goal which is to make it a good solid foundation to become a base for other people to make distributions of Joomla on top of Square One, hence the name as well.
Bob: Returning to Square One. I thought that, maybe I shouldn’t say this, I thought well maybe he’s a little frustrated with what comes out of Joomla and he wants to improve it, but I thought 2011 was a year of realization for me that the GPL means can take the code and do something with it and wielding that power of changing the code is about the biggest upside that there is to shoulder all the other risk.
So I’ve come up with a new term called Intermediation and I want to see more people do it and I think what you’re doing is vital – you’re taking Joomla and you’re cleaning, you’re removing, you’re doing some very important intermediation so I have a feeling I’m pretty sure what I’m going to get from you is going to be just a cut better, especially for what I want to do, than just taking it raw from Joomla – somebody with another set of eyes and ears. I’m very good at interviewing myself but I wanted to get this across.
I heard so many people say “I don’t install Joomla, I install my own little thing of Joomla for my clients because I know where I want to make those improvements”.
I love what you’re doing is that kind of intermediation is out there and you’ll be a place where people can maybe either better express what they do themselves or take what you’re doing and do a little more tweaking before it gets on a client site. So I think what you’re doing is great.
Jeremy: I hope that it’s available for people to use it in that way that yes I know a lot of people will essentially build out a Joomla install, they’ll add the things that they always need, they’ll use a tool like Akeeba BackUp, zip it up and then they’ve got basically a starting point for the rest of their sites, and that’s one possibility for the usage of Square One is, instead of having to go through all of that and then every time you deploy your site you’ve still got to go in and make sure you’ve updated all your extensions because you might have done it two months ago, so you’ve got to keep track of that. Square One will actually make that possible to get the latest versions right away from the start. You’re not actually having to deploy or set up your own copy of everything beforehand.
Bob: In Part 1 you used a term called “Optional Extensions”; and, I thought “well, in the Joomla core it can’t possibly be optional if it’s in the core of Joomla”, so what do you mean by that?
Jeremy: Sure, and that’s a foundational part of what Square One is and why it’s going in the direction it is. What I’m considering a core extension and what I’m considering an optional extension boils down to the definition of if you can remove it and Joomla still functions then it’s probably optional in the sense of you cannot remove the user manager because then you would have no way to manage your users which means you couldn’t log in and the whole system would fall. On the other hand banners, not everyone needs banners so if you installed it 95% of websites, I don’t know how many, but whatever percentage of websites that are built with Joomla that you don’t use banners, you wouldn’t know that it was gone and if you use banners, there also are alternatives, or you can still reinstall it in the case of Square One, you can still get back but, so the definition to me is largely whether or not it is required for the system itself to function, and if it’s missing or if other extensions rely or build upon that functionality.
Bob: What do you mean “you can get it back”?
Jeremy: When I say you can get it back, now one of the improvements I have made in Square One is it’s possible when you log in and if you were to take the beta now and install it, if you go to the extension manager you’ll notice there are some changes there and that’s where most of the changes have been made and you’ll see the install screen where you normally have install package as a zip, upload it, you know – those three areas, it’s going to be different now, there’s still those options but then there’s a list underneath it of all the supported extensions in Square One which are the removed extensions that I have removed from the core of Joomla, you can select any of them, hit install and it will reinstall any of those missing features.
Bob: Wow. So you’re not losing anything.
Jeremy: If you wanted to you could reinstall every single thing that was removed and have Joomla. In fact you could do that and then you could start and if you just copied Joomla back on top of Square One you’d have exactly the same as Joomla and it would still work just fine. That’s how compatible Square One and Joomla is, because I’ve done this, I’ve tested it just to see if it worked and it does and there’s only one change you have to make and that’s change the update system to link to the Joomla files instead of Square One and after that everything should function. So, you’ll be able to reacquire or reinstall, it’s not reinstall, you’ll be able to install any of those extensions that have been removed and you can mix and match whatever combination you need.
Bob: I’m thinking, now if there’s a Joomla update for banners your Square One update doesn’t have the update part for banners so how do I get the update for banners?
Jeremy: So the way that it will work is that in Joomla if banners has an update it’s just included as part of the Joomla update itself, the whole thing. So, the Joomla updates might include something for banners, they might include something for the ACL, whatever. Usually it’s not just one piece. For Square One, what will actually happen is that the banners extension, it is separated out just like any other extension. The only difference is that it’s being maintained in conjunction with Joomla and just kept up to date so any changes they make inside of Joomla will be updated in that banners extension package and then when you hit check for updates in your copy of Square One it will notify you that the banners component has an update and you’ll be able to update that instead of updating Square One you’ll update just the banners extension. You see the difference where Joomla puts it all into one package since we’ve split everything up in Square One your updates will actually come in different chunks based on where the updates actually apply.
Bob: It’s beautiful. You don’t lose anything but you gain a lot.
Jeremy: Ultimately yes, very little loss, I have not found any issues yet with compatibility, it still uses the same framework and there’s some template tweaks and changes but other than that, it’s very much the same once you pull everything back in, you can have exactly what you had before in Joomla but that then defeats the purpose of using it, so that’s.
Bob: and you have a Google group for Square One CMS.
Jeremy: Yes, I started a mailing list and I haven’t tried very hard to use it, there’s not a lot of people yet who have, that people that I have talked with I have their direct emails so we’ve been communicating that way or on GitHub through commit messages and things. So right now I think what it will be is a place for a lot of support and discussion considering most of what Square One is is still Joomla, there shouldn’t be a lot of support for it, though most of the issues should actually be referred to Joomla as long as, unless they’re Square One specific. So I don’t know what that means as far as support and that kind of stuff yet, we will see as we go along I’m kind of making up that on that basis of what’s needed but the mailing list, there’s a hope that it will be a great place for people to throw out ideas, discuss them and then ultimately a decision making tool so it’s not just discussion but also a way for us to definitively nail down some of the details.
Bob: Well you put an idea in your Google Group about expanding your distro idea by having, let’s say, horizontal distributions or a theme where one’s a blogging distribution, one’s an e-commerce, one’s a whatever. You had about seven of them or so, and I thought “are you biting off a little too much there?”
Jeremy: Those are I think more in the focus for later on. Right now, that’s not a huge part of what I’m hoping to accomplish in the first version here. So, the first version, stable version of Square One will be released some time after 2.5 – approximately one month afterwards, just to give us time to make sure that all the changes have been integrated correctly and function and that none of the issues from Joomla 2.5 conflict with any changes that have been made in Square One, so the release cycle is going to be about a month after the official but it might be a little sooner if things are looking good. But long term – yes, putting together some official lists I think are important. That’s going to be possible for a new user to come in and say I’m going to build a website and I know that it’s going to need to do these things. Well, they might not understand okay when they see a list of extensions that we are familiar with if we are a Joomla developer, oh banners okay I know what that is, I know what contacts does and yadda yadda yadda – a new person won’t.
So putting together some predefined options for somebody who wants to blog, that might pull in the content, it might pull in the latest news modules and some of the content plug-ins and search, you know it will pull in the pieces that we kind of as a group maybe or somebody has taken the effort to finalize a specification for what typically is necessary for a blogging website and that doesn’t mean they can’t do more and add more stuff later, it’s sort of a quick start so they can load that up right away and see – oh okay – so I can see my content here and this there and a new person would be able to not have to worry about trying to figure out what all these other things are, just focusing in on the pieces that hopefully are relevant to their purpose.
Bob: Well I sent you the email telling you I thought I don’t know, if you put in one extension and not another one then someone might feel slighted or something, I thought just leave it to the extension developers to create their own distro based on yours. But I think you should go down the road and try it, because it’s great leadership – you don’t know ’till someone does it.
Jeremy: I’m not, there are lots of extensions, I will say there are too many extensions and if you whittle down exactly how many are compatible with 1.7, 2.5, you know are the latest versions of Joomla – that number will actually drop significantly if you’re looking at the extensions directory, though I don’t know exactly off the top of my head what it is. Not only that, you start whittling down how many of them are duplicates and essentially the same thing and you start looking at things like okay well which ones are actually being supported and which ones are people do they just write once and throw out there and make available and then you start looking at which ones have real support from behind them and which ones have lots of usage behind them. Your list will get narrowed fairly quickly to a hundred maybe extensions that I think are the majority of what people use and it’s those little details that they will go and find those smaller extraneous extensions that maybe aren’t well supported or there are you know, why are there five or I don’t know many Twitter extensions there are, but there’s got to be dozens of them, do they all do something different? Do they all bring something new to the table or are they all sort of rehashing similar things? That’s an issue I think we as a community and part of my solution is to maybe think about consolidating.
Should we look at, especially with the smaller extensions that are doing maybe one or two things and they are all doing them slightly differently, is there a way that we can just do one or if we’re talking about bigger extensions then we talk about, you know I think you mentioned in your email about e-commerce, that’s tricky too. Those are much more difficult because they have large development processes and you pick one over the other and at this point I’m not going to pick one or the other or anything but I’m not afraid to do so if I can tell that one is going to be a better solution for the majority of people. So in the sense that putting together a distribution list saying okay this will set the e-commerce idea if this is going to be the officially supported, when I say officially supported, I mean the official list of extensions that are being considered part of the e-commerce pre-set then they’re going to have to earn it and if somebody disagrees they’re going to have to make their case.
Bob: Make their own Distro!
Jeremy: They can make their own distribution, they can make their case as to why they should be included or possibility that the two e-commerce, you know maybe there’s two of them that are saying well we’re both valid but we both such different things which is very possible when it’s such a large system that it could warrant two different types of e-commerce and you just have to be able to clarify which niche they each fit.
But they are also going to be capable of producing their own distributions and if they follow the rules which at the moment in Square One 2.5 they are going to be somewhat limited but in the next version there should be some additional features and functionalities that make it possible to expand the abilities so that commercial extensions can be supported more properly and various other little issues that arise when we have such a decentralized extension system, so there are some issues that need to be addressed there before people can really make a lot of the distributions that I think we have in mind or hope could eventually come into play.
Bob: That’s actually a good lead-in to what I want to talk about briefly. Of all the videos whatever I’ve seen at the different Joomla Days and all the conferences – you’re the only person I’ve seen who did a presentation on Continuous Integration and I thought I don’t think it’s exactly coincidental that the chap who did the Continuous Integration video presentation is now doing the first Joomla Distro; and, I thought is this really a coincidence or not?
Jeremy: I don’t know – is it? [laughter]
Bob: Continuous Integration is the deep recesses of software development, it talks about how to build it into the zip file that we all know, but there could be different steps along the way that get you to that zip file or there could be really no real process. You’ve got, and I see this more and more in GitHub, there’s a folder called “build” and that has the file that you use on Phing to create the zip – right?
Bob: I looked two weeks ago so I hope I’m not out of date and I’m thinking if you’re thinking of doing these other building on your distro to have more horizontal market distro, maybe you’re thinking of how to use Continuous Integration to do it. [laughter] … pause … move onto another question?
Jeremy: Just rephrase the question please. [Good advice! -Bob]
Bob: Do you have in the back of your mind doing Continuous Integration server techniques to build these other Distros with these other extensions?
Jeremy: Not really.
Bob: Because the maintenance can be a real pain.
Jeremy: Well right, and part of the logic and the architecture behind what I’m considering when I say a “Distro”, that’s probably not the right term and I’ve been toying with changing it, in fact I may be settled on a new one but I’m still working on it, so “Distro”, when I say a distribution from here let me say that as a whole packaged copy of the system with the changes and tweaks. So like Square One is a full fledged distribution.
What I’m thinking about a lot when I say a “Blogging Distro” I’m actually going to change that to like a pre-set really. I think that’s a good term because what happens is is that actually a pre-set will be a list of the extensions that are available and it will go out and download them. So it’s an .xml file that just has the list.
That’s all it takes to have your own custom pre-set or you know we can pretend that’s like a distribution and instead of having to package and create your own full version of the software and distribute it yourself, you are capable of taking an .xml file, listing the extensions you consider a part of that distribution and then saying “here, this is my distribution, install Square One and upload this file and it will set them all up for you”.
Bob: So you’re not going to do with those extensions what you do with Joomla?
Bob: Now like what you did with the banner component.
Bob: You’re not going to intermediate them.
Jeremy: There’s a law of diminishing returns and in those extensions anything that’s not currently part of Joomla has been written and maintained by somebody else, that’s their copyright, that’s their prerogative at the moment. I’m not going to take any of their information.
The update system inside of Joomla which I have expanded in Square One makes it possible that as long as I know the link to a particular piece of information about that file so each of the extensions has to have an update manifest file essentially just a list of information about it. As long as I know that piece of information I can collect that into the list and use that to install every piece that I need.
I’m not actually going to package an extension or pull it into GitHub as an official of Square One.
Now there may be some exceptions, for example if looking at one of the plug-ins there is a contact plug-in called, I think it’s GeSHi (I’ve never had to say it out loud), it’s code syntax highlighter, it’s quite old and there are many others out there that probably are better. I would not be opposed in that case to actually switch them, you know for updating one of these older plug-ins or something you know, maybe if we can replace a few or include other pieces that are highly critical; but, at this point I’m not to that point as far as pulling in and changing things, I’m just currently working on keeping it as compatible and stable with Joomla and keeping the current list of extensions available.
Bob: Well I put you on the spot a bit, I think, because you were just floating an idea and I think I made it sound like it was something that was in the works, this is just something you were thinking about and I was curious if your experience with Continuous Integration was part of that thinking.
Jeremy: Well, learning about Continuous Integration setting it up and working with it as well as just the build process and things makes you aware of certain things that this would not be possible if I didn’t have some of these tools available, like Git, if I didn’t have Phing for building, if I didn’t use Jenkins for integration.
It makes it possible for me to manage the code more and spend less time on managing the flow of information and stuff. So, all I have to do is focus on the code and hit a button that says build and it will grab the latest changes, it will make a change lot, it will zip it up, it will send it to my drop box and I have a copy within a few minutes of Square One as I just committed and doing that manually every time I needed to do it would just kill my ability to actually work on it.
So, yes it does inspire you to do some things because you have a knowledge of tools that make it possible to spend time on the things that are most important and not repetitive which is writing code and making improvements and letting those repetitive tasks be handled by a computer which happens to do them quite well.
Bob: Well what you just said was the kind of thing that over the holidays inspired me to look at Jenkins, to read the PDF and I see that GitHub has the Open Source Janky and I thought what you’re doing somehow somewhere Continuous Integration must be helping out somewhere, because the only person who ever did a presentation on it and is doing the Distro, this must be somewhere there and I think you’re onto something, I really do and it will be great to see more people express their vision of how they think these Open Source packages should be implemented by doing what you’re doing, by intermediating it and getting extra value added too. So, I think it’s fabulous.
Jeremy: The Joomla platform has also quite a bit of integration [at the January Toronto Joomla meet-up, I talked to a member of the team about Jenkins -Bob] and I don’t have all the details but they have a lot of their files available, so they’re doing a good job – they have build tests [actually, “build” and “tests” are separate CI processes -Bob] running, they have code sniffers which are basically checking for code syntax and so that things are formatted well and various other checks in place so that their automation is far above what I have set up for Square One right now, but the possibilities are quite endless and it takes some time and understanding to get it all set up and working but yes, I hope to also be able to provide information about how some things are being done with Square One but the POWER of it can never be understated as long as there is a possibility there’s a way to probably do it somehow through automation or automatic testing or whatever the process you need.
Bob: and with that our 25 minutes is gone.
Jeremy: So quick.
Bob: and we did two parts.
Jeremy: I know, well I think we did a pretty good job of getting through what Square One is and what I hope it can become here in the next months and years, hopefully.
Bob: I look forward to having you on the show in about three months and thank you so much for being here today.
Jeremy: Thanks for inviting me and hopefully there will be a lot of new things to talk about.
Bob: This is Bob Bloom, signing off, wishing you a profitable week.
You have been listening to a SouthLaSalleMEDIA.com 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.