Archive for the Nooku Category
Nooku Framework released on Sourceforge
We are delighted to announce that our Nooku Framework has been publicly released — made available at Sourceforge.net
The framework – which was announced last May – empowers Joomla! 1.5 to new levels and is designed to provide third-party developers with Joomla’s missing MVC.
Initially Nooku was launched as the extension that changed the way people manage multi-lingual websites with Joomla. In reality, there is a lot more below the hood. The true power is in the Nooku Framework that drives it. The framework brings future-proof Web 2.0 development to Joomla.
Nooku Framework MVC Mapped
More and more developers are getting familiar with the Model-View-Controller design principle for web applications and especially for writing Joomla components. There are many tutorials available, but text is so… well, linear! So we decided to try something different. API documentation (coming soon!) is very useful, but a class inheritance tree doesn’t really illustrate ‘what to use where’ or ‘how does it all fit together’. So we mapped out the new Nooku Framework based on real world use and this is the result:
The map is far from complete. The Nooku Framework has tons of features to help you write extensions more quickly, more secure and more extensible. If you are developing extensions for Joomla, you will benefit greatly from this new framework. Be sure to check back regularly as we update the map with new features.
Nooku Framework announced
Raw coding talent and vision, that’s what Nooku is about. It’s creating a lot of excitement in the joomlasphere. After months of hard work we are revving up all engines.
Nooku was launched as the extension that changed the way people manage multi-lingual websites with Joomla. In reality, there is a lot more below the hood. The true power is in the Nooku Framework that drives it. Nooku brings multi-lingual power and future-proof Web 2.0 development to Joomla.
What if you combine the development speed of Ruby on Rails, the flexibility of Symfony, and the power of the Zend Framework, with the simplicity of the Joomla Framework? What if you have an API that is so intuitive it speaks for itself? What if every part of your code becomes reusable, extensible and replaceable? Imagine as a developer being able to achieve all this in a fraction of the lines of code you need today. Our Nooku framework delivers this and much more!
The Nooku Framework can be installed in Joomla as a plugin. It allows developers to build more powerful extensions, or even to develop standalone web applications. One of the first major third party Joomla extensions using the framework is Anahita Social Engine and of course the Nooku extension itself.
For more information visit our framework page on nooku.org or follow (@nooku) us on twitter to stay up to date about the latest framework developments.
Nooku 0.6 : pushing Joomla to its limits
Two weeks ago we released Nooku 0.6 at the first Joomladay in Switzerland. The new 0.6 version focuses completely on SEO. With Nooku 0.5 we already had the basic translations features implemented, with the new 0.6 version we are pushing the envelope even further.
Today, if you want to create a multi-lingual search engine optimized Joomla website you need to install a multi-tude of different extensions (multi-lingual, search engine friendly URLs, metadata, etc…) . Nooku 0.6 solves all that out of the box… and makes it all translatable. Neat huh !
Alias validation
One of the features I’m personally very proud of is the new alias validation. Simply put Nooku 0.6 prevents duplicated aliases for all content items (articles, weblinks, categories, sections, banners, etc…). It is also capable of correctly converting (transliterating) a title into an alias on the fly for almost any language.
Nooku 0.6 needed alias validation to allow us to remove the numeric information from the URL’s. For example, if two article aliases are identical Joomla will not know what article to show if you remove the numeric information (the article id). Other SEF extensions solve this by storing the URL in the database, this approach requires extra queries and greatly reduces the performances of your site, in some case up to more then 25%.
In our solution the alias validation happens on the fly in the actual edit screen you are working in. Just like with the translation there are no extra plugins to install, or settings to set, it just works. It seems a very trivial feature but we are really pushing Joomla 1.5 to it’s limits on this one.
To give you an idea, the validation is a combination of an ajax driven (mootools) server-side form validation solution in combination with a new and more powerful event system we created as part of the Nooku Framework. Like everything we build we try it to be extendible and reusable. By abstracting the alias validation from it’s implementation we allow third party developers to easily use it in their own extensions with only a couple of lines of code. The same also applies for the new metadata support we added to the menu manager, but that’s a story for another blog post.
Nooku : new versioning and branching strategy
One of the questions we received over the last few weeks is how stable Nooku is for production use. A good question that isn’t easy to answer.
At the moment when we move to a new milestone we create an unstable trunk. Bugs reported by our partners are getting fixed but the fixes are only released in a new milestone release which by the fact that it introduces new features also introduces new bugs.
To give our partners the opportunity to use Nooku on production sites we decided to change our versioning and branching strategy.
An agile release strategy
We have introduced the concept of unstable release branches. In practice this means that the actual development work is done in the release branches. When the work in the release branch is completed it is merged back with the trunk.
This approach allow us to fix bugs immediately in the separate release branches and roll out new builds on the spot. Partners will be able to choose to integrate the stable version or test the unstable version that is in active developed.
We also started to roll out builds of both the stable an unstable versions on a daily basis (nightly builds). Partners don’t need to wait any longer until the end of a milestone cycle to obtain a new package.
A new versioning schema
The new agile release strategy is also be reflected in Nooku’s new versioning schema. The versioning schema now follows the x.x.x format, in the same way as Joomla! does.
We started by renaming Milestone 10 to version 0.5.0, and the planned Milestone 11 will then become 0.6.0 and so on. This change allows us to do very agile maintenance or bug fix updates of the release branches. For example we just released 0.5.2 yesterday to fix a few minor bugs and are now collecting bug reports for 0.5.3.
Each minor release is focussed around one or two large features. For the upcoming minor releases of Nooku we have identified (based on the feedback of the partners) three large features yet to be implemented for Nooku 1.0. More on those in a next blog post.
This change in strategy will allow our partners to start implementing Nooku knowing that we can provide support and bug fixes on a minor release basis.
For those of you who are interested to read up on svn branching strategies can check out this excellent blog post.
Keeping Nooku Easy
Last week, we finished our 10th milestone release of Nooku, the new translation manager for Joomla! 1.5. Just like with the prevoius releases, some of our partners are already using Nooku on their production sites. More on that soon on our Buzz page. This gives us the necessary feedback about ‘real world usage’ to make Nooku even better. There are still a couple of features we want to implement before we feel we are ready to release a beta version to a wider group of people, so you’ll have to be a little more patient (or consider signing up to be a Nooku partner yourself and help us fund development!).
Ease of use
One of the features we’ve been working on is ease of use. We feel that managing a multilingual site shouldn’t be any harder than managing a plain Joomla! site. First and foremost, we try to introduce as few technical terms as possible. As a developer, you’re used to all kinds of concepts that are like Chinese to someone without a background in IT. Of course you need some terms, but whenever possible we try to limit them to words people are already familiar with from Joomla! and other software.
Making choices
Someone I demo’d Nooku to, remarked that ‘it has so few features’. But options are not features.
Half the time, when an application presents a user with a choice, you need a page of documentation to explain what that option does, and how it will affect your site. Five screens of configuration options might appear to give you a lot of control. In reality, only people who work with the software a lot (or who simply have too much time on their hands), will be able to use all those options.
Joomla! 1.5 already sets a good example on how to deal with this problem. By separating options into a Basic section and a hidden Advanced section, users know they don’t need to worry about every single option. The advanced options have their recommended setting, and you only have to touch them if you want to achieve something special.
Getting rid of options
Nooku goes one step further. Whenever a choice needs to be made, we ask ourselves: ‘Is this something the user has to decide?’ Most of the time, the system has all the information it needs. So if the system is intelligent and analyzes its environment, it can make a better informed decision than an average user could. We’re not compromising the power of the system: the choice is made dynamically, but by the system instead of the user. This is what the configuration screen currently looks like in Nooku:

