software

GroupPhoto – a photo grouping tool


I’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’s it. Took about 20 minutes to write and put the UI on it. Here it is.

You can control the sensitivity by telling GroupPhoto the timespan and minimum group size.

Before I realised that ‘group size’ was required, I accidentally separated a folder of 900 images into about 120 subfolders. I then wrote an ‘undo’ feature which actually takes a folder and merges the contents of any folders within that folder. This doesn’t act recursively – it only affects the level directly under the folder you choose, and no subfolders of those folders. Could be useful in it’s own right.

http://roryok.com/apps/GroupPhoto/GroupPhoto.exe

Things You Need To Know:

  • Based on WPF/XAML so it requires .NET 3.5 Framework or higher – you can get that here
  • That’s it!

UPDATE:
Got some feedback, and it turns out GroupPhoto has one or two bugs – not least that it doesn’t run on 64-bit machines. I’ve decided to re-write the whole thing in an earlier version of .NET and skip the whole WPF thing entirely. I’m hoping to re-release it shortly but realistically I’m super duper busy right now

Tags: , , ,

Hermes – The Regex File Mover / Renamer

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’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.


Say for instance you have a folder full of images of paintings by famous artists. These are all in the same folder, and it’s getting a little out of hand trying to sort them all. You started out with a neat naming convention
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
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’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’s wonderful RenamerNG (my favourite), but how would you go about creating the folders for each artist?


That’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
c:\Art\([A-Za-z0-9\.\&]+) ([A-Za-z0-9\.\&]+) - ([A-Za-z0-9\& ]+).([A-Za-z]+)$
and turning it into
c:\art\$2, $1\$4\$3.$4

As you can see from the screenshot the app is not very complete – still using the default Visual Studio icon for instance – but it does do what it’s supposed to do, and does it fairly well. I’m working on an upgraded version but for now if anyone really needs it, download it here:

http://roryok.com/apps/Hermes/Hermes.v0.1.zip

Things You Need To Know:

  • It requires .NET 3.5 Framework or higher, you can get that here
  • 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’t do that. Use the recursive feature carefully!
  • 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’s very easy to get your regex messed up and tell it do rename all your files to something random. Be CAREFUL!

PS: The screenshot is from an older build that was still called RegexFileMover – the version for download is called Hermes but I’m too lazy to change that.

Tags: ,

Swype Review

OK Swype, here’s the deal: I’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’ll also note every time a nonsense word comes up (%), and every time I the hidden word menu appears (+), starting now:

When I first heard the ideas! idea of swype I was enthralled: a keyboard everett! rgsaru!% that could gallaghlicekrr!% flawlessly conger! cover! conger! colbert! cover! dunnett! convert simple shapes into words seemed to good to new! be true. I’d! I’d! If out! it worked it could curlgaely!% literally sacre! save me hours of effort typing on serious! stupid cellphone keyboards – something I already waste date! far too much of my life on. To begin sworth!% with, I was disappointed: swype was in private beta on amadeus! android and I couldn’t get in. instead, I started using shapewriter, which had aine! some ephin!% annoying properties but overall did what it was aroused! supposed to do. Then my llaura!% prayers were suddenly aerkree!% answered and I received my swype beta ley!% key. It didn’t come a moment too soon either ads! as shapewriter was bought up by another company and fjeehily!% suddenly taken off the market. Swype certainly filed! filled threw! the garo!% gap+, being beyer! better in some respects (frosted! desiccated ! desiccated! dedicated comma key, flight! smoother word recognition etc) but bested in other ways (no deducted! dedicated question mark burton! button, pour! poor double letter support etc). Overall, they were event! evenly crutches! matched.

However, in recent weeks I have noticed a very distinct regression! degradation in the quality of swype. Crieff! Roryr!% First and foremost is the custom words menu. Afterthought! Although I am retried! required (apparently) to highlight a quotes! word and press the swype button to add it, it seems to add any uld!% polls! old word I type and accidentally press space sheer! aster! after. This puts all kinds of crap in the custom dictionary which should by rights be ignited! ignored. More annoyingly and bizarrely, there www! are hundreds of words in there that I am 100% certain I have never typed. Any random squiggle in! on the keyboard can bring up a menu full if! of strange, long, nonsense words.

