May 25, 2013

How We’re Giving Back to FoF

Last week, Nicholas Dionysopoulos corresponded with me via email about his FoF.

LaSalleMart for Joomla 2.5 and FoF are become very good friends.

Nicholas, in his usual graciousness, let me publish his missives to me.

The way I understand it, it’s best for you to produce short developer-oriented blogs about tips & tricks using FoF. I would recommend doing that in a way which allows people to comment. It’s incredible how much useful information you can get by discussing code. A lot of FoF features owe their presence to discussions help in Joomla! conferences around the globe and discussions with the early adopters. From that point, once you have enough information which may be relevant for other developers, we can pull them into the main wiki at Assembla, of course giving credit where credit’s due.
As for contacting me with ideas etc, Assembla is the perfect place. It has a wiki and a ticket system, very well integrated with its merge request facility. As you’ll see, nobody has ever sent me a patch file. It’s all about fork it, fix it, do a merge request. A lot of discussion took place over merge requests. It’s the most efficient method, actually! Talking about code which is right there, spotting problems, fixing them, integrating them, within minutes or hours. It’s a very organic process. It’s fun, even!
I know Nicholas is irritated that I do not enable commenting on my blogs. However, at his urging, for my FoF articles, I shall enable!
Regarding commenting, it’s one thing having public comments for a generic opinion article and a completely different thing having public comments for an article about code. The former attracts all kinds of haters and trolls and I certainly understand why you don’t want comments. The latter, however, attracts hardcore geeks. Discussion can get passionate, but tends to lean towards the “productive” site.

On the one hand, comments are disabled on my Media and Blog sites. On the other hand, I installed a dedicated innovative social site for full blast commenting for my Club Commerce Members. This is my Yin/Yang — I do not want to deal with the public!

Yes, I said it. The retail public is not my cup of tea.

BTDT. At the height of my Virtuemart days, I ran a free public forum to support my free public VM downloads. Most people who contacted me were a bunch of fucking assholes. I tried to put it in a fun, non-offensive way in my Membership is not a Trojan Horse for Free Consulting.

Due to this direct experience, I’m not going to offer LaSalleMart for free download. Ev-ah. Heck, I took down my demo site! –> UPDATE: Actually, planning a special edition of LaSalleMart for free download. See newer blog post.

Commenting is really good for SEO. It adds fresh content, and it promotes more eyeballs. So, I’m a contrarian. I publish my posts to Facebook anyways, so you can comment there. If a comment ever pops up on Facebook that inspires my passions, I will — naturally — post on my own blog.

LaSalleMart is now on Assembla.com, which was always in the plans anyways. Take it from the guy who interviewed Assembla’s Founder in 2010.

So, comments will be on for my FoF blog posts.

 


LaSalleMart for Joomla 2.5 Using Framework on Framework

FoF: Tastes Great, Less Filling

FoF: Tastes Great, Less Filling

Now that LaSalleMart 1.0 is a reality and on its first live site, time to convert LaSallemart to work on Joomla 2.5.

Refresher: LaSalleMart is a fork of Tienda 0.8.2. There is no Tienda version for Joomla 2.5.

Late last week, I finally sat down to start the conversion. First thing to convert: admin’s “General Configuration”.

Within 20 minutes of sitting down, I was digging into Joomla 2.5 itself. Within an hour, I knew I’d be using FoF sooner than later.

Last night, just after 2:00am, I finished my proof-of-concept of the “General Configuration” admin using FoF in Joomla 2.5.

The notion of somehow “porting” to Joomla 2.5 is out the window. No dress rehearsal, this is the real thing. We’re essentially converting Tienda to Joomla 2.5 by doing some immediate re-writes in the admin.

And, we’re doing something else: we’re doing the theory in practice! We’re chopping up the admin into a bunch of separate components — and into separate repos. The theory is not bullshit! All that talk about “Moneyball” is for real. We’re really doing it, and I love it!

The “Framework on Framework” (FoF) by AkeebaBackup.com was something I was going to look at for LaSalleMart at some point. Well, the future is now!

***

