All Posts Filed in ‘My Own Software


Windows 7 And The Future Of John’s Background Switcher


John's Background SwitcherI read with interest that the next version of Windows will, at long last, feature a built in background switcher – called a “desktop slideshow”. You might think that since I wrote a pretty decent background switcher that I’d be gutted and cursing the name Microsoft but quite the opposite is the case. The reason I wrote John’s Background Switcher in the first place was that I wanted to be able to change the background on my computer periodically and every time a new version of Windows has come out I’ve been looking out for two things:

  • Better (i.e. some) multiple monitor support.
  • An automatic desktop background changer built in.

Finally with the release of a Windows 7 beta, at least one of those two features has been implemented (and it’s the latter). I’ve been half-hoping Microsoft would do this for a while now even if it meant the end of JBS. This isn’t from laziness but much though I love developing it and the community of users that’s built up around it, I have lots of other ideas and only limited free time to work on them. Currently most of that free time is taken up with JBS to the detriment of anything else I could be working on. Having said that I’d be hard pushed to produce anything as successful as JBS (except the planned Mac version perhaps) so if I can keep it alive I’m not exactly going to complain!

I downloaded the first beta of Windows 7 to take a look at this potential JBS-killing feature and having played around with it it’s pretty clear that it doesn’t actually replace JBS at all, but instead nicely complements it. Windows 7 expands the dialog that lets you set your background so that instead of choosing one picture you can choose a selection of them and how frequently you’d like the background to be changed, you then leave it to it:

Windows 7 Desktop Slideshow Options

I saw on some pre-beta screenshots that there was an option to use RSS feeds as a photo source (just like JBS does) but see that feature missing from the current beta. If they do ship with RSS support then that would be extremely cool (and lessen the appeal of JBS slightly) but if not then that’s fine with me. So if you want to change your background periodically using specific pictures on your computer then the built-in Windows 7 desktop slideshow is for you – there’s no point installing JBS. However before I stop developing JBS and resolve all the outstanding tasks as “will never implement” I can see several reasons why I’ll keep working on JBS.

First is multiple monitor support. When I started developing JBS very few people used multiple monitors but today a surprisingly large percentage of users do. The Windows 7 desktop slideshow doesn’t appear to let you do things like have different pictures on different monitors or span one across all. That may change when they ship but considering Microsoft’s complete lack of useful multiple monitor support in the past it wouldn’t surprise me if things remain as they are. JBS lets you have different pictures on different monitors or stretch across all and in the next version I’m planning some even better multiple monitor options.

Next is tight integration with web-based sites like Flickr, Picasa, Facebook, Phanfare and others. Even if Windows 7 supports RSS feeds it’ll still be a bit tricky to choose from all your friends photos on Flickr (including private ones), or the most interesting pictures over the last 7 days, or your private photos on Picasas web albums and so forth. So for avid users of these photo sites (like myself), JBS will still do a better job than the built in desktop slideshow.

Next is choice and variation. The current version of JBS and to a far greater extent the next version can let you choose background pictures from multiple sources – some local folders, some sets from several photo sites, some RSS feeds and search results. If you like randomness or have a bunch of accounts on different sites you want to pull photos from then reverting to the built-in switcher will lose you that flexibility. Also, if you want to use pictures from a folder on your machine then with the built-in desktop slideshow you’ll have to keep telling it about new ones you add to that folder before they’ll turn up on your desktop – JBS on the other hand can just monitor folders for you and work things out itself.

And last but not least the montages and post-processing effects JBS has to offer appear not to have a place in the Windows 7 switcher. Being able to create a snapshot scrapbook or mosaic of photos across multiple monitors is pretty cool and one of the better ideas I had for JBS:

A Montage Of JBS Montages

All in all I’m really glad to see that a background switcher will be built into the next version of Windows 7 – it’s something long overdue. And I’m also glad to see that there’s plenty of scope for me to keep building functionality into JBS and improving it without feeling like I’m wasting my time – there’s clearly still a place for JBS. Heck, there may even be a way to hook the cool functionality JBS has directly into the built-in desktop slideshow so that Windows 7 users can have the best of both worlds.

The Windows 7 desktop slideshow is, like a lot of the new functionality Microsoft has added, a straight clone of what’s available on the Mac. And despite the fact that Macs have had automatic background switching built in for years it hasn’t stopped a lot of people requesting I write a Mac version of JBS (a request I’ll finally be fulfilling soon) so I don’t expect people wanting to run JBS on Windows when they upgrade to 7 to stop either.


