<?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>Write it down before you forget it</title>
	<atom:link href="http://www.fbcs.co.uk/wp/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fbcs.co.uk/wp</link>
	<description>For is it not written?  A blog by Chris Dennis</description>
	<lastBuildDate>Thu, 17 May 2012 10:00:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Static ddrescue</title>
		<link>http://www.fbcs.co.uk/wp/archives/617</link>
		<comments>http://www.fbcs.co.uk/wp/archives/617#comments</comments>
		<pubDate>Tue, 27 Mar 2012 13:47:07 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[data recovery]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=617</guid>
		<description><![CDATA[<p>GNU ddrescue is an excellent tool for recovering files from failing hard disks.</p> <p>The source code can be downloaded and is easy to compile.&#160; But it&#39;s most useful if statically-linked, creating a Linux executable file that can run on its own without extra libraries &#8212; from a live CD for example.</p> <p>To create a statically-linked [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gnu.org/software/ddrescue/ddrescue.html" target="_blank">GNU ddrescue</a> is an excellent tool for recovering files from failing hard disks.</p>
<p>The source code can be <a href="http://ftp.heanet.ie/mirrors/gnu/ddrescue/" target="_blank">downloaded</a> and is easy to compile.&nbsp; But it&#39;s most useful if statically-linked, creating a Linux executable file that can run on its own without extra libraries &#8212; from a live CD for example.</p>
<p>To create a statically-linked version, run this instead of the usual <span style="font-family:courier new,courier,monospace;">./configure</span>:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="bash"><pre class="de1">.<span class="sy0">/</span>configure <span class="re2">LDFLAGS</span>=-static <span class="re5">--no-create</span></pre></div></div></div></div></div></div></div>


<p>Then run <span style="font-family:courier new,courier,monospace;">make</span> in the normal way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/617/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6 Tunnelling on Linux</title>
		<link>http://www.fbcs.co.uk/wp/archives/533</link>
		<comments>http://www.fbcs.co.uk/wp/archives/533#comments</comments>
		<pubDate>Fri, 24 Feb 2012 16:35:54 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[ipv6]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[networks]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=533</guid>
		<description><![CDATA[IPv6 Tunnelling on Linux <p>This is probably fairly basic stuff, and there are many other webpages with similar information, but here, the information is set out in a way that makes sense to me.&#160; Hopefully it will to others too.</p> <p>These notes will help you set up IPv6 routing on your local network.</p> <p>The plan: [...]]]></description>
			<content:encoded><![CDATA[<h1>IPv6 Tunnelling on Linux</h1>
<p>This is probably fairly basic stuff, and there are many other webpages with similar information, but here, the information is set out in a way that makes sense to me.&nbsp; Hopefully it will to others too.</p>
<p>These notes will help you set up IPv6 routing on your local network.</p>
<p><strong>The plan</strong>: to enable one of the Linux computers on my home network to handle IPv6 tunnelling and route advertising.&nbsp; All computers on the local network will then be able to access the IPv6 internet.</p>
<p>Prerequisites:</p>
<ul>
<li>An ADSL/Cable/whatever modem/router that does NOT block protocol 41 packets.&nbsp; If yours does block protocol 41, the tunnel won&#39;t work.&nbsp; I don&#39;t know of a specific way of testing whether a router blocks protocol 41.</li>
<li>A Linux computer on your home network that will act as IPv6 router (don&#39;t confuse it with the &#39;router&#39; that is probably also your ADSL modem and wifi access point).&nbsp; (No doubt this can be done on Windows too, but don&#39;t ask me how).</li>
<li>An internet connection for the Linux computer with a fixed IP address (not a dynamically allocated one).&nbsp; I&#39;ll refer to that fixed IP address as 5.6.7.8.&nbsp; Note that this need <em>not</em> be an externally routable address: if the computer is behind a NAT box, and has a local address such as 192.168.1.8, then that&#39;s the address to use where these instructions say &#39;5.6.7.8&#39;.&nbsp; [This is a correction to the previous version of these instructions.]</li>
</ul>
<p>Assumptions</p>
<ul>
<li>Your Linux computer is running a Debian-based system (including Ubuntu and Mint).&nbsp; If not, you&#39;ll need find equivalent versions of some of the commands given here.</li>
</ul>
<p>Post-requisites</p>
<ul>
<li>Once you&#39;ve got IPv6 networking going, you&#39;ll suddenly need an IPv6 firewall, because your computers all now have externally accessible addresses.&nbsp; This post won&#39;t tell you how to do that.</li>
</ul>
<h2>Step 1</h2>
<p>Go to Hurricane Electric&#39;s <a href="http://tunnelbroker.net" target="_blank">tunnelbroker.net</a> and register for a tunnel.&nbsp; (Other tunnel providers are available).</p>
<p>Hurricane Electric (HE) will allocate a /64 subnet (aka &#39;prefix&#39;) to you, such as 2001:db8:4321:abcd::/64.&nbsp; (HE&#39;s tunnels really start with 2001:470: but I&#39;ll use the official example subnet of 2001:db8: in this document.)</p>
<p>Once you&#39;ve registered, signed in, and created a tunnel, HE&#39;s page at www.tunnelbroker.net will list your tunnels (you can have up to five) by their domain names, which will be something like <span style="font-family:courier new,courier,monospace;">user-1.tunnel.tserv10.par1.ipv6.he.net</span>.</p>
<p>Click on the name of the tunnel to find all sorts of useful details, including:</p>
<table>
<tbody>
<tr>
<th style="text-align: left;">Server IPv4 Address:</th>
<td style="text-align: right;">1.2.3.4</td>
</tr>
<tr>
<th style="text-align: left;">Server IPv6 Address:</th>
<td style="text-align: right;">2001:db8:<b>4321</b>:abcd::1/64</td>
</tr>
<tr>
<th style="text-align: left;">Client IPv4 Address:</th>
<td style="text-align: right;">5.6.7.8</td>
</tr>
<tr>
<th style="text-align: left;">Client IPv6 Address:</th>
<td style="text-align: right;">2001:db8:<b>4321</b>:abcd::2/64</td>
</tr>
<tr>
<th colspan="2" style="text-align: left;">Routed IPv6 Prefixes</th>
</tr>
<tr>
<th style="text-align: left;">Routed /64:</th>
<td style="text-align: right;">2001:db8:<b>4322</b>:abcd::/64</td>
</tr>
</tbody>
</table>
<p>Note that 1.2.3.4 represents the IPv4 address of the tunnel that has been assigned to you.&nbsp; And 5.6.7.8 will be replaced by your own external IPv4 address: if you&#39;re behind a firewall or ADSL router that does NAT, that&#39;s the real-world address of your ADSL router.</p>
<p>The tunnel has two ends, and each end has both an IPv4 address and an IPv6 one.&nbsp; The IPv4 addresses are your own external address (5.6.7.8) and the one assigned by HE (1.2.3.4).&nbsp; The IPv6 addresses are in the /64 subnet assigned by HE for the purpose: the far end&#39;s address ends in ::1, the local end&#39;s address ends in ::2.&nbsp; No other addresses in that subnet are used.</p>
<p>HE also give you another &#39;routed&#39; /64 subnet: that&#39;s the one you&#39;ll use on your LAN.&nbsp; In this example it&#39;s 2001:db8:4322:abcd::/64.</p>
<p>HE provide &#39;Example Configurations&#39; which list the commands needed to set up the tunnel for a range of operating systems.&nbsp; I&#39;ll use the &#39;Linux-route2&#39; example:</p>
<pre style="margin-left: 40px;">modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 1.2.3.4 local 5.6.7.8 ttl 255
ip link set he-ipv6 up
ip addr add 2001:db8:4321:abcd::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr</pre>
<p>Run those commands (as root), and you should be in business.&nbsp; Now you can try</p>
<pre style="margin-left: 40px;">ping6 ipv6.google.com</pre>
<p>and browsing to sites such as <a href="http://www.kame.net" target="_blank">www.kame.net</a>, where the famous dancing turtle confirms that you&#39;re using IPv6.</p>
<p>To make those settings permanent you can add them to <span style="font-family:courier new,courier,monospace;">/etc/rc.local</span> (or whichever file your version of Linux uses for locally-configured start-up commands).&nbsp;</p>
<h2>Step 2</h2>
<p>Step 2 involves sharing the IPv6 goodness with other computers on your network.&nbsp;</p>
<p>First, activate IPv6 packet forwarding on your &#39;router&#39; with these commands:</p>
<pre style="margin-left: 40px;">sudo sysctl -w net.ipv6.conf.all.forwarding=1
sudo echo net.ipv6.conf.all.forwarding=1 &gt;&gt; /etc/sysctl.conf</pre>
<p>The first of those commands enables forwarding now; the second makes the change permanent so that the setting will still be there after the computer is rebooted.</p>
<p>The Route Advertising Daemon <strong>radvd</strong> is what I used.&nbsp; Install the radvd package, and then create /etc/radvd.conf containing something like this (taken from <a href="http://tomicki.net/ipv6.router.php" target="_blank">tomicki.net</a>):</p>
<pre style="margin-left: 40px;">interface eth0
{
    AdvSendAdvert on;
    MinRtrAdvInterval 5;
    MaxRtrAdvInterval 15;     

    prefix 2001:db8:4322:abcd::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
    };
};
</pre>
<p>Start the radvd daemon (with <span style="font-family:courier new,courier,monospace;">sudo /etc/init.d/radvd start</span> on Debian).&nbsp; And then try accessing IPv6 from other computers on your LAN &#8212; magically, it works!&nbsp; Windows Vista/7 computers will have to have teredo tunnelling turned off first, otherwise they&#39;ll use that instead of your own tunnel.&nbsp; I&#39;m not sure how Windows XP handles this.</p>
<h2>What to do next</h2>
<p>This is just the beginning of life with IPv6.&nbsp; You&#39;ll want to go on to play with:</p>
<ul>
<li>an IPv6 firewall, i.e. ip6tables settings, possibly wrapped in a more user-friendly scripting language such as <a href="http://ferm.foo-projects.org/" target="_blank">ferm</a>.</li>
<li>more control over address allocation, using a DHCPv6 server such as <a href="http://klub.com.pl/dhcpv6/" target="_blank">dibbler</a>.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/533/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Current Grub boot status</title>
		<link>http://www.fbcs.co.uk/wp/archives/476</link>
		<comments>http://www.fbcs.co.uk/wp/archives/476#comments</comments>
		<pubDate>Mon, 20 Feb 2012 13:20:26 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=476</guid>
		<description><![CDATA[<p>When working on a remote Linux server, with no (easy) way to fix things if a reboot goes wrong, I was looking for ways to investigate the current Grub configuration.&#160; One Anthony of HantsLUG suggested using boot_info_script, which turns out to be a very useful tool for this.</p> <p>It creates output that starts like this:</p> [...]]]></description>
			<content:encoded><![CDATA[<p>When working on a remote Linux server, with no (easy) way to fix things if a reboot goes wrong, I was looking for ways to investigate the current Grub configuration.&nbsp; One Anthony of <a href="http://www.hantslug.org.uk/" target="_blank">HantsLUG</a> suggested using <a href="http://sourceforge.net/projects/bootinfoscript/" target="_blank">boot_info_script</a>, which turns out to be a very useful tool for this.</p>
<p>It creates output that starts like this:</p>
<pre>                  Boot Info Script 0.60    from 17 May 2011

============================= Boot Info Summary: ===============================

 =&gt; Grub2 (v1.97-1.98) is installed in the MBR of /dev/sda and looks at sector
    1 of the same hard drive for core.img. core.img is at this location and
    looks for (md0)/grub on this drive.
 =&gt; Grub2 (v1.97-1.98) is installed in the MBR of /dev/sdb and looks at sector
    1 of the same hard drive for core.img. core.img is at this location and
    looks for (md0)/grub on this drive.
</pre>
<p>and then continues with more details about the Grub settings.</p>
<p>Just what I needed to reassure me that the server will (probably) boot if I restart it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/476/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Signals in Perl, 5.10.1 vs 5.14.2</title>
		<link>http://www.fbcs.co.uk/wp/archives/443</link>
		<comments>http://www.fbcs.co.uk/wp/archives/443#comments</comments>
		<pubDate>Mon, 06 Feb 2012 16:37:36 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=443</guid>
		<description><![CDATA[<p>A Perl script that I&#39;ve been working on wasn&#39;t working properly with Perl 5.14.2.</p> <p>It turned out that the problem was really with my use of local signal handlers.</p> <p>The following code works with 5.10.1 but not with 5.14.2:</p> <p>#!/usr/bin/perl use strict; use warnings; print &#34;starting pid=$$\n&#34;; my $I = 0; { &#160; my $pid [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://brandysnap.org.uk">A Perl script that I&#39;ve been working on</a> wasn&#39;t working properly with Perl 5.14.2.</p>
<p>It turned out that the problem was really with my use of local signal handlers.</p>
<p>The following code works with 5.10.1 but not with 5.14.2:</p>
<p><code>#!/usr/bin/perl <br />
	use strict; <br />
	use warnings; <br />
	print &quot;starting pid=$$\n&quot;; <br />
	my $I = 0; <br />
	{ <br />
	&nbsp; my $pid = 0; <br />
	&nbsp; sub handler { <br />
	&nbsp;&nbsp;&nbsp; my $sig = shift; <br />
	&nbsp;&nbsp;&nbsp; $I += 1; <br />
	&nbsp;&nbsp;&nbsp; print &quot;caught $sig\n&quot;; <br />
	&nbsp;&nbsp;&nbsp; local $SIG{$sig} = &#39;IGNORE&#39;; # doesn&#39;t work with local!! <br />
	&nbsp;&nbsp;&nbsp; kill($sig, -$$); <br />
	&nbsp;&nbsp;&nbsp; print &quot;end of handler\n&quot;; <br />
	&nbsp; } <br />
	&nbsp; local $SIG{INT} = \&amp;handler; <br />
	&nbsp; kill(&#39;INT&#39;, $$); <br />
	} <br />
	print &quot;ending I=$I\n&quot;;</code></p>
<p>With 5.10.1, it calls handler() twice and then exits with I=2; with 5.14.2 it calls the handler many times before crashing with a segfault.</p>
<p>Removing the local from the inner <code>$SIG{$sig}</code> allows it to work with 5.14.2, which makes sense if I&#39;m right in thinking that that command changes the immediately-containing signal handler, and not the global one.</p>
<p>I found the Perl documentation a bit vague on this topic, so this is here in case it&#39;s useful to someone else.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/443/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xubuntu 11.10 on Novatech B940 NNB-888 laptop</title>
		<link>http://www.fbcs.co.uk/wp/archives/441</link>
		<comments>http://www.fbcs.co.uk/wp/archives/441#comments</comments>
		<pubDate>Mon, 30 Jan 2012 14:45:25 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>
		<category><![CDATA[Xubuntu]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=441</guid>
		<description><![CDATA[<p>This was for a client who only needs the basics &#8212; email, typing, web browsing &#8212; and doesn&#39;t have time to adapt to a trendy new GUI.</p> <p>So I installed Xubuntu 11.10 (I like XFCE).</p> <p>And it all just worked out of the box &#8212; wifi, webcam, sound etc.</p> <p>Except for sleep and hibernation.&#160; I [...]]]></description>
			<content:encoded><![CDATA[<p>This was for a client who only needs the basics &#8212; email, typing, web browsing &#8212; and doesn&#39;t have time to adapt to a trendy new GUI.</p>
<p>So I installed Xubuntu 11.10 (I like XFCE).</p>
<p>And it all just worked out of the box &#8212; wifi, webcam, sound etc.</p>
<p>Except for sleep and hibernation.&nbsp; I tried all sorts of fixes and troubleshooting, but nothing worked.&nbsp; The screen goes blank, but it doesn&#39;t turn off.&nbsp; After being forced off, it resumes as though sleep or hibernation had worked.&nbsp; Couldn&#39;t solve it, so I just changed the settings to never try to sleep or hibernate.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/441/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updating from Ubuntu 9.04 to Xubuntu 11.10</title>
		<link>http://www.fbcs.co.uk/wp/archives/419</link>
		<comments>http://www.fbcs.co.uk/wp/archives/419#comments</comments>
		<pubDate>Mon, 30 Jan 2012 14:17:38 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=419</guid>
		<description><![CDATA[<p>I was working on a client&#39;s laptop, on which I&#39;d installed Ubuntu 9.04 a few years ago and it hadn&#39;t been updated since then.</p> <p>I wanted to bring it up to date, and knew that the client wouldn&#39;t want the look-and-feel of it to change radically, so to avoid Unity and Gnome 3, I decided [...]]]></description>
			<content:encoded><![CDATA[<p>I was working on a client&#39;s laptop, on which I&#39;d installed Ubuntu 9.04 a few years ago and it hadn&#39;t been updated since then.</p>
<p>I wanted to bring it up to date, and knew that the client wouldn&#39;t want the look-and-feel of it to change radically, so to avoid Unity and Gnome 3, I decided to install Xubuntu 11.10.</p>
<p>I backed everything up, expecting to do a clean install of the new system.&nbsp; But the Xubuntu installer offered to upgrade directly from 9.04, so I tried it, and it worked!&nbsp; </p>
<p>The only minor glitch was that Thunderbird didn&#39;t find the old profile.&nbsp; I had to rename ~/.mozilla-thunderbird to ~/.thunderbird, and then that worked too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/419/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppConfig and @ARGV</title>
		<link>http://www.fbcs.co.uk/wp/archives/408</link>
		<comments>http://www.fbcs.co.uk/wp/archives/408#comments</comments>
		<pubDate>Sun, 29 Jan 2012 17:18:24 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=408</guid>
		<description><![CDATA[<p>I&#39;ve been playing with the Perl AppConfig module (http://search.cpan.org/~abw/AppConfig-1.66/lib/AppConfig.pm)</p> <p>It seems that the getopt() method messes up the global @ARGV array even if I pass it a copy.</p> <p>For example: &#160;</p> <p>#!/usr/bin/perl use strict; use warnings; use AppConfig; my $opts = AppConfig-&#62;new( { CASE&#160;&#160; =&#62; 0, } ); $opts-&#62;define(&#39;config=s&#39;, {DEFAULT =&#62; &#39;&#39;}); print &#34;ARGV: @ARGV\n&#34;; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#39;ve been playing with the Perl AppConfig module (<a href="http://search.cpan.org/~abw/AppConfig-1.66/lib/AppConfig.pm">http://search.cpan.org/~abw/AppConfig-1.66/lib/AppConfig.pm</a>)</p>
<p>It seems that the getopt() method messes up the global @ARGV array even if I pass it a copy.</p>
<p>For example:<br />
	&nbsp;</p>
<hr />
<p><code>#!/usr/bin/perl<br />
	use strict;<br />
	use warnings;<br />
	use AppConfig;<br />
	my $opts = AppConfig-&gt;new( { CASE&nbsp;&nbsp; =&gt; 0, } );<br />
	$opts-&gt;define(&#39;config=s&#39;, {DEFAULT =&gt; &#39;&#39;});<br />
	print &quot;ARGV: @ARGV\n&quot;;<br />
	my $argvCopy = [@ARGV];<br />
	print &quot;argvCopy: @$argvCopy\n&quot;;<br />
	$opts-&gt;args($argvCopy);<br />
	print &quot;after args() ARGV: @ARGV\n&quot;;<br />
	$opts-&gt;getopt(qw(auto_abbrev), $argvCopy);<br />
	print &quot;after getopt() ARGV: @ARGV\n&quot;; </code></p>
<hr />
<p>produces this output</p>
<hr />
<p><code># appconfig-error.pl --config xyz 123 abc<br />
	ARGV: --config xyz 123 abc<br />
	argvCopy: --config xyz 123 abc<br />
	after args() ARGV: --config xyz 123 abc&nbsp;&nbsp;&nbsp;&nbsp; # @ARGV is still complete<br />
	after getopt() ARGV: 123 abc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # @ARGV has bits missing </code></p>
<hr />
<p>This is a problem because I need to call getopt() twice &#8212; once to get at the &#8211;config option, then I read the configuration file with the file() method, then I re-read the command line options so that they override the ones in the configuration file.</p>
<p>Using args() is OK &#8212; @ARGV is preserved &#8212; but I need the extra feature of getopt().</p>
<p>I&#39;ve emailed the author, so I&#39;ll wait to see what his reply is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/408/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Panasonic KX-MB2000E on Linux</title>
		<link>http://www.fbcs.co.uk/wp/archives/405</link>
		<comments>http://www.fbcs.co.uk/wp/archives/405#comments</comments>
		<pubDate>Thu, 26 Jan 2012 19:22:48 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>
		<category><![CDATA[Printers]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=405</guid>
		<description><![CDATA[Notes on the Panasonic KX-MB2000E. <p>The printer &#8212; sorry, it&#39;s not a printer, it&#39;s a &#60;q&#62;Document System&#60;/q&#62; &#8212; has a web interface: the user name is &#39;root&#39; and the default password is &#39;1234&#39;.</p> <p>Installing it as a printer on Xubuntu 11.10 was straightforward, once I&#39;d done a bit of research.</p> <p>Panasonic give instructions for Redhat [...]]]></description>
			<content:encoded><![CDATA[<h2>Notes on the <a href="http://www.panasonic.co.uk/html/en_GB/Products/Document+Systems/Monochrome+A4+Multifunction+Printers/KX-MB2000/Overview/5708260/index.html" target="_blank">Panasonic KX-MB2000E</a>.</h2>
<p>The printer &#8212; sorry, it&#39;s not a printer, it&#39;s a &lt;q&gt;Document System&lt;/q&gt; &#8212; has a web interface: the user name is &#39;<kbd>root</kbd>&#39; and the default password is &#39;<kbd>1234</kbd>&#39;.</p>
<p>Installing it as a printer on Xubuntu 11.10 was straightforward, once I&#39;d done a bit of research.</p>
<p>Panasonic give instructions for Redhat here: <a href="http://panasonic.cn/support/download/manual/files/Linux_Install_for_KX-MB2000_series.pdf">http://panasonic.cn/support/download/manual/files/Linux_Install_for_KX-MB2000_series.pdf</a>.</p>
<p>This is what I did on a laptop running Xubuntu 11.10:</p>
<ol>
<li>Download three <kbd>.rpm</kbd> files from <a href="http://www.panasonic.net/pcc/support/fax/common/table/linuxdriver.html">http://www.panasonic.net/pcc/support/fax/common/table/linuxdriver.html</a></li>
<li>Use alien to convert them to do <kbd>.deb</kbd> files.</li>
<li>Use <kbd>dpkg -i</kbd> to install them.</li>
<li>Connect the printer (I did it on the LAN).</li>
<li>Use CUPS to set up the printer: when it asks for a PPD file, use the one in <kbd>/usr/share/cups/model/kxmb2000.ppd</kbd>.</li>
<li>Done.</li>
</ol>
<p>The scanner was more tricky &#8212; research suggested that it couldn&#39;t be done, and SANE had no reference to it.&nbsp; But as the printer is capable of scanning to an FTP account or a Samba share, I set up a &#39;Scans&#39; folder with write access via Samba, and entered the details on the printer (via the web interface or the buttons on the front).&nbsp; And it works!&nbsp; Pressing the Scan button and choosing SMB in the printer menu puts a PDF file in the Scans folder.&nbsp; There&#39;s little or no control over scanning settings, but it&#39;s a start.</p>
<p>I tried to add this information to <a href="http://openprinting.org">openprinting.org</a>, but every time I try to log in there, I just get an empty page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/405/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hiren&#8217;s wonderful CD of useful things</title>
		<link>http://www.fbcs.co.uk/wp/archives/271</link>
		<comments>http://www.fbcs.co.uk/wp/archives/271#comments</comments>
		<pubDate>Wed, 07 Dec 2011 00:05:47 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=271</guid>
		<description><![CDATA[<p>Hiren&#8217;s Boot CD is described here:</p> <p style="padding-left: 30px;">http://www.hiren.info/pages/bootcd</p> <p>but you can&#8217;t download it from there. Googling for it brings up all sorts of nonsense pages about bit-torrents that don&#8217;t work. The actual download source can be hard to find, so here&#8217;s the link:</p> <p style="padding-left: 30px;">http://www.hirensbootcd.org/download/</p> ]]></description>
			<content:encoded><![CDATA[<p>Hiren&#8217;s Boot CD is described here:</p>
<p style="padding-left: 30px;"><a title="http://www.hiren.info/pages/bootcd" href="http://http://www.hiren.info/pages/bootcd" target="_blank">http://www.hiren.info/pages/bootcd</a></p>
<p>but you can&#8217;t download it from there.  Googling for it brings up all sorts of nonsense pages about bit-torrents that don&#8217;t work.  The actual download source can be hard to find, so here&#8217;s the link:</p>
<p style="padding-left: 30px;"><a title="http://www.hirensbootcd.org/download/" href="http://http://www.hirensbootcd.org/download/" target="_blank">http://www.hirensbootcd.org/download/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/271/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some excellent notes on git</title>
		<link>http://www.fbcs.co.uk/wp/archives/234</link>
		<comments>http://www.fbcs.co.uk/wp/archives/234#comments</comments>
		<pubDate>Mon, 24 Oct 2011 23:30:43 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[git]]></category>
		<category><![CDATA[PlanetHantsLUG]]></category>

		<guid isPermaLink="false">http://www.fbcs.co.uk/wp/?p=234</guid>
		<description><![CDATA[<p>git: fetch and merge, don&#8217;t pull &#171; Mark&#8217;s Blog.</p> ]]></description>
			<content:encoded><![CDATA[<p><a href="http://longair.net/blog/2009/04/16/git-fetch-and-merge/">git: fetch and merge, don&rsquo;t pull &laquo; Mark&rsquo;s Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fbcs.co.uk/wp/archives/234/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

