<?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>Free Software</title>
	<atom:link href="http://xpapad.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://xpapad.wordpress.com</link>
	<description>Software Engineering with FOSS and Linux</description>
	<lastBuildDate>Mon, 23 Jan 2012 06:46:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='xpapad.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Free Software</title>
		<link>http://xpapad.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://xpapad.wordpress.com/osd.xml" title="Free Software" />
	<atom:link rel='hub' href='http://xpapad.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Call of Cthulhu character generator for Android</title>
		<link>http://xpapad.wordpress.com/2011/08/27/call-of-cthulhu-character-generator-for-android/</link>
		<comments>http://xpapad.wordpress.com/2011/08/27/call-of-cthulhu-character-generator-for-android/#comments</comments>
		<pubDate>Sat, 27 Aug 2011 07:30:55 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[call of cthulhu]]></category>
		<category><![CDATA[cthulhu]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=145</guid>
		<description><![CDATA[I wrote an Android app, a character generator for the Call of Cthulhu role-playing game. It&#8217;s meant for internal use by our group, but I released it under an Apache 2.0 License in case anyone else is interested.  Chaosium Inc., the publisher of Call of Cthulhu, kindly provided its permission to use its copyrighted material [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=145&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I wrote an Android app, a character generator for the <a href="http://en.wikipedia.org/wiki/Call_of_Cthulhu_(role-playing_game)">Call of Cthulhu</a> role-playing game. It&#8217;s meant for internal use by our group, but I released it under an Apache 2.0 License in case anyone else is interested.  <a href="http://www.chaosium.com">Chaosium Inc.</a>, the publisher of Call of Cthulhu, kindly provided its permission to use its copyrighted material in this application for non-commercial purposes.</p>
<p>The source code of the app is available at <a href="https://github.com/xpapad/cthulhu-android">https://github.com/xpapad/cthulhu-android</a>. I will place the app in <a href="http://www.fdroid.org">F-Droid</a>, the open source Android marketplace, when it reaches a more mature version. If you want to install and try it on your mobile in the meanwhile, don&#8217;t hesitate to contact me. It requires Android 2.2 and has been tested on an HTC Desire A8181.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=145&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2011/08/27/call-of-cthulhu-character-generator-for-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>
	</item>
		<item>
		<title>Using JiBX with Jersey</title>
		<link>http://xpapad.wordpress.com/2010/11/25/using-jibx-with-jersey/</link>
		<comments>http://xpapad.wordpress.com/2010/11/25/using-jibx-with-jersey/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 11:05:28 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jax-rs]]></category>
		<category><![CDATA[jaxb]]></category>
		<category><![CDATA[jersey]]></category>
		<category><![CDATA[jibx]]></category>
		<category><![CDATA[marshal]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[unmarshal]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=132</guid>
		<description><![CDATA[After searching around for this for a while without much luck, I post it here hoping to save you some time. Jersey, the reference implementation of JAX-RS, typically uses JAXB to marshal and unmarshal XML. If you want to use JiBX instead, you should provide custom providers:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=132&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
After searching around for this for a while without much luck, I post it here hoping to save you some time. <a href="http://jersey.java.net/">Jersey</a>, the reference implementation of JAX-RS, typically uses JAXB to marshal and unmarshal XML. If you want to use <a href="http://jibx.sourceforge.net/">JiBX</a> instead, you should provide custom providers:
</p>
<p>
<pre class="brush: java;">
@Provider
public class JIBXBodyReader implements MessageBodyReader&lt;Object&gt; {
	public boolean isReadable(Class&lt;?&gt; type, Type genericType,
			Annotation[] annotations, MediaType mediaType) {		
			try {
				BindingDirectory.getFactory( type );
			} catch (JiBXException e) {
				return false;
			}
			return true;
	}

	public Object readFrom(Class&lt;Object&gt; type, Type genericType,
			Annotation[] annotations, MediaType mediaType,
			MultivaluedMap&lt;String, String&gt; httpHeaders, InputStream entityStream)
			throws IOException, WebApplicationException {
		try {
			IBindingFactory factory = BindingDirectory.getFactory( type );
			IUnmarshallingContext context = factory.createUnmarshallingContext();
			return context.unmarshalDocument( entityStream, null );			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}
</pre>
</p>
<p>
<pre class="brush: java;">
@Provider
public class JIBXBodyWriter implements MessageBodyWriter&lt;Object&gt; {
	public long getSize(Object obj, Class&lt;?&gt; type, Type genericType,
			Annotation[] annotations, MediaType mediaType ) {
		return -1;
	}

	public boolean isWriteable(Class&lt;?&gt; type, Type genericType, 
			Annotation[] annotations, MediaType mediaType ) {		
		try {
			BindingDirectory.getFactory( type );
		} catch (JiBXException e) {
			return false;
		}
		return true;
	}

	public void writeTo(Object obj, Class&lt;?&gt; type, Type genericType,
			Annotation[] annotations, MediaType mediaType,
			MultivaluedMap&lt;String, Object&gt; headers, OutputStream outputStream)
			throws IOException, WebApplicationException {
				try {
					IBindingFactory factory = BindingDirectory.getFactory( type );
					IMarshallingContext context = factory.createMarshallingContext();
					context.marshalDocument( obj, &quot;UTF-8&quot;, null, outputStream );
				}
				catch ( Exception e ) {
					e.printStackTrace();
				}				
	}
}
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=132&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2010/11/25/using-jibx-with-jersey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>
	</item>
		<item>
		<title>Preventing session expiration with AJAX</title>
		<link>http://xpapad.wordpress.com/2010/06/19/preventing-session-expiration-with-ajax/</link>
		<comments>http://xpapad.wordpress.com/2010/06/19/preventing-session-expiration-with-ajax/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 07:13:15 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[expires]]></category>
		<category><![CDATA[interval]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=120</guid>
		<description><![CDATA[Lately I have noticed an increase in issues related to session expiration in web pages. There are two cases that come to mind: Traditional forms that may take the users too long to fill and submit, perhaps because they need to seek data from several sources, such as curriculum info or references. Rich Internet Applications, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=120&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Lately I have noticed an increase in issues related to session expiration in web pages. There are two cases that come to mind:</p>
<ul style="text-align:justify;">
<li>Traditional forms that may take the users too long to fill and submit, perhaps because they need to seek data from several sources, such as curriculum info or references.</li>
<li>Rich Internet Applications, which may delay to communicate with the server long enough for a session to expire, even though the users act under the delusion of a constant communication and a consistent state of their data.</li>
</ul>
<p style="text-align:justify;">Increasing the session timeout is only a partial solution, as it affects the server load and doesn&#8217;t fully address the problem since users may still face an unexpected session timeout if their behavior diverts from the expected scenarios. A better way is to use a simple AJAX call to periodically renew your session, as long as your web page is still open in the browser. You can do that using the <em>setInterval()</em> JavaScript function or its equivalent in the framework of your choice. With jQuery, you could use something like this:</p>
<pre style="font-size:12px;">    $(document).ready( function() {
        var refreshTime = 600000; // in milliseconds, so 10 minutes
        window.setInterval( function() {
            var url = 'http://mysite.mydomain/refreshSessionURL';
            $.get( url );
        }, refreshTime );
    });</pre>
<p style="text-align:justify;">The <em>url</em> variable<em></em> should point to a page that does nothing but refreshing a session. If your application is in PHP, a simple <em>session_start()</em> will do.  If you are using an MVC framework, you could use a controller that renders nothing back and let the framework handle the session renewal.</p>
<p style="text-align:justify;">One possible caveat using this approach is AJAX caching. If it is enabled (some browsers, including IE, enable it by default), it is possible that only your first call will be sent to the server. There are two approaches. The most simple one is to disable AJAX caching completely. In jQuery, this can easily be done using a <em>$.ajaxSetup( {cache:false} ) </em>call. Another possible way is by attaching some random parameter to your session-refreshing URL that will be ignored by the server.</p>
<p style="text-align:justify;">Finally, you should be aware of the security implications of never letting a session to expire. Depending on the requirements of your application, you should consider using a user inactivity test to prevent session renewal or even cause a session to expire.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=120&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2010/06/19/preventing-session-expiration-with-ajax/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>
	</item>
		<item>
		<title>Migrating from VirtualBox to VMWare in Linux</title>
		<link>http://xpapad.wordpress.com/2010/02/21/migrating-from-virtualbox-to-vmware-in-linux/</link>
		<comments>http://xpapad.wordpress.com/2010/02/21/migrating-from-virtualbox-to-vmware-in-linux/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 14:16:57 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=107</guid>
		<description><![CDATA[Ok this is not really a post about free software, in fact it is quite the opposite, but after spending a long time trying to figure a way to convert a VirtualBox image to a VMWare one I figured someone may benefit from it. The reason I had to switch was that I couldn&#8217;t get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=107&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Ok this is not really a post about free software, in fact it is quite the opposite, but after spending a long time trying to figure a way to convert a VirtualBox image to a VMWare one I figured someone may benefit from it. The reason I had to switch was that I couldn&#8217;t get DirectX and 3D Acceleration to work in VirtualBox, but it works fine in VMWare (if you have any suggestions to help me with DirectX and 3D Acceleration in VirtualBox please post here, since VirtualBox seems to be running smoother on my laptop). All the info is scattered around the web, but searching for it is tricky since many links refer to old VirtualBox versions and most of them refer to the opposite operation, i.e. migrating from VMWare to VirtualBox. So here we go:</p>
<p>- Locate your VirtualBox virtual drive, in my case this was /var/local/virtual/windows.vdi. For the rest of the post I assume we are in the virtual drive&#8217;s directory (i.e. /var/local/virtual)<br />
- Convert it to raw format. In later versions of VirtualBox (I am using 3.1.2) this is done through the VBoxManage tool:</p>
<p><code style="font-size:150%;">VBoxManage internalcommands converttoraw windows.dvi windows.raw</code></p>
<p>- Install qemu<br />
- Convert the raw file to a VMWare compatible image format:</p>
<p><code style="font-size:150%;">qemu-img convert -f raw -O vmdk windows.raw windows.vmdk</code></p>
<p>You can now delete the raw file to save some space.</p>
<p>- Launch vmware. I am using VMware Workstation 7.0.1.<br />
- Create a new Virtual Machine. At the wizard, use the following steps (the important options are in blue):</p>
<p><strong>Virtual Machine Configuration:</strong> <span style="color:blue;">Custom</span><br />
<strong>Virtual Machine Hardware Compatibility:</strong> Workstation 6.5 &#8211; 7.0<br />
<strong>Install operating system from:</strong> <span style="color:blue;">I will install the operating system later</span><br />
<strong>Guest Operating System:</strong> Whatever you&#8217;re running (I&#8217;m using the vm for Windows XP Professional)<br />
<strong>Virtual Machine Name:</strong> Whatever you want, or leave the defaults<br />
<strong>Processors:</strong> Whatever you want, or leave the defaults. I&#8217;m using 1<br />
<strong>Memory:</strong> As much as you like. I&#8217;m using 1GB<br />
<strong>Network Connection:</strong> Use network address translation (NAT)<br />
<strong>I/O Adapter Types:</strong> SCSI adapter: BusLogic.<br />
<strong>Disk:</strong> <span style="color:blue;">Use an existing virtual disk. Then browse for the .vmdk file</span></p>
<p style="text-align:justify;">When you start the VM, you will be asked to convert it to new format. Do so, since qemu-img may generate formats compatible with older VMWare versions. Also don&#8217;t forget to install VMWare Tools (from the VMWare menu select VM, then Install VMWare Tools&#8230;), 3D Acceleration didn&#8217;t work until I did.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=107&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2010/02/21/migrating-from-virtualbox-to-vmware-in-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>
	</item>
		<item>
		<title>Fully disabling touchpad in Ubuntu 9.10 Karmic Koala</title>
		<link>http://xpapad.wordpress.com/2010/01/04/fully-disabling-touchpad-in-ubuntu-9-10-karmic-koala/</link>
		<comments>http://xpapad.wordpress.com/2010/01/04/fully-disabling-touchpad-in-ubuntu-9-10-karmic-koala/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 18:50:09 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[linux ubuntu touchpad disable karmic 9.10]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=101</guid>
		<description><![CDATA[Ubuntu 9.04 used to allow you to fully disable the touchpad through the System -&#62; Preferences -&#62; Mouse -&#62; Touchpad menu. In 9.10 this has been replaced with a &#8216;Disable touchpad while typing&#8217; option, which I find inadequate in several cases. Here&#8217;s a way to fully disable your touchpad in 9.10: First, find the HAL [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=101&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ubuntu 9.04 used to allow you to fully disable the touchpad through the System -&gt; Preferences -&gt; Mouse -&gt; Touchpad menu. In 9.10 this has been replaced with a &#8216;Disable touchpad while typing&#8217; option, which I find inadequate in several cases. Here&#8217;s a way to fully disable your touchpad in 9.10:</p>
<ul>
<li>First, find the HAL configuration file for your touchpad. Mine lies in /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi, but according to some posts it might be found in /usr/share/fdi/policy/10osvendor/11-x11-synaptics.fdi</li>
<li>Either delete the HAL configuration file, or rename it to something else (without the .fdi extension). This way hald (the HAL daemon) will not reset the touchpad driver when we will disable it.</li>
<li>In a console, run <strong>xinput list</strong> to find the name of your touchpad device under X. For example, I get:</li>
</ul>
<p style="padding-left:60px;">$ xinput list |grep -i touchpad</p>
<p style="padding-left:60px;">&#8220;AlpsPS/2 ALPS DualPoint TouchPad&#8221;    id=8    [XExtensionPointer]</p>
<ul>
<li>To disable the  touchpad, run:</li>
</ul>
<p style="padding-left:60px;">xinput set-int-prop &#8220;AlpsPS/2 ALPS DualPoint TouchPad&#8221; &#8220;Device Enabled&#8221; 8 0</p>
<p style="padding-left:30px;">Of course you should replace &#8220;AlpsPS/2 ALPS DualPoint TouchPad&#8221; with your own device name, as shown by xinput list.</p>
<p>To automatically disable your touchpad each time you log into X, you should add a startup script. In Gnome, use System -&gt; Preferences -&gt; Startup Applications, click on &#8216;Add&#8217;,  use a name like &#8216;Disable Touchpad&#8217; and type in the xinput set-int-prop line in the Command field.</p>
<p>To facilitate touchpad handling (i.e. to enable/disable it at will, for example when you plug in/out a mouse), you could create the following script:</p>
<blockquote>
<p>#! /bin/sh<br />
### BEGIN INIT INFO<br />
# Provides:          touchpad<br />
# Required-Start:    $remote_fs $syslog $all<br />
# Required-Stop:<br />
# Default-Start:<br />
# Default-Stop:    2<br />
# Short-Description: Disables the touchpad<br />
### END INIT INFO</p>
<p>
PATH=/sbin:/usr/sbin:/bin:/usr/bin<br />
TOUCHPAD=&#8221;AlpsPS/2 ALPS DualPoint TouchPad&#8221;
</p>
<p>
. /lib/init/vars.sh<br />
. /lib/lsb/init-functions
</p>
<p>
case &#8220;$1&#8243; in<br />
start)<br />
xinput set-int-prop &#8220;$TOUCHPAD&#8221; &#8220;Device Enabled&#8221; 8 1<br />
;;<br />
restart|reload|force-reload)<br />
rmmod psmouse &amp;&amp; modprobe psmouse<br />
;;<br />
stop)<br />
xinput set-int-prop &#8220;$TOUCHPAD&#8221; &#8220;Device Enabled&#8221; 8 0<br />
;;<br />
*)<br />
echo &#8220;Usage: $0 start|stop&#8221; &gt;&amp;2<br />
exit 3<br />
;;<br />
esac</p>
</blockquote>
<p>Of course you should use your own device in the TOUCHPAD=&#8230; line. Save it in /etc/init.d/touchpad, and set it to off by default:</p>
<blockquote><p>sudo update-rc.d touchpad stop 99 2 .</p></blockquote>
<p><span style="text-decoration:underline;">Note:</span> The <em>rmmode psmouse &amp;&amp; modprobe psmouse</em> commands in the <em>restart</em> option will reset your touchpad (and, incidentally, your mouse) if your driver fails due to a bug described <a href="http://xpapad.wordpress.com/2009/09/09/dealing-with-mouse-and-touchpad-freezes-in-linux/">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=101&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2010/01/04/fully-disabling-touchpad-in-ubuntu-9-10-karmic-koala/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>
	</item>
		<item>
		<title>Fixing sound after upgrading to Ubuntu 9.10 Karmic Koala</title>
		<link>http://xpapad.wordpress.com/2009/12/31/fixing-sound-after-upgrading-to-ubuntu-9-10-karmic-koala/</link>
		<comments>http://xpapad.wordpress.com/2009/12/31/fixing-sound-after-upgrading-to-ubuntu-9-10-karmic-koala/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 18:36:09 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[linux ubuntu sound audio karmic 9.10]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=96</guid>
		<description><![CDATA[I recently upgraded from Ubuntu Jaunty (9.04) to Karmic (9.10), and the sound stopped working. As a matter of fact, no sound card was detected. Searching around, it turned out that the problem lied with a wrong kernel version, which actually stems from an apparent bug in the new grub boot loader that ships with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=96&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently upgraded from Ubuntu Jaunty (9.04) to Karmic (9.10), and the sound stopped working. As a matter of fact, no sound card was detected. Searching around, it turned out that the problem lied with a wrong kernel version, which actually stems from an apparent bug in the new grub boot loader that ships with Karmic. Even though I&#8217;m using Ubuntu, this might affect other distributions that use the same boot loader. If you face a similar problem, try the following:</p>
<p>First, check your kernel version:</p>
<ul>
<li><em>sudo uname -r</em></li>
</ul>
<p>If you see a version below 2.6.31, do the following:</p>
<ul>
<li>Delete your old /boot/grub/menu.lst file. Due to an apparent bug, grub will not overwrite it during distribution upgrade or subsequent upgrade-grub commands.</li>
<li>Run<em> sudo update-grub</em>. A new menu.lst will be generated, now pointing to the right kernel.</li>
<li>Install grub on your MBR. First make sure which device holds your MBR (most probably /dev/sda, but it might be /dev/hda if you have an old IDE disk), then run: <em>sudo grub-install /dev/sda</em> (replace with the proper device)</li>
<li>Reboot.</li>
</ul>
<p>Hope this helps.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=96&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2009/12/31/fixing-sound-after-upgrading-to-ubuntu-9-10-karmic-koala/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>
	</item>
		<item>
		<title>Dealing with mouse and touchpad freezes in Linux</title>
		<link>http://xpapad.wordpress.com/2009/09/09/dealing-with-mouse-and-touchpad-freezes-in-linux/</link>
		<comments>http://xpapad.wordpress.com/2009/09/09/dealing-with-mouse-and-touchpad-freezes-in-linux/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 07:18:05 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[click]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[freezes]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[touchpad]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=84</guid>
		<description><![CDATA[Sometimes the desktop in several Linux distributions freezes for no apparent reason; active windows can still be used, and the mouse pointer can be moved around, but clicking is impossible. Furthermore, your touchpad can no longer be controlled; the &#8216;Touchpad&#8217; tab disappears from the System / Preferences / Mouse menu. Even if mouse functionality eventually [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=84&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Sometimes the desktop in several Linux distributions freezes for no apparent reason; active windows can still be used, and the mouse pointer can be moved around, but clicking is impossible. Furthermore, your touchpad can no longer be controlled; the &#8216;Touchpad&#8217; tab disappears from the System / Preferences / Mouse menu. Even if mouse functionality eventually returns, the touchpad remains uncontrollable. This extremely annoying bug occurs randomly and may last for a couple of seconds, or until you restart your X server.</p>
<p style="text-align:justify;">If you check your system&#8217;s log after such an event (/var/log/messages) you will notice a few entries similar to these:</p>
<p><code>Sep  9 09:38:15 umbra kernel: [ 4939.006198] psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 lost sync at byte 1<br />
Sep  9 09:38:15 umbra kernel: [ 4939.012220] psmouse.c: DualPoint TouchPad at isa0060/serio1/input0 - driver resynched.<br />
</code></p>
<p style="text-align:justify;">Basically this indicates an IRQ conflict between your mouse and your touchpad. This is a Linux kernel bug (I am currently using 2.6.28) and as such it affects most distributions. An easy way to recover both mouse and touchpad functionality without having to restart your X server is restarting the mouse driver. Run the following commands on a terminal window:</p>
<p><code>sudo rmmod psmouse<br />
sudo modprobe psmouse</code></p>
<p>If there is no terminal window open, you can use one of the following:</p>
<ul>
<li> In Gnome or KDE, press Alt + F2, type <em>gnome-terminal</em> and press Enter</li>
<li> Press Control + Alt + F1, login with your username and password, type the commands, then press Control + Alt + F7 to get back to X</li>
</ul>
<p>Hopefully a future kernel release will fix this problem for good.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=84&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2009/09/09/dealing-with-mouse-and-touchpad-freezes-in-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>
	</item>
		<item>
		<title>Selecting language of multilingual web sites</title>
		<link>http://xpapad.wordpress.com/2009/09/03/selecting-language-of-multilingual-web-sites/</link>
		<comments>http://xpapad.wordpress.com/2009/09/03/selecting-language-of-multilingual-web-sites/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 07:56:31 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[multilingual]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=64</guid>
		<description><![CDATA[Multilingual sites will usually offer a way to their users to switch between languages of the content, either through a link in their pages or through the configuration of user preferences. For first-time visitors, however, a site needs a way to determine their prefered language(s). The standard way to identify this is by inspecting the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=64&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">
Multilingual sites will usually offer a way to their users to switch between languages of the content, either through a link in their pages or through the configuration of user preferences. For first-time visitors, however, a site needs a way to determine their prefered language(s). The standard way to identify this is by inspecting the <b><i>Accept-Language</i></b> HTTP header sent to the site by the user&#8217;s browser.
</p>
<p style="text-align:justify;">
According to the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">HTTP 1.1 Specification</a>, the Accept-Language header can be used to assign a weight to each language, determining the users&#8217; prefered order of natural languages of multilingual content. For example,<br />
<code style="font-size:12px;"><br />
Accept-Language: el,en;q=0.5,fr;q=0.4<br />
</code><br />
means that the user prefers Greek content, but if it is not available then English and French are also acceptable, with English having a higher priority.
</p>
<p style="text-align:justify;">
You can parse the Accept-Language header to determine the appropriate language. Although a simple parsing can be used in most cases, addressing the gritty details of the specification can be a bit tricky. Here is an implementation of the parsing algorithm in PHP. It might be an overkill, but it gives you a pretty good idea:
</p>
<p>
<code><span style="color:#000000;"><br />
<span style="color:#0000BB;">&lt;?<br />$default_lang&nbsp;</span><span style="color:#007700;">=&nbsp;</span><span style="color:#DD0000;">"en"</span><span style="color:#007700;">;</p>
<p>function&nbsp;</span><span style="color:#0000BB;">sort_descending_weights</span><span style="color:#007700;">(&nbsp;</span><span style="color:#0000BB;">$a</span><span style="color:#007700;">,&nbsp;</span><span style="color:#0000BB;">$b&nbsp;</span><span style="color:#007700;">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#FF8000;">#&nbsp;Each&nbsp;array&nbsp;element&nbsp;is&nbsp;a&nbsp;(lang,weight)&nbsp;pair<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#007700;">if&nbsp;(&nbsp;</span><span style="color:#0000BB;">$a</span><span style="color:#007700;">[&nbsp;</span><span style="color:#0000BB;">1&nbsp;</span><span style="color:#007700;">]&nbsp;!=&nbsp;</span><span style="color:#0000BB;">$b</span><span style="color:#007700;">[&nbsp;</span><span style="color:#0000BB;">1&nbsp;</span><span style="color:#007700;">]&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(&nbsp;</span><span style="color:#0000BB;">$a</span><span style="color:#007700;">[&nbsp;</span><span style="color:#0000BB;">1&nbsp;</span><span style="color:#007700;">]&nbsp;&lt;&nbsp;</span><span style="color:#0000BB;">$b</span><span style="color:#007700;">[&nbsp;</span><span style="color:#0000BB;">1&nbsp;</span><span style="color:#007700;">]&nbsp;)&nbsp;?&nbsp;</span><span style="color:#0000BB;">1&nbsp;</span><span style="color:#007700;">:&nbsp;-</span><span style="color:#0000BB;">1</span><span style="color:#007700;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#FF8000;">#&nbsp;If&nbsp;two&nbsp;languages&nbsp;have&nbsp;the&nbsp;same&nbsp;weight,&nbsp;then&nbsp;we&nbsp;might&nbsp;want&nbsp;to&nbsp;impose&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;our&nbsp;own&nbsp;precedence.&nbsp;Put&nbsp;your&nbsp;own&nbsp;ordering&nbsp;code&nbsp;here.&nbsp;For&nbsp;simplicity,&nbsp;we<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;just&nbsp;assume&nbsp;that&nbsp;the&nbsp;default&nbsp;language&nbsp;takes&nbsp;priority.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#007700;">if&nbsp;(&nbsp;</span><span style="color:#0000BB;">$a</span><span style="color:#007700;">[&nbsp;</span><span style="color:#0000BB;">0&nbsp;</span><span style="color:#007700;">]&nbsp;==&nbsp;</span><span style="color:#0000BB;">$default_lang&nbsp;</span><span style="color:#007700;">)&nbsp;return&nbsp;-</span><span style="color:#0000BB;">1</span><span style="color:#007700;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;</span><span style="color:#0000BB;">$b</span><span style="color:#007700;">[&nbsp;</span><span style="color:#0000BB;">0&nbsp;</span><span style="color:#007700;">]&nbsp;==&nbsp;</span><span style="color:#0000BB;">$default_lang&nbsp;</span><span style="color:#007700;">)&nbsp;return&nbsp;</span><span style="color:#0000BB;">1</span><span style="color:#007700;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;return&nbsp;</span><span style="color:#0000BB;">0</span><span style="color:#007700;">;<br />}</p>
<p>function&nbsp;</span><span style="color:#0000BB;">is_language_available</span><span style="color:#007700;">(&nbsp;</span><span style="color:#0000BB;">$lang&nbsp;</span><span style="color:#007700;">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color:#0000BB;">true</span><span style="color:#007700;">;<br />}</p>
<p>function&nbsp;</span><span style="color:#0000BB;">get_prefered_language</span><span style="color:#007700;">(&nbsp;)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;global&nbsp;</span><span style="color:#0000BB;">$default_lang</span><span style="color:#007700;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#FF8000;">#&nbsp;If&nbsp;no&nbsp;Accept_Language&nbsp;header&nbsp;exists,&nbsp;use&nbsp;the&nbsp;site's&nbsp;default&nbsp;language<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#007700;">if&nbsp;(&nbsp;!</span><span style="color:#0000BB;">in_array</span><span style="color:#007700;">(&nbsp;</span><span style="color:#DD0000;">'HTTP_ACCEPT_LANGUAGE'</span><span style="color:#007700;">,&nbsp;</span><span style="color:#0000BB;">$_SERVER&nbsp;</span><span style="color:#007700;">)&nbsp;)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color:#0000BB;">$default_lang</span><span style="color:#007700;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#FF8000;">#&nbsp;Parse&nbsp;the&nbsp;header.&nbsp;A&nbsp;*&nbsp;indicates&nbsp;any&nbsp;language&nbsp;not&nbsp;explicitly&nbsp;specified<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#0000BB;">$h&nbsp;</span><span style="color:#007700;">=&nbsp;</span><span style="color:#0000BB;">$_SERVER</span><span style="color:#007700;">[&nbsp;</span><span style="color:#DD0000;">'HTTP_ACCEPT_LANGUAGE'&nbsp;</span><span style="color:#007700;">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#0000BB;">$list&nbsp;</span><span style="color:#007700;">=&nbsp;</span><span style="color:#0000BB;">explode</span><span style="color:#007700;">(&nbsp;</span><span style="color:#DD0000;">","</span><span style="color:#007700;">,&nbsp;</span><span style="color:#0000BB;">$h&nbsp;</span><span style="color:#007700;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;</span><span style="color:#0000BB;">count</span><span style="color:#007700;">(&nbsp;</span><span style="color:#0000BB;">$list&nbsp;</span><span style="color:#007700;">)&nbsp;==&nbsp;</span><span style="color:#0000BB;">0&nbsp;</span><span style="color:#007700;">)&nbsp;return&nbsp;</span><span style="color:#0000BB;">$default_lang</span><span style="color:#007700;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#0000BB;">$prefs&nbsp;</span><span style="color:#007700;">=&nbsp;array();<br />&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(&nbsp;</span><span style="color:#0000BB;">$list&nbsp;</span><span style="color:#007700;">as&nbsp;</span><span style="color:#0000BB;">$langs&nbsp;</span><span style="color:#007700;">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#0000BB;">$tmp&nbsp;</span><span style="color:#007700;">=&nbsp;</span><span style="color:#0000BB;">explode</span><span style="color:#007700;">(&nbsp;</span><span style="color:#DD0000;">";q="</span><span style="color:#007700;">,&nbsp;</span><span style="color:#0000BB;">$langs&nbsp;</span><span style="color:#007700;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#0000BB;">$lang&nbsp;</span><span style="color:#007700;">=&nbsp;</span><span style="color:#0000BB;">$tmp</span><span style="color:#007700;">[&nbsp;</span><span style="color:#0000BB;">0&nbsp;</span><span style="color:#007700;">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#0000BB;">$weight&nbsp;</span><span style="color:#007700;">=&nbsp;</span><span style="color:#0000BB;">count</span><span style="color:#007700;">(&nbsp;</span><span style="color:#0000BB;">$tmp&nbsp;</span><span style="color:#007700;">)&nbsp;==&nbsp;</span><span style="color:#0000BB;">1&nbsp;</span><span style="color:#007700;">?&nbsp;</span><span style="color:#0000BB;">1.0&nbsp;</span><span style="color:#007700;">:&nbsp;</span><span style="color:#0000BB;">$tmp</span><span style="color:#007700;">[&nbsp;</span><span style="color:#0000BB;">1&nbsp;</span><span style="color:#007700;">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#0000BB;">array_push</span><span style="color:#007700;">(&nbsp;</span><span style="color:#0000BB;">$prefs</span><span style="color:#007700;">,&nbsp;array(&nbsp;</span><span style="color:#0000BB;">$lang</span><span style="color:#007700;">,&nbsp;</span><span style="color:#0000BB;">$weight&nbsp;</span><span style="color:#007700;">)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#FF8000;">#&nbsp;The&nbsp;specification&nbsp;doesn't&nbsp;enforce&nbsp;weight&nbsp;to&nbsp;be&nbsp;in&nbsp;descending&nbsp;order.<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Sort&nbsp;the&nbsp;parsed&nbsp;values.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#0000BB;">usort</span><span style="color:#007700;">(&nbsp;</span><span style="color:#0000BB;">$prefs</span><span style="color:#007700;">,&nbsp;</span><span style="color:#0000BB;">sort_descending_weights&nbsp;</span><span style="color:#007700;">);&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#FF8000;">#&nbsp;Pick&nbsp;an&nbsp;available&nbsp;language.&nbsp;is_language_available()&nbsp;is&nbsp;a&nbsp;stub.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#007700;">foreach&nbsp;(&nbsp;</span><span style="color:#0000BB;">$prefs&nbsp;</span><span style="color:#007700;">as&nbsp;</span><span style="color:#0000BB;">$pref&nbsp;</span><span style="color:#007700;">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list(&nbsp;</span><span style="color:#0000BB;">$lang</span><span style="color:#007700;">,&nbsp;</span><span style="color:#0000BB;">$weight&nbsp;</span><span style="color:#007700;">)&nbsp;=&nbsp;</span><span style="color:#0000BB;">$pref</span><span style="color:#007700;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;</span><span style="color:#0000BB;">is_language_available</span><span style="color:#007700;">(&nbsp;</span><span style="color:#0000BB;">$lang&nbsp;</span><span style="color:#007700;">)&nbsp;)&nbsp;return&nbsp;</span><span style="color:#0000BB;">$lang</span><span style="color:#007700;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color:#0000BB;">$default_lang</span><span style="color:#007700;">;<br />}&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>echo&nbsp;</span><span style="color:#0000BB;">get_prefered_language</span><span style="color:#007700;">();<br /></span><span style="color:#0000BB;">?&gt;<br /></span><br />
</span><br />
</code>
</p>
<p style="text-align:justify;">
In Firefox 3.0, users may specify their prefered content languages in the Preferences / Content / Languages Menu:
</p>
<table border="0" cellspacing="6">
<tr>
<td>
<img src="http://xpapad.files.wordpress.com/2009/09/prefs.png?w=300&#038;h=251" alt="prefs" title="prefs" width="300" height="251" class="alignnone size-medium wp-image-69" />
</td>
<td>
<img src="http://xpapad.files.wordpress.com/2009/09/lang.png?w=300&#038;h=285" alt="lang" title="lang" width="300" height="285" class="alignnone size-medium wp-image-68" />
</td>
</tr>
</table>
<p style="text-align:justify;">
For ease of use, exact weights don&#8217;t need to be specified. When users change the order of the languages in the list, the browser will calculate and send the appropriate weights in the HTTP request.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=64&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2009/09/03/selecting-language-of-multilingual-web-sites/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>

		<media:content url="http://xpapad.files.wordpress.com/2009/09/prefs.png?w=300" medium="image">
			<media:title type="html">prefs</media:title>
		</media:content>

		<media:content url="http://xpapad.files.wordpress.com/2009/09/lang.png?w=300" medium="image">
			<media:title type="html">lang</media:title>
		</media:content>
	</item>
		<item>
		<title>4 + 1 ways to celebrate the Software Freedom Day</title>
		<link>http://xpapad.wordpress.com/2009/09/02/4-1-ways-to-celebrate-the-software-freedom-day/</link>
		<comments>http://xpapad.wordpress.com/2009/09/02/4-1-ways-to-celebrate-the-software-freedom-day/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 09:06:10 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[fsf]]></category>
		<category><![CDATA[software freedom day]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=54</guid>
		<description><![CDATA[With the Software Freedom Day fast approaching, the Free Software Foundation and communities across the world are planning their activities and are preparing to celebrate and promote Free Software in their region. Joining your local community and partaking to its activities is strongly suggested; however, here are some ideas for individual promotion of Free Software: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=54&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">With the <a target="_blank" href="http://softwarefreedomday.org/">Software Freedom Day</a> fast approaching, the <a target="_blank" href="www.fsf.org">Free Software Foundation</a> and communities across the world are planning their activities and are preparing to celebrate and promote Free Software in their region. Joining your local community and partaking to its activities is strongly suggested; however, here are some ideas for individual promotion of Free Software:</p>
<ul style="text-align:justify;">
<li style="margin-bottom:8px;"><strong>Spread the word.</strong> Mention it to your family, your friends, your colleagues, your classmates. You may be surprised by how many people may begin to care after they actually <em>hear</em> about a new idea. You will find that the &#8220;people don&#8217;t care about this kind of stuff&#8221; is a common misconception; many people <strong><em>do</em></strong> care and will often seek ways to help.</li>
<li style="margin-bottom:8px;"><strong>Make a T-shirt.</strong> Select a logo of your favorite Free Software application or organization and print it on a T-shirt. Wear it in public. Some will see. Some will be curious. Some will care.</li>
<li style="margin-bottom:8px;"><strong>Promote it in your virtual community.</strong> Blog it, digg it, twit it, post it on Facebook. If you play a game, talk about it in the game. If you <em>run</em> a game, announce it to your players. For example, here is the announcement planned for an online game I&#8217;m currently coding for:
<pre>Today we celebrate the Software Freedom Day; we celebrate the freedom in our
virtual world, a world made possible by Free Software. Our code is built on
Free Software and has been powered by and running on Free Software for 17 years
now. Our thanks to those who allowed us to revive and enjoy Dragonlance for
all this time.</pre>
</li>
<li>Use it as a chance to <strong>get involved</strong> in activities related to software freedom. You don&#8217;t need to be a programmer to help; you can help with translations, bug reports, or even activities not related to software at all: map your neighborhood using <a target="_blank" href="http://www.openstreetmap.org/">OpenStreetMap</a>, upload your art to the <a target="_blank" href="http://openclipart.org/">Open Clip Art Library</a>, publish your digital content under an appropriate <a target="_blank" href="http://creativecommons.org/">Creative Commons License</a>.</li>
</ul>
<p style="text-align:justify;">Maybe the most important thing you can do that day is <strong>learn more</strong> about Software Freedom and <strong>reflect</strong> on how it applies to you and your community. Checkout <a target="_blank" href="http://www.gnu.org/philosophy/free-sw.html">The Free Software Definition</a>, learn <a target="_blank" href="http://www.gnu.org/philosophy/schools.html">Why Schools Should Use Exclusively Free Software</a> and understand why <a target="_blank" href="http://www.gnu.org/philosophy/your-freedom-needs-free-software.html">Your Freedom Needs Free Software</a>. Don&#8217;t take these at face value; <strong><em>think</em></strong> about them, and form your own opinion. Then act.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=54&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2009/09/02/4-1-ways-to-celebrate-the-software-freedom-day/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>
	</item>
		<item>
		<title>OLPC Deployment in the Greek village of Sminthi</title>
		<link>http://xpapad.wordpress.com/2009/08/30/olpc-deployment-in-the-greek-village-of-sminthi/</link>
		<comments>http://xpapad.wordpress.com/2009/08/30/olpc-deployment-in-the-greek-village-of-sminthi/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 16:47:24 +0000</pubDate>
		<dc:creator>xpapad</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[ellak]]></category>
		<category><![CDATA[olpc]]></category>
		<category><![CDATA[sugar]]></category>

		<guid isPermaLink="false">http://xpapad.wordpress.com/?p=38</guid>
		<description><![CDATA[The last two days I&#8217;ve been attending the Software Freedom Kosova Conference 2009, which was really interesting and had quite an impressive turnout. In the conference I presented our work for the deployment of some XO-1 laptops, part of the One Laptop Per Child project, to some students of the High School of the Greek [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=38&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The last two days I&#8217;ve been attending the <a href="http://kosovasoftwarefreedom.org/">Software Freedom Kosova Conference 2009</a>, which was really interesting and had quite an impressive turnout. In the conference I presented our work for the deployment of some XO-1 laptops, part of the <a href="http://laptop.org">One Laptop Per Child</a> project, to some students of the High School of the Greek village of Sminthi. You can checkout the <a href="http://olpc-gr.wikia.com/wiki/One_Laptop_Per_Child_Wiki">project&#8217;s Wiki</a> for some ongoing work; here I will present the paper we submitted to the Conference.</p>
<hr />
<p style="margin-bottom:0;" align="center">
<p style="margin-bottom:0;" align="center"><span style="font-size:large;"><strong>OLPC Deployment in Sminthi</strong></span></p>
<p style="margin-bottom:0;" align="center">
<p align="center">Xenofon Papadopoulos, Athanasios Priftis,  Pavlos Hatzopoulos<span style="background:transparent none repeat scroll 0 0;">, Theodoros Karounos </span></p>
<p align="center"><span style="background:transparent none repeat scroll 0 0;">Re-public Online Magazine, Greek Free/Open Source Software Community, TEI of Athens</span></p>
<p align="center"><span style="background:transparent none repeat scroll 0 0;"><span style="text-decoration:underline;">xenofon@edu.teiath.gr</span>, <span style="text-decoration:underline;">priftis@re-public.gr</span>, <span style="text-decoration:underline;">phatzopoulos@re-public.gr</span>, <span style="text-decoration:underline;">karounos@re-public.gr</span></span></p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-left:.68in;margin-right:.75in;margin-bottom:0;" align="justify"><span style="font-size:10px;"><span style="background:transparent none repeat scroll 0 0;"><strong>Abstract.</strong> From September 2009 students in the Greek high school of Sminthi will use OLPC XO-1 laptops inside and outside the classroom. In this paper we present our methodology for the OLPC deployment, ranging from the creation of a human network of teachers, members of the local community, social researchers and IT specialists, to the acquisition of the laptops, the development of applications and educational content, and the technical support of the project. We describe the holistic approach used to implement the project, and highlight the role of communities as the means to bring together and mobilize end users and technical experts. We present the use of Free Software as a fundamental component of such an approach, and demonstrate how it can be used to address both technical and non-technical aspects of the implementation. Finally, we present our plans for further development and future OLPC deployments.</span></span></p>
<p style="margin-bottom:0;" align="justify">
<p><b>1. Introduction</b></p>
<p style="margin-bottom:0;" align="justify">Modern educational approaches promote blended learning, collaboration and multiple educational resources. The Greek Pedagogical Institute, designing and overseeing the educational process in the Greek public schools of Primary and Secondary education, advocates the creation of &#8220;an open and attractive educational environment, through the application of alternative pedagogical approaches and the development of teaching practices based on communication (student-centered approach, collaborative teaching)&#8221;[1]. Furthermore, the Pedagogical Institute distinguishes the notion of <span style="font-style:normal;">educational</span><em> concepts</em> to that of the <span style="font-style:normal;">book&#8217;s</span><em> content</em>, requiring teaches to deliver the first by any means necessary, using the official book as a reference. However in many Greek schools a traditional approach &#8211; use of only the official book, recited by the teacher &#8211; is still prevalent. The special conditions at the high school of Sminthi expose the shortcomings of that approach, and offer a fertile ground for the adoption of the new teaching methods.</p>
<p style="margin-bottom:0;" align="justify">Located on the remote, mountainous region of Xanthi, in Greece, the high school of Sminthi has approximately 140 students enrolled, but attendance varies each year. The lessons are exclusively in Greek. Students, however, are all members of the Muslim minority living in Greece, with their mother tongue being either Pomak or Turkish (or a mix of both), and have graduated from elementary schools where lessons are given in Turkish and Greek. Thus their grasp of the Greek language is weak. The language barrier alone imposes great obstacles to the education of the students.</p>
<p style="margin-bottom:0;" align="justify">In 2008, two high school teachers, Dionysia Psychoyos and Vasilis Rigas, explored alternative teaching approaches that would help them transcend the language barrier. Their subjects, Mathematics and Computer Programming respectively, seemed promising since they are based on concepts, abstractions and symbolisms that depend less on a firm grip of the spoken or written language. They had already ventured in collaborative learning approaches when they encountered Thanasis Priftis and Pavlos Hatzopoulos, editors of the Re-public on-line magazine, who suggested exploring the possibilities offered by the One Laptop Per Child (OLPC) initiative.</p>
<p><b>2. The One Laptop Per Child initiative</b><br />
<b><i>2.1 General</i></b></p>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">The mission of the One Laptop Per Child organization is &#8220;t</span>o create educational opportunities for the world&#8217;s poorest children by providing each child with a rugged, low-cost, low-power, connected laptop with content and software designed for collaborative, joyful, self-empowered learning&#8221;[2]. Its current focus is on the development, construction and deployment of the XO-1 laptop, an inexpensive notebook computer initially intended to be distributed to children in developing countries around the world, to provide them with access to knowledge, and opportunities to &#8220;explore, experiment and express themselves&#8221;[2]. It is shipped with a stripped-down version of the Fedora GNU/Linux operating system and a GUI and set of applications called Sugar, that is intended to help young children collaborate.</p>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">The OLPC project involves several organizational and technological decisions. We could, very broadly, sum them up as follows:</span></p>
<ul>
<li>
<p style="margin-bottom:.1in;"><span style="background:transparent none repeat scroll 0 0;">Innovative, 	worldwide compatible, children friendly, hardware.</span></p>
</li>
<li>
<p style="margin-bottom:.1in;"><span style="background:transparent none repeat scroll 0 0;">Free 	/ Open Source educational operating system and applications 	influenced from the constructionists movement and other learning 	theories.</span></p>
</li>
<li>
<p style="margin-bottom:.1in;"><span style="background:transparent none repeat scroll 0 0;">A 	deployment plan focused on decisions and funding of the centralized 	government.</span></p>
</li>
<li>
<p style="margin-bottom:0;"><span style="background:transparent none repeat scroll 0 0;">A 	third-world development theory based on education as an answer to 	poverty.</span></p>
</li>
</ul>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">There has been a well documented critique[3] on all of these issues and several more. Again, a brief layout:</span></p>
<ul>
<li>
<p style="margin-bottom:.1in;" align="justify"><span style="background:transparent none repeat scroll 0 0;">Developing 	countries have different kind of basic priorities (clean water, 	better nutrition, infrastructures, need for teachers, schools and so 	on). The OLPC project exploits their resources without taking under 	consideration local needs, networks, and practices.</span></p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify"><span style="background:transparent none repeat scroll 0 0;">Although 	around 800.000 XO1 have been shifted to different developing 	countries, there is a wider consensus that smaller orders are very 	difficult to be placed and they were definitely not encouraged or 	planned.</span></p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify"><span style="background:transparent none repeat scroll 0 0;">Local 	teachers&#8217; participation during the projects deployment has been low, 	campaigning on the wider educational changes needed in order to 	apply the learning and technological innovations of OLPC in schools 	has been insignificant.</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">The 	OLPC project has fallen short on the Free / Open Source tool promise 	by, among other things, inviting Microsoft to install a trimmed-down 	Windows XP version on the laptop.</span></p>
</li>
</ul>
<p><b><i>2.2 The case of Greece</i></b></p>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">In Greece, as well as elsewhere, a group of school teachers, academics and open source developers formed an initiative to promote the adoption of OLPC in the Greek primary and secondary education. The initiative promoted the use of the OLPC tools and created tutorials for the development of educational applications on the platform. Furthermore, it proceeded to develop educational content based on concepts included in the school books, including material on astronomy, physics and mathematics[4].</span></p>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">The original model of deployment as conceived by the OLPC was based on large scale orders by the central government and distribution to the students by the Ministry of Education. As the original model failed to deliver, our team attempted to exploit what it perceived as the legacy of the OLPC project:</span></p>
<ul>
<li>
<p style="margin-bottom:.1in;" align="justify"><span style="background:transparent none repeat scroll 0 0;">A 	fresh, better documented, initiative-based discussion on new 	educational practices, stemming from a reinforced need to look upon 	new paradigms of learning.</span></p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify"><span style="background:transparent none repeat scroll 0 0;">A 	better, more affordable, technology built on F/OSS principles and 	tools, creating a new market of educational applications.</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">A 	concept focused on motivating local actors, one worth building local 	communities upon.</span></p>
</li>
</ul>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">Based on the above, the Re-public team sought an alternative model that would not depend on the central government, but on local communities facing their own, specialized needs. As pa</span>rt of these efforts, the team in cooperation with the Union of African Women has in the past organized an evening of &#8220;play and experiments&#8221; with the OLPC, aiming to support the free distribution of XO-1 laptops to the children of immigrants, and has issued an open call to the community for cooperation in projects related to the OLPC. The case of the OLPC deployment in the high school of Sminthi emerged as a result of these actions.</p>
<p><b>3. The OLPC Deployment in Sminthi</b></p>
<p style="margin-bottom:0;" align="justify">The project aims to provide XO-1 laptops to the  third grade students of the high school of Sminthi, along with a set of applications (&#8220;activities&#8221; is the term used by the OLPC to highlight their interactive and educational nature) fully translated in Greek. <span style="background:transparent none repeat scroll 0 0;">The laptops will belong to the school, however the students will keep them for an entire year, both inside and outside the classroom, at the end of which they will be returned to the school. </span></p>
<p style="margin-bottom:0;" align="justify"><span style="background:transparent none repeat scroll 0 0;">The project does not plan to use the laptops as a means to deliver the official educational material already distributed in the classroom, i.e. it does not plan to employ it as an e-book reader of the official school books or as a platform for the existing educational software. Although both are possible, the main goal of the project is to give the teachers and students a platform to develop their own activities, as they see fit. Also the project aims to aid the teachers to develop new content, based on the exclusive needs of the class, and deliver it to the students in any way they deem proper. </span>We should note that, regardless of the need to translate all the applications in Greek, according to the Sugar HCI guidelines the interface of most activities is based on icons and interactive graphical elements, reducing the effects of the language barrier.</p>
<p style="margin-bottom:0;" align="justify">The project is based on the <span style="background:transparent none repeat scroll 0 0;">creation of a human network with a broad and mixed background, centered around the local school community. Participants of the network deliver their own special skills to the project; communication, coordination and cooperation among the team members are essential. Furthermore, a major goal of the project is communicating and delivering its results to a broader circle of researchers, teachers and IT practitioners not involved with the Sminthi case, thus attempting to expand its human network, discover synergies and form links with other communities.</span></p>
<p><b><i>3.1 Roadmap</i></b></p>
<p style="margin-bottom:0;">The following roadmap outlines the history of the project so far and highlights the creation and growth of the human network as the core factor of the project:</p>
<div id="attachment_39" class="wp-caption alignright" style="width: 422px"><img class="size-full wp-image-39" title="paper" src="http://xpapad.files.wordpress.com/2009/08/paper.png" alt="Figure 1 - Roadmap of the OLPC Deployment in Sminthi" width="412" height="386" /><p class="wp-caption-text">Figure 1 - Roadmap of the OLPC Deployment in Sminthi</p></div>
<ul>
<li>
<p style="margin-bottom:.1in;" align="justify"><span style="background:transparent none repeat scroll 0 0;">The 	local teachers met the Re-public team, and discuss the conditions in 	the classroom of the Sminthi high school. The Re-public team 	suggests using OLPC as an experiment.</span></p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify"><span style="background:transparent none repeat scroll 0 0;">Theodoros 	Karounos, coordinator of the Greek OLPC initiative and member of the 	Re-public Board of Directors works with the team to publicize its 	idea and seeks links with communities and experts from several 	disciplines to realize the project. Furthermore, funding is aquired 	to purchase 30 XO-1 laptops, part of which will be given to the high 	school of Sminthi. </span></p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify">The Re-public team 	contacts members of the Greek Free/Open Source Software (F/OSS) 	Community (ELLAK) to handle the technical aspects of the project, 	which involve the configuration of the XO-1 laptops, the translation 	of selected activities into Greek and the development of new 	applications.</p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify">The project is 	presented at a workshop of the F/OSS Conference (<a href="http://conf.ellak.gr/2009/">http://conf.ellak.gr/2009/</a>) at the National Technical University of Athens. In the workshop 	several activities around the OLPC in Greece are presented. Apart 	from the core team members, participants in the workshop include 	high school teaches and independent open source programmers. During 	the workshop, an elementary school teacher requests additional XO-1 	laptops for use in his own school.</p>
</li>
<li>
<p style="margin-bottom:.1in;">The local 	teachers, having explored the capabilities of the XO-1 laptops and 	the Sugar platform running on them, request the development of two 	new applications that will help introduce the students to the 	concepts of 1st and 2nd degree polynomials and the properties of 	simple geometrical shapes. Xenofon Papadopoulos, a member of the 	Greek F/OSS community working for the Technical Educational 	Institute of Athens, agrees to develop the polynomials activity for 	the Sugar platform.</p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify"><span style="background:transparent none repeat scroll 0 0;">Αrlen 	Dilsizian</span>, a researcher in social anthropology, gets involved 	with the project and decides to live in Sminthi for one year and 	study the impact of the OLPC deployment to the classroom, the 	broader educational process, and the students&#8217; life in general on 	behalf of the Re-public team.</p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify">The Re-public 	team, in cooperation with the Greek Research and Technology Network 	(GR-Net), organizes an event where the 30 laptops are tested. In the 	same event, a prototype of the new polynomials activity is presented 	for public trial and comments, and a roadmap for further action is 	laid out.</p>
</li>
<li>
<p style="margin-bottom:.1in;" align="justify">The Greek F/OSS 	community finalizes the translation Sugar, Etoys and selected 	activities into Greek. A wiki, describing the entire project and on 	the development of the new activity, is created at 	<a href="http://olpc-gr.wikia.com/">http://olpc-gr.wikia.com</a>. 	After several iterations of improvements, the activity is uploaded 	to the central repository of Sugar and announced to the community, 	which offers suggestions to improve it and better integrate it with 	the entire Sugar ecosystem.</p>
</li>
<li>
<p style="margin-bottom:0;" align="justify">The Re-public team 	organizes the integration of the various components (laptops, 	configuration, network connectivity, translated and newly developed 	activities) and lays out the plans for the deployment.</p>
</li>
</ul>
<p style="margin-bottom:0;"><span style="background:transparent none repeat scroll 0 0;">As Figure 1 demonstrates, the entire project is revolving around the local school. It begins with the students&#8217; needs, as perceived and understood by the local teachers. It is co-ordinated by the Re-public team, its technical aspects are implemented by the Greek F/OSS Community, and it is evaluated by an independent researcher of social anthropology, who will live and work with the children for the duration of the project. Subsequently, the results will be processed by the teachers and delivered to the rest of the team, which will provide feedback and technical support in a cyclic, iterative process. </span></p>
<p><b><i>3.2 The Role of Free / Open Source Software</i></b></p>
<p style="margin-bottom:0;"><span style="background:transparent none repeat scroll 0 0;">Open source software has been a core ingredient of the project in every step from its conception to its implementation. An important pedagogical goal of the project is to encourage the high school children &#8211; and other IT practitioners, such as university students and teachers &#8211; to explore the platform and its applications and possibly develop their own content. The open nature of the platform and all its tools makes it possible to look at the current code, learn from it, modify it and use it as the basis for further development, unencumbered of both technical obstacles and licensing issues. Furthermore, the community-based development and support model practiced by the open source movement makes it possible to realize the project by drawing upon the resources of local and remote communities such as the Greek F/OSS and the Sugar Development communities.</span></p>
<p><b>4. Conclusion</b></p>
<p style="margin-bottom:0;">The project of the OLPC deployment in Sminthi does not attempt to introduce IT technologies or alter the educational approach in the Greek Primary and Secondary education. Nor does it care about the digital representation of existing material. It is a project revolving around the students and the local teachers, their exclusive needs as they, themselves, understand them. It advocates and supports the creation of ad-hoc applications and content, and monitors the projects&#8217; impact on the teachers&#8217; and students&#8217;  both inside and outside the classroom. It is based on a new model of action: a model of <span style="text-decoration:none;"><span style="background:transparent none repeat scroll 0 0;">small, low-cost d</span></span><span style="background:transparent none repeat scroll 0 0;">eployments, supported by </span><span style="text-decoration:none;"><span style="background:transparent none repeat scroll 0 0;">unofficial communities forming a human network with a broad and mixed multidisciplinary background, centered around local representatives and end-users to address real, local needs. </span></span></p>
<p><b>5. Future plans</b></p>
<p style="margin-bottom:0;font-weight:normal;">Future plans of the project include the actual deployment, that will take place at the beginning of September 2009. Of particular interest to the project is the evaluation of the deployment&#8217;s effects, both inside and outside the classroom, which will take place during the entire year. Finally, the project aims to create links that will result to an active community which will advocate and promote the use of free software in education.</p>
<p><b>6. References</b></p>
<div id="Bibliography1" style="background:transparent none repeat scroll 0 0;" dir="ltr">
<p style="margin-bottom:0;">[1] Sotirios Glavas, <cite>Quality of 	Education and Pedagogical Institute</cite>, 	<span style="color:#000080;"><span lang="zxx"><span style="text-decoration:underline;">http://www.edugate.gr/ek-ty/01-06-09-13</span></span></span>, 	2009</p>
<p style="margin-bottom:0;">[2] One Laptop Per Child Association, 	<cite>One Laptop per Child (OLPC), a low-cost, connected laptop for 	the world&#8217;s children&#8217;s education</cite>, 	<span style="color:#000080;"><span lang="zxx"><span style="text-decoration:underline;">http://laptop.org/en/vision/index.shtml</span></span></span>, 	2008</p>
<p style="margin-bottom:0;">[3] Lee Felsenstein, <cite>Problems 	with the OLPC approach</cite>, 	<span style="color:#000080;"><span lang="zxx"><span style="text-decoration:underline;">http://www.fonly.typepad.com/fonlyblog/2005/11/problems_with_t.html</span></span></span>, 	2005</p>
<p style="margin-bottom:0;">[4] Theodoros Karounos, <cite>Web Site 	of the OLPC at the University of Patras / CTI</cite>, 	<span style="color:#000080;"><span lang="zxx"><span style="text-decoration:underline;">http://www.karounos.gr/blog/?p=32</span></span></span>, 	2007</p>
</div>
<p style="font-weight:normal;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/xpapad.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/xpapad.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/xpapad.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/xpapad.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/xpapad.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/xpapad.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/xpapad.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/xpapad.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/xpapad.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/xpapad.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/xpapad.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/xpapad.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/xpapad.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/xpapad.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xpapad.wordpress.com&amp;blog=7796287&amp;post=38&amp;subd=xpapad&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xpapad.wordpress.com/2009/08/30/olpc-deployment-in-the-greek-village-of-sminthi/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2a4f63dda02b4727931c1ead5a63ef15?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">xpapad</media:title>
		</media:content>

		<media:content url="http://xpapad.files.wordpress.com/2009/08/paper.png" medium="image">
			<media:title type="html">paper</media:title>
		</media:content>
	</item>
	</channel>
</rss>
