<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Gonzalo Silverio's Weblog</title>
	<atom:link href="http://gonzalosilverio.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gonzalosilverio.wordpress.com</link>
	<description>Web presentation technologies, flyfishing, Nahuatl Court Poetry, pest control</description>
	<lastBuildDate>Wed, 11 Jan 2012 16:40:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gonzalosilverio.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Gonzalo Silverio's Weblog</title>
		<link>http://gonzalosilverio.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gonzalosilverio.wordpress.com/osd.xml" title="Gonzalo Silverio&#039;s Weblog" />
	<atom:link rel='hub' href='http://gonzalosilverio.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Sakai 3 skins again</title>
		<link>http://gonzalosilverio.wordpress.com/2010/12/13/sakai-3-skins-again/</link>
		<comments>http://gonzalosilverio.wordpress.com/2010/12/13/sakai-3-skins-again/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 01:26:42 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=395</guid>
		<description><![CDATA[Responding to a message from Chris Roby to the Sakai Nakamura list, I took a test run through the process of tailoring the look and feel of Sakai 3 to match the branding needs of an institution and the results were  very gratifying. Very few lines needed in skins/default/skin.css (less than 60!) to produce something [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=395&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Responding to a <a href="http://groups.google.com/group/sakai-kernel/msg/deed7eac1b95b9c0" target="_blank">message</a> from Chris Roby to the <a href="http://groups.google.com/group/sakai-kernel" target="_blank">Sakai Nakamura</a> list, I took a test run through the process of tailoring the look and feel of Sakai 3 to match the branding needs of an institution and the results were  very gratifying. Very few lines needed in <span style="color:#888888;"><code>skins/default/skin.css</code></span> (<strong>less than 60!</strong>) to produce something acceptable that represents the University of Michigan clearly and follows the institutional web style guides.  Only 4 new or modified images (that go in a new folder <span style="color:#888888;"><code>skins/default/images</code></span>) were needed as well. Here is a screenshot.</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/12/screen-shot-2010-12-08-at-2-04-05-pm.png"><img class="alignnone size-full wp-image-411" title="Screen shot 2010-12-08 at 2.04.05 PM" src="http://gonzalosilverio.files.wordpress.com/2010/12/screen-shot-2010-12-08-at-2-04-05-pm.png?w=450&#038;h=317" alt="" width="450" height="317" /></a></p>
<h3>Some possible improvements</h3>
<h4>1) skin CSS linked to too soon</h4>
<p><span style="color:#888888;"><code>skins/default/skin.css</code></span> is linked to before other CSS styling canvases that could be considered important canvases for institutional skins &#8211; luckily these can be trumped in the <code>skins <span style="color:#888888;">css</span></code> by ratcheting the specificity in <span style="color:#888888;"><code>skins/default/skin.css</code></span>, ie: <span style="color:#888888;"><code>topnavigation.css</code></span> is linked to after <span style="color:#888888;"><code>skins/default/skin.css</code></span> and trumps the style for <em><code>#general_search_container</code></em> in <span style="color:#888888;"><code>skin.css</code></span> unless one uses a contextual selector with more specificity: <em><code>#topnavigationcontainer #general_search_container</code></em> instead of <em><code>#general_search_container</code></em></p>
<p>This is somewhat clumsy and not very obvious. Did not have to resort to <span style="color:#ff0000;">!important</span> but can see that happening if the later CSS selector is too specific to trump.</p>
<p>I notice for example that in the <a href="http://confluence.sakaiproject.org/display/3AK/Sakai+3+UI+CSS+Style+Documentation#Sakai3UICSSStyleDocumentation-OverridingCSSwithcustomstyles">Wiki documentation</a><span style="color:#ff0000;"> !important</span> is used to change the color of links &#8211; this is a symptom.</p>
<p>In other words: it may be a good idea to include <span style="color:#888888;"><code>skins/default/skin.css</code></span> last.</p>
<h4>2) side effects from overrides</h4>
<p>There is a flash and jiggle of previous styles that is very apparent if the palette of <span style="color:#888888;"><code>skins/default/skin.css</code></span> or the position of an element affected there is at variance with the values of any of the previous core selectors. This flash and jiggle is more pronounced if the connexion is slow or there is load or the sheets are not cached.</p>
<p>It may be a good idea to leave style &#8220;gaps&#8221; in the core sheets and supply a<span style="color:#888888;"> <code>skin/example</code></span> sheet that fills them in &#8211; this would accomplish several things:</p>
<ol>
<li>avoid possible flash and jiggle;</li>
<li>identify clearly what are good skinnable canvases/targets;</li>
<li>separate style concerns into core sheets (generic substance), skin sheets (institutional style);</li>
<li>establish a sort of contract: &#8220;address the selectors in the <span style="color:#888888;">skin/example</span> and everything will be simple and you will not have to touch anything else probably,&#8221; reducing the task of the adopter to painting by numbers sort of.</li>
</ol>
<h4>3) facilitating broad strokes changes to match the institutional style guide.</h4>
<p>Links are a good example that tend to spark a lot of controversy. One of the gaps in the core sheets may be link color and decoration. This would be addressed in the skin sheet, which would address the generic link (and the pseudo classes), and also the ones that are identified by class/id or context. This is very hard as everyone&#8217;s definition of what should be in the skin scope will be different. But identifying what a core set of skinnable possibilities will cover the majority of the cases.</p>
<h4>4) increasing the scope of the core sheets and decreasing the scope of widget/page sheets</h4>
<p>This would also be very helpful &#8211; specially since the widget sheets are loaded last &#8211; migrating all rules that should be generic to the core sheets would allow a skin sheet to affect anything it needs to affect with more ease (because it could trump core sheets without any skullduggery). I see this is happening  (<a href="http://jira.sakaiproject.org/browse/SAKIII-1800" target="_blank">SAKIII-1800</a>, <a href="http://jira.sakaiproject.org/browse/SAKIII-1803" target="_blank">SAKIII-1803</a>), which is great.  For example in order to eliminate the rounded corners in the main content area this was needed in the skin:</p>
<p><pre class="brush: css;">
.header .fixed-container,
.header .fixed-container .decor,
.search-container .content_search .fixed-container,
.search-container .content_search .fixed-container .decor,
.account_preferences .header .fixed-container
  {
    background-image: none;
  }
