Following on from my post yesterday with three examples of using Automator to create Services, and some good suggestions in the comments, I spent some time this afternoon making the script in the third of those examples a little more efficient, and a lot more robust.

The Service I optimised was the one to strip keywords from image files. This Service assumes that both Growl and EXIFTool are installed, and that you’re running OS X 10.6 Snow Leopard or later.

Read more

Tagged with:

Automator IconSome Apple haters just love to say that there is nothing to a Mac except for flashy marketing. There are a million different reasons that’s BS, but one in particular is ease of automation. The learning curve to start automating your Mac is very short and very gentle. Without ever seeing a single line of code you can add your own custom functionality to OS X to relieve you of your most boring repetitive tasks. If you can tolerate seeing a line or two of code, you can take things even further and tie Unix command line tools straight into your GUI. The best candidates for automation are simple repetitive tasks that you do often. You might only save 30 seconds each time, but if do that 10 times a day that soon adds up! In this post I just want to give three simple examples to whet your appetite and hopefully get you thinking about some simple tasks in your computing life that you could easily automate.

Read more

Tagged with:

Apple have added in a few lines of extra language to their Developer Agreement for the latest version of their iPhone SDK. You can read the exact wording changes on Daring Fireball, but the effect of the language is that you have to use Apple’s XCode development environment to compile all your code. This has had the effect of killing some unsupported means of making iPhone apps, most notably MonoTouch and Adobe’s about-to-be-released iPhone Flash bundler in CS5. My initial reaction was very negative (ask my Twitter followers), but that was purely an emotional response because Apple didn’t give us any reason for this change. Because Apple didn’t explain themselves, we were left to come up with our own explanations, and the first few that came to my mind were none too positive. Ultimately, I greatly dislike Objective C, so I was pissed off at the alternatives getting the chop. But, slowly, a different story is emerging. I still haven’t heard anything official from Apple, but I think I understand what’s going on, and it changes my opinions significantly.

Read more

Tagged with:

Since I first started using OS X at version 10.3 I’ve always felt that the services menu had great potential but badly needed some fit and polish to make it actually live up to that promise. It has been so bad that it is basically forgotten, and almost no one remebers that it even exists. In every application in OS X there is a menu item under the apps’s main menu (the one in bold with the same name as the app) called Services, that’s what I’m talking about. When it comes to the services menu both Tiger and Leopard were major disappointments because they didn’t bring any real improvement to the neglected services menu. SnowLeopard on the other hand is a totally different story. Similarly, when Automator first came out I thought it had great promise, but that it was a very 1.0 kind of offering, again, in need of some fit and polish to allow it live up to its obvious potential. SnowLeopard provides a lot of that fit and polish, and really brings Automator forward significantly. And what’s better, Apple have combined the fit and finish in these two apparently unrelated products together, to provide some exceptionally powerful functionality.

Read more

Tagged with:

Just a very short follow-on post related to my last iPhone post. First, we have the bad, a diary by a developers showing just how arduous the process is here. The key quote is his conclusion:

Development for iPhone is an incredibly difficult process, much more difficult than it needs to be. The arduous process of shipping an application for the Mac suddenly appears to be absolutely straightforward after going through this mess. I really don’t envy those companies who have staked their success to the iPhone platform. The amount of arbitrary hassle, uncertainty, and delay in the process can only feel vastly worse when your livelihood depends on it.

Secondly, the other side of the coin, why the hassle is worth persisting with, there’s money in them there hills!

[tags]iPhone, Apple, development[/tags]

Tagged with:

When Apple announced the app store I was a little nervous, but I could see the positive side and was prepared to believe that Apple would be good gate-keepers. It soon because clear I was too optimistic. I was already annoyed with Apple when they started to impose their taste on the world by banning joke apps they didn’t approve of like Slasher and Pull my Finger. Myself and Allison had a big argument about it a little over a month ago on NosillaCast Episode 164. Allison felt that Apple should be allowed to choose what to sell in their store, and she has a point, however, when you block all other options and make yourself the sole distributor of software for an entire platform it’s not wise to go all Victorian with your policies. Obviously Apple CAN block what ever they want, I just think they shouldn’t because it’s bad for users, bad for developers, bad for the platform, and hence, bad for Apple. My solution was simple, have a rating system. If you think something is rude or in poor taste give it an explicit rating! At that stage we were just talking about matters of taste, this week things have taken a very different turn and Apple have moved on from Victorian prudishness to anti-competitive and anti-use practices. They have denied a better podcatcher access to the store because it competes with Apple software. Granted, Apple use the word “duplicate”, but it comes to the same thing in my mind, if you’re not allowed to duplicate any functionality Apple implement then you’re not allowed to compete and that’s bad. To be honest I’m shocked Apple were so blatant about this. When you start creating monopolies for yourself and then banning competition it’s hardly a massive leap to jump to “anti-trust”.

[tags]Apple, iPhone, iPod Touch, App Store, developers[/tags]

Read more

Tagged with:

Update (18 June 2012) – A more up-to-date version of these scripts can now be found here.

My Myers Briggs personality profile insists that I “prefer economy of effort”, you can probably translate that to “is a lazy sod”. Because of this I like automating repetitive tasks. It all started when I wanted a quick and easy way to prepare my images for posting to my website. I wanted them resized with my URL and the Creative Commons icon added in, and I wanted to be able to process a whole directory of images in one go. I started by playing around with the GD libs in PHP, but soon realised it would be quicker and easier to use Perl to shell out to the command line tools from Image Magick. At the time I wrote a post on my choice to do this which also contained the initial code. That code has been expanded and evolved since, and now includes functions for rendering nice (in my opinion) borders and titles on my better images. If you want to see examples checkout the Photo of the Week category on this blog..

[tags]Perl, Image Magick, script, programming, image processing[/tags]

Read more

Tagged with:

I’ve blogged about how great sorttable is before. I use it a lot in work and people love it. However, because of the way sort-table works normally it won’t work with tables that are not in the document when the onload event for the document triggers. What does that mean in real terms? It means that if you use AJAX to render a table it won’t be sortable even if you include the sorttable.js file and set the class of the table to sortable. A quick scan of the source code showed me the answer, you have to manually call the function sorttable.makesortable() passing it the table you just got back from AJAX. The simplest way to do this is to give your table an ID and then use:

sorttable.makesortable(document.getElementById('the_table_id'));

Tagged with:

This week Microsoft are providing a great practical illustration of one of the fundamental flaws in the whole idea of DRM. When you buy DRMed content you don’t really own it because your ability to play it is dependent on third parties who can cut you off at any time. Showing a fantastic flare for irony Microsoft are pulling the plug on their MSN music licensing servers hence removing people’s ability to play music sold under Microsoft’s PlaysForSure DRM scheme. At the end of August the plugs will be pulled leaving people in limbo. Any licenses they will have already downloaded by then will continue to work. However, the next time any of these poor unfortunate customers buy a new computer or have to re-install their OS they will loose the ability to play the music they payed for and thought they owned.

Personally I hope this gets a lot of publicity so that it drives the dangers of DRM home to people. The more educated people are about DRM the more pressure there will come on the music industry to drop it for once and for all.

More in this Wired article.

[tags]RDM, PlaysForSure, Microsoft[/tags]

As February goes on we get closer and closer to the promised iPhone SDK. Before that happens I want to get my predictions down, just in case I’m right 🙂 For a start I expect we’ll get the announcement very late in the month, probably the week of the 28th. When that announcement comes it will not be what I think most people are expecting, a single SDK, it will be two. A very free and open API for developing Widget-like apps, and a very tightly controlled API for truly native apps. I also expect the apps to be distributed through the iTunes store, in the same way the software update for the iPod Touch was last month.

Read more

Tagged with:

« go backkeep looking »