<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Greg's ramblings</title>
	<atom:link href="http://dev.magnolia-cms.com/~gjoseph/feed" rel="self" type="application/rss+xml" />
	<link>http://dev.magnolia-cms.com/~gjoseph</link>
	<description>about Magnolia and other stuff</description>
	<lastBuildDate>Mon, 14 Jun 2010 17:58:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Still looking for &#8220;the&#8221; perfect forum software</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/still-looking-for-the-perfect-forum-software</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/still-looking-for-the-perfect-forum-software#comments</comments>
		<pubDate>Mon, 14 Jun 2010 17:58:31 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dev.magnolia-cms.com/~gjoseph/?p=97</guid>
		<description><![CDATA[Since a couple of weeks, I&#8217;ve been looking, on-and-off, for &#8220;the&#8221; perfect forum software. The Magnolia community needs a (new, better) platform. At the moment, we&#8217;re relying on a wiki (good for draft documents, not so much for discussions), an issue tracker (again, good for tracking bugs and work progress, not so much for discussions), [...]]]></description>
			<content:encoded><![CDATA[<p>Since a couple of weeks, I&#8217;ve been looking, on-and-off, for &#8220;the&#8221; perfect forum software. The Magnolia community needs a (new, better) platform. At the moment, we&#8217;re relying on a wiki (good for draft documents, not so much for discussions), an issue tracker (again, good for tracking bugs and work progress, not so much for discussions), and a mailing-list; we have two mailing-lists: the developers mailing list, which is flooded with notification traffic, and the users list, which is gaining some traffic since the last few months. That extra traffic is a good thing (more users, more interest, more help and more feedback!) but can also drive some people away. (they&#8217;re not necessarily interested in getting emails from the Magnolia community all the time)</p>
<p><span id="more-97"></span>What I&#8217;d like to achieve is a combination of the following:</p>
<ul>
<li>provide a better platform for users and developers alike: discussing new features and getting help should be simpler, more effective, and more rewarding.</li>
<li>drive the &#8220;notification&#8221; type of traffic away from email (to RSS, for example); one can &#8220;subscribe&#8221; to the issues or filters they&#8217;re interested in. The archival of these emails provides no value, since the issue tracker itself is indexed.</li>
</ul>
<p>Forums were all the rage a few years ago, and I&#8217;m suspecting that&#8217;s the reason there is so much forum software out there, and most of it seems incomplete, unfinished, when not abandoned altogether. On the other hand, other types of platforms have emerged, which are also very interesting for this type of application: think Reddit, StackOverflow, &#8230; &#8220;Clones&#8221; of these websites exist, and provide many of the desired functionality, but lack support for &#8220;discussions&#8221;; they seem much more adapted to question/answers.</p>
<p>Most of the software I tried out have their advantages, but so far, I haven&#8217;t found one that completely convinced me; this post is really a bootle-in-the-sea, hoping someone catches it and offers some insight.</p>
<p>Here are a few of the features I&#8217;m looking for:</p>
<ul>
<li>threads should be markable as &#8220;questions&#8221;. The original poster should be able to mark his question as &#8220;answered&#8221;. This would help in making sure everyone gets the help they deserve, and give a chance to everyone to help others.</li>
<li>karma: frequent users, good answers, etc. should be rewarded/rewardable.</li>
<li>likewise, interesting threads should be rated.</li>
<li>rss feeds. (new threads, new messages in threads, &#8220;hot topics&#8221;, etc.)</li>
<li>decent layout, should be simple enough to customize.</li>
<li>nice URLs: eg. http://forum.magnolia-cms.com/about-this-or-that : not only is this URLs legible, it&#8217;s also better for indexing, and helps with cross-linking: it&#8217;s very likely that such discussions will end up being referenced in the wiki or the issue tracked, and vice-versa-)</li>
<li>login/registration: having everyone create yet another account would annoy me: the ability to use either OpenID (including compatibility with Google accounts et al, which is apparently not always a given), or an existing user database (i.e reuse Jira accounts) would be good; additionally, LDAP connectivity would be good for our &#8220;internal&#8221; users.</li>
</ul>
<p>So far, I&#8217;m favoring bbPress. It&#8217;s the simplest, most effective, and actually working, of those I tried. Simple Machines Forum seems to be recommended a lot; the default theme isn&#8217;t too bad, but has anyone seen any other decent theme? It also has boatloads of plugins, and it&#8217;s hard to find out which ones actually work. FluxBB also looks promising in its cleanliness and simplicity, but lacks most features mentioned above (unless there are plugins hosted elsewhere). JForum seems pretty much dead (?), and Jive&#8217;s SBS is unfortunately unaffordable.</p>
<p>Ultimately, I&#8217;d love to be able to use our own forum module of course, but it lacks many of the above, and we&#8217;re short on resources to develop this at the moment; we&#8217;re focusing on 5.0 first !</p>
<p>What do you think ? Do we need any of this ? Do we need more, less, all of the above ? I&#8217;d like to avoid using several new tools, but perhaps that&#8217;s the way to go ? Did I miss an obvious contender ?</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/still-looking-for-the-perfect-forum-software/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Paving the way for 5.0 &#8211; new, refreshed, authoring tags for templates</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/new-authoring-tags</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/new-authoring-tags#comments</comments>
		<pubDate>Fri, 19 Feb 2010 17:47:43 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[magnolia templating]]></category>

		<guid isPermaLink="false">http://dev.magnolia-cms.com/~gjoseph/?p=76</guid>
		<description><![CDATA[Update (2010-03-30): I finally revamped the &#8220;concept&#8221; page on the wiki, and it should now be up-to-date (more than this post), and provide some more insight on what&#8217;s next. If you&#8217;ve been doing any templating with Magnolia, you probably know our tag library (the bits with &#60;cms:). Some of these &#8220;tags&#8221; are responsible for rendering [...]]]></description>
			<content:encoded><![CDATA[<p><em>Update (2010-03-30)</em>: I finally revamped <a href="http://wiki.magnolia-cms.com/display/DEV/Concept+taglib+cleanup%2C+extraction%2C+rewrite">the &#8220;concept&#8221; page on the wiki</a>, and it should now be up-to-date (more than this post), and provide some more insight on what&#8217;s next.</p>
<p>If you&#8217;ve been doing any templating with Magnolia, you probably know our <a href="http://dev.magnolia-cms.com/ref/latest/magnolia-taglib-cms/tagreference.html#taglib.tld">tag library</a> (the bits with <tt>&lt;cms:</tt>). Some of these &#8220;tags&#8221; are responsible for rendering the &#8220;green bars&#8221; on your Magnolia pages.</p>
<p>This tag library been around since pre-3.0 times, and somehow has not evolved much since. Over the years, and especially the last, many concepts have been introduced in Magnolia which make large parts of this tag library irrelevant, and too complex, both to maintain and use. Content inheritance and i18n, for instance, are now supported at much higher levels in Magnolia.</p>
<p>Built-in support for different templating languages is also something we&#8217;ve introduced a while ago, and have been improving since 4.0; so far, we&#8217;ve been lucky that FreeMarker has support for tag libraries (and that contributors have helped improved, too!), but supporting other templating engines has always been a burden with regards to the tag library. Porting it to different languages is something we&#8217;ve always put off.</p>
<p>Since Magnolia 4.0, template scripts also have access to <a href="http://documentation.magnolia-cms.com/reference/templating.html#Templatingsupportobjects">a bunch of objects</a>, which make, again, parts of the tag library obsolete.</p>
<p>So, all this, to introduce yet another new feature of Magnolia 4.3. Not one that will make me the most popular kid on the block, but one I&#8217;m hoping users, templaters especially, will embrace nonetheless.</p>
<p><span id="more-76"></span></p>
<p>Instead of trying to (keep on) patch up the existing tag library, we decided to go ahead and introduce a cleaner, leaner, simpler set of components. We also decided to separate the taglib implementation from the actual ui component rendering. In our eyes, this has several advantages:</p>
<ul>
<li>it should be close to trivial to <strong>integrate with other templating engines</strong>. For an example of how we&#8217;ve done it for FreeMarker and JSP, see the <tt>info.magnolia.templatinguicomponents.freemarker</tt> and <tt>info.magnolia.templatinguicomponents.jsp</tt> packages.</li>
<li>it is more <strong>testable</strong>. Most of the functionality lies in the <tt>AuthoringUiComponent</tt> implementations, which have no connection whatsoever to the templating engine, i.e all that&#8217;s needed to test them is a few Magnolia components (The <tt>AggregationState</tt> for instance) and an output.</li>
<li>it is more <strong>maintainable</strong>. We&#8217;ve analyzed the current tag library, and kept things to a bare minimum; we&#8217;re looking ahead of us, and thinking about maintaining 100% compatibility with these new components for Magnolia 5.0. The components currently provide a thin layer around existing <tt>magnolia-gui</tt> components, with &#8220;good defaults&#8221;. That layer will probably go away or change drastically with Magnolia 5.0, so we&#8217;re striving to keep as clean as possible; no random setting of parameters and attributes until things work; we&#8217;re trying to avoid some of the magic that&#8217;s in the tag library code, and carefully deconstruct and document the current code, in the hope to allow a seamless migration in the future.</li>
<li>it should be fairly simple to introduce new or <strong>custom</strong> ui components. If your specific project needs different or more such components, we&#8217;re hoping your weapon of choice will be this new API.</li>
<li>they provide <strong>sensible defaults</strong>, with less options. Many features or options are not necessary anymore and are really there for historical reasons (think the various <tt>nodeCollectionName</tt> and associated attributes of the current tag library). See some examples below. Other &#8220;features&#8221; have been consciously removed; for example, you can&#8217;t add buttons in the bar tags, and specify their position. This is the kind of thing that we will probably re-implement once we clearer vision of how this would be working with the 5.0 gui. The positioning of such buttons, for instance, should typically be solved with CSS.</li>
<li>lastly, they are <strong>paving the way for 5.0</strong>. By introducing these new components, we&#8217;re hoping for a simpler, more transparent upgrade to the future Magnolia 5.0. Surely, they&#8217;ll evolve more, but we have been, and will be, working hard on making sure the differences will be as minor as possible. The current (now &#8220;old&#8221; <img src='http://dev.magnolia-cms.com/~gjoseph/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) tag library will hopefully still be supported, but more drastic changes to templates might be required when migrating to 5.0.</li>
</ul>
<p>Before you go and start using those, a note of warning, and a call for help: at the time of writing, the latest implementation is available in Magnolia 4.3 Milestone 2. If you look at the code, you&#8217;ll see a lot of TODOs;) We&#8217;re hoping to get something more finalized for the next milestone, of course. But we&#8217;ll need your feedback.</p>
<p>We&#8217;ve tried to cover the &#8220;basic&#8221; use cases. There are certainly regular use cases we&#8217;ve overlooked, and some less regular ones too. For both cases, please voice your opinion here or on the users&#8217; list! We&#8217;re hoping to gather enough feedback to 1) cover more of the common use cases, 2) provide or document ways to cover specific and exotic use cases.</p>
<p>Ok, enough rambling, here are a couple of usage samples. These are written with the FreeMarker syntax, and make use of the aforementioned templating support objects, I&#8217;ll assume you&#8217;re familiar with those.<br />
<code><br />
&lt;!-- a "main bar" using the default label for the dialog defined as the "dialog" property of the current template definition --><br />
&lt;@ui.main dialog=def.dialog /&gt;</p>
<p>&lt;!-- a "main bar" using "Page Info" as its label for the dialog defined as the "dialog" property of the current template definition --><br />
&lt;@ui.main editLabel="Page Info" dialog=def.dialog /&gt;</p>
<p>&lt;!-- a "new bar" which will insert a new paragraph under the "main" subnode of the current page ("content"), allowing the "textImage", "quote" and "teaser" paragraphs --><br />
&lt;@ui.new target=content.main paragraphs=['textImage', 'quote', 'teaser'] /&gt;</p>
<p>&lt;!-- the same, with a single paragraph; no need to explicitly pass an array --><br />
&lt;@ui.new target=content.main paragraphs='textImage' /&gt;</p>
<p>&lt;!-- a "new bar" similar to the above but which will get the list of paragraphs from a utility class, such as, in this case, STKUtil's getAllowedParagraphs method, which takes an Area definition --><br />
&lt;@ui.new target=content.main paragraphs=stk.getAllowedParagraphs(def.mainArea) /&gt;</p>
<p>&lt;!-- an "edit bar" - the simplest possible: edits the current node (deduced from AggregationState, which is updated by the template and paragraph renderers); the dialog to use is deduced from the same node, and the label is the default "buttons.edit", i18n'd. --><br />
&lt;@ui.edit /&gt;</p>
<p>&lt;!-- an "edit bar" for the current node, but using an explicit dialog, with a custom label --><br />
&lt;@ui.edit dialog='extraDialog' editLabel='Edit extra properties' /&gt;</p>
<p>&lt;!-- an "edit bar" with a custom label, and with the move and delete buttons disabled --><br />
&lt;@ui.edit editLabel='edit my paragraph' move=false delete=false /&gt;</p>
<p>&lt;!-- an "edit bar" to edit a different node than the current one. --><br />
&lt;@ui.edit target=content.links /&gt;</p>
<p>&lt;!-- an "edit bar" to edit a different node than the current one, with a specific dialog (if different than the one deduced from the "target" node --><br />
&lt;@ui.edit target=content.links dialog='extraLinksDialog' /&gt;<br />
</code><br />
For JSP equivalents, replace <tt>&lt;@ui.</tt> with <tt>&lt;ui:</tt>, and use quotes/EL expressions as appropriate, or have a look at our <a href="http://svn.magnolia-cms.com/svn/community/bundle/trunk/magnolia-integration-tests/magnolia-integration-tests-module/src/main/resources/mgnl-files/templates/test/">integration tests</a>. (yes, I&#8217;m writing this <em>before</em> committing these tests, but watch this space for news)</p>
<p>A few things that still need to be sorted out:</p>
<ul>
<li>i18n is, or should be, assumed for all text properties: any label can be an i18n key. The i18n basename should be appropriately deduced; it&#8217;s not clear at the time of writing how. (The current template or paragraph definition, probably, but that&#8217;s no so clear for &#8220;new bars&#8221;, since there&#8217;s no current paragraph.)</li>
<li>the wrapper JSP taglib is incomplete in 4.3 M2.</li>
<li>various TODOs (mostly clarifying things up)</li>
<li>we&#8217;re thinking about deprecating/replacing a few more tags, such as <tt>&lt;cms:includeTemplate</tt>, which also has add equivalents since a while, in the form of the <tt>render*</tt> methods of <a href="http://dev.magnolia-cms.com/ref/latest/apidocs/info/magnolia/module/templating/MagnoliaTemplatingUtilities.html"> MagnoliaTemplatingUtilities</a>, which is one the templating support objects.</li>
<li><strong>your feedback !</strong></li>
</ul>
<p>Hoping to hear from you soon !</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/new-authoring-tags/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Magnolia &amp; Groovy</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/magnolia-groovy</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/magnolia-groovy#comments</comments>
		<pubDate>Thu, 18 Feb 2010 23:14:27 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[4.3]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[magnolia]]></category>

		<guid isPermaLink="false">http://dev.magnolia-cms.com/~gjoseph/?p=79</guid>
		<description><![CDATA[Oh, the bad puns one could make in the title of such an article. Two weeks ago, we released the first milestone of Magnolia 4.3. Amongst other things (see my team mates&#8217; blogs in the side bar!), we introduced Groovy support. It&#8217;s something that&#8217;s been done before (most notably by the folks at openmindLAB with [...]]]></description>
			<content:encoded><![CDATA[<p>Oh, the bad puns one could make in the title of such an article.</p>
<p>Two weeks ago, we released the first milestone of Magnolia 4.3. Amongst other things (see my team mates&#8217; blogs in the side bar!), we introduced Groovy support. It&#8217;s something that&#8217;s been done before (most notably by the folks at <a href="http://www.openmindlab.com/">openmindLAB</a> with their <a href="http://www.openmindlab.com/lab/products/groovy.html">Groovy shell module</a>), but we wanted to take things a few steps further.</p>
<p>I recorded this video (my first attempt at doing so &#8211; an experiment, really. Be forgiving) to try and show the basic features.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube-nocookie.com/v/OTdAYS7hwfE&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/OTdAYS7hwfE&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>Now that the 2nd milestone for Magnolia 4.3 has been released, there&#8217;s <strong>more</strong>. Scripts are storable and editable in the repository, amongst other things! Edit your templates, your models (scripts), all from within the browser (or WebDAV), and publish it all, without manipulating jar files. Woohoo.</p>
<p>This new module is available with the <a href="https://sourceforge.net/projects/magnolia/files/">Community Edition bundle</a> (see the <tt>/add-ons</tt> folder). The sources are in the <a href="http://svn.magnolia-cms.com/svn/community/modules/magnolia-module-groovy/">/community/modules</a> section of our Subversion repository, and it&#8217;s also <a href="http://repo.magnolia-cms.com/m2/info/magnolia/magnolia-module-groovy/">available</a> in our public Maven repository. Discuss it on our mailing lists, and report any issue you might have on our <a href="http://jira.magnolia-cms.com/browse/MGNLGROOVY">issue tracker</a> (patches welcome as always). But most importantly&#8230; ENJOY ! <insert random pun about "groove" here></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/magnolia-groovy/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Going agile, one burndown chart at a time</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/going-agile-one-burndown-chart-at-a-time</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/going-agile-one-burndown-chart-at-a-time#comments</comments>
		<pubDate>Fri, 29 Jan 2010 21:30:27 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dev.magnolia-cms.com/~gjoseph/?p=67</guid>
		<description><![CDATA[It&#8217;s been a while now (since I&#8217;ve posted here, yes, but that isn&#8217;t my point) that we&#8217;re undertaking agilizing our development practices at Magnolia. (yes, I make up words. It&#8217;s friday.) Every now and then, we&#8217;ll try something new. It&#8217;s always a challenge, since we can&#8217;t even do stand-up meetings (given that 25% of our [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while now (since I&#8217;ve posted here, yes, but that isn&#8217;t my point) that we&#8217;re undertaking agilizing our development practices at Magnolia. (yes, I make up words. It&#8217;s friday.) Every now and then, we&#8217;ll try something new. It&#8217;s always a challenge, since we can&#8217;t even do stand-up meetings (given that 25% of our small team is in another corner of Europe). One of the latest things we&#8217;ve started using is&#8230; a webcam; so that we can actually use a whiteboard, for instance, and have it visible by the whole team. It&#8217;s one of those fancy gadgets which you can rotate and zoom remotely. The little noise it makes when it turns its head towards you is a little creepy. And I&#8217;m not sure I&#8217;m ready to share these images with the world just yet. Which is a good thing, because that wasn&#8217;t the point of this article, at all.</p>
<p>Another thing we&#8217;ve also started using and sharing recently are mind maps. We need to track work items and their progress in our <a href="http://en.wikipedia.org/wiki/Scrum">Scrum</a> sprints, and we&#8217;ve realized it works much better for us than the whiteboard/cork board (remoteness problems), or the g&#8211;gle spreadsheet we&#8217;ve also been using until recently. But we&#8217;ve also realized it was a pain in the rear to get burndown charts out of that without manually counting items &#8211; which inevitably led to outdated charts.</p>
<p>We&#8217;ve been using <a href="http://mind42.com">mind42.com</a> over the last month or so, and it&#8217;s worked pretty well, even when editing the map concurrently. We use some of its icons for each of the map items, particularly the &#8220;progress&#8221; icons, which we use on what would otherwise be story-items; a simple click on the icon increases the progress from 0 to 100% in 25% steps. And those burndown charts ? Ah, well. There&#8217;s an export-to-xml function on that thing. So, enter some http headers snooping, curl magic, regular expression fairies, python pixie dust, jquery hoodoo, and voilà !</p>
<p><a href="http://dev.magnolia-cms.com/burndown/">http://dev.magnolia-cms.com/burndown/</a></p>
<p>For the curious amongst you (it&#8217;s fairly frustrating to talk to a completely impersonal and possibly absent &#8220;you&#8221;), here are some more details:</p>
<ul>
<li>It&#8217;s all just one python script that fetches the exported xml (I lied above, I switched back to liburl once I realize I couldn&#8217;t install the correct version of pycurl on our server), does some regex magic to pick the interesting info out of the xml (absolutely no need to parse it), stores timestamped data everytime it&#8217;s executed, does some not-so-fancy calculations and generates the html page you&#8217;ve seen, based a on simple template. (gotta love the <code>%(foobar)s</code>)</li>
<li>This script is executed by Hudson every 12 hours, once during the night, once just before our scrum meeting, so that we don&#8217;t have to worry about updating any charts anymore, nor use our fingers to count the &#8220;done&#8221; items. Wooh.</li>
<li>I haven&#8217;t done any Javascript wizardry myself, really. All props for the chart are due to the awesome <a href="http://code.google.com/p/flot/">flot</a> library. It&#8217;s much more powerful than what we use it for, so if you need charts on your webpages, give it a go! The only downside I&#8217;d see to it is that it probably doesn&#8217;t degrade very nicely, since the data is in a Javascript array. Some time in the past I saw another charting library that would use data from a &lt;table&gt; element, such that is you didn&#8217;t have the necessarily modern browser, you&#8217;d still see the data. Granted, you could probably fetch that data from a &lt;table&gt; using jQuery, too !</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/going-agile-one-burndown-chart-at-a-time/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Build updates</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/build-updates</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/build-updates#comments</comments>
		<pubDate>Tue, 02 Jun 2009 21:45:36 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dev.magnolia-cms.com/~gjoseph/?p=64</guid>
		<description><![CDATA[A recent release of our parent poms, v9, introduces the following changes and improvements: * Maven 2.0.10 : we now require Maven 2.0.10 to build Magnolia, through the enforcer plugin. Eclipse and IDEA users, rejoice, however, because we&#8217;ve made the configuration laxer: regular Maven invocations will require Maven 2.0.10 or a more recent version (which [...]]]></description>
			<content:encoded><![CDATA[<p>A recent release of our parent poms, v9, introduces the following changes and improvements:</p>
<p>* Maven 2.0.10 : we now require Maven 2.0.10 to build Magnolia, through the enforcer plugin. Eclipse and IDEA users, rejoice, however, because we&#8217;ve made the configuration laxer: regular Maven invocations will require Maven 2.0.10 or a more recent version (which includes Maven 2.1 which Eclipse and IDEA use internally); only when performing a release will the enforcer plugin strictly require Maven 2.0.10.</p>
<p>* If you&#8217;ve had Clover license issues recently while attempting to build/release Magnolia, a module or project, rejoice. You now have two options:<br />
1) live with the evaluation license that&#8217;s bundled in the Clover Maven plugin itself &#8211; this should work for a little while now, as I&#8217;ve just updated the pom to use the latest version of Clover.</p>
<p>2) use your own license: the parent pom configures the plugin so that it uses a cloverLicenseLocation property. You can, for instance, define it in your ~/.m2/settings.xml file, using a profile, such as :<br />
 &lt;profiles&gt;<br />
   &lt;profile&gt;<br />
     &lt;id&gt;my-default-profile&lt;/id&gt;<br />
     &lt;activation&gt;<br />
       &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;<br />
     &lt;/activation&gt;<br />
     &lt;properties&gt;<br />
       &lt;cloverLicenseLocation&gt;${user.home}/.m2/clover.license&lt;/cloverLicenseLocation&gt;<br />
     &lt;/properties&gt;<br />
[...]<br />
Provided that your license key is indeed in ~/.m2/clover.license</p>
<p>If the property isn&#8217;t defined in your settings.xml file, the plugin will fall back to the evaluation license. On the other hand, you&#8217;ll get an explicit error message if you define the property but make it point to an non-existent or invalid file.</p>
<p>Next step will be to provide a valid license for our open-source projects.</p>
<p>* We now keep track of the parent pom changes in Jira: see http://jira.magnolia-cms.com/browse/BUILD</p>
<p>* Magnolia 4.1 will require Java 1.5, but some modules might still be happy with 1.4, or might want to go ahead and use 1.6: we&#8217;ve introduced a ${javaVersion} property. If you want to build your project/module against 1.5, simply add a &lt;javaVersion&gt;1.5&lt;/javaVersion&gt; property. The default is still 1.4, so that all modules can update to the new version of the parent pom without breaking compatibility. The main Magnolia project and some modules have this set to 1.5 now. Ideally, we won&#8217;t update this property to 1.5 for modules that don&#8217;t depend on Magnolia 4.1 yet.</p>
<p>* Projects and modules using the info.magnolia:magnolia-parent-pom-enterprise parent pom will now be deployed to <a href="http://repo.magnolia-cms.com/enterprise/">http://repo.magnolia-cms.com/enterprise/</a>. The transition is insured as all relevant other parent poms (-internal and -project) now have both the new /enterprise repo and the old /restricted repo (which shouldn&#8217;t be used anymore &#8211; contact me if doubts about this)</p>
<p>One final remark: there are still people out there who extend info.magnolia:magnolia-project in their own project. Don&#8217;t ! There is no good reason to do so. Likewise, if your project or module is not meant to be hosted here, there&#8217;s probably no good reason to use our parent poms (although if you do, please contact me or send a mail to the users list, I&#8217;d like to hear about it). What you want to do is probably build a project that *depends* on Magnolia. If you&#8217;re building a webapp with Maven (&lt;packaging&gt;war&lt;/packaging&gt;), here&#8217;s an (outdated) example of how to do it: <a href="http://svn.magnolia-cms.com/view/community/modules/magnolia-webapp-documentation/trunk/pom.xml?revision=19481&amp;view=markup">http://svn.magnolia-cms.com/view/community/modules/magnolia-webapp-documentation/trunk/pom.xml?revision=19481&amp;view=markup</a> If you are buliding a module, just have a look at any of the up-to-date modules under <a href="http://svn.magnolia-cms.com/view/community/modules">http://svn.magnolia-cms.com/view/community/modules</a></p>
<p> </p>
<p>Until next time,</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/build-updates/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Winstoned !</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/winstoned</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/winstoned#comments</comments>
		<pubDate>Tue, 23 Dec 2008 01:41:40 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[build]]></category>

		<guid isPermaLink="false">http://dev.magnolia-cms.com/~gjoseph/?p=60</guid>
		<description><![CDATA[I&#8217;m happy to report that Magnolia seemingly works in Winstone ! With this simple command, it just worked (using the webapps of our latest 4.0 Milestone 2, as deployed in our current standard Tomcat-based bundle) java -jar winstone-0.9.10.jar --useJasper --webappsDir=/Applications/MagnoliaEnterpriseEdition/apache-tomcat-5.5.27/webapps/ All that was needed is to have the following in a lib folder: ./lib ./lib/commons-logging-api-1.1.1.jar [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to report that Magnolia seemingly works in <a href="http://winstone.sourceforge.net/">Winstone</a> !</p>
<p>With this simple command, it just worked (using the webapps of our latest 4.0 Milestone 2, as deployed in our current standard Tomcat-based bundle)</p>
<p><code>java -jar winstone-0.9.10.jar --useJasper --webappsDir=/Applications/MagnoliaEnterpriseEdition/apache-tomcat-5.5.27/webapps/</code></p>
<p>All that was needed is to have the following in a lib folder:<br />
<code>./lib<br />
./lib/commons-logging-api-1.1.1.jar<br />
./lib/jasper-compiler-jdt.jar<br />
./lib/jasper-compiler.jar<br />
./lib/jasper-runtime.jar<br />
./lib/jsp-api.jar<br />
</code><br />
(which sadly adds 1.9mb to Winstone&#8217;s meager 300k)</p>
<p>A warning about tools.jar not being found can be safely ignored on OSX, at least if you have the developer tools installed.</p>
<p>Two worries left: 1) the JAAS configuration. I&#8217;m not sure if it&#8217;s handled properly. Magnolia itself needs improvement in this area anyway. 2) Performance. The performance in AdminCentral seems okayish, but browsing the demo site is utterly slow. It seems as slow as when Tomcat compiles JSPs&#8230; however there are no JSPs in these pages! Taglibs are used in FreeMarker templates, but we got rid of performance issues in that area ages ago, at least with Tomcat&#8230;</p>
<p>What&#8217;s next ? I&#8217;d love to see a clickable embedded version of Magnolia. With, say, a minimal Swing GUI or a CLI which would ask me what port I want to start it on, if I want to run an author or public instance, and if applicable, where the associated public instance is.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/winstoned/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Growing and shrinking</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/growing-and-shrinking</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/growing-and-shrinking#comments</comments>
		<pubDate>Wed, 10 Dec 2008 14:36:40 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[templating]]></category>

		<guid isPermaLink="false">http://dev.magnolia-cms.com/~gjoseph/?p=53</guid>
		<description><![CDATA[Two exciting things happening at once ! One, we&#8217;re finally getting rid of a bunch of old &#8220;stuff&#8221; in Magnolia&#8217;s main codebase. A very welcome diet, as some of that code has been lying around unused or deprecated for two years or more. It&#8217;s also a relief to see that this will incidentally increase our code coverage [...]]]></description>
			<content:encoded><![CDATA[<p>Two exciting things happening at once !</p>
<p>One, we&#8217;re finally getting rid of a bunch of old &#8220;stuff&#8221; in Magnolia&#8217;s main codebase. A very welcome diet, as some of that code has been lying around unused or deprecated for two years or more. It&#8217;s also a relief to see that this will incidentally increase our code coverage and/or help making some classes a little more testable. There&#8217;s still a long way to go in that area though !</p>
<p>Second, we&#8217;re moving a bunch of modules, which have been nurtured internally, to the community space. Watch out for</p>
<ul>
<li>In place templating &#8211; yes! You&#8217;ll be able to edit (Freemarker) templates directly from inside Magnolia ! Support for JSP isn&#8217;t impossible, but involved some much hassle (JSPs have to be on the file system) that we decided to leave that as an exercise for the reader. I&#8217;m pretty convinced everyone will love the Freemarker support we&#8217;ve introduced though. It takes a bit getting used to, but once you get the hang of it, it&#8217;s so much cleaner than JSP&#8230; &lt;insert bad-taste pun about never coming back&gt;.</li>
<li>Resources &#8211; a simple module that allows one to handle web resources in a separate workspace and within Magnolia. CSS is currently supported, we&#8217;re hoping to add support for Javascript and images soonish, making this a one-stop shop for all your layout/design resources.</li>
<li>Form &#8211; build simple forms within Magnolia, and process them. Elegant css-based layout for your forms, a simple API for processing the results.</li>
<li>Webdav support &#8211; still experimental, but we&#8217;re hoping to get this to work for DMS, templates, and so on.</li>
</ul>
<div>Care to help out ?</div>
<div></div>
<div>Some more info:</div>
<div>
<div>  http://wiki.magnolia-cms.com/display/DEV/Roadmap+4.0</div>
<div>  http://wiki.magnolia-cms.com/display/DEV/Concepts</div>
<div></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/growing-and-shrinking/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE6 on OSX</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/ie6-on-osx</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/ie6-on-osx#comments</comments>
		<pubDate>Wed, 22 Oct 2008 17:45:54 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://dev.magnolia-cms.com/~gjoseph/?p=50</guid>
		<description><![CDATA[Yes, some people still have to go through the pain of using Internet Explorer &#8230; 6. Tonight, that&#8217;s me. After loosing (too much) time getting a virtual machine or a remote desktop to a windows machine, and then on said machine getting an IE6 to actually work (Multiple_IE never really worked for me, and Microsoft&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, some people still have to go through the pain of using Internet Explorer &#8230; 6. Tonight, that&#8217;s me. After loosing (too much) time getting a virtual machine or a remote desktop to a windows machine, and then on said machine getting an IE6 to actually work (Multiple_IE never really worked for me, and Microsoft&#8217;s 400mb of disk image for doing the same with a single version of IE is still downloading&#8230;), I stumbled accross Darwine (Wine for OSX) and &#8230; yes, IEs4osx.</p>
<p>So, without further ado, if you have to suffer, but are no masochist, it&#8217;s a simple as that: <a href="http://www.kronenberg.org/ies4osx/">http://www.kronenberg.org/ies4osx/</a> !</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/ie6-on-osx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codepress for Magnolia ?</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/codepress-for-magnolia</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/codepress-for-magnolia#comments</comments>
		<pubDate>Tue, 07 Oct 2008 19:09:46 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[templating]]></category>

		<guid isPermaLink="false">http://dev.magnolia.info/~gjoseph/?p=41</guid>
		<description><![CDATA[I was looking for a simple way to get line numbers in html textareas &#8211; amongst other things to edit css, javascript and templates from within Magnolia, making my whole layout activatable/versionable ! &#8211; and I just stumbled upon Codepress ! Man, that thing is sweet ! (if you use Firefox, that is) Unfortunately, their [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking for a simple way to get line numbers in html textareas &#8211; amongst other things to edit css, javascript and templates from within Magnolia, making my whole layout activatable/versionable ! &#8211; and I just stumbled upon <a href="http://maemo.org/midcom-static/midcom.helper.datamanager2/codepress/">Codepress</a> ! Man, that thing is sweet ! (if you use Firefox, that is)</p>
<p>Unfortunately, their main site (<a href="http://codepress.org">codepress.org</a>) seems down at the moment, and the<a href="http://209.85.135.104/search?q=cache:q8WXrNp8JYAJ:codepress.org/changelog.php+site:codepress.org+to-do&amp;hl=en&amp;ct=clnk&amp;cd=3&amp;client=safari"> Google-cached changelog page</a> seems to tell me there&#8217;s been no release since a year. Does anybody what the real status is and/or is there&#8217;s any alternative ?</p>
<p><em>Quick update</em> &#8211; this is available since Magnolia 4.2, thanks to Federico ! See http://documentation.magnolia-cms.com/reference/dialogs/controls.html#CodeEditorControl for details.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/codepress-for-magnolia/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>News from Bob !</title>
		<link>http://dev.magnolia-cms.com/~gjoseph/news-from-bob</link>
		<comments>http://dev.magnolia-cms.com/~gjoseph/news-from-bob#comments</comments>
		<pubDate>Thu, 04 Sep 2008 15:33:25 +0000</pubDate>
		<dc:creator>Grégory Joseph</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[build]]></category>

		<guid isPermaLink="false">http://dev.magnolia.info/~gjoseph/?p=20</guid>
		<description><![CDATA[There has been some definitive construction work undergoing at Magnolia in the last few days, and this is what this post is all about: changes and improvements in our builds ! (Bob the Builder, geddit?) It all started with a long standing need to restructure our Subversion repository, along with a desire to improve our [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-thumbnail wp-image-45" title="bob-the-builder" src="http://dev.magnolia-cms.com/~gjoseph/wp-content/uploads/2008/10/bob-the-builder.jpg" alt="" width="115" height="150" />There has been some definitive construction work undergoing at Magnolia in the last few days, and this is what this post is all about: changes and improvements in our builds ! (Bob the Builder, geddit?)</p>
<p>It all started with a long standing need to restructure our Subversion repository, along with a desire to improve our Maven pom files. Both tasks were a bit daunting at first, but at some point, after long egg and chicken debates, it just became too itchy and I got started.<span id="more-20"></span></p>
<ul>
<li>The Subversion repository structure has been completely overhauled. It&#8217;s now much easier to navigate AND to maintain. It is even <a href="http://wiki.magnolia.info/display/DEV/Svn+structure">documented</a> !</li>
<li>Checkout helper scripts have been unified and overhauled. Check &#8216;em ! Documentation above.</li>
<li><a href="http://dev.magnolia-cms.com/~gjoseph/wp-content/uploads/2008/10/poms.png"><img class="alignnone size-thumbnail wp-image-46" title="poms" src="http://dev.magnolia-cms.com/~gjoseph/wp-content/uploads/2008/10/poms.png" alt="" width="150" height="67" /></a>Pom files have been overhauled too. Here&#8217;s a quick diagram of their structure.<a href="http://dev.magnolia.info/~gjoseph/wp-content/uploads/2008/09/poms.png"></a></li>
<li>All poms inherit from a common parent which define a bunch of generic properties, plugins, and dependencies. Everything can be overridden, but it provides a stable basis.</li>
<li>The lower level of parent poms (<tt>magnolia-parent-pom-community-module</tt> and so on) share a common site descriptor and skin (provided by <tt> magnolia-parent-pom-abstract</tt>) and provide the specific repositories and deployment locations.</li>
<li>Thanks to the above, projects extending these poms now deploy their artifacts and sites in different locations without any hassle.</li>
<li>Javadoc is now generated in <strong>both</strong> aggregated and non-aggregated forms ! This means that on the <a href="http://dev.magnolia.info/ref/3.6.2-SNAPSHOT/">main Maven generated website</a>, you can find <a href="http://dev.magnolia.info/ref/3.6.2-SNAPSHOT/apidocs/">aggregated</a> Javadoc (includes Javadoc for all sub-modules) and <a href="http://dev.magnolia.info/ref/3.6.2-SNAPSHOT/magnolia-core/apidocs/">non-aggregated</a> Javadoc (Javadoc for a single module)</li>
<li>All our projects now include a Clover report. (Which hopefully will become greener!)</li>
<li>Archetypes for easily generating skeletons for Magnolia-based projects and modules are being <a href="http://confluence.magnolia.info/display/DEV/Create+a+New+Module#CreateaNewModule-Aprimeronthenewarchetype">overhauled</a> as well !</li>
<li>Our Maven repository should soon be synchronized with the central Maven repository. Follow <a href="http://jira.codehaus.org/browse/MAVENUPLOAD-2194">MAVENUPLOAD-2194</a> and <a href="ttp://jira.magnolia.info/browse/SYS-19">SYS-19</a> to be updated on this ! For starters, we might only have our parent poms synchronized, but that should be enough to be able to build any Magnolia module without struggling with pom inheritance.</li>
</ul>
<div>It all seems to work nicely so far. I will release all the parent poms and updated Maven plugins and build tools soon. The first release of Magnolia based on these changes will most likely be 3.6.2. Fingers crossed !</div>
<div><em>edit: well, almost. It had to be 3.6.3, nothing&#8217;s ever without surprises.</em></div>
]]></content:encoded>
			<wfw:commentRss>http://dev.magnolia-cms.com/~gjoseph/news-from-bob/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
