The Bob Bloom Show #35: Torkil Johnsen: Nooku Framework Development Set-up

Friday June 3rd, 2011



Torkil is a web developer at Bedre reklame as in Norway, working on Joomla/Nooku projects. An active participant in Nooku Framework development.


Bob: Welcome to episode 35 of “The Bob Bloom Show”. Today is Thursday, June 2nd, 2011. This is Bob Bloom from Toronto, Canada.

Torkil Johnsen joins me today to talk about getting yourself up-and-running for Nooku Framework development. Coinciding with my “Club Commerce” launch, I will produce an ongoing series of shows about Nooku.

Torkil is personally sponsoring today’s transcripts. His email to me was “I’m just happy to chip in”, an impressive display of support for present and future Nooku peers. Just “chipping in” — indeed!

But let’s get down to a pressing question: Torkil, at the recent Joomla and Beyond Conference, did you prefer the ice cream or the beer?

Torkil: The ice cream of course.

Bob: The ice cream, so you were

Torkil: David is a good friend of mine so I couldn’t possibly say anything else on air.

Bob: What were your impressions of JAB11?

Torkil: Well, it was pretty much as I expected it would be.  I attended JAB10 as well.  What was nice was of course that more of the American crew took the time and the money, of course, to come over to Europe and I got to meet people from the Molajo camp like Christina and Amy and Matt and stuff and so it was really a bit more diverse nationality wise than it was last year.  The venue was awesome and the organizers have done a really terrific job.  The program was great, there were four different sessions going on at all time, I think, and the weather was excellent, some people took it upon themselves to sponsor parties two of the days.  I think Johan and Nooku sponsored a party on the first day or it was the day before the first day actually, and eBay sponsored a barbecue and stuff on the second day, so yeah, we got off cheap. [laughter]

Bob: I talked to on my round table show saying JAB11 the take away was Joomla is one big happy family, or one big family and JAB11 was like a family gathering.  Do you think that’s accurate?

Torkil: Yeah, no I don’t.  A family gathering, yeah sure, but it’s very European dominated.  You have mostly people from Europe, Asian countries have a lot of Joomla users as well it’s really big in like for instance Indonesia and of course there weren’t too many Americans or people from Australia, so but it was a family gathering of course, yeah.

Bob: I was thinking about Nooku, Joomla and Molajo as you know, the Joomla family.

Torkil: Oh, okay.

Bob: But it is interesting where people come from.  I guess I’m really going to have to really make a point to go next year.

Torkil: yeah, you should.

Bob: and I’m going to come with a t-shirt, a Canadian flag and it will say “I’m not from America”. [laughter] but I’m really close to the border.

Torkil: We make fun of Americans and those Americans who were there, they seem to pretty much handle it.  So, but it’s not your fault.  I’ve seen Michael Morre’s movies about the healthcare system and stuff and they go off to Canada to get some cheap medicine or people from Canada going South and they have to get expensive insurance and stuff, so I’m glad you’re on the North side.  Good for you.

Bob: Well my politics is “I love America and I love Americans,” and I’m not getting into the healthcare debate.

Torkil: Oh that’s too bad.  You should have seen the extra material on the DVD from Norway.

Bob: Just on a personal note and I might put the picture up.  My Dad’s a Pharmacist, I went to his 50th Alumni Reunion last week.  I was amongst a lot of healthcare professionals. 

Most people I talk to on my podcasts have their own freelancing or extension business. You are an exception.

Torkil: I am?

Bob: Yes, you are.  Tell us about where you work and what your job is.

Torkil: Okay, I work for a Norwegian advertising company here in Bodø, Norway, it’s up North.  We do lots of different kinds of work – advertising of course – but we also produce physical signage and we produce prints for t-shirts or posters.  Printwork and then we have part of the business that’s web development as well, we do websites for customers and for a long time the company was kind of like an integrator business early on like 10 years ago they had their own CMS php based. And, gradually, after I came on board here we switched over to using Mambo at first, and then went onwards to Joomla from thereon.  I like working here and living the Norwegian dream I suppose, it’s 8-4 and then relax for the rest of the day and you get your five weeks paid vacation and 12 weeks of mandatory paternity leave and yeah, it’s good.