LOLCats, DeviantArt, Zooomr, ipernity, photobucket And More On Your Desktop With John’s Background Switcher 3.6


John’s Background Switcher has long supported photo sites like Flickr, smugmug, Phanfare and Picasa Web Albums and even Facebook a couple of versions ago – but they were never enough. I’d regularly have people on my forum or emailing me directly asking to support myriad other photo sites and I’d dutifully add them onto my to-do list. More often than not the sites wouldn’t have any sort of developer API I could use to extract photos and my frustration would grow.

All that changed with the wonder of Media RSS. This is a common feed format that, without getting boring and technical, means that if added support to JBS for it, I’d suddenly be able to support a whole host of photo sites without any more work. And with version 3.6 that’s exactly what I’ve done.

RSS Feed IconTake DeviantArt for example. If you browse through the site you’ll notice that on pretty much every page – be it a category page or a person’s photo page, there’s a link near the bottom that looks like the icon to the right (albeit somewhat smaller). That’s the feed link. Click on it and you’ll see what the feed version of that page looks like – in most browsers it’s not very interesting. But if you copy that address and paste it into the ‘Add Feed’ dialog in JBS then you’ll be able to see those photos on your desktop.

The RSS Add Feeds Dialog

Or take a site like LOLCats (which I love). My good lady thinks I’m insane but it always makes me laugh. Anyway, there’s a big orange feed icon right at the top of the page. Copy that URL into JBS and your desktop can look like this!

A LOLCats Desktop

You can use as many feeds as you like at the same time and JBS will choose photos from all of them. So you’ll be able to mix your Zooomr photos with LOLCats, attractive women on DeviantArt, photobucket photos, featured photos from Webshots (for some reason only the featured feeds are Media RSS, user feeds aren’t) and so on. Just look out for the orange feed icon!

JBS 3.6 has been tested with a host of sites but if you find one that you think should work but doesn’t, then let me know and I’ll try to support it in the next version. Bear in mind that not all sites provide enough information in their feeds for JBS to use properly (FriendFeed being one that springs to mind – come on guys, put the photo page URLs in your media:group’s!) but hopefully in time I’ll be able to support them too.

I’ve also added a bunch of highly requested features such as ‘Shuffle mode’ for folders, a ‘Never Show Again’ option so that if a picture comes up that you don’t like it’ll never appear again, a workaround for problems in Windows where your monitors get displayed the wrong way round, some useful defaults for first-time users, options to explicitly set your own snapshot scrapbook background and a host of bug fixes.

Anyway, you can download the latest version at the John’s Background Switcher page. It’s free, it’s fun and, eh, did I say it was free?!


John’s Image Converter 2


John's Image ConverterI’ve spent the past couple of years putting a lot of work into John’s Background Switcher but neglecting another utility I wrote called John’s Image Converter. I originally created it to provide a quick way to scale down photos for emailing and using on my website. I had some cool ideas to make it a lot more useful but never seemed to sit down and implement them.

I finally had a few spare days and evenings, put a bit of work in and am now ready to launch John’s Image Converter 2. The sales pitch goes something like this…

“Have you ever needed to quickly shrink down a photo so that it’s small enough to email to a friend? Or wanted to take a folder full of holiday pictures and resize them all at once? Or maybe you’ve seen the snapshot scrapbooks that John’s Background Switcher creates and wanted to make one from photos of your children but don’t want to change your background? Well the unimaginatively named John’s Image Converter is the answer to all of the above and more!”

One of the things people have asked for time and again was a way to convert a whole folder full of images – maybe you’ve got a bunch of photos from your fancy 10 megapixel camera and want to send them scaled-down to your friends. That would mean sending an email with 200MB of attachments or tediously resizing them one at a time. Now you just fire up John’s Image Converter, pick the folder of photos, create a new folder where you want to scale them to and set the maximum size (or percentage to resize them), click ‘Convert’ and you’re done:

Folder Mode

I also thought to myself that it would be quite cool to re-use the work I did in JBS to produce montage images (like snapshot scrapbooks and photo mosaics) so that you can create your own montages without having to use John’s Background Switcher (heck, maybe you just like having the same background all the time!). Now you can:

Montage Mode

