<?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>laur.ie&#039;s blog</title>
	<atom:link href="http://laur.ie/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://laur.ie/blog</link>
	<description>Sometimes I make things or think things. Here they are.</description>
	<lastBuildDate>Thu, 29 Mar 2012 17:52:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Easy image sharing on OS X using Scrup</title>
		<link>http://laur.ie/blog/2012/03/easy-image-sharing-scrup/</link>
		<comments>http://laur.ie/blog/2012/03/easy-image-sharing-scrup/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 17:46:50 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laur.ie/blog/?p=215</guid>
		<description><![CDATA[TweetNowadays, people are really into this whole &#8220;Skitch&#8221; thing, and being able to send images/screenshots to each other quickly. I&#8217;d been doing the same thing with TinyGrab for a long time, but I like to host things myself. Yes, TinyGrab has the ability to upload to your own server&#8230; but it uses FTP. This was [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton215" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2012%2F03%2Feasy-image-sharing-scrup%2F&amp;via=lozzd&amp;text=Easy%20image%20sharing%20on%20OS%20X%20using%20Scrup&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2012%2F03%2Feasy-image-sharing-scrup%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Nowadays, people are really into this whole &#8220;Skitch&#8221; thing, and being able to send images/screenshots to each other quickly. I&#8217;d been doing the same thing with TinyGrab for a long time, but I like to host things myself. Yes, TinyGrab has the ability to upload to your own server&#8230; but it uses FTP. This was causing me no end of issues, so I sought out something else.</p>
<p>I found <a href="https://github.com/rsms/scrup">Scrup</a>, and I&#8217;ve been using it for the last year or so very happily. It&#8217;s open source, and has been hanging around on Github for 2 years now. There are some pretty sweet forks of it, including one that has support for a sound on upload completion, and Growl notifications too.</p>
<h2>What does Scrup do?</h2>
<p>So, you need to share an image, or a screenshot really quickly? Using the standard OS X screenshot features (Command + Shift + 4, and so on), you can hit one button and upload the image to your webserver and put the link to it into your clipboard ready for pasting anywhere.</p>
<p>It does also have the ability to edit the screenshot pre-upload (such as adding arrows to point to important, or awesome things)</p>
<h2>What you need</h2>
<ul>
<li>A server somewhere with some disk space</li>
<li>PHP 5</li>
<li>A webserver</li>
</ul>
<h2>How?</h2>
<ol>
<li>Install the Scrup.app onto your Mac. I <a href="http://denness.net/Scrup.app.zip">have a pre-compiled a version with the sound and Growl patch included</a>. You don&#8217;t have to use mine, you can compile it yourself using Xcode if you wish. (The source is on github here: <a href="https://github.com/rsms/scrup">https://github.com/rsms/scrup</a>)</li>
<li>Create a folder on your webserver that you want to store your images in. I call mine &#8220;grb&#8221; (short for &#8220;grab&#8221;) because I like short URLs. (/var/www/grb/ -&gt; http://laur.ie/grb/)</li>
<li>In that folder, put a script that will receive the files, and then return the URL to where it stored the file. <a href="https://gist.github.com/78965072a4a33d26ee2c">You can view the one I use here</a> (modified from the one that ships with Scrup) which names files something like &#8220;1s-euobfpq1xcwos.png&#8221; and has no authentication (so make sure you go the security-by-obscurity route of naming the script something random or add auth yourself)</li>
<li>Open Scrup, and point it at your upload script. For example, http://yourhost/grb/receiver.php?name={filename}
<p>	<img class="alignnone" src="http://laur.ie/grb/7k-7yoxcc79s8k0c.png" alt="" width="544" height="292" /></li>
<li>Take screenshots! They should get uploaded and you should see a green tick in the menu bar. The URL of the uploaded image should also be in your clipboard, ready for pasting wherever.</li>
</ol>
<p>The best thing about Scrup is that it has a simple, fast UI for just uploading things quickly, and because it uses a regular HTTP POST, it works on whatever weird internet connection you may be on.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2012/03/easy-image-sharing-scrup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>timeout waiting for input from local during Draining Input</title>
		<link>http://laur.ie/blog/2011/09/timeout-waiting-for-input-from-local-during-draining-input/</link>
		<comments>http://laur.ie/blog/2011/09/timeout-waiting-for-input-from-local-during-draining-input/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 02:10:54 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laur.ie/blog/?p=200</guid>
		<description><![CDATA[TweetI experienced this today, very frustrating; sendmail all locked up and outputting this bizarre &#8220;timeout waiting for input from local during Draining Input&#8221; error into the logs. tl;dr: figure out what sendmail is waiting for. In my case, it was stuck on procmail. But why? Turns out the local mailbox (a user that runs a [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton200" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2011%2F09%2Ftimeout-waiting-for-input-from-local-during-draining-input%2F&amp;via=lozzd&amp;text=timeout%20waiting%20for%20input%20from%20local%20during%20Draining%20Input&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2011%2F09%2Ftimeout-waiting-for-input-from-local-during-draining-input%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I experienced this today, very frustrating; sendmail all locked up and outputting this bizarre &#8220;timeout waiting for input from local during Draining Input&#8221; error into the logs.</p>
<p>tl;dr: figure out what sendmail is waiting for.</p>
<p>In my case, it was stuck on procmail. But why? Turns out the local mailbox (a user that runs a lot of crons) had hit 3GB, at which point it didn&#8217;t seem to be accepting any more email into that inbox. Moving that file out of the way and allowing a new one to be created caused the queue to be flushed instantly.</p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2011/09/timeout-waiting-for-input-from-local-during-draining-input/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PagerdutyPHP: Scripts for the Pagerduty API</title>
		<link>http://laur.ie/blog/2011/08/pagerdutyphp-scripts-for-the-pagerduty-api/</link>
		<comments>http://laur.ie/blog/2011/08/pagerdutyphp-scripts-for-the-pagerduty-api/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 11:23:35 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laur.ie/blog/?p=195</guid>
		<description><![CDATA[TweetAs much as most of us would love to not have to do it, most people reading this now will have to be on call at some point. It sucks, but Pagerduty makes it a little easier to manage when your team starts to grow. Whilst we still have Nagios sending to all contacts directly (a [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton195" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2011%2F08%2Fpagerdutyphp-scripts-for-the-pagerduty-api%2F&amp;via=lozzd&amp;text=PagerdutyPHP%3A%20Scripts%20for%20the%20Pagerduty%20API&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2011%2F08%2Fpagerdutyphp-scripts-for-the-pagerduty-api%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>As much as most of us would love to not have to do it, most people reading this now will have to be on call at some point. It sucks, but <a href="http://www.pagerduty.com/">Pagerduty</a> makes it a little easier to manage when your team starts to grow.</p>
<p>Whilst we still have Nagios sending to all contacts directly (a personal preference) we still rely on Pagerduty for emergency pages from the rest of the company, and to arrange who is on call when (their calendar is pretty good for us, allows for exceptions etc).</p>
<p>We&#8217;re also a user of the IRC bot &#8220;<a href="https://github.com/RJ/irccat">irccat</a>&#8221; which, briefly explained, allows input/output to scripts from an IRC chat.</p>
<p>I wanted to combine the two for a long time, and when Pagerduty released their API to access schedule data it wasn&#8217;t long before we had a command that allows anyone in the company to ask irccat who is on call and until when.</p>
<p>I&#8217;ve finally got around to releasing this today, a &#8220;library&#8221; of useful Pagerduty API functions (pagerduty.php) (note currently it has just two, to see who is on call for a given schedule. Pull requests for additional useful functions please!) and more importantly, pagerdutycron.php &#8211; A script to run on an interval that will then either broadcast in IRC a new person on call, and/or send an email.</p>
<p>As usual, I&#8217;ve stuck the code on Github: <a href="https://github.com/lozzd/PagerdutyPHP">https://github.com/lozzd/PagerdutyPHP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2011/08/pagerdutyphp-scripts-for-the-pagerduty-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hadoop and Ganglia 3.1</title>
		<link>http://laur.ie/blog/2011/03/hadoop-and-ganglia-3-1/</link>
		<comments>http://laur.ie/blog/2011/03/hadoop-and-ganglia-3-1/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 13:27:15 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://laur.ie/blog/?p=190</guid>
		<description><![CDATA[TweetA quick note to anyone setting up a new Hadoop cluster and hoping to quickly use the built in Ganglia metrics collection (which you should! If it moves, graph it!): This works out of the box with Ganglia 3.0, but the protocol changed with Ganglia 3.1. The official GangliaMetrics pages talks about this, and talks about [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton190" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2011%2F03%2Fhadoop-and-ganglia-3-1%2F&amp;via=lozzd&amp;text=Hadoop%20and%20Ganglia%203.1&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2011%2F03%2Fhadoop-and-ganglia-3-1%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>A quick note to anyone setting up a new <a href="http://hadoop.apache.org/">Hadoop</a> cluster and hoping to quickly use the built in <a href="http://ganglia.sourceforge.net/">Ganglia</a> metrics collection (which you should! If it moves, graph it!): This works out of the box with Ganglia 3.0, but the protocol changed with Ganglia 3.1.</p>
<p>The official <a href="http://wiki.apache.org/hadoop/GangliaMetrics">GangliaMetrics</a> pages talks about this, and talks about patching (which is already available if you use the Cloudera releases) but doesn&#8217;t go into more detail than that. I recently set up a new cluster, and remembered there was something I had to change in the default config to make it work out of the box&#8230; After inquiring (and finding the comment I left in my old config file!) I remembered, you must change the default class to have &#8220;31&#8243; (e.g. Ganglia 3.1) on the end.</p>
<p>For example, the default config file: (Replacing @GANGLIA@ with your multicast address)</p>
<pre>dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext
dfs.period=10
dfs.servers=@GANGLIA@:8649

mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext
mapred.period=10
mapred.servers=@GANGLIA@:8649

jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
jvm.period=10
jvm.servers=@GANGLIA@:8649

rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext
rpc.period=10
rpc.servers=@GANGLIA@:8649</pre>
<p>Is changed to this:</p>
<pre>dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
dfs.period=10
dfs.servers=@GANGLIA@:8649

mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
mapred.period=10
mapred.servers=@GANGLIA@:8649

jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
jvm.period=10
jvm.servers=@GANGLIA@:8649

rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
rpc.period=10
rpc.servers=@GANGLIA@:8649</pre>
<p>Restart the cluster, and the graphs will appear under each host in the Ganglia interface.</p>
<p>There is a LOT of detail in these graphs, with metrics ranging <a href="http://laur.ie/grb/49-q7dt023noksgk.png">from DFS </a>(things like bytes written, and how many operations were transferred from other nodes) to <a href="http://laur.ie/grb/39-ggblwxyoe8ksw.png">the JVM</a> (monitor those heap memory sizes!)</p>
<p>This is probably old news to most people I&#8217;m sure, but I have a rule that if I didn&#8217;t find it within 30 minutes, maybe this will help someone in the same boat as me <img src='http://laur.ie/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2011/03/hadoop-and-ganglia-3-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Handy binaries for Thecus NAS boxes</title>
		<link>http://laur.ie/blog/2010/11/handy-binaries-for-thecus-nas-boxes/</link>
		<comments>http://laur.ie/blog/2010/11/handy-binaries-for-thecus-nas-boxes/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 11:04:25 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laur.ie/blog/?p=175</guid>
		<description><![CDATA[TweetI recently took delivery of the rather splendid Thecus N5500 which I love; it&#8217;s the perfect mix between &#8220;it just works&#8221; and &#8220;oh, let&#8217;s stick SSH on there and poke around&#8221;. With 5 hot swap disk shelves, and 2TB hard drives you&#8217;ve got a serious amount of storage. For your money you get a very [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton175" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F11%2Fhandy-binaries-for-thecus-nas-boxes%2F&amp;via=lozzd&amp;text=Handy%20binaries%20for%20Thecus%20NAS%20boxes&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F11%2Fhandy-binaries-for-thecus-nas-boxes%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I recently took delivery of the rather splendid <a href="http://www.amazon.co.uk/gp/product/B002YYW1YI?ie=UTF8&amp;tag=lausblo0d-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B002YYW1YI">Thecus N5500</a><img class=" amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=lausblo0d-21&amp;l=as2&amp;o=2&amp;a=B002YYW1YI" border="0" alt="" width="1" height="1" /> which I love; it&#8217;s the perfect mix between &#8220;it just works&#8221; and &#8220;oh, let&#8217;s stick SSH on there and poke around&#8221;. With 5 hot swap disk shelves, and 2TB hard drives you&#8217;ve got a serious amount of storage.</p>
<p>For your money you get a very nice little piece of hardware in a pretty nice shell (it strikes me as a touch tacky in places but then again it&#8217;s hardly going on show) with software that gets the job done. NFS, AFP, Samba, iSCSI, iTunes DAAP support, and plenty of modules to tickle your fancy (Logitech Squeezecenter, for instance).</p>
<p>But who am I kidding, I&#8217;m a sysadmin. 10 minutes after powering the thing on I was dying to log in using SSH so I could watch <code>/proc/mdstat</code> to see the RAID build. Luckily, the modules from the <a href="http://www.amazon.co.uk/gp/product/B000VFJ1BI?ie=UTF8&amp;tag=lausblo0d-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B000VFJ1BI">Thecus N5200</a><img class=" amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=lausblo0d-21&amp;l=as2&amp;o=2&amp;a=B000VFJ1BI" border="0" alt="" width="1" height="1" /> work fine; which means you&#8217;re a couple of clicks away from a root terminal.</p>
<ol>
<li>Grab the <a href="http://denness.net/thecus/modules/N5200_SSHD_2.00.00.zip">SSH</a> and <a href="http://denness.net/thecus/modules/N5200_SYSUSER_2.00.02.zip">SYSUSER</a> N5200 modules, and unzip them (a mistake I made.. How embarrassing.)</li>
<li>Upload them using the webinterface, and enable them.</li>
<li>SSH to the NAS box using the user &#8220;sys&#8221; and the password &#8220;sys&#8221;</li>
<li>Enjoy your shell, and remember to run <code>`passwd sys`</code> to change the password to something else.</li>
</ol>
<p>Now, you&#8217;ve got yourself a pretty handy, albeit it BusyBox-ridden install of Linux. The whole point of this post, is so I can pimp a few statically compiled binaries that might come in useful to you; they did to me anyway.</p>
<p>(You may wish to install the UTILITIES module, which gives you a proper version of <code>top</code> and <code>ps</code>, amongst other things, available <a href="http://denness.net/thecus/modules/N5200_UTILS_2.00.01.zip">here</a>)</p>
<p>You can simply untar and drop the binaries into /raid/data/modules/bin folder so that they&#8217;re in your path, and stored on your disks rather than the flash units which are rather limited in space. By the way, these modules should also work fine on the <a href="http://www.amazon.co.uk/gp/product/B000VFJ1BI?ie=UTF8&amp;tag=lausblo0d-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B000VFJ1BI">Thecus N5200</a><img class=" amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb amxrhfkelsvzhocxngdb" style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=lausblo0d-21&amp;l=as2&amp;o=2&amp;a=B000VFJ1BI" border="0" alt="" width="1" height="1" /> NAS boxes too.</p>
<p>The binaries are available here: <a href="http://denness.net/thecus/binaries/">http://denness.net/thecus/binaries/</a></p>
<p>The list includes (all the latest versions as of the date of this blog post):</p>
<ul>
<li>ethtool, handy for network interface prodding</li>
<li>iftop, a very useful &#8220;GUI&#8221; app that shows incoming/outgoing network bandwidth (let&#8217;s face it, this is fun on a NAS. <strong>NOTE:</strong> you may need to execute this one using <code>`TERM=vt100; iftop`</code>)</li>
<li>iostat, for hard core disk stats porn. Run it with <code>`iostat -mx 1`</code> and watch the megabytes fly</li>
<li>rsync, particularly handy if you want to synchronise/backup data from one place to another, so particularly handy on a NAS.</li>
<li>vim, just in case you were planning on writing a lot of code on the Thecus <img src='http://laur.ie/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>GNU screen, a nice place to store your terminals and detach and come back later. (<strong>NOTE:</strong> you may need to execute this one using <code>`TERM=vt100; screen`</code>)</li>
<li>The command line version of PHP, in case you were planning on writing any scripts in PHP to run on the Thecus.</li>
</ul>
<p>Any suggestions/comments, let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2010/11/handy-binaries-for-thecus-nas-boxes/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>MonitorControls &#8211; Utilties for monitor management on Windows</title>
		<link>http://laur.ie/blog/2010/11/monitorcontrols-utilties-for-monitor-management-on-windows/</link>
		<comments>http://laur.ie/blog/2010/11/monitorcontrols-utilties-for-monitor-management-on-windows/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 15:49:00 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laur.ie/blog/?p=172</guid>
		<description><![CDATA[TweetWhen I ended up using Windows to power the overhead information screens at Last.fm, I lost the ability to have a one line crontab entry that shut the monitors into DPMS standby (and wake them up) when we&#8217;re in and out of office hours. Makes no sense wasting power, but more importantly shortening the length [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton172" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F11%2Fmonitorcontrols-utilties-for-monitor-management-on-windows%2F&amp;via=lozzd&amp;text=MonitorControls%20%26%238211%3B%20Utilties%20for%20monitor%20management%20on%20Windows&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F11%2Fmonitorcontrols-utilties-for-monitor-management-on-windows%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>When I ended up <a href="http://laur.ie/blog/2009/05/finding-a-web-browser-for-constant-page-reloading/">using Windows to power</a> the <a href="http://laur.ie/blog/2010/03/naglite2-finally-released/">overhead</a> <a href="http://laur.ie/blog/2009/12/cactiview/">information</a> screens at <a href="http://www.last.fm">Last.fm</a>, I lost the ability to have a one line crontab entry that shut the monitors into DPMS standby (and wake them up) when we&#8217;re in and out of office hours. Makes no sense wasting power, but more importantly shortening the length of screens having them on when the office is empty.</p>
<p>I didn&#8217;t think I would have any issue finding a utility to place the screens in to standby mode. I didn&#8217;t; but unfortunately they were either not free, massively complicated or simply didn&#8217;t work.</p>
<p>So I found a code snippet online, fired up a copy of Visual Studio and compiled two exe files; MonitorOn.exe and MonitorOff.exe. MonitorOff sends a signal to all attached monitors on the system to go in to sleep mode, and if you move the mouse you can wake them up as normal. Or you can run MonitorOn which will send the signal manually. Simply place these into the Windows Task Scheduler, and you have a simple, effective way to manage your information screens.</p>
<p>You can <a href="http://denness.net/MonitorControls.zip">download MonitorOn and MonitorOff here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2010/11/monitorcontrols-utilties-for-monitor-management-on-windows/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Leaving Last.fm</title>
		<link>http://laur.ie/blog/2010/09/leaving-last-fm/</link>
		<comments>http://laur.ie/blog/2010/09/leaving-last-fm/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 11:11:14 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laurie.denness.net/blog/?p=164</guid>
		<description><![CDATA[TweetI&#8217;ve spent 3.43 years at Last.fm, which seems almost like a lifetime. For a long time, I couldn&#8217;t ever imagine leaving; every morning I would wake up excited to go and face new challenges and do fascinating new things. In the last 6-12 months so much has changed, as Last.fm gradually slips out of being [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton164" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F09%2Fleaving-last-fm%2F&amp;via=lozzd&amp;text=Leaving%20Last.fm&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F09%2Fleaving-last-fm%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I&#8217;ve spent 3.43 years at <a href="http://www.last.fm">Last.fm</a>, which seems almost like a lifetime. For a long time, I couldn&#8217;t ever imagine leaving; every morning I would wake up excited to go and face new challenges and do fascinating new things. In the last 6-12 months so much has changed, as Last.fm gradually slips out of being a startup to being a company that, for better or for worse, has to make some money. I will certainly think twice before working for a company that has anything to do with the music industry&#8230; it&#8217;s a pain of a situation.</p>
<p>I&#8217;ve babysat the wonderful creation that is Last.fm through <a href="http://blog.last.fm/2009/12/07/launching-xbox-part-1-the-war-room">launches</a> (both expected and unexpected), crashes (always unexpected), <a href="http://twitter.com/lozzd/statuses/12543991721">overheatings</a> (and break-ins, and <a href="http://twitter.com/lozzd/statuses/791993989">power failures</a>&#8230; All the kind of thing that should never happen to a datacentre) and plenty of blood, sweat and tears.</p>
<p>It&#8217;s been an amazing experience, working with some of the most amazing people I have ever met (some of which have come and gone), but it&#8217;s time for me to help another startup through getting up at 4am to fix <a href="http://howfuckedismydatabase.com/">databases</a> and exciting scaling questions.</p>
<p>And that will be <a href="http://www.etsy.com">Etsy</a>; another website that has an awesome product that I love, plenty of traffic and graphs that point upwards and a bunch of guys who are passionate and have an awesome method of working. I&#8217;m really excited about getting involved and learning things again, as well as enabling a different group of passionate users go about their day to day business. I&#8217;ll still be in London, but popping to NY on occasion.</p>
<p>Let&#8217;s hope the next 3.43 years will be just as exciting.</p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2010/09/leaving-last-fm/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Fixing Android 2.2 Sync after Upgrading to Exchange 2010 SP1</title>
		<link>http://laur.ie/blog/2010/09/exchange-2010-sp1-sync-with-android-froyo/</link>
		<comments>http://laur.ie/blog/2010/09/exchange-2010-sp1-sync-with-android-froyo/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 17:24:59 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laurie.denness.net/blog/?p=160</guid>
		<description><![CDATA[TweetLast night I upgraded my Exchange 2010 server to 2010 SP1. Unlike many other people&#8217;s experiences, this actually went rather smoothly, until I realised 2 hours later my T-Mobile G1 (aka HTC Dream) is no longer syncing my Email. I currently use Cyanogen&#8217;s Mod version 6 which brings the features of Android 2.2 aka Froyo [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton160" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F09%2Fexchange-2010-sp1-sync-with-android-froyo%2F&amp;via=lozzd&amp;text=Fixing%20Android%202.2%20Sync%20after%20Upgrading%20to%20Exchange%202010%20SP1&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F09%2Fexchange-2010-sp1-sync-with-android-froyo%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Last night I upgraded my Exchange 2010 server to 2010 SP1. Unlike many other people&#8217;s experiences, this actually went rather smoothly, until I realised 2 hours later my T-Mobile G1 (aka HTC Dream) is no longer syncing my Email. I currently use <a href="http://www.cyanogenmod.com/">Cyanogen&#8217;s Mod version 6</a> which brings the features of Android 2.2 aka Froyo to my poor ancient device (which I&#8217;m hanging on to because of the excellent keyboard!) and use the built-in <a href="http://en.wikipedia.org/wiki/Exchange_ActiveSync">Exchange ActiveSync (EAS)</a> support to sync my email, contacts and calendar to my phone.</p>
<p>I read online about a few other people running Android 2.2 who had the same issue and some suggested it was a policy problem, so I deleted the default profile and recreated it, and deleted the device association on my phone and my account. Unfortunately this didn&#8217;t work either, leaving me with no email but more importantly, no contacts!</p>
<p>After enabling some extra logging on the server I could see it was unhappy about Android trying to get a folder sync without provisioning, but for some reason the device wasn&#8217;t attempting to apply the policy.</p>
<p><code>AccessState :<br />
Blocked<br />
AccessStateReason :<br />
Policy<br />
ResponseHeader :<br />
HTTP/1.1 449 Retry after sending a PROVISION command<br />
MS-Server-ActiveSync: 14.1</code></p>
<p>Curiously, enabling extra logging on the device just showed it successfully understanding the first OPTIONS request, then timing out.</p>
<p><code><br />
[12:36:00] EAS SyncManager | !!! EAS SyncManager, onCreate<br />
[12:36:00] AbstractSyncService | Testing EAS: example.contoso.com, domain\user, ssl=1<br />
[12:36:14] AbstractSyncService | Validation (OPTIONS) response: 200<br />
[12:36:14] AbstractSyncService | Server supports versions: 2.0,2.1,2.5,12.0,12.1,14.0,14.1<br />
[12:36:14] AbstractSyncService | Try folder sync<br />
[12:36:35] AbstractSyncService | IOException caught: Read timed out<br />
[12:36:35] EAS SyncManager | !!! Eas SyncManager, onDestroy<br />
</code></p>
<p>Thinking I was going to have to<a href="http://github.com/CyanogenMod/android_packages_apps_Email/blob/froyo/src/com/android/exchange/EasSyncService.java"> apply my highly dubious Java programming skills</a> to this solution, I downloaded the Android SDK and started up the emulator for 2.2. I attempted to set up my account on the emulator, and to my surprise it worked first time.</p>
<p>I can only imagine, Google have already patched up this issue and not yet released it, as the <a href="http://android.git.kernel.org/?p=platform/packages/apps/Email.git;a=summary">Android Open Source Project page for Mail.apk </a>shows the last update 5 months ago. So I applied the best logic that I have as a Sysadmin&#8230; Scp the working Email.apk from the emulator to my server, and install it on my device. And it works! I lose the a few additions that have been made to the CyanogensMod version of Email.apk but I&#8217;d rather have it working.</p>
<p>If you&#8217;re experiencing this issue too and you want to apply my brute force method of fixing it and get your email syncing again, simply follow these instructions (you need root for this, but I suspect this is only a problem on modified builds):</p>
<ol>
<li>Download the 2.2 stock Email.apk from <a href="http://denness.net/Email.apk">here</a> using the Android browser. Don&#8217;t attempt to install it, let it go in to your download folder on your SD card.</li>
<li>Open a terminal on your device. I use <a href="http://code.google.com/p/connectbot/">ConnectBot</a>. Gain root using &#8220;su&#8221;</li>
<li>Run: <code>mount -o remount,rw /system</code></li>
<li>Run: <code>mv /system/app/Email.apk /sdcard/backup_Email.apk</code></li>
<li>Run: <code>cp /sdcard/download/Email.apk /system/app</code></li>
<li>Reboot for good measure</li>
<li>Set up your sync, and enjoy a <a href="http://www.amazon.co.uk/gp/product/B003RRXGMC?ie=UTF8&amp;tag=lausblo0d-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B003RRXGMC">refreshing beverage</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=lausblo0d-21&amp;l=as2&amp;o=2&amp;a=B003RRXGMC" border="0" alt="" width="1" height="1" /><br />
for your hard work</li>
</ol>
<p>Disclaimer: I have no idea if this has any bad affects on your phone, your sex life, or anything and I make no guarantees about anything. If anything bad happens, it&#8217;s not my fault, you do this at your own risk! The process above makes a backup, so hopefully if you regret this you can put back the old version.</p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2010/09/exchange-2010-sp1-sync-with-android-froyo/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Naglite2 finally released</title>
		<link>http://laur.ie/blog/2010/03/naglite2-finally-released/</link>
		<comments>http://laur.ie/blog/2010/03/naglite2-finally-released/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 18:51:30 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://laurie.denness.net/blog/?p=151</guid>
		<description><![CDATA[TweetIt&#8217;s been a long time coming (even longer than CactiView!) but finally I&#8217;ve cleaned up (as much as possible) and released Naglite2, a full screen easy to read status screen backed on to Nagios. Perfect for a NOC or operations room, you get a at-a-glance view of your hosts and services status, which not only [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton151" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F03%2Fnaglite2-finally-released%2F&amp;via=lozzd&amp;text=Naglite2%20finally%20released&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F03%2Fnaglite2-finally-released%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>It&#8217;s been a long time coming (even longer than CactiView!) but finally I&#8217;ve cleaned up (as much as possible) and released Naglite2, a full screen easy to read status screen backed on to Nagios.</p>
<p><img class="alignnone" title="Naglite2" src="http://farm4.static.flickr.com/3100/3210502566_24b11c162f.jpg" alt="Naglite2" width="375" height="500" /></p>
<p>Perfect for a NOC or operations room, you get a at-a-glance view of your hosts and services status, which not only helps in sudden emergencies but also incentivise  your staff to get a &#8220;clean board&#8221; and fix the remaining niggly problems in your network!</p>
<p>The screen also compresses down quite nicely into a mobile browser, perfect for checking on the status of your systems whilst on the move.</p>
<p>The code is up over at <a href="http://github.com/lozzd/Naglite2">Github</a>, feel free to use/distribute/fork and modify or send me comments.</p>
<p><a href="http://github.com/lozzd/Naglite2">Get Naglite2 now</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2010/03/naglite2-finally-released/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Draytek 2710 series and multi WAN IP</title>
		<link>http://laur.ie/blog/2010/03/draytek-2710-series-and-multi-wan-ip/</link>
		<comments>http://laur.ie/blog/2010/03/draytek-2710-series-and-multi-wan-ip/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 21:46:17 +0000</pubDate>
		<dc:creator>Laurie Denness</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://laurie.denness.net/blog/?p=141</guid>
		<description><![CDATA[TweetI recently purchased a Draytek Vigor 2710n router to replace my aging 2600plus. I&#8217;ve always had a very high opinion of Draytek routers. They&#8217;re fairly expensive compared to most home routers, but they do have a bucketload of fairly advanced features, that I was disappointed were lacking in others. I changed ISP at the same [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton141" class="tw_button" style="float:right;margin-left:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F03%2Fdraytek-2710-series-and-multi-wan-ip%2F&amp;via=lozzd&amp;text=Draytek%202710%20series%20and%20multi%20WAN%20IP&amp;related=&amp;lang=en&amp;count=vertical&amp;counturl=http%3A%2F%2Flaur.ie%2Fblog%2F2010%2F03%2Fdraytek-2710-series-and-multi-wan-ip%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://laur.ie/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>I recently purchased a <a href="http://www.amazon.co.uk/gp/product/B002RIUUSU?ie=UTF8&#038;tag=lausblo0d-21&#038;linkCode=as2&#038;camp=1634&#038;creative=19450&#038;creativeASIN=B002RIUUSU">Draytek Vigor 2710n</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=lausblo0d-21&#038;l=as2&#038;o=2&#038;a=B002RIUUSU" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> router to replace my aging 2600plus. I&#8217;ve always had a very high opinion of Draytek routers. They&#8217;re fairly expensive compared to most home routers, but they do have a bucketload of fairly advanced features, that I was disappointed were lacking in others.</p>
<p>I changed ISP at the same time as getting the new router, taking out service with the (so far) brilliant <a href="http://www.zen.co.uk">Zen Internet</a> after recommendations from colleagues especially <a href="http://twitter.com/armyofcaitlin">Caitlin</a> who used to work there before joining us at Last.fm. They&#8217;re a proper Sysadmin&#8217;s ISP, giving you a netblock of 8 IPs on a pretty inexpensive home connection.</p>
<p>Unfortunately for me I (foolishly) didn&#8217;t check to see whether the 2710n still supported this, since my 2600 did and I just assumed a higher model number meant it was actually an upgrade rather than a downgrade.</p>
<p>After a quick chat to Draytek support they told me this indeed was not available and never would be. I contemplated giving up with the 2710n and returning it, or just using it as a WAP, but I was somewhat peeved when I looked in the HTML and noticed the only reason the button was missing (the interface has hardly changed in the 5 years between the models) was because it was hidden using CSS:</p>
<p><code>&lt;input type="button" name="btnWIpAlias" id="wIpAlias" style="display: none;" value="WAN IP Alias" onclick="wanIpAlias()"&gt;</code></p>
<p>Using Firebug, you can easily show this button and it&#8217;s functions work fine. I decided to do some more digging.</p>
<p>The Draytek have an excellent Telnet (and now SSH) interface too, and the functions are entirely available there:<br />
<code>admin&gt; ip aux ?<br />
%% ip aux add [IP] [Join to NAT Pool]<br />
%% ip aux remove [Index]<br />
%%     Where IP = Auxiliary WAN IP Address.<br />
%%           Join to NAT Pool = 0 or 1.<br />
%%           Index = The Index number of table.<br />
Now auxiliary WAN1 IP Address table:<br />
Index no.       Status  IP address      NAT IP pool<br />
----------------------------------------------------<br />
1            Enable  X.X.X.110   Yes<br />
2            Enable  X.X.X.105   No<br />
3            Enable  X.X.X.106   No<br />
4            Enable  X.X.X.107   No<br />
5            Enable  X.X.X.108   No<br />
6            Enable  X.X.X.109   No<br />
</code></p>
<p>Sorted! The IPs then appear in the relevant places in the web interface too, for example in the &#8220;open ports&#8221; or &#8220;DMZ&#8221; sections. If IP routing is what you&#8217;re after (used to be called &#8220;For IP Routing Usage&#8221;) simply use the &#8220;ip 2ndaddr&#8221; command.</p>
<p>If you like configuration via the web interface, that&#8217;s pretty simple to enable too. Grab Firebug for Firefox, and use the &#8220;DOM&#8221; tab to display all the variables used on the current page.</p>
<div id="attachment_144" class="wp-caption aligncenter" style="width: 624px"><a href="http://laurie.denness.net/blog/wp-content/uploads/2010/03/firebug1.png"><img class="size-large wp-image-144 " title="Firebug DOM console" src="http://laurie.denness.net/blog/wp-content/uploads/2010/03/firebug1-1024x640.png" alt="Firebug DOM console" width="614" height="384" /></a><p class="wp-caption-text">Firebug DOM console</p></div>
<p>There are tonnes of variables in here, many are set to &#8220;0&#8243;. Incredibly, all these functions do is tell the web interface to display extra features. They&#8217;re all there and available in the background, from static routing to Multi-Nat, to IP routing and extra VPN settings. You can even enable the WAN, Wizard and VoIP options if you really want to.</p>
<p>For Multi-NAT, double click on SHOW_INT_MULTINAT and set it to 1. For 2nd subnet IP routing, find SHOW_LAN_GEN_2NDSUBNET and set it to 1. Have a search through and enable the functions are need. By the way, this only lasts for as long as you&#8217;re logged in, so you&#8217;ll have to repeat it if you ever need to change the variables.</p>
<h2><strong>Before:</strong></h2>
<p><img src="http://denness.net/grb/3513f3860df743228ba2a10c95737df7.png" alt="Before" /></p>
<h2>After:</h2>
<p><img src="http://denness.net/grb/df11821f790c4a2e8ddfcf5c00af08c5.png" alt="After" /></p>
<p>I will note that you should probably buy the 2820 as suggested by Draytek if you really want these features.. It&#8217;s only £40 more expensive, but saves you a bit of hassle. This guide is only for people who have been mislead and don&#8217;t want to send their routers back!</p>
]]></content:encoded>
			<wfw:commentRss>http://laur.ie/blog/2010/03/draytek-2710-series-and-multi-wan-ip/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

