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: , , ,

Fifa 13

Using computer modelling software I’ve been able to predict the cover for next year’s Fifa game :

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: ,

Further evidence that Microsoft is broken

Below is a screenshot of a warning popping up in visual studio, complete with a ‘short’ url

What’s wrong with this helpful looking message?

  1. The link is inside a tooltip, which vanishes when you no longer mouse over the link. in other words, that hyperlink cannot be clicked at all #FAIL
  2. In a world full of link shorteners, http://go.microsoft.com/fwlink/?linkid=14202 is NOT a short link. #FAIL
  3. opening the warnings and clicking on ‘Show error Help’ does not redirect to this link. Instead, it brings you to help about that type of error. #FAIL
  4. Typing the handy 44 character short URL into my browser brings up a page with System.NET buried in collapsed content, linked by an anchor tag that doesn’t work. System.Net.IPAddress is not mentioned at all. #FAIL
  5. If you want to get picky, the text of the warning is presented in both single and double quotes. At the same time, and neither are appropriate here. #FAIL

This is the latest version of Visual Studio 2010, running on Windows 7. There are no legacy problems at work here. Five failures inside the design of a simple error message, inside one of the companies flagship products, no doubt designed and re-designed by a team of crack software developers and designers.  I guess the ability to actually click on a link that appears on the screen is not a design priority for them. And as for what’s at the other end of the link, hey – that’s another team’s problem right?

Tags: , , ,

Clickable, Hoverable ExCanvas World Map

I was trawling through some old stuff recently and I found some useful javascript I’d created for a project that was never used. The requirement was to replace a flash based map component with something iPad friendly. I found an amazing plugin by Jon Combe called ExCanvas which rendered an entire zoomable, colourable world map through canvas. However, it didn’t fit all the needs of the project – we needed the ability to add tooltips.

I spent a couple of hours adding in code to generate an imagemap from the same coords which the canvas uses. This imagemap creates hover states for all the countries on the map.

hello world

The hacks, in brief:

  • added a countryNames array to the .js file
  • added a hoverable imagemap which implements the countryNames array
  • added some predefined zoom zones for regions like europe, north america, asia, pacific etc

Here’s a working example so you can see what I mean.

Never did get to use this, but it would be a shame to see it get deleted in some file cleanup, so I thought I’d better post it.

Tags: , , ,

Meteor Suck

Here’s the text of a complaint email I sent to Meteor, maybe I was a little harsh but I’m having a bad day:


————————————

Dear Meteor


At least once a week I can’t login to webtext because it tells me I have the wrong password. I re-enter it CAREFULLY numerous  times and it doesn’t work until I get to the captcha. That’s the first problem. The second problem is that every time I click web text I get a javascript error that says “Error 0 occurred processing” in a javascript alert box.


javascript alert box. Lets think about that for a minute. Anytime this nonsense error occurs, I have to click to get rid of it. In order for it not to come up, all you have to do is NOT call


alert(“Error 0 has occured”)


which is somewhere in your code. In fact, I’ll tell you exactly where:


https://www.mymeteor.ie/mymeteorapi/model/javascript/ajaxLibrary_1_4.js, line 75.


That entire file is completely redundant by the way, as you can do ajax requests using JQuery, which is already called at the top of the page along with early_load.js and register.js, (which, it turns out, are two copies of the same file).


I’m paying you guys €35 quid a month for a service which already has awful signal coverage and barely passable 3G. Whatever eejits you have running your website, I must be a bigger one for staying with your network.

Tags: , , , ,

International Forestry Fund

I got an email from a friend that a swiss company called the International Forestry Fund, chaired by none other than our own Bertie Ahern, was making a bid for Coillte, Irelands national forestry management agency. I decided to take a peek at the website, and I found it very interesting, not to mention entertaining.
The first page has a popup with a ‘Terms and Conditions’ you must agree to in order to view the site. This is something very rare on the internet, and rightly so. I decided I’d better read these ‘Terms and Conditions’ before agreeing. Here are a few.
The information on this website is directed only at persons or corporate entities who are entitled under the laws of the jurisdiction in which they reside/operate to view information in relation to the International Forestry Fund which is a British Virgin Islands registered company. Information contained in this website is provided for shareholders in the Company and for their exclusive use and benefit. Users of this website must not distribute any material contained in this website to others.
Whoops. I just broke the last part. Lucky I hadn’t agreed to it yet. Now, when I see that this company is registered in the British Virgin Islands, alarm bells start going off…
If you choose to access this website, you do so at your own risk and the Company will not be liable for any breach of local law or regulation that you commit as a result of doing so.
Wow. Ok.
This website is designed to provide information about the Company, and its investment manager, Helvetia Wealth A.G. (the “Manager”) which is general in nature and you should not rely on it for any particular purpose.
Should not rely on it for ANY purpose? really? Ok Two more bits, then I’m done:
Severability
No part of these terms and conditions is intended to constitute an exclusion of liability which cannot be excluded under Guernsey law. To the extent that any part of these terms and conditions is found to be invalid, unlawful or unenforceable such part shall be severed from the remaining terms and conditions, all of which shall remain in force and effect.
Guernsey? I thought this company was a British Virgin Islands registered company?
Governing law
These terms and conditions shall be governed by, and interpreted in accordance with, British Virgin Islands law. You irrevocably agree that the courts of the British Virgin Islands shall have exclusive jurisdiction to resolve any dispute or claim of whatever nature arising out of or relating to this website, and that the laws of the British Virgin Islands shall govern such dispute or claim.
Oh. It’s back to being a BVI company. I guess that was just a glitch in the matrix. I wouldn’t trust these guys as far as I could throw a freshly felled pine tree.

Organising the sell-off of our national forests is exactly the kind of thing I’d expect Bertie to be involved in, and while Cowen is still steering the country into a ditch I would fully expect him to help his old pal do it. If you have a minute, please sign this petition.

http://www.thepetitionsite.com/2/help-save-irelands-forests/

If you’re like me you’re probably quite cynical about petitions and their effectiveness, but it can’t hurt. Besides, right now there’s nothing we can do about this.

Tweecycle Thursday

Just sent a tweet around about Tweecycle Thursday, a spur of the moment event born out of the frustration with Freecycle. It’s a fine system, but it moves too slow for me and there just aren’t enough local people on it. Hopefully this will get a few more people interested. Here’s the deets:

Tomorrow (Thursday, January 6th, 2011) Anyone who has anything they want to give away in the Sligo area, advertise it on twitter!

Use the #SligoTweecycle hashtag and post what the item is. If someones interested, reply and you can swap contact details in your own time.

Simple. Lets hope it works!

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: , , , ,

Google Answers

Are piles the eight wonder?

Whoever asked number 5 is probably sitting at home all day asking google these things.

priorities…

I hope ALL of these questions are part of a job interview somewhere

Try and imagine one person asking all these questions in under a minute

So what have we learned from our Google Answers? It seems Google is most frequently used (in this country) by unemployed, bored women who are killing time between soaps by trying to get pregnant.

…and also idiots.

Tags: , ,