</pre></p>
<p>Since it is the same graphic element anywhere it happens, it might best be served by a core sheet, once.</p>
<p>These points all revolve around separating core and page from skin, core and page from widget, skin from widget. 1) above is moot if we get the widgets out of the business of styling generic items best left to the core; 2 and 3 are moot if the core avoids declarations best left to the skin and so forth.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/395/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/395/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/395/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=395&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2010/12/13/sakai-3-skins-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/screen-shot-2010-12-08-at-2-04-05-pm.png" medium="image">
			<media:title type="html">Screen shot 2010-12-08 at 2.04.05 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>Sakai Mobile Portal</title>
		<link>http://gonzalosilverio.wordpress.com/2010/12/09/sakai-mobile-portal/</link>
		<comments>http://gonzalosilverio.wordpress.com/2010/12/09/sakai-mobile-portal/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 02:23:07 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=366</guid>
		<description><![CDATA[Since my last post on the Sakai portal for mobile devices a lot of features were added and many bugs addressed by the community. This is mainly a summary documenting the work done that is being merged to 2.7.x. My apologies if I forgot a JIRA/contributor, there were a lot of both! Portal changes The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=366&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since my last post on the Sakai portal for mobile devices a lot of features were added and many bugs addressed by the community. This is mainly a summary documenting the work done that is being merged to 2.7.x. My apologies if I forgot a JIRA/contributor, there were a lot of both!</p>
<h3>Portal changes</h3>
<p>The main change, that made the rest worthwhile and necessary, was using an updated WURFL to redirect mobile devices to the mobile portal  (<a href="http://jira.sakaiproject.org/browse/SAK-18720" target="_blank">SAK-18720</a> / Roldán Martinez, Horwitz, Swinsburg, Qian). This is controllable by a server property and is a huge leap forward!</p>
<p>The rest of the changes are below:</p>
<p>Give  users the chance to bail out of the mobile portal and going to full version  (<a href="http://jira.sakaiproject.org/browse/SAK-18800" target="_blank">SAK-18800</a>)</p>
<p>Fix some login issues (<a href="http://jira.sakaiproject.org/browse/SAK-18955" target="_blank">SAK-18955</a>,  <a href="http://jira.sakaiproject.org/browse/SAK-18768" target="_blank">SAK-18768</a>)</p>
<p>Fix JSR-168 tools in mobile portal (<a href="http://jira.sakaiproject.org/browse/SAK-19060" target="_blank">SAK-19060</a>)</p>
<p>Links directly to tools/pages/on sites don&#8217;t work when portal autoforwards to PDA portal (<a href="http://jira.sakaiproject.org/browse/SAK-18801" target="_blank">SAK-18801</a>)</p>
<p>Provide the ability to reset tools (<a href="http://jira.sakaiproject.org/browse/SAK-14808" target="_blank">SAK-14808</a>)</p>
<p>Add the ability present in the full portal to insert arbitrary markup into a site&#8217;s mobile portal via a site property (<a href="http://jira.sakaiproject.org/browse/SAK-19275" target="_blank">SAK-19275</a>) &#8211; this is useful in many ways, from adding Google Analytics to the Mobile gateway to adding any Javascript driven functionality to a given site.</p>
<p>Put all strings in bundle, fix scaling/orientation issues, sub-site link displays (<a href="http://jira.sakaiproject.org/browse/SAK-19179" target="_blank">SAK-19179</a>)</p>
<h3>Tool changes</h3>
<p>Disable RT Editor and present a text-area instead for mobile devices (<a href="http://jira.sakaiproject.org/browse/SAK-18098" target="_blank">SAK-18098</a>). This has the important side benefit that it removes an important accessibility barrier: the FCK Editor.  Screen reader users can use the mobile portal till the transition to the CK Editor takes place.</p>
<p>Detect inability to upload files in Resources tool for iOS devices (<a href="http://jira.sakaiproject.org/browse/SAK-18711" target="_blank">SAK-18711</a>) and prevent subsequent errors</p>
<h3>Skin changes</h3>
<p>Fork the user experience three ways: 1) small mobile webkit (iPhone/iPod/Android), 2) iPad, 3) the rest. Provide a base for all user agents, a few small adjustments to the mobile portal and a few to the tools it encloses to size elements better for this medium (a lot of people contributed to this, but piles of thanks to Keli A. from Stanford).  Here is the tool menu in <strong>Firefox</strong>.</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/12/browser-ex.png"><img class="alignnone size-full wp-image-371" style="border:1px solid black;" title="browser-ex" src="http://gonzalosilverio.files.wordpress.com/2010/12/browser-ex.png?w=450&#038;h=336" alt="" width="450" height="336" /></a></p>
<p>We used an <strong>@media</strong> selector for iPad to style links to fit in with iOS conventions and pad the toolbar links to help Zhen avoid hitting the iPad browser menu by mistake:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/12/ipad.png"><img class="alignnone size-full wp-image-376" title="ipad" src="http://gonzalosilverio.files.wordpress.com/2010/12/ipad.png?w=450&#038;h=324" alt="" width="450" height="324" /></a></p>
<p>We used an <strong>@media</strong> selector for iPhone/iPod/Android browser:</p>
<p>To style toolbar, site and tool menu to fit in better with iOS conventions</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/12/iphone-trim-site-name.png"><img class="alignnone size-full wp-image-377" title="iphone-trim-site name" src="http://gonzalosilverio.files.wordpress.com/2010/12/iphone-trim-site-name.png?w=450" alt=""   /></a></p>
<p>In this format we omit from the breadcrumb unneeded information: the link to site list is the logo, link to tool list is the site name. If site name is too long it gets trimmed and an ellipsis is provided (in the toolbar crumb and in the site list). This is all <strong>very debatable</strong> &#8211; but there was just no earthly way of fitting it all (&#8220;Sites &gt; Site name &gt; Tool name&#8221;) in there otherwise. The trim is adjusted for orientation &#8211; horizontal gets more characters. Here is an example with a long site name:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/12/iphone-trim-site-name2.png"><img class="alignnone size-full wp-image-378" title="iphone-trim-site name2" src="http://gonzalosilverio.files.wordpress.com/2010/12/iphone-trim-site-name2.png?w=450&#038;h=241" alt="" width="450" height="241" /></a></p>
<p>Since the tool is in the same document as the portal in the mobile response &#8211; one can reach into frequently used tools and massage the display for small devices via <em><strong>pda.css</strong></em>. The initial Resources list view is unusable at an small size, but since we are dealing with a modern browser we can reach in and hide a few columns with some complex attribute selectors,  and trim and ellipse the resource title link based on device orientation (portrait / lanscape). Here is an example with Android:</p>
<p><img class="size-full wp-image-379 alignnone" title="android-res1" src="http://gonzalosilverio.files.wordpress.com/2010/12/android-res1.png?w=450" alt=""   /></p>
<p>It looks very busy still, but it is actually usable I think &#8211; although that remains to be tested. Here it is on a landscape orientation with an iPhone:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/12/ip-resources.png"><img class="alignnone size-full wp-image-380" title="ip-resources" src="http://gonzalosilverio.files.wordpress.com/2010/12/ip-resources.png?w=450&#038;h=241" alt="" width="450" height="241" /></a></p>
<p>Announcements got similar treatment.</p>
<p>One of the gratifying things was to see decisions taken eons ago as to the structure of the interface elements bear fruit.  The liquid layout of form elements (from Ben Brophy, formerly of MIT, and Marc Brierly, Stanford) adjusts well to this format: the inputs drop under the label, neat!  Here is a screen shot of the create new user screen on Android:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/12/android-liq.png"><img class="alignnone size-full wp-image-381" title="android-liq" src="http://gonzalosilverio.files.wordpress.com/2010/12/android-liq.png?w=450" alt=""   /></a></p>
<p>Being able to affect tool rendering in the mobile portal  also had some other perhaps more questionable benefits. In some tools, because of use of iframes or other issues, some of the functionally was affected. In lieu of doing something sensible like fixing the tool, the <em><strong>pda.css</strong></em> hides the offending sector (in Chat it is the list of users that blows up and is hidden) or the opportunity to trigger the error (link to preview an edited page and link to create comments in Wiki).</p>
<p>The main work detailed above in the SAKs and the skin work has been merged to 2.7.x and our CTools branch (thanks again Zhen!) and we are testing the functionality in Michigan at the moment, including a stress test on the mobile portal itself.  Aside from uncovering more bugs we also hope to produce documentation that will rate the user experience of each of the tools (pleasant/<span style="color:#000000;">root canal</span>) for the guidance of our users.</p>
<p>Here it is in Android with the UM look (&#8220;ctools-int&#8221; is a dev server identifier string):</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/12/um-mobile.png"><img class="alignnone size-full wp-image-393" title="um-mobile" src="http://gonzalosilverio.files.wordpress.com/2010/12/um-mobile.png?w=450&#038;h=303" alt="" width="450" height="303" /></a></p>
<p>Naturally this falls way short of the experience of a native app, but at least the functionality is all (mostly) there now.  Maybe for Sakai 2.9 an expanded participation of tools in Entity Broker will foster a complete native app development following the <a href="http://oxforderewhon.wordpress.com/2009/04/26/sakai-tools/" target="_blank">Oxford</a> example.</p>
<p>A question: we are assuming, perhaps wrongly, that covering iOS and  the Android default browser will cover the lion&#8217;s share of our users. Do you  have other suggestions?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/366/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=366&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2010/12/09/sakai-mobile-portal/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/browser-ex.png" medium="image">
			<media:title type="html">browser-ex</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/ipad.png" medium="image">
			<media:title type="html">ipad</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/iphone-trim-site-name.png" medium="image">
			<media:title type="html">iphone-trim-site name</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/iphone-trim-site-name2.png" medium="image">
			<media:title type="html">iphone-trim-site name2</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/android-res1.png" medium="image">
			<media:title type="html">android-res1</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/ip-resources.png" medium="image">
			<media:title type="html">ip-resources</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/android-liq.png" medium="image">
			<media:title type="html">android-liq</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/12/um-mobile.png" medium="image">
			<media:title type="html">um-mobile</media:title>
		</media:content>
	</item>
		<item>
		<title>More on Sakai 3 skins</title>
		<link>http://gonzalosilverio.wordpress.com/2010/08/27/more-on-sakai-3-skins/</link>
		<comments>http://gonzalosilverio.wordpress.com/2010/08/27/more-on-sakai-3-skins/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 23:29:58 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=284</guid>
		<description><![CDATA[In this post we customize the default look of a Sakai 3 installation (gateway and as many logged-in-user subsequent screens as we can identify) and create a few modest skins that users can pick for their sites. The aim of of this is to puzzle out the best process, figure what the stumbling blocks are, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=284&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In this post we customize the default look of a Sakai 3 installation (gateway and as many logged-in-user subsequent screens as we can identify) and create a few modest skins that users can pick for their sites. The aim of of this is to puzzle out the best process, figure what the stumbling blocks are, and identify the gaps if any.</p>
<p>I will try to post next about conclusions, in a less discursive manner.</p>
<h2>The gateway</h2>
<p>I have touched on this <a href="http://gonzalosilverio.wordpress.com/2010/08/20/skinning-sakai3-part-1/">previously in a non-serious vein</a>.</p>
<p>Institutions with many resources can and should tailor the gateway to suit. It does not need to have the present markup and functionality structure. The possibilities are limitless, more so than in Sakai 2. On the other hand, in Sakai 2 there is a set of known configurations that an adopter can easily set to produce a gateway that is perfectly acceptable:</p>
<ul>
<li>Login (internal, CAS, primary and secondary)</li>
<li>Appearance (the gateway can have it&#8217;s own skin, be defined in the default skin, or inherit from the defult skin)</li>
<li>Institutional messages are possible</li>
<li>Institutional links in footer are configurable</li>
<li>Etc.</li>
</ul>
<p>In Sakai 3 the process of customizing the gateway seems more open ended. The exercise below covers the case of an institution that does not have many resources to change the gateway framework, and can affect just the look.</p>
<h4>dev/index.html</h4>
<p>I added a <code>.masthead</code> wrapper to<code> .header-title</code> and <code>.header-byline</code>. The design I received required it as I explain below. An aside: in Sakai 2 modifying the structure of the portal in this manner would have been harder.</p>
<p><pre class="brush: xml;">
&lt;div class=&quot;masthead fl-centered&quot;&gt;
    &lt;!-- HEADER --&gt;
&lt;div class=&quot;header-title&quot;&gt;
       &lt;img src=&quot;_images/sakai_logo_index.png&quot; alt=&quot;__MSG__INSTANCE_NAME__&quot; /&gt;
    &lt;/div&gt;
&lt;div class=&quot;header-byline&quot;&gt;
        __MSG__HEADER_BYLINE__
    &lt;/div&gt;
&lt;/div&gt;
</pre></p>
<p>This will allow us to have superimposed background images &#8211; one in <code>.masthead</code> and the other one in <code>.header-title</code>, see below.</p>
<h4>dev/_css/sakai.index.css</h4>
<p>Change the background:</p>
<p><pre class="brush: css;">
html {
    background: #093b52 url(../../_images/umich_bg.gif) top left repeat;
}
</pre></p>
<p>Style the added wrapper, it gets a repeating background to match the UM logo background:</p>
<p><pre class="brush: css;">
.masthead {
   height:100%;
   overflow:hidden;
   width:100%;
   margin-bottom:3px;
   background: url(../../_images/umich_banner_bg.png) top left repeat;
}
</pre></p>
<p>Style <code>.header-title</code> &#8211; giving it a background to display the sanctioned University of Michigan logo</p>
<p><pre class="brush: css;">
.header-title{
  color: #08415E;
  font-size: 4.0em;
  float: left;
  margin: 0;
  padding: 0;
  background: #fff url(../../_images/umich_banner.png) top left no-repeat;&lt;
  width:500px;
  height:79px
}
</pre></p>
<p>Hide the original Sakai logo</p>
<p><pre class="brush: css;">
.header-title img{
   display:none
}
</pre></p>
<p>Hide the byline</p>
<p><pre class="brush: css;">
.header-byline{
   display:none
}
</pre></p>
<p>Hide the Sakai logo in the footer</p>
<p><pre class="brush: css;">
#footer_logo {
  display:none
}
</pre></p>
<p>Style the links in the footer</p>
<p><pre class="brush: css;">
.sakai-footer .fixed-container a {
    color:#fff !important;
    text-decoration:underline;
}
</pre></p>
<p>Note<code> !important</code>, more on that later.</p>
<p>Here is the result so far. Not very exciting, I know &#8211; but the major requirements (family resemblance to institutional gateway, adherence to the institutional web style guides) are on their way to be met.</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/gateway-done1.jpg"><img class="alignleft size-full wp-image-304" style="display:block;" title="gateway-done" src="http://gonzalosilverio.files.wordpress.com/2010/08/gateway-done1.jpg?w=450&#038;h=311" alt="" width="450" height="311" /></a></p>
<div style="clear:both;"></div>
<p>Other things that are in this screen that properly fall within a &#8220;branding&#8221; scope are the preview image, the link colors, the button colors.</p>
<p>Reminder: the gateway framework is <em> not an immutable given</em> &#8211; am just treating it as such. </p>
<h2>Other pages</h2>
<p>After you log in other rendering mechanisms come into play: new pages call different stylesheets, etc. Carrying out the stuff below takes care of <code>mysakai.html</code> and with some exceptions that will be noted and dealt with, all of the &#8220;my&#8221; pages (Inbox, Contacts, Profile, Inbox).  Yay!</p>
<h4>dev/_css/sakai.base.css</h4>
<p>Added</p>
<p><pre class="brush: css;">
.header{
   background: transparent url(&quot;../../../dev/_images/umich-transparent.png&quot;) left top repeat-x;
}
</pre></p>
<p><code>umich-transparent.png is</code> transparent bottom 1/3rd, top 2/3ds the color of the tab at top:</p>
<p><pre class="brush: xml;">
&lt;div class=&quot;personal-container fl-force-right&quot;&gt;
    &lt;div class=&quot;personal&quot;&gt;
        &lt;ul&gt;
</pre></p>
<p>containing links to the  hidden institutional login, user name and menu, the mail icon, help and sign out links.</p>
<p>This gives us a nice top area that ties in the tab mentioned above, the search area and then transitions into the main content area, pretty much following the original.</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/gray.png"><img class="alignleft size-full wp-image-322" title="gray" src="http://gonzalosilverio.files.wordpress.com/2010/08/gray.png?w=450&#038;h=231" alt="" width="450" height="231" /></a></p>
<div style="clear:both;"></div>
<p>What if the needs of the institution dictate this gray area needs to  reflect the school palette? For example &#8211; if instead of #86898B it needs to be #3A5E8C (following the UM identity guidelines at <a target="_blank" href="http://www.logos.umich.edu/web.html">http://www.logos.umich.edu/web.html</a>)</p>
<p>Things get complicated:</p>
<h4>dev/_css/sakai.base.css</h4>
<p>Edit the image referenced here so that the top 2/3 matches the new color (#3A5E8C)</p>
<p><pre class="brush: css;">
.header{
    background: transparent url(&quot;../../../dev/_images/umich-transparent.png&quot;) left top repeat-x;
}
</pre></p>
<h4>devwidgets/navigationchat/css/navigation.chat.css</h4>
<p>Change the background color of #navigationchatcontainer from #86898B to #3A5E8C:</p>
<p><pre class="brush: css;">
#navigationchatcontainer{background: #3A5E8C}
</pre></p>
<p>That was the easy part. The &#8220;personal&#8221; tab also needs to match that color.</p>
<p>Still on <code>devwidgets/navigationchat/css/navigation.chat.css</code></p>
<p>The tab is composed of 2 sliding door images and a background color.</p>
<p><pre class="brush: css;">
.explore_nav .personal-container {
    margin-top: 10px;
    background: url('../../../dev/_images/topBar_tr.png') top right no-repeat;
    padding-right: 5px;
    overflow: hidden;
}
.explore_nav .personal {
    padding: 4px 0 0 5px;
    margin: 0;
    background: url('../../../dev/_images/topBar_tl.png') top left no-repeat;
    min-height: 30px;
}
</pre></p>
<p>Change to</p>
<p><pre class="brush: css;">
.explore_nav .personal-container {
    margin-top: 10px;
    background: url('../../../dev/_images/umich_topBar_tr.png') top right no-repeat;
    padding-right: 5px;
    overflow: hidden;
}
.explore_nav .personal {
    padding: 4px 0 0 5px;
    margin: 0;
    background: url('../../../dev/_images/umich_topBar_tl.png') top left no-repeat;
    min-height: 30px;
}
</pre></p>
<p>With this new background color the link separators need to be made lighter, change the border-left from #666a6d to #aaa</p>
<p><pre class="brush: css;">
.explore_nav .personal li a {
    font-size: 9pt;
    padding:0 5px 0 7px;
    border-left: 1px solid #aaa;
    color: #fff;
}
</pre></p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/personal.png"><img class="alignleft size-full wp-image-338" title="personal" src="http://gonzalosilverio.files.wordpress.com/2010/08/personal.png?w=450" alt=""   /></a></p>
<div style="clear:both;"></div>
<p>And here is the University of Michigan &#8220;My Sakai&#8221; page.</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/um-mysakai.png"><img src="http://gonzalosilverio.files.wordpress.com/2010/08/um-mysakai.png?w=450&#038;h=222" alt="" title="um-mysakai" width="450" height="222" class="alignleft size-full wp-image-358" /></a></p>
<div style="clear:both;"></div>
<p>One thing that remains to be done is adjusting the separators between the links in the &#8220;explore&#8221; link set at the top. Since the separators are not the same color as the background they bleed into the blue (see below).  An easy fix is to give the border-left not to the LI but instead to the child  A.</p>
<p>From</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/explorebar-borders.png"><img class="alignleft size-full wp-image-339" title="explorebar-borders" src="http://gonzalosilverio.files.wordpress.com/2010/08/explorebar-borders.png?w=450" alt=""   /></a></p>
<div style="clear:both;"></div>
<p><pre class="brush: css;">
.explore_nav ul.explore li {
    padding: 0;
    padding-bottom: 6px;
    border-left: 1px solid #878a8c;
}
.explore_nav .explore li#nav_my_sakai_link { border-left: none; }
.explore_nav .explore li a {
    height:16px;
    color:#fff;
    padding: 8px 20px;
    text-align: center;
    display: block;
    float: left;
    font-weight: bold;
}
</pre></p>
<div style="clear:both;"></div>
<p>To</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/explorebar-borders-fixed.png"><img class="alignleft size-full wp-image-340" title="explorebar-borders-fixed" src="http://gonzalosilverio.files.wordpress.com/2010/08/explorebar-borders-fixed.png?w=450" alt=""   /></a></p>
<div style="clear:both;"></div>
<p><pre class="brush: css;">
.explore_nav ul.explore li {
    padding: 0;
    padding-bottom: 6px;
}
.explore_nav .explore li#nav_my_sakai_link a { border-left: none; }
.explore_nav .explore li a {
    height:16px;
    color:#fff;
    padding: 8px 20px;
    text-align: center;
    display: block;
    float: left;
    font-weight: bold;
    border-left: 1px solid #878a8c;
}
</pre></p>
<div style="clear:both;"></div>
<p>Finally &#8211; the top rounded corners of the main content area are still expecting a #86898B background. These corners are created by  background images referenced in</p>
<h4>dev/_css/sakai.core.2.css</h4>
<p><pre class="brush: css;">
.header .fixed-container {
    background: #fff url('../../_images/header_l.png') top left no-repeat;
}
.header .fixed-container .decor {
    background: url('../../_images/header_r.png') top right no-repeat;
    height: 5px; margin-right: -20px;
}
</pre></p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/content-corners.png"><img class="alignleft size-full wp-image-326" title="content-corners" src="http://gonzalosilverio.files.wordpress.com/2010/08/content-corners.png?w=450" alt=""   /></a></p>
<div style="clear:both;"></div>
<p>Change to:</p>
<p><pre class="brush: css;">
.header .fixed-container {
    background: #fff url('../../_images/umich_header_l.png') top left no-repeat;
}
.header .fixed-container .decor {
    background: url('../../_images/umich_header_r.png') top right no-repeat;
    height: 5px; margin-right: -20px;
}
</pre></p>
<p>duplicate and edit the 2 images to reflect the new background.</p>
<p>And that is enough for now. One could argue that with the new background the &#8220;Search&#8221; button needs to be a different color for contrast. We would need to nip over to:</p>
<h4>dev/_css/sakai.base.css</h4>
<p>and do some heavy styling to get just this button (and any other search button that shows in same background) to show new background color in all it&#8217;s states. I have not explored this but it would be a requirement and am sure it is perfectly feasible.</p>
<p>One final wrinkle. If I navigate somewhere else (try to search something, for example)  the bottom background of the &#8220;search&#8221; area will disappear and the corners we fixed previously are misbehaving again.</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/search-issue.png"><img class="alignleft size-full wp-image-328" title="search-issue" src="http://gonzalosilverio.files.wordpress.com/2010/08/search-issue.png?w=450&#038;h=105" alt="" width="450" height="105" /></a></p>
<div style="clear:both;"></div>
<p>We need to go over to:</p>
<h4>dev/_css/sakai.search_b.css</h4>
<p>and adjust the following selectors:</p>
<p><pre class="brush: css;">
.content_search { padding: 12px 0 0 0; }
.search-container .content_search .fixed-container {
    background: #fff url('../../_images/header_l.png') top left no-repeat;
}
.search-container .content_search .fixed-container .decor {
    background: url('../../_images/header_r.png') top right no-repeat;
    height: 5px;
    margin-right: -20px;
}
</pre></p>
<p>to</p>
<p><pre class="brush: css;">
.content_search {
    padding: 12px 0 0 0;
    background: transparent url(&quot;../../../dev/_images/umich-transparent.png&quot;) left top repeat-x;
}
.content_search a {
    color: #006E96;
}
.search-container .content_search .fixed-container {
    background: #fff url('../../_images/umich_header_l.png') top left no-repeat;
}
.search-container .content_search .fixed-container .decor {
    background: url('../../_images/umich_header_r.png') top right no-repeat;
    height: 5px;
    margin-right: -20px;
}
</pre></p>
<p>Much better:</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/search-done.png"><img class="alignleft size-full wp-image-329" title="search-done" src="http://gonzalosilverio.files.wordpress.com/2010/08/search-done.png?w=450&#038;h=59" alt="" width="450" height="59" /></a></p>
<div style="clear:both;"></div>
<p>Finally &#8211; the footer, that we addressed in the gateway, needs to be addressed again for screens where the user is logged in:</p>
<h4>devwidgets/footer/css/footer.css</h4>
<p>Hide the Sakai logo and style the links in a more neutral manner:</p>
<p><pre class="brush: css;">
.sakai-footer img{display:none}
.sakai-footer .fixed-container a {
    color: #fff;
    text-decoration:underline;
}
</pre></p>
<h2>Specific site/page looks</h2>
<p>When creating a site we have the choice to change the appearance. The appearance files are contained in the <code>dev/_skins</code> directory.</p>
<p>Edit <code>dev/_configuration/config.js</code> to include the info on what site appearances are possible. In our case we need skins for the School of Business, The School of Medicine and Literature, Science and the Arts.</p>
<p><pre class="brush: jscript;">
Site: {
  Styles: {
    bus: {
      name: &quot;Ross School of Business&quot;,
      image: &quot;/dev/_skins/bus/images/thumb.png&quot;,
      URL: &quot;/dev/_skins/bus/bus.html&quot;
    },
    lsa: {
      name: &quot;LS&amp;amp;A&quot;,
      image: &quot;/dev/_skins/lsa/images/thumb.png&quot;,
      URL: &quot;/dev/_skins/lsa/lsa.html&quot;
    },
    med: {
      name: &quot;School of Medicine&quot;,
      image: &quot;/dev/_skins/med/images/thumb.png&quot;,
      URL: &quot;/dev/_skins/med/med.html&quot;
    }
 }
},
</pre></p>
<p>Then create the first one, in this case the school of Business. I just copied the &#8220;original&#8221; skin and modified all the paths, file names and references, radically simplifying it.  Here is the new structure.</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/skin-file-struc.png"><img class="alignleft size-full wp-image-330" title="skin-file-struc" src="http://gonzalosilverio.files.wordpress.com/2010/08/skin-file-struc.png?w=450" alt=""   /></a></p>
<div style="clear:both;"></div>
<p>Our requirements are modest &#8211; let&#8217;s say a logo on the page is good enough for unit identification. In order to add a logo to just the page (site, space, etc) I had to touch the following files:</p>
<p><code>bus.html</code> &#8211; has the structure of the page in it. Only addition to the &#8220;original&#8221; model was the addition at the bottom of it:</p>
<p><pre class="brush: xml;">
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot;
    href=&quot;/dev/_skins/bus/css/page.css&quot;
/&gt;
</pre></p>
<p>It loads the page/site/skin specific skin late in the cascade. More on this matter later.</p>
<p><code>page.css</code> &#8211; the content of this sheet  is modest as well &#8211; since all we want to do is add a logo:</p>
<p><pre class="brush: css;">
#sitetitle{
    background: url(&quot;../images/logo.png&quot;) no-repeat scroll right top transparent;
    padding: 10px 310px 0px 10px;
    min-height: 50px;
    text-align:left;
    vertical-align:middle;
}
</pre></p>
<p>The 2 images in the images folder are the<code> logo.png</code> that this site will be graced with and a thumbnail <code>thumb.png</code> that will be used as a link so that this theme can be picked by the user. Another image in the root folder is <code>prev.png</code>. This is an image sized to 520 × 366 approximately that will show when a user picks this theme in the theme picking panel. I used a screen shot of the finished page for that, then re sized it.</p>
<p>After I was satisfied with the modest page/site/space skin, I duplicated the <code>bus</code> folder a few times, named the other 2 to match the paths I specified in <code>dev/_configuration/config.js</code>, and then edited the <code>*.html</code> files to point to the corresponding <code>*.css</code>, changed the images, and done.</p>
<p>Here is the theme picking panel showing the thumbnails and previews:</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/appearance-picker.png"><img class="alignleft size-full wp-image-332" title="appearance-picker" src="http://gonzalosilverio.files.wordpress.com/2010/08/appearance-picker.png?w=450&#038;h=283" alt="" width="450" height="283" /></a></p>
<div style="clear:both;"></div>
<p>And here are cropped parts of the three themes. Click on the images to see a full sized version.</p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/bus-done.png"><img class="alignleft size-full wp-image-333" title="bus-done" src="http://gonzalosilverio.files.wordpress.com/2010/08/bus-done.png?w=450&#038;h=100" alt="" width="450" height="100" /></a></p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/lsa-done.png"><img class="alignleft size-full wp-image-334" title="lsa-done" src="http://gonzalosilverio.files.wordpress.com/2010/08/lsa-done.png?w=450&#038;h=102" alt="" width="450" height="102" /></a></p>
<div style="clear:both;"></div>
<p><a href="http://gonzalosilverio.files.wordpress.com/2010/08/med-done.png"><img class="alignleft size-full wp-image-335" title="med-done" src="http://gonzalosilverio.files.wordpress.com/2010/08/med-done.png?w=450&#038;h=102" alt="" width="450" height="102" /></a></p>
<div style="clear:both;"></div>
<p>More soon on what all of this means.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/284/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=284&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2010/08/27/more-on-sakai-3-skins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/gateway-done1.jpg" medium="image">
			<media:title type="html">gateway-done</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/gray.png" medium="image">
			<media:title type="html">gray</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/personal.png" medium="image">
			<media:title type="html">personal</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/um-mysakai.png" medium="image">
			<media:title type="html">um-mysakai</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/explorebar-borders.png" medium="image">
			<media:title type="html">explorebar-borders</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/explorebar-borders-fixed.png" medium="image">
			<media:title type="html">explorebar-borders-fixed</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/content-corners.png" medium="image">
			<media:title type="html">content-corners</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/search-issue.png" medium="image">
			<media:title type="html">search-issue</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/search-done.png" medium="image">
			<media:title type="html">search-done</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/skin-file-struc.png" medium="image">
			<media:title type="html">skin-file-struc</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/appearance-picker.png" medium="image">
			<media:title type="html">appearance-picker</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/bus-done.png" medium="image">
			<media:title type="html">bus-done</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/lsa-done.png" medium="image">
			<media:title type="html">lsa-done</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2010/08/med-done.png" medium="image">
			<media:title type="html">med-done</media:title>
		</media:content>
	</item>
		<item>
		<title>Skinnin&#8217;</title>
		<link>http://gonzalosilverio.wordpress.com/2010/08/23/skinnin/</link>
		<comments>http://gonzalosilverio.wordpress.com/2010/08/23/skinnin/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 01:38:11 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[sakai]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=267</guid>
		<description><![CDATA[Skinning involves an entity reformatting a bundle of functionality to make the experience of that functionality reflect it&#8217;s sense of self. When the entity is a simple one like a single human user, the task is a simple one as well. When the entity is a complex one with different parts that demand representation in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=267&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Skinning involves an entity reformatting a bundle of functionality to make the experience of that functionality reflect it&#8217;s sense of self. When the entity is a simple one like a single human user, the task is a simple one as well. When the entity is a complex one with different parts that demand representation in the interface, things can get complicated.</p>
<p>I) A skinning system needs to account for different user spaces</p>
<ol>
<li>Institutional Gateway &#8211; traditionally has family resemblance to other institutional spaces. May have to obey institutional web style guides (logos, palettes, fonts)</li>
<li>Personal spaces &#8211; can have an a) institutional branding as 1 above, b) a sub-institutional branding depending on affiliation (College of Life Sciences branding) or c) self selection (&#8220;cool dude&#8221; branding) &#8211; these are in descending order of probability, ascending order of complexity (and narcissism).<br />
Personal spaces are any space that is restricted to just one user: spaces that index one of the following: 1) other spaces, 2) activity that takes place in other spaces, 3) spaceless activity that is meaningful to the user because of user&#8217;s relationship to that activity. Also any space where the user changes the dynamics of her relationship to the system: ie &#8211; changing one&#8217;s profile, notification options, etc.</li>
<li>Shared spaces<br />
Any space that is not private to one user *and* needs branding by virtue of what the space functionally is. Can have 1) institutional branding, 2) affiliation (Life Sciences) branding, 3) cascading affiliation (Life Sciences &gt; Entomology) branding; 4) space type specific branding [a) t&amp;l, b) research, c) club, ad hoc]. There is a cascade involved in that branding closest to the root determines branding unless lower nodes specifically override parts or all of the branding elements. How the cascade works in practice is left to the institution&#8217;s best judgement and restraint &#8211; but the ability needs to be there, it is important to the sense of self of the institution and it&#8217;s subunits.</li>
</ol>
<p>II) A skinning system needs to account for different functional locales</p>
<p>A given functionality has unique rendering needs that it takes care of itself. All non specific needs are taken care of by skinning system. Widget A is very unique and has unique needs, but the UI idioms it shares with the rest are shared (Save button is blue and flush left, for example)</p>
<p>III) A skinning system needs to be easy to customize</p>
<ol>
<li>enable and encourage customizations via a canonical mechanism, allow customizations via other means (but not facilitate them or even account for them, an institution should be aware of the risks involved)</li>
<li>common locales and procedures to customize should be provided, named appropriately, with a clear and documented cascade.</li>
</ol>
<p>V) A skinning system needs to hint at what elements can best be skinned and to what degree it is recommended they be skinned. The institution can do as it pleases &#8211; but probably would appreciate the help and guidance.</p>
<p>VI) A skinning system needs to account for special user needs</p>
<p>A user should be able to override any and all skin definitions  because of low vision, poor eyesight, color blindness, other factors.  This has two facets: the skinning system should not trump user  stylesheets (if that is how the system has chosen to deal with this  issue), or the skinning system needs to provide a set of alternates, and  the user choice of the system alternate is part of the user&#8217;s  preferences.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=267&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2010/08/23/skinnin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>
	</item>
		<item>
		<title>Skinning the Sakai 3 gateway</title>
		<link>http://gonzalosilverio.wordpress.com/2010/08/20/skinning-sakai3-part-1/</link>
		<comments>http://gonzalosilverio.wordpress.com/2010/08/20/skinning-sakai3-part-1/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 01:09:24 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[sakai]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=226</guid>
		<description><![CDATA[I took a long look at the Sakai 3 skinning architecture before the Denver conference and came to a set of conclusions. The most important conclusion was that this was not the time for conclusions, as the target was moving too fast. Maybe now is the time to explore. As an experiment I pretended to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=226&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I took a long look at the Sakai 3 skinning architecture before the Denver conference and came to a set of conclusions. The most important conclusion was that this was not the time for conclusions, as the target was moving too fast.</p>
<p>Maybe now is the time to explore. As an experiment I pretended to be someone charged to change the gateway (and only the gateway). An effort was made to not even &#8220;think&#8221; about what would be the ideal process &#8211; but just to get the job done.</p>
<p>The results can be sen <a href="http://garden.dmc.dc.umich.edu:8080/dev/" target="_blank">here</a> and if that poor old tired seven year old Dell is down, in this <a href="http://gonzalosilverio.files.wordpress.com/2010/08/sakaiiii-screenshot.png" target="_blank">screenshot</a></p>
<p>For the curious, the process is detailed below. The good news is that it took a about an hour (it shows!) and it would have taken less time if I actually knew how to use Photoshop and Illustrator. The bad news is that on reflection the path I took (out of ignorance or because it was the only path) was not optimal. More on this later.</p>
<h4>dev/_css/sakai/sakai.index.css</h4>
<p>Change watery background image to city scape</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">html {
  background: #093b52 url(../../_images/cityscape.jpg) top left repeat-x;
}</pre>
<p>Hide header byline</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">.header-byline {
  display:none
}</pre>
<p>Hide Sakai logo</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">.header-title img {
  display:none
}</pre>
<p>Display an alternate banner via .header-title (adjusting width, height, padding and margins)</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">.header-title {
  color: #08415E;
  width:650px;
  font-size: 4.0em;
  float: left;
  margin: 25px 35px 25px 0;
  padding: 40px 0;
  background:url(../../_images/header-title-back.png) top left no-repeat
}</pre>
<p>The &#8220;Register here&#8221; link is defined in this sheet as well, instead of in a global/core sheet</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">#register_here a {
  color: #000000;
  text-decoration: underline;
  font-weight: bold;
}</pre>
<h4><strong>dev/index.html</strong></h4>
<p>The thumbnail is hardwired in the markup.</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">&lt;img src="_images/panel_thumb.jpg" alt="__MSG__INSTANCE_NAME__" /&gt;</pre>
<p>So either change the source, overwrite the image with a new one, or hide it and add a background to the container (.preview-box). Chose to change in the markup</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">&lt;img src="_images/cityscape_panel_thumb.jpg" alt="__MSG__INSTANCE_NAME__" /&gt;</pre>
<p>I also found I needed an additional canvas. For a zombie, sure, but it could have been a panel representing the institutional image of self, so added as a direct child of the <code>body</code>:</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">&lt;div id="zombie"&gt;&lt;/div&gt;</pre>
<h4>dev/_css/sakai/sakai.base.css</h4>
<p>The background for all pages (other than index.html) is here</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">html {
  background: #75ADD7 url('../../_images/cityscape.jpg') top left repeat-x;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 120%;
}</pre>
<p>&#8220;Sign in&#8221; button of the gateway: like all buttons &#8211; depends on a sprite (retrieved from a common non-skinned context) applied and positioned in an outer and inner elements, changing the sprite may need a change of color of text.  The sprite is here:</p>
<p><code> dev/_images/button-sprite-5state.png</code></p>
<p>Changing the colors in the sprite might also entail changing the text color for the caption in the <code>.s3d-button</code> selector.</p>
<p>I left the buttons alone in this experiment.</p>
<h4>footer files</h4>
<p>Note: background of footer is a composite of inline CSS set in 1) <code>devwidgets/footer/javascript/footer.js</code>; 2) image background set in <code>devwidgets/footer/css/footer.css</code> and 3) background color in <code>devwidgets/footer/css/footer.css</code></p>
<p>I left the footer alone in this experiment, except for the logo and links:</p>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">.sakai-footer .fixed-container img {
  display:none;
}</pre>
<pre style="color:#555;border:1px solid #ccc;background:#eee;padding:.3em;">.sakai-footer .fixed-container a {
  color: #fff;
  text-decoration:underline;
}</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=226&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2010/08/20/skinning-sakai3-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>
	</item>
		<item>
		<title>Everything looks like a nail&#8230;</title>
		<link>http://gonzalosilverio.wordpress.com/2009/05/20/everything-looks-like-a-nail/</link>
		<comments>http://gonzalosilverio.wordpress.com/2009/05/20/everything-looks-like-a-nail/#comments</comments>
		<pubDate>Wed, 20 May 2009 13:08:44 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[sakai]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=207</guid>
		<description><![CDATA[&#8230;when you have the  Sakai Entity Broker and jQuery in your hand. It is an extremely useful combination that certainly has a place in Sakai 2.x. At some point, for example, one of us snuck in the FCKEditor for editing a Sakai site description. The problem is, the display locales for the site description were not designed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=207&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230;when you have the  Sakai Entity Broker and jQuery in your hand. It is an extremely useful combination that certainly has a place in Sakai 2.x.</p>
<p>At some point, for example, one of us snuck in the FCKEditor for editing a Sakai site description. The problem is, the display locales for the site description were not designed to render gracefully complex/long/enormous/gigantic  blocks of stuff, they were reserving space for the original plain text description only !</p>
<p>One solution is to strip the html and display the first &#8220;n&#8221; characters (<a href="http://bugs.sakaiproject.org/jira/browse/KNL-133" target="_blank">KNL-133</a>).   This solves the problem of the rich text description mangling the context (gateway sites list, site info, etc.).</p>
<p>And yet the original  information in the site description was of importance to the person who crafted it &#8211; how to make it available again? Enter the Entity Broker.  Since the context provides the ID of the site the RESTful url to the site&#8217;s information is:</p>
<p style="font:11px Monaco;color:#005c00;margin:0;">&#8216;/direct/site/&#8217;<span style="color:#000000;"> </span><span style="color:#5c5c5c;">+</span><span style="color:#000000;"> siteId</span><span style="color:#000000;"> </span><span style="color:#5c5c5c;">+</span><span style="color:#000000;"> </span>&#8216;.json&#8217;<span style="color:#5c5c5c;">;</span></p>
<p>The rest is a matter of parsing the site JSON, extracting the useful info, and displaying it in (following Noah Botimer&#8217;s recommendation) a jQuery UI Dialog. The details can be found at <a href="http://bugs.sakaiproject.org/jira/browse/SAK-15861">SAK-15861</a> &#8211; the trickiest part was manipulating the dialog to display correctly in an iframed environment, but luckily the jQuery UI Dialog was very tweakable:</p>
<p><img class="alignnone size-full wp-image-211" title="Picture 1" src="http://gonzalosilverio.files.wordpress.com/2009/05/picture-1.png?w=450&#038;h=260" alt="Picture 1" width="450" height="260" /></p>
<p>We considered other places where this would be useful. One obvious place was in group selection instances. When creating an assignment, targeting an announcement, restricting a resource access, etc.,  you can select what groups are involved.  A modal dialog displaying the group&#8217;s membership might be good (&#8220;Who is in this &#8216;The Scroungers&#8217; group after all?&#8221;). As with the site description there is a handy url:</p>
<p style="font:11px Monaco;color:#005c00;margin:0;">&#8216;/direct/membership/group/&#8217;<span style="color:#000000;"> </span><span style="color:#5c5c5c;">+</span><span style="color:#000000;"> groupId </span><span style="color:#5c5c5c;">+</span><span style="color:#000000;"> </span>&#8216;.json&#8217;<span style="color:#5c5c5c;">;</span></p>
<p>That can be parsed for useful data which can be displayed in a dialog, this time with the addition of a print preview link that might be helpful.</p>
<p><img class="alignnone size-full wp-image-212" title="Picture 2" src="http://gonzalosilverio.files.wordpress.com/2009/05/picture-2.png?w=450&#038;h=321" alt="Picture 2" width="450" height="321" /></p>
<p>The combination of the Entity Broker and jQuery makes this absurdly easy, there is no actual, um, development in the traditional sense going on here.   A project we are almost done with at Michigan uses an &#8220;entitized&#8221;  provider to display to a user a list of the courses they are enrolled in, links to the corresponding site if any, as well as a way to navigate to past and future terms.  This was designed to address the &#8220;Where is my course site?&#8221; issue that the tab metaphor unfortunately produces as a side effect.</p>
<p>Once the heavy lifting was done entitizing the provider (thanks to Savitha!) the view component was not only fast but fun to produce. We used a velocity template but only to load the language strings into a json, otherwise it could have been just some html.</p>
<p>The urls in this case were, to retrieve the terms that the user was registered for courses:</p>
<p style="font:11px Monaco;color:#005c00;margin:0;">&#8220;/direct/mycourses/terms.json&#8221;</p>
<p>This is used to build the navigation menu for the user. The current term and any the user picks is retrieved via:</p>
<p style="font:11px Monaco;color:#005c00;margin:0;">&#8216;/direct/mycourses/&#8217;<span style="color:#000000;"> </span><span style="color:#5c5c5c;">+</span><span style="color:#000000;"> termId</span><span style="color:#000000;"> </span><span style="color:#5c5c5c;">+</span><span style="color:#000000;"> </span>&#8216;.json&#8217;<span style="color:#5c5c5c;">;</span></p>
<p>The json gets parsed and the UI gets constructed (blurred here because this is an actual person/persons, real CM data):</p>
<p><img class="alignnone size-full wp-image-215" title="Picture-3" src="http://gonzalosilverio.files.wordpress.com/2009/05/picture-31.jpg?w=450&#038;h=350" alt="Picture-3" width="450" height="350" /></p>
<p>That is it.  This is happening in these msub  branches: <a href="https://source.sakaiproject.org/svn/msub/umich.edu/ctools/branches/CT-912/mycourses">CT-912 mycourses</a> and <a href="https://source.sakaiproject.org/svn/msub/umich.edu/ctools/branches/CT-912/ctools-providers">CT-912  ctools-provider</a>.</p>
<p>There are a few things that need a lot of work. For one, since this is mostly DOM manipulation (all of the information of value here is the result of DOM manipulation) and since it is sort of a central piece of information (what are your courses, where are the sites) it makes it both important and difficult to ensure it is accessible. Will be studying ARIA ways of addressing this.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/207/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=207&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2009/05/20/everything-looks-like-a-nail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2009/05/picture-1.png" medium="image">
			<media:title type="html">Picture 1</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2009/05/picture-2.png" medium="image">
			<media:title type="html">Picture 2</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2009/05/picture-31.jpg" medium="image">
			<media:title type="html">Picture-3</media:title>
		</media:content>
	</item>
		<item>
		<title>The Sakai PDA portal</title>
		<link>http://gonzalosilverio.wordpress.com/2008/11/20/the-sakai-pda-portal/</link>
		<comments>http://gonzalosilverio.wordpress.com/2008/11/20/the-sakai-pda-portal/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 03:19:05 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[sakai]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=32</guid>
		<description><![CDATA[Sakai has a portal for small devices since 2.4. It is pretty bare bones but it does several neat things: it flattens the tool/site hierarchy so that they can coexist in the same breadcrumb it serves up an iframeless experience it elides many elements from the portal that would be noise in a small screen [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=32&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sakai has a portal for small devices since 2.4. It is pretty bare bones but it does several neat things:</p>
<ol>
<li>it flattens the tool/site hierarchy so that they can coexist in the same breadcrumb</li>
<li>it serves up an iframeless experience</li>
<li>it elides many elements from the portal that would be noise in a small screen</li>
</ol>
<p>Am working on several improvements to it for Sakai 2.7  under <a href="http://bugs.sakaiproject.org/jira/browse/SAK-14827">SAK-14827</a> and we are testing it at Michigan. It has been a very instructive experience constraining things to the small screen. What follows is a description of the changes, some tools and techniques that were useful, and some  observations from the preliminary testing.</p>
<p>The main tool turned out to be an iTouch that Chuck Severance donated to the lab. I tried several emulators such as <a href="http://marketcircle.com/iphoney/">iPhoney</a>, Apple&#8217;s iPhone Simulator that comes with the <a href="http://developer.apple.com/iphone/program/download.html">iPhone SDK</a> but there was no substitute for the actual thing.</p>
<p>Initially all I had in mind was polishing the portal, taking into account the screen size and the input device (your finger!). The PDA portal is served via a single Velocity template file present at a specific URL, so there was no need to do device detection &#8211; if you are there, you are using  a PDA (or, if you want to use a PDA you should use that URL). In the future it would be nice to route that  user agent to that URL automatically.</p>
<pre>http://localhost:8080/portal/pda</pre>
<p>The main complication was setting the viewport via the &lt;meta /&gt; tag. The <a href="http://developer.apple.com/iphone/designingcontent.html">official documentation</a> is very telegraphic, but there is <a href="http://groups.google.com/group/iphonewebdev/browse_thread/thread/f43493a828dffdb3">discussion</a> about it. Eventually I settled on the following:</p>
<pre>&lt;meta name="viewport" content="width=device-width,
     user-scalable=yes,  initial-scale=1.0, maximum-scale=2.0"/&gt;</pre>
<p>The main issue here is font sizing after an portrait/landscape orientation change or after the user input zoom function takes place. Amazing to think that some people are using <a href="http://www.joehewitt.com/files/liquid1.html">Javascript to detect the first</a>.</p>
<p>The second task was to take all the styling references out of the template and out of the experimental portalstyles.css and create a CSS framework for the PDA. This entailed adding a pda.css + 3 images to each skin in the system, and querying in the template what was the skin in use per site.</p>
<p>Note: I have only checked into trunk the style sheets and images. The changes to the velocity template (pda.vm) and loginTool.java are being reviewed.</p>
<p>Now that the PDA portal was skinnable, it&#8217;s styles could be addressed via the CSS. The main preoccupations here were the following:</p>
<ol>
<li>font sizing</li>
<li>adjusting padding/margins on links so that fingers of a moderate fatness could poke in the right place&#8230;</li>
<li>curtailing horizontal spread</li>
</ol>
<p>The results for the gateway pages and the site/tool pages are pretty good. Below with the University of Michigan skin, site navigation.</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/11/picture-3.png"></a><a href="http://gonzalosilverio.files.wordpress.com/2008/11/picture-3.png"><img class="alignnone size-full wp-image-189" title="picture-3" src="http://gonzalosilverio.files.wordpress.com/2008/11/picture-3.png?w=450&#038;h=241" alt="picture-3" width="450" height="241" /></a></p>
<p>The tool navigation:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/11/picture-41.png"><img class="alignnone size-full wp-image-191" title="picture-41" src="http://gonzalosilverio.files.wordpress.com/2008/11/picture-41.png?w=450&#038;h=241" alt="picture-41" width="450" height="241" /></a></p>
<p>And an actual tool:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/11/picture-1.png"><img class="alignnone size-full wp-image-192" title="picture-1" src="http://gonzalosilverio.files.wordpress.com/2008/11/picture-1.png?w=450&#038;h=241" alt="picture-1" width="450" height="241" /></a></p>
<p>I have craftily selected a tool for the screen-shot that works very well in this medium: the calendar summary from the excellent folks at Universidade Fernando Pessoa. Other tools are less fortunate.</p>
<p>A fun thing was adding icons for bookmarks. Following this <a href="http://www.ianhoar.com/2008/08/30/create-a-custom-iphone-icon-for-your-website/">tutorial</a> I created a handful in no time. The iPhone actually takes care of all the glitz effects (corners, glassy look).</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/11/picture-5.png"><img class="alignnone size-full wp-image-194" title="picture-5" src="http://gonzalosilverio.files.wordpress.com/2008/11/picture-5.png?w=450&#038;h=241" alt="picture-5" width="450" height="241" /></a></p>
<p>And this is what the icon looks like in the &#8220;desktop&#8221;</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/11/picture-7.png"><img class="alignnone size-medium wp-image-196" title="picture-7" src="http://gonzalosilverio.files.wordpress.com/2008/11/picture-7.png?w=161&#038;h=300" alt="picture-7" width="161" height="300" /></a></p>
<p>And what the Sakai skin looks like:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/11/picture-8.png"><img class="alignnone size-full wp-image-197" title="picture-8" src="http://gonzalosilverio.files.wordpress.com/2008/11/picture-8.png?w=450&#038;h=241" alt="picture-8" width="450" height="241" /></a></p>
<p>Preliminary testing with the iTouch indicates some problem areas.</p>
<ol>
<li> Any tool that uses internal iframes is hosed.</li>
<li>The browser detection identifies the iTouch as Safari, and serves it the default rich text editor, with it is unable to use &#8211; it should instead serve a plain text area.</li>
<li>Cannot do attachments because the &lt;input type=&#8221;file&#8221; /&gt; is disabled in the iTouch.</li>
<li>Not all tools render nicely, lots more to be done in this area.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=32&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2008/11/20/the-sakai-pda-portal/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/11/picture-3.png" medium="image">
			<media:title type="html">picture-3</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/11/picture-41.png" medium="image">
			<media:title type="html">picture-41</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/11/picture-1.png" medium="image">
			<media:title type="html">picture-1</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/11/picture-5.png" medium="image">
			<media:title type="html">picture-5</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/11/picture-7.png?w=161" medium="image">
			<media:title type="html">picture-7</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/11/picture-8.png" medium="image">
			<media:title type="html">picture-8</media:title>
		</media:content>
	</item>
		<item>
		<title>RTL&#8217;g Sakai Tools</title>
		<link>http://gonzalosilverio.wordpress.com/2008/10/22/rtlg-sakai-tools/</link>
		<comments>http://gonzalosilverio.wordpress.com/2008/10/22/rtlg-sakai-tools/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 00:10:36 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[sakai]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=143</guid>
		<description><![CDATA[In order to create a skin for a RTL context we will be working in a the tool.css (so that we can override tool_base.css) of a new skin, named RTL. We will identify changes that need to be made, workarounds, failures to account for an RTL context in the tool design, etc. If you are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=143&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In order to create a skin for a RTL context we will be working in a the <code>tool.css </code>(so that we can override <code>tool_base.css</code>) of a new skin, named RTL. We will identify changes that need to be made, workarounds, failures to account for an RTL context in the tool design, etc.</p>
<p>If you are not very interested in the details  - the uncombed and disreputable skin is availiable <a title="Right To Left Skin" href="http://www.umich.edu/~gsilver/rtl/rtl.zip" target="_blank">here</a></p>
<p>If you want to know how we got to this and the shortcomings of this approach, read on.</p>
<p>We will begin with a simple tool view  - the Announcements list. What it looks like in a LTR context:</p>
<p><span style="text-decoration:underline;"><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool2.png"></a><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool2.png"><img class="alignnone size-large wp-image-159" title="tool2" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool2.png?w=450&#038;h=215" alt="" width="450" height="215" /></a></span></p>
<p>What the <code>direction:rtl</code> applied to <code>.portletBody</code> gets us. Am keeping the language as English.</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool3.png"><img class="alignnone size-large wp-image-160" title="tool3" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool3.png?w=450&#038;h=205" alt="" width="450" height="205" /></a></p>
<p>Some nice things: the toolbar has been rearranged. The columns of the announcement table have been flipped correctly. Block elements are now flush right, such as the <code>&lt;h3&gt;Announcements&lt;/h3&gt;</code>. The label of the view navigator select is not to the right of the select. The select itself is reoriented. The list paged lists, from right to left: &#8220;first page, previous page, next page, last page&#8221; correctly as the entire block has been flipped.</p>
<p>Some things that will need to be addressed: a) the pipes between the toolbar items look wacky and need to be aligned right; 2) the navigation panels need to be flipped ( a sad irony: if the layout of these and the toolbar  had been a table our work would be done); 3) the text direction of the cells inside the table needs to be adjusted.</p>
<p><strong>The toolbar</strong></p>
<p>Align the toolbar right. We will be working in the new rtl/tool.css):</p>
<pre><span>.navIntraTool {
<span>	</span><span style="color:#ff0000;">text-align: right;</span>
}</span></pre>
<p>Add a border to the span child of the first list element:</p>
<pre>}
/*special style for the first item, namely no border-left*/
.navIntraTool li.firstToolBarItem span{
	<span style="color:#ff0000;">/*border:none;*/border-left:1px solid #ccc;</span>
}</pre>
<p>and take the border away from the last:</p>
<pre>.navIntraTool li:last-child span{
	<span style="color:#ff0000;">border:none</span>
}</pre>
<p>Since the design of the toolbar did not take into account a RTL possibility we had to resort to a pseudo class to identify the last element. We will see this problem elsewhere.</p>
<p><strong>The navigation panels</strong></p>
<p>The layout of these is set in tool_base.css. We will override in rtl/tool.css:</p>
<pre>.viewNav{
	<span style="color:#ff0000;">float: right;</span>
}
.listNav{
	<span style="color:#ff0000;">float: left;</span>
}</pre>
<p><strong>The table list</strong></p>
<pre>/*skinned header of standard tab. data table*/
.listHier th, .listHier td{
	<span style="color:#ff0000;">text-align: right !important;
<span style="color:#000000;">}</span></span></pre>
<p>The <span style="color:#ff0000;">!important</span> is needed to override the <span style="color:#ff0000;">!important</span> in <code>tool_base.css </code>- a bad decision that now needs to be dealt with.</p>
<p>The end result:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool4.png"><img class="alignnone size-large wp-image-162" title="tool4" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool4.png?w=450&#038;h=221" alt="" width="450" height="221" /></a></p>
<p>And in the target language:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool5.png"><img class="alignnone size-large wp-image-163" title="tool5" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool5.png?w=450&#038;h=219" alt="" width="450" height="219" /></a></p>
<p>Some issues remain with the navigation panels &#8211; reversing the floats did not exactly reverse the position, resulting in some inexplicable whitespace.  Someone help, please.</p>
<p>To recapitulate before we take on a more complex view of this tool: a) any series that identifies a first item also needs to identify the last; b) floats are not always totally reversible.</p>
<p><strong>Forms and inputs</strong></p>
<p>Some problems regarding the layout of the <code>input</code>, <code>label</code> and <code>required marker </code>troika. The orientation of the three is just not working due to floats. An example from create a new announcement.</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool6.png"><img class="alignnone size-large wp-image-165" title="tool6" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool6.png?w=450&#038;h=237" alt="" width="450" height="237" /></a></p>
<p>So we rearrange the floats and display attributes, paddings, margins (if you are redoing an existing skin, look for some of these definitions elsewhere in the sheets if your results do not match):</p>
<pre>.shorttext label{
<span style="color:#ff0000;">	float:none;
	display:block;
	padding:0;
	margin:0;
</span>}
.shorttext .reqStar{
<span style="color:#ff0000;">	float:right;
	margin-right:-7px;
</span>}
.longtext label{
<span style="color:#ff0000;">	float:none;
	display:block
</span>}
.longtext label .reqStar{
<span style="color:#ff0000;">	float:right;
	margin-right:-7px;
</span>}</pre>
<p>So:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool71.png"><img class="alignnone size-large wp-image-167" title="tool71" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool71.png?w=450&#038;h=194" alt="" width="450" height="194" /></a></p>
<p>And in Arabic:</p>
<p><span style="text-decoration:underline;"><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool8.png"></a><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool8.png"><img class="alignnone size-large wp-image-168" title="tool8" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool8.png?w=450&#038;h=204" alt="" width="450" height="204" /></a></span></p>
<p>The other input types render correctly without any tweaking (this is also from create a new announcement):</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool9.png"><img class="alignnone size-full wp-image-171" title="tool9" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool9.png?w=450" alt=""   /></a></p>
<p>While on the subject of inputs, the following is also needed if there is to be mixed RTL and LTR content:</p>
<pre>input, textarea{
	<span style="color:#ff0000;">unicode-bidi: override;</span>
}</pre>
<div><span>This opens an  additional level of embedding and overrides the Unicode character ordering, reordering the sequence to the value of the direction property. </span></div>
<div><span style="text-decoration:underline;"><a href="http://gonzalosilverio.files.wordpress.com/2008/10/tool101.png"><img class="alignnone size-full wp-image-174" title="tool101" src="http://gonzalosilverio.files.wordpress.com/2008/10/tool101.png?w=450" alt=""   /></a></span></div>
<p>A quick glance over the core tools and it seems most rendering now is OK. There will be exceptions where the developer has been forced to apply sui generis layout or styles because of the paucity of the default styles. There will also need to be addressed &#8211; please leave some comments where that is the case, thanks!</p>
<p>Off hand &#8211; here are some locales that need more work because of these and other reasons:</p>
<ol>
<li>Filtering controls in Schedule list view.</li>
<li>&#8220;Add&#8221; menu in Resources &#8211; text is misaligned.</li>
<li>Certain icons are facing in the wrong direction &#8211; such as disclosure triangles. These will need to be replaced in the file system when they are inline images, or in the skin when pulled as background images.</li>
<li>The FCK Editor &#8211; needs configuration &#8211; information on configuring the FCK Editor for RTL is <a href="http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options/ContentLangDirection" target="_blank">here</a>. There are language files for Arabic and Hebrew, Persian as well. Probably a lot of other stuff that a native speaker could figure out needs to be tweaked.</li>
<li>Placement of icons inside certain blocks needs to be tweaked &#8211; see alertMessage etc. </li>
</ol>
<p>The uncombed and disreputable skin is avaliable <a title="Right To Left Skin" href="http://www.umich.edu/~gsilver/rtl/rtl.zip" target="_blank">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/143/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=143&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2008/10/22/rtlg-sakai-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool2.png?w=450" medium="image">
			<media:title type="html">tool2</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool3.png?w=450" medium="image">
			<media:title type="html">tool3</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool4.png?w=450" medium="image">
			<media:title type="html">tool4</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool5.png?w=450" medium="image">
			<media:title type="html">tool5</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool6.png?w=450" medium="image">
			<media:title type="html">tool6</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool71.png?w=450" medium="image">
			<media:title type="html">tool71</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool8.png?w=450" medium="image">
			<media:title type="html">tool8</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool9.png" medium="image">
			<media:title type="html">tool9</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/tool101.png" medium="image">
			<media:title type="html">tool101</media:title>
		</media:content>
	</item>
		<item>
		<title>RTL&#8217;ng Sakai from portal to tools</title>
		<link>http://gonzalosilverio.wordpress.com/2008/10/20/rtlng-sakai-from-portal-to-tools/</link>
		<comments>http://gonzalosilverio.wordpress.com/2008/10/20/rtlng-sakai-from-portal-to-tools/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 17:14:10 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[sakai]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=127</guid>
		<description><![CDATA[Some things we left disheveled in a previous post about the RTL Sakai Portal, I will address these below. We are modifying a pre-existing portal in case this is useful to a context where the LTR and the RTL experiences need to coexist &#8211; then you can just modify the existing LTR portal skin. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=127&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some things we left disheveled in a previous post about the <a href="http://gonzalosilverio.wordpress.com/2008/10/10/rtl-sakai/" target="_self">RTL Sakai Portal</a>, I will address these below. We are modifying a pre-existing portal in case this is useful to a context where the LTR and the RTL experiences need to coexist &#8211; then you can just modify the existing LTR portal skin. If the context is strictly RTL, you might be better off starting from scratch. I will provide a starter RTL skin at the end.</p>
<p><strong>Site navigation</strong></p>
<p>Some portal clean up: the pipes between site links still reflect a LTR orientation.</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-sitenav2.png"><img class="alignnone size-large wp-image-129" title="portal-clean-sitenav2" src="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-sitenav2.png?w=450&#038;h=167" alt="" width="450" height="167" /></a></p>
<p>Change the location of the borders:</p>
<pre>/*links to other sites*/
#siteLinkList a,#siteLinkList a:link,#siteLinkList a:visited{
    color: #fff;
    padding: 2px 6px 2px 4px;
    text-decoration: none;
    <span style="color:#ff0000;">/*border-right: 1px solid #fff;*/border-left: 1px solid #fff;</span>
}</pre>
<p>and take borders away from the last link (which is the left-most one):</p>
<pre>#siteLinkList li:last-child a{
<span style="color:#ff0000;">    border:none</span>
}</pre>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-sitenav1.png"><img class="alignnone size-large wp-image-128" title="portal-clean-sitenav1" src="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-sitenav1.png?w=450&#038;h=217" alt="" width="450" height="217" /></a><br />
<strong><br />
Portlet titles</strong></p>
<p>The portlet titles also need sorting, flip the floats and text directions :</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-port-title1.png"><img class="alignnone size-full wp-image-145" title="portal-clean-port-title1" src="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-port-title1.png?w=450" alt=""   /></a></p>
<pre>.portletTitle .title{
	<span style="color:#ff0000;">/*float: left;*/float: right;</span>
}
.portletTitle .title a{
	<span style="color:#ff0000;">/*float:left;*/float:right;</span>
}
.portletTitle .action{
	<span style="color:#ff0000;">/*text-align: right;*/text-align: left;</span>
}</pre>
<p>So now the direction is correct:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-port-title2.png"><img class="alignnone size-full wp-image-146" title="portal-clean-port-title2" src="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-port-title2.png?w=450" alt=""   /></a></p>
<p><strong>Presence</strong></p>
<p>Presence also shows the old LRT orientation:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-presence1.png"><img class="alignnone size-full wp-image-130" title="portal-clean-presence1" src="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-presence1.png?w=450" alt=""   /></a></p>
<p>On the portal level &#8211; adjust  the title:</p>
<pre>#presenceTitle{
   font-size: .7em;
<span style="color:#ff0000;">   /*text-align: left;*/text-align: right;</span>
   margin-left: .5em;
}</pre>
<p>The presence list is inside of an iframe &#8211; and as such it is a tool, so it will be a useful segue to RTL&#8217;ng the tools. As with the portal we are adding the direction attribute to the first child of body (<code>.portletBody</code>).</p>
<pre>.portletBody{
   <span style="color:#ff0000;">direction:rtl</span>
}</pre>
<p>This will get us a lot of LTR &gt; RTL changes for free in all of the tool descendants as we will see later. Except in the presence list as that doc does not have a <code>.portalBody</code> wrapper!!! Since presence does not have a <code>.portletBody</code> we need to add direction attribute to the list itself and fiddle with the paddings:</p>
<pre>/*below for "presence in chat" functionality*/
.presenceList{
   font-size: .8em;
   list-style: none;
   margin: 0;
   <span style="color:#ff0000;">direction:rtl;
   text-align:right;</span>
   <span style="color:#ff0000;">/*padding-left: .1em*/padding-right: .1em;</span>
}

