<?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>The Angry Geek &#187; Technical</title>
	<atom:link href="http://www.angry-geek.org/tag/technical/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.angry-geek.org</link>
	<description>I am geek - hear me roar!</description>
	<lastBuildDate>Mon, 12 Apr 2010 16:27:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Problem Solving Skills</title>
		<link>http://www.angry-geek.org/2009/11/problem-solving-skills/</link>
		<comments>http://www.angry-geek.org/2009/11/problem-solving-skills/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 16:48:14 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Interviews]]></category>
		<category><![CDATA[Problem Solving]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=180</guid>
		<description><![CDATA[I think a dodgy kettle can make an excellent practical test in an interview...]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>We&#8217;ve recently acquired a rather useless kettle in our office; it replaced the differently useless one that took around 15 minutes to heat enough water for one cup of tea&#8230;</p>
<p>The new kettle is a much faster boiler (I no longer have time for a loo break while waiting for my tea), but suffers from a strange design failure.  For some reason, as the kettle gets hotter, it shifts slightly on the cordless base, losing the power connection long before the water is fully boiled.  It&#8217;s easy to get round this though &#8211; you just hold the back of the kettle in place for a few seconds until the thermal cut-out kicks in as the water finally boils.</p>
<p>However, I think this kettle would be an ideal interview tool for new developers.  Here&#8217;s how it would work: halfway through the interview, you ask the interviewee if he (or she) would mind making a couple of cups of tea while you just answer a call&#8230;  Points are then allocated based on how they handle the kettle:</p>
<p>0 points &#8211; if he doesn&#8217;t even notice that it disconnected rather than cutting out properly.</p>
<p>1 point &#8211; for noticing it failed to boil, but just giving up</p>
<p>2 points &#8211; if he holds down the &#8220;on&#8221; switch to get it to boil</p>
<p>3 points &#8211; for realising that it&#8217;s nothing to do with the switch, and just holds the handle in place (allowing the thermal cut-out to work)</p>
<p>4 points &#8211; for figuring out that you can just put a paper towel under the front of the kettle, and then you don&#8217;t even need to hold it</p>
<p>5 points &#8211; for spotting the paper towel that was already there in place, and realising it has a purpose, <em>so not moving it to start with</em>!</p>
<p>My bet is that most of the people currently in my office would get 3 points at best.</p>
<!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.angry-geek.org/2009/11/problem-solving-skills/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/11/problem-solving-skills/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/11/problem-solving-skills/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Hard Day of Hard Resets</title>
		<link>http://www.angry-geek.org/2009/01/a-hard-day-of-hard-resets/</link>
		<comments>http://www.angry-geek.org/2009/01/a-hard-day-of-hard-resets/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 22:09:36 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Phone]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Windows Mobile 6]]></category>
		<category><![CDATA[WM6]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=164</guid>
		<description><![CDATA[I have a very nice Vodafone v1615 mobile which runs the Windows Mobile 6 (WM6) operating system.  On Saturday, I lent it to my wonderful Fiancée while she was in the shops and I had to run back to the flat to solve a crisis at work.  I&#8217;d like to say that ever [...]]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>I have a very nice <a href="http://members.dooyoo.co.uk/handheld-pda/htc-tytn-ii/1145039/">Vodafone v1615</a> mobile which runs the Windows Mobile 6 (WM6) operating system.  On Saturday, I lent it to my wonderful Fiancée while she was in the shops and I had to run back to the flat to solve a crisis at work.  I&#8217;d like to say that ever since then it&#8217;s been running slowly; but the truth is it was giving me grief even before that&#8230; I just noticed it more after using her sleek, shiny (but tragically pink) <a href="http://blog.omio.com/handset-news/samsung-f480-tocco-pink-review/">Samsung Tocco</a>.</p>
<p><span id="more-164"></span>At any rate, Monday, my <a href="http://beta.spbsoftwarehouse.com/products/time/">alarm clock</a> signalled that the problems were coming to a head &#8211; but that was all it signalled, since it decided that playing music was beyond it.  Oddly, I actually woke up just after 6:30 anyway, and was earlier to work than I&#8217;ve been in a while.  During the day, the phone played up a bit, so I took another backup, and decided to see how it behaved.</p>
<p>Tuesday&#8230; the same problem.  Despite co-operating all Monday evening, my phone was definitely not happy.  It seems most unhappy when it was woken up after being in stand-by for more than a few minutes &#8211; particularly overnight, but it also threw a fit when coerced into receiving calls after being neglected for more than a few minutes.  I decided that enough was enough, and a reset would be required.<br />
However, just after I reached that decision, I discovered that my <a href="http://social.msdn.microsoft.com/Forums/en-US/windowssideshow/thread/1cf25b29-bbc7-4633-9fc9-8166c3a9f615">Window Sideshow Preview</a> (there&#8217;s a new version released now) had just expired, and perhaps that was the cause.  One un-install later, and my phone has the benefit of the doubt for a while&#8230;</p>
<p>On Wednesday &#8211; as if knowing that it was walking on very thin ice &#8211; my phone managed to play my 6:30 alarm by 6:35&#8230; sadly though, only the first chord of my 7am alarm was forthcoming.  By 9am, I had decided enough was enough, and a <a href="http://wiki.xda-developers.com/index.php?pagename=Kaiser_Resets">Hard Reset</a> would be required.  I had a recent back-up, so hopefully I&#8217;d only be out for an hour or so&#8230;</p>
<p>Or not&#8230;</p>
<p>Typically, I&#8217;d misjudged.  Instead of clearing all the data and rebooting with a clean install, my phone (by now generally referred to as &#8220;You useless piece of shit&#8221;) decided to sit at the WM6.1 boot screen with the message &#8220;The device is clearing the storage. Please wait&#8221; for a very long time.  In fact, it hung there all day; several soft resets, hard resets, powered, un-powered&#8230; whatever I did, nothing worked.</p>
<p>On the plus side, less calls to answer all day.</p>
<p>I&#8217;d actually known this might happen.  It happened last time I did a hard reset, and came back just as I was packing it up to send back to Vodafone (at about 1am).  I naively assumed it had got this little tantrum out of its system by now&#8230;</p>
<p>Eventually, after much searching, I found <a href="http://forum.xda-developers.com/showthread.php?t=457822">someone else who&#8217;d had the same problem</a>.  He eventually solved it by re-flashing the original WM6.1 ROM from Vodafone.  Sadly though, I&#8217;m running Vista x64, so I had no expectations of this working at all&#8230;  Still, I downloaded the file from Vodafone, on the off chance it might work&#8230;</p>
<p>While I waited for the file to download, I searched a bit on performing ROM upgrades on Vista.  It looked like my best bet was going to be to use a <a href="http://www.virtualbox.org/">Virtual Machine</a> running Windows XP, connect the device to that, and flash from there.  I had all that ready&#8230; but decided, on the off chance, to give it a go from Vista.  From what I&#8217;d read, the worst that could happen was that the device would not be detected.</p>
<p>It worked.</p>
<p>Not only that, it fixed my original problem.  The phone rebooted, and worked normally.  Sadly, I left my backups in work, so I&#8217;ll have to complete the restore tomorrow&#8230; but at least now I know how to get a recalcitrant phone to perform a hard reset properly.</p>
<p>I&#8217;m going to write up the full details of how to do this as a page on this site &#8211; hopefully, later tonight &#8211; but to be honest, it&#8217;s not needed.</p>
<!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.angry-geek.org/2009/01/a-hard-day-of-hard-resets/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/01/a-hard-day-of-hard-resets/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/01/a-hard-day-of-hard-resets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle: Moving Data to a new Tablespace</title>
		<link>http://www.angry-geek.org/2009/01/oracle-moving-data-to-a-new-tablespace/</link>
		<comments>http://www.angry-geek.org/2009/01/oracle-moving-data-to-a-new-tablespace/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 16:02:02 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=149</guid>
		<description><![CDATA[The worst thing about being the most technically competent person in a company is that all too often, the buck stops at my desk.  I can&#8217;t complain &#8211; it&#8217;s a problem of my own making; I&#8217;m too lazy to pass on knowledge in a usable format, so I end up having to do a lot [...]]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>The worst thing about being the most technically competent person in a company is that all too often, the buck stops at my desk.  I can&#8217;t complain &#8211; it&#8217;s a problem of my own making; I&#8217;m too lazy to pass on knowledge in a usable format, so I end up having to do a lot of the work.</p>
<p><span id="more-149"></span>One of my regular tasks is sorting out the database on our Support server.  This is a bit of a nightmare, since the users of that server are all &#8211; at least in their own minds &#8211; admin types, so configurations and usage changes on a daily basis.</p>
<p>Today &#8211; we ran out of space.  This isn&#8217;t as bad as it sounds, since I&#8217;ve put a restriction in place to limit any database file to 8GB (this is a limit enforced by my rather lame backup practices).  I knew the problem &#8211; one of our support databases was on the &#8220;USERS&#8221; tablespace, instead of the appropriate customer-specific tablespace.</p>
<p>Thanks to the guys at <a href="http://zhefeng.wordpress.com/2008/12/05/moving-tableindex-to-a-new-segment-or-tablespace/" target="_blank">DBA Sensation</a>, finding the correct commands to move Tables, Indexes and even LOB Segments to a new tablespace was trivial&#8230; But here&#8217;s a very useful script that generates a full set of commands to move all of a given user&#8217;s data from one tablespace to another&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> CASE
     WHEN segment_type <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'TABLE'</span> THEN
          <span style="color: #ff0000;">'ALTER TABLE '</span><span style="color: #66cc66;">||</span>seg<span style="color: #66cc66;">.</span>owner<span style="color: #66cc66;">||</span><span style="color: #ff0000;">'.'</span><span style="color: #66cc66;">||</span>seg<span style="color: #66cc66;">.</span>segment_name <span style="color: #66cc66;">||</span><span style="color: #ff0000;">' MOVE TABLESPACE '</span><span style="color: #66cc66;">||</span><span style="color: #ff0000;">'&amp;TARGET_TBSP'</span><span style="color: #66cc66;">||</span><span style="color: #ff0000;">';'</span>
     WHEN segment_type <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'INDEX'</span> THEN
          <span style="color: #ff0000;">'ALTER INDEX '</span><span style="color: #66cc66;">||</span>seg<span style="color: #66cc66;">.</span>owner<span style="color: #66cc66;">||</span><span style="color: #ff0000;">'.'</span><span style="color: #66cc66;">||</span>seg<span style="color: #66cc66;">.</span>segment_name <span style="color: #66cc66;">||</span><span style="color: #ff0000;">' REBUILD TABLESPACE '</span><span style="color: #66cc66;">||</span><span style="color: #ff0000;">'&amp;TARGET_TBSP'</span><span style="color: #66cc66;">||</span><span style="color: #ff0000;">';'</span>
     WHEN segment_type <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'LOBINDEX'</span> THEN
          <span style="color: #ff0000;">'ALTER TABLE '</span><span style="color: #66cc66;">||</span>seg<span style="color: #66cc66;">.</span>owner<span style="color: #66cc66;">||</span><span style="color: #ff0000;">'.'</span><span style="color: #66cc66;">||</span>lob<span style="color: #66cc66;">.</span>table_name <span style="color: #66cc66;">||</span><span style="color: #ff0000;">' MOVE LOB('</span><span style="color: #66cc66;">||</span>lob<span style="color: #66cc66;">.</span>column_name<span style="color: #66cc66;">||</span><span style="color: #ff0000;">') '</span> <span style="color: #66cc66;">||</span><span style="color: #ff0000;">'STORE AS (TABLESPACE '</span><span style="color: #66cc66;">||</span><span style="color: #ff0000;">'&amp;TARGET_TBSP'</span><span style="color: #66cc66;">||</span><span style="color: #ff0000;">');'</span>
     ELSE <span style="color: #ff0000;">'/* Segment '</span><span style="color: #66cc66;">||</span>seg<span style="color: #66cc66;">.</span>segment_name <span style="color: #66cc66;">||</span><span style="color: #ff0000;">' is of type: '</span><span style="color: #66cc66;">||</span>segment_type<span style="color: #66cc66;">||</span><span style="color: #ff0000;">' */'</span>
     END <span style="color: #993333; font-weight: bold;">AS</span> sql_command
<span style="color: #993333; font-weight: bold;">FROM</span> dba_segments seg<span style="color: #66cc66;">,</span> dba_lobs lob
<span style="color: #993333; font-weight: bold;">WHERE</span> seg<span style="color: #66cc66;">.</span>owner <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'&amp;SOURCE_OWNER'</span>
     <span style="color: #993333; font-weight: bold;">AND</span> seg<span style="color: #66cc66;">.</span>tablespace_name <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'&amp;SOURCE_TBSP'</span>
     <span style="color: #993333; font-weight: bold;">AND</span> seg<span style="color: #66cc66;">.</span>owner <span style="color: #66cc66;">=</span> lob<span style="color: #66cc66;">.</span>owner<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span><span style="color: #66cc66;">&#41;</span>
     <span style="color: #993333; font-weight: bold;">AND</span> seg<span style="color: #66cc66;">.</span>segment_name <span style="color: #66cc66;">=</span> lob<span style="color: #66cc66;">.</span>index_name <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> seg<span style="color: #66cc66;">.</span>owner<span style="color: #66cc66;">,</span> seg<span style="color: #66cc66;">.</span>segment_name<span style="color: #66cc66;">,</span> 
     seg<span style="color: #66cc66;">.</span>segment_type<span style="color: #66cc66;">,</span> seg<span style="color: #66cc66;">.</span>tablespace_name<span style="color: #66cc66;">,</span> 
     lob<span style="color: #66cc66;">.</span>table_name<span style="color: #66cc66;">,</span> lob<span style="color: #66cc66;">.</span>column_name
<span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> seg<span style="color: #66cc66;">.</span>segment_type <span style="color: #993333; font-weight: bold;">DESC</span><span style="color: #66cc66;">,</span> seg<span style="color: #66cc66;">.</span>segment_name;</pre></div></div>

<p>A word of warning: This will work for all tables, indexes and LOB segments, but will not handle any tables that have a LONG datatype.  <a href="http://www.orafaq.com/forum/t/21725/0/">OraFAQ has a helpful thread about this</a> &#8211; the simple answer is that LONG datatypes don&#8217;t support the MOVE command.</p>
<!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.angry-geek.org/2009/01/oracle-moving-data-to-a-new-tablespace/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/01/oracle-moving-data-to-a-new-tablespace/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/01/oracle-moving-data-to-a-new-tablespace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Need a New Mouse</title>
		<link>http://www.angry-geek.org/2009/01/i-need-a-new-mouse/</link>
		<comments>http://www.angry-geek.org/2009/01/i-need-a-new-mouse/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 23:30:29 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=141</guid>
		<description><![CDATA[Last November, my cheapo USB mouse I use to replace the stupid nubbin on my work laptop started playing up.  For some reason, it would stop registering normal mouse clicks every now and then.  Fortunately, this could usually be resolved by good old percussive maintenance (i.e. smack it against the desk a few [...]]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>Last November, my cheapo USB mouse I use to replace the stupid nubbin on my work laptop started playing up.  For some reason, it would stop registering normal mouse clicks every now and then.  Fortunately, this could usually be resolved by good old percussive maintenance (i.e. smack it against the desk a few times) &#8211; but around December I realised that my mouse clicking finger was beginning to feel the (repetitive) strain, and it was time to buy a new mouse.</p>
<p><span id="more-141"></span>The trouble is, I wanted the new mouse fairly soon &#8211; while I had indeed gone  for two months without replacing it, once I&#8217;d made up my mind to buy the thing, I didn&#8217;t want to wait 3 days for the delivery service.  So, I decided to brave the PC World sale.  PC World &#8211; at least, around here &#8211; is an odd beast.  They can&#8217;t seem to decide if they&#8217;re going to sell computers or &#8220;Home Entertainment&#8221;, so we end up with a poor selection of TVs, computers and peripherals &#8211; but no real depth in any department.</p>
<p>Nowhere in the store is this more apparent than in the input accessories area.  The shelves are all nicely marked up &#8211; Laptop Mice, Wireless Mice, Wired Mice &#8211; but instead, all we have is half a dozen Microsoft models, a few Logitech ones and a generic wired optical.  Sadly, it seems that the main target is laptop users, so the spit is about 50/50 between tiny little laptop mice, and &#8220;cutting edge&#8221; (i.e. really expensive) desktop ones.  I don&#8217;t want to spend a huge amount of money &#8211; after all, it&#8217;s going to get battered enough in my laptop bag &#8211; but I can&#8217;t get on with &#8220;mini&#8221; laptop mice; my hands aren&#8217;t huge, but I&#8217;ve got so use to the massive <a href="http://www.dooyoo.co.uk/mice-trackballs/logitech-mx-revolution/" target="_blank">Logitech MX Revolution</a> that even a normal mouse feels puny in my hands.</p>
<p>In the end, I settle on a fairly cheap Logitech with a laser diode.  Unfortunately, it&#8217;s wireless &#8211; but it promises 6 months battery life on standard AAs.  I&#8217;d rather have a wire &#8211; simply because then I can&#8217;t lose the dongle in my laptop bag &#8211; but the only options available were either a cheap and nasty un-branded one (which, from experience, won&#8217;t track well on my office desk), or a garish &#8220;Gamers&#8221; mouse that would just look plain ridiculous.</p>
<p>Having shelled out £40 to replace my mouse at work&#8230; the one at home starts going crazy!  Instead of tracking smoothly across the screen, it&#8217;s bouncing in fits and starts.</p>
<p>There&#8217;s three possible causes for this one &#8211; I&#8217;ve seen it before:</p>
<ol>
<li>The battery on the wireless mouse is going flat</li>
<li>The surface it&#8217;s on is too shiny to track well</li>
<li>Some conflict between the USB device and a busy hard-drive</li>
<li>Some other device on the same wireless frequency is interfering with my mouse</li>
</ol>
<p>Option one is quickly discounted &#8211; the &#8220;charge&#8221; indicator shows 3 of 4 bars, which is normally fine.  Trying different surfaces eliminates option 2, so we&#8217;re looking at either a hardware conflict (or just a performance problem on my PC).  Normally, I&#8217;d just plug in a spare mouse to eliminate the performance &#8211; if the spare mouse works, it&#8217;s clearly a problem with just the wireless one &#8211; but now, I suddenly discover that I don&#8217;t have any normal, wired mice!</p>
<p>In the end, the only option was to test using my other wireless &#8211; which worked fine.  The problem? A cat hair on the optical lens!</p>
<!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.angry-geek.org/2009/01/i-need-a-new-mouse/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/01/i-need-a-new-mouse/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/01/i-need-a-new-mouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ask Tom &#8220;Boolean Datatype&#8221;</title>
		<link>http://www.angry-geek.org/2009/01/ask-tom-boolean-datatype/</link>
		<comments>http://www.angry-geek.org/2009/01/ask-tom-boolean-datatype/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 20:00:46 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=7</guid>
		<description><![CDATA[Once upon a time, I got Tom Kyte to change his mind... everyone seems to want that fame!]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>Tom Kyte is a world renowned Oracle expert &#8211; just look through his &#8220;Ask Tom&#8221; site for confirmation (half the questions seem to come from India). Despite his fame, I once changed his mind on an interesting topic &#8211; the best substitute for a Boolean data-type in Oracle -<a href="http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6263249199595#876972400346931526">Ask Tom &#8220;Boolean Datatype&#8221;</a>.  Okay, so it was a moment of crowning glory for me &#8211; but hey, I&#8217;m a geek &#8211; recognition from a famous geek (even fleeting) is worth a lot to me!</p>
<p><span id="more-7"></span>
<p>This particular page though brings to mind a huge rant &#8211; pointless questions, and trolls.</p>
<p>If you read through the linked page from the top, there&#8217;s a recurring theme of &#8220;Why doesn&#8217;t Oracle have this feature &#8211; it should, because I want it!&#8221;  Reading between the lines, I&#8217;m sure that all the people asking this question know full well two facts:</p>
<ol>
<li>Tom can&#8217;t add the feature to Oracle</li>
<li>There&#8217;s 101 different work-arounds available, that all offer the functionality that is require</li>
</ol>
<p>So, the truth is, these people just want to have the satisfaction of trying to get the famous Tom Kyte to admit that Oracle isn&#8217;t perfect.  Which is true &#8211; but Tom will never admit it.</p>
<p>Now, this isn&#8217;t just about the &#8220;Ask Tom&#8221; website.  The truth of the matter is that this is a hugely prevalent attitude of &#8220;This is how it should be&#8221; and &#8220;This is how it used to be&#8221; that&#8217;s based on no evidence that the other way is by any measure better &#8211; except, of course, the fact that that&#8217;s the way it used to be.</p>
<p>A personal example, first&#8230; Back at the beginning of the year, the marketing department decided that our slightly ramshackle office wasn&#8217;t &#8220;pretty&#8221; enough for display to customers, and reorganised.  For at least two weeks, I hated the new layout &#8211; saw all kinds of problems &#8211; until I got used to it enough that I didn&#8217;t care that it was all different, at which point I realised that it was far better, and I did quite like it.</p>
<p>It&#8217;s the same with a lot of people, I think.  We all have a tendency to reject change out of hand &#8211; at least at first &#8211; just because it is different.  Whether it&#8217;s the &#8220;New Recipe&#8221; cola, or being forced to change to a new school, or a new version of Microsoft Office &#8211; we all hate being forced to change.</p>
<p>The most entertaining thing about it all is the fact that changes we control &#8211; new cars, new houses, all kinds of new toys &#8211; always get an extra shiny veneer while they&#8217;re still new.  We love new things that we&#8217;ve chosen to have &#8211; even if it turns out they&#8217;re not actually better than the old one.</p>
<p>There&#8217;s probably a moral about that&#8230; but I can&#8217;t quite figure it out right now!</p>
<!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.angry-geek.org/2009/01/ask-tom-boolean-datatype/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/01/ask-tom-boolean-datatype/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/01/ask-tom-boolean-datatype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual Private Network Woes</title>
		<link>http://www.angry-geek.org/2009/01/virtual-private-network-woes/</link>
		<comments>http://www.angry-geek.org/2009/01/virtual-private-network-woes/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 18:00:56 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Paranoia]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=18</guid>
		<description><![CDATA[Different VPN software clients conflict in different ways.  I've got 3 different VPN clients (4 if you count the "Windows Standard" one), and they all conflict with each other.  Plus - never install anything from Nortel Networks!]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>I manage the Support &amp; Development department for the UK division of a fairly large multi-national corporation that provides Supply Chain solutions.  That&#8217;s not where I started though &#8211; I was originally hired as a code monkey, nothing more, and spent my first few years working for one particular customer developing customisations to our product to match their legacy requirements.</p>
<p><span id="more-18"></span>Moving off site from that company was a challenge.  Emotionally, the customer did not want to let go.  He&#8217;d got used to having someone right there to answer questions, change code, and re-write things on the fly &#8211; no matter that it was bad practice &#8211; so having to move to a more formal change request process was a real challenge.  Technically though, it was even more of a conundrum &#8211; we needed access to the customer&#8217;s systems to provide support &amp; upgrades, but driving there every time they wanted a patch applied wasn&#8217;t an option.</p>
<p>The first &#8220;solution&#8221; proposed by the customer was a dial-up account.  This was fine &#8211; as long as I never needed to download any files bigger than about 1MB.  Oddly enough though, every time they had problems, the log files would ususally be about 5-10MB &#8211; totally impossible to download over that connection in a reasonable time.</p>
<p>Later on, they proposed Cisco VPN.  This was far better &#8211; at least, once they unrestricted the network speed for that connection &#8211; and support continued at a reasonable level.</p>
<p>As it happened, our next few customers were all far less paranoid, and were quite happy for us to use the built-in Windows VPN client to connect to their systems.  Which was a huge relief &#8211; as by this time, we&#8217;d discovered a few &#8220;conflicts&#8221; between Cisco VPN and the F-Secure firewall our corporate policy dictated we use&#8230;  Nothing earth-shattering &#8211; in fact, it was the kind of problem that you&#8217;d never know about until suddenly, everything stopped working.</p>
<p>Unfortunately, our next customer was a CheckPoint VPN client.  This is actually one of the best VPN clients I&#8217;ve come across so far &#8211; most importantly, the VPN client <em>only</em> intercepts data that is going to the secured network, so your normal internet browsing is totally unaffected.  Far more user-friendly than the VPN systems where once you&#8217;re connected, all you can access is that particular corporate network &#8211; for example, I can access both our Source Control system <em>and</em> the Customer&#8217;s server without continually connecting and disconnecting from the VPN!</p>
<p>Tragically though, this software refused to install &#8211; in fact, I got a very rare Blue Screen of death, on a file called &#8220;fw.sys&#8221;.  This turned out to be F-Secure&#8217;s fault &#8211; but reports on the internet suggested they should work fine together&#8230; Still, you&#8217;ve got to work with the facts in hand, so I uninstalled F-Secure and re-installed CheckPoint &#8211; only to find that after a reboot, I had no networking at all!</p>
<p><em>Many</em> hours of searching on a spare computer later, I&#8217;ve found a tool called <a href="http://www.xp-smoker.com/freeware.html">XP TCP/IP Repair</a>, and completely wiped my networking stack.  Of course, this means that now both Cisco VPN and CheckPoint VPN are out of the loop, so I un-install them both, and reinstall them one by one, finishing with F-Secure.</p>
<p><strong>Amazingly, this time, all three worked in perfect harmony&#8230;</strong></p>
<p>This was not to last.  Our Paris recently released a new Intranet site, and to access it from out of the office, we need to use yet another VPN client &#8211; CheckPoint SSL Extender.  I thought, as part of the CheckPoint family, this would be friendly with my current configuration &#8211; more fool me.  Installing this one left me &#8211; once again &#8211; with a blue-screen on fw.sys.  By this time though, I knew the solution &#8211; and immediately wiped my network stack, uninstalled Cisco, CheckPoint and F-Secure, and started from scratch.</p>
<p>Again, by making sure F-Secure went on last, everything worked fine &#8211; for at least a couple of months.</p>
<h2>The Curse of Christmas Holidays</h2>
<p>Of course, over Christmas, everything went to pot.  Booting my laptop to check my email over the holiday, I suddenly discover my Wi-Fi no longer works.  Wired networking is fine, but something is screwy on the network stack.  I&#8217;m not fussed though &#8211; I&#8217;ve managed to check my email, so I guess I can sort it later.</p>
<p>The next day &#8211; a critial update needs to be installed for one of our customers!  I know my Wi-Fi is dead, so I connect the cable and get online &#8211; only to discover that although normal networking is fine, the VPN connections are deader than flares.</p>
<p>Bring on XP TCP/IP Repair.  I wipe the networking stack, uninstall all four utilities (Cisco VPN, CheckPoint VPN-1, CheckPoint SSL Extender and F-Secure Client Security), and install just the one I need.  Time will come later to install the other three.</p>
<p>After completing the update, I sit back to install the rest of the essential tools.  Except suddenly, they don&#8217;t want to play any more.  Installing CheckPoint SSL Extender seems to blue screen my laptop every time, even though there&#8217;s no F-Secure installed &#8211; or failing that, the software just doesn&#8217;t work.</p>
<h2>The Missing Link</h2>
<p>It turns out, I&#8217;d missed three essential ingredients when doing all my re-installs.</p>
<ol>
<li>Previously, CheckPoint had always been the highest priority, so had been installed first</li>
<li>Many years ago, I&#8217;d used the Nortel VPN client &#8211; and this is impossible to completely uninstall.</li>
<li>Microsoft Virtual PC also adds to the networking stack, and must be added in the right order.</li>
</ol>
<p>So, finally, after figuring it all out, here&#8217;s the install order you have to use to get all five of these utilities to work:</p>
<ol>
<li>Make sure you have <strong>no</strong> Nortel VPN software on your PC.  Ideally, start with a fresh install of XP, but failing that, make sure you remove all Nortel drivers, network bindings &#8211; everything.  Nortel likes to hide too, so make sure you &#8220;View hidden items&#8221; in Device Manager &#8211; and you may need to <a href="http://fastest963windows.blogspot.com/2008/01/windows-driver-uninstall-failed-to.html" target="_blank">use the advice here</a> to uninstall devices that pretend to be essential to boot</li>
<li>Reboot your PC</li>
<li>Install CheckPoint VPN-1</li>
<li>Reboot your PC, check that both normal networking and CheckPoint function okay.</li>
<li>Install CheckPoint SSL Extender</li>
<li>Reboot your PC, check that all of normal networking and both CheckPoint VPNs function okay.  Reboot again.</li>
<li>Install Cisco VPN Client.</li>
<li>Reboot your PC, check that all of normal networking, both CheckPoint VPNs and Cisco VPN function okay.</li>
<li>Install F-Secure Client Security</li>
<li>Reboot</li>
<li>Install Microsoft Virtual PC</li>
<li>Reboot</li>
</ol>
<p>This sequence worked fine for me three times in a row&#8230; but for some reason, the next day, the whole thing would be dead again.  I&#8217;ve put it down to not having completely cleared up Nortel; but I&#8217;m dreading tomorrow, when I&#8217;m back at work for the first day, and have no idea if any of my networking will be okay when I boot!</p>
<!-- sphereit end --><span style="margin-bottom:40px; border-bottom:none;"><a class="iconsphere" title="Sphere: Related Content" onclick="return Sphere.Widget.search('http://www.angry-geek.org/2009/01/virtual-private-network-woes/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/01/virtual-private-network-woes/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/01/virtual-private-network-woes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
