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

<channel>
	<title>Rego's Everyday Life &#187; English</title>
	<atom:link href="http://blogs.igalia.com/mrego/category/english/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.igalia.com/mrego</link>
	<description>A weblog about my work at Igalia</description>
	<lastBuildDate>Fri, 05 Mar 2010 22:16:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Import RSS feeds related with categories in TYPO3</title>
		<link>http://blogs.igalia.com/mrego/2010/03/05/import-rss-feeds-related-with-categories-in-typo3/</link>
		<comments>http://blogs.igalia.com/mrego/2010/03/05/import-rss-feeds-related-with-categories-in-typo3/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 22:16:13 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[TYPO3]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=179</guid>
		<description><![CDATA[This week I&#8217;ve been taking a look to a TYPO3 extension to import RSS feeds called Yet Another Feed Importer (yafi).
This extension works really nice, but I miss one feature. I&#8217;m going to import blog posts to a TYPO3 website and I&#8217;d like to keep the categories already associated with the original post also related [...]]]></description>
			<content:encoded><![CDATA[<p>This week I&#8217;ve been taking a look to a TYPO3 extension to import RSS feeds called <a href="http://typo3.org/extensions/repository/view/yafi/current/"><em>Yet Another Feed Importer</em> (<code>yafi</code>)</a>.</p>
<p>This extension works really nice, but I miss one feature. I&#8217;m going to import blog posts to a TYPO3 website and I&#8217;d like to keep the categories already associated with the original post also related with the news imported in the website.</p>
<p>An example:</p>
<ul>
<li>Import one post that has the categories TYPO3 and PHP in the RSS</li>
<li>If you have defined in your website the category TYPO3</li>
<li>Then the tt_news record imported will be related with TYPO3 category</li>
</ul>
<p>Finally, I&#8217;ve implemented it, you can find <strong><a href="http://forge.typo3.org/issues/show/6716">a patch</a></strong> at <a href="http://forge.typo3.org/">TYPO3 Forge</a>. Also some <a href="http://forge.typo3.org/issues/show/6714">little</a> <a href="http://forge.typo3.org/issues/show/6715">bugfixes</a> for <code>yafi</code> extension.</p>
<p>This together with <a href="http://typo3.org/extensions/repository/view/gl_pages_cat/current/"><code>gl_pages_cat</code></a> could help to feed your website automatically showing only related news on every categorized page.</p>
<p>PD: An <a href="http://people.gnome.org/~federico/news-2010-03.html#05">inspirational post by Federico Mena today</a>:</p>
<blockquote><p>
[...] If you don&#8217;t &#8220;git push&#8221; today, your day was a waste of time.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2010/03/05/import-rss-feeds-related-with-categories-in-typo3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSWL ends: Master Thesis &amp; reStructuredText</title>
		<link>http://blogs.igalia.com/mrego/2009/11/23/mswl-ends-master-thesis-restructuredtext/</link>
		<comments>http://blogs.igalia.com/mrego/2009/11/23/mswl-ends-master-thesis-restructuredtext/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 09:32:09 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[MSWL]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=171</guid>
		<description><![CDATA[The second edition of Master on Free Software finished. After this great and long year, I think that worth the effort of sharing work and study. I&#8217;ve learnt lot of things and improved my knowledge in several topics related with free software.
Last Friday, students did a presentation of our Master Thesis: In my case it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>The second edition of <a href="http://www.mastersoftwarelibre.com/">Master on Free Software</a> finished. After this great and long year, I think that worth the effort of sharing work and study. I&#8217;ve learnt lot of things and improved my knowledge in several topics related with free software.</p>
<p>Last Friday, students did a presentation of our Master Thesis: In my case it&#8217;s called <a href="http://people.igalia.com/mrego/mswl/thesis/communication_between_desktop_and_web_applications.html"><strong>Communication between desktop and web applications</strong></a>, and it&#8217;s mainly centered in the GNOME platform and the library <a href="http://live.gnome.org/RTMGlib">RTM-GLib</a> (that was developed as part of the Master Practicum).</p>
<p>Finally, I wrote the thesis using <a href="http://docutils.sourceforge.net/docs/user/rst/quickref.html">reStructuredText</a> and it really rocks <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . It&#8217;s just simple and very comfortable. Moreover, <a href="http://people.igalia.com/mrego/mswl/thesis/">sources</a> are also readable.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/11/23/mswl-ends-master-thesis-restructuredtext/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RTM-GLib 0.1.0</title>
		<link>http://blogs.igalia.com/mrego/2009/10/27/rtm-glib-0-1-0/</link>
		<comments>http://blogs.igalia.com/mrego/2009/10/27/rtm-glib-0-1-0/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 21:57:32 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[MSWL]]></category>
		<category><![CDATA[RTM-Glib]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=158</guid>
		<description><![CDATA[First of all, I&#8217;ve created the project homepage at http://live.gnome.org/RTMGlib, where you can find examples and download the last versions.
Today, I&#8217;ve announced the first public release of RTM-GLib, both in GNOME announcements mailing list and Remember The Milk API Google group. And I&#8217;m doing the same here  
Some crazy ideas for the future work, [...]]]></description>
			<content:encoded><![CDATA[<p>First of all, I&#8217;ve created the project homepage at <a href="http://live.gnome.org/RTMGlib">http://live.gnome.org/RTMGlib</a>, where you can find examples and download the last versions.</p>
<p>Today, I&#8217;ve announced the first public release of <strong>RTM-GLib</strong>, both in <a href="http://mail.gnome.org/mailman/listinfo/gnome-announce-list">GNOME announcements</a> <a href="http://mail.gnome.org/archives/gnome-announce-list/2009-October/msg00083.html">mailing list</a> and <a href="http://groups.google.com/group/rememberthemilk-api/">Remember The Milk API</a> <a href="http://groups.google.com/group/rememberthemilk-api/browse_thread/thread/8eb805f062a76b9e">Google group</a>. And I&#8217;m doing the same here <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Some crazy ideas for the future work, now that the library is usable:</p>
<ul>
<li>Provide some methods through <a href="http://moblin.org/projects/mojito">Mojito</a> (via D-Bus) to get, for example, the list of tasks for today.</li>
<li>Develop a <em><a href="http://projects.gnome.org/tracker/">Tracker</a> data miner</em> in order to store the information about the tasks from Remember The Milk on Tracker infrastructure.</li>
<li>In some way <a href="http://projects.gnome.org/evolution/">EDS (evolution-data-server)</a> could use this library to keep synchronized the information about tasks between Remember The Milk and the desktop.</li>
</ul>
<p>Now is time to check the feasibility of these things and think about how to implement them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/10/27/rtm-glib-0-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RTM-Glib released</title>
		<link>http://blogs.igalia.com/mrego/2009/10/06/rtm-glib-released/</link>
		<comments>http://blogs.igalia.com/mrego/2009/10/06/rtm-glib-released/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 22:26:55 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[MSWL]]></category>
		<category><![CDATA[RTM-Glib]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=148</guid>
		<description><![CDATA[Lately, I&#8217;ve been working on the last part of the Master on Free Software, the Master&#8217;s Thesis.
First of all, I&#8217;ve started a small library called RTM-Glib, that is just a wrapper around the API of Rememeber The Milk. It&#8217;s written in C and using GNOME technologies. It pretends to be similar to other libraries like [...]]]></description>
			<content:encoded><![CDATA[<p>Lately, I&#8217;ve been working on the last part of the <a href="http://mastersoftwarelibre.com/">Master on Free Software</a>, the Master&#8217;s Thesis.</p>
<p>First of all, I&#8217;ve started a small library called <strong>RTM-Glib</strong>, that is just a wrapper around the API of <a href="http://www.rememberthemilk.com">Rememeber The Milk</a>. It&#8217;s written in C and using <a href="http://www.gnome.org/">GNOME</a> technologies. It pretends to be similar to other libraries like <a href="http://live.gnome.org/TwitterGlib">Twitter-GLib</a> or <a href="http://librdf.org/flickcurl/">Flickcurl</a>, but for a different web service.</p>
<p>In order to develop this library I&#8217;ve used <a href="http://moblin.org/projects/librest">librest</a>, a great library which makes very easy the access to <a href="http://en.wikipedia.org/wiki/RESTful">RESTful</a>-like services.</p>
<p>For the moment RTM-Glib is just in an early stage, just some basic functions with tasks and lists are implemented. But the library should evolve in the future implementing more methods of the <a href="http://www.rememberthemilk.com/services/api/methods/">Remember The Milk API</a>.</p>
<p>Among other tasks (like improve the library), during the this month I should take a look at <a href="http://moblin.org/projects/mojito">Mojito</a>, trying to provide <a href="http://burtonini.com/blog/computers/mojito-facebook-2009-09-14-10-04">a new service supported</a> using RTM-Glib.</p>
<p>Finally, I&#8217;ve just created a repository for the project in <a href="http://gitorious.org/">Gitorious</a>, the URL is: <a href="http://gitorious.org/rtm-glib">http://gitorious.org/rtm-glib</a>. You can download the source code, check the <a href="http://gitorious.org/rtm-glib/rtm-glib/blobs/master/examples/rtm-glib-example.c">example</a> and test it. As usual, any comment and suggestion are welcomed <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/10/06/rtm-glib-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reviewing gedit project</title>
		<link>http://blogs.igalia.com/mrego/2009/08/01/reviewing-gedit-project/</link>
		<comments>http://blogs.igalia.com/mrego/2009/08/01/reviewing-gedit-project/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 07:42:48 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[MSWL]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=143</guid>
		<description><![CDATA[As work for the last Master on Free Software subject (Dynamics of Libre Software Communities), I&#8217;ve redacted a brief article that tries to analyze the gedit project.
This article is just a collection of charts about gedit project activity. The information was extracted with different tools that helps to analyze data sources of a project (lines [...]]]></description>
			<content:encoded><![CDATA[<p>As work for the last <a href="http://www.mastersoftwarelibre.com/">Master on Free Software</a> subject (<a href="http://gsyc.escet.urjc.es/moodle/course/view.php?id=40">Dynamics of Libre Software Communities</a>), I&#8217;ve redacted a brief <a href="http://people.igalia.com/mrego/mswl/dlsc/">article</a> that tries to analyze the <a href="http://projects.gnome.org/gedit/">gedit</a> project.</p>
<p>This article is just a collection of charts about gedit project activity. The information was extracted with <a href="http://www.dwheeler.com/sloccount/">different</a> <a href="http://tools.libresoft.es/">tools</a> that helps to analyze data sources of a project (lines of code, repository, mailing list, &#8230;).</p>
<p>For example, <a href="http://people.igalia.com/mrego/mswl/dlsc/ar01s02.html#figure_commits_by_author_per_year">one of these graphics</a> shows the number of commits by the main contributors per year:<br />
<img src="http://people.igalia.com/mrego/mswl/dlsc/images/commits_by_author_per_year.png" /></p>
<p>This work just joint some information gathered from different sources, any comment, correction, idea and/or suggestion are welcomed.</p>
<p>BTW, all the needed steps to generate the different charts with the <a href="http://www.r-project.org/">R project</a> are explained in the article. Maybe this examples could be useful for other cases.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/08/01/reviewing-gedit-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CASify Redmine</title>
		<link>http://blogs.igalia.com/mrego/2009/07/22/casify-redmine/</link>
		<comments>http://blogs.igalia.com/mrego/2009/07/22/casify-redmine/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 06:54:08 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=109</guid>
		<description><![CDATA[Redmine is a project management web application. It&#8217;s written in Ruby using the Rails framework.
There is a CAS client available written in Ruby: RubyCAS-Client.
So, I&#8217;ve made some modifications on Redmine code in order to use the CAS service to authenticate Redmine users. Moreover, user information is updated from a LDAP every time the user login [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.redmine.org">Redmine</a> is a project management web application. It&#8217;s written in <a href="http://www.ruby-lang.org/">Ruby</a> using the <a href="http://www.rubyonrails.org.es/">Rails</a> framework.</p>
<p>There is a <a href="http://en.wikipedia.org/wiki/Central_Authentication_Service">CAS</a> client available written in Ruby: <a href="http://rubycas-client.rubyforge.org/">RubyCAS-Client</a>.</p>
<p>So, I&#8217;ve made some modifications on Redmine code in order to use the CAS service to authenticate Redmine users. Moreover, user information is updated from a <a href="http://en.wikipedia.org/wiki/LDAP">LDAP</a> every time the user login in the Redmine website (using <a href="http://net-ldap.rubyforge.org/rdoc/">Net::LDAP</a>). And the fields to modify this data will be disabled on <em>My account</em> page.</p>
<p>Summarizing, I&#8217;ve uploaded a <strong><a href="http://blogs.igalia.com/mrego/wp-content/uploads/2009/07/casify_redmine.patch">patch</a></strong> which provides this specific behaviour (this patch is done against the revision 2824 of Redmine). I know that it&#8217;s hardcoded, but it could be a base for further steps and I hope that it could be useful for someone else (or even for me in the future <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). In the next paragraphs I&#8217;ll go into more technical details.</p>
<p><span id="more-109"></span></p>
<p><strong>Instructions</strong></p>
<p>Once you&#8217;ve installed the last version of Redmine (I&#8217;m using trunk revision 2824), you&#8217;ll need to install RubyCAS-Client (again from trunk because of some functions are not available at last stable 2.0.1):<br />
<code><br />
./script/plugin install http://rubycas-client.googlecode.com/svn/trunk/rubycas-client<br />
</code></p>
<p>First of all, you should add the basic configuration for CAS at <code>config/environment.rb</code>:</p>
<pre><span style='color: #0057ae'>CASClient</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Frameworks</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Rails</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Filter</span><span style='color: #4000a7'>.configure</span><span style='color: #141312'>(</span>
<span style='color: #141312'>  </span><span style='color: #d40000'>:cas_base_url</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=&gt;</span><span style='color: #141312'> </span><span style='color: #dd4a4a'>'https://localhost/cas/'</span>
<span style='color: #141312'>)</span></pre>
<p>Moreover, it&#8217;s needed to add the next line to the class <code>AccountController</code> at <code>app/controllers/account_controller.rb</code>:</p>
<pre><span style='color: #141312'>  before_filter </span><span style='color: #0057ae'>CASClient</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Frameworks</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Rails</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Filter</span></pre>
<p>Then, in order to change the login behaviour you should modify the <code>login</code> action of the <code>account</code> controller. Change the method <code>login</code> at <code>app/controllers/account_controller.rb</code>:</p>
<pre><span style='color: #000080'>require</span><span style='color: #141312'> </span><span style='color: #dd4a4a'>'casclient'</span>
<span style='color: #000080'>require</span><span style='color: #141312'> </span><span style='color: #dd4a4a'>'casclient/frameworks/rails/filter'</span>

<span style='color: #141312'>  <b>def</b> login</span>
<span style='color: #141312'>    <b>if</b> session</span><span style='color: #ff9fec'>[</span><span style='color: #d40000'>:cas_user</span><span style='color: #ff9fec'>]</span><span style='color: #4000a7'>.empty?</span>
<span style='color: #141312'>      </span><span style='color: #888786'><i># Logout user</i></span>
<span style='color: #141312'>      </span><span style='color: #b08000'>self</span><span style='color: #4000a7'>.logged_user</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #b08000'>nil</span>
<span style='color: #141312'>      </span><span style='color: #0057ae'>CASClient</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Frameworks</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Rails</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Filter</span><span style='color: #ff9fec'>::</span><span style='color: #4000a7'>redirect_to_cas_for_authentication</span><span style='color: #141312'>(</span><span style='color: #b08000'>self</span><span style='color: #141312'>)</span>
<span style='color: #141312'>    <b>else</b></span>
<span style='color: #141312'>      cas_authentication(session</span><span style='color: #ff9fec'>[</span><span style='color: #d40000'>:cas_user</span><span style='color: #ff9fec'>]</span><span style='color: #141312'>)</span>
<span style='color: #141312'>    <b>end</b></span>
<span style='color: #141312'>  <b>end</b></span>
</pre>
<p>Now, it&#8217;s necessary to add the new method <code>cas_authentication</code>, which register an user if it&#8217;s the first time that makes login on the Redmine website:</p>
<pre><span style='color: #141312'>  <b>def</b> cas_authentication(cas_user)</span>
<span style='color: #141312'>    user </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #0057ae'>User</span><span style='color: #4000a7'>.find_or_initialize_by_login</span><span style='color: #141312'>(cas_user)</span>

<span style='color: #141312'>    <b>if</b> user</span><span style='color: #4000a7'>.new_record?</span>
<span style='color: #141312'>      </span><span style='color: #888786'><i># Create on the fly</i></span>
<span style='color: #141312'>      user</span><span style='color: #4000a7'>.login</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> cas_user</span>

<span style='color: #141312'>      user </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> update_user_data_from_ldap(user)</span>

<span style='color: #141312'>      user</span><span style='color: #4000a7'>.status</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #0057ae'>User</span><span style='color: #ff9fec'>::</span><span style='color: #bb1188'>STATUS_REGISTERED</span>

<span style='color: #141312'>      register_automatically(user) <b>do</b></span>
<span style='color: #141312'>        onthefly_creation_failed(user)</span>
<span style='color: #141312'>      <b>end</b></span>
<span style='color: #141312'>    <b>else</b></span>
<span style='color: #141312'>      <b>if</b> user</span><span style='color: #4000a7'>.active?</span>
<span style='color: #141312'>        user </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> update_user_data_from_ldap(user, </span><span style='color: #b08000'>true</span><span style='color: #141312'>)</span>
<span style='color: #141312'>        successful_authentication(user)</span>
<span style='color: #141312'>      <b>else</b></span>
<span style='color: #141312'>        account_pending</span>
<span style='color: #141312'>      <b>end</b></span>
<span style='color: #141312'>    <b>end</b></span>
<span style='color: #141312'>  <b>end</b></span></pre>
<p>The method <code>update_user_data_from_ldap</code> gets the user data from LDAP, and update user data on database if needed:</p>
<pre><span style='color: #141312'>  <b>def</b> update_user_data_from_ldap (user, save </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #b08000'>false</span><span style='color: #141312'>)</span>
<span style='color: #141312'>    ldap </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #0057ae'>Net</span><span style='color: #ff9fec'>::</span><span style='color: #bb1188'>LDAP</span><span style='color: #ff9fec'>::</span><span style='color: #4000a7'>new</span>
<span style='color: #141312'>    ldap</span><span style='color: #4000a7'>.host</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #dd4a4a'>'localhost'</span>
<span style='color: #141312'>    ldap</span><span style='color: #4000a7'>.port</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #dd4a4a'>'389'</span>

<span style='color: #141312'>    treebase </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #dd4a4a'>'dc=example,dc=com'</span>

<span style='color: #141312'>    filter </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #0057ae'>Net</span><span style='color: #ff9fec'>::</span><span style='color: #bb1188'>LDAP</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Filter</span><span style='color: #4000a7'>.eq</span><span style='color: #141312'>(</span><span style='color: #dd4a4a'>'uid'</span><span style='color: #141312'>, user</span><span style='color: #4000a7'>.login</span><span style='color: #141312'>)</span>

<span style='color: #141312'>    entry </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> ldap</span><span style='color: #4000a7'>.search</span><span style='color: #141312'>( </span><span style='color: #d40000'>:base</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=&gt;</span><span style='color: #141312'> treebase, </span><span style='color: #d40000'>:filter</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=&gt;</span><span style='color: #141312'> filter, </span><span style='color: #d40000'>:attributes</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=&gt;</span><span style='color: #141312'> </span><span style='color: #ff9fec'>[</span><span style='color: #dd4a4a'>'cn'</span><span style='color: #141312'>, </span><span style='color: #dd4a4a'>'sn'</span><span style='color: #141312'>, </span><span style='color: #dd4a4a'>'mail'</span><span style='color: #ff9fec'>]</span><span style='color: #141312'> )</span><span style='color: #4000a7'>.first</span>

<span style='color: #141312'>    user</span><span style='color: #4000a7'>.firstname</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> entry</span><span style='color: #4000a7'>.cn.first</span>
<span style='color: #141312'>    user</span><span style='color: #4000a7'>.lastname</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> entry</span><span style='color: #4000a7'>.sn.first</span>
<span style='color: #141312'>    user</span><span style='color: #4000a7'>.mail</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> entry</span><span style='color: #4000a7'>.mail.first</span>

<span style='color: #141312'>    user</span><span style='color: #4000a7'>.save</span><span style='color: #141312'> <b>if</b> save</span>

<span style='color: #141312'>    <b>return</b> user</span>
<span style='color: #141312'>  <b>end</b></span></pre>
<p>Following, you should modify the logout behaviour, changing the method <code>logout</code> of the same controller:</p>
<pre><span style='color: #141312'>  <b>def</b> logout</span>
<span style='color: #141312'>    cookies</span><span style='color: #4000a7'>.delete</span><span style='color: #141312'> </span><span style='color: #d40000'>:autologin</span>
<span style='color: #141312'>    </span><span style='color: #0057ae'>Token</span><span style='color: #4000a7'>.delete_all</span><span style='color: #141312'>(</span><span style='color: #ff9fec'>[</span><span style='color: #bf0303'>"user_id = ? AND action = ?"</span><span style='color: #141312'>, </span><span style='color: #0057ae'>User</span><span style='color: #4000a7'>.current.id</span><span style='color: #141312'>, </span><span style='color: #dd4a4a'>'autologin'</span><span style='color: #ff9fec'>]</span><span style='color: #141312'>) <b>if</b> </span><span style='color: #0057ae'>User</span><span style='color: #4000a7'>.current.logged?</span>
<span style='color: #141312'>    </span><span style='color: #b08000'>self</span><span style='color: #4000a7'>.logged_user</span><span style='color: #141312'> </span><span style='color: #ff9fec'>=</span><span style='color: #141312'> </span><span style='color: #b08000'>nil</span>
<span style='color: #141312'>    </span><span style='color: #0057ae'>CASClient</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Frameworks</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Rails</span><span style='color: #ff9fec'>::</span><span style='color: #0057ae'>Filter</span><span style='color: #ff9fec'>::</span><span style='color: #4000a7'>logout</span><span style='color: #141312'>(</span><span style='color: #b08000'>self</span><span style='color: #141312'>)</span>
<span style='color: #141312'>  <b>end</b></span></pre>
<p>The last step is to disable the fields gotten from LDAP at <em>My account</em> page. Modify the <code>app/views/my/account.rhtml</code> file adding <code>:disabled => true</code> option:</p>
<pre><span style='color: #141312'><b>&lt;p&gt;&lt;%=</b> f</span><span style='color: #4000a7'>.text_field</span><span style='color: #141312'> </span><span style='color: #d40000'>:firstname</span><span style='color: #141312'>, </span><span style='color: #d40000'>:required</span><span style='color: #141312'> </span><span style='color: #ff80e0'>=&gt;</span><span style='color: #141312'> </span><span style='color: #b08000'>true</span><span style='color: #141312'>, </span><span style='color: #d40000'>:disabled</span><span style='color: #141312'> </span><span style='color: #ff80e0'>=&gt;</span><span style='color: #141312'> </span><span style='color: #b08000'>true</span><span style='color: #141312'> <b>%&gt;&lt;/p&gt;</b></span>
<span style='color: #141312'><b>&lt;p&gt;&lt;%=</b> f</span><span style='color: #4000a7'>.text_field</span><span style='color: #141312'> </span><span style='color: #d40000'>:lastname</span><span style='color: #141312'>, </span><span style='color: #d40000'>:required</span><span style='color: #141312'> </span><span style='color: #ff80e0'>=&gt;</span><span style='color: #141312'> </span><span style='color: #b08000'>true</span><span style='color: #141312'>, </span><span style='color: #d40000'>:disabled</span><span style='color: #141312'> </span><span style='color: #ff80e0'>=&gt;</span><span style='color: #141312'> </span><span style='color: #b08000'>true</span><span style='color: #141312'> <b>%&gt;&lt;/p&gt;</b></span>
<span style='color: #141312'><b>&lt;p&gt;&lt;%=</b> f</span><span style='color: #4000a7'>.text_field</span><span style='color: #141312'> </span><span style='color: #d40000'>:mail</span><span style='color: #141312'>, </span><span style='color: #d40000'>:required</span><span style='color: #141312'> </span><span style='color: #ff80e0'>=&gt;</span><span style='color: #141312'> </span><span style='color: #b08000'>true</span><span style='color: #141312'>, </span><span style='color: #d40000'>:disabled</span><span style='color: #141312'> </span><span style='color: #ff80e0'>=&gt;</span><span style='color: #141312'> </span><span style='color: #b08000'>true</span><span style='color: #141312'> <b>%&gt;&lt;/p&gt;</b></span></pre>
<p>Finally, you can get all this stuff from a single <a href="http://blogs.igalia.com/mrego/wp-content/uploads/2009/07/casify_redmine.patch">patch</a>. Any comment or suggestion are, as usual, welcomed.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/07/22/casify-redmine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>GCDS Day 6 &#8211; Last day</title>
		<link>http://blogs.igalia.com/mrego/2009/07/10/gcds-day-6-last-day/</link>
		<comments>http://blogs.igalia.com/mrego/2009/07/10/gcds-day-6-last-day/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 21:00:44 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[MSWL]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=96</guid>
		<description><![CDATA[I spent the whole day attended to the GUADEC-ES talks. And I liked specially two of them:

GTK+ 3.0, paso a paso where Carlos Garnacho showed us some interesting things that will be the future of GTK+
Tracker. ¿Qué he hecho yo para indexar esto? interesting talk about the new Tracker 0.7 by Iván Frade.

Moreover, we present [...]]]></description>
			<content:encoded><![CDATA[<p>I spent the whole day attended to the <a href="http://www.grancanariadesktopsummit.org/node/331">GUADEC-ES talks</a>. And I liked specially two of them:</p>
<ul>
<li><em><a href="http://www.grancanariadesktopsummit.org/node/337">GTK+ 3.0, paso a paso</a></em> where <a href="http://blogs.gnome.org/carlosg/">Carlos Garnacho</a> showed us some interesting things that will be the future of <a href="http://www.gtk.org">GTK+</a></li>
<li><em><a href="http://www.grancanariadesktopsummit.org/node/340">Tracker. ¿Qué he hecho yo para indexar esto?</a></em> interesting talk about the new <a href="http://projects.gnome.org/tracker/">Tracker 0.7</a> by <a href="http://blog.ifrade.es/">Iván Frade</a>.</li>
</ul>
<p>Moreover, <a href="http://www.mastersoftwarelibre.com/">we</a> present our talk about <a href="http://www.grancanariadesktopsummit.org/node/342">Tarefas at GUADEC-ES</a>, it seems that people like the idea and how it was developed as part of the Master on Free Software. BTW, you can get <a href="http://people.igalia.com/mrego/mswl/guadec/guadec-es-2009-tarefas.pdf">the slides (in Spanish)</a>.</p>
<p>Finally, <a href="http://blogs.igalia.com/berto">Berto</a> and me went for a walk around the old city, this part is really nice.</p>
<p>Summarizing, it was a great week in Gran Canaria, where I could meet a lot of great hackers. A lot of interesting stuff: <a href="http://moblin.org/projects/mojito">Mojito</a>, <a href="http://projects.gnome.org/tracker/">Tracker</a>, <a href="http://live.gnome.org/GnomeZeitgeist">Zeitgeist</a>, <a href="http://www.midgard-project.org/midgard2/">Midgard2</a>, <a href="http://couchdb.apache.org/">CouchDB</a>, <a href="http://live.gnome.org/GnomeShell">GNOME Shell</a>, &#8230; I should take a look at some of them in the future, I hope to find some time <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/07/10/gcds-day-6-last-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GCDS Day 5 &#8211; Mobile Day &amp; GUADEC-ES</title>
		<link>http://blogs.igalia.com/mrego/2009/07/09/gcds-day-5-mobile-day-guadec-es/</link>
		<comments>http://blogs.igalia.com/mrego/2009/07/09/gcds-day-5-mobile-day-guadec-es/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 01:12:56 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=87</guid>
		<description><![CDATA[I started the day at GUADEC-ES with a great talk Enanos con Gorrito &#8211; GNOME para novatos by Federico Mena.
Then I moved to the GUADEC Mobile Day in order to attend the following talks:

]]></description>
			<content:encoded><![CDATA[<p>I started the day at GUADEC-ES with a great talk <em><a href="http://www.grancanariadesktopsummit.org/node/329">Enanos con Gorrito &#8211; GNOME para novatos</a></em> by <a href="http://www.gnome.org/~federico/">Federico Mena</a>.</p>
<p>Then I moved to the GUADEC Mobile Day in order to attend the following talks:</p>
<ul>
<li><a href="http://www.grancanariadesktopsummit.org/node/215>Multimedia in your pocket</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/347>Designing Moblin-Netbook. A free desktop on a 7-10&#8243; Screen</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/217>Hildon desktop in Maemo 5</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/219>MAFW: the Media Application Framework for Maemo</a></li>
</ul>
<p>Afer that, I moved again to GUADEC-ES where <a href="http://blogs.igalia.com/vjaquez/">Víctor</a> explained how to generate <code>.vapi</code> files in his talk <em><a href="http://www.grancanariadesktopsummit.org/node/335">Un vistazo a Vala</a></em>.</p>
<p>And I finished the conferences day in the next talks:</p>
<ul>
<li><a href="http://www.grancanariadesktopsummit.org/node/410">Couch DB: Cross Desktop Data and Demos</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/208">Pitivi Video Editor</a></li>
</ul>
<p>Finally, I went to the <a href="http://www.es.gnome.org/">GNOME Hispano</a> dinner and also attended to the party sponsored by <a href="http://www.collabora.co.uk/">Collabora</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/07/09/gcds-day-5-mobile-day-guadec-es/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCDS Day 4 &#8211; Talks, beach and dinner</title>
		<link>http://blogs.igalia.com/mrego/2009/07/08/gcds-day-4-talks-beach-and-dinner/</link>
		<comments>http://blogs.igalia.com/mrego/2009/07/08/gcds-day-4-talks-beach-and-dinner/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 08:00:52 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=84</guid>
		<description><![CDATA[I attended some talks during the day, during the morning Clutter was a main character. The Midgard2 project seems interesting, a content repository with just a library, it should be reviewed with CouchDB if you need something like a content repository for your project.
After the conference some of us went to the beach and other [...]]]></description>
			<content:encoded><![CDATA[<p>I attended some talks during the day, during the morning <a href="http://www.clutter-project.org/">Clutter</a> was a main character. The <a href="http://www.midgard-project.org/midgard2/">Midgard2</a> project seems interesting, a content repository with just a library, it should be reviewed with <a href="http://couchdb.apache.org/">CouchDB</a> if you need something like a content repository for your project.</p>
<p>After the conference some of <a href="http://www.igalia.com">us</a> went to the beach and other hackers join us there. BTW, my second swim in Gran Canaria <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Finally, some igalians and <a href="http://www.gnome.org/~federico/">Federico Mena</a> went to dinner to the city centre. I had the chance to ask him about <a href="http://live.gnome.org/GnomeZeitgeist">Zeitgeist</a> internals, how they detect the events and so on. It was a nice night with a great guy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/07/08/gcds-day-4-talks-beach-and-dinner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCDS Day 3 &#8211; GNOME party</title>
		<link>http://blogs.igalia.com/mrego/2009/07/06/gcds-day-3-gnome-party/</link>
		<comments>http://blogs.igalia.com/mrego/2009/07/06/gcds-day-3-gnome-party/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 19:52:17 +0000</pubDate>
		<dc:creator>Manuel Rego Casasnovas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/mrego/?p=75</guid>
		<description><![CDATA[Today I attended the next talks:

WebKitGTK+
I can has aliens too? Client side windows in Gtk+
Modest: Creating a modern mobile email client with gnome technologies
GNOME 3.0 &#8211; A Live Circus^WStatus Update
Vala: Compiler for the GObject type system
GSettings: Next Gen of Config Management
GNOME 1,2,3

Quite interesting talks today, and a very funny talk (GNOME 1,2,3) by Fer and [...]]]></description>
			<content:encoded><![CDATA[<p>Today I attended the next talks:</p>
<ul>
<li><a href="http://www.grancanariadesktopsummit.org/node/187">WebKitGTK+</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/189">I can has aliens too? Client side windows in Gtk+</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/192">Modest: Creating a modern mobile email client with gnome technologies</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/197">GNOME 3.0 &#8211; A Live Circus^WStatus Update</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/193">Vala: Compiler for the GObject type system</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/195">GSettings: Next Gen of Config Management</a></li>
<li><a href="http://www.grancanariadesktopsummit.org/node/198">GNOME 1,2,3</a></li>
</ul>
<p>Quite interesting talks today, and a very funny talk (<em>GNOME 1,2,3</em>) by <a href="http://www.gnome.org/~fherrera/">Fer</a> and <a href="http://blogs.gnome.org/xan/">Xan</a>. Furthermore, it&#8217;s good to see how Igalians have started to appear as speakers <img src='http://blogs.igalia.com/mrego/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Today is the GNOME party sponsored by Igalia, now it&#8217;s time to go there!</p>
<p>BTW, master students (Manuel, Javi and me) have started to prepare <a href="http://www.grancanariadesktopsummit.org/node/342">our talk</a> for the GUADEC-ES. Moreover <a href="http://blogs.igalia.com/svillar/">Sergio</a> has found some time, after the Modest talk, to help us with the Maemo port. Thank you very much!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/mrego/2009/07/06/gcds-day-3-gnome-party/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