Anyway, John’s Image Converter is completely free so you’ve got nothing to lose by giving it a try. You can download it here!


John’s Background Switcher 3.5 Released!


A typical crash from reporting to fixingI always make a habit of fixing all known show-stopping bugs in JBS (especially crashes) before I release a new version as invariably the longer you leave these things the worse they get. So when I released version 3.4 I  patted myself on the back thinking “this is the most solid release yet”. No sooner did I think that than I found a bug in the newly implemented Facebook code that I decided to fix immediately and release (hoping nobody would notice).

I started work on version 4 and then a number of crashes came in (when JBS crashes it lets you send in a crash report that gets sent to me so I can see what went wrong – see right – it’s invaluable). There weren’t a great deal of crashes, but what was interesting was that mostly they were not for the version I’d released but from older versions people were still using – and they were crashes that hadn’t happened before. None of them happened more than 10 times so compared to the number of JBS users out there they’re pretty infrequent – but nevertheless they ticked me off.

So I decided before really getting into version 4 I’d do a bug fix release and call it 3.5 (in the meantime a few bugs did come in for 3.4 so it became well worth doing). One of the other things that’s become clear is that some first-time users can’t work out how to use JBS. Once I explain to them that you pick where your photos are stored, then define which ones to use, then a lightbulb goes off in the head and they understand. So I’ve written a short ‘Quick Start Guide’ which appears in the knowledge base and in the JBS help file. Hopefully that’ll stop me repeating myself and explaining how to use JBS!

Anyway, I’d recommend any current JBS user upgrades to the latest version so go and download John’s Background Switcher.


John’s Background Switcher 3.4 Released!


Following quite a lot of late nights and a fair bit of work I’m ready to unleash a new version of John’s Background Switcher on the world! This latest version contains a host of bug fixes along with some cool new features. My favourites include:

  • Facebook mode – your friends photos on your desktop!
  • Customisable montage options like ‘Postcard’ mode.
  • User-settable picture sizes in montage modes.
  • Auto border colour selection based on the colour of the picture.
  • Portrait-only picture selection in addition to landscape-only.
  • The settings are shown if you re-launch JBS from a shortcut.
  • The calendar can be shown on all screens, not just the primary one.
  • Choose photos from all photo sources instead of just one.
  • The fixing of the mysterious GDI+ error once and for all!

Since a picture paints a thousand words I’ve put together some screenshots that show what’s new in John’s Background Switcher 3.4. Click a picture to see the description and click on it again to go to the next one. When you’ve done, go and download the latest version:

The download page is here. Enjoy!


Snapshot Scrapbook Postcard Mode


Despite being ridiculously busy lately I’ve managed to find some time to work on my beloved John’s Background Switcher. I was originally going to leave it for a bit then over the Summer work on version 4 with some wholesale changes and major improvements. Then I had a few ideas and started fixing bugs and implementing some of these ideas and thought I may as well spend a few weeks putting together an interim release (which I’ll call 3.4). I’ve been working on features like this effect:

Postcards On Your Desktop From JBS

[Originals t-l to b-r: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]

One of the coolest features of the previous version was Snapshot Scrapbook mode that made your desktop look like you’d thrown a bunch of Polaroid snaps onto it. I’ve built on this by adding the option to change the size of each snap (meaning you can get more on your screen – which is much better it turns out). I’ve also added a new option I’ll call ‘Postcard’ mode – which you can see above (this one’s a selection of ‘Interesting’ photos from Flickr over the last 7 days). I think you’ll agree it’s a pretty slick effect and again you can change the size of each photo to decide how many photos you want on each screen. While I may not be getting the time to go out and take landscape photos just now, at least I’m able to write some software that lets me appreciate other people’s!

In a week or two (if you’re a Windows user – I promise one of these days I’ll write a Mac version) – you’ll be able to do the same!


John’s Background Switcher 3.3 Released


John’s Background SwitcherMuch to my own surprise the last version of JBS I released was probably the most stable release I’ve done. This is particularly surprising when I consider the amount of work I put into it and the 100+ cool new features I implemented like the much lauded Snapshot Scrapbook mode.

Put bluntly, despite all the beta testing that was done on 3.2, I expected more crashes! There were, however, a few that cropped up and were worth fixing. So before ploughing onto the big new features for 4.0 I decided to create a release that fixed all the bugs that had cropped up as well as adding a few new features while I had the chance. And so version 3.3 was born.

