<?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>mcmlxxii &#187; Linux</title>
	<atom:link href="http://mcmlxxii.co.uk/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://mcmlxxii.co.uk</link>
	<description></description>
	<lastBuildDate>Thu, 22 Jul 2010 17:13:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Siemens SE 587 Dynamic DNS Update script</title>
		<link>http://mcmlxxii.co.uk/2009/09/20/siemens-se-587-dynamic-dns-update-script/</link>
		<comments>http://mcmlxxii.co.uk/2009/09/20/siemens-se-587-dynamic-dns-update-script/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 10:07:02 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[afraid]]></category>
		<category><![CDATA[automatic]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[freedns]]></category>
		<category><![CDATA[IP address]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[siemens]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://mcmlxxii.co.uk/?p=177</guid>
		<description><![CDATA[Quick script I knocked up to update dynamic dns record at freedns.afraid.org, querying the router for its IP address. Uses expect to login via telnet to the router and curl to GET the http update url. #!/bin/bash # Siemens SE 587 freedns update script # Jonathan Cutting mcmlxxii.co.uk # 20/9/2009 # Config router_login="your_login_name" router_password="your_login_password" router_address="192.168.1.1" [...]]]></description>
			<content:encoded><![CDATA[<p>Quick script I knocked up to update dynamic dns record at freedns.afraid.org, querying the router for its IP address. Uses expect to login via telnet to the router and curl to GET the http update url.</p>
<p><code>#!/bin/bash<br />
# Siemens SE 587 freedns update script<br />
# Jonathan Cutting mcmlxxii.co.uk<br />
# 20/9/2009</code></p>
<p><code># Config<br />
router_login="your_login_name"<br />
router_password="your_login_password"<br />
router_address="192.168.1.1"<br />
afraid_url="your_dynamic_dns_url"<br />
afraid_update_url="http://freedns.afraid.org/dynamic/update.php?YOUR_UPDATE_CODE"<br />
# End config</code></p>
<p><code>
<pre>dns_record=$(dig +short $afraid_url)
ip_address=$(expect -c "
    set timeout 15
    spawn telnet $router_address
    expect gin:
    send \"$router_login\r\"
    expect word:
    send \"$router_password\r\"
    expect >
    send \"ip show interface ipwan\r\"
    expect >
    exit
" | grep Ipaddr | awk '{print $3}' | sed -e 's/^M//')</pre>
<p></code></p>
<p><code>
<pre>if [ $ip_address != $dns_record ]
then
    date
    curl $afraid_update_url
fi
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2009/09/20/siemens-se-587-dynamic-dns-update-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turning Firefox into a web screensaver using a bash script</title>
		<link>http://mcmlxxii.co.uk/2009/04/19/turning-firefox-into-a-web-screensaver-using-a-bash-script/</link>
		<comments>http://mcmlxxii.co.uk/2009/04/19/turning-firefox-into-a-web-screensaver-using-a-bash-script/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 21:44:26 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[command line options]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[screensaver]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xulrunner]]></category>

		<guid isPermaLink="false">http://mcmlxxii.co.uk/?p=164</guid>
		<description><![CDATA[There&#8217;s a little program available for windows that lets you turn your browser into a screensaver, looping through various web content. However, there are 2 things wrong with it. Firstly it costs money. Secondly it doesn&#8217;t run on linux. So what? &#8211; we have bash &#8211; and after a bit of digging around this morning [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a little program available for windows that lets you turn your browser into a screensaver, looping through various web content. However, there are 2 things wrong with it. Firstly it costs money. Secondly it doesn&#8217;t run on linux.</p>
<p>So what? &#8211; we have bash &#8211; and after a bit of digging around this morning and combining a few bits and pieces this is my version for Ubuntu <img src='http://mcmlxxii.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Firstly, in order to run firefox full screen we need the <a href="http://www.krickelkrackel.de/autohide/" target="_blank">AutoHide plugin</a>, which appears to have been written by someone with an interesting sense of humour.</p>
<p>Secondly, a small alteration needs to be made to the  javascript prefs file (.mozilla/firefox/$profile/prefs.js, $profile =  your profile). THIS MUST BE DONE WITH THE BROWSER CLOSED as Firefox overwrites the file on shutdown. Add these two lines at the end of the file:</p>
<p><code>user_pref("browser.link.open_external", 1);<br />
user_pref("browser.link.open_newwindow", 1);</code></p>
<p>Now that&#8217;s done there&#8217;s just a little bash script. Feel free to hack but if you improve it please let me know! I just saved the following few lines as a file &#8220;Webscreen&#8221; in my home directory:</p>
<p><code> </code></p>
<pre>#!/bin/bash

remoteclient=$(find /usr/lib/ -type f -name mozilla-xremote-client | grep -m 1 xulrunner)

if [ `ps -e | grep firefox | wc -l` -eq 0 ]; then

    /usr/bin/firefox -fullscreen &#038;
    sleep 5

fi

while [ `ps -e | grep firefox | wc -l` -gt 0 ]; do

    urls=$(cat /home/huff/Desktop/pages)

    for i in $urls
        do
        $remoteclient -a firefox "openurl($i)"

        if [ $? -gt 0 ]; then
            echo "Firefox not running or ignoring me, bailing out...."
            killall firefox
            exit 0
        fi
        sleep 15
        done
done
exit 0</pre>
<p>Note the path to the mozilla-xremote-client &#8211; this is correct on Ubuntu Jaunty but I had to use find to well, you know, find it:<br />
<code><br />
find /usr/lib -iname \*mozilla-xremote\*</code></p>
<p>As can be seen the script takes the pages you want to cycle through from a text file called (I felt quite pleased with this) &#8220;pages&#8221; on the Desktop, one url on each line such as:</p>
<p><code></p>
<p>http://bbc.co.uk</p>
<p>http://flickr.com</p>
<p>http://yoursite.whatever.com</p>
<p></code></p>
<p>and scrolls through the selection every 15 seconds.</p>
<p>The last detail is to<br />
<code><br />
chmod +x ~/Webscreen<br />
</code></p>
<p>and add a Custom Application Launcher to the panel. Thanks to mozilla for continuing the <a href="http://www.mozilla.org/unix/remote.html" target="_blank">command line options</a> started by Netscape and the cool AutoHide plugin, this was pretty easy. Hope it helps someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2009/04/19/turning-firefox-into-a-web-screensaver-using-a-bash-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gedit document words autocompletion plugin</title>
		<link>http://mcmlxxii.co.uk/2009/02/01/gedit-document-words-autocompletion-plugin/</link>
		<comments>http://mcmlxxii.co.uk/2009/02/01/gedit-document-words-autocompletion-plugin/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 00:22:54 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[8.10]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[autocompletion]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[ibex]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://mcmlxxii.co.uk/?p=153</guid>
		<description><![CDATA[I followed a submission to reddit the other day highlighting a few choice plugins for gedit, as I am fond of using the default GNOME text editor. One plugin in particular caught my eye, the document words autocompletion plugin, written by Perriman. Retyping my inventive variable names (not to mention the oft flowery default php [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mcmlxxii.co.uk/wp-content/uploads/2009/02/geditdocwords.jpg"><img class="size-medium wp-image-154 alignright" title="geditdocwords" src="http://mcmlxxii.co.uk/wp-content/uploads/2009/02/geditdocwords-300x174.jpg" alt="Gedit autocompletion plugin in action" width="300" height="174" /></a></p>
<p>I followed a submission to reddit the other day highlighting a <a href="http://www.makeuseof.com/tag/top-plugins-to-extend-and-make-gedit-a-more-useful-text-editor-linux/">few choice plugins</a> for gedit, as I am fond of using the default GNOME text editor. One plugin in particular caught my eye, the document words autocompletion plugin, written by Perriman. Retyping my inventive variable names (not to mention the oft flowery default php function names) is both error-prone and onerous and this plugin is the perfect remedy.</p>
<p>The following applies to Ubuntu Intrepid. I&#8217;m using 64 bit, but there&#8217;s no difference for 32 bit.</p>
<p>The plugin is not packaged in with the gedit-plugins package and needs to be compiled. It depends on quite a few packages. I chose to cheat a little when installing the required development libraries by first installing the build dependencies for gedit itself. If you haven&#8217;t already installed it, the build-essential package will install the most commonly used compilation tools too:</p>
<p><code>sudo apt-get install build-essential<br />
sudo apt-get build-dep gedit gedit-plugins</code></p>
<p>Then download the source. The document auto completion plugin depends on Perriman&#8217;s gtksourcecompletion, which also needs to be compiled first. The source is available from <a href="http://sourceforge.net/project/showfiles.php?group_id=212508&amp;package_id=255603&amp;release_id=647663">this Sourceforge page</a>.</p>
<p>Once extracted and in the directory:</p>
<p><code>./configure --prefix=/usr<br />
make<br />
sudo make install</code></p>
<p>The plugin itself is also on Sourceforge, the 0.51 version is now on the <a href="http://sourceforge.net/project/showfiles.php?group_id=212508&amp;release_id=657711&amp;package_id=257859">download page</a>.  Again, once extracted and in the directory:</p>
<p><code>./configure --prefix=/usr<br />
make<br />
sudo make install</code></p>
<p>and assuming there are no errors, the plugin should appear in the gedit plugins list (Edit &gt; Preferences &gt; Plugins). Now all I need to do it try to train my left hand pinky not to keep stabbing the tab key for autocompletion!</p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2009/02/01/gedit-document-words-autocompletion-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP class using Imagick &#8211; resize, reflect or drop shadow</title>
		<link>http://mcmlxxii.co.uk/2009/01/06/php-class-imagick-resize-reflect-drop-shadow/</link>
		<comments>http://mcmlxxii.co.uk/2009/01/06/php-class-imagick-resize-reflect-drop-shadow/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 15:19:05 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[imagick]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://mcmlxxii.co.uk/?p=124</guid>
		<description><![CDATA[I&#8217;ve been spending a bit of time getting to know PHP classes over the Christmas holiday, and I&#8217;ve written a couple to test out my knowledge. The first is an image uploading class, which checks for various problems with files prior to moving them to a destination directory. It checks: that the file actually exists [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mcmlxxii.co.uk/wp-content/uploads/2009/01/3156767211_5f3b53513b.jpg"><img class="alignright size-medium wp-image-133" title="Imagick used to generate reflection" src="http://mcmlxxii.co.uk/wp-content/uploads/2009/01/3156767211_5f3b53513b-155x300.jpg" alt="Imagick used to generate reflection" width="140" height="270" /></a>I&#8217;ve been spending a bit of time getting to know PHP classes over the Christmas holiday, and I&#8217;ve written a couple to test out my knowledge.<br />
The first is an image uploading class, which checks for various problems with files prior to moving them to a destination directory. It checks:</p>
<ul>
<li>that the file actually exists</li>
<li>the size to ensure it doesn&#8217;t exceed a predetermined maximum</li>
<li>that the destination directory exists and is writable</li>
<li>that the file is actually a photo file</li>
<li>to see that the photo is in an accepted format (tif, jpg, gif, png)</li>
</ul>
<p>before moving the file. The next class gives various options for manipulating the image, resizing, rounding corners, adding a reflection etc. all using the Imagick class, which is installed with php5-imagick (available from the ubuntu repos and other reputable linux software emporiums!). The reflection and drop shadow parts of the class owe a great deal to Mikko Koppanen who provides some great Imagick examples and code snippets on <a href="http://valokuva.org/" target="_blank">his blog</a>. I&#8217;ve uploaded the classes, including an index file that can be used as an example in the absence of proper documentation!</p>
<p>I&#8217;ve uploaded a working version of the test files shown below as a demo to a website of mine: <a href="http://blaxhall.com/classes">try it here.</a></p>
<p><a href='http://mcmlxxii.co.uk/wp-content/uploads/2010/02/files.zip'>Available to dowload</a> as a zip archive including the four empty directories the example script needs to run. Any suggestions for improvement gladly received.</p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2009/01/06/php-class-imagick-resize-reflect-drop-shadow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nvidia 180 on Ubuntu Intrepid Ibex</title>
		<link>http://mcmlxxii.co.uk/2008/12/26/nvidia-180-on-ubuntu-intrepid-ibex/</link>
		<comments>http://mcmlxxii.co.uk/2008/12/26/nvidia-180-on-ubuntu-intrepid-ibex/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 00:11:37 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[180]]></category>
		<category><![CDATA[8.10]]></category>
		<category><![CDATA[gutsy]]></category>
		<category><![CDATA[hardy]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[nvidia]]></category>
		<category><![CDATA[titlebar]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://mcmlxxii.co.uk/?p=109</guid>
		<description><![CDATA[EDIT: It seems the packages needed are in Intrepid updates now, so as long as they are enabled in System &#62; Applications &#62; Software Sources they should be installed with a simple sudo apt-get update &#38;&#38; sudo apt-get install nvidia-glx-180 As a long-time (since Gutsy) follower of Ubuntu bug 99508, the one about the badly [...]]]></description>
			<content:encoded><![CDATA[<p>EDIT: It seems the packages needed are in <a href="https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/99508/comments/285" target="_blank">Intrepid updates</a> now, so as long as they are enabled in System &gt; Applications &gt; Software Sources they should be installed with a simple sudo apt-get update &amp;&amp; sudo apt-get install nvidia-glx-180</p>
<p>As a long-time (since Gutsy) follower of Ubuntu bug <a href="https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/99508" target="_blank">99508</a>, <a href="http://mcmlxxii.co.uk/wp-content/uploads/2008/12/hardytitlebar.jpg"><img class="size-medium wp-image-110 alignright" title="Titlebar" src="http://mcmlxxii.co.uk/wp-content/uploads/2008/12/hardytitlebar-300x213.jpg" alt="Gnome-terminal showing titlebar problems" width="180" height="128" /></a> the one about the badly drawn window decoration (see right), I was thrilled to see that Nvidia&#8217;s 180 Beta driver fixed the problem. The driver is packaged up and available in the alpha of Jaunty&#8217;s next release, 9.04. However, running the alpha as your main OS is folly, not to mention a pain in the butt if you just want to get something done and it&#8217;s a bit broken at that moment.</p>
<p>One can always install nvidia&#8217;s driver from a shell using the installer provided, but I&#8217;m always happier using a .deb, and luckily the 180 debs are coming to Intrepid&#8217;s backports. Just not yet. So if you want to try the 180 driver, you can use the Jaunty .debs.</p>
<p><a href="http://mcmlxxii.co.uk/wp-content/uploads/2008/12/compiz.jpg"><img class="alignleft size-medium wp-image-118" title="compiz" src="http://mcmlxxii.co.uk/wp-content/uploads/2008/12/compiz-300x187.jpg" alt="compiz" width="210" height="131" /></a>I&#8217;ve tested it on my laptop under Intrepid, with its integral Nvidia 6100 Go chipset, and it works very well. <a href="http://ubuntuforums.org/showthread.php?t=1002500&amp;highlight=nvidia" target="_blank">Some Jaunty testers</a> have reported increased temperatures and odd black spots, but all is ok here. In fact I ran a full screen video on each desktop under compiz (left) without issue.<br />
The debs are available from the Jaunty repos, and the packages required are <a href="http://packages.ubuntu.com/jaunty/nvidia-glx-180" target="_blank">nvidia-glx-180</a> and <a href="http://packages.ubuntu.com/jaunty/nvidia-180-kernel-source" target="_blank">nvidia-180-kernel-source</a>. At present, these contain the 180.11 beta driver &#8211; there is a newer one available from nvidia and no doubt the packages in the Jaunty repos will be updated shortly. Once downloaded, a few commands (i386 users will need to alter the architecture part of the filename):</p>
<p><code>sudo apt-get remove nvidia-glx-177<br />
cd Desktop (if this is where the debs are)<br />
sudo dpkg -i nvidia-180-kernel-source_180.11-0ubuntu1_amd64.deb<br />
sudo dpkg -i nvidia-glx-180_180.11-0ubuntu1_amd64.deb<br />
</code></p>
<p>And a reboot and (fingers x!) you&#8217;re done <img src='http://mcmlxxii.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2008/12/26/nvidia-180-on-ubuntu-intrepid-ibex/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>No! Please don&#8217;t do it!</title>
		<link>http://mcmlxxii.co.uk/2008/11/13/dont-do-it/</link>
		<comments>http://mcmlxxii.co.uk/2008/11/13/dont-do-it/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 18:48:45 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://mcmlxxii.co.uk/?p=82</guid>
		<description><![CDATA[There are some highly entertaining examples on the net of command line program output, but it&#8217;s great when you&#8217;re doing some system maintenance in Linux on your own machine and a gem unexpectedly crops up: :~$ sudo /etc/init.d/dovecot restart [sudo] password: * Restarting IMAP/POP3 mail server dovecot Warning: Last died with error (see error log [...]]]></description>
			<content:encoded><![CDATA[<p>There are some highly entertaining examples on the net of command line program output, but it&#8217;s great when you&#8217;re doing some system maintenance in Linux on your own machine and a gem unexpectedly crops up:</p>
<p><code>:~$ sudo /etc/init.d/dovecot restart<br />
[sudo] password:<br />
 * Restarting IMAP/POP3 mail server dovecot<br />
Warning: Last died with error (see error log for more information): Time just moved backwards by 11 seconds. This might cause a lot of problems, so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards<br />
</code></p>
<p>NO! Please, it&#8217;s not worth it! <img src='http://mcmlxxii.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2008/11/13/dont-do-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synaptics touchpad, SHMConfig, xorg.conf and Ubuntu Intrepid 8.10</title>
		<link>http://mcmlxxii.co.uk/2008/11/07/synaptics-touchpad-shmconfig-xorgconf-and-ubuntu-intrepid-810/</link>
		<comments>http://mcmlxxii.co.uk/2008/11/07/synaptics-touchpad-shmconfig-xorgconf-and-ubuntu-intrepid-810/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 08:55:04 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[8.10]]></category>
		<category><![CDATA[ibex]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[SHMConfig]]></category>
		<category><![CDATA[synaptics]]></category>
		<category><![CDATA[touchpad]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xorg.conf]]></category>

		<guid isPermaLink="false">http://mcmlxxii.co.uk/?p=67</guid>
		<description><![CDATA[EDIT &#8211; Please note that this post only refers to the 64 bit version of Ubuntu. Some significant changes have been happening to the X server over the past couple of releases of Ubuntu. One of the most noticeable alterations has been the removal of the xorg.conf file from the default Ubuntu install (edit &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>EDIT &#8211; Please note that this post only refers to the 64 bit version of Ubuntu.</p>
<p>Some significant changes have been happening to the X server over the past couple of releases of Ubuntu. One of the most noticeable alterations has been the <strong>removal</strong> of the <strong>xorg.conf</strong> file from the default Ubuntu install (edit &#8211; it was removed during the development cycle but reappeared in the release version).</p>
<p>It is a great thing that X is now at the stage where it knows devices well enough to <strong>configure</strong> them with no user input, but occasionally a device may be incorrectly set up, or one may want to <strong>customise</strong> beyond default settings.</p>
<p>Such is the case with my <strong>synaptics touchpad</strong>. I really like the fact that in Linux I can configure the touchpad to trigger a middle mouse button event when it is tapped with 3 fingers. Left click &#8211; one finger, right click &#8211; two fingers, middle click &#8211; three fingers. In addition, I want to be able to <strong>disable</strong> the touchpad while <strong>typing</strong>.</p>
<p><span id="more-67"></span></p>
<p>In the past, disabling the touchpad temporarily when the keyboard is in use was done by adding a line:</p>
<p><code>SHMConfig On</code></p>
<p>to the synaptics device section of the xorg.conf (/etc/X11/xorg.conf), and running the command:</p>
<p><code>syndaemon -i 0.7 -m 50 -d</code></p>
<p>at the start of every session (best done by adding it to System&gt;Preferences&gt;Sessions as a new startup program). Things are done slightly differently now, and there is no need to add the line to xorg.conf. Or at least there isn&#8217;t if you use the synaptics driver provided by Ubuntu developer William Grant on <a href="http://ubuntuforums.org/showthread.php?t=948250">this forum thread</a>, .deb available <a href="http://launchpadlibrarian.net/18664539/xserver-xorg-input-synaptics_0.15.2-0ubuntu7~wgrant3_amd64.deb">here</a>.</p>
<p>You may have to remove the existing driver first:</p>
<p><code>sudo apt-get remove xserver-xorg-input-synaptics</code></p>
<p>I had to lock the version to prevent the default Intrepid driver appearing as an update. This can easily be done in Synaptic Package Manager, by searching for synaptics, highlighting the xserver-xorg-input-synaptics package and selecting Package&gt;Lock Version. Now after restarting the X server (Ctrl, Alt and Backspace)  and issuing the syndaemon command, the touchpad should be disabled when typing without having to enable SHMConfig.</p>
<p>In order to adjust the various custom settings for the  synaptics touchpad, one can enter a section in xorg.conf. One also needs a ServerLayout section, similar to the one below.</p>
<p><code>Section "InputDevice"<br />
Identifier	"Synaptics Touchpad"<br />
Driver		"synaptics"<br />
Option		"SendCoreEvents"	"true"<br />
Option		"Device"	"/dev/psaux"<br />
Option		"Protocol"	"auto-dev"<br />
Option		"LeftEdge"	"1900"<br />
Option		"RightEdge"	"5000"<br />
Option		"TopEdge"	"1400"<br />
Option		"BottomEdge"	"4500"<br />
Option		"FingerLow"	"25"<br />
Option		"FingerHigh"	"35"<br />
Option		"MaxTapTime"	"180"<br />
Option		"MaxTapMove"	"220"<br />
Option		"ClickTime"	"0"<br />
Option		"VertEdgeScroll"	"1"<br />
Option		"VertScrollDelta"	"45"<br />
Option		"HorizEdgeScroll"	"1"<br />
Option		"HorizScrollDelta"	"45"<br />
Option		"MinSpeed"	"0.08"<br />
Option		"MaxSpeed"	"0.60"<br />
Option		"AccelFactor"	"0.003"<br />
Option		"EdgeMotionMinSpeed"	"200"<br />
Option		"EdgeMotionMaxSpeed"	"200"<br />
Option		"TapButton1"	"1"<br />
Option		"TapButton2"	"3"<br />
Option		"TapButton3"	"2"<br />
EndSection<br />
</code><br />
<code><br />
Section "ServerLayout"<br />
Identifier	"Default Layout"<br />
Inputdevice	"Synaptics Touchpad"<br />
EndSection<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2008/11/07/synaptics-touchpad-shmconfig-xorgconf-and-ubuntu-intrepid-810/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>FirstClass. On 64 bit AMD64 Ubuntu.</title>
		<link>http://mcmlxxii.co.uk/2008/10/25/firstclass-on-64-bit-amd64-ubuntu/</link>
		<comments>http://mcmlxxii.co.uk/2008/10/25/firstclass-on-64-bit-amd64-ubuntu/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 12:32:49 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[amd64 64 bit]]></category>
		<category><![CDATA[firstclass]]></category>
		<category><![CDATA[libqtmt]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.mcmlxxii.co.uk/2008/10/25/firstclass-on-64-bit-amd64-ubuntu/</guid>
		<description><![CDATA[For my OU course in Web Applications Development, I have to use a piece of software called FirstClass, from OpenText. Thankfully the nice people at OpenText have packaged up a version for Debian and Ubuntu, version 8.315-2 (one major release behind Windows admittedly, but perfectly usable). If you’re using a 32 bit version the install [...]]]></description>
			<content:encoded><![CDATA[<p>For my OU course in Web Applications Development, I have to use a piece of software called FirstClass, from OpenText. Thankfully the nice people at OpenText have packaged up a version for Debian and Ubuntu, version 8.315-2 (one major release behind Windows admittedly, but perfectly usable). If you’re using a 32 bit version the install couldn’t be easier.</p>
<p>However, I switched to 64bit Linux some time ago now. After emailing OpenText to see if they will be compiling a 64 bit version and receiving a positive negative, I’ve discovered a quick and simple way to get it working without leaving a mess of libraries.</p>
<p><span id="more-46"></span></p>
<p>The only problem (at least on Ubuntu 8.04) seems to be the Qt libraries. Luckily FirstClass doesn’t just look in /usr/lib/ for these, it also has a nose around /usr/lib32 (a directory that appears automatically in Ubuntu 64 bit after installing Flash player, the only other 32bit app I use). If it isn’t there, simply:</p>
<p><code>sudo mkdir /usr/lib32</code></p>
<p>Next we need the .deb package for the 32bit libqtmt libraries. Head over to <a href="http://packages.ubuntu.com/hardy/i386/libqt3-mt/download">http://packages.ubuntu.com/hardy/i386/libqt3-mt/download</a> and choose a mirror, saving the deb somewhere obvious, Desktop will do. Using Archive Manager instead of Gdebi package installer, crack open the deb and navigate through the data folder to the lib folder. Drag and drop the lib folder on your desktop (this should extract it) and issue:</p>
<p><code>sudo cp -R /home/$your_username/Desktop/lib/* /usr/lib32/</code></p>
<p>That’s it! FirstClass still bitches a little when you fire it up from the terminal, but seems to work flawlessly inspite of that. Pity it’s such an ugly resource hog, but you can’t have everything.</p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2008/10/25/firstclass-on-64-bit-amd64-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amarok, Ubuntu Gutsy 7.10, Bluetooth and Sony MBR-100 Audio Receiver</title>
		<link>http://mcmlxxii.co.uk/2008/10/25/amarok-ubuntu-gutsy-bluetooth-and-sony-mbr-100-audio-receiver/</link>
		<comments>http://mcmlxxii.co.uk/2008/10/25/amarok-ubuntu-gutsy-bluetooth-and-sony-mbr-100-audio-receiver/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 12:23:11 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[gutsy]]></category>
		<category><![CDATA[mbr-100]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.mcmlxxii.co.uk/?p=40</guid>
		<description><![CDATA[As we all know Amarok is the best music player in the world, and it’s free. It’s only available on Linux at the moment but the devs are working hard to port it to Windows. Anyway I digress. I wanted to explain how I got Amarok playing on my laptop, accessing my music collection on [...]]]></description>
			<content:encoded><![CDATA[<p>As we all know Amarok is the best music player in the world, and it’s free. It’s only available on Linux at the moment but the devs are working hard to port it to Windows. Anyway I digress. I wanted to explain how I got Amarok playing on my laptop, accessing my music collection on my media server, through my bluetooth dongle, picked up by my Sony MBR-100 bluetooth audio receiver and finally terminating joyfully in my trusty Sennheisers.</p>
<p><span id="more-40"></span></p>
<p>I’ll begin at the noisy end. The Sennheisers are simply a great pair of headphones. The Sony MBR 100 was a free gift with my mobile phone which I initially dismissed as a gimmick. I mean, who honestly uses their phone as an MP3 player? However, quite separately I discovered that my new phone connects far better to Ubuntu over bluetooth than with the USB cable, so I bought a cheap dongle and indeed, after some futzing around it connects very well. It subsequently occurred to me that I may be able to press that gimmick into service around the home.</p>
<p>Here’s the tricky bit. I figured that connecting the MBR-100 to my laptop was going to prove a bit of a pain, and indeed the initial pairing with the device was the stumbling block. Normally pairing can be achieved by right-clicking on the bluetooth icon in the system tray, but it doesn’t seem to work with the MBR-100. I managed to overcome the difficulty by doing the following:</p>
<p>Install the old btsco module:</p>
<p><code>sudo apt-get install bluez-btsco</code></p>
<p>Load the module:</p>
<p><code>sudo modprobe snd-bt-sco</code></p>
<p>get the address of the MBR-100 using hcitool:</p>
<p><code>hcitool scan</code></p>
<p>At this point the MBR-100 needs to be allowing pairing. Turn off, then on again until the LED flashes green/red/green/red etc. Now we can attempt connection:</p>
<p><code>sudo btsco -v aa:bb:cc:dd:ee:ff</code></p>
<p>Where aa:bb:cc:dd:ee:ff is the address of the device as revealed by the scan. The bluetooth symbol in the system tray should now spit out a dialogue about entering a passcode &#8211; click and enter the default pairing number, on mine it is 0000.</p>
<p>If you’ve got this far then the rest should be a doddle. If not, it may be of use to restart bluetooth services and try again:</p>
<p><code>sudo /etc/init.d/bluetooth restart</code></p>
<p>Once paired, the MBR-100 doesn’t appear to need the snd-bt-sco module any longer, and will accept broadcast audio from my laptop without any extra intervention even after a restart. There are two things remaining to do. First we need to create a config file for alsa (advanced linux sound architecture if you were wondering!):</p>
<p><code>cd<br />
gedit ~/.asoundrc</code></p>
<p>Copy this into the file:</p>
<p><code>pcm.bluetooth {<br />
type bluetooth<br />
device aa:bb:cc:dd:ee:ff<br />
}</code></p>
<p>replacing aa:bb:cc:dd:ee:ff as before with the address of the MBR-100. We need to restart alsa now:</p>
<p><code>sudo /etc/init.d/alsa-utils restart</code></p>
<p>In Amarok we can browse to (hey a GUI at last <img src='http://mcmlxxii.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) Settings > Configure Amarok > Engine then, selecting alsa as our output plugin and by hitting “Apply”, we can type bluetooth in the stereo box, apply again and that’s it. Play a song!</p>
<p>More info at the <a href="http://wiki.bluez.org/wiki/HOWTO/AudioDevices" target="_blank">bluez wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2008/10/25/amarok-ubuntu-gutsy-bluetooth-and-sony-mbr-100-audio-receiver/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>RT73 on Ubuntu 8.10 Intrepid Ibex</title>
		<link>http://mcmlxxii.co.uk/2008/10/22/rt73-ubuntu-intrepid-8-10/</link>
		<comments>http://mcmlxxii.co.uk/2008/10/22/rt73-ubuntu-intrepid-8-10/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 21:41:24 +0000</pubDate>
		<dc:creator>mcmlxxii</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ibex]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[ralink]]></category>
		<category><![CDATA[rt73]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[WICD]]></category>

		<guid isPermaLink="false">http://www.mcmlxxii.co.uk/?p=1</guid>
		<description><![CDATA[If you&#8217;ve used the Ralink RT73 chipset under Ubuntu for any length of time, you&#8217;ll know that the default drivers aren&#8217;t yet perfect (some supporting evidence). Some may have had more success, but in my experience they drop out regularly and transfer rates are pretty mediocre. The modules used are the rt2x00usb and rt73usb. These [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve used the <strong>Ralink RT73</strong> chipset under Ubuntu for any length of time, you&#8217;ll know that the default drivers <strong>aren&#8217;t yet perfect</strong> (<a href="https://bugs.launchpad.net/ubuntu/+source/linux-ubuntu-modules-2.6.22/+bug/134660" target="_blank">some supporting evidence</a>). Some may have had more success, but in my experience they <strong>drop out</strong> regularly and <strong>transfer rates</strong> are pretty mediocre. The modules used are the rt2x00usb and rt73usb. These are the next generation of Ralink drivers from <strong>Serialmonkey</strong>, and to be fair they have improved a great deal over the past couple of years. However, there is a <strong>more stable driver</strong>, which, although <strong>requiring some sacrifice</strong>, rewards the user with good injection support, great transfer speeds and no drop-outs.</p>
<p>Step forward the <strong>rt73 legacy driver</strong>&#8230;.<br />
<span id="more-1"></span></p>
<p>This &#8220;legacy&#8221; driver is still supported by Serialmonkey, as I myself witnessed when I found the module <strong>no longer compiled</strong> on <strong>Intrepid&#8217;s kernel</strong>. Vern, one of the developers, fixed the issue and the module now compiles without complaints. I was approached on the forum by someone wanting to know how to go about using this older module so I thought I&#8217;d write a quick how to. <a href="http://ubuntuforums.org/showthread.php?t=400236" target="_blank">There is one already</a> on the ubuntu forums, but it is a little dated and doesn&#8217;t include details about <strong>WICD</strong>.</p>
<p>First the bad news. The legacy driver doesn&#8217;t work with network-manager. This is more of a shame now network manager has actually started to justify its extra cpu usage, with decent support for mobile network connections, but there are ways to configure and use those without it.</p>
<p><strong>The howto:</strong></p>
<p>First <strong>download</strong> the tar.gz file for the rt73 driver (you can find it on the <a href="http://rt2x00.serialmonkey.com/wiki/index.php/Downloads" target="_blank">downloads page</a> of the rt2x00 site).</p>
<p>Next download <a href="http://sourceforge.net/project/showfiles.php?group_id=194573" target="_blank">WICD</a>. There is a <strong>.deb</strong> available. I can&#8217;t get version 1.5.3 to work, but others have not had problems. There&#8217;s probably a .deb of version 1.4.x floating around the net, if not I have one somewhere (update: <a href="/wicd_1.4.2-1-all.deb">here</a>). I personally have to alter the file /opt/wicd/networking.py in version 1.4.2 to get it to work (I comment out line 365 which puts the interface down), but again no-one else seems to suffer with this glitch. You can add wicd to your <strong>sources list</strong> &#8211; I don&#8217;t just in case I lose connection and can&#8217;t download it when network-manager is removed:</p>
<p><code>sudo apt-get remove network-manager network-manager-gnome</code></p>
<p>Next you need to <strong>blacklist</strong> the existing ralink drivers that Intrepid uses. Edit the file:</p>
<p><code>/etc/modprobe.d/blacklist</code></p>
<p>and add these lines:</p>
<p><code>#Ralink, we're using the legacy driver now<br />
blacklist rt73usb<br />
blacklist rt2x00usb<br />
blacklist rt2500usb<br />
blacklist rt2x00lib</code></p>
<p>then <strong>remove the modules</strong> as they&#8217;ll currently be loaded into the kernel:</p>
<p><code>sudo ifconfig wlan0 down</code></p>
<p>(I&#8217;m guessing your wireless interface is <strong>wlan0</strong> &#8211; you need to put it down first or the kernel won&#8217;t let you unload the module. You can find out for sure what it is called using <strong>ifconfig -a</strong>)</p>
<p><code>sudo modprobe -r rt73usb<br />
sudo modprobe -r rt2500usb<br />
sudo modprobe -r rt2x00usb</code></p>
<p>Okay now we can <strong>compile</strong> the module. cd to the directory containing the driver you downloaded. Then:</p>
<p><code>tar -xvzf rt73-cvs-daily.tar.gz<br />
cd rt73-cvs-THE_TIMESTAMP/Module/<br />
make<br />
sudo make install<br />
sudo modprobe -v rt73</code></p>
<p>..where THE_TIMESTAMP is the date part of the extracted directory. Then:</p>
<p><code>ifconfig -a</code></p>
<p>to find out the name of the interface (probably wlan0)</p>
<p><strong>install</strong> and open up WICD and open the <strong>preferences</strong>. Select <strong>&#8220;ralink legacy&#8221;</strong> and type in the interface name in the &#8220;wireless interface&#8221; box.</p>
<p>Then you should be able to &#8220;refresh&#8221; and see your network. Add the <strong>encryption key</strong> if needed and <strong>connect</strong>.</p>
<p><em>Remember if it all goes wrong you&#8217;ll need to reinstall network manager (try rebooting first!)<br />
</em></p>
<p><em><code>sudo apt-get install network-manager network-manager-gnome</code></em></p>
<p><em>and comment out the lines you added to /etc/modprobe/blacklist (In fact if you&#8217;ve successfully loaded the rt73 driver you&#8217;ll need to blacklist that instead of the others: blacklist rt73 &#8211; in order for it not to conflict with the default Intrepid modules.)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mcmlxxii.co.uk/2008/10/22/rt73-ubuntu-intrepid-8-10/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