Bob: and you do have a young family and you have your hands full.

Torkil: Yeah, they can be handful. I have a 3-year-old son who is called Vemund, and a 4-month-old daughter called Una.  A lovely wife of course, and I work.  I don’t know, I think it’s a good thing as well.  You learn to prioritize better, at least I do – I prioritize my time a lot more than when I did when we didn’t have kids, so yeah, I love it.

Bob: Well, amongst all that going on and a 4-month-old you’re very active with Nooku and doing the Wiki’s and the Google Groups, it’s amazing.

Torkil: Thank you, yeah I try of course.  It’s kind of like the pay it forward idea from, you know, the movie where if one guy helps you then it’s your obligation to help three other guys who come after you.  I’ve been a part of the community for a long time and it’s just the mentality of it.  When you get into it it feels natural.  Someone comes on the mailing list and asks a question that you can answer, in my case a simple question of course, and if I can answer it I’ll be happy to just chip in and help people out.  Recently there’s been a lot of activity on the mailing list and a lot of new developers have been coming on so there have been some questions regarding the tutorials and the wiki and stuff, so I’ve taken it upon myself and there are a few other guys who are helping out as well to improve first of all the “Hello World: Tutorial to get people started and of course the most important part just getting Nooku Framework installed somewhere, preferably on your local drive so you can start working with it and see what all the fuss is about.

Bob: Now com_harbour was set up as an example, as a sample and example and an introduction.  Are people complaining on the Google Group that it has too many things in it and they need something simpler to look at? Or, am I reading the Google Group wrong?

Torkil: No, I don’t think they are compaining but yeah, it’s evolved you can say from.  It was Christian who started, Christian Hent, he’s a German guy, and he started it as a kind of a learning experience, I’m going to teach myself Nooku Framework so I’m going to create an example component and others can read my component when I’m done and probably learn something from it.  But of course it is with Christian as with all other Nooku people you never stop learning so his component has just evolved from a “Hello World” component to an example component to what I would say is more like a showcase component of all the different kinds of things you can do.

Bob: And he has to keep updating it every time the framework changes.

Torkil: Yeah, Christian updates it and Stian would update it and Johan would pitch in and I remember when we would pitch in to keep it up and running and use it as a test case for new stuff that comes into the framework, so whenever new features would make it in and Christian would go on the mailing list, “Yeah that sounds cool, I’ll make something for com_harbour”, and yeah he would do it.

Bob: They should rename it com_lab instead.

Torkil: Yeah, but once you get into the basics it is really useful to check out what he’s doing because it is a simple component with harbours and boats and captains and stuff like that, so the concept is really easy to grasp and so once you know the basics it’s a very useful component and so are all other components for Nooku as well, like I read NinjaBoard codes often and now that com_ohana is out I have been checking that out too, I was in the beta group and I got sent installable packages every so often, I’ve been checking out their code, and stealing some here and borrowing some there, so reading other peoples code is really really useful once you get over the initial hurdles so to speak.

Bob: Well I’m one of those initial hurdle guys and I love all the people from JAB11 who then signed onto the Google Group, I didn’t feel so bad, but I realized I have a Joomla frame of mind and I didn’t realize that that’s good and that’s bad and the first thing to do is to realize you’re not quite in Joomla anymore.

Torkil: Yeah, well not quite, but yes and no.

Bob: I blew it with com_harbour.  I tried to build it and then realized it’s, no I think I’m supposed to do something else, but let’s start a little from the top on how to set up a Nooku development environment, and not jump the gun.

Torkil: First of all we have to demystify a bit.  We must remember that Nooku is built primarily by Johan, and earlier, on Mathias.

Bob: I forgot, I’m kidding.

Torkil: yeah but you must remember that Johan wrote most of 1.5 as well.  So the framework allows you to write components that would work on Joomla and it uses many of the same concepts that are found in Joomla, only that the code has improved a lot.  So, if you come from another CMS you have to start way way over where you are starting right now.  You have to start by understanding what is a component, what is a …