.presenceList li {
   <span style="color:#ff0000;"> /*padding: 0 0 0 .7em;*/padding: 0 .7em 0 0;
</span>    margin-bottom: .2em;
}</pre>
<p>Looks better now:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-presence2.png"><img class="alignnone size-full wp-image-133" title="portal-clean-presence2" src="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-presence2.png?w=450" alt=""   /></a></p>
<p>The results this far:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/portal-cleanfinal.png"><img class="alignnone size-large wp-image-148" title="portal-cleanfinal" src="http://gonzalosilverio.files.wordpress.com/2008/10/portal-cleanfinal.png?w=450&#038;h=297" alt="" width="450" height="297" /></a></p>
<p>Next post &#8211; the tools in all their glory.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=127&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2008/10/20/rtlng-sakai-from-portal-to-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-sitenav2.png?w=450" medium="image">
			<media:title type="html">portal-clean-sitenav2</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-sitenav1.png?w=450" medium="image">
			<media:title type="html">portal-clean-sitenav1</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-port-title1.png" medium="image">
			<media:title type="html">portal-clean-port-title1</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-port-title2.png" medium="image">
			<media:title type="html">portal-clean-port-title2</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-presence1.png" medium="image">
			<media:title type="html">portal-clean-presence1</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/portal-clean-presence2.png" medium="image">
			<media:title type="html">portal-clean-presence2</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/portal-cleanfinal.png?w=450" medium="image">
			<media:title type="html">portal-cleanfinal</media:title>
		</media:content>
	</item>
		<item>
		<title>RTL Sakai</title>
		<link>http://gonzalosilverio.wordpress.com/2008/10/10/rtl-sakai/</link>
		<comments>http://gonzalosilverio.wordpress.com/2008/10/10/rtl-sakai/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 15:19:16 +0000</pubDate>
		<dc:creator>gonzalosilverio</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[sakai]]></category>

		<guid isPermaLink="false">http://gonzalosilverio.wordpress.com/?p=70</guid>
		<description><![CDATA[Back in Sakai 2.0 I went through an attempt to serve up a Right To Left language Sakai experience. At the time this was just an academic exercise, as there were no language resource bundles for Arabic, Hebrew, Farsi, etc. I just wanted to torture test the framework, frankly. It was amazingly simple to modify [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=70&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Back in Sakai 2.0 I went through an attempt to serve up a Right To Left language Sakai experience. At the time this was just an academic exercise, as there were no language resource bundles for Arabic, Hebrew, Farsi, etc. I just wanted to torture test the framework, frankly. It was amazingly simple to modify the <strong>portal </strong>framework via the skin to serve up an adequate portal. The tools were a different matter altogether, being so varied, and represented a number of challenges.</p>
<p>Now there <strong>is</strong> a Arabic translation (in trunk), so I thought I would go through the process again and hope it is useful.  The framework has changed substantially also, so it was due.  In this post I will outline the steps to turn a LTR portal (the Michigan CTools) into a RTL portal for some hypothetical university where Arabic is the main language. Disclaimer: I took Arabic in college, but it is long forgotten &#8211; so I am relying on random boilerplate and on iGoogle&#8217;s translator service for example strings. Don&#8217;t read too much into it!</p>
<p>In a future post I will go through one or two tools in a similar fashion.</p>
<ol>
<li>Use trunk. Add &#8216;ar&#8217; to the locales attribute in sakai.properties, start tomcat.</li>
<li>Login as admin. Create a user, give him a RTL name. In this case I used داود سيلڤَر (with a Latin id if you are not a RTL speaker, I used daud).</li>
<li>We will want داود to mess around with tools as &#8216;mantain&#8217; to get the full experience so create a site and add him as mantain. I used boilerplate Arabic for site title and description.</li>
<li>Login as &#8216;daud&#8217;</li>
<li>Change your Preferences &gt; Locales to &#8216;Arabic&#8217;</li>
</ol>
<div>Tada! First impressions &#8211; neat! Second impression &#8211; I cannot read it, it is too small. We will address that later.</div>
<div><a href="http://gonzalosilverio.files.wordpress.com/2008/10/small-font.png"><img class="alignnone size-full wp-image-73" style="border:1px solid #ccc;" title="small-font" src="http://gonzalosilverio.files.wordpress.com/2008/10/small-font.png?w=450" alt=""   /></a></div>
<p>First thing &#8211; let&#8217;s add a <code>direction</code> attribute to first child of the portal body:</p>
<pre>#portalOuterContainer{
	<strong><span style="color:#ff0000;">direction: rtl;</span></strong>
}</pre>
<p>This gets us started. All HTML elements that inherit this attribute and <strong>use</strong> it will reverse direction. Now we need to address the elements that are not affected.</p>
<p><span style="text-decoration:underline;"><a href="http://gonzalosilverio.files.wordpress.com/2008/10/rtl-1.png"></a><a href="http://gonzalosilverio.files.wordpress.com/2008/10/rtl-1.png"><img class="alignnone size-large wp-image-76" title="rtl-1" src="http://gonzalosilverio.files.wordpress.com/2008/10/rtl-1.png?w=450&#038;h=314" alt="" width="450" height="314" /></a></span></p>
<p>Some things will need to be addressed substantially: 1) the orientation of the mast head needs to be fixed so that from RTL: logo, banner, login; 2) site list orientation; 3) the portlet title (Announcements) also needs to be reconfigured as well; 4) finally &#8211; the portal content needs to be from RTL: tool links, content.</p>
<p><strong>Reorienting the mast head</strong></p>
<p>We have this mess to contend with:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/masthead11.png"><img class="alignnone size-large wp-image-81" title="masthead11" src="http://gonzalosilverio.files.wordpress.com/2008/10/masthead11.png?w=450&#038;h=47" alt="" width="450" height="47" /></a></p>
<p>I have outlined the three components in red. From LTR: #mastLogo, #mastBanner, #mastLogin. They are all floated. We need to reverse the order, so let&#8217;s reverse the float:</p>
<pre>#mastLogin{
 <span style="color:#ff0000;"> /*float:right*/ float:left</span>
}
#mastBanner{
  <span style="color:#ff0000;">/*float:left*/float:right</span>
}</pre>
<p>That is it &#8211; really. Am omitting all of the other attributes. Which gives us:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/masthead2.png"><img class="alignnone size-large wp-image-82" title="masthead2" src="http://gonzalosilverio.files.wordpress.com/2008/10/masthead2.png?w=450&#038;h=44" alt="" width="450" height="44" /></a></p>
<p>The order of labels and inputs is following the direction <code>attribute</code> of the <code>body</code>. Everything else needs work.  Am going to hide #mastLogo because we do not need it. Any graphic element can be poked in as a background of any of the (embarrassingly numerous) other canvases available. I will also add different logos and background colors.</p>
<p>So &#8211; new image for <code>banner_inst.gif</code> and reverse the padding orientation on <code>#mastLogin:</code></p>
<pre>#mastLogin{
	float: left;
	text-align: right;
	<span style="color:#ff0000;">/*padding-right: 15px;*/padding-left: 15px;</span>
	vertical-align: top;
}</pre>
<p>Which leaves us with:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/masthead3.png"><img class="alignnone size-large wp-image-84" title="masthead3" src="http://gonzalosilverio.files.wordpress.com/2008/10/masthead3.png?w=450&#038;h=59" alt="" width="450" height="59" /></a></p>
<p>The language bundle seems to be missing the Arabic equivalents for the input labels, but the position basics are in place: logo to the right, login to the left.</p>
<p><strong>Reorienting the site navigation</strong></p>
<p>We are left with:</p>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav11.png"><img class="alignnone size-large wp-image-87" title="sitenav11" src="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav11.png?w=450&#038;h=30" alt="" width="450" height="30" /></a></p>
<p>Swapping the floats (links and select) reflect the importance of the 2 in the RTL context:</p>
<pre>#linkNav{
	<span style="color:#ff0000;">/*float:right*/ float:left</span>
}
#selectNav{
	<span style="color:#ff0000;">/*float:left;*/ float:right</span>
}</pre>
<div><span>So (am hiding the banner_inst.gif image):<br />
</span></div>
<div><a href="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav2.png"><img class="alignnone size-large wp-image-89" title="sitenav2" src="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav2.png?w=450&#038;h=45" alt="" width="450" height="45" /></a></div>
<p>Although the the <code>direction:rtl</code> in the <code>body</code> gets us the RTL select, it does not flip the orientation of the inline list that the site links are, a list is a list and has an order. We will need to be more devious&#8230;</p>
<pre>#siteLinkList li{
	display: inline;
	<strong><span style="color:#ff0000;">float:right;</span></strong>
}</pre>
<div><span>Yay &#8211; the order of importance reflected in the original LTR is now reflected in the RTL context: My Workspace, sites, other sites. Some minor touches are still needed such  as the separators between site links, padding, etc.<br />
</span></div>
<div><a href="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav3.png"><img class="alignnone size-large wp-image-90" title="sitenav3" src="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav3.png?w=450&#038;h=45" alt="" width="450" height="45" /></a></div>
<p><strong>Reorienting the content</strong></p>
<div>The site content consists of a container (imaginatively id&#8217;d as #container), with two children: #toolMenuWrap (the tool link upper parent) and #content. Again , we have to tinker with the float of one:</div>
<pre>#toolMenuWrap {
     border-right:2px solid #FFFFFF;
     color:#000000;
    <span style="color:#ff0000;"> /*float:left;*/ float:right</span>
     padding:0 0.5em 0 0;
     text-align:right;
     width:9.6em;
}</pre>
<p>and the margin of the other</p>
<pre>#content{
	padding: 0;
	margin-top: .5em;
	<span style="color:#ff0000;">/*margin-left: 11em;*/ margin-right: 11em;</span>
}</pre>
<p>and the text-align of the #toolMenu list items:</p>
<pre>#toolMenu li{
	margin: 0;
	width: auto;
	padding: 0;
	border: 1px solid #fff;
	<span style="color:#ff0000;">/*text-align: left;*/text-align: right;</span>
}</pre>
<p><a href="http://gonzalosilverio.files.wordpress.com/2008/10/portal1-final.png"><img class="alignnone size-large wp-image-120" title="portal1-final" src="http://gonzalosilverio.files.wordpress.com/2008/10/portal1-final.png?w=450&#038;h=322" alt="" width="450" height="322" /></a></p>
<p>Not bad, although quite a bit of clean up left to do (the presence block, the portlet titles (which are in the portal doc of all things) for example, the footers, etc.) And being ignorant of the actual use and needs, quite a few things I have overlooked as well &#8211; do leave comments setting me straight.  I will upload the finished skin later. I will also address soon the skinning of the tools (gulp).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gonzalosilverio.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gonzalosilverio.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gonzalosilverio.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gonzalosilverio.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gonzalosilverio.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gonzalosilverio.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gonzalosilverio.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gonzalosilverio.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gonzalosilverio.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gonzalosilverio.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gonzalosilverio.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gonzalosilverio.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gonzalosilverio.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gonzalosilverio.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gonzalosilverio.wordpress.com&amp;blog=3110789&amp;post=70&amp;subd=gonzalosilverio&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gonzalosilverio.wordpress.com/2008/10/10/rtl-sakai/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/53c44f824ee4db9d068fdd4f8c6de656?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gonzalosilverio</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/small-font.png" medium="image">
			<media:title type="html">small-font</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/rtl-1.png?w=450" medium="image">
			<media:title type="html">rtl-1</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/masthead11.png?w=450" medium="image">
			<media:title type="html">masthead11</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/masthead2.png?w=450" medium="image">
			<media:title type="html">masthead2</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/masthead3.png?w=450" medium="image">
			<media:title type="html">masthead3</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav11.png?w=450" medium="image">
			<media:title type="html">sitenav11</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav2.png?w=450" medium="image">
			<media:title type="html">sitenav2</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/sitenav3.png?w=450" medium="image">
			<media:title type="html">sitenav3</media:title>
		</media:content>

		<media:content url="http://gonzalosilverio.files.wordpress.com/2008/10/portal1-final.png?w=450" medium="image">
			<media:title type="html">portal1-final</media:title>
		</media:content>
	</item>
	</channel>
</rss>
