<?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>andymadge.com &#187; Computers</title>
	<atom:link href="http://www.andymadge.com/category/computers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andymadge.com</link>
	<description>Nothing to see here, move along…</description>
	<lastBuildDate>Sun, 23 Aug 2009 20:37:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Password Salting Techniques</title>
		<link>http://www.andymadge.com/2009/08/password-salting-techniques/</link>
		<comments>http://www.andymadge.com/2009/08/password-salting-techniques/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 18:36:52 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.andymadge.com/?p=163</guid>
		<description><![CDATA[This article is about using salting techniques to improve the security of authentication for websites.  Examples are in PHP but the techniques apply to any language.

Caveat
Before I continue, I just want to make an important point:
The single best piece of advice I can give when building your own authentication system is&#8230;

Don&#8217;t do it.

I don&#8217;t mean [...]]]></description>
			<content:encoded><![CDATA[<p>This article is about using salting techniques to improve the security of authentication for websites.  Examples are in PHP but the techniques apply to any language.<span id="more-163"></span></p>
<blockquote>
<h2>Caveat</h2>
<p>Before I continue, I just want to make an important point:</p>
<p>The single best piece of advice I can give when building your own authentication system is&#8230;</p>
<ul>
<li>Don&#8217;t do it.</li>
</ul>
<p>I don&#8217;t mean don&#8217;t use authentication, what I mean is that cryptographic techniques are complicated.  Actually they&#8217;re extremely complicated.  If you don&#8217;t have years of experience as a cryptographer, you&#8217;re going to make mistakes that will leave security holes.  Guaranteed.</p>
<p>The alternative is to use a well respected authentication framework such as:</p>
<ul>
<li><a href="http://www.openwall.com/phpass/">PHPass</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.auth.html">Zend_Auth</a> (requires Zend Framework)</li>
<li><a href="http://codeigniter.com/wiki/Category:Libraries::Authentication/">CodeIgniter Authentication Libraries</a> (require CodeIgniter)</li>
</ul>
<p><a href="http://www.openwall.com/phpass/"></a>Frameworks such as this are developed by people who really do know what they are doing, and any security holes are generally quickly discovered and plugged.</p>
<p>I&#8217;m certainly no cryptographer, and this article is based on my current understanding.</p>
<p>That said, assuming you&#8217;re going ahead anyway, let&#8217;s get back to the article&#8230;</p></blockquote>
<h2>Attacks</h2>
<p>Lets look at the type of attacks we want to protect against.</p>
<h3>Dictionary</h3>
<p>This involves having a list of common passwords and trying every one in turn.  Most dictionaries would contain millions of possibilities starting with obvious stuff like &#8220;password&#8221;, &#8220;123456&#8243; and more obscure ones such as &#8220;pa$$wOrD&#8221; (<a href="http://en.wikipedia.org/wiki/Dictionary_attack">wikipedia entry</a>)</p>
<h3>Brute Force</h3>
<p>This involves trying every possible password and in theory will always work against any system.  The problem is that it takes a LONG time to do.  As computing speed improves, obviously the time taken reduces.  Since you can&#8217;t make brute force attacks impossible, what you want to achieve is to make them take an infeasibly long time &#8211; like years. (<a href="http://en.wikipedia.org/wiki/Brute_force_attack">wikipedia entry</a>)</p>
<h3>Rainbow Tables</h3>
<p>This is a way of attacking hashed passwords.  The idea is that instead of calculating the hash of each password you want to try, you use a list of pre-calculated hashes, thus saving computation time. (<a href="http://en.wikipedia.org/wiki/Rainbow_table">wikipedia entry</a>)</p>
<p>Bearing those in mind, let&#8217;s look at the different ways you could store the password in your database:</p>
<h2 style="font-size: 1.5em;">Plain Text</h2>
<p>This is a massively bad idea.  If someone gets hold of your database, they know everybody&#8217;s password.</p>
<p>NEVER EVER STORE PASSWORDS AS PLAIN TEXT.  ANYWHERE.  EVER.</p>
<p>One argument against this is &#8220;The spec requires that the password be stored in case someone forgets it.&#8221;  If that&#8217;s the case, then you should use reversible encryption and DON&#8217;T STORE THE ENCRYPTION KEY IN THE DATABASE.</p>
<h2>Hashed Passwords</h2>
<p>A hash is a one-way algorithm that is commonly used in cryptography.  The idea is that there is no way to work backward to find out the password from the hash value.  There are many different hash algorithms, each with their own strengths and weaknesses. (<a href="http://uk3.php.net/manual/en/function.hash-algos.php">list of hash algorithms supported by PHP</a>)</p>
<p>The most commonly used hash functions are MD5 and SHA1:</p>
<pre style="padding-left: 30px; ">$password_hash = MD5( $password );</pre>
<p>Lots of people will tell you that MD5 is sufficient for most uses, others will say that SHA1 is more secure so you should use that instead.</p>
<p>While these are two of the least-secure hashing algorithms, they are still secure enough for any normal website (i.e. not a bank etc.)</p>
<p>Other more secure hash algorithms are SHA256 or Whirlpool, but these have the disadvantage of taking longer to calculate.</p>
<p>So at this point, we&#8217;re recommending:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; padding-left: 30px;">$password_hash = SHA1( $password );</pre>
<h3>Vulnerabilities</h3>
<p>Hashed passwords will provide complete protection against dictionary attacks.  They also protect effectively against brute force attacks since the operation would take an infeasibly long time, however they are still vulnerable to rainbow table attacks.</p>
<h2>Salting</h2>
<p><span style="font-weight: normal; font-size: 13px; ">Salting is a technique used to protect hashes against rainbow table attacks.  The idea is that an additional string &#8211; known as &#8217;salt&#8217; &#8211; is introduced into the hash value:</span></p>
<pre style="padding-left: 30px; ">$salt = "abcd";
$password_hash = SHA1( $salt . $password );</pre>
<p>So, if a rainbow table attack is successful, the attacker now still doesn&#8217;t know the password, they know <code>$salt.$password</code>.  In this trivial example, the attacker would soon work out what the salt was &#8211; especially if they break another account &#8211; and then they would know the password.</p>
<p>Let&#8217;s improve the salt&#8230;</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; padding-left: 30px;">$salt = "<span style="font-family: 'courier new';">ZvmLcZMXw3WIA78uudt9SFysSGocIF</span>";
$password_hash = SHA1( $salt . $password );</pre>
<p>Here we are using a random static string as the salt, which is definitely an improvement, but since the salt is static (i.e. the same for every user) then they still only need to work it out once.  After that, every user&#8217;s account it vulnerable to the same attack.</p>
<p>Note that we could also hash the salt as follows:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; padding-left: 30px;">$salt = SHA1( "<span style="font-family: 'courier new';">ZvmLcZMXw3WIA78uudt9SFysSGocIF</span>" );</pre>
<p>However, all this does is increase the computation time without significantly increasing the security.  The attacker only needs to find the value of <code>$salt</code> &#8211; it&#8217;s completely irrelevant how it&#8217;s calculated.</p>
<p>We need to make the salt different for each user.  One way is to use something that will be different for each user.  The most obvious thing is the username (or maybe email):</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; padding-left: 30px;">$password_hash = SHA1( $username . $password );</pre>
<p>This means that if two people have the same password, they will still have different password hashes.  If an attacker is successful with a rainbow table attack for one account, they know nothing about any of the other accounts on the system.</p>
<p>Better still, lets use a different randomly generated string as the salt for each user.  NOTE: In this case we&#8217;re going to need to store the salt alongside the user in the database otherwise we have no way of checking it.</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; padding-left: 30px;">$salt = random_string();
$password_hash = SHA1( $salt . $password );</pre>
<p><code>random_string</code> is a function defined elsewhere in your code.  There are good examples <a href="http://stackoverflow.com/questions/48124/generating-pseudorandom-alpha-numeric-strings">here</a> and <a href="http://911-need-code-help.blogspot.com/2009/06/generate-random-strings-using-php.html">here</a>.</p>
<p>Finally, let&#8217;s combine some of the above into our best-yet version:</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace; padding-left: 30px;">$salt = random_string();
$password_hash = SHA1( $salt . MD5($email) . $password );</pre>
<p>I know I said above that there&#8217;s no point in hashing twice, but in this case it does have an effect &#8211; we don&#8217;t want the salting algorithm to be obvious and now password hash doesn&#8217;t contain anything that is recognizable as a word or email address.</p>
<p>It is important thing is that an attacker doesn&#8217;t know exactly how you have introduced the salt.  As a result you need to be careful with Open Source software, since the salting algorithm will be plainly visible in the source code &#8211; although this is mitigated if the salt contains a random string.</p>
<p>There are many different approaches to salting &#8211; this is just one fairly simple version.  For anything that requires a higher level of security, you&#8217;ll need to look at additional techniques.</p>
<p>As I mentioned above, I&#8217;m no security expert and I may have missed something.  If you think so, please let me know in the comment.</p>
<h2>Also&#8230;</h2>
<p>This hasn&#8217;t been the focus of the article but it&#8217;s relevant &#8211; whenever someone creates an account, changes their password or logs in, you&#8217;re going to be sending their password over the internet.  Unless you&#8217;re using HTTPS/SSL, then the password will be sent IN THE CLEAR i.e. as plain text.</p>
<p>Anyone who is listening in with a packet sniffer will be able to see the password so all of your back-end security goes out the window.</p>
<p>You may think &#8220;OK, so I&#8217;ll hash the password at the client using JavaScript before I send it.&#8221;   This actually doesn&#8217;t help at all &#8211; the attacker doesn&#8217;t know the password, but he does know the hash, so he can use a replay attack which in most cases is good enough for their needs.</p>
<p>You can improve the security by using <a href="http://en.wikipedia.org/wiki/Challenge_response">Challenge-Response</a> but the best alternative is to use SSL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2009/08/password-salting-techniques/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Missing tooltips in Firefox 3.5 and IE8</title>
		<link>http://www.andymadge.com/2009/07/missing-tooltips-in-firefox-35-and-ie8/</link>
		<comments>http://www.andymadge.com/2009/07/missing-tooltips-in-firefox-35-and-ie8/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 23:24:37 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://andymadge.com/blog/?p=128</guid>
		<description><![CDATA[I&#8217;ve just upgraded to Firefox 3.5 and noticed that tooltips had stopped working.  I then checked Internet Explorer 8 and found tooltips were not working there either.
On investigation it seems that the two problems were unrelated, but here are the solutions to both of them&#8230;
Firefox 3.5
It seems there&#8217;s a bug in the Google Toolbar which [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just upgraded to Firefox 3.5 and noticed that tooltips had stopped working.  I then checked Internet Explorer 8 and found tooltips were not working there either.</p>
<p>On investigation it seems that the two problems were unrelated, but here are the solutions to both of them&#8230;</p>
<h2>Firefox 3.5</h2>
<p>It seems there&#8217;s a bug in the Google Toolbar which can stop tooltips from working (you just get a small square instead). The fix is to uninstall Google Toolbar, then re-install it.</p>
<h2>Internet Explorer 8</h2>
<p>Bizarrely, this isn&#8217;t a bug.  It&#8217;s a rare occasion when IE does the right thing according to the W3C spec.  Basically, the HTML &#8220;alt&#8221; attribute has long been used to display tooltips over images, where in fact, it&#8217;s only supposed to be shown if the image doesn&#8217;t load.  The correct attribute for displaying tooltips is actually the &#8220;title&#8221; attribute.  Internet Explorer 8 has changed so that it works correctly according to the HTML spec.</p>
<p>What this means is that if a web page has only alt tags then in IE8 normal mode, you won&#8217;t see any tooltips.  If however the page is in IE8 compatibility mode, you <em>will</em> see the tooltips.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2009/07/missing-tooltips-in-firefox-35-and-ie8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Run SysInternals tools direct from the web</title>
		<link>http://www.andymadge.com/2009/01/run-sysinternals-tools-direct-from-the-web/</link>
		<comments>http://www.andymadge.com/2009/01/run-sysinternals-tools-direct-from-the-web/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 17:23:31 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.andymadge.com/computers/2009/01/22/run-sysinternals-tools-direct-from-the-web/</guid>
		<description><![CDATA[SysInternals tools are a fantastic set of free utilities written by Mark Russinovich and Bryce Cogswell.  There are invaluable for system admins and Windows Power Users.
There is now a website that allows you to run most of the SysInternals tools directly, so you don&#8217;t have to find the right page, download it and unzip.  You [...]]]></description>
			<content:encoded><![CDATA[<p>SysInternals tools are a fantastic set of free utilities written by <a id="ctl00_mainContentContainer_ctl03" onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl03',this);" href="http://blogs.technet.com/markrussinovich/about.aspx">Mark Russinovich</a> and Bryce Cogswell.  There are invaluable for system admins and Windows Power Users.<br />
There is now a website that allows you to run most of the SysInternals tools directly, so you don&#8217;t have to find the right page, download it and unzip.  You just run it directly from:</p>
<p>http://live.sysinternals.com/&lt;tool&gt;.exe</p>
<p>e.g.</p>
<p><a href="http://live.sysinternals.com/procexp.exe" target="_blank">http://live.sysinternals.com/procexp.exe</a></p>
<p>This works better in Internet Explorer than Firefox, since you can run the tool without saving it first.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2009/01/run-sysinternals-tools-direct-from-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DOS Equivalent of GREP</title>
		<link>http://www.andymadge.com/2008/09/dos-equivalent-to-grep/</link>
		<comments>http://www.andymadge.com/2008/09/dos-equivalent-to-grep/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 14:40:18 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.andymadge.com/uncategorized/2008/09/22/dos-equivalent-to-grep/</guid>
		<description><![CDATA[In Unix you can pipe the output of a command into the GREP command in order to only display the lines that contain a required string.  This is means you don&#8217;t have to scroll through pages of output to find the bit you&#8217;re interested in.  The DOS equivalent of GREP is FIND:
Searches for a text [...]]]></description>
			<content:encoded><![CDATA[<p>In Unix you can pipe the output of a command into the GREP command in order to only display the lines that contain a required string.  This is means you don&#8217;t have to scroll through pages of output to find the bit you&#8217;re interested in.  The DOS equivalent of GREP is FIND:</p>
<pre>Searches for a text string in a file or files.

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

/V         Displays all lines NOT containing the specified string.
/C         Displays only the count of lines containing the string.
/N         Displays line numbers with the displayed lines.
/I         Ignores the case of characters when searching for the string.
/OFF[LINE] Do not skip files with offline attribute set.
"string"   Specifies the text string to find.
[drive:][path]filename
Specifies a file or files to search.

<em>If a path is not specified, FIND searches the text typed at the prompt
or piped from another command.</em></pre>
<p>this can be useful with the netstat command:</p>
<pre>netstat -ano | find /i ":80"</pre>
<p>or when viewing the DNS cache:</p>
<pre>ipconfig /displaydns | find /i "google"</pre>
<p>Although that isn&#8217;t ideal since the output of ipconfig isn&#8217;t really formatted to play nicely with the find command.</p>
<p>Reference: <a href="http://nzpcmad.blogspot.com/2007/07/dos-grep-equivalent-find-command.html">http://nzpcmad.blogspot.com/2007/07/dos-grep-equivalent-find-command.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2008/09/dos-equivalent-to-grep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows XP DNS Cache</title>
		<link>http://www.andymadge.com/2008/08/windows-xp-dns-cache/</link>
		<comments>http://www.andymadge.com/2008/08/windows-xp-dns-cache/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 10:34:10 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.andymadge.com/computers/2008/08/27/windows-xp-dns-cache/</guid>
		<description><![CDATA[Windows caches DNS responses to speed up network access, but sometimes this can cause a problem.  Positive responses (i.e. successful lookups) are cached for 24 hours, and negative responses (i.e. failed lookups) for 5 minutes.
If you make changes to DNS and want to test the results straight away, you need to clear the cache with:
ipconfig [...]]]></description>
			<content:encoded><![CDATA[<p>Windows caches DNS responses to speed up network access, but sometimes this can cause a problem.  Positive responses (i.e. successful lookups) are cached for 24 hours, and negative responses (i.e. failed lookups) for 5 minutes.</p>
<p>If you make changes to DNS and want to test the results straight away, you need to clear the cache with:</p>
<pre>ipconfig /flushdns</pre>
<p>You can view the current cache with:</p>
<pre>ipconfig /displaydns</pre>
<p>or</p>
<pre>ipconfig /displaydns | more</pre>
<p>to see a screen at a time</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2008/08/windows-xp-dns-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X keyboard shortcuts</title>
		<link>http://www.andymadge.com/2008/07/mac-os-x-keyboard-shortcuts/</link>
		<comments>http://www.andymadge.com/2008/07/mac-os-x-keyboard-shortcuts/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 17:43:29 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Keyboard Shortcuts]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://blog.andymadge.com/computers/2008/07/14/mac-os-x-keyboard-shortcuts/</guid>
		<description><![CDATA[Useful OS X keyboard shortcuts, particularly if you&#8217;re switching from Windows.  It&#8217;s not exhaustive, but it&#8217;s got the ones I use regularly.
This page will be updated as I find new ones to include.

The &#8984; key is also known as Command
The &#8997; key is also known as Alt or Option
The &#8677; key is also known as [...]]]></description>
			<content:encoded><![CDATA[<p>Useful OS X keyboard shortcuts, particularly if you&#8217;re switching from Windows.  It&#8217;s not exhaustive, but it&#8217;s got the ones I use regularly.</p>
<p>This page will be updated as I find new ones to include.</p>
<p><span id="more-59"></span></p>
<p>The &#8984; key is also known as Command<br />
The &#8997; key is also known as Alt or Option<br />
The &#8677; key is also known as Tab</p>
<table class="cleantable" border="0">
<tbody>
<tr>
<th>Action</th>
<th>Shortcut</th>
</tr>
<tr>
<td>Open the Spotlight menu to start a search</td>
<td>&#8984;-Space (Command-Space)</td>
</tr>
<tr>
<td>Open the Spotlight window</td>
<td>&#8984;-&#8997;-Space (Command-Option-Space)</td>
</tr>
<tr>
<td>Show a spotlight result item in the Finder</td>
<td>&#8984;-click it (Command-click it)</td>
</tr>
<tr>
<td>Force Quit an application</td>
<td>&#8984;-&#8997;-Escape (Command-Option-Escape)</td>
</tr>
<tr>
<td>Force Reboot of OS X</td>
<td>Ctrl-&#8984;-Power (Ctrl-Command-Power)</td>
</tr>
<tr>
<td>Force Shutdown of computer</td>
<td>&#8984;-&#8997;-Shift-Power (Command-Option-Shift-Power)</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2008/07/mac-os-x-keyboard-shortcuts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recover Deleted Photos from Memory Card</title>
		<link>http://www.andymadge.com/2008/07/recover-deleted-photos-from-memory-card/</link>
		<comments>http://www.andymadge.com/2008/07/recover-deleted-photos-from-memory-card/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 20:32:18 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.andymadge.com/computers/2008/07/06/recover-deleted-photos-from-memory-card/</guid>
		<description><![CDATA[This article is written from the point of view of recovering deleted photos from a digital camera memory card, but most of the software will work to recover any type of file from any disk drive.
The first thing you must do is stop using the memory card.  The more you use the card, the less [...]]]></description>
			<content:encoded><![CDATA[<p>This article is written from the point of view of recovering deleted photos from a digital camera memory card, but most of the software will work to recover any type of file from any disk drive.</p>
<p>The first thing you must do is stop using the memory card.  The more you use the card, the less likely that you will be able to recover the photos.</p>
<p>There are loads of free utilities that will recover photos, and I suggest trying them in the following order:</p>
<ol>
<li><strong>Zero Assumption Recovery </strong></li>
<ul>
<li>Full version is paid-for but the photo recovery option is free</li>
<li>Download <a href="http://www.z-a-recovery.com/zar83setup.exe">here</a></li>
<li>Follow <a href="http://www.z-a-recovery.com/demo-ir.htm">these instructions</a></li>
</ul>
<li><strong>Recuva</strong></li>
<ul>
<li>Download <a href="http://www.recuva.com/download">here</a></li>
<li>Install it and follow the wizard which guides you through the recovery process</li>
</ul>
<li><strong>Undelete Plus</strong></li>
<ul>
<li>Download <a href="http://www.undelete-plus.com/download.html">here</a></li>
<li>Follow <a href="http://www.undelete-plus.com/help/7_quickstart.html" class="broken_link" >these instructions</a></li>
</ul>
</ol>
<p>If you&#8217;ve tried all of those and been unsuccessful, then I&#8217;m afraid it&#8217;s not looking very promising, but if you want to continue trying here are a few more utils:</p>
<ul>
<li><a href="http://www.free-av.com/en/tools/10/avira_unerase_personal.html"><span class="header_gray">Avira UnErase Personal</span></a></li>
<li><a href="http://www.officerecovery.com/freeundelete/"><span class="header_gray">FreeUndelete</span></a></li>
<li><a href="http://www.pcinspector.de/default.htm?Language=1"><span class="contentname"><span class="Stil5">PC</span> INSPECTOR File Recovery</span></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2008/07/recover-deleted-photos-from-memory-card/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online &amp; Peer-To-Peer Backup</title>
		<link>http://www.andymadge.com/2008/06/online-peer-to-peer-backup/</link>
		<comments>http://www.andymadge.com/2008/06/online-peer-to-peer-backup/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:54:59 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.andymadge.com/computers/2008/06/20/online-peer-to-peer-backup/</guid>
		<description><![CDATA[I&#8217;ve been assessing various backup options for both business and personal use recently so here&#8217;s a summary of my findings
The problem with any form of local backup such as CD/DVD or external hard drive is that it only protects you from a hard drive crash.  If someone steals your computer or your house burns [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been assessing various backup options for both business and personal use recently so here&#8217;s a summary of my findings</p>
<p><span id="more-55"></span>The problem with any form of local backup such as CD/DVD or external hard drive is that it only protects you from a hard drive crash.  If someone steals your computer or your house burns down, it&#8217;s likely that you&#8217;ll lose the backup as well.</p>
<p>Off-site backups avoid these risks although there are disadvantages &#8211; if you are doing it manually you have to remember to do it and to take the backup off site (e.g. store the CDRs/external drive at work or a friends house)</p>
<p>Online backups are automatic and are stored off-site, but the disadvantage is that backups and restores take a very long time. They can also be very expensive.</p>
<p>The final option is Peer-To-Peer (p2p) backup.  This is similar to traditional online backup but instead of your data being stored at some company&#8217;s datacentre, it is stored on a friend&#8217;s PC.  Most people have massive hard drives these days so setting aside some for a friend&#8217;s backup is not a problem.</p>
<p>Anyway, my findings&#8230;</p>
<h2>Online Backup</h2>
<p>Most of these are expensive &#8211; into the 10s of dollars per month once you go above 5GB storage, however if you look around there are some very well priced unlimited services.</p>
<h3><a href="http://www.carbonite.com/">Carbonite</a></h3>
<p>Price: <em>Free 15 day trial / $49.95 per year Unlimited Storage</em></p>
<p>This seems to receive good reviews and the install and configuration was simple enough.  Some reviews mentioned problems restoring and also that tech support wasn&#8217;t brilliant.  They also have an Acceptable Usage Policy so it&#8217;s not really unlimited.  I decided against this one.</p>
<h3><a href="https://mozy.com/?ref=M7HBYL">Mozy</a></h3>
<p>Price: <em>FREE limited version / $54.45 per year Unlimited Storage</em></p>
<p>Lots of positive reviews although some criticism of the UI being too simple.  Personally I like it and it allows some powerful filtering.  Tech support seems to be good, although I&#8217;ve had no contact myself.  Explicitly states in the FAQ that there are no limits on number of files, file size, or total space usage.  Free account gives you 2GB storage, although you get 0.25GB extra for everyone who you refer.  It&#8217;s possible to get files sent to you on DVD although this is expensive and only available in the USA. Think I&#8217;m going to use Mozy for my online backup</p>
<h2>Peer-To-Peer Backup (P2P)</h2>
<p>There are plenty of P2P file sharing applications out there which allow you to synchronise a folder on your PC with one on a friend&#8217;s PC, however, by definition these allow your friend to read your files.  A proper backup system will encrypt you files so your friend has no idea what data you are backing up to their PC.</p>
<h3><a href="http://www.foldershare.com/">FolderShare</a></h3>
<p>Price: <em>FREE </em></p>
<p>I&#8217;ve been using this for a few years and it works very well, however it is just a file sharing system.  I mention it because it&#8217;s great for backing up something like your MP3 collection where you don&#8217;t mind your friend having access.  You can make the shared files read only so your friend can&#8217;t change them.  One problem with FolderShare is that it doesn&#8217;t cope very well with removable storage, so libraries on external drives can be a bit sketchy.</p>
<h3><a href="http://www.buddybackup.com/">BuddyBackup</a></h3>
<p>Price: <em>Free limited version, £10 for full version (one-off fee)<br />
</em></p>
<p>On first impression this seems good, but I then had problems with it crashing, and didn&#8217;t receive any reply from tech support.  Has lots of potential but doesn&#8217;t seem to be under active development.</p>
<h3><a href="https://secure.logmein.com/products/backup/">LogMeIn Backup</a></h3>
<p>Price: <span style="font-style: italic">$39.95 /year per PC</span></p>
<p>Haven&#8217;t tried this.  I have tried some of their other services so based on those I expect this to be excellent.</p>
<h3><a href="http://www.crashplan.com/">CrashPlan</a></h3>
<p>Price: <span style="font-style: italic">Free 30 day trial / $20 </span><em style="font-style: italic">(one-off fee) </em><span style="font-style: italic">for Standard version / $60 </span><span style="font-style: italic"><em style="font-style: italic">(one-off fee) </em><span style="font-style: italic">for Pro version</span></span></p>
<p>This seems excellent and it looks like the one I&#8217;m going with.  Reasonably simple to configure although it did require port forwarding <a href="http://www.crashplan.com/support/releases.vtl">Release Notes</a> show the project is currently very active and they seem to respond to user comments.  Another bonus is that CrashPlan works on Windows, Mac and Linux (soon) and each can backup to the other.</p>
<p>Useful features that are apparently <a href="http://www.crashplan.com/support/support.vtl">coming soon</a>:</p>
<ul>
<li>Local backup to USB drive and later continuing differentially over the WAN</li>
<li>Local restore from a USB drive that was once remote</li>
</ul>
<h2>Conclusion</h2>
<p>At the moment it looks like I&#8217;m going to end up with a combination of Mozy, FolderShare and CrashPlan.  This will cost about £55 for first year and £28 a year after that.  Seems good value to me.  There is actually a hidden cost though &#8211; the hard drive space required to hold friends&#8217; backups.  That said, I just bought a 500GB drive for £60, so it&#8217;s not too expensive</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2008/06/online-peer-to-peer-backup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Reduce Firefox Memory Usage</title>
		<link>http://www.andymadge.com/2007/08/reduce-firefox-memory-usage/</link>
		<comments>http://www.andymadge.com/2007/08/reduce-firefox-memory-usage/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 11:50:52 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.andymadge.com/computers/2007/08/30/reduce-firefox-memory-usage/</guid>
		<description><![CDATA[How_to_reduce_the_memory_usage_on_Firefox
Config.trim_on_minimize
solving-firefox-memory-leak-problems-step-by-step-guide
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zolved.com/synapse/view_content/24939/How_to_reduce_the_memory_usage_on_Firefox">How_to_reduce_the_memory_usage_on_Firefox</a></p>
<p><a href="http://kb.mozillazine.org/Config.trim_on_minimize">Config.trim_on_minimize</a></p>
<p><a href="http://techgurls.blorc.com/2006/04/06/solving-firefox-memory-leak-problems-step-by-step-guide/">solving-firefox-memory-leak-problems-step-by-step-guide</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2007/08/reduce-firefox-memory-usage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drag and drop an iTunes playlist&#8217;s songs into a folder</title>
		<link>http://www.andymadge.com/2007/08/drag-and-drop-an-itunes-playlists-songs-into-a-folder/</link>
		<comments>http://www.andymadge.com/2007/08/drag-and-drop-an-itunes-playlists-songs-into-a-folder/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 10:59:15 +0000</pubDate>
		<dc:creator>AndyM</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[iTunes]]></category>

		<guid isPermaLink="false">http://blog.andymadge.com/computers/2007/08/30/drag-and-drop-an-itunes-playlists-songs-into-a-folder/</guid>
		<description><![CDATA[from Lifehacker:


Regarding transferring songs out of iTunes, readers point out that you can select, drag and drop songs from iTunes to a Windows Explorer or Mac Finder window to copy them to a destination folder, a much easier method than Friday&#8217;s iTunes Export tack. However, the drag and drop method does NOT create an M3U [...]]]></description>
			<content:encoded><![CDATA[<p>from <a href="http://lifehacker.com/software/itunes/drag-and-drop-an-itunes-playlists-songs-into-a-folder-281055.php">Lifehacker</a>:<br />
<!-- google_ad_section_start --></p>
<blockquote><p><img width="478" height="265" class="postimg center" alt="itunesdragndrop.png" src="http://lifehacker.com/assets/resources/2007/07/itunesdragndrop.png" /><br />
Regarding transferring songs out of iTunes, readers point out that you can select, drag and drop songs from iTunes to a Windows Explorer or Mac Finder window to copy them to a destination folder, a much easier method than Friday&#8217;s <a href="http://lifehacker.com/software/geek-to-live/free-your-music-from-itunes-with-itunes-exporter-280279.php">iTunes Export tack</a>. However, the drag and drop method does NOT create an M3U playlist like iTunes Export does. Also, when I tested drag and drop on an extra large playlist (over a thousand songs), it refused to do a thing. For shorter lists it worked like a charm. <em>Thanks, &#8216;hackers!</em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.andymadge.com/2007/08/drag-and-drop-an-itunes-playlists-songs-into-a-folder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