Bob: Oh yeah, I understand that.

Torkil: … you have a good starting point so don’t despair.

Bob: No, I’ve looked at Stian’s NinjaBoard and I’ve trashed sites because I deleted NinjaBoard or whatever but the plug-in koowa was still there and it was still active, enabled, and that caused the whole site to trash.  So I’ve been baptized just enough.

Torkil: [laughter] Baptism of fire, yeah.

Bob: yes, exactly.

Torkil: but of course, okay where do you want to start?  Should we take a 101 how to get your working environment?

Bob: A bit because I’ve gone through all of the Wiki and everything and I thought the one thing there was no interaction podcast or video and I thought we should do something like that and I’ve seen Johan in a lot of his presentations and thank you for recording them.  The only interaction is the Q&A at the end, so I thought we’d get a little deeper.  The first thing you need is Apache and PHP and MySQL set up.

Torkil: Yeah and you could just grab an AMP Stack and that’s really quick, easy and a free way to get started with that.

Bob: With [W]AMPP, and just use the latest versions that it has?

Torkil: Yeah, Nooku Framework was developed on PHP 5.2, if you use MAMP you can, like I have a MAC and I use MAMP all the time.  So you can choose whether you want to run 5.2 or 5.3 but it should run just fine on 5.3 as well.  Use WAMP, MAMP, LAMP, SAMP or whatever it’s just a really easy way to get the package going and to get started on what you really want to work on.

Bob: Does it matter what MySQL version you’re using?

Torkil: Thank you.  I think a minimum requirement is 5.04 or 5.05 or something like that.  It should say on the Wiki.  I think it’s 5.04 that is the minimum version required and you have to be able to run MySQLi as well — improved.  Most components require that now I see.

Bob: And once Apache/MySQL/PHP are installed, are there extra PHP packages to install at the command line? 

Torkil: No.  You should be fine with the default set-up.

Bob: I ended up installing a subversion package, or version something, at the command line.

Torkil: Yes, subversion is nice as well.

Bob: I knew I was lost at the command line. [laughter]

Torkil: Which operating system are you using?

Bob: Well, I’m on Windows and Windows Ancient and I was impressed how I typed whatever the command was and it looked for the PEAR package for that subversion, whatever it was, I won’t even look at my notes to look up what it was.  and I found it and it downloaded, did everything all at the command line, but I thought, “I shouldn’t be doing this, I must be doing something wrong”.

Torkil: For Windows I know you can use some graphic user interfaces for SVN if you want to.  If you install Eclipse you can install like Subeclipse for Eclipse and you can use SVN through Eclipse as well.

Bob: Well that’s why.  I thought you know I should be in Eclipse.  I know there’s a lot of IDE’s out there but we should take about Eclipse because that’s the one people are most familiar with.

Torkil: CRAPS?

Bob: I’m not saying one should use it but it’s a common reference point.  What version of Eclipse should someone download?

Torkil: Use the latest version I guess.  I wouldn’t get involved in that, I have used lots of different versions and I haven’t had problems with either one of them.  I update when I need to update.  If you ask me, I really don’t know what version of Eclipse I am running.

Bob: I should really rephrase.  There are different [Eclipse] packages and people should install the PHP Eclipse package.

Torkil: Yeah you could, of course.  Eclipse has different flavours as well, so yeah of course you could use the PHP package as well.  What I use the most for development is well the IDEs [Integrated Development Environment] has the advantage that you can look up classes and stuff really easily but you know the lighter code editors are catching up on those types of features as well.  So stuff like Espresso and Coda won’t get you very far as well.  But Eclipse is an IDE, it can be a bit heavy for a beginner to get started with but if you want to use regular Eclipse or the PHP flavour then it should be fine either way.

Bob: I was surprised at the question what IDE should I use after JAB11 in the Google Group and there was a lot of opinions, I thought, “wow!”.  And also there’s something called PHP Tools, it’s an add-on once you install Eclipse you should…

Torkil: Yeah, are you talking about PTI?

Bob: Yes, yes.

