<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="Joomla! 1.5 - Open Source Content Management" --><rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
	<channel>
		<title>Blog</title>
		<description>Joomla! - the dynamic portal engine and content management system</description>
		<link>http://joocode.com</link>
		<lastBuildDate>Wed, 08 Sep 2010 22:56:04 +0000</lastBuildDate>
		<generator>Joomla! 1.5 - Open Source Content Management</generator>
		<language>en-gb</language>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/joocode_en" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="joocode_en" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
			<title>Six Nooku Framework components published on GitHub</title>
			<link>http://joocode.com/blog/flavio-six-nooku-framework-components-published-on-github</link>
			<guid>http://joocode.com/blog/flavio-six-nooku-framework-components-published-on-github</guid>
			<description><![CDATA[<p>I've worked for quite a while with <a href="http://www.nooku.org/framework.html">Nooku Framework</a> in the last months, on websites such as LearnerHQ.com, EasilyPlan.com, JooCode.com, Ohanah.com and an upcoming secret project which involves OAuth and social networks.</p>
<p>During this time I come up with reusable solutions for common problems/tasks/things, so I decided to release a few of them as GPL extensions on <a href="http://github.com/joocode">GitHub</a>. Here they are:</p>
<ul>
<li><a href="http://github.com/joocode/com_blog">com_blog</a>: a blog platform you can just plug-in into your website, that also powers this blog. Works with com_comments or IntenseDebate.</li>
<li><a href="http://github.com/joocode/com_comments">com_comments</a>: add comments to any item of your site.</li>
<li><a href="http://github.com/joocode/com_error">com_error</a>: better error management for your application. Don't let users see weird error messages and get notified when something strange happens.</li>
<li><a href="http://github.com/joocode/com_help">com_help</a>: help management extension: add inline help and help pages.</li>
<li><a href="http://github.com/joocode/com_settings">com_settings</a>: add settings to any extension's entity, so they become customizable by the site users.</li>
<li><a href="http://github.com/joocode/com_stream">com_stream</a>: automatically create a list of activities occurring on the website, 'spying' what controllers do.</li>
</ul>
<p>Those extensions are intended for developers, not for end users, and they represent my vision of the Nooku Framework environment, where there will be many specialized components any developer could take and just plug-in in a few minutes.</p>
<p>I hope those extensions can be a start for that, I hope you developers will use them and help me improve those simple extensions that have proven to be quite useful for my apps. The Git and GitHub platform I choose to host the code could help a lot with this kind of collaborative development, so basically go on, fork, code, push, pull, enjoy!</p>
<p>Suggestions/insights/bugfixes are welcome of course! (extensions-specific on their GitHub pages)</p>]]></description>
			<pubDate>Sun, 05 Sep 2010 08:31:34 +0000</pubDate>
		</item>
		<item>
			<title>The book every Joomla developer must have.</title>
			<link>http://joocode.com/blog/flavio-the-book-every-joomla-developer-must-have</link>
			<guid>http://joocode.com/blog/flavio-the-book-every-joomla-developer-must-have</guid>
			<description><![CDATA[<p>I'm talking about <a href="https://www.packtpub.com/mastering-joomla-1-5-extension-framework-development-2e/book">Mastering Joomla 1.5 Extension and Framework Development, second edition</a>.</p>
<p><img src="https://www.packtpub.com/sites/default/files/0523_Mastering%20Joomla!%201.jpg" border="0" alt="Mastering Joomla 1.5 Extension and Framework Development, second edition." width="250" height="309" /><br /><br />This is the most complete reference, tutorial and guide towards Joomla 1.5 (and 1.6, at this time), and if you've never had the chance to read the first edition, well it will reveal a lot of secrets and obscure things. <br /><br />I don't believe any kind of development is possible on the Joomla platform without the guide of this book, excluding very basic components/modules you can write using online tutorials or using com_weblinks as a rail guide (who've never done it?)<br /><br />I'll warn you, this is an expert's guide, and being an expert's guide means that some things must be taken as granted, such as the knowledge of PHP4/5, Object Oriented Programming and many other topics involved in web development.<br /><br />If the first edition had a few parts that were considered mainly as a reference, the second edition has expanded a lot on this, giving it a smoothly feeling of tutorial and guide for many things. The Joomla API reference, nearly 90 pages, is now reorganized, and many more examples were added to the benefit of clarity.<br /><br />I think the book can't get any better, this is the definitive guide on Joomla development, waiting for a Nooku Framework Development book and obviously for a Joomla 1.6 updated version, which (when it will be released) will require some changes, but the majority of the concepts will be the same as in 1.5, so you won't trash the book in a few months, believe me.</p>]]></description>
			<pubDate>Fri, 27 Aug 2010 13:05:10 +0000</pubDate>
		</item>
		<item>
			<title>Cloud hosting using RackSpace Cloud</title>
			<link>http://joocode.com/blog/flavio-cloud-hosting-using-rackspace-cloud</link>
			<guid>http://joocode.com/blog/flavio-cloud-hosting-using-rackspace-cloud</guid>
			<description><![CDATA[<p>Up to now, the joocode.com website and blog has been hosted by <a href="http://www.dreamhost.com">Dreamhost</a>, an american hosting service.</p>
<p>3 years of happy hosting relationship with nice and fast support, very low downtime, and considering it was a shared plan, the performance was satisfaying.</p>
<p>Last month I decided to move all my web sites and apps to a new cloud hosting, <a href="http://www.rackspacecloud.com/cloud_hosting_products/servers">RackSpace Cloud</a>.</p>
<p>Cloud hosting means that the Linux box powering the joocode.com services is not physical, but virtual. There are a lot of servers run virtually on a computer grid, and the power that is gave to each server is configurable at runtime. If the users of my apps grow a little more, I give my servers a little more power, and that's it, the app will run faster. You can scale the power of each server in minutes, from 256MB RAM 10GB disk (10$ per month) to 16GB RAM 620GB disk (700$ per month), bandwidth excluded. For small to medium applications, this is ideal, considering you can add servers or power them off as you need them, manually or even <a href="http://www.rackspacecloud.com/cloud_hosting_products/servers/api">using a RESTful API</a>.</p>
<p>The power of this setup is impressive. Not only I can create as many Linux boxes as I wish, but I can save them, stop them, backup the entire system and start an instance of a particular box in minutes.</p>
<p>I had already tried this kind of environment working on Beyounic's <a href="http://www.ohanah.com">Ohanah.com</a>, an event management web application built using Joomla, <a href="http://www.nooku.org/framework.html">Nooku</a> and <a href="http://anahitapolis.com/">Anahita Social Engine</a>. We started considering cloud providers, such as Amazon EC2 and RackSpace, and moved this web application to RackSpace Cloud and we were very happy about that. The speed of this network is so impressive that even when working in the remote shell I always feel like I'm working on my local box. Also the interface is way more user-friendly than EC2, and their support is great.</p>
<p>BTW, one of the nice advantages of being in their cloud is that there are a  lot of very popular web applications run there, such as <a href="http://www.wufoo.com">Wufoo</a> and <a href="http://www.eventbrite.com"> Eventbrite</a>. If you're using for example the Wufoo's APIs (like we do on  Ohanah.com), it's quite like having the entire Wufoo system installed on  your box, as it runs really fast.</p>]]></description>
			<pubDate>Sat, 21 Aug 2010 09:07:42 +0000</pubDate>
		</item>
		<item>
			<title>Nooku Framework Video from JAB10</title>
			<link>http://joocode.com/blog/nooku-framework-video-from-jab10</link>
			<guid>http://joocode.com/blog/nooku-framework-video-from-jab10</guid>
			<description><![CDATA[<p>More and more people are getting interested in the Nooku Framework, a new brain for Joomla, as says Johan Janssens, its creator. Nooku Framework is a PHP frameworks that sits on top of Joomla and lets developers take advantage of it while developing extensions and services. Nooku changes the way developers write code, create reusable extensions and interact with data.</p>
<p>Joomla shifts from being a CMS to being a platform. Joomla is the platform where Nooku and the custom extensions are run.</p>
<p><a href="http://www.jandbeyond.org" style="color: #1b57b1; text-decoration: none; font-weight: normal;">J! and Beyond 2010</a> has been a great meetup for Joomla developers and enthusiasts, and here is a really great (and quite long!) video featuring Johan Janssens, Mathias Verraes and other Nooku Developers. Enjoy!</p>
<p><a href="http://blog.nooku.org/2010/07/nooku-extension-showcase-video/">http://blog.nooku.org/2010/07/nooku-extension-showcase-video/</a></p>]]></description>
			<pubDate>Tue, 10 Aug 2010 17:42:52 +0000</pubDate>
		</item>
		<item>
			<title>10 reasons why Joomla is a great platform for Web Applications</title>
			<link>http://joocode.com/blog/why-joomla-is-a-great-platform-for-web-applications</link>
			<guid>http://joocode.com/blog/why-joomla-is-a-great-platform-for-web-applications</guid>
			<description><![CDATA[<p>Joomla is one of the most successful and widely adopted Open Source projects in history.<br />For those who don't know it, it is a PHP application that you can install on a web browser and build a website.<br /><br />It's mainly considered as a Web Content Management System, due to its administrator interface that lets anyone with a minimal IT experience to build and maintain a website.<br /><br />This is why Joomla is so famous, it's because it's both easy and powerful.<br /><br />What most people don't know is that Joomla has a great Framework under its interface. The Framework is a set of PHP classes and methods on top of which the CMS was built.<br /><br />An advanced user could choose not to use the Joomla CMS, but use the Joomla Framework to build a web project without worrying about how the low level functions work. This improves both the speed of development, and the security of the application, since most of the filtering and security controls are done on a lower level, and the application developer doesn't have to worry about that.<br /><br />I strongly believe Joomla should be released also as a standalone Framework, not only as a CMS, because the Framework makes Joomla a perfect platform to build Web Applications. <br /><br />Let's see why.<br /><br /></p>
<h3>1. Nooku exists.</h3>
<p><br />Nooku is a PHP Framework developed and maintained by Mathias Verraes and Johan Janssens, founder of Joomla and lead developer of the Joomla 1.5 core.<br /><br />After shipping Joomla 1.5 Johan started to build work on a multilingual extension, called Nooku Content. He thought that most of the code could be reused if only the Joomla API was better, so he basically went on with his own work, building a set of libraries that take care of many things while building Joomla extensions, reducing code, time and overhead, making the famous principle DRY (Don't Repeat Yourself) a common practice. <br />These libraries have evolved (and are still evolving day-by-day) in a very powerful PHP 5 Framework built with great principles in mind, design patterns and Domain Driven Design, RESTful applications out-of-the box and so on. I'll write a specific article about that in the next days.<br /><br />So while you'll continue to use the Joomla 1.5 API for a lot of things, Nooku is something that will get you excited.<br /><br /></p>
<h3>2. Overall architecture</h3>
<p><br />The architecture of Joomla is really well thought. A typical single web page is composed by a central part, containing the main page content, surrounded by a number of widgets that provide additional content, such as the header, the footer, the sidebar.<br /><br />That's how Joomla is organized: the main content is provided by a component, surrounded by modules. A really natural approach. <br /><br />Each of those are obviously extendible. On another level we can find the plugins, that are pieces of code triggered on specific actions, that run and can modify the workflow of an application or simply add useful stuff.<br /><br /></p>
<h3>3. Menu system</h3>
<p><br />One of the greatest strengths of Joomla is the menu system. It is extremely well organized and thought. A website is not a collection of pages, but a structure of menus that are accessible from the user interface.<br />Each menu item can have lots of configuration options and define how the webapp works.<br /><br /></p>
<h3>4. User management system</h3>
<p><br />Nearly almost web app has to deal with users, as users are the people behind their computers and smartphones that use out app.<br /><br />Joomla provides the user login/logout system, session management, registration process and a user administration interface.<br /><br /></p>
<h3>5. Template architecture</h3>
<p><br />Each webapp needs a nice interface, isn't it true? The functionalities are great, but what about great functionalities and a great design? That's a superb webapp.<br />Joomla has an extraordinary marketplace for templates, so if you're not in the mood of designing your own, you can simply download a free template or buy a commercial one.<br /><br /></p>
<h3>6. Integrated multilingual capabilities</h3>
<p><br />Every web application is hopefully built to scale. If your app has 10 users, you certainly want them to be 100 by the end of the year, and so on. Growth is what everyone wants, so you'll probably reach the point where one of your users will require you an interface in his language, or you'll want to expand your market. <br />Joomla provides useful API to make multilingual sites out the box, with Nooku Content or another extension as a translation manager.<br /><br /></p>
<h3>7. Integrated Human-Readable (SEF) links</h3>
<p><br />One of the things that makes me recognize Joomla sites around the web is their URLs. You can find a lot of parameters and unreadable things in there.<br />Joomla provides an option to turn those links into beautiful human readable links, also favorite by the search engines and site owners as they contain keywords and can improve your ranking. This system works great with the menu system, and there's a nice system anyone can use to make their extensions work with this system, and it's a really quick and modular thing to do.<br /><br /></p>
<h3>8. Access Control</h3>
<p><br />Any website needs to assign to different users different permissions. Joomla 1.5 has an access control system that is quickly extendible using custom code, and Joomla 1.6, expected before the end of 2010, will also improve the management of the permissions from the administrator interface.<br /><br /></p>
<h3>8. Administrator interface</h3>
<p><br />Nearly every configuration option can be set from the administrator interface, and it's very quick and easy (considering the use of Nooku) to create an administration panel for an extension, so while the frontend of the website provides a lot of useful functionality to the app users, the backend shows you other tools to manage everything you need.<br /><br /></p>
<h3>9. An impressive number of open source extensions</h3>
<p><br />As a web application developer I know you'll often write your own extensions. Joomla has a great number of extensions you can play with, since it's pretty easy to write PHP code that runs with its framework. This means you'll often find code that's written poorly, or takes too much resources that the code you could write.<br /><br />Well, what's the problem? Just read the code and write your own version of an extension, since Joomla is Open Source and the GPL license requires its extensions to be GPL.<br /><br />The Nookusphere is also populated by very talented developers, and even though now there's only a relatively small number of extensions written with it, I think that in the near future we'll see great work coming from them.<br /><br /></p>
<h3>10. Caching</h3>
<p><br />If your web application gets past the first problem all web applications have (that is, being used by a lot of people so you can worry about other problems, like performance), integrated cache management is something you'll be grateful to have.</p>
<p> </p>
<p>Is there something more?</p>]]></description>
			<pubDate>Fri, 06 Aug 2010 09:52:02 +0000</pubDate>
		</item>
		<item>
			<title>A new life for an old blog</title>
			<link>http://joocode.com/blog/a-new-life-for-an-old-blog</link>
			<guid>http://joocode.com/blog/a-new-life-for-an-old-blog</guid>
			<description><![CDATA[<p>This is the first post of this blog, that has a <strong>previous life</strong> in two blogs, one <a href="http://blog.joocode.com">written in italian</a> and one, much less updated, <a href="http://blog.joocode.com/en">written in english</a>.</p>
<p>I decided to stop writing in the italian language, and write only in english from now on.</p>]]></description>
			<pubDate>Wed, 04 Aug 2010 16:13:52 +0000</pubDate>
		</item>
	</channel>
</rss>
