<?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>roryokblog &#187; software</title>
	<atom:link href="http://roryok.com/blog/index.php/t/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://roryok.com/blog</link>
	<description>All your comment are belong to us</description>
	<lastBuildDate>Mon, 06 Feb 2012 09:57:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>GroupPhoto &#8211; a photo grouping tool</title>
		<link>http://roryok.com/blog/2011/11/01/groupphoto-a-photo-grouping-tool/</link>
		<comments>http://roryok.com/blog/2011/11/01/groupphoto-a-photo-grouping-tool/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 18:51:44 +0000</pubDate>
		<dc:creator>rory</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[file-management]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://roryok.com/blog/?p=946</guid>
		<description><![CDATA[I&#8217;ve just written a little app that groups bunches of photos together into subfolders, based on dates. Basically, it looks for photos which were taken within 90 minutes of each other (or however long the user specifys) and creates subfolders for them. That&#8217;s it. Took about 20 minutes to write and put the UI on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://roryok.com/blog/2011/11/01/groupphoto-a-photo-grouping-tool/groupphoto_pic/" rel="attachment wp-att-950"><img src="http://roryok.com/blog/wp-content/uploads/2011/11/groupphoto_pic.png" alt="" title="groupphoto_pic" width="542" height="366" class="aligncenter size-full wp-image-950" /></a><br />
I&#8217;ve just written a little app that groups bunches of photos together into subfolders, based on dates. Basically, it looks for photos which were taken within 90 minutes of each other (or however long the user specifys) and creates subfolders for them. That&#8217;s it. Took about 20 minutes to write and put the UI on it. Here it is. </p>
<p>You can control the sensitivity by telling GroupPhoto the timespan and minimum group size. </p>
<p>Before I realised that &#8216;group size&#8217; was required, I accidentally separated a folder of 900 images into about 120 subfolders. I then wrote an &#8216;undo&#8217; feature which actually takes a folder and merges the contents of any folders within that folder. This doesn&#8217;t act recursively &#8211; it only affects the level directly under the folder you choose, and no subfolders of <em>those</em> folders. Could be useful in it&#8217;s own right. </p>
<p><a href="http://roryok.com/apps/GroupPhoto/GroupPhoto.exe">http://roryok.com/apps/GroupPhoto/GroupPhoto.exe</a></p>
<p>Things You Need To Know:</p>
<ul>
<li>Based on WPF/XAML so it requires .NET 3.5 Framework or higher &#8211; you can get that <a href="http://www.google.ie/#hl=en&amp;xhr=t&amp;q=.net+3.5">here</a></li>
<li>That&#8217;s it!</li>
</ul>
<p><strong>UPDATE:</strong><br />
Got some feedback, and it turns out GroupPhoto has one or two bugs &#8211; not least that it doesn&#8217;t run on 64-bit machines. I&#8217;ve decided to re-write the whole thing in an earlier version of .NET and skip the whole WPF thing entirely. I&#8217;m hoping to re-release it shortly but realistically I&#8217;m super duper busy right now</p>
]]></content:encoded>
			<wfw:commentRss>http://roryok.com/blog/2011/11/01/groupphoto-a-photo-grouping-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hermes – The Regex File Mover / Renamer</title>
		<link>http://roryok.com/blog/2011/07/07/hermes/</link>
		<comments>http://roryok.com/blog/2011/07/07/hermes/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 09:00:25 +0000</pubDate>
		<dc:creator>rory</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://roryok.com/blog/?p=918</guid>
		<description><![CDATA[Last year I found myself faced with the mammoth task of renaming and sorting thousands of files according to a strict set of rules. I couldn&#8217;t find a piece of software to do exactly what I needed, so I wrote one. Hermes (named after futurama bureaucrat and legendary sorter hermes conrad) is a regex based [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste"><a rel="attachment wp-att-919" href="http://roryok.com/blog/2011/07/07/hermes/hermes/"><img class="alignnone size-full wp-image-919" style="border: 0px initial initial;" title="hermes" src="http://roryok.com/blog/wp-content/uploads/2011/07/hermes.png" alt="" width="815" height="531" /></a></div>
<div>Last year I found myself faced with the mammoth task of renaming and sorting thousands of files according to a strict set of rules. I couldn&#8217;t find a piece of software to do exactly what I needed, so I wrote one. Hermes (named after futurama bureaucrat and legendary sorter hermes conrad) is a regex based file sorting application. It allows you to change the path of a file (which covers both moving and renaming) based on regex criteria.</div>
<p><br/></p>
<div id="_mcePaste">Say for instance you have a folder full of images of paintings by famous artists. These are all in the same folder, and it&#8217;s getting a little out of hand trying to sort them all. You started out with a neat naming convention</div>
<div>
<blockquote>
<pre>c:\art\Hieronymus Bosch - The Garden of Earthly Delights.png
c:\art\John Everett Millais - Ophelia.JPG
c:\art\Leonardo Da Vinci - Mona Lisa.gif</pre>
</blockquote>
<div id="_mcePaste">But now things are getting out of hand, and you want to sort them alphabetically by LAST name, not first. Then you decide you would like to group each artist&#8217;s paintings into their own folder. Then you decide it would be best to group the image formats into different sub folders too. Now, you could easily rename all the files using a program like AntRenamer, or Albert Bertilsson&#8217;s wonderful RenamerNG (my favourite), but how would you go about creating the folders for each artist?</div>
<p><br/></p>
<div id="_mcePaste">That&#8217;s where Hermes comes in. Hermes allows you to use Regular Expressions to alter the path of the files, which covers both moving AND renaming at the same time. Hermes would do the job above by using a RegEx string like</div>
<blockquote>
<pre>c:\Art\([A-Za-z0-9\.\&amp;]+) ([A-Za-z0-9\.\&amp;]+) - ([A-Za-z0-9\&amp; ]+).([A-Za-z]+)$</pre>
</blockquote>
<div>and turning it into</div>
<blockquote>
<pre>c:\art\$2, $1\$4\$3.$4</pre>
</blockquote>
<p>As you can see from the screenshot the app is not very complete &#8211; still using the default Visual Studio icon for instance &#8211; but it does do what it&#8217;s supposed to do, and does it fairly well. I&#8217;m working on an upgraded version but for now if anyone really needs it, download it here:</p>
<p><a href="http://roryok.com/apps/Hermes/Hermes.v0.1.zip">http://roryok.com/apps/Hermes/Hermes.v0.1.zip</a></p>
<p>Things You Need To Know:</p>
<ul>
<li>It requires .NET 3.5 Framework or higher, you can get that <a href="http://www.google.ie/#hl=en&amp;xhr=t&amp;q=.net+3.5">here</a></li>
<li>It starts by default in C:\ and with Regex (.*) and recursive UNTICKED. If you tick recursive and hit process, it will iterate over every single file on your C:\ drive, which could take hours, so don&#8217;t do that. Use the recursive feature carefully!</li>
<li>I accept no responsibility for any loss of data as a result of using this program. Use it at your own risk and for feck sake make some backups first. I would. Even if it works flawlessly, it&#8217;s very easy to get your regex messed up and tell it do rename all your files to something random. Be CAREFUL!</li>
</ul>
<p>PS: The screenshot is from an older build that was still called RegexFileMover &#8211; the version for download is called Hermes but I&#8217;m too lazy to change that.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://roryok.com/blog/2011/07/07/hermes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Swype Review</title>
		<link>http://roryok.com/blog/2010/11/23/swype-review/</link>
		<comments>http://roryok.com/blog/2010/11/23/swype-review/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 14:28:07 +0000</pubDate>
		<dc:creator>rory</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://roryok.com/blog/?p=873</guid>
		<description><![CDATA[OK Swype, here&#8217;s the deal: I&#8217;m going to write a little review of your keyboard, using your keyboard. I will leave in any mistakes it makes, separating via a (!) character. I&#8217;ll also note every time a nonsense word comes up (%), and every time I the hidden word menu appears (+), starting now: When [...]]]></description>
			<content:encoded><![CDATA[<p>OK Swype, here&#8217;s the deal: I&#8217;m going to write a little review of your keyboard, <em>using </em>your keyboard. I will leave in any mistakes it makes, separating via a (!) character. I&#8217;ll also note every time a nonsense word comes up (%), and every time I the hidden word menu appears (+), starting now:</p>
<p>When I first heard the <span style="color: #ff0000;">ideas! </span>idea of swype I was enthralled: a keyboard <span style="color: #ff0000;">everett! rgsaru!%</span> that could <span style="color: #ff0000;">gallaghlicekrr!%</span> flawlessly <span style="color: #ff0000;">conger! cover! conger! colbert! cover! dunnett!</span> convert simple shapes into words seemed to good to <span style="color: #ff0000;">new!</span> be true. <span style="color: #ff0000;">I&#8217;d! I&#8217;d!</span> If <span style="color: #ff0000;">out!</span> it worked it could <span style="color: #ff0000;">curlgaely!%</span> literally <span style="color: #ff0000;">sacre!</span> save me hours of effort typing on <span style="color: #ff0000;">serious!</span> stupid cellphone keyboards &#8211; something I already waste <span style="color: #ff0000;">date!</span> far too much of my life on. To begin <span style="color: #ff0000;">sworth!%</span> with, I was disappointed: swype was in private beta on <span style="color: #ff0000;">amadeus!</span> android and I couldn&#8217;t get in. instead, I started using shapewriter, which had <span style="color: #ff0000;">aine!</span> some <span style="color: #ff0000;">ephin!%</span> annoying properties but overall did what it was <span style="color: #ff0000;">aroused! </span>supposed to do. Then my <span style="color: #ff0000;">llaura!%</span> prayers were suddenly <span style="color: #ff0000;">aerkree!%</span> answered and I received my swype beta <span style="color: #ff0000;">ley!%</span> key. It didn&#8217;t come a moment too soon either <span style="color: #ff0000;">ads!</span> as shapewriter was bought up by another company and <span style="color: #ff0000;">fjeehily!%</span> suddenly taken off the market. Swype certainly <span style="color: #ff0000;">filed!</span> filled <span style="color: #ff0000;">threw!</span> the <span style="color: #ff0000;">garo!%</span> gap<span style="color: #ff0000;">+</span>, being <span style="color: #ff0000;">beyer!</span> better in some respects (<span style="color: #ff0000;">frosted! desiccated ! desiccated!</span> dedicated comma key, <span style="color: #ff0000;">flight! </span>smoother word recognition etc) but bested in other ways (no <span style="color: #ff0000;">deducted! </span>dedicated question mark <span style="color: #ff0000;">burton!</span> button, <span style="color: #ff0000;">pour! </span>poor double letter support etc). Overall, they were <span style="color: #ff0000;">event! </span>evenly <span style="color: #ff0000;">crutches! </span>matched.</p>
<p>However, in recent weeks I have noticed a very distinct <span style="color: #ff0000;">regression! </span>degradation in the quality of swype. <span style="color: #ff0000;">Crieff! Roryr!%</span> First and foremost is the custom words menu. <span style="color: #ff0000;">Afterthought! </span>Although I am <span style="color: #ff0000;">retried! </span>required (apparently) to highlight a <span style="color: #ff0000;">quotes! <span style="color: #000000;">word </span></span>and press the swype button to add it, it seems to add any <span style="color: #ff0000;">uld!% polls! </span>old word I type and accidentally press space <span style="color: #ff0000;">sheer! aster!</span> after. This puts all kinds of crap in the custom dictionary which should by rights be<span style="color: #ff0000;"> ignited! </span>ignored. More annoyingly and bizarrely, there <span style="color: #ff0000;">www! </span>are hundreds of words in there that I am 100% certain I have never typed. Any random squiggle <span style="color: #ff0000;">in!</span> on the keyboard can bring up a menu full <span style="color: #ff0000;">if!</span> of strange, long, nonsense words.</p>
<p>For example, if I type randomsquiggle (without a space) I&#8217;m given the options &#8216;tehthiazzusr&#8217; &amp; &#8216;emmeilmearie&#8217;.</p>
<p>When I choose to <span style="color: #ff0000;">ingot!</span> ignore<span style="color: #ff0000;"> three!</span> these words, I am punished with a &#8216;helpful&#8217; dialogue <span style="color: #ff0000;">notes! </span>box <span style="color: #ff0000;">taking! </span>telling me this word was hidden <span style="color: #ff0000;">being! </span>behind the <span style="color: #ff0000;">moderns! </span>nonsense word. Earth to Swype &#8211; duh, ok I KNEW THAT! Don&#8217;t add that stupid <span style="color: #ff0000;">weird!</span> word in the first place and we&#8217;ll be sorted. But failing that, don&#8217;t make me click to close things while I&#8217;m trying to type. Ever!</p>
<p>Another problem which may be related to the problem above: my custom words are filled with words which appear to be <span style="color: #ff0000;">curitiba!%</span> corruptions of names in my phone book. For example, I have a <span style="color: #ff0000;">connect!</span> contact with the last name Gallagher, and my custom words also contains &#8216;Gallaghegr&#8217; &amp; &#8216;Gaallllaaghgher&#8217;. This second example is typical <span style="color: #ff0000;">if! </span>of the &#8216;stuttering&#8217; I usually get &#8211; names with repeated letters, <span style="color: #ff0000;">our! </span>or pairs of letters in the middle. A few more examples:</p>
<p>Ruth -&gt; rurutthh, rruuth<br />
Emily -&gt; Eemily, ememilly<br />
Kevin -&gt; kevikn, nkevin, kkeveviin, kkeveivinn<br />
Dave -&gt; ddaave, ddavea, dahve,  ddeave</p>
<p><span style="color: #ff0000;">New! </span>Now, logic dictates that in order for these words to be in the dictionary, I have to <span style="color: #ff0000;">+ </span>have typed them in and pressed space. While this <span style="color: #ff0000;">us!</span> is possible for one <span style="color: #ff0000;">our! </span>or two instances, it&#8217;s simply not possible that this has happened multiple times for every name, unless I&#8217;m typing in my sleep. Somewhere, somehow, I can only assume <span style="color: #ff0000;">+</span> these names are <span style="color: #ff0000;">ditties! borrowed! </span>corrupted and <span style="color: #ff0000;">nekint!%</span> being <span style="color: #ff0000;">address! ard! </span>added automatically into the custom words. Could it be something to do with <span style="color: #ff0000;">coasts! </span>contacts? Perhaps the auto suggest in contact fields is recording the entries? <span style="color: #ff0000;">Nsther!%</span> neither of <span style="color: #ff0000;">therese! </span>these explains the issue fully unfortunately.</p>
<p>One short term solution <span style="color: #ff0000;">+</span> (and a handy feature regardless <span style="color: #ff0000;">if!</span> of problems) would be to allow access to the custom words dictionary so that words can be bulk removed. As it is I probably spend 5-10% of my typing time fighting with <span style="color: #ff0000;">right!</span> rogue words, and removing them from the dictionary.</p>
<p><span style="color: #ff0000;">Despot! Depute! </span>Despite these problems, I still find myself using Swype on a daily basis over the standard android keyboard, I just wish these <span style="color: #ff0000;">haters! outdoors! </span>issues would <span style="color: #ff0000;">new! </span>be <span style="color: #ff0000;">scattered! stressed! actresses! </span>addressed. If a rival shape based keyboard <span style="color: #ff0000;">wee! </span>were to <span style="color: #ff0000;">spears! supporter! </span>appear in the market <span style="color: #ff0000;">author! </span>without these shortcomings, <span style="color: #ff0000;">I&#8217;ve! </span>I&#8217;d probably switch straight away.</p>
<p>PS: I should also note, I&#8217;ve emailed swype about these issues a few times, and I&#8217;ve never gotten a response. Bad form!</p>
]]></content:encoded>
			<wfw:commentRss>http://roryok.com/blog/2010/11/23/swype-review/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Syncing Music to an Android device on Windows</title>
		<link>http://roryok.com/blog/2010/07/10/syncing-music-to-an-android-device-on-windows/</link>
		<comments>http://roryok.com/blog/2010/07/10/syncing-music-to-an-android-device-on-windows/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 09:20:27 +0000</pubDate>
		<dc:creator>rory</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://roryok.com/?p=811</guid>
		<description><![CDATA[I&#8217;m trying to sync music to hero. Big pain. I want this path &#8216;Music/AlbumArtist/Album&#8217;, so that I can accommodate soundtracks and compilations without fragmenting them by individual artist. J River Media Jukebox &#8211; won&#8217;t accept AlbumArtist as a field in the customisable path, just ignores it or creates a folder called &#8216;[AlbumArtist]&#8216; &#8211; FAIL DoubleTwist [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I&#8217;m trying to sync music to hero. Big pain. I want this path &#8216;Music/AlbumArtist/Album&#8217;, so that I can accommodate soundtracks and compilations without fragmenting them by individual artist.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">J River Media Jukebox &#8211; won&#8217;t accept AlbumArtist as a field in the customisable path, just ignores it or creates a folder called &#8216;[AlbumArtist]&#8216; &#8211; FAIL</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">DoubleTwist &#8211; won&#8217;t let me change the path the music is stored in at all &#8211; defaults to Music/Artist/Album &#8211; FAIL</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Songbird &#8211; lets me set AlbumArtist in Path, but forgot I did it when I closed and re-opened program. Once I had synced the playlist once, my only option is to delete the playlist from the device, which doesn&#8217;t delete the music. Even after physically deleting MP3s on disk, songbird thinks they&#8217;re still there and will only re-sync the actual m3u file. SongBird also locks up for about 10 seconds every time I click on the handheld device &#8211; FAIL</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">iTunes &#8211; is proprietary spyware that installs all kinds of bullshit I&#8217;m not happy with, so I&#8217;m not touching it. &#8211; FAIL</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">In the end I decided songbird was closest, so I tried a little harder. Ejected the device, closed Songbird, reconnected device, re-opened songbird. Settings screen screwed itself up, took a while to show me my saved settings again. But in the end, it worked &#8211; synced the music to the device in the format Music/AlbumArtist/Album.</div>
<p>I&#8217;m trying to sync music to hero. Big pain. I want this path &#8216;Music/AlbumArtist/Album&#8217;, so that I can accommodate soundtracks and compilations without fragmenting them by individual artist.</p>
<p><strong>J River Media Jukebox</strong> &#8211; won&#8217;t accept AlbumArtist as a field in the customisable path, just ignores it or creates a folder called &#8216;[AlbumArtist]&#8216; &#8211; FAIL</p>
<p><strong>DoubleTwist </strong>- won&#8217;t let me change the path the music is stored in at all &#8211; defaults to Music/Artist/Album &#8211; FAIL</p>
<p><strong>Songbird</strong> &#8211; lets me set AlbumArtist in Path, but forgot I did it when I closed and re-opened program. Once I had synced the playlist once, my only option is to delete the playlist from the device, which doesn&#8217;t delete the music. Even after physically deleting MP3s on disk, SongBird thinks they&#8217;re still there and will only re-sync the actual m3u file. SongBird also locks up for about 10 seconds every time I click on the handheld device &#8211; FAIL</p>
<p>In the end I decided SongBird was closest, so I tried a little harder. Ejected the device, closed Songbird, reconnected device, re-opened songbird. Settings screen screwed itself up, took a while to show me my saved settings again. But in the end, it worked &#8211; synced the music to the device in the format Music/AlbumArtist/Album.</p>
<p>All in all, it took about 40 minutes to sync one f**king album to the phone. I really wish the guys behind ImgBurn would take a crack at making music software, I bet there&#8217;d be none of this bullshit.</p>
]]></content:encoded>
			<wfw:commentRss>http://roryok.com/blog/2010/07/10/syncing-music-to-an-android-device-on-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