Nooku First Look Video
We’ve had a massive response to Nooku over the past weeks. Hardly surprising given that multi-lingual support in Joomla! is considered one of the top five “must-haves” by the community and business users.
I took the opportunity to do a small demonstration of Nooku in action with Joomla! 1.5 in the form of a videocast. Don’t mind the facial hair (I was trying to grow a beard but failed miserably).
One outcome of this exercise, particularly in a marketing sense is that the viral nature of the web proved its worth, yet again. Although the video was put out well below the radar, only initially available on iTunes : it’s been picked up in a variety of newsfeeds and most recently republished on YouTube.
We plan to do several more videocasts / screencasts as Nooku and related products emerge from our coding laboratories. Click here for the high-resolution (Quicktime version).
Nooku – Amazing feedback!
It has been almost three weeks since we launched the Nooku website. In the days after the release we received some very good feedback from the international Joomla! community. Even our friends over at the Drupal internationalisation group took notice.
We knew from the initial feedback we got from our funding partners that a lot of people where waiting for a true multi-lingual solution for Joomla! 1.5. What we didn’t knew was that you are with so many ! Since the release of the site and the announcement of the partner program we have received many emails from companies interested in the partnership program.
The number one question people send us is without any doubt : ‘When will Nooku be released publically ?’. As we already wrote in our FAQ’s for the time being Nooku will only be available to our partner / funders, while we’re perfecting our baby.
With Nooku we not only aim to create the leading mulit-language solution for Joomla! 1.5, we also want to demonstrate that a funded business model can be a great way to create GPL’ed solutions for Joomla! in true spirit of the GPL licence.
If our effort is successful, Nooku will be Joomla!’s first truly open-funded GPL extension. It’s our hope that this approach can serve as a example business model to the Joomla! community as to how companies can work together to achieve a common goal. After all isn’t that what Joomla! is all about ?
Our Secret Project – A second hint !
It’s already 10 days since we gave out a first hint about the secret project we are working on. Comments people posted ranged from : a statistics extension for Joomla! 1.5, to a Basecamp-like extension that could be used as a help desk or ticket management …
Is it either of those ? Not even close! What are we working on then ? Well, we’re going to hold out on that a little longer.
However today we are glad to announce the name of the extension we have put our heart and soul into over the last 6 months. Without any further ado … our new baby will be called :
‘Nooku’
The name ‘Nooku’ was chosen to reflect to idea behind this project and it follows the spirit of the Joomla! name, which is derived from the Swahili word “Jumla”.
Any more ideas already ?