Torkil: PHP Tools integrated or whatever the I stands for, is a collection of tools like PHP Depend, PHP Unit and CodeSniffer as well, and one other extension I can’t remember from the top of my head.  But it integrates a lot of command line tools [which is why I shouldn’t install these tools separately at the command line -Bob] with Eclipse so you can use them directly into Eclipse.  PHP Depend for instance will show you metrics about your component, like how many levels of inheritance do you have, how many methods or functions do you run, whatever.  So you can compare that to other components and other frameworks if you want to.  But what I’ve used the most is the CodeSniffer and the CodeSniffer is when you integrate it into Eclipse it will “sniff” your code, if you will, once you save your file for instance.  So if you have a bad syntax somewhere if you are not doing it according to the sniffer rules then you will get a warning of some visual sort somewhere in your code so it can help.

Bob: Well let’s pursue that because you have to go to the Nooku Assembla Respository to get a file for CodeSniffer.

Torkil: Yeah, CodeSniffer is really a set of rules a sniff is one rule and a package of multiple rules can be called like a template for coding or rules or…

Bob: But you have to go to Nooku’s Tool space to get the CodeSniffer files for Nooku, right?  You have to bring that into Eclipse.

Torkil: Yeah, if you want to use the CodeSniffer then yeah but to be honest with you there Bob, I don’t think anyone is.

Bob: Well, see I’m glad I had this show! [laughter]

Torkil: I did some work on the CodeSniffer and I took some of the existing PEAR has one set of rules for writing PEAR Extensions and ZEND has another and they are all multiple sniffs out there that you can use, so what I did was I took a basic set of rules and I modified it a bit so that the rule set would be a bit similar to the code that is in the Nooku Framework.  So, yes you can use it as a rule set for writing code and what it will do is that it will make the code that person A is writing look identical to the code that person B is writing, it is a rule set for how the code should look, really.  And you can use it of course for tracking bugs and discovering if someone is using legacy code that they shouldn’t be deprecated functions and that kind of thing as well.  I don’t think that if you were supposed to get started with Nooku Framework then code sniffing shouldn’t be your primary concern.

Bob: And I think another PTI tool is XD Bug, is that something that must be downloaded right away?

Torkil: I haven’t seen that in PTI to be honest.

Bob: Oh okay.

Torkil: But XD Bug of course you don’t need to use php tools integration to use XD Bug.  There has been a lot of discussion around XD Bug on the mailing list recently hasn’t there.  You are reading the interesting stuff and I am helping out the newbies!

Bob: I’m reading all of it, you know the topics. It’s not a salient topic for the last two weeks.  I think maybe before all the JAB11 people came on, it’s interesting.  But something that someone has to install on Eclipse is Subeclipse or Subclips.

Torkil: Subclips, yeah.

Bob: Otherwise they can’t talk to the Nooku Subversion Repository.

Torkil: Yeah, you need it to use as beyond inside Eclipse basically.  So, are we going to get down and dirty and try to set this up?

Bob: Yes, I’m trying to [laughter]

Torkil: Are you actually doing it while we’re talking?

Bob: Oh, forget that.  That would never work.  I’m trying to get a sense of all the things someone has to install first in Eclipse.  It’s not just you download Eclipse, the PHP version and there it is.  You have to have Subeclipse, if you want you could do XD Bug, if you want you can do Code Sniffer, but something else is Phing, right?

Torkil: Yeah, you can use Phing as well.  But to be honest the packages for Phing hasn’t been updated recently.  Like for com_harbour if you try to run the Phing script on that I don’t think it will work.

Bob: So it’s not me.

Torkil: No, let’s just strip down all the tools and talk about what really needs to happen.

Bob: Okay, well that’s what we’re doing.  I feel very excited.

Torkil: Let’s just strip it down to the bare minimums and say you need Eclipse and if you don’t want to do SVN and the command line you should probably install Subeclipse as well.

Bob: Look, you have to have it.

Torkil: Yeah, you need it to check out the code.

Bob: It’s an easy one.  The other thing is, do you want to talk about symlinking now or wait a minute?

