<?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>Conroyp.com</title>
	<atom:link href="http://www.conroyp.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.conroyp.com</link>
	<description>Technically speaking</description>
	<lastBuildDate>Thu, 25 Apr 2013 20:56:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>CSS &amp; Javascript truncated by nginx</title>
		<link>http://www.conroyp.com/2013/04/25/css-javascript-truncated-by-nginx-sendfile/</link>
		<comments>http://www.conroyp.com/2013/04/25/css-javascript-truncated-by-nginx-sendfile/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 20:55:45 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[sendfile]]></category>
		<category><![CDATA[vagrant]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://www.conroyp.com/?p=847</guid>
		<description><![CDATA[<p>On several recent projects I&#8217;ve been using VirtualBox and Vagrant to spin up new development machines. The simplicity and power of the two tools together is amazing, and stops me from cluttering up my main machine with tools and packages from random side projects. It hasn&#8217;t been all sweetness and light though. I wrote recently ...<a class="post-readmore" href="http://www.conroyp.com/2013/04/25/css-javascript-truncated-by-nginx-sendfile/">read more</a></p><p>The post <a href="http://www.conroyp.com/2013/04/25/css-javascript-truncated-by-nginx-sendfile/">CSS &#038; Javascript truncated by nginx</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>On several recent projects I&#8217;ve been using <a href="https://www.virtualbox.org/">VirtualBox</a> and <a href="http://www.vagrantup.com/">Vagrant</a> to spin up new development machines. The simplicity and power of the two tools together is amazing, and stops me from cluttering up my main machine with tools and packages from random side projects. It hasn&#8217;t been all sweetness and light though. I wrote recently about issues with <a href="/2013/04/13/symlink-shenanigans-nodejs-npm-express-vagrant/">node.js, npm and express</a>, and this week ran in to a far more frustrating issue. It involved nginx and <span style="font-family:monospace;">sendfile</span>, with javascript truncated and this developer frustrated.</p>
<h2>The Problem: CSS &amp; Javascript truncated</h2>
<p>My setup was a very basic one &#8211; a VirtualBox running:</p>
<ul>
<li>Ubuntu 12.04</li>
<li>nginx</li>
<li>PHP-FPM</li>
</ul>
<p>My code was mounted from a windows host, and initially all was going well. Then suddenly my app started spitting out javascript errors. Digging in to chrome&#8217;s error console, it looked like the last 40 or 50 bytes of the file were missing. As these bytes contained the end of a function, them being absent meant the file had invalid syntax so the application didn&#8217;t run. It was a similar story with the css &#8211; random bits chopped off the end of some files, and in others changes I made not being reflected when viewed in the browser. Javascript truncated, the same for css &#8211; bad times all round.</p>
<p><img src="http://www.conroyp.com/wp-content/uploads/2013/04/badtime.jpg" alt="Javascript truncated? Bad times" width="600" height="405" class="aligncenter size-full wp-image-851" /></p>
<p>I suspected a cache issue initially. I flushed the browser cache, tried a new browser, and even restarted nginx on the vm &#8211; all to no avail. Interestingly, when I added more code to the bottom of an affected javascript file, it was still only the last 40-50 bytes being chopped off &#8211; the file itself wasn&#8217;t frozen in it&#8217;s original, broken state. So, what&#8217;s going on there?</p>
<h2>Sendfile</h2>
<p>Nginx has a <a href="http://wiki.nginx.org/HttpCoreModule#sendfile"><span style="font-family:monospace;">sendfile</a> directive</a>, which defaults to <span style="font-family:monospace;">on</span>. It allows nginx to use the Linux kernel&#8217;s <a href="http://man7.org/linux/man-pages/man2/sendfile.2.html"><span style="font-family:monospace;">sendfile()</span></a> operation to read the requested file from disk. This is typically quicker than using <span style="font-family:monospace;">read()</span> and <span style="font-family:monospace;">write()</span>. So far, so good.</p>
<p>The problem is that <span style="font-family:monospace;">sendfile</span> doesn&#8217;t work so well in virtual environments, as noted in nginx&#8217;s <a href="http://wiki.nginx.org/Pitfalls">&#8220;Pitfalls&#8221;</a> section. The fix turned out to be insanely simple &#8211; just turn <span style="font-fmaily:monospace;">sendfile</span> off. As it&#8217;s a development machine, the performance hit incurred by turning off this feature is pretty negligible. (It would want to be a pretty significant performance hit to outweigh the file truncation!)<br />
In the nginx config http server block, I added:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sendfile off;</div></td></tr></tbody></table></div>
<p>Once nginx was restarted, I was getting served full static files, and all was well with the world again!</p>
<p>The post <a href="http://www.conroyp.com/2013/04/25/css-javascript-truncated-by-nginx-sendfile/">CSS &#038; Javascript truncated by nginx</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2013/04/25/css-javascript-truncated-by-nginx-sendfile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symlink shenanigans &#8211; node.js, npm, express and vagrant</title>
		<link>http://www.conroyp.com/2013/04/13/symlink-shenanigans-nodejs-npm-express-vagrant/</link>
		<comments>http://www.conroyp.com/2013/04/13/symlink-shenanigans-nodejs-npm-express-vagrant/#comments</comments>
		<pubDate>Sat, 13 Apr 2013 15:50:40 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[vagrant]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://www.conroyp.com/?p=830</guid>
		<description><![CDATA[<p>Recently I was working on a new project on a virtual box set up through vagrant. For those of you who haven&#8217;t used it, vagrant is an amazing tool that makes it crazy-easy to set up and deploy uniform development environments on virtual servers. However, I ran in to a very frustrating issue when trying ...<a class="post-readmore" href="http://www.conroyp.com/2013/04/13/symlink-shenanigans-nodejs-npm-express-vagrant/">read more</a></p><p>The post <a href="http://www.conroyp.com/2013/04/13/symlink-shenanigans-nodejs-npm-express-vagrant/">Symlink shenanigans &#8211; node.js, npm, express and vagrant</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.conroyp.com/wp-content/uploads/2013/04/vagrant1.png" alt="Vagrant, node and npm" width="614" height="80" class="aligncenter size-full wp-image-840" /></p>
<p>Recently I was working on a new project on a virtual box set up through <a href="http://www.vagrantup.com/">vagrant</a>. For those of you who haven&#8217;t used it, vagrant is an amazing tool that makes it crazy-easy to set up and deploy uniform development environments on virtual servers. However, I ran in to a very frustrating issue when trying to install the node.js framework <a href="http://expressjs.com/">express</a> through npm.</p>
<p><span id="more-830"></span><br />
Node was set up and running fine, and I&#8217;d successfully gotten a few modules working by adding them to the dependencis list in package.json and running npm install. I then added express, so my dependencies list now looked like:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;&quot;dependencies&quot;: {<br />
&nbsp; &nbsp; &quot;aws-sdk&quot;: &quot;0.9.x&quot;,<br />
&nbsp; &nbsp; &quot;express&quot;: &quot;3.x&quot;,<br />
&nbsp; &nbsp; &quot;pg&quot;: &quot;x&quot;<br />
&nbsp; }</div></td></tr></tbody></table></div>
<p>I ran npm install, then got hit with an error along the lines of:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">error code EROFS<br />
error errno 56</div></td></tr></tbody></table></div>
<p>This error means the file system is read only. But I already managed to install two other modules in the same way on the same system! So what gives?</p>
<h2>Symlink shenanigans</h2>
<p>The issue is caused by the way express attempts to symlink binaries. One of the restrictions when using virtualbox is that symlinks can&#8217;t be created within shared folders. (My code was mounted from a shared folder on my local machine) This is discussed in a bit more detail on this <a href="https://github.com/isaacs/npm/issues/2380">github issue</a>.</p>
<p>There are a wide variety of suggested fixes for this floating around on the net. One is to edit the vagrant config file to allow symlinks to be created, explained in more detail <a href="http://blog.liip.ch/archive/2012/07/25/vagrant-and-node-js-quick-tip.html">here</a>. This one didn&#8217;t work for me, so my search went on, and eventually led me to the github issue linked above.</p>
<p>The issue resulted in a patch being added to npm which will install packages without forcing the symlinks. So, when running &#8220;npm install&#8221; on a virtual machine created through vagrant, run it as:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">npm install --no-bin-link</div></td></tr></tbody></table></div>
<p>This will install the dependencies listed in the packages.json file, whilst preventing npm from creating symlinks for any binaries the packages may contain.</p>
<p>The post <a href="http://www.conroyp.com/2013/04/13/symlink-shenanigans-nodejs-npm-express-vagrant/">Symlink shenanigans &#8211; node.js, npm, express and vagrant</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2013/04/13/symlink-shenanigans-nodejs-npm-express-vagrant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Share and share alike &#8211; Facebook Tags and Twitter Cards</title>
		<link>http://www.conroyp.com/2013/04/01/share-and-share-alike-facebook-tags-and-twitter-cards/</link>
		<comments>http://www.conroyp.com/2013/04/01/share-and-share-alike-facebook-tags-and-twitter-cards/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 20:15:00 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Daft]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[open-graph]]></category>
		<category><![CDATA[sharing]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.conroyp.com/?p=781</guid>
		<description><![CDATA[<p>Recently we launched a Property Tax Calculator on Daft. It&#8217;s quite a topical tool, as the Revenue Commissioners have just sent out letters inviting people to self-assess their property value ahead of the the new tax introduction. Topical pages like this tend to get shared more often on social networks, so we took a few ...<a class="post-readmore" href="http://www.conroyp.com/2013/04/01/share-and-share-alike-facebook-tags-and-twitter-cards/">read more</a></p><p>The post <a href="http://www.conroyp.com/2013/04/01/share-and-share-alike-facebook-tags-and-twitter-cards/">Share and share alike &#8211; Facebook Tags and Twitter Cards</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Recently we launched a <a href="http://www.daft.ie/property-tax/">Property Tax Calculator</a> on Daft. It&#8217;s quite a topical tool, as the Revenue Commissioners have just sent out letters inviting people to self-assess their property value ahead of the the new tax introduction. Topical pages like this tend to get shared more often on social networks, so we took a few small steps to ensure that the page looked it&#8217;s best when it shows up in a twitter timeline or Facebook feed.<br />
<span id="more-781"></span></p>
<h2>Facebook</h2>
<p>Whenever a link is shared on Facebook, in the background their system will fetch a copy of that page, and attempt to work out what image and summary should be shown for that page. Generally they&#8217;ll do a pretty good job of figuring out which is the main image, though from time to time get it pretty wrong &#8211; this is when you start seeing adserver/site logos, or &#8220;sign up for our app&#8221;-type banners being shown as the representative image of the page. Not great for your hopes of your content catching the eye as it whizzes past in a sea of updates!</p>
<p>Fortunately Facebook provides a structured way to describe to them exactly what your page is about using <a href="http://developers.facebook.com/docs/opengraph/">Open Graph Tags</a>. These tags are constantly being extended by Facebook to describe more and more real world objects and actions. Here we&#8217;re going to focus on the simplest case &#8211; specifying the title, image and description for your page which should be shown when the content is shared.</p>
<p><img src="http://www.conroyp.com/wp-content/uploads/2013/04/fb_share.png" alt="Facebook Share" width="878" height="314" class="aligncenter size-full wp-image-818" /></p>
<p>For the Daft property tax calculator, we had one large background image on the page. Without custom open graph tags, when this page is shared on Facebook, the thumbnail chosen is a small version of that image. This is ok, as it is clearly to do with property, but we wanted to make it even clearer that the tool itself was a simple form. We took a screenshot of the rendered page containing the form, and gave <a href="http://c1.dmstatic.com/316/i/property-tax/sshot.png">this image</a> to Facebook as the representative image of the page. </p>
<p>Within the head section of the document, there are a few meta tags to be added. These are:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;meta property='og:title' content='Property Tax Calculator | Daft.ie' /&gt;<br />
&lt;meta property='og:image' content='http://c1.dmstatic.com/316/i/property-tax/sshot.png' /&gt;<br />
&lt;meta property='og:description' content='With our Property Tax Calculator, estimate the value for your property, and a corresponding estimated local property tax (LPT) due for 2013 and 2014.' /&gt;</div></td></tr></tbody></table></div>
<p>The above tags have told Facebook what title to show for our page, the image to use, and the description of the page which we wish to appear alongside the user&#8217;s comment. We can go a step further and give Facebook a little more structured information about our site, and the canonical url for this content.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;meta property='og:url' content='http://www.daft.ie/property-tax/' /&gt;<br />
&lt;meta property='og:site_name' content='Daft.ie' /&gt;<br />
&lt;meta property='og:type' content='article' /&gt;</div></td></tr></tbody></table></div>
<p>And that&#8217;s all there is to it. Now when the page is shared on Facebook, the image, title and description shall be pre-populated with the details we&#8217;ve decided above.</p>
<p>One thing to bear in mind when adding the Open Graph tags to a page is that Facebook will cache the results on their side after initially seeing the page. This means that if you make a change to the tag content, it may not show immediately. One way to force Facebook to refresh their cache is to use their <a href="http://developers.facebook.com/tools/debug">Linter Tool</a>. This tool is helpful for highlighting whether the tags are syntactically-correct, and has the added benefit of forcibly refreshing the cache whenever a url is entered in to it.</p>
<h2>Twitter Cards</h2>
<p>Twitter have a method of attaching additional media to tweets linking to your content. These are called <a href="https://dev.twitter.com/docs/cards">twitter cards</a>, and allow a small preview of the site content to be shown in an expanded tweet view, similar to the extra info shown on the Facebook share option shown above.</p>
<p><img src="http://www.conroyp.com/wp-content/uploads/2013/04/twitter_card.png" alt="Twitter card" width="548" height="258" class="aligncenter size-full wp-image-823" /></p>
<p>Unlike Facebook, twitter will only attempt to create a card for a site if that site has <a href="https://dev.twitter.com/form/participate-twitter-cards">applied to participate</a>. Once the site has been accepted by twitter, when a link is tweeted a crawler will access the site mentioned and see if there&#8217;s any structured data which can be used to create a card for that page. The card information is also defined in meta tags.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;meta property='twitter:card' content='summary' /&gt;<br />
&lt;meta property='twitter:site' content='@daftmedia' /&gt;<br />
&lt;meta property='og:title' content='Property Tax Calculator | Daft.ie' /&gt;<br />
&lt;meta property='og:image' content='http://c1.dmstatic.com/316/i/property-tax/sshot.png' /&gt;<br />
&lt;meta property='og:description' content='With our Property Tax Calculator, estimate the value for your property, and a corresponding estimated local property tax (LPT) due for 2013 and 2014.' /&gt;</div></td></tr></tbody></table></div>
<p>The first tag &#8211; &#8220;summary&#8221; &#8211; controls the display of the media on twitter. This option will show a small thumbnail to the right of the content. Another popular option for this value is &#8220;photo&#8221;, which will make the image larger and the primary focus of the card. The value of the &#8220;twitter:site&#8221; option is a twitter handle which will be listed as the site owner&#8217;s account in the card for any tweet mentioning this page.</p>
<p>The eagle-eyed amongst you will have noticed that the remaining properties still begin with &#8220;og:&#8221; rather than &#8220;twitter:&#8221;. In their docs, twitter mention that if any of the twitter-specific tags are missing, they&#8217;ll fall back to accepting Open Graph tags. This pleases my geek OCD, as we can cut down on the number of vendor-specific tags which would otherwise be repeating the same information. The only tags twitter require which don&#8217;t have an Open Graph analogues are the &#8220;twitter:card&#8221; and &#8220;twitter:site&#8221; options, the rest we get for free once we have the Open Graph tags in place for Facebook.</p>
<p>Twitter also provide <a href="https://dev.twitter.com/docs/cards/preview">a linter</a> to test the markup once it is in place. One thing to note about these cards is that twitter&#8217;s infrastructure seems a little more erratic than Facebook&#8217;s, so it&#8217;s not uncommon for cards to just not appear on tweets despite other tweets mentioning the same url showing cards.</p>
<p>One other caveat is that the image urls need to be absolute. On Daft we&#8217;ve been making increasing use of <a href="http://paulirish.com/2010/the-protocol-relative-url/">protocol-relative urls</a>. The Open Graph tags require the protocol to be present &#8211; without it Twitter does not display a card on any tweets mentioning the link.</p>
<h2>Does it work?</h2>
<p>The pre-population of the photo and text on Facebook certainly allows a publisher far more ability to craft a short, engaging message to entice visits from those who stumble across a link shared by friends. Where this technique really shines is when multiple bits of content are shared in the one tweet, and not all sites are using these tags. When this happens, twitter will highlight that there is additional information available with the tweet, and use whatever card information it has. An example of this is shown below, and illustrates how well the benefit of having these features enabled for your site when your competitors may not:</p>
<blockquote class="twitter-tweet"><p>And then there were 3 <a href="https://twitter.com/search/%23propertytax">#propertytax</a> calculators:<a href="http://t.co/LrvtaE9EBm" title="http://www.myhome.ie/priceregister">myhome.ie/priceregister</a> &amp; <a href="http://t.co/Hf5os3ZVPS" title="http://www.daft.ie/property-tax/">daft.ie/property-tax/</a> &amp;<a href="https://t.co/1G6ddhGKs2" title="https://lpt.revenue.ie/lpt-web/valuation-guide/index.htm">lpt.revenue.ie/lpt-web/valuat…</a> @<a href="https://twitter.com/morning_ireland">morning_ireland</a></p>
<p>&mdash; Cathal Mac Coille (@CathalMacCoille) <a href="https://twitter.com/CathalMacCoille/status/311770520687374337">March 13, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>The post <a href="http://www.conroyp.com/2013/04/01/share-and-share-alike-facebook-tags-and-twitter-cards/">Share and share alike &#8211; Facebook Tags and Twitter Cards</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2013/04/01/share-and-share-alike-facebook-tags-and-twitter-cards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Daft.ie Property Tax Calculator &#8211; how does it work?</title>
		<link>http://www.conroyp.com/2013/03/23/the-daft-property-tax-calculator-how-does-it-work/</link>
		<comments>http://www.conroyp.com/2013/03/23/the-daft-property-tax-calculator-how-does-it-work/#comments</comments>
		<pubDate>Sat, 23 Mar 2013 13:03:14 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Daft]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[daft.ie]]></category>
		<category><![CDATA[joe-duffy]]></category>
		<category><![CDATA[property-tax-calculator]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.conroyp.com/?p=730</guid>
		<description><![CDATA[<p>Last week we launched a property tax calculator on Daft.ie. It&#8217;s a simple tool which asks for information on a property&#8217;s location, bedrooms, bathrooms and type, before giving an estimated value for the property. This in turn calculates the Local Property Tax (LPT) due to be paid when the new scheme starts in July. So, ...<a class="post-readmore" href="http://www.conroyp.com/2013/03/23/the-daft-property-tax-calculator-how-does-it-work/">read more</a></p><p>The post <a href="http://www.conroyp.com/2013/03/23/the-daft-property-tax-calculator-how-does-it-work/">The Daft.ie Property Tax Calculator &#8211; how does it work?</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.conroyp.com/wp-content/uploads/2013/03/ptax1.png" alt="Property Tax Calculator" width="610" height="410" class="aligncenter size-full wp-image-737" /><br />
Last week we launched a <a href="http://www.daft.ie/property-tax/">property tax calculator</a> on Daft.ie. It&#8217;s a simple tool which asks for information on a property&#8217;s location, bedrooms, bathrooms and type, before giving an estimated value for the property. This in turn calculates the Local Property Tax (LPT) due to be paid when the new scheme starts in July. So, where did the idea come from, and how does it work?</p>
<p><span id="more-730"></span></p>
<h2>Where did this come from?</h2>
<p>One of the conditions of the bailout the Irish government received from the IMF was the introduction of a residential property tax. The tax paid is to be based off a self-assessment of the property&#8217;s value. This tax is due to be levied in July this year for the last 6 months of 2013, then from January 2014 be billed annually to cover the full 12 months of the year.</p>
<p>In early March, the Revenue Commissioners released an <a href="https://lpt.revenue.ie/lpt-web/valuation-guide/index.htm">online tool</a> which aims to help people estimate the value of their property. The Revenue have been at pains to stress that this tool is not definitive, and should be taken only as a starting point for valuation. There was much debate about the accuracy of this tool, due to the limited amount of data it has for each property (area and rough property age). This leads to average prices being shown for an area which may have, for example, both 1 bed apartments and 4 bed semi-detached houses. The value of each of these properties would be wildly different, but the revenue tool shows them both in the same tax band. Not ideal, and it&#8217;s caused a lot of confusion for people worried about declaring themselves in the wrong band. The Revenue have publicly acknowledged that <a href="http://www.irishexaminer.com/archives/2013/0311/world/up-to-50-of-property-tax-valuations-aposmay-be-wrongapos-225039.html">up to 50% of properties</a> may be valued in the wrong tax band initially. Potentially a fairly big margin of error there.</p>
<p>One of the big issues the Revenue have is that they just don&#8217;t have the data quality needed to carry out this sort of exercise. They may know that a property exists in a given location, but don&#8217;t have access to it&#8217;s size, type, whether it&#8217;s been extended, etc, so they&#8217;re starting at a disadvantage here. All of this information exists <i>somewhere</i> within various government departments, but a lack of joined-up data is a recurring theme in Irish government. That&#8217;s a rant for another day!</p>
<h2>Is there another way to do it?</h2>
<p><img src="http://www.conroyp.com/wp-content/uploads/2013/03/coefficients.png" alt="Coefficients" width="207" height="132" class="alignright size-full wp-image-792" /><br />
So, if the Revenue don&#8217;t have great data, what can be done? On Daft.ie, we regularly release property market analysis via the <a href="http://www.daft.ie/report/">Daft Report</a>. These reports are based on the details users enter when placing or editing an ad, so is much richer than the revenue data. We have access to things like bedroom number and property type, which can have a big impact on a property&#8217;s value. Daft&#8217;s economist <a href="http://www.ronanlyons.com/">Ronan Lyons</a> got to work on a model similar to that behind the Daft Report which would allow us to use the rich data we already have from property listings to hopefully give a more accurate valuation tool.</p>
<p>Ronan split the country in to 5 large regions (Dublin, Other Cities, Leinster, Munster and Connaught-Ulster), as well as in to 365 smaller areas (micro-markets), which are generated by taking the areas offered in the Daft search and grouping them by proximity and similarity. Each of these micro-markets was given a coefficient so that we could say that all else being equal, a property in micro-market A is worth 20% more than micro-market B.</p>
<p>Coefficients were then generated for property features (type, number of beds, baths, presence of a garden) based on the property&#8217;s location. Once the hard work of evaluating all of these coefficients is done, they get multiplied together to work out a property&#8217;s price relative to a control, base property, and this give&#8217;s the property&#8217;s approximate current value. One of the drawbacks of using Daft data is that people list the asking prices they hope to achieve on the site, which isn&#8217;t always the same as a sale price. Based on 2012 analysis, a 10% discount is applied to allow for the drop between asking and realised prices.</p>
<p>Ronan goes in to a good bit more detail on the ins and outs of how these coefficients were generated in a <a href="http://www.ronanlyons.com/2013/03/13/how-much-is-that-house-worth-a-note-on-property-tax-calculators/">great post on his site</a>, the summary of it being:</p>
<blockquote><p>The estimated value of a property is based on an economic hedonic pricing model of all 150,000 listings on the daft.ie site in 2012 and 2013, which controls for when a property was listed, its location, type and size, and other measurable characteristics.</p></blockquote>
<h2>Does it work?</h2>
<p>Initial feedback on the calculator has been very positive, through emails to our support team, feedback on social media and nice write-ups from users, such as <a href="http://fecktv.com/daft-ie-launches-its-own-property-tax-calculator-its-much-better/">this one from FeckTV</a>.</p>
<blockquote class="twitter-tweet"><p>We&#8217;re finding the Daft property tax calculator more accurate than Revenue &#8211; what are your thoughts? <a href="http://t.co/D6guLB4xV2" title="http://bit.ly/Z0QA66">bit.ly/Z0QA66</a></p>
<p>&mdash; House and Home (@houseandhomemag) <a href="https://twitter.com/houseandhomemag/status/311787961480015872">March 13, 2013</a></p></blockquote>
<blockquote class="twitter-tweet"><p>DAFT Property Tax Calculator takes number of bedrooms into account, liable to be bit more accurate than Revenue&#8217;s <a href="http://t.co/nyHrEPKkAf" title="http://www.daft.ie/property-tax">daft.ie/property-tax</a></p>
<p>&mdash; Gary in D3 (@garyInD3) <a href="https://twitter.com/garyInD3/status/311800634238185473">March 13, 2013</a></p></blockquote>
<blockquote class="twitter-tweet"><p>For those of you having a conniption over the Property Tax, like me, this calculator is a bit more user friendly <a href="http://t.co/PsjRMWjcPv" title="http://www.daft.ie/property-tax?c_id=11&amp;a_id=661&amp;beds=4&amp;baths=3&amp;garden=1&amp;type=detached&amp;action=doSearch&amp;search=Calculate+tax">daft.ie/property-tax?c…</a></p>
<p>&mdash; Nollaig (@nollaigbrennan) <a href="https://twitter.com/nollaigbrennan/status/311808462449418240">March 13, 2013</a></p></blockquote>
<blockquote class="twitter-tweet"><p>The Daft.ie Property Tax calculator is way better then the MyHome.ie one.. both way better then the Revenue one! <a href="http://t.co/ZXMYCFW7Y5" title="http://bit.ly/10N8Tfs">bit.ly/10N8Tfs</a></p>
<p>&mdash; Leon Quinn (@reverbstudios) <a href="https://twitter.com/reverbstudios/status/312314026321387520">March 14, 2013</a></p></blockquote>
<blockquote class="twitter-tweet"><p>Daft.ie launches its own property tax calculator. It’s much better. <a href="http://t.co/iZGMX9FUDF" title="http://ow.ly/iReLi">ow.ly/iReLi</a> <a href="https://twitter.com/search/%23PropertyTax">#PropertyTax</a> @<a href="https://twitter.com/daftmedia">daftmedia</a></p>
<p>&mdash; FeckTV.com (@FeckTv) <a href="https://twitter.com/FeckTv/status/311759101724094464">March 13, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>There was also a lengthy discussion on the <a href="http://www.rte.ie/radio1/liveline/programmes/2013/0313/376512-wednesday-13th-2013/?clipid=1029984">Joe Duffy radio show</a> (Ireland&#8217;s most popular phone-in radio show) about the accuracy level of the Daft estimations versus those of the revenue. As an aside, I took a quick look at the <a href="/2013/03/14/talking-to-joe-whats-a-mention-by-joe-duffy-worth/">traffic impact Joe Duffy has</a> when mentioning a site.</p>
<p>The model is still not perfect &#8211; it does not allow for things like the size of the property or improvements made such as a conservatory or good insulation (high energy rating). What we hope that it does do is provide a little more useful information for home-owners ahead of the filing deadline at the end of May.</p>
<p>The post <a href="http://www.conroyp.com/2013/03/23/the-daft-property-tax-calculator-how-does-it-work/">The Daft.ie Property Tax Calculator &#8211; how does it work?</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2013/03/23/the-daft-property-tax-calculator-how-does-it-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Talking to Joe: What&#8217;s a mention by Joe Duffy worth?</title>
		<link>http://www.conroyp.com/2013/03/14/talking-to-joe-whats-a-mention-by-joe-duffy-worth/</link>
		<comments>http://www.conroyp.com/2013/03/14/talking-to-joe-whats-a-mention-by-joe-duffy-worth/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 14:40:31 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Daft]]></category>
		<category><![CDATA[Miscellantry]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[cmere-to-me-joe]]></category>
		<category><![CDATA[daft.ie]]></category>
		<category><![CDATA[joe-duffy]]></category>
		<category><![CDATA[property-tax-calculator]]></category>

		<guid isPermaLink="false">http://www.conroyp.com/?p=753</guid>
		<description><![CDATA[<p>Yesterday on Daft we launched a Property Tax Calculator. The idea is to try to help homeowners estimate their property value ahead of the introduction of the Local Property Tax (LPT) this summer. Initial feedback we&#8217;ve received on it has been quite positive, not least because it&#8217;s a little more detailed than the tool which ...<a class="post-readmore" href="http://www.conroyp.com/2013/03/14/talking-to-joe-whats-a-mention-by-joe-duffy-worth/">read more</a></p><p>The post <a href="http://www.conroyp.com/2013/03/14/talking-to-joe-whats-a-mention-by-joe-duffy-worth/">Talking to Joe: What&#8217;s a mention by Joe Duffy worth?</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-756" alt="Talk to Joe" src="http://www.conroyp.com/wp-content/uploads/2013/03/analytics-spike.png" width="680" height="186" /></p>
<p>Yesterday on Daft we launched a <a href="http://www.daft.ie/property-tax/">Property Tax Calculator</a>. The idea is to try to help homeowners estimate their property value ahead of the introduction of the Local Property Tax (LPT) this summer. Initial feedback we&#8217;ve received on it has been <a href="https://twitter.com/search/realtime?q=daft.ie%2Fproperty-tax&#038;src=typd">quite positive</a>, not least because it&#8217;s a little more detailed than the tool which the Revenue Commissioners <a href="http://www.revenue.ie/lpt_reckoner/index_en.html">have made available</a>.</p>
<p>At lunchtime yesterday, the property tax issue came up on <a href="http://www.rte.ie/radio1/liveline/programmes/2013/0313/376512-wednesday-13th-2013/?clipid=1029984">Liveline</a>, Ireland&#8217;s most popular radio call-in programme. The Daft calculator was brought up, and host Joe Duffy mentioned that the Daft valuations appeared to be more accurate than those from the Revenue Commissioners. This led to a nice spike in traffic from listeners who had just learned of the calculator, eager to check it out.</p>
<p>So how much traffic is a mention on Liveline worth to a website?</p>
<p>The graphic at the top of the page shows visits per hour for yesterday versus the same day last week, according to Google Analytics. The spike during the show ended up being roughly a <strong>95% increase in visitors</strong>, week on week. On the day in question, this worked out at a little over 10,000 new site visitors. The scale of the traffic surge was borne out by our internal monitoring tools (below).</p>
<p><img class="aligncenter size-full wp-image-754" alt="C'mere to me, Joe" src="http://www.conroyp.com/wp-content/uploads/2013/03/cmere-to-me-joe.png" width="468" height="230" /></p>
<p>So, it&#8217;s not quite as strong as <a href="http://en.wikipedia.org/wiki/Slashdot_effect">being Slashdotted</a> or the Reddit effect. But given that the show has an audience of around 400,000 listeners, the ability to send around 2.5% of their audience from offline to on in such a short space of time is pretty impressive!</p>
<p>And for those of you interested in the nuts and bolts behind it, I&#8217;ve put up a quick post about <a href="/2013/03/23/the-daft-property-tax-calculator-how-does-it-work/">how the calculator works</a>.</p>
<p>The post <a href="http://www.conroyp.com/2013/03/14/talking-to-joe-whats-a-mention-by-joe-duffy-worth/">Talking to Joe: What&#8217;s a mention by Joe Duffy worth?</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2013/03/14/talking-to-joe-whats-a-mention-by-joe-duffy-worth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Will valid markup now help your Google ranking?</title>
		<link>http://www.conroyp.com/2012/01/29/will-valid-markup-now-help-your-google-ranking/</link>
		<comments>http://www.conroyp.com/2012/01/29/will-valid-markup-now-help-your-google-ranking/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 20:20:24 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[classified]]></category>
		<category><![CDATA[daft.ie]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[rich snippet]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://conroyp.com/?p=630</guid>
		<description><![CDATA[<p>Google recently published a list of 30 updates made to search over the tail end of 2011. Tucked away in the middle of the list is mention of improved support for rich snippets. The snippet types listed are shopping, recipes and reviews. Amongst the other information on rich snippets is listed a point that a ...<a class="post-readmore" href="http://www.conroyp.com/2012/01/29/will-valid-markup-now-help-your-google-ranking/">read more</a></p><p>The post <a href="http://www.conroyp.com/2012/01/29/will-valid-markup-now-help-your-google-ranking/">Will valid markup now help your Google ranking?</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Google recently published a list of <a href="http://insidesearch.blogspot.com/2012/01/30-search-quality-highlights-with.html">30 updates made to search</a> over the tail end of 2011. Tucked away in the middle of the list is mention of improved support for rich snippets. The snippet types listed are shopping, recipes and reviews. Amongst the other information on rich snippets is listed a point that a snippet can only be given for a page with a single item upon it, ruling out snippets for things like searches for ipods on amazon.</p>
<p>However it looks like google has also been testing out ways of extracting structured data from pages which have no defined snippet <b>and</b> contain multiple items &#8211; starting with real estate classifieds. What&#8217;s equally interesting here is that it seems having clear and valid markup may have an extra impact on your site&#8217;s appearance in the Google results and number of visitors clicking through!</p>
<p><span id="more-630"></span></p>
<h3>What&#8217;s a rich snippet?</h3>
<p>Traditionally &#8220;snippets&#8221; were the information Google would display about a page when it showed up for a given search term. This would include the page title, a link and some short text from the page.<br />
&#8220;<a href="http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html">Rich Snippets</a>&#8221; were introduced first by Google in 2009. These were small bits of additional markup which a webmaster can place on their site in order to give search engines a more structured view of what information is on the page. This in turn allows the search engine to show more relevant information in the &#8220;snippets&#8221; a user sees when searching.<br />
Google regularly uses <a href="http://googlewebmastercentral.blogspot.com/2011/02/introducing-recipe-view-based-on-rich.html">recipes</a> as an example of how best rich snippets can be used.</p>
<p>There is along and detailed list of item types which have rich snippet support at <a href="http://schema.org/docs/gs.html#schemaorg_types">schema.org</a>.</p>
<h3>What about sites which don&#8217;t have a relevant rich snippet?</h3>
<p>The vast majority of sites on the net either don&#8217;t have content which fits in to the supported rich snippet categories, or haven&#8217;t implemented support for them. So, whilst data defined using rich snippets is helpful to Google, they need a way to get similarly structured data from sites without rich snippets defined.</p>
<p>In my <a href="http://www.distilledmedia.ie/">day job</a>, I noticed that searches on which our classified sites <a href="http://www.daft.ie">daft.ie</a>, <a href="http://www.rent.ie/">rent.ie</a> and <a href="http://www.let.ie/">let.ie</a> typically perform well were starting to show the snippets formatted in a slightly-changed format, despite no changes being made to the markup on site. Trying a handful of slightly different searches also showed significant changes in the snippet being shown &#8211; again, with no markup change &#8211; which seems to suggest that Google are actively working on their algorithms in this area.</p>
<h3>Compare and contrast</h3>
<p style="text-align: center;"><a href="http://www.google.ie/search?q=mallow+rental"><img class=" wp-image-647 aligncenter" title="daft_mallow" alt="Rental Property search for Mallow, Co. Cork" src="http://www.conroyp.com/wp-content/uploads/2013/03/daft_mallow.png" /></a></p>
<p>Starting with a search for <a href="http://www.google.ie/search?q=mallow+rental">Mallow rental</a>, the result from daft.ie shows the search result page for <a href="http://www.daft.ie/cork/houses_to_rent/mallow/">rental properties in Mallow, Co. Cork</a>. So far, so what?</p>
<p>What&#8217;s interesting here is that Google has broken the markup out in to the address/type and price sections, making it very clear how much the top properties are for any user performing the same search. This is without any changes being made to the markup on the daft site.</p>
<p>On the same set of search results, the results from let.ie are similarly displayed. Yet property.ie, which has very similar markup, is not broken out. So it looks like the googlebot is slowly working it&#8217;s way through various sites. However, further queries on daft reveal that the algorithm has been tweaked since the Mallow results above.</p>
<p style="text-align: center;"><a href="http://www.google.ie/search?q=cobh+rental"><img class=" wp-image-651 aligncenter" title="daft_cobh" alt="Cobh, Co. Cork rental search" src="http://www.conroyp.com/wp-content/uploads/2013/03/daft_cobh1.png" /></a></p>
<p>In the daft.ie result above, the property type now appears to have been broken out in to a separate section on each line (red lines added are mine). Again, no changes to markup have been made, but the googlebot appears to realise that the &#8220;-&#8221; between the address and &#8220;House to let&#8221; is a logical break between two important, connected data points which refer to separate elements of the same property.</p>
<h3>So what exactly is happening here?</h3>
<p>In summary, it looks like google has been aggressively testing ways to derive structured data from nominally free-form webpages. This type of behaviour has been <a href="http://www.seroundtable.com/google-real-estate-snippets-13928.html">spotted in the past</a>, when Google snippets showed a list of results from a page which itself was a formatted list. However, to the best of my knowledge this automated breaking out of key data is a new tweak.</p>
<p>It would also seem to suggest that having well-structured, clear markup is going to be increasingly-important in future. Google has historically downplayed the importance of having markup which validates, saying that it has no significant impact in a site&#8217;s ranking. However, the sites listed above which have seen these new type of results are ones which are XHTML1 strict compatible. There&#8217;s no way of knowing exactly what&#8217;s going on inside the googlebot, but it stands to reason that having clear markup which is simple to parse consistently makes life easier for this sort of information (relative importance of data) to be extracted.</p>
<p>Google has regularly espoused the benefit on click-through rates of having rich snippets enabled, so if this sort of pseudo-rich snippet has a similar effect, having clear and consistent markup on your site may have a direct impact on visitor numbers.</p>
<p>If you&#8217;ve any other examples of this type of intelligent formatting or theories on what&#8217;s goign on above, please share them in the comments below!</p>
<p>The post <a href="http://www.conroyp.com/2012/01/29/will-valid-markup-now-help-your-google-ranking/">Will valid markup now help your Google ranking?</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2012/01/29/will-valid-markup-now-help-your-google-ranking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A 3 minute phone call, a €300 saving!</title>
		<link>http://www.conroyp.com/2011/09/21/a-3-minute-phone-call-a-e300-saving/</link>
		<comments>http://www.conroyp.com/2011/09/21/a-3-minute-phone-call-a-e300-saving/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 21:58:01 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Miscellantry]]></category>
		<category><![CDATA[insurance]]></category>
		<category><![CDATA[non-tech]]></category>
		<category><![CDATA[quinn]]></category>

		<guid isPermaLink="false">http://conroyp.com/?p=501</guid>
		<description><![CDATA[<p>A brief departure from the usual tech-orientated posts around here&#8230; Recently my car insurance came up for renewal. As my insurance last year was with Quinn Direct, I received a renewal quote from them automatically in the post. In 2010 I paid a little over €600 for a year&#8217;s cover. The renewal quote came through ...<a class="post-readmore" href="http://www.conroyp.com/2011/09/21/a-3-minute-phone-call-a-e300-saving/">read more</a></p><p>The post <a href="http://www.conroyp.com/2011/09/21/a-3-minute-phone-call-a-e300-saving/">A 3 minute phone call, a €300 saving!</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-612" title="Money, money, money" alt="Money, money, money" src="http://www.conroyp.com/wp-content/uploads/2013/03/4792018730_4a4a7bac98_m-150x150.jpg" />A brief departure from the usual tech-orientated posts around here&#8230; Recently my car insurance came up for renewal. As my insurance last year was with <a href="http://www.quinn-direct.com/ireland/">Quinn Direct</a>, I received a renewal quote from them automatically in the post.</p>
<p>In 2010 I paid a little over €600 for a year&#8217;s cover. The renewal quote came through &#8211; the same policy for 2011 would cost me €950. Bit of a difference! The jump in the price was enough for me to look a little bit closer at what other quotes were available &#8211; in the end a 3 minute phone call ended up saving me over €300!</p>
<p><span id="more-501"></span></p>
<h3>Money, money, money</h3>
<p>A common practice with insurance companies in Ireland is to issue a renewal quote, and state that unless the quote is explicitly refused it&#8217;s assumed that you will accept it by the date of renewal. There&#8217;s generally a 2/3 period between receiving the quote in the post and this date.</p>
<p>Consumer affairs watchdogs are forever telling us to &#8220;shop around&#8221; &#8211; for insurance quotes, energy providers, groceries &#8211; anything and everything that will cost us a few euro. For some reason, Irish people have historically been quite reluctant to do this, with a <a href="http://www.examiner.ie/ireland/one-in-3-still-not-shopping-around-for-best-deal-149581.html">recent survey showing</a> that as many as 1 in 3 admitting to &#8220;rarely or never&#8221; shopping around for a better price.<br />
This laissez-faire attitude combined with the auto-renewal of insurance quotes mentioned above means that a significant number of Irish consumers don&#8217;t even seek a new quote once the renewal notice has arrived, instead waiting for the notice period to elapse and automatically agreeing to pay the new rate. A rise in the quote of nearly 50% was enough to shake me out of my inertia and start checking prices.</p>
<h3>Comparing the meerk.. er. market</h3>
<p>Going through various price comparison websites, I found that there were several companies which would quote me around €650 for the same policy as the one which I had with Quinn. Before picking the cheapest of these, I devided on a whim to check Quinn&#8217;s site and see what my policy would cost were I a new customer, rather than a renewal. Surprisingly, as a new customer on the Quinn website I was quoted €580- the lowest price in the market, and also <b>over one third lower</b> than my renewal quote, with the exact same details! Many companies offer discounts to new customers on initial sign-up, but the scale of the difference really surprised me.</p>
<p>I gave Quinn a quick call to see if they could shed any light on the reasons for the difference. I spoke to a couple of very helpful representatives, all of whom were equally baffled by the scale of the difference. Quinn offer a discount for online signup, as well as a &#8220;new customer&#8221; bonus, but everyone I spoke to agreed that it should never have caused that level of difference.</p>
<p>As the quote I got was the cheapest, I&#8217;d decided to go with it. One of the Quinn representatives suggested that the easiest thing to do would be to have my existing Quinn account &#8220;price match&#8221; the &#8220;new&#8221; account I&#8217;d set up to get the cheaper quote. Quinn have an internal process for authorising these matches, so I was told I&#8217;d be called back once the appropriate people internally had signed off on it. So far, so good.</p>
<h3>The Big Match</h3>
<p>I got a call back the next day telling me that their &#8220;quote match&#8221; department couldn&#8217;t authorise a price match on such a significant difference, and that the best match they could offer me was €780. This was particularly baffling, as the price they were attempting to match was one issued by their own company! I asked the Quinn rep a bit more about what exactly could have caused such a difference, after we&#8217;d eliminated online discount and new customer discount. Apparently insurance companies are continually reviewing their rates and charges, so the same person can get pretty big differences in quotes given even within 1 calendar month.</p>
<p>The recommendation I was given by the Quinn rep was to cancel my existing Quinn account, and to accept the quote as a &#8220;new&#8221; customer. I was a tad apprehensive about doing this, having previously been through the messy paperwork and admin required when moving insurers (returning discs, certs of insurance, old company sending new company &#8220;no claims&#8221; cert, etc). With so many bits of paper floating around (from Quinn to Quinn in this case!) I could easily see a snafu which ended up with me insurance-less.</p>
<p>Nevertheless, a saving of nearly €300 was enough to convince me, so I went ahead and signed up as a &#8220;new&#8221; Quinn customer. Apparently it&#8217;s not uncommon for people to do this, so the rep was able to tell me which departments to email to notify them of my cancellation and my move to being a &#8220;new&#8221; Quinn customer. In the end, it all went very smoothly, and I got my notice of cancellation and new disc in the post within a few days.</p>
<p><img class="alignright  wp-image-513" title="better-than-expected" alt="Everything went better than expected" src="http://conroyp.com/wp-content/uploads/2013/03/better-than-expected.png" /></p>
<h3>Lesson learned</h3>
<p>Despite being continually told to &#8220;shop around&#8221;, I&#8217;ve never been particularly good at doing so. It was only the size of the price increase in the quote that shook me in to checking around, and led me to save nearly €300!</p>
<p>What was also refreshing about this experience was how easy the staff in Quinn were to deal with. Everyone I spoke to whilst trying to clear up the price discrpeancy was helpful, friendly and did their best to help me understand how my quote had jumped by so much versus a new signup. In the past I&#8217;ve heard some very mixed things about Quinn staff, but I found them great to deal with, so tops mark there.</p>
<p>So, hackeneyed and clichéd as it may sound, it can really pay to shop around!</p>
<p>The post <a href="http://www.conroyp.com/2011/09/21/a-3-minute-phone-call-a-e300-saving/">A 3 minute phone call, a €300 saving!</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2011/09/21/a-3-minute-phone-call-a-e300-saving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geeks on the run</title>
		<link>http://www.conroyp.com/2011/08/21/geeks-on-the-run/</link>
		<comments>http://www.conroyp.com/2011/08/21/geeks-on-the-run/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 09:45:19 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Miscellantry]]></category>
		<category><![CDATA[charity]]></category>
		<category><![CDATA[non-tech]]></category>
		<category><![CDATA[soliciting]]></category>

		<guid isPermaLink="false">http://conroyp.com/?p=589</guid>
		<description><![CDATA[<p>A slight change of pace from the usual tech-based posts around here, but it&#8217;s for a pretty worthy cause. Ciaran, Diego and I work in the tech side of Distilled Media, helping make sites like daft.ie, boards.ie and adverts.ie tick. Recently the three of us had a collective fit of madness &#8211; we decided to ...<a class="post-readmore" href="http://www.conroyp.com/2011/08/21/geeks-on-the-run/">read more</a></p><p>The post <a href="http://www.conroyp.com/2011/08/21/geeks-on-the-run/">Geeks on the run</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://bit.ly/o0BQJm"><img class="alignright  wp-image-592" title="Running" alt="Geeks on the run" src="http://conroyp.com/wp-content/uploads/2013/03/Running-150x150.jpg" /></a><br />
A slight change of pace from the usual tech-based posts around here, but it&#8217;s for a pretty worthy cause.</p>
<p><a href="http://twitter.com/ciaranmaher">Ciaran</a>, <a href="http://twitter.com/diegosol">Diego</a> and I work in the tech side of <a href="http://www.distilledmedia.ie/">Distilled Media</a>, helping make sites like daft.ie, boards.ie and adverts.ie tick.<br />
Recently the three of us had a collective fit of madness &#8211; we decided to get out from behind our computer screens, leave our sedentary lives behind and enroll to run the <a href="http://dublinmarathon.ie/race_series.php">Dublin Half Marathon</a>.</p>
<p>We&#8217;ve decided that in running the half marathon that we&#8217;d like to try and raise money for the Mark Pollock Trust, which is where you hopefully come in&#8230;<br />
<span id="more-589"></span><br />
<a href="http://www.markpollock.com">Mark Pollock</a> is a friend and colleague of ours who is also an adventure athlete, entrepreneur, motivational speaker and author. He has run marathons at the North Pole, the Himalayas and in the Gobi Desert, as well as competing in the Round Ireland Yacht race and winning medals for rowing at the Commonwealth Games. What&#8217;s most remarkable about all of this is that Mark has done this in total darkness, having lost his sight a little over 10 years ago. I can&#8217;t do his remarkable story justice, so please have a look at <a href="http://www.markpollock.com/">http://www.markpollock.com/</a> which does a far better job of explaining it than I could hope to.</p>
<p>Recently Mark had a <a href="http://www.bbc.co.uk/news/uk-northern-ireland-12414576">tragic accident</a> which left him paralysed from the waist down. True to form, Mark is refusing to allow this dictate how he lives so is undergoing intensive sessions of physiotherapy and attending specialised rehabilitation centres with the aim of leading a full and independent life. The Mark Pollock Trust has been set up by his friends and family to help with the costs involved in his rehabilitation.</p>
<p>Mark is genuinely one of the most inspirational and humble guys that you could hope to meet, so we want to help him out in whatever way we can. The <a href="http://bit.ly/o0BQJm">MyCharity.ie</a> site makes it very simple to donate with your credit or debit card, so we&#8217;d greatly appreciate any donation, big or small.</p>
<p>Given the list of Mark&#8217;s achievements above, just running a half marathon does tend to pale somewhat in comparison. Though on the other hand there are three of us, each of us desk jockeys who spend far too long sitting on our backsides playing with computers, so you could look at it as us running a full marathon and a half in world record time (assuming you record our times based on when the first of us starts to when the last of us finishes, which is how I presume those records work).</p>
<p>But I digress. I&#8217;m here to humbly request that if you have some spare change rattling around in your digital wallet, that you consider throwing it towards <a href="http://bit.ly/o0BQJm">our donations page</a>. MyCharity accept all credit/debit/laser cards, and it&#8217;s a pretty painless process to donate. Also, you get the warm fuzzy feeling of having done an exceptionally good deed, helping out your fellow man, without the blistered feet and later-life knee problems caused by actually training for and running the race, so it&#8217;s really a win-win for you!</p>
<p><b>tl;dr</b>: we want your money. Please send whatever you can to <a href="http://bit.ly/o0BQJm">our donations page</a>. Every little helps, as they say!</p>
<p><img alt="He's making the money sign" src="http://www.neilcremins.me/taxes.gif" /></p>
<p>The post <a href="http://www.conroyp.com/2011/08/21/geeks-on-the-run/">Geeks on the run</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2011/08/21/geeks-on-the-run/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Malkovich Malkovich Malkovich</title>
		<link>http://www.conroyp.com/2011/06/19/malkovich-malkovich-malkovich/</link>
		<comments>http://www.conroyp.com/2011/06/19/malkovich-malkovich-malkovich/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 21:33:10 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[completely-useless]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://conroyp.com/?p=519</guid>
		<description><![CDATA[<p>In the film Being John Malkovich, John Cusack plays a puppeteer who finds a portal to inside John Malkovich&#8217;s head. Eventually John Malkovich himself goes through this portal, and the ensuing paradox means that every word he hears is &#8220;Malkovich&#8221;, and every face he sees is his own. Re-watching this film lately gave me an ...<a class="post-readmore" href="http://www.conroyp.com/2011/06/19/malkovich-malkovich-malkovich/">read more</a></p><p>The post <a href="http://www.conroyp.com/2011/06/19/malkovich-malkovich-malkovich/">Malkovich Malkovich Malkovich</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;"><img class="aligncenter  wp-image-528" alt="Malkovich Malkovich Malkovich" src="http://www.conroyp.com/wp-content/uploads/2013/03/Malkovich1.jpg" /><br />
In the film <a href="http://www.imdb.com/title/tt0120601/">Being John Malkovich</a>, John Cusack plays a puppeteer who finds a portal to inside John Malkovich&#8217;s head. Eventually John Malkovich himself goes through this portal, and the ensuing paradox means that every word he hears is &#8220;Malkovich&#8221;, and every face he sees is his own.</p>
<p>Re-watching this film lately gave me an idea for the latest trivial entry in my <a href="http://conroyp.com/tags/bookmarklet/">ongoing bookmarklets collection</a>, where every image on a website is changed to show the same one. So read below the jump to find out how to <a href="javascript: var newImg = 'http://www.conroyp.com/wp-content/uploads/2013/03/Malkovich-head.jpg';for(i=0; i&lt;document.getElementsByTagName('img').length; i++){var swapH = document.getElementsByTagName('img')[i].height; var swapW = document.getElementsByTagName('img')[i].width; document.getElementsByTagName('img')[i].src=newImg;document.getElementsByTagName('img')[i].height = swapH; document.getElementsByTagName('img')[i].width = swapW;};void(0);">Malkovich a website</a> &#8211; or customise the effect to use an image of your choosing!</p>
<p><span id="more-519"></span></p>
<h3>How it works</h3>
<p>Being a very simple and silly bookmarklet, the idea behind it is pretty simple:<br />
- loop through each image on a website<br />
- change the image on the site to a new image (John Malkovich, in this case)<br />
- ensure the new image has the same height and width of the previous image, to keep the page layout the same</p>
<p><b>Step 1: Pick an image</b></p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> newImg <span style="color: #339933;">=</span> <span style="color: #3366CC;">'http://www.conroyp.com/wp-content/uploads/2013/03/Malkovich-head.jpg'</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p><b>Step 2: Loop through each image on the page</b></p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span></div></td></tr></tbody></table></div>
<p><b>Step 3: Get the height and width of the existing image</b><br />
We need to get the current height and width of the current image on the page. We do this as if the image dimensions haven&#8217;t been explicitly specified in the target&#8217;s site html and differ from our &#8220;Malkovich&#8221; image, the target site&#8217;s layout can get quite borked.</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> swapH <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">height</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> swapW <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">width</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p><b>Step 4: Enter Malkovich</b></p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">src</span><span style="color: #339933;">=</span>newImg<span style="color: #339933;">;</span><br />
<span style="color: #006600; font-style: italic;">// Ensure height &amp;amp; width kept consistent</span><br />
document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">height</span> <span style="color: #339933;">=</span> swapH<span style="color: #339933;">;</span><br />
document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">width</span> <span style="color: #339933;">=</span> swapW<span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p><b>Step 5: Wrap it all up in a bookmarklet</b><br />
A void(0) is required at the end of the bookmarklet to stop the browser from trying to open a new page.</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">javascript<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">var</span> newImg <span style="color: #339933;">=</span> <span style="color: #3366CC;">'http://www.conroyp.com/wp-content/uploads/2013/03/Malkovich-head.jpg'</span><span style="color: #339933;">;</span><span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #003366; font-weight: bold;">var</span> swapH <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">height</span><span style="color: #339933;">;</span> <span style="color: #003366; font-weight: bold;">var</span> swapW <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">width</span><span style="color: #339933;">;</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">src</span><span style="color: #339933;">=</span>newImg<span style="color: #339933;">;</span>document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">height</span> <span style="color: #339933;">=</span> swapH<span style="color: #339933;">;</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">width</span> <span style="color: #339933;">=</span> swapW<span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><span style="color: #000066; font-weight: bold;">void</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>You can also drag the <a href="javascript: var newImg = 'http://www.conroyp.com/wp-content/uploads/2013/03/Malkovich-head.jpg';for(i=0; i&lt;document.getElementsByTagName('img').length; i++){var swapH = document.getElementsByTagName('img')[i].height; var swapW = document.getElementsByTagName('img')[i].width; document.getElementsByTagName('img')[i].src=newImg;document.getElementsByTagName('img')[i].height = swapH; document.getElementsByTagName('img')[i].width = swapW;};void(0);">Malkovich Malkovich Malkovich</a> bookmarklet to your browser&#8217;s bookmarks bar, click it on any website, and behold the Malkovication of that site.</p>
<p>&nbsp;</p>
<h3>Make your own</h3>
<p>The novelty of seeing John Malkovich all over the place is nice, but it would be better if you could customise the effect a little more.</p>
<p><script type="text/javascript">// <![CDATA[
var imgUrl;
jQuery(document).ready(function(){
    // Catch default values..
    imgUrl = jQuery('#imageUrl').val().trim().split("\n");
    updateBookmarklet();
    var jInput = jQuery( "#imageUrl" );
    jQuery( "#imageUrl" ).keyup(
        function(){
            updateBookmarklet();
        }
    );
});
var bkmrkFirst = "javascript: var newImg = '";
var bkmrkLast = "';for(i=0; i<document.getElementsByTagName('img').length; i++){var swapH = document.getElementsByTagName('img')[i].height; var swapW = document.getElementsByTagName('img')[i].width; document.getElementsByTagName('img')[i].src=newImg;document.getElementsByTagName('img')[i].height = swapH; document.getElementsByTagName('img')[i].width = swapW;};void(0);";
function updateBookmarklet()
{
    var htmlin = bkmrkFirst+jQuery('#imageUrl').val()+bkmrkLast;
    jQuery('#quickLink').attr('href', htmlin);    
}
// ]]&gt;</script></p>
<p><input id="imageUrl" type="text" size="80" value="http://www.conroyp.com/wp-content/uploads/2013/03/Malkovich-head.jpg" /></p>
<p>Enter the address of any image you wish in the box above. Then drag your very own custom <a id="quickLink"></a>Malkovich bookmarklet to your bookmarks bar, and you&#8217;re done! The bookmarklet updates in real time as you type in the box above.</p>
<p>&nbsp;</p>
<p><a href="http://www.conroyp.com/wp-content/uploads/2013/03/Malkovich-paul.jpg"><img class=" wp-image-556 alignright" title="A Daft idea" alt="" src="http://www.conroyp.com/wp-content/uploads/2013/03/Malkovich-paul-300x175.jpg" /></a></p>
<h3>But why&#8230;</h3>
<p>- <i>Why not just use jQuery?</i><br />
JQuery isn&#8217;t loaded on all websites by default. Loading jQuery is possible in a bookmarklet, but adds far more overhead than using the more-verbose JS above.</p>
<p>- <i>Why didn&#8217;t all images on the site I tried change?</i><br />
This bookmarklet works only on images loaded in an img tag. If an image is a background image on a div, then the bookmarklet won&#8217;t catch it.</p>
<p>- <i>Wait, a bookmarklet? What is that?</i><br />
A bookmarklet is a small chunk of javascript that allows us to extend the functionality of a given page. See <a href="http://conroyp.com/2010/04/04/bookmarklets-a-quick-explanation/">this explanation</a> for a bit more detail.</p>
<p>- <i>This is ridiculous. What&#8217;s the point?</i><br />
There is absolutely no point or useful function to this whatsoever. Any potential amusement you may derive from using it is linked directly to your imagination when selecting an image and website.</p>
<p>And that&#8217;s it. If you&#8217;ve any thoughts on improving the implementation above, or have an hilarious screenshot resulting from use of the bookmarklet, let me know in the comments below!</p>
<p>The post <a href="http://www.conroyp.com/2011/06/19/malkovich-malkovich-malkovich/">Malkovich Malkovich Malkovich</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2011/06/19/malkovich-malkovich-malkovich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saved by mystery anti-virus! Wait, what..</title>
		<link>http://www.conroyp.com/2011/01/13/saved-by-mystery-anti-virus-wait-what/</link>
		<comments>http://www.conroyp.com/2011/01/13/saved-by-mystery-anti-virus-wait-what/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 21:31:12 +0000</pubDate>
		<dc:creator>conroyp</dc:creator>
				<category><![CDATA[Miscellantry]]></category>
		<category><![CDATA[anti-virus]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://conroyp.com/?p=459</guid>
		<description><![CDATA[<p>Browsing the web recently the above screen popped up. It appeared that my c: and d: drives were riddled with trojans and security issues. Luckily for me, Windows Defender was springing to my rescue! The eagle-eyed amongst you will already have spotted why Windows Defender was unlikely to be all that useful in this case.. ...<a class="post-readmore" href="http://www.conroyp.com/2011/01/13/saved-by-mystery-anti-virus-wait-what/">read more</a></p><p>The post <a href="http://www.conroyp.com/2011/01/13/saved-by-mystery-anti-virus-wait-what/">Saved by mystery anti-virus! Wait, what..</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></description>
				<content:encoded><![CDATA[<div class="clear"></div>
<p><a href="http://www.conroyp.com/wp-content/uploads/2013/03/Security.png"><img class="aligncenter size-medium wp-image-460" title="Security" src="http://www.conroyp.com/wp-content/uploads/2013/03/Security.png" alt="" width="400" height="300" /></a></p>
<p>Browsing the web recently the above screen popped up.<br />
<span id="more-459"></span></p>
<p>It appeared that my c: and d: drives were riddled with trojans and security issues. Luckily for me, Windows Defender was springing to my rescue! The eagle-eyed amongst you will already have spotted why Windows Defender was unlikely to be all that useful in this case..</p>
<p><i>(aside from the fact that the site is a scam aimed at installing a <a href="http://forums.techguy.org/virus-other-malware-removal/870829-windows-defender-fake-trojan-back.html">particularly nasty trojan</a>, I was running Linux at the time..)</i></p>
<p>The post <a href="http://www.conroyp.com/2011/01/13/saved-by-mystery-anti-virus-wait-what/">Saved by mystery anti-virus! Wait, what..</a> appeared first on <a href="http://www.conroyp.com">Conroyp.com</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.conroyp.com/2011/01/13/saved-by-mystery-anti-virus-wait-what/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: www.conroyp.com @ 2013-05-18 22:18:04 by W3 Total Cache -->