The new features include:

  • I’ve added support for the new version of Phanfare – the popular photo and video sharing site.
  • I’ve finally sorted out authentication with Flickr. If you authorise JBS with Flickr then previously if you chose from ‘My Photos’ (i.e. your photos) then you’d be able to choose your background from your own private photos, but the authentication wouldn’t work if you chose photos from one of your friends – you wouldn’t see their friend-only photos. Now, if you authenticate JBS with Flickr, then ALL calls to Flickr will be authenticated. So if you’re a member of a private group and choose photos from that group, then you’ll be able to use them for your background. Better late than never eh?
  • Leading on from Flickr authentication, if you choose photos from multiple photo sets – maybe some tagged ‘fish’, some tagged ‘cats’ and some tagged ‘hamster’ – then previously when you switched backgrounds photos would be chosen from ONE of those sets. Now photos are chosen from ALL sets so if you use Snapshot Scrapbook mode then you’ll get pictures of fish, cats and hamsters – rather than all fish, all cats or all hamsters.
  • I’ve added an option to let you run a command after every switch of the background (look in ‘More Settings’ > ‘Switching’). This is handy if you run JBS in a corporate environment and like to have something like BgInfo overlay network information for support purposes.

There are also a bag full of bug fixes. So if you’re using the current version of JBS then you owe it to yourself to download the latest one. You can get it from the usual place. Oh, and in case you’re wondering, this is what a Snapshot Scrapbook of photos of fish, cats and hamsters can look like:

A snapshot scrapbook of fish, cats and hamsters

(Source photos: Ci-Ci & PB | Red Fish in a pond | I’m from Mars… | fishy fishy fishy | Solitude | Ohh look down there… | Huh? | It feels so good to be a kitten | _MG_0438 | Octopus).

Note that you can use the ‘Picture Browser’ in JBS to find the originals from any of the montage modes (which is what I did).


John’s Background Switcher 3.2 Goes Live!


John’s Background SwitcherAs my good lady will tell you, most of my evenings and weekends over the past couple of months have been taken up working on the next version of John’s Background Switcher and at long last I’ve drawn a line under it and released it. You can download it at the usual place.

I’ve really enjoyed working on this version for several reasons. Firstly – as I mentioned before – I’ve been using FogBugz to its full potential to manage the development process, the specifications, every piece of work I’ve done, emails to and from users with suggestions or problems, and the discussion forum functionality to manage beta testing. FogBugz is a joy to work with, has made my life infinitely easier and the quality of this version of JBS has been helped greatly by it.

I also took the opportunity to redesign the program icon (you can see the full sized Vista version at the start of this article) which was rather fun. I used a program called RealWorld Icon Editor which made it easy to create a full 3D model of the icon and export it to the various formats I needed. If I had more time I’d have designed all the menu icons using it too but since I didn’t I opted to use some of the graphics created by Mark James in his superb silk icon set. And they’re free too! 🙂

I’ve fixed loads of bugs and added a host of new features along with as many requests as I could do without compromising the simplicity of JBS. I wrote about my favourite new feature – snapshot scrapbooks – the other day but there are plenty more things in there that make it a lot better. I also added two new photo sources in addition to Flickr and Phanfare – namely smugmug and Google Picasa web albums. As an aside, I particularly like smugmug and suspect I’ll start using it to manage my own photos instead of Flickr.

I spent a lot of time speeding things up. For example the number of people using multiple monitors continues to grow, and if you’re using snapshot scrapbook mode you could end up with around 10 pictures on each screen, so 20 or 30 in total. If all these photos haven’t been downloaded already (and therefore cached) then that could take quite a while – so it goes without saying that they need to be downloaded asynchronously and now they are across all modes. High memory consumption was also an issue with the previous version and I’ve put a lot of work in reducing that problem.

I now digitally sign the application itself as well as the uninstaller (in addition to the installer which I signed in the previous version). This may not mean a lot to most people, but Windows Vista prefers digitally signed apps (for one thing) and it also means that you can be sure that when you install JBS it hasn’t been tampered with by evil forces.

I’d like to take the opportunity to thank the people who helped me by beta testing JBS and providing me with lots of bug reports and very useful feedback. I know you’ve got far more interesting things to do than find bugs in JBS but I really appreciate the help. So thanks guys! It’s made my task a hell of a lot easier knowing that a lot of issues I’d never have found are now fixed so everybody else gets the benefit.