Torkil: No, we can do Phing and symlinking right away.  Phing is a great build tool.  So if you are building a component, you are doing continuous integration and stuff like that then Phing is a really great tool because it allows you to write xmount files that allows you to build an installable package of your component.  So you can go very fast from having a directory structure of files and folders where your code is and your install file and you can run the Phing script on it and get an installable package that you can send to, for instance, Bob Bloom and he can run it through his Joomla installer and your component will be up and running.  So you can use it to automate some tedious tasks if you look.  So, it’s a really useful tool for people like Stien who is regularly building new versions of NinjaBoard and distributing it.  So, yeah, it’s a great tool but symlinking is something that you use a lot more.

Bob: When you’re developing something you shouldn’t, like com_harbour, you really shouldn’t put that in the regular Eclipse space, you should have a separate space for com_harbour.

Torkil: Yeah, you could do that.

Bob: This is the impression I get from reading everything because com_harbour  changes and you want to be able to change it on your local development environment.

Torkil: Yes.

Bob: And if you put it in the same Eclipse workspace you won’t be able to do an automation of that update

Torkil: Well, whether or not you want to automate the update it really comes down to what you’re trying to do.  If you’re trying to build a project like I do regularly, I build projects for clients and I use Nooku Framework even though it’s in Alpha stage.

Bob: Everybody’s using it.  I don’t even think Alpha is… it doesn’t matter when you’re seeing all the extensions coming out and using it anyways.

Torkil: So, what I would do is I would get a stable version like Alpha 2 and I would just stick to it and use it all the time and not upgrade Nooku Framework.  When I am playing around and writing other kinds of code I will update Nooku Framkework like daily and I will update my own code to reflect the changes that have happened to the framework as well.  So, then the com_harbour of course updates regularly with the framework as well so I think it would be advised to do an SVM checkout of com_harbour and Nooku Framework and just keep them up to date and whenever com_harbour updates then you update your framework to the corresponding version if you want to check out the new stuff that’s happening in com_harbour.

Bob: So, what is symlinking?

Torkil: Symlinking is just creating a file that’s a reference to another point in your file system.  So a symlink can be a link to another directory or another file, for instance.  So this becomes useful when you are trying to set up, let’s say, a local host southlasallemedia with com_harbour.  A Joomla installation or a Nooku Server installation, Joomla 1.5 or 1.6, it doesn’t matter.  What you would have is you’d have the CMS in one folder, right? and then you’d use SVM to check out com_harbour in another folder, perhaps on the same [folder] level.  So you’d have your root folder where you’d access Joomla like the index.php file for Joomla and you’d have on the same level you’d have a folder for com_harbour and the com_harbour check out that you would do would contain of course directories like “administrator” and “languages” and “modules” and all the stuff like that.  So to get com_harbour up and running on your Joomla installation without installing it through the Joomla installer, you would have to effectively copy all these files to their corresponding folders inside the Joomla installation.  So inside administrator components you’d have to copy the com_harbour folder.  Inside the component folder you’d have to copy the com_harbour folder.  And this becomes very tedious of course if you haven’t got a script to automate the whole thing.

So what we do with symlinking is we take the com_harbour folder structure and we run that through a symlinker script so that inside your Joomla installation symlinks are placed that point back to the com_harbour folders.  So inside your Joomla installation, inside the administrator components you would find a com_harbour symlink that would point to the corresponding folder in the SVM checkout that you did.  Does this make sense?  What this allows you to do is that you can have a Joomla installation, you can have a com_harbour and you can have a Nooku Framework checkout that is on the same level in your file system.  Like you’d have three folders a Joomla, a com_harbour and Nooku Framework and they would live independently of one another.

Bob: com_harbour is sitting somewhere other than your Joomla install.

Torkil: Correct.

Bob: And Nooku Framework is sitting somewhere other than your Joomla install, but on the site you’re working on the symlink says I know where those components are, and the Joomla site works.

Torkil: Precisely.

Bob: But on your local file structure they are in different directories than they would normally be on your install.  One reason is you can have the Nooku Framework in one spot and use it for multiple projects.

