<?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>johnflan.com</title>
	<atom:link href="http://johnflan.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://johnflan.com</link>
	<description></description>
	<lastBuildDate>Tue, 17 Jan 2012 23:30:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>A Universe in Fireworks</title>
		<link>http://johnflan.com/2011/11/a-universe-in-fireworks/</link>
		<comments>http://johnflan.com/2011/11/a-universe-in-fireworks/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 23:54:15 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://johnflan.com/2011/11/a-universe-in-fireworks/</guid>
		<description><![CDATA[A Universe in Fireworks, originally uploaded by johnflan.]]></description>
			<content:encoded><![CDATA[<div style="text-align: left; padding: 3px;"><a title="photo sharing" href="http://www.flickr.com/photos/johnflan/6337550127/"><img style="border: solid 2px #000000;" src="http://farm7.static.flickr.com/6230/6337550127_ea93a0de70.jpg" alt="" /></a></p>
<p><span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/johnflan/6337550127/">A Universe in Fireworks</a>, originally uploaded by <a href="http://www.flickr.com/photos/johnflan/">johnflan</a>.</span></div>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2011/11/a-universe-in-fireworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitor the evolution of a webpage with wkhtmltoimage, bash and cron</title>
		<link>http://johnflan.com/2011/09/monitor-the-evolution-of-a-webpage-with-wkhtmltoimage-bash-and-cron/</link>
		<comments>http://johnflan.com/2011/09/monitor-the-evolution-of-a-webpage-with-wkhtmltoimage-bash-and-cron/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 21:39:42 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnflan.com/?p=233</guid>
		<description><![CDATA[After seeing the 37signals.com homepage evolution blog post published last week, I thought it would be interesting to record the evolution of some of my own sites. For this project I used wkhtmltoimage which is a fork of wkhtmltopdf. wkhtmltoimage runs on the console and renders either a jpg or png of the page. I <a href="http://johnflan.com/2011/09/monitor-the-evolution-of-a-webpage-with-wkhtmltoimage-bash-and-cron/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After seeing the <a href="http://37signals.com/svn/posts/3007-37signalscom-homepage-evolution" title="37signals.com homepage evolution" target="_blank">37signals.com homepage evolution</a> blog post published last week, I thought it would be interesting to record the evolution of some of my own sites. For this project I used <code>wkhtmltoimage</code> which is a fork of <code><a href="http://code.google.com/p/wkhtmltopdf/" title="wkhtmltopdf" target="_blank">wkhtmltopdf</a></code>.</p>
<p><code>wkhtmltoimage</code> runs on the console and renders either a <code>jpg</code> or <code>png</code> of the page. I have limited this to 1000 pixels vertically in order to keep the file sizes down. </p>
<p>Below is the <code>bash</code> script I created to read a list of sites from a file and save them into a directory which is named after the site, with each image been titled with the date and time.</p>
<pre class="brush: bash; ">

#!/bin/sh

FILENAME=&quot;sites.txt&quot;

while read URL; do
    #generate the current date + time
    DATE=`date +%d_%m_%y_%H%M`
    OPTIONS=&quot;--height 1000 --crop-h 1000 --quality 80&quot;

    #if the directory does not exist create it
    if [ ! -d &quot;$URL&quot; ]; then
        mkdir &quot;$URL&quot;
    fi

    ./wkhtmltoimage-amd64 $OPTIONS http://$URL ./$URL/$DATE.png

done &lt; &quot;$FILENAME&quot;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2011/09/monitor-the-evolution-of-a-webpage-with-wkhtmltoimage-bash-and-cron/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fractal terrain generation</title>
		<link>http://johnflan.com/2011/08/fractal-terrain-generation/</link>
		<comments>http://johnflan.com/2011/08/fractal-terrain-generation/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 19:22:59 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://johnflan.com/?p=225</guid>
		<description><![CDATA[Recently I became aware of how fractals are used in random terrain generation which is historically used to generate realistic looking backgrounds on the fly, particularly in older games. Below is a video example of such a terrain. Generating Random Fractal Terrain &#8211; Paul&#8217;s article is a little old but walks through the algorithms demonstrating their results <a href="http://johnflan.com/2011/08/fractal-terrain-generation/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I became aware of how fractals are used in random terrain generation which is historically used to generate realistic looking backgrounds on the fly, particularly in older games. Below is a video example of such a terrain.</p>
<p><iframe width="425" height="349" src="http://www.youtube.com/embed/eyWu0kRL9ws" frameborder="0" allowfullscreen></iframe></p>
<p><a href="http://gameprogrammer.com/fractal.html">Generating Random Fractal Terrain</a> &#8211; Paul&#8217;s article is a little old but walks through the algorithms demonstrating their results in a well written piece.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2011/08/fractal-terrain-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A real social network</title>
		<link>http://johnflan.com/2011/01/a-real-social-network/</link>
		<comments>http://johnflan.com/2011/01/a-real-social-network/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 02:00:05 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Social]]></category>

		<guid isPermaLink="false">http://johnflan.com/?p=189</guid>
		<description><![CDATA[What if&#8230; your social network was not defined by your on-line activity, but was generated from the people you meet daily, taking into account how regularly you meet, the time of day, location and duration. As surprising as it sounds the technology for a network of this type exists today, not in some shady lab run by <a href="http://johnflan.com/2011/01/a-real-social-network/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>What if&#8230;</strong> your social network was not defined by your on-line activity, but was generated from the people you meet daily, taking into account how regularly you meet, the time of day, location and duration.</p>
<p>As surprising as it sounds the technology for a network of this type exists today, not in some shady lab run by Google, Facebook or even Microsoft, but in our pockets.</p>
<p>Recently I toyed a little with the Facebook Open Graph, and since then I have been considering how these Object ID&#8217;s map to the real world. Everything in the Open Graph is an object in the software development sense and Object ID&#8217;s are used to represent individual people, businesses, events, places and activities.</p>
<p><strong>So how can we exchange these ID&#8217;s quickly and invisibly?</strong></p>
<p>A number of methods exist today to integrate this functionality into say the Android or iPhone Facebook applications. For example a handset could broadcast a Wi-Fi SSID of &#8220;FB-ID:XXXXXXXX&#8221; where X&#8217;s would represent the users Facebook Object ID. Bluetooth radios could also be utilised to transmit and receive this information, offering an advantage of a shorter range (10m or so) enabling the software to understand that this person was in close physical proximity.</p>
<p>Concurrently, your device on say a thirty-second interval could perform a scan looking for other devices broadcasting an SSID with a &#8220;FB-ID:&#8221; prefix. With this data the software can trivially discover if the detected Object ID&#8217;s around you resolve to existing Facebook friends. If they turnout to be valid object references then record the duration, the location (from GPS) and time of the meeting, and if the Object ID&#8217;s dont match existing friends store them for later analysis.</p>
<p>We can build systems that can dynamically partition these aquantances into categories like close friends, co-workers, business contacts and others. And importantly, manage how these relationships change over time  representing your current real life social network.</p>
<p>Whether or not current wireless technologies are up to this task or if users would be happy with this level of invasion remain to be seen, but I am confident that this is how the Facebook of tomorrow will function.</p>
<p>Thoughts or comments are appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2011/01/a-real-social-network/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>When Google Chrome crashes</title>
		<link>http://johnflan.com/2011/01/when-google-chrome-crashes/</link>
		<comments>http://johnflan.com/2011/01/when-google-chrome-crashes/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 16:13:29 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://johnflan.com/?p=194</guid>
		<description><![CDATA[It kinda reminds me of this http://www.youtube.com/watch?v=FCARADb9asE]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-195" href="http://johnflan.com/2011/01/when-google-chrome-crashes/hes_dead/"><img class="alignnone size-full wp-image-195" title="he's_dead_jim" src="http://johnflan.com/wp-content/uploads/2011/01/hes_dead.png" alt="" width="349" height="234" /></a></p>
<p>It kinda reminds me of this <a href="http://www.youtube.com/watch?v=FCARADb9asE">http://www.youtube.com/watch?v=FCARADb9asE</a></p>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2011/01/when-google-chrome-crashes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android debugging ADB permission problem</title>
		<link>http://johnflan.com/2011/01/android-debugging-adb-permission-problem/</link>
		<comments>http://johnflan.com/2011/01/android-debugging-adb-permission-problem/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 18:21:57 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://johnflan.com/?p=160</guid>
		<description><![CDATA[It seems that the Android debugger (adb) has problems on Ubuntu when trying to connect to a physical device, a Nexus One is this case. The issue is relating to user permissions with the debugger being unable to access the usb device. I have seen a number of solutions for this with the most common <a href="http://johnflan.com/2011/01/android-debugging-adb-permission-problem/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-161" href="http://johnflan.com/2011/01/android-debugging-adb-permission-problem/adb_usb_permissions/"><img class="alignnone size-full wp-image-161" title="adb_usb_permissions" src="http://johnflan.com/wp-content/uploads/2011/01/adb_usb_permissions.png" alt="" width="543" height="337" /></a></p>
<p>It seems that the Android debugger (adb) has problems on Ubuntu when trying to connect to a physical device, a Nexus One is this case. The issue is relating to user permissions with the debugger being unable to access the usb device. I have seen a number of solutions for this with the most common being simply killing the adb process and restarting it as root.</p>
<pre class="brush: bash; ">

cd android-sdk-linux_x86/platform-tools
adb kill-server
sudo adb start-server
adb devices
</pre>
<p>But unfortunately this was not sufficient to resolve the problem for my configuration and also it would be necessary to restart adb on every system restart. A more permanent solution appears to be adding a rule to udev to permit usage of the device.</p>
<pre class="brush: bash; ">

sudo gedit /etc/udev/rules.d/51-android.rules
</pre>
<p>and paste the following lines</p>
<pre>SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE:="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE:="0666"</pre>
<p>The <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; white-space: pre;">0bb4 </span>in the idVendor property identifies the device (Nexus One), you can list the currently connected usb devices on your machine running the command <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; white-space: pre;">lsusb</span>, from here you will be able to identify the vendor id for your android device.</p>
<pre class="brush: bash; ">

sudo restart udev
cd android-sdk-linux_x86/platform-tools
./adb kill-server
./adb start-server
./adb devices
</pre>
<p>Even with this second solution be sure to physically disconnect and reconnect the handset.</p>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2011/01/android-debugging-adb-permission-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quake speedrun</title>
		<link>http://johnflan.com/2011/01/quake-1-speedrun-in-nightmare-difficulty/</link>
		<comments>http://johnflan.com/2011/01/quake-1-speedrun-in-nightmare-difficulty/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 15:32:01 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Retro]]></category>

		<guid isPermaLink="false">http://www.johnflan.com/?p=153</guid>
		<description><![CDATA[For those of you who at one time or another played multilayer quake, this is for you. Its funny after not having played the game in years the levels still have a strange sense of familiarly. The run was completed on nightmare mode in 52min, with every secret discovered and every enemy killed. Via Geek.com]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="579" height="351" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/ZhzXKMqZBBc?fs=1&amp;hl=en_GB" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="579" height="351" src="http://www.youtube.com/v/ZhzXKMqZBBc?fs=1&amp;hl=en_GB" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>For those of you who at one time or another played multilayer quake, this is for you. Its funny after not having played the game in years the levels still have a strange sense of familiarly. The run was completed on nightmare mode in 52min, with every secret discovered and every enemy killed.</p>
<p>Via <a href="http://www.geek.com/articles/games/quake-speedrun-with-100-completion-takes-52-minutes-20101229/">Geek.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2011/01/quake-1-speedrun-in-nightmare-difficulty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Less haste</title>
		<link>http://johnflan.com/2010/12/less-haste/</link>
		<comments>http://johnflan.com/2010/12/less-haste/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 02:34:11 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.johnflan.com/2010/12/08/less-haste/</guid>
		<description><![CDATA[Less haste, originally uploaded by johnflan.]]></description>
			<content:encoded><![CDATA[<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/johnflan/5242135253/" title="photo sharing"><img src="http://farm6.static.flickr.com/5049/5242135253_427640dc39.jpg" style="border: solid 2px #000000;" alt="" /></a><br />
<br />
<span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/johnflan/5242135253/">Less haste</a>, originally uploaded by <a href="http://www.flickr.com/people/johnflan/">johnflan</a>.</span>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2010/12/less-haste/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distant Thomond Bridge</title>
		<link>http://johnflan.com/2010/12/distant-thomond-bridge/</link>
		<comments>http://johnflan.com/2010/12/distant-thomond-bridge/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 16:20:20 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.johnflan.com/2010/12/05/distant-thomond-bridge/</guid>
		<description><![CDATA[Distant Thomond Bridge, originally uploaded by johnflan.]]></description>
			<content:encoded><![CDATA[<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/johnflan/5219038332/" title="photo sharing"><img src="http://farm6.static.flickr.com/5161/5219038332_60a3d7269d.jpg" style="border: solid 2px #000000;" alt="" /></a><br />
<br />
<span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/johnflan/5219038332/">Distant Thomond Bridge</a>, originally uploaded by <a href="http://www.flickr.com/people/johnflan/">johnflan</a>.</span>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2010/12/distant-thomond-bridge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Porsche Badge</title>
		<link>http://johnflan.com/2010/11/porsche-badge-2/</link>
		<comments>http://johnflan.com/2010/11/porsche-badge-2/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 23:27:09 +0000</pubDate>
		<dc:creator>John Flanagan</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.johnflan.com/2010/11/29/porsche-badge-2/</guid>
		<description><![CDATA[Porsche Badge, originally uploaded by johnflan.]]></description>
			<content:encoded><![CDATA[<div style="text-align: left; padding: 3px;">
<a href="http://www.flickr.com/photos/johnflan/5219036940/" title="photo sharing"><img src="http://farm6.static.flickr.com/5085/5219036940_36539ba149.jpg" style="border: solid 2px #000000;" alt="" /></a><br />
<br />
<span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/johnflan/5219036940/">Porsche Badge</a>, originally uploaded by <a href="http://www.flickr.com/people/johnflan/">johnflan</a>.</span>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://johnflan.com/2010/11/porsche-badge-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