Anyway, there’s a host of cool new features in the new version of JBS so go and give it a try. It’s completely free and if you don’t like it, just uninstall it and it’ll remove every trace of itself from your computer. You can’t lose! 🙂


A Snapshot Scrapbook Of Your Photos


I’m just putting the finishing touches to the new version of John’s Background Switcher (due out in a week or so) and I thought I’d write about one of the cool features I’ve come up with for this version. I’d seen the idea of a photo pile in screen-savers before and thought it would be pretty slick to add it as an option to the mosaic and montage modes the current version supports. A picture paints a thousand words so this is what I came up with:

A Snapshot Scrapbook

I’ll admit right now that I didn’t come up with the name ‘snapshot scrapbook’ – that honour goes to John Topley. I’m rubbish at coming up with catchy names (example: John’s Background Switcher) but luckily John isn’t! Anyway, what it does it use the photos you’ve chosen, creates a bunch of snapshots and throws them onto your desktop background in a sort of pseudo-random fashion. The cool thing is that you can choose these photos from your own computer or from a variety of web photo sharing sites including Flickr, Phanfare, smugmug and picasa web albums.

It’s one of these things that as soon as I got the code working and ran it for real the first thought in my head was “Wow!”. My friend Ian pointed it at a collection of photos of his newborn son and to see the pride on his face as an assortment of photos of his smiling son filled his screen warmed my heart. A snapshot scrapbook is cool, but when it’s of your own photos, photos of your loved ones or photos of your favourite animals (cats for example), it becomes something much more. You can judge for yourself in a week or so when it goes live.

From a coding perspective it was quite an interesting challenge actually creating the snapshot scrapbook. If you want it to look random then it’s no use actually laying them out truly randomly – more often than not you end up with half the photos directly on top of each other which looks rubbish. Then there’s the spacing. You want them to be pretty close to each other, sometimes overlapping, but not by too much – and you want them close to the edge of the screen, but not too close. Next you want them at different angles, but not too much of an angle (you don’t want half of them upside down) or all at the same angle. Then there’s how many photos to put on the screen – different people have different resolutions so it has to look right on every possible computer. It’s all a bit hand wavey really but I managed to create an algorithm that seems to do the job nicely. As is usually the case with algorithms, once it’s written it’s only a few lines of code and looks pretty simple – although it was rather tricky to write (you’ll have to trust me on that one)!


My Very Own Digital Signature


One of the effects of User Account Control on Windows Vista is that whenever you run a software installer you are asked to confirm if you really want to run it and if you agree, you are either elevated to the mighty powers of an Administrator or you’re asked to enter the credentials of one. The idea behind this is to make sure that you don’t accidentally install something dodgy or some evil software doesn’t manage to install itself without you knowing about it.

It can be quite annoying although it is a useful measure against spyware and malware. However, when launching my installer for John’s Background Switcher I would get this rather scary dialog:

Unidentified Publisher Warning

Windows Vista cares a lot more about digital signatures than previous versions of Windows. To obtain a digital certificate to sign your software you have to go through an authorisation process to verifiably identify your company or yourself. If you’re a malware author you’re not likely to get a digital certificate because it costs money, you’d have to identify yourself to an issuing authority and as soon as you’re reported for making malware your certificate would be revoked. So if the installer you run is digitally signed with a valid certificate Windows Vista can be pretty sure it’s not likely to be evil software that’ll take over your computer. In this case it presents a much prettier dialog that’s far less likely to scare any normal user into cancelling. And there’s no orange in sight.

For this reason (and because I thought it would be cool) I decided to stump up a bit of cash and buy my own digital certificate in my name (since I don’t have my own company). After sending a copy of my passport to the issuing authority I can now sign any software I create so that it’s uniquely identified as coming from me. So now when you run my installer you’re shown this:

JBS Installer Signed Warning

It’s a far friendlier dialog and I hope that people being presented with it are much less suspicious that my software has some evil, ulterior motive. Also, if someone tampers with my installer, the signature will become invalid and Windows will complain.

It’s a bit of a pain having to pay for a digital certificate to stop Windows from scaring off potential users but I guess that’s thanks to all those dodgy malware authors out there exploiting the formerly trusting nature of Windows. Grrrr.