Torkil: Yeah, good example.

Bob: And com_harbour is again you can update that separately whenever you update it or Christian updates it, then you can do another check out.

Torkil: Yeah, what happens is that you have an SVN repository that you have checked out.  You have com_harbour lying in one folder and once you do a SVN check out then maybe 10 or 20 files have changed, the symlinks stay the same so they just point to the new files, there is no need to do another install or whatever.  If the database structure is the same then there is just minor file changes which is normal in the case then you just do a check out then voila your component is updated.

Bob: and to implement this, do you need to download something else in Eclipse?

Torkil: No, you don’t need to download something in Eclipse.  We have a tool in the Tools space on Nooku’s Assembla site where we have a little thing called a symlinker and there are different versions of the symlinker, there are both files for Windows and for Unix operating systems and there is also a Python version of it if you want to do that.  So what it does, is that you would run the symlinker with two parameters.  The first parameter would be the folder that com_harbour is in and the second parameter would be the folder your Joomla installation is in.  So what the symlinker would do is that it would iterate through all the contents in the com_harbour and it would set up symlinks inside your Joomla install to those folders or files.  So you run one command and you get probably ten symlinks for the component, for the back end component, for the language files, for the modules and for the media folders and probably some other things too – depending on what kind of component it is.  But the symlinker basically just does an install for you without doing the database whereas unfortunately you have to do those manually.

Bob: I find the Symlinker is the one that I end up getting hung up on and once I conquer it, I think the whole world of Nooku’s going to open up.

Torkil: Okay, how can I help?

Bob: Well, no no no no.  Just going through.  I think it’s one of those pressure points because I’m always thinking of, you know I’m in Joomla and there’s com_harbour so I’ve got to take the install package and install it.  With symlinker it’s just better to use the symlinker.  But, to get that in actually working now in Joomla you have to manually install the database inserts.

Torkil: Yeah, you have to.

Bob: So how does that work?

