<?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; Work</title>
	<atom:link href="http://www.angry-geek.org/tag/work/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>How Insensitive!</title>
		<link>http://www.angry-geek.org/2009/02/how-insensitive/</link>
		<comments>http://www.angry-geek.org/2009/02/how-insensitive/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 12:22:32 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Advertising]]></category>
		<category><![CDATA[Alcohol]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=176</guid>
		<description><![CDATA[There&#8217;s a sign just gone up in my office building advertising a chocolate sale.  It looks like this:
CHOCOHOLICS
Come and try free samples and buy gifts for friends and family, 12pm-2pm today.
Now&#8230; imagine the outrage if that had read &#8220;Alcoholics&#8221; instead&#8230; Why are chocolate addicts treated so badly that we don&#8217;t care about this kind [...]]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p style="text-align: left;">There&#8217;s a sign just gone up in my office building advertising a chocolate sale.  It looks like this:</p>
<h2 style="text-align: center;"><strong><span style="color: #ff0000;">CHOCOHOLICS</span></strong></h2>
<p style="text-align: center;">Come and try free samples and buy gifts for friends and family, 12pm-2pm today.</p>
<p>Now&#8230; imagine the outrage if that had read &#8220;Alcoholics&#8221; instead&#8230; Why are chocolate addicts treated so badly that we don&#8217;t care about this kind of insensitive taking of advantage?</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/02/how-insensitive/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/02/how-insensitive/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/02/how-insensitive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Step by Step Instructions</title>
		<link>http://www.angry-geek.org/2009/02/step-by-step-instructions/</link>
		<comments>http://www.angry-geek.org/2009/02/step-by-step-instructions/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 14:22:15 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=174</guid>
		<description><![CDATA[Programmers are good at writing step by step instructions.  After all, that&#8217;s all a computer program ever is &#8211; a set of very simple step by step instructions.  Of course, modern programming languages try and make it more complicated, by adding objects and events, but in the end, everything comes down to a [...]]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>Programmers are good at writing step by step instructions.  After all, that&#8217;s all a computer program ever is &#8211; a set of very simple step by step instructions.  Of course, modern programming languages try and make it more complicated, by adding objects and events, but in the end, everything comes down to a set of instructions.<br />
<span id="more-174"></span><br />
That said &#8211; you should never ask a programmer to give you a step by step guide.  He&#8217;s used to dealing with very literal devices, so the odds are that a step by step guide to making a cup of tea would take a week to complete, and fill 3 narrow spaced pages of A4.  Of course, that&#8217;s a stereotype &#8211; a bad programmer would get it short and wrong (take cup, add tea), and a really good programmer would recognise the actual needs of the situation, and get it right.</p>
<p>Still, in general, we&#8217;re good at the step by step instructions thing.  We&#8217;re also good at following said instructions; okay, sometimes we&#8217;re arrogant and think we know better, and can skip a step, but generally, put a programmer in front of a set of instructions, and we&#8217;ll follow it accurately and to the letter.</p>
<p>The trouble is, that&#8217;s what we assume everyone else will do too, so that&#8217;s how we write our instructions.  Real people have a strange (to programmers) tendency to wander off from the written guide, and try to do their own thing.<br />
Programmers don&#8217;t expect this, so we don&#8217;t guard against it.  For example, I had this conversation at work today:<br />
<strong>Me:</strong> So what did you do next?<br />
<strong>User:</strong> I closed the window.<br />
<strong>Me (thinking something is up):</strong> How did you do that?<br />
<strong>User:</strong> I clicked the X in the corner<br />
<strong>Me:</strong> Why did you do that? The instructions say &#8220;Click Accept&#8221;<br />
<strong>User:</strong> Oh, but clicking the X is faster&#8230; it takes a couple of seconds when you click &#8220;Accept&#8221;<br />
<strong>Me:</strong> Sigh&#8230; yes&#8230; that&#8217;s the program running to do the work you asked for&#8230;  Clicking &#8220;X&#8221; cancels it.<br />
<strong>User:</strong> Oh, well why didn&#8217;t the instructions say that?</p>
<p>In the end I changed the program, so clicking the &#8220;X&#8221; did the same thing as clicking &#8220;Accept&#8221;&#8230;  and no amount of arguing will convince either the user that the instructions were right, or me that they were wrong.</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/02/step-by-step-instructions/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/02/step-by-step-instructions/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/02/step-by-step-instructions/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>10 Antisocial Uses of Communal Areas</title>
		<link>http://www.angry-geek.org/2009/01/antisocial-uses-of-communal-areas/</link>
		<comments>http://www.angry-geek.org/2009/01/antisocial-uses-of-communal-areas/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 20:00:15 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=137</guid>
		<description><![CDATA[I work in a so-called &#8220;Managed Office&#8221;. This is where my company leases a number of rooms in a large office building, and gets use of the communal spaces, reception, car-park etc. &#8211; the idea is to get all the facilities of a large corporate office without the overhead.  I say so-called, becaues I&#8217;ve never [...]]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>I work in a so-called &#8220;Managed Office&#8221;. This is where my company leases a number of rooms in a large office building, and gets use of the communal spaces, reception, car-park etc. &#8211; the idea is to get all the facilities of a large corporate office without the overhead.  I say so-called, becaues I&#8217;ve never actually seen these people manage the place at all!</p>
<p>There are some huge disadvantages to working in a place like this.  One of them is dress codes &#8211; some companies in the building may have a different code than others, which can sometimes look unprofessional when you have visitors&#8230;</p>
<p>Another disadvantage is that you&#8217;re sharing the communal areas &#8211; kitchen, break room, post room etc. &#8211; with maybe 100 people over whom you have absolutely no authority.  In fact, you don&#8217;t even have a way to raise issues.  Without futher ado, here are the 10 worst abuses of the communal areas in my office&#8230;<br />
<span id="more-137"></span><br />
<h2>10 &#8211; Cooking Smelly Food</h2>
<p>This is one of the traditional ones, even in normal offices.  You can&#8217;t complain about it, since the person cooking the food clearly likes it &#8211; and probably thinks your dinner stunk even worse!</p>
<p>To be honest, I don&#8217;t really care about the smells.  Yes, it&#8217;s annoying to go in to the kitchen to make some tea, and discover it smells of curry &#8211; but it&#8217;s better than some of the terrible flavour air fresheners that the facility likes to use!</p>
<h2>9 &#8211; Listening to Loud Music</h2>
<p>I&#8217;ve never understood this one at all.  There&#8217;s a company in the same office building that&#8217;s hired a number of fairly junior staff members &#8211; they can&#8217;t be much older than 18, if that &#8211; and they seem to love spending their lunch breaks playing the loudest music they can find on their iPod speakers.</p>
<p>This time though, it&#8217;s not the volume of the music that affects me &#8211; it only takes a couple of minutes to make a cuppa, and my eardrums can handle it.  No, instead it&#8217;s the choice of music &#8211; can anyone stand <a href="http://www.musicloversgroup.com/kaiser-chiefs-never-miss-a-beat/" target="_blank">&#8220;Never Miss a Beat&#8221; by the Kaiser Chiefs</a> &#8211; the scary thing is that I suspect these kids actually subscribe to the philosophy!</p>
<h2>8 &#8211; Hiding from your Boss</h2>
<p>Hiding from your boss is really the best way to avoid getting too much work on your plate &#8211; after all, if he can&#8217;t find you, he can&#8217;t give you more work to do.  Similarly, if he knows you weren&#8217;t in the office, he won&#8217;t expect you to have read the emails either.  I can&#8217;t fault that &#8211; but why hide in the break room?  It&#8217;s the first place to look!</p>
<h2>7 &#8211; Building a Fort</h2>
<p>Why would you <a href="http://xkcd.com/219/" target="_blank">build a fort</a> in the office break room?  I&#8217;ve never seen it happen yet, but I&#8217;m sure it&#8217;s not far away&#8230;  I did once find twice the number of chairs, and a few spare tables, but I was too busy (making my tea) to have time to rearrange them appropriately.</p>
<h2>6 &#8211; Growing Cannabis</h2>
<p>Again, it hasn&#8217;t happened yet &#8211; but there were two completely random poinsettias there over Christmas.  I&#8217;m quite a fan of pleasant decoration in an office, but the most frustrating thing is that the so-called office managers didn&#8217;t think to organise any kind of care or maintenance for them &#8211; so when we came back in January one was dead and the other very sad looking.</p>
<h2>5 &#8211; Doing your Laundry</h2>
<p>Actually, this one&#8217;s my fault&#8230; I managed to spill coffee all down my shirt, and ended up standing in the kitchen wearing nothing but my coat and trousers, washing my shirt in the sink.</p>
<p>I know, it&#8217;s totally anti-social, but in my defence it was still 6:45am, so I was unlikely to be interrupted, and I really didn&#8217;t want to go to my important-ish customer meeting with a stained shirt.</p>
<h2>4 &#8211; Storing Dirty Dishes</h2>
<p>This one gets my goat.  It only takes 30 seconds to wash a plate, but some people refuse to do their own.  Luckily, I&#8217;ve never spotted the culprits bringing the dishes into the room or leaving them in the sink&#8230; I suspect they&#8217;re too embarrassed to walk off and leave them when someone else is there to see it.</p>
<p>The most frustrating thing about it is when the sink&#8217;s so full you can&#8217;t even wash up your own plate.</p>
<h2>3 &#8211; Meeting with Customers</h2>
<p>In a normal office, any room &#8211; even a break-room &#8211; can be reserved for one-off use for a meeting with customers.  You can email around the company, and let everyone know that a Microsoft representative will be coming &#8211; and not to disturb anyone for a particular period.</p>
<p>In a building like ours though, booking a meeting room costs extra, and you can&#8217;t ever book the communal areas for exclusive use.  So having a meeting with an important customer or supplier is the worst kind of foolhardiness &#8211; you&#8217;ve got no idea who might walk in at any time; it could even be one of the Know Nothing Crew!</p>
<h2>2 &#8211; Shooting a Publicity Video</h2>
<p>Marketing departments love to organise publicity stunts &#8211; brochures, videos, webcasts &#8211; but never seem to like to think about reality.  Let&#8217;s face it, a film showing a room that&#8217;s a complete mess and full of dirty dishes is never going to make a good impression.  Somehow though, the marketting department always wants to show scenes from the break room, not just from the offices where we really work.</p>
<h2>1 &#8211; Holding a One-to-One Meeting</h2>
<p>Top of the list &#8211; the worst thing that people seem to use our communal areas for.  Almost every week, I walk in on yet another one-to-one, or appraisal &#8211; whether it&#8217;s one of the Know Nothing Crew getting assessed for their performance, or lack thereof &#8211; or someone getting corrective training on making sales calls.</p>
<p>I know why they do it.  Booking a meeting room costs money, and it seems a waste to do that for just two people to have a meeting.  You can&#8217;t just stay in your normal office, because there&#8217;s always people there that will know everyone being discussed, and you can&#8217;t have an honest appraisal in that atmosphere.</p>
<p>However, in the end, it works out badly for everyone.  The person getting the appraisal is continually interrupted by strangers walking in to make cups of tea and coffee.  People from the same company as the person being appraised know about the meeting, so they can&#8217;t get any hot drinks while the meeting is going on.  Finally, people from other companies like your truly feel embarassed to go into the room for a drink &#8211; and often end up hearing un-necessary details about other people&#8217;s working lives.</p>
<p>So come on people &#8211; leave the communal areas alone, and plan your meetings properly!</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/antisocial-uses-of-communal-areas/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/01/antisocial-uses-of-communal-areas/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/01/antisocial-uses-of-communal-areas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Murphy 4 &#8211; Angry Geek 0</title>
		<link>http://www.angry-geek.org/2009/01/murphy-4-angry-geek-0/</link>
		<comments>http://www.angry-geek.org/2009/01/murphy-4-angry-geek-0/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 20:00:48 +0000</pubDate>
		<dc:creator>Rocketeer</dc:creator>
				<category><![CDATA[Rant & Rage]]></category>
		<category><![CDATA[Car]]></category>
		<category><![CDATA[Murphy]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.angry-geek.org/?p=106</guid>
		<description><![CDATA[Today did not start out well.  Possibly due to this cold (which I just can&#8217;t seem to shake) &#8211; or possibly due to staying up a little too late watching Spiderman (the animated series) &#8211; I completely slept through my first alarm, and therefore shut off and ignored my second alarm, assuming I&#8217;d be awoken [...]]]></description>
			<content:encoded><![CDATA[<!-- sphereit start --><p>Today did not start out well.  Possibly due to this cold (which I just can&#8217;t seem to shake) &#8211; or possibly due to staying up a little too late watching Spiderman (the animated series) &#8211; I completely <strong>slept through my first alarm</strong>, and therefore shut off and ignored my second alarm, assuming I&#8217;d be awoken again in half an hour&#8230;</p>
<p><span id="more-106"></span>At 8:15, I finally wake &#8211; scream &#8211; and hit the shower.  It&#8217;s not too bad &#8211; I can be at work in 10 minutes after I leave the shower, so I&#8217;ll barely be late.  Of course, the car is frozen over &#8211; but thanks to the hot water trick, I can de-ice it in about 30 seconds.</p>
<p>Okay&#8230; bottle of warm water, jacket, gloves, exit house.  The ice on the windscreen is clear &#8211; still some frost on the inside.  No matter, I can clear that quickly enough.  Unlock the car&#8230; eh? What?  3 doors open &#8211; the <strong>driver&#8217;s door is still locked</strong>.  Must be the ice.</p>
<p>Jump in the passenger side, climb over, insert key, start car.  Beep-beep-beep.  <strong>No engine.</strong> Apparently, it&#8217;s cold enough that my slightly shoddy battery can&#8217;t quite get the engine to turn over.  Well, no time to wait for Green Flag (besides, he&#8217;d laugh at me &#8211; I should have changed the battery last time I called him out for the same problem).  I&#8217;ll just cycle in.</p>
<p>Lock the car, back in the house, change to a warmer jacket, out the back door, grab my bike and helmet, and off I go.  Bike seems a bit sluggish &#8211; could just be my imagination, since it&#8217;s bloody cold.</p>
<p>Oh, wait, no&#8230; that&#8217;s not right.  <strong>Both tires are completely flat.</strong> Well, I&#8217;ve come too far to turn back now, so I walk the bike the rest of the way (to avoid completely destroying my inner tubes.</p>
<p>Final arrival time: 9:15 &#8211; Well done Murphy.</p>
<h2>Confession Time</h2>
<p>Okay, the truth is, most of these things are completely my fault, so I deserve no sympathy at all.</p>
<ul>
<li>I could quite easily have gone to bed an hour or two earlier (especially if I hadn&#8217;t carried on reading after midnight), in which case I probably would have woken up on time.</li>
<li>Everyone&#8217;s locks freeze in this weather &#8211; and I even had the right solution in my hands at the time.</li>
<li>My car has in fact refused to start in cold weather before, and the Green Flag chap did tell me to replace the battery &#8211; I was just too cheap to do so.</li>
<li>Quite clearly, I should have checked my tires before leaving, in which case, I&#8217;d have noticed in time to pump them up before departing.</li>
</ul>
<h2>Aftermath&#8230;</h2>
<p>Surprisingly, my boss wasn&#8217;t too fussed about me being late.  I still made it in before any of my underlings (thank you <a href="http://thesaurus.reference.com/browse/subordinate" target="_blank">Thesaurus.com</a> &#8211; I&#8217;ve been looking for that word for months!), so it wasn&#8217;t too bad.  He did have one point to make, after I explained my reasons:</p>
<blockquote><p>Well, after all that &#8211; you realise you&#8217;ve just used up your entire year&#8217;s worth of excuses, just for one day?</p></blockquote>
<p>Fortunately, I figure, if he believed that, even Alien Abduction won&#8217;t seem too far fetched any more!</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/murphy-4-angry-geek-0/')" href="http://www.sphere.com/search?q=sphereit:http://www.angry-geek.org/2009/01/murphy-4-angry-geek-0/">Sphere: Related Content</a></span><br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.angry-geek.org/2009/01/murphy-4-angry-geek-0/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>