Interjection: Nicholas emailed me that I’m wrong. There’s more to the history of FoF than what I know. Here’s his verbatim email reply he asked me to publish:

FOF is NOT “my own version of Nooku Framework”. It’s not “a distillation of what attracted us to the Nooku Framework in the first place”. FOF is based on my ideas about a framework extension which predate my involvement with Nooku by two years. FOF began its life in August 2009 as a set of three base MVC classes written for my own use, with the goal of simplifying my life. Since then, these classes had made it into two custom projects for clients, as well as ARS and Admin Tools, all predating my involvement with NF. The repos are out there to prove my word. Naturally, I had to evolve this to a full blown library once I realised that NF wouldn’t deliver. Naturally, I implemented some conventions which are common with NF as I wanted to make Akeeba Subscriptions work without NF as soon as possible. So, no, FOF is definitely not “my own version of NF”. It’s a different kind of fruit with a similar taste.
FOF’s goals are very different to those of NF. I am aiming for stability, backwards compatibility, extending (not replacing) Joomla! Platform and giving you something which doesn’t get in your way when you want to override it. All of that while focusing on what matters to developers in the real world: quick turnaround and minimal code maintenance.

Why don’t I enable comments on this blog, nor on my Media site? Because I hate moderating public forums.  Because I’m contrarian.

I’m leaving my incorrect history-of-FoF intact below, so you know what Nicholas is responding to.

Thank you, Nicholas, for taking the time to send me your email. And, thank you for making FoF available as a FOSS Joomla library.

***

Another email exchange:

the initial classes upon which FoF is based predate my involvement with Nooku Framework by 2 years. Nooku Framework did exist as a private project at that time. When NF was first presented publicly in JaB10 (April 2010 if memory serves) I had already been working on those classes for a year and I had already written ARS based on them :)

***

Less code, speed up turnaround. That’s what I want from FoF. And that’s what I get. On top of that, there are extra kickers that are kick-ass. But, the fundamental value of FoF is (1) LESS CODE; (2) FASTER TURNAROUND.

This is, of course, the promise of the Nooku Framework. As you know, once I started programming with the NFW for my Tienda Distro, I concluded that I could not use it! Here’s my podcast announcing my un-using NFW.

Nicholas was coming to the same conclusion, as I mention in my podcast. Naturally, Nicholas wrote his own version of the Nooku Framework. He called it FoF. You’ll hear me say on occassion that a pearl is created from irritation. Well, FoF is a gem, although its genesis is frustration. FoF is a distillation of what attracted us to the Nooku Framework in the first place. The number one thing that attracted us was the promise of not having to code 50% to 80% of the normal Joomla code for a standard normal component. FoF delivers.

FoF is just a handful of PHP files in one single solitary folder. When I first saw it, I thought I had overlooked it! I kept digging for the plugin! Oh, boy, you know, the FoF version of the “koowa” plugin that remained intact after I uninstalled a NFW component and crashed my site. So, naturally, I’m searching for the FoF plugin.

Forget it. No plugin, no modules, no mimicking the Joomla folder structure. Whew, I assumed “FoF” stood for “Files upon Folders”. Nope. One folder, one handful of files. FoF is a wonderful distillation that delivers as promised.

My “General Configuration” proof-of-concept is weird. There’s a controller folder, but no files in it. Same for the model folder. I spent how long trying to find out how to create the component’s main links at the top — studying Akeeba Subs looking for the elixer! Then, light-bulb! FoF “just does it” when I stick to the naming conventions. It’s the first time I programmed something in Joomla by not doing anything. Totally my cup of tea!

Nicholas, thank you for:

  • writing FoF;
  • converting it to a Joomla library;
  • making it FOSS;
  • creating a wonderful Assembla space for FoF;
  • creating a wonderful sample component for FoF — which uses Phing!

It’s a gem!

And an integral aspect of LaSalleMart for Joomla 2.5!

Rapid Application Development with FoF at Joomla and Beyond 2012

akeeba.assembla.com/spaces/fof

akeeba.assembla.com/code/to-do-fof