Torkil: The installation of com_harbour has an SQL file in it, so you can run the SQL from your comline or you can just copy/paste the entire contents of it into phpMyAdmin, which if you install MAMP [http://localhost/phpmyadmin -Bob] you would get phpMyAdmin in that package as well and once MAMP is installed and you start up MAMP then the opening page for MAMP will have a link to phpMyAdmin and you can just go directly to the SQL part of phpMyAdmin and just run the queries.

Bob: Right.  PHP My Admin, yeah, it’s an import.  You just import the SQL file.

Torkil: Yeah.  And one thing you might have to do before that is you might have to replace the database prefix with your own database prefix before you run the queries.  You do a search/replace for “#__” [that’s a double ‘_’ -Bob] and replace it with whatever your DB prefix is like jos_ for instance.

Bob: Exactly.  [laughing] do you know I always miss that?

Torkil: [laughing] yeah, well PHP My Admin is really friendly and will tell you that “Bob you screwed up”.

Bob: “You’re impatient again, you’ve got to search and replace the ampersand or the tic-tac-toe symbol”.

Torkil: Yeah.  So it is that, but you know it is an alpha project so it seems like this is lots of hoops to run through to get you up and running but in the end to me, it’s really worth it because you can use your newfound knowledge to your own benefit when you are creating your own components and doing client work [yes, powerful tools for work with my clients! -Bob].  So it’s really useful stuff to learn PHING and symlinking and setting up Eclipse and stuff like that.

Bob: Well I don’t really find it like a lot of hoops, it’s only when it doesn’t work and knowing that right now I don’t have to worry about XDbug, maybe I don’t have to worry about Code Sniffer right away.  The pressure points are, of course, get subversion working and Eclipse and then get the symlinking working.  And then once that’s done, you know, you can delve into the other stuff.  But this is the way to get it working, the symlink I think is, you have to get that working and nothing else really matters until you get that set up and I’ll be taking notes with the ambition that you know, I’ll contribute to how to do that.  My fingers are crossed when I say that.

Torkil: Well documentation can always get better if you get some good questions in there.  So, if you or other people on your various operating systems who try to run the symlinker and try to do what the documentation says and you can’t get it done then perhaps the documentation needs updating and I’d be happy to oblige in my spare time.

Bob: Yes, in your plentiful spare time and thank you for the offer.

Torkil: Oh but it’s fun.

Bob: It could be, I guess.

Torkil: Ah, helping out in the community and meeting lots of friendly people and helping people out is really a good way to get to know people too.

Bob: Well, on that I’m going to go further.  I think the culture is spectacular on the Nooku Google Group.  A new batch of developers signed up and they’re asking questions and everybody is being very patient and it’s like a new iteration of updating the wiki and updating the “Hello World” [component] and all that and it’s spectacular.  There’s a lot of patience, it’s a mentoring culture and it’s leadership.  You’re showing all these new people what it’s about and then they’ll be the next sort of generation when JAB12 comes out they’ll be the ones holding the hands of all the new people.

Torkil: Yeah, you know actually I said that to another guy (sorry for interrupting) but I said exactly that to another guy on the email last night.  He was saying thanks for updating the “Hello World” example and helping him through some problems he had with his code.  He had gotten the symlinking done and he was down to writing code so he was thanking me for helping him out and I just said to him that “okay, just remember this and you help out the next three guys that come along”.  I think that’s a lot of the mentality in here, it is developer friendly.  If you go on the mailing list you will see that almost all the discussions in there are about writing code.  If you attend the Google chat as well which has a bit thinner audience of more experienced guys perhaps, I don’t know, it’s not as many as on the mailing list of course.  But it’s also strictly code only chat and just a few days ago we were discussing “okay, what should we do with the “Hello World” example to update it to the present standards and stuff” and we were writing emails back and forth between one and another and had to organize this tutorial and then Johan suddenly jumps in and he says “okay guys enough talk, let’s code”.  So that’s a lot of the mentality as well.

Bob: The only sort of criticism Johan’s put in the [Nooku] Google Group is “can you please have one thread per question”, but otherwise he’s been in there like anyone else, guiding everybody and it’s impressive.  I find it’s very impressive, just like you want to chip in for the transcripts so that people can read along and I can put in links and stuff.  I think the entire thing is impressive – so there!

Torkil: I like it very much too.  I’m really happy to be a part of it and as you say, it is kind of like a mentality so once you get in there you won’t  think twice about helping other people out yourself.  It’s just, it grows on you.  I don’t know how to explain it, it’s just the way it is.

Bob: Well it’s funny, with com_harbour Phing didn’t work because you know I have to run the build so I can install it in Joomla – right? Which it’s not.  So I looked at the code in Phing and not having ever touched it said “oh no no, I don’t need it to go to the repository to get koowa, so I started deleting.  I thought “boy if this works I’ll just offer it to the group”, so you just end up getting in there anyways, and start giving back.

Torkil: Actually I did check it out during our conversation here and I think the Phing script hasn’t been updated since 2010 so perhaps I should give Christian a nudge and perhaps he will update it.

Bob: That is not what I’m thinking at all.

Torkil: Or maybe he’ll just delete it so no one else will go down that blind alley.

Bob: No, leave it in there and don’t worry.

The funny thing is it’s when you’re developing the component, you think of com_harbour as your very own component you’re developing for your client and you don’t develop it by putting it into a Joomla install.  You leave it separate, you symlink it and then you link it to your own SVN and that’s the way it goes.

Torkil: Yeah, it allows you to keep your own code bases separate from the code base of Joomla.  So once you have completed your com_harbour version 1.0 beta, whatever, and you want to distribute it to the whole world then you have your code in a separate code base and it’s easy for you to package it.  Compared to if you start building com_harbour inside a Joomla install and you have to create a Phing script or something to pick out the correct folders to put in an installable package.

Bob: That’s right and you’re going to realize you need two builds.  You need one with the framework and you need one without.

Torkil: Yeah, or you can just say to your clients, “hey you need to install Joomla and you  need to install the Nooku Framework first”.  But a lot of components out there are distributing the Nooku Framework.

Bob: No, I’m going to disagree with you on that.  Because if they have Ninjaboard or there’s more things coming out, they cannot install, you cannot put Nooku Framkework in your build.  They have to do the nonbuild or the non framework build.

Torkil: Yup.

Bob: I’m getting hung up on my terminology.

Torkil: Yeah, like Ninjaboard and Ohana, I think Ohana does distribute the framework with their installation, it’s the user friendly thing to do.  You just want your users to download the zip and dump it into the install and it will fix itself no matter what, if you have the framework or not. [See Akeeba Subscriptions Download page for an example of what I’m talking about — click “View Files”, 1.0.b2(Beta) is latest at time of this podcast -Bob].

Bob: I think that’s what’s going to happen.  I have a real bee in my bonnet about that and I know I talked to the Round Table guys about that.  But Phing is not something that’s absolutely needed when you’re first setting up the development environment.

Torkil: No, I think history has shown and confused you a bit more than it will help you as well.

Bob: So when you’re first setting up your Nooku development environment, there’s the LAMP, MAMP, WAMP there’s Eclipse or whatever you’re using, you have to have Subversion add-on so you can talk to the repository and you have to have symlinker.

Torkil: Yeah, it makes the job easier.

Bob: and then get com_harbour or whatever and get comfortable and then from there you can expand out.

Torkil: Yeah, I think that’s a good choice.  And now that we seen in the coming weeks we will probably improve the “Hello World” tutorial as well and it will be kind of like how to build a com_blog from scratch.  So you would start by creating folders for com_blog in your administrator and your components and you would start creating files and doing everything from scratch.  Whereas com_harbour is …

Bob: This is very sneaky.

Torkil: com_harbour is a showcase example of a bigger kind of thing.  So if you want to start out with something that’s easier, that’s our intention with the “Hello World” tutorial and the Wiki that we have been working on.  So I think for now we have just done two steps and I think step one was just getting up and running and step two was creating some folders and get some output on the screen.

Bob: com_blog is probably going to end up in the framework in six or nine months.

Torkil: Aw we’ll see.

Bob: There’s a way to sort of kick start an idea.  “Ah let’s try this”.

Torkil: We’ll limit the topics we get into on the Wiki, we’ll try to keep it sweet, short and simple.  Because I wouldn’t call it a problem, but for newcomers that’s a problem with com_harbour.  It’s gotten big.

Bob: You know, I’ve been mulling in my head about the Wiki because you have one Wiki per space in Assembla and I’m thinking “I think we need something comprehensive that’s searchable” because I’m losing myself in the different spaces.  So one day I’m just going to pop up in the Google Group and then you’ll see me there forever.

Torkil: It sounds like you’ve been there for awhile.

Bob: Oh yeah, I follow it religiously.  I’m just biding my time.  But I thought this would be a way of doing it different to help everybody get a handle on getting started.  I want to do more podcasts and then eventually, with my fingers crossed, move into screen casting on these concepts.

Torkil: Yeah?  I have been following your show for a while.

Bob: Thank you!

Torkil: I don’t think I’ve heard all 35 of them.

Bob: Almost 60 of them.

Torkil: Oh 60 now.

Bob: In the year and a half, yes.

Torkil: I have listened to quite a few, yeah.

Bob: Thank you.

Torkil: And it’s fun to, well you don’t see peoples faces but you can hear their voices and that kind of gives you a bit more of an impression than what just reading what they write will do.

Bob: Actually, Alan Langford who leads Toronto Joomla Group, he’s been on my shows before, so you’ve heard of him.  He has a new site called  He’s doing video interviews.

Torkil: All right.

Bob: So, he’s sort of my laboratory for that and it’s more intensive than the podcasts.  But I think the video’s coming.

Torkil: I look forward to it.

Bob: Just the post production is unbelievable!

Torkil: Yeah, I suppose.

Bob: and the other person on the other end also has to have the video and it’s an incredible enterprise.

Torkil: Thank you for inviting me.  It was a new experience for me.

Bob: Oh well, the pleasure’s been all mine and thank you, Torkil Johnsen, for generously sponsoring today’s transcripts.

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