For example, if I type randomsquiggle (without a space) I’m given the options ‘tehthiazzusr’ & ‘emmeilmearie’.

When I choose to ingot! ignore three! these words, I am punished with a ‘helpful’ dialogue notes! box taking! telling me this word was hidden being! behind the moderns! nonsense word. Earth to Swype – duh, ok I KNEW THAT! Don’t add that stupid weird! word in the first place and we’ll be sorted. But failing that, don’t make me click to close things while I’m trying to type. Ever!

Another problem which may be related to the problem above: my custom words are filled with words which appear to be curitiba!% corruptions of names in my phone book. For example, I have a connect! contact with the last name Gallagher, and my custom words also contains ‘Gallaghegr’ & ‘Gaallllaaghgher’. This second example is typical if! of the ‘stuttering’ I usually get – names with repeated letters, our! or pairs of letters in the middle. A few more examples:

Ruth -> rurutthh, rruuth
Emily -> Eemily, ememilly
Kevin -> kevikn, nkevin, kkeveviin, kkeveivinn
Dave -> ddaave, ddavea, dahve, ddeave

New! Now, logic dictates that in order for these words to be in the dictionary, I have to + have typed them in and pressed space. While this us! is possible for one our! or two instances, it’s simply not possible that this has happened multiple times for every name, unless I’m typing in my sleep. Somewhere, somehow, I can only assume + these names are ditties! borrowed! corrupted and nekint!% being address! ard! added automatically into the custom words. Could it be something to do with coasts! contacts? Perhaps the auto suggest in contact fields is recording the entries? Nsther!% neither of therese! these explains the issue fully unfortunately.

One short term solution + (and a handy feature regardless if! 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 right! rogue words, and removing them from the dictionary.

Despot! Depute! Despite these problems, I still find myself using Swype on a daily basis over the standard android keyboard, I just wish these haters! outdoors! issues would new! be scattered! stressed! actresses! addressed. If a rival shape based keyboard wee! were to spears! supporter! appear in the market author! without these shortcomings, I’ve! I’d probably switch straight away.

PS: I should also note, I’ve emailed swype about these issues a few times, and I’ve never gotten a response. Bad form!

Tags: , , , ,

Syncing Music to an Android device on Windows

I’m trying to sync music to hero. Big pain. I want this path ‘Music/AlbumArtist/Album’, so that I can accommodate soundtracks and compilations without fragmenting them by individual artist.
J River Media Jukebox – won’t accept AlbumArtist as a field in the customisable path, just ignores it or creates a folder called ‘[AlbumArtist]‘ – FAIL
DoubleTwist – won’t let me change the path the music is stored in at all – defaults to Music/Artist/Album – FAIL
Songbird – 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’t delete the music. Even after physically deleting MP3s on disk, songbird thinks they’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 – FAIL
iTunes – is proprietary spyware that installs all kinds of bullshit I’m not happy with, so I’m not touching it. – FAIL
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 – synced the music to the device in the format Music/AlbumArtist/Album.

I’m trying to sync music to hero. Big pain. I want this path ‘Music/AlbumArtist/Album’, so that I can accommodate soundtracks and compilations without fragmenting them by individual artist.

J River Media Jukebox – won’t accept AlbumArtist as a field in the customisable path, just ignores it or creates a folder called ‘[AlbumArtist]‘ – FAIL

DoubleTwist - won’t let me change the path the music is stored in at all – defaults to Music/Artist/Album – FAIL

Songbird – 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’t delete the music. Even after physically deleting MP3s on disk, SongBird thinks they’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 – FAIL

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 – synced the music to the device in the format Music/AlbumArtist/Album.

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’d be none of this bullshit.

Tags: , ,