<?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>Richard&#039;s Blog</title>
	<atom:link href="http://richardappleby.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://richardappleby.wordpress.com</link>
	<description>Random musings on life, death and technology</description>
	<lastBuildDate>Fri, 17 May 2013 22:39:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='richardappleby.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/551f527f28d1a91c4051bff56e9772b7?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Richard&#039;s Blog</title>
		<link>http://richardappleby.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://richardappleby.wordpress.com/osd.xml" title="Richard&#039;s Blog" />
	<atom:link rel='hub' href='http://richardappleby.wordpress.com/?pushpress=hub'/>
		<item>
		<title>It&#8217;s a date!</title>
		<link>http://richardappleby.wordpress.com/2013/05/01/its-a-date/</link>
		<comments>http://richardappleby.wordpress.com/2013/05/01/its-a-date/#comments</comments>
		<pubDate>Wed, 01 May 2013 15:31:49 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2719</guid>
		<description><![CDATA[My surgeon has been in contact to let me know that he&#8217;s booked me in for my operation on the 3rd of July. That means I&#8217;ll get to have the summer off work again. Which would be grand, where it not for the fact that I&#8217;m very unlikely to be in a condition to enjoy [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2719&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>My surgeon has been in contact to let me know that he&#8217;s booked me in for my operation on the 3rd of July.</p>
<p>That means I&#8217;ll get to have the summer off work again. Which would be grand, where it not for the fact that I&#8217;m very unlikely to be in a condition to enjoy it. So, at a guess, most of July in hospital, then recovering at home through August/September and hopefully returning to work sometime in October. Thank heavens for a very understanding employer.</p>
<p>I must admit that I&#8217;m dreading the whole thing, not helped by the fact that having done this once before, I now know exactly what I&#8217;m going to have to go through. Still, who said life would be easy, eh?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2719/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2719/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2719&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2013/05/01/its-a-date/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>You don&#8217;t have to know the answer to everything &#8211; just how to find it</title>
		<link>http://richardappleby.wordpress.com/2013/04/11/you-dont-have-to-know-the-answer-to-everything-just-how-to-find-it/</link>
		<comments>http://richardappleby.wordpress.com/2013/04/11/you-dont-have-to-know-the-answer-to-everything-just-how-to-find-it/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 15:29:54 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Geekiness]]></category>
		<category><![CDATA[Thinkpad]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2685</guid>
		<description><![CDATA[Since I work at IBM, I get to use the companys own email system, which is based on what used to be called Lotus Notes. It&#8217;s recently had some extra &#8220;social media awareness&#8221; added to it, been rebranded &#8220;IBM Notes&#8221;, and repositioned as a desktop client for social business. Which is all very modern and [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2685&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Since I work at IBM, I get to use the companys own email system, which is based on what used to be called Lotus Notes. It&#8217;s recently had some extra &#8220;social media awareness&#8221; added to it, been rebranded &#8220;IBM Notes&#8221;, and repositioned as a desktop client for social business. Which is all very modern and hip, especially for a product that has it&#8217;s roots back in the early 1990&#8242;s. However, most organisations (including IBM) tend to use it solely for email &#8211; for which it is the proverbial sledgehammer.</p>
<p>But having been using it for some 18 years now, I&#8217;m fairly comfortable with it. The only issue I have is that as I&#8217;ve been using it for so long, my mail archives contain a huge amount of useful information from old projects that I&#8217;ve worked on. I also have other information related to those projects stored elsewhere on my laptop harddrive, and pulling all that information together and searching it coherently isn&#8217;t a trivial problem. However, in recent years <a href="http://en.wikipedia.org/wiki/Desktop_search">desktop search engines</a> have begun to provide a really nice solution to this.</p>
<p>The problem here is that Lotus Notes is based on a series of binary databases which form the backbone of its ability to efficiently replicate documents between clients and servers. Desktop search engines generally don&#8217;t understand those databases, and hence do not work with Lotus Notes. So searching my laptop becomes a somewhat tedious process, involving the Lotus Notes client search feature, and manually correlating with a desktop search engine of some type. It works, but it&#8217;s just not as good as it could be.</p>
<p>What I really want, what I really <b>really</b> want (as the Spice Girls would sing) is a desktop search engine that can understand and integrate my Lotus Notes content. And that&#8217;s what this post is all about.</p>
<p>Since I run Linux I have a choice of open source desktop search engines such as <a href="http://projects.gnome.org/tracker/">Tracker</a> or <a href="https://launchpad.net/beagle">Beagle (now deceased)</a>. But my current preference is for <a href="http://www.lesbonscomptes.com/recoll/">Recoll</a>, which I find to be very usable. And then, last year, I discovered that a colleague had written and published <a href="http://sourceforge.net/projects/rcollnotesfiltr/">a filter, to enable Recoll to index documents inside Lotus Notes databases</a>. So I had to get it working on my system!</p>
<p>Unfortunately, it turned out that my early attempts to get the filter working on my Ubuntu (now Mint) system completely failed. He was a RedHat user, and there are quite a lot of packaging differences between a Debianesque Lotus Notes install, and a RedHat one, especially inside IBM where we use our own internal versions of Java too. So the rest of this post is essentially a decription of how I hacked his elegant code to pieces to make it work on my system. It&#8217;s particularly relevant to members of the IBM community who use the IBM &#8220;OCDC&#8221; extensions to Linux as their production workstation. I&#8217;m going to structure it into a description of how Recoll and the Notes filter work, then a description of how I chose to implement the indexing (to minimise wasteful re-indexing), and hence what files go where, and some links to allow people to download the various files that I know to work on my system.</p>
<p>At a very simplistic level, Recoll works by scanning your computer filesystem, and for each file it encounters, it works out what it is (plain text, HTML, Microsoft Word, etc) and then either indexes it (if it&#8217;s a format that it natively understands) using the <a href="http://xapian.org/">Xapian framework</a>, or passing it to a helper application or filter which returns a version of the file in a format that Recoll does understand, and so can index. In the case of container formats like zip files, Recoll extracts all the contents, and processes each of those extracted files in turn. This means Recoll can process documents to an arbitrary level of &#8220;nesting&#8221;, comfortably indexing a Word file inside a zip file inside a RAR archive for example. Once all your files are indexed, you can search the index with arbitrary queries. If you get any hits, Recoll will help to invoke an appropriate application to allow you to view the original file. The helper applications are already existing external applications like <a href="http://www.gnu.org/software/unrtf/">unRTF</a> or <a href="http://en.wikipedia.org/wiki/Pdftotext">PDFtotext</a> that carry out conversions from formats that Recoll will commonly encounter, while filters are Python applications that enable Recoll to cope with specialist formats, such as Lotus Notes databases.</p>
<p>So, the way the Lotus Notes filter works, is that:</p>
<ol>
<li>Recoll encounters a Lotus Notes database, <b>something.nsf</b></li>
<li>To work out what to do with it, Recoll looks up the file type in its <i>mimemap</i> configuration file, and determines what &#8220;mimetype&#8221; to associate with that file</li>
<li>It then looks up what action to take for that mimetype in the <i>mimeconf</i> configuration file, which tells it to invoke the <i>rcllnotes</i> filter</li>
<li>It then invokes <i>rcllnotes</i>, passing it the URI to <b>something.nsf</b></li>
<li><i>rcllnotes</i> then extracts all the documents (and their attachments) from the Notes database, passing them back to Recoll for indexing</li>
<li>It does this by invoking a Java application, <i>rcllnotes.jar</i>, that must be run under the same JVM as Lotus Notes</li>
<li>This Java application uses Lotus Notes&#8217; Java APIs to access each document in the database in turn</li>
<li>These are then either flattened into HTML output (using an XLST stylesheet) which Recoll can consume directly, or in the case of attachments, output as a document needing further processing; Recoll can tell which is which from the mimetype of the output. Included in the flattened HTML are a couple of metadata tags, one marking this HTML document as descended from a Lotus Notes database, and the other containing the complete Lotus Notes URI for the original document. This latter information can be used by the Lotus Notes client to directly access the document &#8211; which is crucial later in the search process</li>
<li>Recoll then indexes the documents it receives, saving enough information to allow Recoll to use <i>rcllnotes</i> again to retrieve just the relevant document from within the Notes database.</li>
<li>So, when a search results in a Notes document, Recoll can use the saved information (the URI of the database and the Notes UNID of the document?) and the <i>rcllnotes</i> filter to obtain either the flattened HTML version of the document, or a copy of an attachment. Recoll then uses the documents mimetype to determine how to display it. In the case of an attachment, Recoll simply opens it with the appropriate application. In the case of the HTML, Recoll combines the expected &#8220;text/html&#8221; with the information in the metadata tag that describes this HTML as being derived from a Lotus Notes document. This produces a mimetype of &#8220;text/html|notesdoc&#8221;, which it then looks up in the <i>mimeview</i> configuration file, which causes it to use the rclOpenNotesClient script. That reads the Notes URI from the other HTML metadata field in the flattened HTML file, and then invokes the Lotus Notes client with it, causing the actual document of interest to be opened in Lotus Notes.</li>
</ol>
<p>One of the problems with using Recoll with Lotus Notes databases is that it&#8217;s not possible to index just the few changed documents in a Notes database; you have to reindex an entire database worth of documents. Unfortunately there are usually a lot of documents in a Notes database, and the process of indexing a single document actually seems relatively slow, so it&#8217;s important to minimise how often you need to reindex a Notes database.</p>
<p>To achieve this, I make use of a feature of Recoll where it is possible to search multiple indexes in parallel. This allows me to partition my system into different types of data, creating separate indexes for each, but then searching against them all. To help with this, I made the decision to index only Notes databases associated with my email (either my current email database, or it&#8217;s archives) and a well-known (to me) subset of my filesystem data. Since my email archives are partitioned into separate databases, each holding about two years of content, I can easily partition the data I need to index into three categories: static Lotus Notes databases that never change (the old archives), dynamic Lotus Notes databases that change more frequently (my email database and its current archive), and other selected filesystem data.</p>
<p>I then create three separate indexes, one for each of those categories:</p>
<ol>
<li>The static Notes databases amount to about <del datetime="2013-04-19T14:30:05+00:00">5.5GB and takes about 2.5 hours</del> 8GB and takes a little under 4 hours to index on my X201 laptop; however, since this is truely static, I only need to index it once.</li>
<li>The dynamic Notes databases amount to about <del datetime="2013-04-19T14:30:05+00:00">4GB and take about 2 hours</del> 1.5GB and take about 40 minutes to index; I reindex this once a week. <del datetime="2013-04-19T14:30:05+00:00">This is a bigger job than it should be because I&#8217;ve been remiss and need to carve a big chunk of my current archive off into another &#8220;old&#8221; static one.</del></li>
<li>Finally, the filesystem data runs to about another 20GB or so, and I expect this to change most frequently, but be the least expensive to reindex. Consequently I use &#8220;real time indexing&#8221; on this index; that means the whole 20GB is indexed once, and then inotify is used to determine whenever a file has been changed and trigger a reindex of just that file, immediately. That process runs in the background and is generally unnoticable.</li>
</ol>
<p>So, how to duplicate this setup on your system?</p>
<p>First you will need to install Recoll. Use <i>sudo apt-get install recoll</i> to achieve that. Then you need to add the Lotus Notes filter to Recoll. Normally you&#8217;d download the filter from <a href="http://sourceforge.net/projects/rcollnotesfiltr/">here</a>, and follow the instructions in the README. However, as I noted at the beginning, it won&#8217;t work &#8220;out the box&#8221; under IBM&#8217;s OCDC environment. So instead, you can download <a href="https://dl.dropboxusercontent.com/u/116395115/RecollNotes.tar.gz">the version that I have modified</a>.</p>
<p>Unpack that into a temporary directory. Now copy the files in <i>RecollNotes/Filter</i> (rcllnotes, rcllnotes.jar and rclOpenNotesClient) to the Recoll filter directory (normally <i>/usr/share/recoll/filters</i>), and ensure that they are executable (<i>sudo chmod +x rcllnotes</i> etc). You should also copy a Lotus Notes graphic into the Recoll images directory where it can be used in the search results; <i>sudo cp /opt/ibm/lotus/notes/notes_48.png /usr/share/recoll/images/lotus-notes.png</i>.</p>
<p>Now copy the main configuration file for the Notes filter to your home directory. It&#8217;s called <i>RecollNotes/Configurations/.rcllnotes</i> and once you have copied it to your home directory, you need to edit it, and add your Lotus Notes password in the appropriate line. Note that this is by default a &#8220;hidden&#8221; file, so won&#8217;t show up in Nautilus or normal &#8220;ls&#8221; commands. Use &#8220;ls -a&#8221; if necessary!</p>
<p>Next you need to set up and configure the three actual indexes. The installation of Recoll should have created a <i>~/.recoll/</i> configuration directory. Now create two more, such as <i>~/.recoll-static/</i> and <i>~/.recoll-dynamic/</i>. Appropriately copy the configuration files from the subfolders of <i>RecollNotes/Configurations/</i>, into your three Recoll configuration folders. Now edit the <i>recoll.conf</i> files in <i>~/.recoll-static/</i> and <i>~/.recoll-dynamic/</i>, updating the names of the Notes Databases that you wish to index. Now manually index these Notes databases by running the commands <i>recollindex -c ~/.recoll-static -z</i> and <i>recollindex -c ~/.recoll-dynamic -z</i>.</p>
<p>At this point it should be possible to start recoll against either of those indexes (<i>recoll -c ~/.recoll-static</i> for example) and run searches within databases in that index. I leave it as an exercise for the interested reader to work out how to automate the reindexing with CRON jobs.</p>
<p>Next we wish to set up the indexing for the <i>~/.recoll/</i> configuration. This is the filesystem data that will run with a real-time indexer. So start by opening up the Recoll GUI. You will be asked if you want to start indexing immediately. I suggest that you select real-time indexing at startup, and let it start the indexing. Then immediately STOP the indexing process from the File menu. Now copy the file <i>RecollNotes/recoll_index_on_ac</i> to your personal scripts directory (mine is <i>~/.scripts</i>), ensure it is executable, and then edit the file <i>~/.config/autostart/recollindex.desktop</i>, changing the line that says <i>Exec=recollindex -w 60 -m</i> to <i>Exec=~/.scripts/recoll_index_on_ac</i> (or as appropriate). This script will in future be started instead of the normal indexer, and will ensure that indexing only runs when your laptop is on AC power, hopefully increasing your battery life. You can now start it manually with the command <i>nohup ~/.scripts/recoll_index_on_ac &amp;</i>, but in future it will be started automatically whenever you login.</p>
<p>While your filesystem index is building, you can configure Recoll to use all three indexes at once. Start the Recoll GUI, and navigate to Preferences -&gt; External Index dialog. Select &#8220;Add Index&#8221;, and navigate into the <i>~/.recoll-static/</i> and <i>~/.recoll-dynamic/</i> directories, selecting the <i>xapiandb</i> directory in each. Make sure each is selected. Searches done from the GUI will now use the default index (from the filesystem data) and the additional indexes from the two Lotus Notes configurations.</p>
<p>There is one final configuration worth carrying out, and that is to customise the presentation of the search results. If you look in the file in <i>RecollNotes/reoll-result-list-customisation</i> you will find some instructions to make the search results easier to read and use. Feel free to adopt them or not, as you wish.</p>
<p><b>Update:</b> To answer the first question (by text message no less!), my indexes use up about 2.5GB of space, so no, it&#8217;s not insignificant, but I figure disk really is cheap these days.</p>
<p><b>Update:</b> Corrected command to copy Notes icon to Recoll image directory to match configuration files, and a couple of the pathnames where I had introduced some typos.</p>
<p><b>Update:</b> Added the main .rcllnotes configuration file to my archive of files, and updated the installation instructions to discuss installing it, and the need to add your Lotus Notes password to the file.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2685/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2685&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2013/04/11/you-dont-have-to-know-the-answer-to-everything-just-how-to-find-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>Health update</title>
		<link>http://richardappleby.wordpress.com/2013/04/05/health-update/</link>
		<comments>http://richardappleby.wordpress.com/2013/04/05/health-update/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 10:55:08 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cancer]]></category>
		<category><![CDATA[Health]]></category>
		<category><![CDATA[Ileostomy Reversal]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2666</guid>
		<description><![CDATA[To be fair, I&#8217;ve not much to report at the moment. Fundamentally I&#8217;m waiting for a convenient time to finalise my treatment with either a permenant ileostomy or a permenant colostomy. Since my health is reasonably stable at the moment, and I&#8217;m generally coping well with the day to day business of life, we&#8217;re working [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2666&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>To be fair, I&#8217;ve not much to report at the moment. Fundamentally I&#8217;m waiting for a convenient time to finalise my treatment with either a permenant ileostomy or a permenant colostomy. Since my health is reasonably stable at the moment, and I&#8217;m generally coping well with the day to day business of life, we&#8217;re working towards a time in July for that. Since raising the issue of perhaps opting for an ileostomy rather than the more usual colostomy, I&#8217;ve done a reasonable amount of research into each and how they would fit with my lifestyle. Needless to say, they both have advantages and disadvantages.</p>
<p>In a lot of ways the ileostomy looks a lot more attractive at this point in time; it&#8217;s a known quantity (since I already have one) so I know I can cope with it and continue to work. However, if I&#8217;m brutally honest, I&#8217;m just hanging on in there, rather than actually enjoying life. It&#8217;s too limiting, and has too many awkward side-effects to be easy to live with, especially long term.</p>
<p>The colostomy on the other hand, is an unknown quantity, and as with all these things the medicial community have an infuriating tendency to give you a very rose-tinted vision of what life <i>could</i> be like with one. In fact, depending on how well the colostomy turns out I could end up with anything from a much improved quality of life, to (whisper it!) a complete nightmare. This seems to be largely determined by how much colon the patient has left, so the fact that my cancer was so low in my colon helps here; my surgeon feels that I&#8217;m likely to have a &#8220;good&#8221; result from a colostomy. But of course, he cannot guarantee it.</p>
<p>But perhaps the deciding factor for me was based on a comment from one of the nurses I was chatting with, who brought up the issue of my life much further into the future &#8211; something I&#8217;d not really considered up to that point. Ultimately a patient with a colostomy that can no longer actively manage it themselves can still live (largely) independantly in their own home with a small amount of nursing daycare. A similar patient with an ileostomy would have to be moved into fulltime care in some form of institution. I&#8217;m certainly not planning to end up unable to manage, but I&#8217;m now much more aware of the uncertainty that the future can hold, so I&#8217;d rather hope for the best, and plan for the worst.</p>
<p>So on balance I&#8217;m going to take the colostomy. And (as the same nurse said) if the absolute worst were to happen then I could always convert a colostomy into an ileostomy, albeit with another huge operation. But choosing the ileostomy now would leave me with no other options at all.</p>
<p>And I&#8217;m convinced that having a Plan B is always a good idea.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2666/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2666/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2666&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2013/04/05/health-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>New ISP, and playing with callerid</title>
		<link>http://richardappleby.wordpress.com/2013/04/04/new-isp-and-playing-with-callerid/</link>
		<comments>http://richardappleby.wordpress.com/2013/04/04/new-isp-and-playing-with-callerid/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 00:48:58 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Geekiness]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2655</guid>
		<description><![CDATA[Back at the start of last month (the 1st of March) Sky announced that they were going to acquire the UK fixed line businesses of Telefonica. This amounted to about 500,000 O2 and BE Unlimited broadband and telephone customers, including me. On the surface, this looked like a really good deal for almost everyone &#8211; [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2655&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Back at the start of last month (the 1st of March) Sky announced that they were going to acquire the UK fixed line businesses of Telefonica. This amounted to about 500,000 O2 and BE Unlimited broadband and telephone customers, including me.</p>
<p>On the surface, this looked like a really good deal for almost everyone &#8211; O2 and BE Unlimited had been steadily losing customers for a long time, because Telefonica wasn&#8217;t making the investments to allow them to keep up with technologies such as FTTC. Sky was already offering some of those technologies (particularly FTTC) and has a history of investing to create premium solutions for their customers. And Sky would gain the additional customers to jump them past Virgin, moving from the third largest ISP in the UK to the second largest, just behind BT.</p>
<p>However, there was a fly in the ointment; BE Unlimited in particular started life as the niche-market provider-of-choice for the demanding techie. As such they offered some less common features &#8211; static IP addresses (either individually or in blocks), full Reverse DNS resolution, Annex M ADSL2+ with user-configurable noise margin, multiple bonded connections &#8230; the types of features that are usually reserved for very expensive business class connections. And Sky, as a mass-market ISP, did not (and to my knowledge still do not) offer any of those kinds of features.</p>
<p>What the announcement did was galvanise many of the BE Unlimited customers to start looking for alternatives, in case the features that they depended on would go away when their service was transferred to Sky. In my case my requirements were fairly simple; at least 1 static IP address with configurable Reverse DNS, no port-blocking, no usage limits, and the ability to get at least 12Mb down and 2Mb up. And ideally I didn&#8217;t want to pay any more than I already was.</p>
<p>Frankly, I was expecting it to be a real challenge, but to my surprise the second ISP I called was able to meet all my needs. Admittedly the nice lady in the call-centre had never heard of Reverse DNS before, but she took down all my requirements, and put me on hold while she talked to their technical support team. Several long minutes later, and we were in business; their offer was 60Mbps down, 20Mbps up on an unlimited FTTC connection, with one static IP address with reverse-DNS, and no ports blocked. Even better, it was £2 a month less than I currently paid, provided I also transferred my phone service to them.</p>
<p>And so I became one of what appears to be the many who have left BE Unlimited rather than be moved to Sky. Which is rather sad really &#8211; they were an exceptional ISP who got bought by a large organisation (Telefonica) and then starved of the cash they needed to continue to grow. The end result is that they won&#8217;t exist soon.</p>
<p>The one thing that I have &#8220;lost&#8221; in this process of changing ISP&#8217;s is the &#8220;anonymous caller rejection&#8221; feature on my phone line. BE provided that for £2 a month, whereas Plusnet wanted £4. Which is a lot for a feature that in practice, I found rather limited anyway.</p>
<p>Which brings me to the point of this post. Rather than paying for the Anonymous Call Reject, I&#8217;m going to use a modem to monitor the callerid of inbound phone calls, and then decide on a call by call basis what to do with the call. I can either let the call continue (and ring the phones) or I can pick-up &amp; immediately hang-up the line (using the modem) before the phones even ring. That should enable me to cut off all the callers with witheld numbers, just as the £4 a month ISP option would. However, I can also reject calls from &#8220;unavailable&#8221; numbers, which are usually cold callers using VoIP systems. And I can also easily implement a system that will reject all calls outside of certain hours (say 8am to 6pm), unless the caller is on a whitelist of known contacts. Which is a lot better than the ISP anonymous caller rejection can achieve.</p>
<p>To do this I&#8217;m using an old <a href="http://www.usr.com/support/5668/995668b-ug/main.htm">USR 5668B serial-attached modem</a> that correctly understands the UK&#8217;s completely proprietary callerid system. However, this modem is no longer available, and getting a clear answer on what modems can actually cope with UK callerid is, er, troublesome. However, I have discovered reports that the currently available USR 5637 USB fax modem works well with UK callerid. See <a href="http://www.amazon.co.uk/Robotics-External-Controller-Data-Modem/dp/B0019LZCEI/ref=sr_1_1?s=computers&amp;ie=UTF8&amp;qid=1365010581&amp;sr=1-1">here</a> for ordering information (no affiliation).</p>
<p>To access the modem I&#8217;m using a simple self-written script, written in Perl, using an external library called Device::Modem, which gives me a nice high level abstracted interface to the modem, making the programming much easier. My code is based on some example code provided with Device::Modem for reading the callerid, but in my case, is now logging the inbound calls into a file so I can better investigage who to put on a future whitelist.</p>
<p><b>Update:</b> code attached for interest.</p>
<p><code>#!/usr/bin/perl<br />
#<br />
# Capture Callerid information for incoming calls, using the modem attached to /dev/ttyS0<br />
#<br />
#<br />
use Device::Modem;</p>
<p>#<br />
# Init modem<br />
#<br />
my $port = '/dev/ttyS0';<br />
my $baud = 57600;<br />
my $modem = new Device::Modem ( port =&gt; $port );<br />
die "calleridmonitor.pl: Can't connect to port $port : $!\n" unless $modem-&gt;connect( baudrate =&gt; $baud );</p>
<p>#<br />
# Set up signal catcher to ensure modem is disconnected in event of kill signal<br />
#<br />
$SIG{INT} = \&amp;tsktsk;</p>
<p>sub tsktsk {<br />
        $modem-&gt;disconnect();<br />
        die "calleridmonitor.pl: SIGINT received.";<br />
}</p>
<p>#<br />
# Enable modem to return Caller ID info<br />
#<br />
$modem-&gt;atsend('AT#CID=1'.Device::Modem::CR);<br />
my $response = $modem-&gt;answer(undef, 2); # 2 seconds timeout</p>
<p># Poll state of modem<br />
my $call_number = '';<br />
my $call_date = '';<br />
my $call_time = '';</p>
<p># Do forever<br />
while( 1 ) {</p>
<p>        # Listen for any data coming from modem<br />
        my $cid_info = $modem-&gt;answer();</p>
<p>        $cid_info =~ s/\R//g;   # Get rid of any line break wierdness</p>
<p>        #<br />
        # If something received, take a look at it<br />
        #<br />
        if( $cid_info =~ /^RINGDATE\s=\s(\d{4})TIME\s=\s(\d{4})NMBR\s=\s(.*)/ ) {<br />
                #<br />
                # It matches our (previously observed) callerid string<br />
                #</p>
<p>                # Date (mmdd) in $1<br />
                $call_date = $1;<br />
                # Time (hhmm) in 24hr format in $2<br />
                $call_time = $2;<br />
                # Phone number (string) in $3<br />
                $call_number = $3;</p>
<p>                #<br />
                # Write out the date, time and number to a log file<br />
                #</p>
<p>                # Assuming we dont want the file open all the time, so open, append and close the log<br />
                open (FH, "&gt;&gt;/home/richard/callerid/phone.log") || die "calleridmonitor.pl: Couldn't open file: $!\n";<br />
                print FH "$call_date $call_time $call_number\n";<br />
                close FH ;<br />
        }<br />
# Repeat forever<br />
}</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2655/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2655/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2655&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2013/04/04/new-isp-and-playing-with-callerid/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>Good news, and bad news</title>
		<link>http://richardappleby.wordpress.com/2013/02/01/good-news-and-bad-news/</link>
		<comments>http://richardappleby.wordpress.com/2013/02/01/good-news-and-bad-news/#comments</comments>
		<pubDate>Fri, 01 Feb 2013 09:04:53 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2650</guid>
		<description><![CDATA[It&#8217;s been a long time since I last posted an update on my health. That&#8217;s partly because I&#8217;ve just been getting on with life (which has been busy) and partly because I&#8217;ve been going through a lot of tests. A whole bunch before Christmas, and then most of them again after Christams to confirm the [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2650&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been a long time since I last posted an update on my health. That&#8217;s partly because I&#8217;ve just been getting on with life (which has been busy) and partly because I&#8217;ve been going through a lot of tests. A whole bunch before Christmas, and then most of them again after Christams to confirm the first set.</p>
<p>Without going into all the gory details, the good news is that the tests show that I am still (so far as we can tell) free of cancer. In March it will have been 4 years since my operation. One more year to go, and I will be discharged from most treatment. News that&#8217;s definitely worthy of celebration!</p>
<p>On the other hand, the bad news is that all the scans show the same thing. The healing of the abscess (more correctly, sinus) in my pelvis has slowed to a halt. Fundamentally the problem is that the radiotherapy that I elected to take back in 2009 to improve my chances of getting to where I am now, in 2013, has diminished my capacity for healing to the point where the abscess and the join in my colon is never going to mend.</p>
<p>Unfortunately this leaves me in a situation that cannot continue; my kidney function is being impaired by the inflammation in my pelvis, and that will continue to get worse unless we intervene more dramatically.</p>
<p>So I&#8217;m out of options. The surgeons need to &#8220;take down&#8221; the original repair in my bowel, and replace it with something that works so I can get on with as normal a life as possible. My options are either a pemanent colostomy or a permanent ileostomy. We discussed (briefly) attempting to remake the join even lower in my pelvis, but my surgeon feels that with the amount of surgery I&#8217;ve already had, even if the operation &#8220;worked&#8221;, it would be unlikely that my bowel would function adequately anyway. There would be a fairly high chance I would end up incontinent &#8211; so that&#8217;s easily ruled out.</p>
<p>So for now, I&#8217;m coming to terms with the results. Over the next few weeks I need to make the decision over the colostomy or ileostomy, and then decide on when to actually schedule the operation. The surgeon tells me that the operation is larger than the first operation I had, and that I should expect 2-3 weeks in hospital, and 3 months off work recovering. Which is all rather frustrating, if not actually somewhat depressing.</p>
<p>So, still winning the war, but I&#8217;ve just lost a major battle. Darn it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2650/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2650/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2650&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2013/02/01/good-news-and-bad-news/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>Why I love working in IT, and for IBM</title>
		<link>http://richardappleby.wordpress.com/2012/11/09/why-i-love-working-in-it-and-for-ibm/</link>
		<comments>http://richardappleby.wordpress.com/2012/11/09/why-i-love-working-in-it-and-for-ibm/#comments</comments>
		<pubDate>Fri, 09 Nov 2012 22:25:03 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cancer]]></category>
		<category><![CDATA[Radiotherapy]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2637</guid>
		<description><![CDATA[I was recently looking at some of the research projects that IBM has been investing in, and came across an article describing some work we&#8217;ve been doing on improving proton radiation therapy. This is a cutting-edge radiotherapy treatment; it can be a more effective form of therapy than standard X-ray radiotherapy because it directs the [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2637&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I was recently looking at some of the research projects that IBM has been investing in, and came across an article describing some work we&#8217;ve been doing on <a href="http://www.research.ibm.com/articles/proton-radiation-therapy.shtml">improving proton radiation therapy</a>. This is a cutting-edge radiotherapy treatment; it can be a more effective form of therapy than standard X-ray radiotherapy because it directs the radiation treatment to precisely where it is needed with minimal damage to surrounding tissue &#8211; which is what has caused all my problems with lack of healing in my pelvis.</p>
<p>At the current time there are very few places offering this treatment. There are about 10 in the USA, and a few in Europe. There are none in the UK &#8211; the NHS sends what few patients can justify this treatment abroad to Switzerland and the USA. That&#8217;s at least partly because the systems are very expensive to install, and then can&#8217;t be heavily used (which would justify the high build cost) because each case requires a long and complex planning phase to ensure that the beam of protons only goes exactly where it should.</p>
<p>What our researchers are doing is automating a lot of the difficult manual work involved in planning the treatments, reducing the planning time for each treatment from several days to a few minutes. Ultimately this will probably result in a (very small) clinical improvement in the effectiveness of the treatment for each patient, but by making it possible to use the machine much more effectively it will enable their wider adoption, helping to bring this new radiotherapy treatment to a much larger number of patients.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2637/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2637/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2637&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2012/11/09/why-i-love-working-in-it-and-for-ibm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>Updated again</title>
		<link>http://richardappleby.wordpress.com/2012/11/09/updated-again/</link>
		<comments>http://richardappleby.wordpress.com/2012/11/09/updated-again/#comments</comments>
		<pubDate>Fri, 09 Nov 2012 21:18:03 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cancer]]></category>
		<category><![CDATA[Health]]></category>
		<category><![CDATA[Ileostomy Reversal]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2628</guid>
		<description><![CDATA[Much to my shock, and some embarrassment, I&#8217;ve just realised that it&#8217;s been a month since my last update. In my defense I&#8217;ve been spectacularly busy recently (both at work and with my family) and not a lot has happened on the medical front in that time. Until today. There was a positive output from [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2628&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Much to my shock, and some embarrassment, I&#8217;ve just realised that it&#8217;s been a month since my last update. In my defense I&#8217;ve been spectacularly busy recently (both at work and with my family) and not a lot has happened on the medical front in that time. Until today.</p>
<p>There was a positive output from my various tests; namely that there are some signs of improvement in the output from the Gastrografin test. That&#8217;s not to say that the abscess has healed &#8211; nothing so dramatic &#8211; but that there are signs of improvement. Which means we keep on fighting.</p>
<p>On the other hand, the results from the MAG3 Renogram were far less positive. The function of my left kidney is continuing to decline. The split of filtration between my kidneys is now about 70/30, rather than the normal 50/50. So my left kidney is down to 3/7th&#8217;s function (about 43%). This is still more than enough that were I to lose my right kidney in some catastrophic accident, I could live on the left without dialysis, so it&#8217;s important to try to preserve that remaining function.</p>
<p>And so we&#8217;ve spent the last couple of weeks planning what to do about the kidney problem, culminating in my coming into hospital today to have the urologists give me a serious going over. Under a general anaesthetic, thank goodness. The high level plan was to do a more thorough endoscopic investigation, including some work with contrast agents and x-rays to see if the problem was a <a href="http://urologysurgery.wordpress.com/2009/01/01/ureteral-stricture/">stricture in the ureter</a>, or constriction of the ureter due to external pressure. My urologist also decided to draft in some assistance from a urologist who specialises in endoscopic treatments.</p>
<p>And so today I checked back into hospital.</p>
<p>After a morning of pre-op tests (including a game of &#8220;chase the vein&#8221; to draw some bloods) and catching up with all the people who I&#8217;ve got to know so well here, I got taken down to theatre first thing this afternoon. Only to discover that despite my surgical team booking the necessary radiological kit well in advance, someone had pinched it for a different operation, much to the frustration and embarrassment of my team. It did make me smile to see that even in a hospital the same human games go on.</p>
<p>Once we&#8217;d rounded up all the necessary kit, we did the usual dance with Fentanol and Propafol, and I blinked and woke up in recovery again. I love that trick!</p>
<p>And the conclusion is that the narrowing of the ureter is confined to the lowest point of the ureter, nearest to the bladder (and my abscess) and is caused by external pressure. Apparently there was considerable discussion about the merits of trying to effect a cure by going ahead and dilating the ureter with a balloon catheter, but the final view was that the potential advantages were significantly outweighed by the risks of introducing infection into my urinary system. So for now the urologists have chosen to restent that ureter again which ought to preserve the function I have while we continue to deal with the abscess. Rather sensibly they want to ensure that the stent really is maintaining my kidney function adequately, so they&#8217;ll schedule another MAG3 renogram for me in a few weeks time.</p>
<p>Clearly the hope here is that once the abscess is dealt with, the pressure on the ureter will go away, and (ideally) no further intervention will be necessary. And if intervention <b>is</b> required then at least there will be no infection floating around to add any complications.</p>
<p>And as before, the ultimate plan is that if we can&#8217;t resolve the abscess then they&#8217;ll just sort out everything at once in one massive operation to end all operations. Fun.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2628/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2628/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2628&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2012/11/09/updated-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>Update</title>
		<link>http://richardappleby.wordpress.com/2012/10/05/update/</link>
		<comments>http://richardappleby.wordpress.com/2012/10/05/update/#comments</comments>
		<pubDate>Fri, 05 Oct 2012 00:54:00 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cancer]]></category>
		<category><![CDATA[Health]]></category>
		<category><![CDATA[Ileostomy Reversal]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2622</guid>
		<description><![CDATA[Over the last couple of days the doctors have been busy with me again. I&#8217;ve had another MAG3 renogram, a gastrografin test, and a detailed MRI of my pelvis, kidneys and ureters. It&#8217;s been a fun-filled couple of days. I&#8217;m now waiting for all those diagnostic tests to be interpreted, and feedback to go back [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2622&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Over the last couple of days the doctors have been busy with me again. I&#8217;ve had another MAG3 renogram, a gastrografin test, and a detailed MRI of my pelvis, kidneys and ureters. It&#8217;s been a fun-filled couple of days.</p>
<p>I&#8217;m now waiting for all those diagnostic tests to be interpreted, and feedback to go back to my surgeon, who will coordinate that and pass it all back to me along with whatever recommendations he thinks most appropriate.</p>
<p>The radiographers running the MAG3 renogram were first up. And very close-mouthed too. They wouldn&#8217;t tell me anything, or show me any of the pictures they were taking, which was a bit frustrating. Especially as the whole process took 4 hours. Mind you, a good proportion of that was them trying (and largely failing) to cannulate me, which was quite amusing when viewed in retrospect. Not quite so much fun at the time when I&#8217;ve got two of them working on both my arms at once, vying to see who can find a usable vein first. Now I know what a pin-cushion feels like!</p>
<p>Obviously, I know that my left kidney will be reduced function compared to my right. It won&#8217;t have improved since the last test. But the key question is, is it now stable, even though they have removed the stent? If it is, then all is good. If not then the urologist is going to want to take some actions fairly quickly to try to rectify the situation. And if he can&#8217;t solve it, my surgeon will want to start thinking much more seriously about moving me along to the colostomy. So I&#8217;m really just hoping for signs of stability.</p>
<p>The gastrografin test was as unpleasant as usual; having said that, it is somewhat mitigated by the delightful staff who administer it. The radiographer and consultant radiologist are lovely, and genuinely make the process a lot easier to bear. The consultant radiologist tells me that the abscess looks very well defined, but couldn&#8217;t say (immediately) whether the cavity is healing up or not. He&#8217;ll need to compare the scans with the last set to be able to give me that information. I expect that will come via my surgeon in a couple of weeks time. One thing that dealing with the medical profession teaches you; patience.</p>
<p>The MRI scan was much longer than normal. This was because they wanted a much more detailed image of the ureters and kidneys than previously, as well as the whole of my pelvis as before. In the end I was in the machine for about 45 minutes. I always used to think of myself as being quite claustrophobic, but actually once in the machine I found it quite relaxing. It&#8217;s a chance to turn off the outside world and actually think about some of the problems that I&#8217;m working on at the moment. I&#8217;m not sure I came to any successful conclusions, but at least it distracted me from the confined space I found myself in!</p>
<p>One thing of note, in addition to all the standard programmes that I&#8217;ve been through before, they also ran a special programme on the machine where it monitors your breathing, and then automatically and repeatedly scans you at the same point in your breathing cycle, eliminating the movement caused by your breathing. Very impressive stuff.</p>
<p>So now I just have to wait to see what the tests have shown, and what the surgeon and his team of experts think is the right next step.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2622/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2622&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2012/10/05/update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>Stent removal</title>
		<link>http://richardappleby.wordpress.com/2012/09/23/stent-removal/</link>
		<comments>http://richardappleby.wordpress.com/2012/09/23/stent-removal/#comments</comments>
		<pubDate>Sun, 23 Sep 2012 14:22:07 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cancer]]></category>
		<category><![CDATA[Health]]></category>
		<category><![CDATA[Ileostomy Reversal]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2613</guid>
		<description><![CDATA[On Friday morning I met up with my urologist at the local hospital. The stent in my left ureter was end-of-life, and was starting to cause me quite severe kidney pain. Normally it would be replaced, but in this case we&#8217;ve removed it, and will take the opportunity to see if the other treatments that [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2613&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>On Friday morning I met up with my urologist at the local hospital. The stent in my left ureter was end-of-life, and was starting to cause me quite severe kidney pain. Normally it would be replaced, but in this case we&#8217;ve removed it, and will take the opportunity to see if the other treatments that I&#8217;ve been through in the last 6 months (designed to resolve all the infection in my pelvis) have also resolved the problems with my ureter.</p>
<p>Having been through this once before, I knew what I was in for; it&#8217;s not fun, as it&#8217;s carried out with only a light local anaesthetic, but it is straightforward, so I was back on my feet and home again by late lunchtime. I&#8217;ll feel a bit rough for the next couple of days, but should be back to normal by Monday or Tuesday.</p>
<p>Once my urological system settles down (2-3 weeks) we&#8217;ll run a series of non-invasive radiological tests on my kidneys that will reveal any signs of blockage or restriction in the ureter. This tends to show as enlargement of the associated kidney, but I expect they&#8217;ll also run some differential drainage tests too, to measure exactly how well its all working. More &#8220;gunk&#8221; to drink!</p>
<p>If all is OK then I will be able to put the whole stent thing behind me. If not then they&#8217;ll figure out what to do next &#8211; there are some fairly non-invasive options available that may help alleviate the problem.</p>
<p>But if there are problems it&#8217;s also likely to precipitate a conversation with my surgeon about the advantages of pro-actively undertaking the colostomy operation.</p>
<p>Speaking of whom, I have the first of my monthly consultations with my surgeon on Monday morning, where he will check if our plan to &#8220;just give me some time&#8221; for my abscess to heal is bearing any fruit. More news on that in due course I expect, though I&#8217;m not convinced it will be terribly positive.</p>
<p>It&#8217;s fairly clear that I&#8217;m entering the end-game now.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2613/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2613&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2012/09/23/stent-removal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>
	</item>
		<item>
		<title>Calling home, free of charge</title>
		<link>http://richardappleby.wordpress.com/2012/09/22/calling-home-free-of-charge/</link>
		<comments>http://richardappleby.wordpress.com/2012/09/22/calling-home-free-of-charge/#comments</comments>
		<pubDate>Sat, 22 Sep 2012 01:45:04 +0000</pubDate>
		<dc:creator>Richard Appleby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Geekiness]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://richardappleby.wordpress.com/?p=2553</guid>
		<description><![CDATA[I&#8217;ve just been through a period of travel hell; individually each of the the three back-to-back trips are interesting, useful, and in some ways, quite good fun. But they&#8217;re back to back. So over a 17 day period, I&#8217;ve actually had only 3 days in the UK, and two of those I was still working. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2553&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve just been through a period of travel hell; individually each of the the three back-to-back trips are interesting, useful, and in some ways, quite good fun. But they&#8217;re back to back. So over a 17 day period, I&#8217;ve actually had only 3 days in the UK, and two of those I was still working. Of course, mention business travel to anyone that doesn&#8217;t do it, and it brings to mind visions of exotic locations and lavish expense accounts. Whereas the reality tends to be cramped economy class travel, very long working days, and lonely hotel rooms a long way from friends and family.</p>
<p>More importantly it means that just doing the normal day to day family things, like chatting to your kids about their day in school can rapidly become an extortionately expensive luxury that you feel ought to be kept to the brief minimum. Especially when the company that you&#8217;re travelling for thinks that it shouldn&#8217;t pay for those phone calls &#8211; which particularly irks me.</p>
<p>And that got me thinking &#8211; I actually have all the facilities I need to enable me to call home to my family for nothing. My company expects me to need an Internet connection in whatever hotel I stay in, and fully funds it. I carry a laptop and an Android Smartphone. In combination with the rather sophisticated phone that I have at home, I can talk to my family for as long as I want for no additional costs, using a technology called VoIP, based on an open standard called SIP.</p>
<p>My home phone is a Siemens Gigaset S685 IP DECT system, with 5 handsets. It&#8217;s what the marketing world likes to term &#8220;pro-sumer&#8221;, by which they really mean it&#8217;s got lots of features that most consumers will never use, but it&#8217;s not really got enough features for true commercial use. They also mean it&#8217;s a bit expensive for a consumer product.</p>
<p>But in this case, we&#8217;re talking about a DECT phone that connects to both my home phone line and my home broadband, and can have up to 7 logical phone lines connected to it &#8211; the physical &#8220;POTS&#8221; line, and 6 VoIP connections over the internet. The base unit can support separate conversations on up to 3 lines in parallel, with as many handsets connected to each of those lines as required. Each handset can act as a speaker-phone, or have either a headset or bluetooth earpiece attached to. It can even do call routing, where it looks at the number you dial, and decides which line to place your call on. In short, it&#8217;s absolutely packed with features.</p>
<p>The key to the free calls home is of course, the VoIP lines, because as of version 2.3, Android can also make VoIP calls. The trick is simply getting the two to talk to one another, while they are in different countries.</p>
<p>So first you need to find a SIP provider for your home phone and your Smartphone. The best way that I&#8217;ve found to do this is to set up a SIP-based virtual PBX. You create a free account with them (your PBX) and then add users to your PBX. Each user is given their own SIP credentials so they can logon, and you can associate an extension number with each of those users, allowing them to easily exchange calls &#8211; which is exactly what I need, as (unlike my Android smartphone) the handsets on my old Gigaset cannot call SIP URI&#8217;s directly.</p>
<p>The first provider I came across that allows this is OnSip, in the USA. My experience with them has been good, but there are many others out there too. Unfortunately it&#8217;s not perfect &#8211; for me, there are a couple of quirks with their service. Firstly, they don&#8217;t seem to expect anyone outside the USA to be using their service, so I cannot enter my address correctly. Which I suspect is technically a breach of their T&amp;C&#8217;s. And secondly, it means that all the call tones you&#8217;ll hear when using this (ringing, engaged, unobtainable etc) will be American rather than British. I can live with that, but if you choose to go down this route too, <b>DO NOT ENABLE THE E911 OPTION</b>. You could theoretically call out US emergency services to whatever pseudo-fictitious address you have registered with them, which would not be good.</p>
<p>To make it work:</p>
<ol>
<li>Register with your chosen free SIP PBX provider. I&#8217;ll assume OnSip, who will ask you to register a userid, then validate it by email, before letting you set up your first PBX.</li>
<li><div id="attachment_2566" class="wp-caption alignleft" style="width: 160px"><a href="http://richardappleby.files.wordpress.com/2012/09/onsipregisterpbx.png"><img src="http://richardappleby.files.wordpress.com/2012/09/onsipregisterpbx.png?w=150&#038;h=92" alt="Registering for OnSip PBX" title="Registering for OnSip PBX" width="150" height="92" class="size-thumbnail wp-image-2566" /></a><p class="wp-caption-text">Registering for OnSip PBX</p></div>When you come to define that PBX, you&#8217;ll see a screen similar to this one, asking for initial configuration information. You can call the domain name (which is essentially the Internet name of the PBX) anything you like. Incidentally, changing that country field seems to do nothing. It doesn&#8217;t even change the format of the information they collect for your address or (real) phone number.</li>
<li><div id="attachment_2565" class="wp-caption alignright" style="width: 160px"><a href="http://richardappleby.files.wordpress.com/2012/09/onsipnewuser.png"><img src="http://richardappleby.files.wordpress.com/2012/09/onsipnewuser.png?w=150&#038;h=139" alt="Creating a new user" title="Creating a new user" width="150" height="139" class="size-thumbnail wp-image-2565" /></a><p class="wp-caption-text">Creating a new user</p></div>Having now got a SIP PBX available, we can add some users to it. Each user is roughly equivalent to a telephone on a normal PBX, but in this case the user accesses the PBX by way of some SIP credentials. The users can be called via those credentials, or (if the caller is another user of this PBX) the extension number that is associated with that user. This happens irrespective of the device that the user is using those credentials on, or its location.</li>
<li><div id="attachment_2567" class="wp-caption alignleft" style="width: 160px"><a href="http://richardappleby.files.wordpress.com/2012/09/onsipusers.png"><img src="http://richardappleby.files.wordpress.com/2012/09/onsipusers.png?w=150&#038;h=73" alt="List of virtual PBX users" title="List of virtual PBX users" width="150" height="73" class="size-thumbnail wp-image-2567" /></a><p class="wp-caption-text">List of virtual PBX users</p></div>After entering a user for the Gigaset (my house phone) and one for my smartphone, I have a PBX with two users associated with it. I&#8217;ve obscured some critical pieces of information to maintain some privacy, but fundamentally the OnSip system gives me a set of SIP credentials for each &#8220;user&#8221; of the system (bottom right on the image), and associates an extension with them too.</li>
<li>Next we need to get the Gigaset to register with the SIP PBX. To do this, logon to the Gigaset web interface, select the &#8220;Settings&#8221; tab, and then navigate to Telephony, Connections.<div id="attachment_2574" class="wp-caption alignright" style="width: 160px"><a href="http://richardappleby.files.wordpress.com/2012/09/gigasetsettingstelephonyconnections.png"><img src="http://richardappleby.files.wordpress.com/2012/09/gigasetsettingstelephonyconnections.png?w=150&#038;h=90" alt="Gigaset VoIP providers" title="Gigaset VoIP providers" width="150" height="90" class="size-thumbnail wp-image-2574" /></a><p class="wp-caption-text"><br />
<a href="http://richardappleby.files.wordpress.com/2012/09/gigasetbasic.png"><img src="http://richardappleby.files.wordpress.com/2012/09/gigasetbasic.png?w=150&#038;h=142" alt="Gigaset Basic VoIP Provider Settings" title="Gigaset Basic VoIP Provider Settings" width="150" height="142" class="size-thumbnail wp-image-2576" /></a><br />
<a href="http://richardappleby.files.wordpress.com/2012/09/gigasetadvanced.png"><img src="http://richardappleby.files.wordpress.com/2012/09/gigasetadvanced.png?w=136&#038;h=150" alt="Gigaset Advanced VoIP Provider Settings" title="Gigaset Advanced VoIP Provider Settings" width="136" height="150" class="size-thumbnail wp-image-2575" /></a> Gigaset Settings</p></div> Now define a new provider by clicking on one of the &#8220;Edit&#8221; buttons as seen in the first of these screenshots. This will bring up the basic settings page seen in the second screenshot. Into this screen enter the data found on the OnSip user configuration screen under the Phone Configuration heading. Copy the OnSip username field into the Gigaset username field, the OnSip Auth Username field into the Gigaset Authentication Username field, the OnSip SIP Password into the Gigaset Authentication Password field, and then click the &#8220;Show Advanced Settings&#8221; button, which will extend the form with the additional fields seen in the third screenshot. Now copy the OnSip Proxy/Domain field into the four Gigaset fields: Domain, Proxy Server Address, Registrar Server, and Outbound Proxy. When you save the settings the Gigaset will attempt to register with the OnSip PBX. Sometimes this takes a few seconds. You may need to refresh the browser to see the status change to Registered.
</li>
<li>Now we need to make the Android Smartphone register to the OnSip PBX too. To do this, bring up the Android Settings by pressing &#8220;Menu&#8221; from the home screen, and tap &#8220;Settings&#8221;. <div id="attachment_2583" class="wp-caption alignleft" style="width: 100px"><a href="http://richardappleby.files.wordpress.com/2012/09/androidinternetcalling.png"><img src="http://richardappleby.files.wordpress.com/2012/09/androidinternetcalling.png?w=90&#038;h=150" alt="Android Call Settings" title="Android Call Settings" width="90" height="150" class="size-thumbnail wp-image-2583" /></a><p class="wp-caption-text"><br />
<a href="http://richardappleby.files.wordpress.com/2012/09/androidinternetcallingaccounts.png"><img src="http://richardappleby.files.wordpress.com/2012/09/androidinternetcallingaccounts.png?w=90&#038;h=150" alt="Android Internet Calling (SIP) Accounts" title="Android Internet Calling (SIP) Accounts" width="90" height="150" class="size-thumbnail wp-image-2584" /></a><br />
<a href="http://richardappleby.files.wordpress.com/2012/09/androidaccountdetails.png"><img src="http://richardappleby.files.wordpress.com/2012/09/androidaccountdetails.png?w=90&#038;h=150" alt="Android SIP Account Details" title="Android SIP Account Details" width="90" height="150" class="size-thumbnail wp-image-2582" /></a> Android SIP setup</p></div> Navigate to the Call Settings, and tap it to reveal the screen in the first screenshot.<br />
Tap on &#8220;Use Internet Calling&#8221; and set it to &#8220;Ask for each call&#8221;. Then tap on Accounts to bring up the Internet Calling (SIP) Accounts screen where we can enter SIP accounts associated with the phone. See the second screenshot.<br />
Now add a new account for the OnSip PBX by tapping &#8220;New Account&#8221;; this will bring up a screen like the one shown in the third screenshot, into which you need to enter your credentials.<br />
The content of each of the fields (from the OnSip phone configuration information) should be obvious by now. When you save the account you will want to check that the registration information is correct. The easiest way to do this is to enable the &#8220;Receive incoming calls&#8221; option (back on the first screenshot again), which will force Android to register all it&#8217;s accounts with their associated providers. If you get an error then either the provider is down (possible) or the settings are incorrect (more likely). Leaving this option enabled forces Android to keep those connections active, which runs all the radios, and eats the battery, but allows incoming VoIP calls to your Smartphone (say from the Gigaset). In my experience it&#8217;s too power-hungry to use in this mode, other than very sparingly. Fortunately you can make outgoing calls from the Smartphone without enabling it.</li>
<li><div id="attachment_2585" class="wp-caption alignright" style="width: 100px"><a href="http://richardappleby.files.wordpress.com/2012/09/androidinternetcallingcontact.png"><img src="http://richardappleby.files.wordpress.com/2012/09/androidinternetcallingcontact.png?w=90&#038;h=150" alt="Android Internet Calling enabled Contact" title="Android Internet Calling enabled Contact" width="90" height="150" class="size-thumbnail wp-image-2585" /></a><p class="wp-caption-text">Android Internet Calling enabled Contact</p></div>Finally you need to define a contact in the Smartphone contacts to use with Internet Calling. As all my contacts are normally managed by Lotus Traveler for me, which has no concept of Internet Calling, I defined a new local-only contact that is not synched with any of my Accounts (ie, Google or Lotus Traveler) and used that. Enter the name of the contact as normal, then scroll all the way to the bottom of the contact, where you will find a &#8220;More&#8221; section. Expand that, and continue to scroll to the bottom, where you will find a field for &#8220;Internet call&#8221;; into that simply enter either the OnSip SIP URI of your Gigaset, or it&#8217;s OnSip extension number.
</li>
</ol>
<p>Note that this really only works when connected to a reasonably good quality WiFi network. Poor quality networks seem to give quite variable results. Sometimes they still work, other times one end or the other may experience audio problems and/or dropped calls. It seems to work just fine through both the IBM and my home firewalls, even at the same time. I&#8217;ve not checked the actual audio codecs in use, but sound quality is subjectively better than a normal cellular call. Neither Android or the Gigaset seem to do silemce suppression (ie injection of white-noise when no-one is speaking) so the pauses in a conversation are totally silent, which can be slightly disconcerting.</p>
<p>Normally if you want to dial the Smartphone from the Gigaset you would need to indicate to the phone that it should send the call over the appropriate VoIP provider. This quickly becomes a pain, but it&#8217;s easy to set up a simple dial plan on the Gigaset so calls that start &#8220;700&#8243; (remember I made my extensions be 7000 and 7001?) go out over the OnSip VoIP connection automatically, which makes the solution really easy to use (ie family-friendly) from the Gigaset.</p>
<p>Finally, there is a really interesting technology called iNum available. Sadly it&#8217;s not (as far as I can tell) implemented by any of the major telecoms ISPs in the UK, that when combined with SRV records in special DNS records, would allow some really cool automatic rerouting of calls over different networks to different endpoints, depending on context. In theory the network could understand whether I was at home or out with my mobile, and route the call appropriately. It could also do smart things like look at the inbound number and the time, and route business calls to voicemail out of office hours, but still let personal calls through as normal.</p>
<p>If only it were implemented.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/richardappleby.wordpress.com/2553/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/richardappleby.wordpress.com/2553/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=richardappleby.wordpress.com&#038;blog=6743636&#038;post=2553&#038;subd=richardappleby&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://richardappleby.wordpress.com/2012/09/22/calling-home-free-of-charge/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c01e36002e407971f3b5f9f2b16fd0c8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">richardappleby</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/onsipregisterpbx.png?w=150" medium="image">
			<media:title type="html">Registering for OnSip PBX</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/onsipnewuser.png?w=150" medium="image">
			<media:title type="html">Creating a new user</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/onsipusers.png?w=150" medium="image">
			<media:title type="html">List of virtual PBX users</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/gigasetsettingstelephonyconnections.png?w=150" medium="image">
			<media:title type="html">Gigaset VoIP providers</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/gigasetbasic.png?w=150" medium="image">
			<media:title type="html">Gigaset Basic VoIP Provider Settings</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/gigasetadvanced.png?w=136" medium="image">
			<media:title type="html">Gigaset Advanced VoIP Provider Settings</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/androidinternetcalling.png?w=90" medium="image">
			<media:title type="html">Android Call Settings</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/androidinternetcallingaccounts.png?w=90" medium="image">
			<media:title type="html">Android Internet Calling (SIP) Accounts</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/androidaccountdetails.png?w=90" medium="image">
			<media:title type="html">Android SIP Account Details</media:title>
		</media:content>

		<media:content url="http://richardappleby.files.wordpress.com/2012/09/androidinternetcallingcontact.png?w=90" medium="image">
			<media:title type="html">Android Internet Calling enabled Contact</media:title>
		</media:content>
	</item>
	</channel>
</rss>
