<?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>Sapere aude! &#187; deco</title>
	<atom:link href="http://dukebody.com/tag/deco/feed/" rel="self" type="application/rss+xml" />
	<link>http://dukebody.com</link>
	<description>Dare to know - Atrévete a servirte de tu propia razón</description>
	<lastBuildDate>Thu, 12 Jan 2012 10:22:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>On Deco and Tiles &#8211; the big picture</title>
		<link>http://dukebody.com/2010/08/on-deco-and-tiles-the-big-picture/</link>
		<comments>http://dukebody.com/2010/08/on-deco-and-tiles-the-big-picture/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 09:12:33 +0000</pubDate>
		<dc:creator>Israel Saeta Pérez</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[blocks]]></category>
		<category><![CDATA[deco]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[tiles]]></category>

		<guid isPermaLink="false">http://dukebody.com/?p=194</guid>
		<description><![CDATA[I&#8217;ve been working these months in a Google Summer of Code project entitled Core tiles development. One thing I wanted to do is to write some documentation about how the whole Deco/Blocks/Tiles system works together &#8211; the reason is that there are a lot of packages and moving pieces involved and it&#8217;s easy to get [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working these months in a Google Summer of Code project entitled <em>Core tiles development</em>. One thing I wanted to do is to write some documentation about how the whole Deco/Blocks/Tiles system works together &#8211; the reason is that there are a lot of packages and moving pieces involved and it&#8217;s easy to get lost trying to understand what does what and in which order. I won&#8217;t try to explain in detail how does each package do its work (read each package documentation if you&#8217;re interested) but to introduce the different packages involved.</p>
<p>In short, Deco is a page composition system based on semantic HTML and a grid system. Instead of using custom XML namespaces and a templating language (like METAL), Deco uses plain (strategic) HTML.</p>
<p>To add this feature to a Dexterity content-type you just have to add the <a href="http://svn.plone.org/svn/plone/sandbox/plone.app.layoutbehavior"><strong>plone.app.layoutbehavior</strong></a> Dexterity behavior to it. This behavior adds two fields to the content-type: <em>layout</em>, to select the site layout you want to use, and <em>content</em>. This last field will contain all the tile-related HTML markup, and is populated by default with two field tiles: title and description. The Dexterity type with the cited behavior we&#8217;re currently using is named Page and lives into <a href="http://svn.plone.org/svn/plone/sandbox/plone.app.page/"><strong>plone.app.page</strong></a>.</p>
<p>If the Deco UI package, <a href="http://svn.plone.org/svn/plone/sandbox/plone.app.deco/"><strong>plone.app.deco</strong></a>, is installed, it will detect the presence of the <em>content</em> field and activate. The Deco UI allows you to insert, drag-and-drop, edit and delete tiles inside the <em>content</em> field of a type.</p>
<p>To position the tiles in the screen, the Deco UI makes use of the so-called <strong><a href="http://deco.gs">Deco Grid System</a></strong>, a bunch of carefully crafted CSS classes that, when applied to div elements, position them in the page with the appropiate dimensions.</p>
<p>Tiles are little more than browser views with associated configuration data, and their base classes live in <a href="http://svn.plone.org/svn/plone/plone.tiles/"><strong>plone.tiles</strong></a>. We have transient tiles, which store the configuration data in a querystring in the tile HTML, like:</p>
<p>http://host.org/@@plone.app.standardtiles.helloname/tile-1?name=Israel</p>
<p>and persistent tiles, for config data not encodeable into querystrings (e.g. a large file), which store the data in the ZODB as annotations in the content object. Note the expected &#8216;@@&#8217; for browser views — when this URL is accessed, it will return an HTML page with headers and a body, like:</p>
<pre>&lt;html&gt;
  &lt;head&gt;
    &lt;link rel="stylesheet" type="text/css" href="names.css" /&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;p class="aName"&gt;Hello Israel!&lt;/p&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>The <a href="http://svn.plone.org/svn/plone/plone.app.tiles/"><strong>plone.app.tiles</strong></a> (notice the &#8220;app&#8221; namespace) package registers the helper views <em>@@add-tile</em>, <em>@@edit-tile</em> and <em>@@delete-tile</em> to do exactly what their names say, the two first ones using a form generated from the tile data schema via plone.autoform.</p>
<p>So how are tiles actually rendered into a page? The answer resides in <a href="http://svn.plone.org/svn/plone/plone.app.blocks"><strong>plone.app.blocks</strong></a>. This package is in charge of loading the page layout (remember the &#8220;layout&#8221; field added by plone.app.layoutbehavior?), merging in the contents of the page and &#8220;expanding&#8221; the tiles, merging the head of the tile into the head of the resulting page and putting its body where the placeholder for the tile was, as <a href="http://dev.plone.org/plone/browser/plone.app.blocks/trunk/plone/app/blocks/rendering.txt">detailed</a> in the documentation.</p>
<p>Finally, the basic tiles to be inserted, including image, video, attachment, navigation tree and searchbox among others, live in <a href="http://svn.plone.org/svn/plone/sandbox/plone.app.standardtiles/"><strong>plone.app.standardtiles</strong></a>.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 522px; width: 1px; height: 1px;">
<p>Muchas gracias por vuestras respuestas.</p>
<p>Finalmente vamos a intentar quedar días antes de empezar el mes de alquiler para firmar el contrato, pagar la fianza en metálico y recibir las llaves: todo a la vez.</p>
<p>Además, vamos a pedir a nuestro (futuro) casero que nos envíe una copia del texto del contrato antes, para poder tener tiempo de discutirlo si no estuviésemos de acuerdo en algo.</p>
<p>Por otra parte, buscando información por la Red he encontrado este par de enlaces, bastante útiles:</p>
<p><a href="http://www.spaviv.es/informacion/normativa.php" target="_blank">http://www.spaviv.es/informacion/normativa.php</a><br />
<a href="http://www.upv.es/perfiles/estudiante/documentos/alojamientos_triptico.pdf" target="_blank">http://www.upv.es/perfiles/estudiante/documentos/alojamientos_triptico.pdf</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://dukebody.com/2010/08/on-deco-and-tiles-the-big-picture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My GSoC project proposal: Core tiles development</title>
		<link>http://dukebody.com/2010/04/my-gsoc-project-proposal-core-tiles-development/</link>
		<comments>http://dukebody.com/2010/04/my-gsoc-project-proposal-core-tiles-development/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 08:31:16 +0000</pubDate>
		<dc:creator>Israel Saeta Pérez</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[deco]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[tiles]]></category>

		<guid isPermaLink="false">http://dukebody.com/?p=136</guid>
		<description><![CDATA[Update: This project has been accepted! Martin Aspeli will be my mentor. :)
For those of you not familiarized with Plone nor web development nor computers: I want to press a lot of buttons to make the pattern of lights shown in a metal rectangle change however I want. (credits to xkcd #722 ;)
For the rest [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update: This project has been accepted! Martin Aspeli will be my mentor. :)</strong></p>
<p>For those of you not familiarized with Plone nor web development nor computers: I want to press a lot of buttons to make the pattern of lights shown in a metal rectangle change however I want. (credits to <a href="http://xkcd.com/722/">xkcd #722</a> ;)</p>
<p>For the rest of you, here goes my <a href="http://socghop.appspot.com/site/home/site">Google Summer of Code</a> 2010 student proposal!</p>
<h2>Core tiles development</h2>
<p><em>Deco is a revolutionary page composition system heavily based on semantic HTML and middleware software (either WSGI or using a post-publication hook), which could probably be shipped by default with Plone 5. The underlying Deco architecture, based on the concepts of panels and tiles, needs a set of core tiles (image, video, navigation tree, content-type field) to be inserted in the page.</em></p>
<p><strong>What are you studying, and where?</strong></p>
<p>I&#8217;m a Physics student from the Universidad Complutense de Madrid, Spain. I&#8217;m studying now in Stockholm (Kungligla Tekniska Högskolan) as an Erasmus student, and will study in Barcelona next year within another exchange programme (Séneca).</p>
<p><strong>What is the most interesting programming project you&#8217;ve undertaken while at university?</strong></p>
<p>I&#8217;ve coded a C++ app to solve the minesweeper game using different chained strategies.</p>
<p><strong>Have you ever contributed to an open source project? If so, give details. </strong></p>
<p><em>(Remember, filing bug reports and writing documentation are every bit as much contributions as writing code)</em></p>
<p>I&#8217;ve contributed to:</p>
<p>- Flock: Bug reports and translations to Spanish, as well as trying to lead the l10n team for a while.</p>
<p>- Mozilla: Providing help in the Mozilla Hispano (community website) forums, as well as writing some end-user documentation and a localization QA application in Django.</p>
<p>- Alqua: Wrote part of the code to use LaTeX templates written in the Cheetah template language to generate quality documents.</p>
<p>- Plone: Contributed and managed developer documentation. Leaded efforts to write documentation for the upcoming Plone versions. Reported a bunch of bugs, and fixed anohter (coding).</p>
<p><strong>Have you used Plone before? What for?</strong></p>
<p>Yes, for the Alqua website, in my first job (Zassh website), working with the Plone community and in my current job in Webworks.</p>
<p><strong>Have you spoken to anyone in the Plone community about your project? Who?</strong></p>
<p>Yes, Martin Aspeli, Geir Baekholt, Matthew Wilkes, Alexander Limi, David Glick, Rob Gietema and I guess some others I don&#8217;t remember right now.</p>
<p><strong>What is your project idea?</strong></p>
<p><em>This is the most important bit, so be as detailed as you can.</em></p>
<p>Deco is a new and exciting new way of composing, and I&#8217;d say that even theming pages and a website. It allows the user to create flexible grid-based layouts for the contents directly through the web without the limits of portlets and viewlets positioning and unifying these two concepts through the idea of &#8220;tile&#8221;.</p>
<p>Some sample tiles have been developed as a proof of concept (example.deco), but we need to develop a set of standard core tiles, including the so-called &#8220;application&#8221; ones like Text, Navigation, Image, Video, Calendar, Login Box, Search Box, Map, RSS Feed or Comments, and the field-type one, which can represent fields like Title, Description or Date. These last one would be probably integrated with Dexterity.</p>
<p>I want to create all these, and I think that we will find and solve a lot of issues underlying the current architectural Deco code in the way. The collective.tinymcetiles product, already usable, will allow us to insert tiles in Rich Fields and therefore test them.</p>
<p>At the same time, most of the infrastructure and API for creating, storing and displaying tiles is already completed (plone.tiles and plone.app.tiles), as well as the system to merge and render panel layouts (plone.app.blocks), but we still lack a system to store and manage site and page-wide layouts. I want to work also on the design and implementation of this system, with the help of my mentor.</p>
<p>Finally, and keeping in mind the radical change of concept Deco involves, I&#8217;d like to write quite a lot high and low-level documentation about how the whole system works, ensuring a smooth transition curve for people already used to the old way as long as newcomers.</p>
<p><strong>Please complete the following sentences about how you see the state of the project at different points in the timeline:</strong></p>
<p>At the start of the official coding period (i.e. a month after the accepted projects are announced) my project will be &#8230;just about to start after having read the documentation about the different packages involved and played with them, creating some test tiles and some test Dexterity content-types, to understand better how they work.</p>
<p>3 weeks into the official coding period my project will be &#8230;having coded an alpha version of most of the application tiles: Image, Video, File, etc. These tiles can work with Archetypes content types and collective.tinymcetiles.</p>
<p>Half-way through the coding period my project will be &#8230;having coded an alpha version of a sample field tile. These tiles would extract the data from a Dexterity content-type. example.deco already implements a proof-of-concept for a field tile, but this implementation needs to be rethinked according to M. Aspeli. Field tiles won&#8217;t probably work well with with collective.tinymcetiles, but Rob Gietema (from 4Digital) is already working on the plone.app.deco package to support this.</p>
<p>3 weeks from the end of the coding period my project will be &#8230;having polished the previous tiles and started working on a Dexterity &#8220;Page&#8221; content-type to be able to insert field and app tiles in it without collective.tinymcetiles.</p>
<p>At the end of the coding period my project will be &#8230;finished working on the Page type and the previous tiles.</p>
<p>3 months after summer of code finishes my project will be &#8230;hopefully continued to fix bugs and improve it! It will need to if we want it to make into Plone 5.</p>
<p><strong>Do you have any other commitments during the summer of code period (i.e. between June and August)?</strong></p>
<p>I plan to travel for holidays for at least a week. I also have to move from Madrid to Barcelona, so I&#8217;ll need to look for an apartment there and probably will be busy for a week or so till everything settles down again in my life. :)</p>
<p>I&#8217;ll also attend the Plone Symposium East 2010 at the end of May.</p>
<p>I also plan to attend the Plone Conference 2010 this Autumn.</p>
]]></content:encoded>
			<wfw:commentRss>http://dukebody.com/2010/04/my-gsoc-project-proposal-core-tiles-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

