<?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>matthewkenny.com &#187; Technology</title>
	<atom:link href="http://www.matthewkenny.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matthewkenny.com</link>
	<description></description>
	<lastBuildDate>Sun, 20 Dec 2009 23:10:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Setting Sitecore ImageField</title>
		<link>http://www.matthewkenny.com/2009/12/setting-sitecore-imagefield/</link>
		<comments>http://www.matthewkenny.com/2009/12/setting-sitecore-imagefield/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 23:10:28 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[sitecore]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/?p=106</guid>
		<description><![CDATA[Recently I had to write something to allow users to upload their own content on a Sitecore site. Not an unusual, or especially difficult, piece of functionality but one thing that did give me a bit of trouble was associating uploaded images (in the media library with the Sitecore item&#8217;s image field. Originally I tried [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to write something to allow users to upload their own content on a Sitecore site.  Not an unusual, or especially difficult, piece of functionality but one thing that did give me a bit of trouble was associating uploaded images (in the media library with the Sitecore item&#8217;s image field.<span id="more-106"></span></p>
<p>Originally I tried setting the media ID and the media path properties, but that didn&#8217;t quite work.  Eventually I found that you have to set the media ID, media path, source, and a custom attribute (&#8220;<tt>showineditor</tt>&#8220;).  I was surprised that it wasn&#8217;t easier to assign a media file to an <tt>ImageField</tt> object, but that&#8217;s easily resolved using extension methods introduced in .Net 3.5.  For the lazier among us, I&#8217;ve included a small snippet of code that does the important stuff.  This code is written for Sitecore 5.3, but should work on Sitecore 6.x with minor tweaking if some nicer methods haven&#8217;t already been put in place.  Obviously, production code should be made a bit robust than what&#8217;s below, which has no exception handling and <em>assumes the item is already in editing mode</em>.</p>
<pre name="code" class="c-sharp">
public void AssignMediaItem(ImageField field, Item mediaItem)
{
    field.MediaID = mediaItem.ID;
    MediaUrlOptions options = new MediaUrlOptions();
    field.Src = MediaManager.GetMediaUrl(mediaItem, options);
    field.MediaPath = mediaItem.Paths.MediaPath;
    field.SetAttribute("showineditor", "1");
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2009/12/setting-sitecore-imagefield/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net MVC Framework &#8211; Initial Thoughts</title>
		<link>http://www.matthewkenny.com/2009/06/asp-net-mvc-framework-initial-thoughts/</link>
		<comments>http://www.matthewkenny.com/2009/06/asp-net-mvc-framework-initial-thoughts/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 11:24:11 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/?p=68</guid>
		<description><![CDATA[Having just completed a relatively large project using the newly released ASP.Net MVC Framework, I thought this would be a good time to post my thoughts on the framework.  I have to say that the bulk of my experience with MVC framework comes from my time using Ruby on Rails, so many of my perceptions [...]]]></description>
			<content:encoded><![CDATA[<p>Having just completed a relatively large project using the newly released ASP.Net MVC Framework, I thought this would be a good time to post my thoughts on the framework.  I have to say that the bulk of my experience with MVC framework comes from my time using Ruby on Rails, so many of my perceptions will be coloured by this.<span id="more-68"></span></p>
<p>First of all, for anyone who isn&#8217;t familiar with MVC (or Model View Controller), it&#8217;s a design pattern that emphasises the separation of concerns within the application, essentially: presentation data is kept separate from the application data, which &#8211; in turn &#8211; is separated from the logic relating to data storage, manipulation and retrieval.  The result is &#8211; for the most part &#8211; an application that is surprisingly easy to maintain and adapt.</p>
<p>The idea is to have a controller class, which exposes several public methods &#8211; or, actions &#8211; which can be called by a web request.  These actions execute a task, often involving communication with data storage through the model layer, and then finally pass data to a view, which renders the data and returns that to the user.  Some actions may have filters that run at various stages in the request, and can alter the end result of the request (a common example is to ensure a user is authenticated before processing an action).</p>
<p>For the most part, I have been pleased with the ASP.Net MVC Framework.  It bears striking resemblances in many places to Ruby on Rails, however it is often apparent that the framework is in its early stages as it is not as polished as Ruby on Rails.</p>
<p>Filters were one thing that irritated me somewhat, however they also had some features that I thought were original.  First, I thought that the usage of filters was cumbersome and quite inelegant: filters can be placed either on an action or an all actions in a controller class by decorating the method or class with the appropriate filter attribute.  The result of this method is that your controllers can become a hodgepodge of filter attributes.  I wish I had the syntactic sugar of Ruby on Rails&#8217; <tt>before_filter</tt> function, where it&#8217;s possible to write:</p>
<blockquote><p><tt>before_filter :require_admin, :only =&gt; [:delete, :create, :edit]</tt><br />
<tt>before_filter :require_logged_in, :except =&gt; [:login, :register]</tt></p></blockquote>
<p>I think that something based on the above would be a much neater way of specifying filters.</p>
<p>I liked having access to the &#8220;request context&#8221; from all the main parts of the application.  It serves as a rather straight-forward method of passing data between the layers and of accessing the original request information.  Something that can be difficult to do when you get deep into Rails applications: you lose the context of the request; you can&#8217;t get the original controller action or other request data.</p>
<p>I thought that the approach of using the <tt>ActionResult</tt> type to offload the work of processing each type of result was an excellent idea.  It actually neatly avoids a common source of errors encountered during the development or Rails applications: the &#8220;double render&#8221; error.  This error happens when, for example, a redirect is issued but then the controller continues to issue a view result also (caused because Ruby on Rails controller functions responsible for issuing results do not cause the controller action to return).  Returning the <tt>ActionResult </tt>neatly avoids that issue.</p>
<p>Initially I took great issue with the typical method of passing data into views via the <tt>ViewData</tt> dictionary.  I didn&#8217;t like the lack of strong-typing, the messiness this introduced into the view code, nor the ease with which certain things could be omitted from the dictionary.  I&#8217;m aware that the first and last really also apply to Ruby on Rails: the first I can ignore because Ruby, unlike C#, is dynamically typed; the second however, remains equally valid.  I would like to have some sort of contract between the View and the Controller that specified what data will be supplied, although I&#8217;m aware this is heading more toward the MCP design pattern.</p>
<p>Shortly after my disappointment over the <tt>ViewData</tt> dictionary, I discovered the existence of page models.  The ASP.Net MVC framework allows you to create strongly typed views by use of a page model (in most cases, a class that exposes a number of properties containing information that would normally be passed via the <tt>ViewData</tt>.  It doesn&#8217;t allow you to <em>require </em>values to be passed into the view, but it&#8217;s much better than the alternative.</p>
<p>Then finally we have the Model Binding of the ASP.Net Framework.  This is still a bit of a black art to me; I&#8217;ve not yet had time to sufficiently examine its workings, but it is rather nifty.  It enables the binding of values to objects in the controller and views; this allows controller actions to use model objects (<em>e.g.</em> a user object) as a parameter rather than having a parameter for each field of the user.  It also allows &#8220;sticky fields&#8221; to be implemented very easily in the View.</p>
<p>That&#8217;s all that&#8217;s come to mind right now &#8211; although I&#8217;m certainly sure there are other things that I&#8217;ve overlooked.  You may notice that I&#8217;ve omitted practically any reference to the Model part of MVC; this isn&#8217;t a co-incidence, it&#8217;s an avenue that I&#8217;m leaving open to the possibility of future posts given the fact that the ASP.Net MVC framework does not tie you to one particular ORM like Ruby on Rails does (generally speaking).  It would make the scope of the post far too large, and I feel that this post is pushing the bounds of length regardless.</p>
<p>Anyway, these are my thoughts; if anyone has some other views, contributions or corrections, I look forward to reading them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2009/06/asp-net-mvc-framework-initial-thoughts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TinyMCE and jQuery validation</title>
		<link>http://www.matthewkenny.com/2009/05/tinymce-and-jquery-validation/</link>
		<comments>http://www.matthewkenny.com/2009/05/tinymce-and-jquery-validation/#comments</comments>
		<pubDate>Thu, 07 May 2009 07:19:58 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[textarea]]></category>
		<category><![CDATA[textbox]]></category>
		<category><![CDATA[tinyMCE]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/?p=41</guid>
		<description><![CDATA[I&#8217;ve recently been working on a project using the ASP.Net MVC framework (more on that in a later post perhaps), where the TinyMCE editor was used as the rich text input method of choice. We hit a snag when it came to applying client-side validation through jQuery: jQuery was validating the textarea before TinyMCE was [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently been working on a project using the ASP.Net MVC framework (more on that in a later post perhaps), where the TinyMCE editor was used as the rich text input method of choice.  We hit a snag when it came to applying client-side validation through jQuery: jQuery was validating the <tt>textarea</tt> before TinyMCE was filling it in with the editor content.<br />
<span id="more-41"></span><br />
A quick search for &#8216;<tt>TinyMCE jQuery validation</tt>&#8216; turned up a <em>very</em> helpful article by Rebecca Murphy (<a title="jQuery validation and TinyMCE" href="http://blog.rebeccamurphey.com/2009/01/12/jquery-validation-and-tinymce/" target="_blank">link</a>).  This was a godsend for us, as we were worried about having to either scrap TinyMCE or have no client-side validation for any rich text boxes (the horror).  However, it wasn&#8217;t quite what we needed.  We had a page that contained a number of TinyMCE boxes, so we needed to make sure that each one would be properly updated when its associated form submit button was pressed.</p>
<p>Fortunately, after my own trip to the TinyMCE API, I spotted the <tt>init_instance_callback</tt> option, which allowed a function to be called upon the creation of a new editor.  Perfect.  The initial version of the code is below, hopefully if anyone else finds themselves in a tight spot, it might help them out.</p>
<pre name="code" class="javascript">tinyMCE.init({
    mode : 'textareas',
    theme : 'advanced',
    theme_advanced_buttons1 : 'bold,italic,underline',
    theme_advanced_buttons2 : '',
    theme_advanced_buttons3 : '',
    theme_advanced_toolbar_location : 'top',
    theme_advanced_toolbar_align : 'left',
    theme_advanced_statusbar_location : 'bottom',
    init_instance_callback : "initialiseInstance"
});

function initialiseInstance(editor)
{
    //Get the textarea
    var container = $('#' + editor.editorId);

    //Get the form submit buttons for the textarea
    $(editor.formElement).find("input[type=submit]").click(
        function(event)
        {
            container.val(editor.getContent());
        }
    );
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2009/05/tinymce-and-jquery-validation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Matt Gets Certified</title>
		<link>http://www.matthewkenny.com/2008/09/matt-gets-certified/</link>
		<comments>http://www.matthewkenny.com/2008/09/matt-gets-certified/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 19:10:27 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[sitecore]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/?p=31</guid>
		<description><![CDATA[Being my first &#8220;official&#8221; certification, I figured I&#8217;d give it a mention.  A couple of weeks ago I got sent down to London to do some developer training for a CMS that we&#8217;re going to be using quite a bit at the company I work at.  At some point, there&#8217;s also going to be some [...]]]></description>
			<content:encoded><![CDATA[<p>Being my first &#8220;official&#8221; certification, I figured I&#8217;d give it a mention.  A couple of weeks ago I got sent down to London to do some developer training for a <abbr title="Content Management System">CMS</abbr> that we&#8217;re going to be using quite a bit at the company I work at.  At some point, there&#8217;s also going to be some interesting work porting existing customer sites to the <a title="Sitecore website" href="http://www.sitecore.net" target="_blank">Sitecore</a> platform.<br />
<span id="more-31"></span><br />
In the meantime, there&#8217;s one large Sitecore project which I&#8217;m due to start development on in coming weeks; so I&#8217;m looking forward to doing some actual work with it.</p>
<p>I think I might start looking at some proper accreditations in the near future, as they can only help my career prospects, and I think they&#8217;d really be quite interesting.  The question is whether I&#8217;ll have to cough up the money myself or if it will be covered under CPD&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2008/09/matt-gets-certified/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New computer</title>
		<link>http://www.matthewkenny.com/2008/07/new-computer/</link>
		<comments>http://www.matthewkenny.com/2008/07/new-computer/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 18:37:22 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/?p=29</guid>
		<description><![CDATA[At long last I&#8217;ve finally got my new desktop up and running.   The whole thing rather failed the first time round because I had a dud motherboard; whether that was because it wasn&#8217;t working to start off with or because I wasn&#8217;t careful enough we&#8217;ll never know. This is my first Intel computer (I&#8217;ve always [...]]]></description>
			<content:encoded><![CDATA[<p>At long last I&#8217;ve finally got my new desktop up and running.   The whole thing rather failed the first time round because I had a dud motherboard; whether that was because it wasn&#8217;t working to start off with or because I wasn&#8217;t careful enough we&#8217;ll never know.<br />
<span id="more-29"></span><br />
This is my first Intel computer (I&#8217;ve always been a bit of an AMD guy until now), and I have to say that the connection mechanism for the stock heatsink is absolutely atrocious.  It consists of four plastic pins which you have to push down onto the motherboard until they click; simple until one takes into account the pressure required to click the things into place.  The motherboard was flexing quite alarmingly, and you have to do alternate corners at the same time, or one corner will pop out as you push the other in.</p>
<p>Aside from that, it was all fairly easy thankfully.  Now I just need to see about getting some extra hard disks for storage and possibly a new screen&#8230; my dual 15&#8243; screens are getting a bit old, I just need to decide whether I want to stay with a dual screen system or get a big widescreen.  I don&#8217;t think my finances will quite stretch to two widescreens; or my desk space for that matter.</p>
<p>Add in a nice OEM version of Vista and I&#8217;ve got a new favourite toy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2008/07/new-computer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Accelerometer touting alarm clock</title>
		<link>http://www.matthewkenny.com/2007/08/accelerometer-touting-alarm-clock/</link>
		<comments>http://www.matthewkenny.com/2007/08/accelerometer-touting-alarm-clock/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 19:09:09 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Gadgets]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/2007/08/28/accelerometer-touting-alarm-clock/</guid>
		<description><![CDATA[I saw this article pop up on the Engadget feed, and immediately saw the making of a fantastic little novelty item. Sadly, it fell slightly short of what I was thinking. The proposed design contains an accelerometer, so that when you flick/prod/sledgehammer it, the alarm snoozes for 9 or so minutes. Sadly, someone else got [...]]]></description>
			<content:encoded><![CDATA[<p>I saw <a title="Accelerometer lets you abuse your alarm clock" href="http://www.engadget.com/2007/08/28/accelerometers-let-you-abuse-your-alarm-clock/6974061" target="_blank">this article</a> pop up on the Engadget feed, and immediately saw the making of a fantastic little novelty item.  Sadly, it fell slightly short of what I was thinking.</p>
<p>The proposed design contains an accelerometer, so that when you flick/prod/sledgehammer it, the alarm snoozes for 9 or so minutes.  Sadly, someone else got to the comment board before me, pointing out that the duration of the snooze should be directly proportional to the amount of force applied to the offending clock.  Must be quicker.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2007/08/accelerometer-touting-alarm-clock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digital recycle bins</title>
		<link>http://www.matthewkenny.com/2007/08/digital-recycle-bins/</link>
		<comments>http://www.matthewkenny.com/2007/08/digital-recycle-bins/#comments</comments>
		<pubDate>Sun, 26 Aug 2007 16:07:54 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Gadgets]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/archives/15</guid>
		<description><![CDATA[Reading this article, I really can&#8217;t help but think that this is such a cool concept. Who wouldn&#8217;t want this nifty little e-trash receptacle sat on their desk? I really like the way that it shows capacity too. One thing that did strike me, though, was the issue of power: where does it get it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Reading <a href="http://technabob.com/blog/2007/08/23/digital-recycle-bin-saves-deleted-files/">this article</a>, I really can&#8217;t help but think that this is such a cool concept.</p>
<p>Who wouldn&#8217;t want this nifty little e-trash receptacle sat on their desk?  I really like the way that it shows capacity too.  One thing that did strike me, though, was the issue of power: where does it get it&#8217;s juice?  I think that having to run a power cable to the unit would really ruin the aesthetics &#8211; after all, who wants <em>another</em> cable on their desktop?  The file transfer can be accomplished easily enough through WiFi, Bluetooth, or maybe even this wireless USB thing that I&#8217;ve seen bandied about.</p>
<p>Clearly, a prime case for wireless power.  Less of a pipe dream now than previously, but still not quite available to us the unwashed masses yet, unfortunately.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2007/08/digital-recycle-bins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google: Hard Disk Drive Failure</title>
		<link>http://www.matthewkenny.com/2007/02/google-hard-disk-drive-failure/</link>
		<comments>http://www.matthewkenny.com/2007/02/google-hard-disk-drive-failure/#comments</comments>
		<pubDate>Mon, 19 Feb 2007 14:34:27 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/archives/8</guid>
		<description><![CDATA[Failure Trends in a Large Disk Drive Population Another interesting little thing that I found, published this month, the paper outlines several conditions that are often perceived to be the cause of hard disk failure and, using the data that they have gathered from the hard disk in their server farms, have compiled some interesting [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://216.239.37.132/papers/disk_failures.pdf">Failure Trends in a Large Disk Drive Population</a></p>
<p>Another interesting little thing that I found, published this month, the paper outlines several conditions that are often perceived to be the cause of hard disk failure and, using the data that they have gathered from the hard disk in their server farms, have compiled some interesting statistics.  It is, though, a technical paper &#8211; so not suited to everyone&#8217;s tastes, but it is quite a quick read.</p>
<p>Unfortunately, they don&#8217;t release the data about which manufacturers and models have the highest rates of failure, although it does refer in several instances to one hard disk manufacturer &#8211; for example: &#8220;When examining our population, we find that seek errors are widespread within drives of one manufacturer only&#8230;&#8221;[p. 9] It would be nice to know which this is, so they can be avoided; still, perhaps that is the very reason for why they did not publish the name.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2007/02/google-hard-disk-drive-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RFID tags</title>
		<link>http://www.matthewkenny.com/2007/02/rfid-tags/</link>
		<comments>http://www.matthewkenny.com/2007/02/rfid-tags/#comments</comments>
		<pubDate>Wed, 14 Feb 2007 16:31:42 +0000</pubDate>
		<dc:creator>Matthew Kenny</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[RFID]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.matthewkenny.com/archives/7</guid>
		<description><![CDATA[Prompted by: InfoWorld Video &#124; InfoWorld &#124; RSA IOActive While I was aware of this issue before now, the video in the article prompted me to write something. As I&#8217;m also procrastinating, it seems like a good idea to me. RFID tags are the bits inside those cool little cards or dongles that you can [...]]]></description>
			<content:encoded><![CDATA[<p>Prompted by: <a href="http://www.infoworld.com/video/archives/2007/02/rsa_ioactive.html">InfoWorld Video | InfoWorld | RSA IOActive</a></p>
<p>While I was aware of this issue before now, the video in the article prompted me to write something.  As I&#8217;m also procrastinating, it seems like a good idea to me.</p>
<p>RFID tags are the bits inside those cool little cards or dongles that you can wave at a reader to let you into a building.  They&#8217;re widely used on campus, and I&#8217;ve also seen them used in the more modern apartment buildings for the main door.  Unfortunately, these aren&#8217;t quite as secure as everyone would like to think.  The video shows a compact sniffer device that can be used to record the signal that an RFID tag sends out, then replicate it at a later point, alowing them to impersonate you.</p>
<p>Obviously, this situation could easily be resolved by having a challenge-response system: both the system and the card know the card&#8217;s &#8220;password&#8221; &#8211; the number that&#8217;s is hard-coded into it, the reader sends out a challenge string, the card encrypts the challenge with the password and transmits the result, the reader checks the result against the expected answer, and access is either granted or denied.  Simple&#8230; unfortunately, not so.</p>
<p>In the majority of cases, the RFID tag is passive, meaning that it does not have its own power source, it gets its power from the signal it receives from the reader.  Thus, it is difficult to integrate the encryption hardware without increasing power requirements.  Other methods include a rolling response &#8211; the response changes with each access &#8211; and many others.  Hopefully, though, we see one coming into mainstream usage soon, as I don&#8217;t think it will be long until these devices become readily available.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewkenny.com/2007/02/rfid-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
