Archive for the ‘My Own Software’ Category

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 full release notes are available here where you can pore over all the other bug fixes and new features. Oh, and 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.

You can read the full release notes here but 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.

John’s Background Switcher 3 Released

I’ve had the weight of John’s Background Switcher 3 on my shoulders for the last 6 months or so and I’m glad to finally say it’s done, it’s out there and now I can have a rest from it all! In my opinion it’s vastly superior to all previous versions and has some really cool features including being able to create montage images and choose from lots of photos sources on Flickr, Phanfare, Yahoo! or your local computer. I’ve put a great deal of thought into each feature and it’s implementation and never compromised my initial design goal which was to “keep it simple”.

Make your wallpaper interesting!With John's Background Switcher

One of the things people probably don’t realise when you develop software in your free time is just how much work it is and how much it can take over your life. JBS consists of over 30,000 lines of code and for version 3 I completed over 130 pieces of work ranging from 5 minute bug fixes to multi-day new features. Since I have a day job and a private life, I’m only left with evenings and weekends doing this work which means it’s slow progress compared to working full time on it. It has meant many late nights staring at a computer screen having spent all day at work doing exactly the same thing.

I’m not complaining though - I really enjoy working on it and love getting emails from people saying how great they think JBS is and how much they’re enjoying using it. I don’t charge money for using it because it’s a labour of love and to try to make money out of it would sour the experience somewhat for me. Also, I use the software myself so at the end of the day I’m really writing it for me and can therefore make it exactly the way I want it!

A few weeks ago I still had a long list of things I wanted to put in JBS 3 but I was starting to realise that without a release date in mind I’d potentially be working on it forever. I also knew that the number of people uninstalling JBS 2.5 who filled out the uninstall feedback form that comes up were asking for features I’d already implemented in 3.0. So I decided I wanted to release 3.0 by the first week of April and cut features accordingly from my list.

With this goal in mind I worked a few late nights and weekends to get it done - I even dedicated a full 4-day bank holiday weekend to it! I updated the documentation and tentatively put the final version up live waiting for things to go wrong. JBS checks for a new version every 4 days (unless you turn that option off) which is handy as it means that rather than everyone updating at the same time, it takes a few days for it to happen. This means if some critical bug suddenly turns up I can fix it and put up a new version before too many people have downloaded it. I had to do this twice with 2.5 and expected to do the same this time. Except it hasn’t happened.

If JBS crashes it gives you the option to send in a crash report and that gets directly fed into my defect tracking software. I can then figure out what caused the problem, get the frequency of crashes and decide if I need to roll out a new version. Thus far I haven’t had a single crash report for version 3. I know it works as during beta testing I had many crashes crop up but frankly I’m amazed I’ve not heard anything live. I’ve also not had anyone emailing me about problems which again is very surprising. Hopefully I’m not just experiencing the calm before the storm!

A great deal of credit must go to the people mad enough to have joined in the beta testing of JBS. I can’t thank them enough as I’d quite often be releasing new betas every day or so and to have people other than me testing them out and giving me feedback is priceless. When you test your own software you tend to look at it through rose tinted spectacles and only test it in the way you designed it. Other people will naturally use it in a completely different way and do things you wouldn’t think of and this sort of testing massively cuts down on the number of potential problems you’ll hit. So thanks to you all! :-)

Anyway, if you’re on a Windows computer and you’re sick of your boring, static background, then you owe it to yourself to go and install John’s Background Switcher! Oh, the release notes are here. Now, I’m going to go and relax away from a computer screen for quite some time!

I Also Convert Images

Just to prove I don’t spend my spare time only working on John’s Background Switcher, I’ve just released a new version of the cleverly named John’s Image Converter. It’s a simple, one-dialog application that’s sole purpose in life is to resize pictures - which can be quite handy if you want to resize a large photo for use on the net and you’re too impatient for Photoshop, Windows Paint or whatever else to fire up.

John's Image Converter

New in version 1.1 is improved image quality (I’m reusing some of the code from JBS to this end) and the ability to rotate the picture as you convert (you can see from the thumbnail if it needs rotating or not). For me it’s a handy little tool as it saves me a lot of hassle and time. Next I’ll add folder conversion and maybe some sort of cropping…

John’s Background Switcher 2.5 Released

After what seems like quite a long time, I've finally finished up the latest version of John's Background Switcher. Over the past few months I've implemented 98 features, enhancements and bug fixes. At last I'm greeted by this picture in my bug tracking software:

John's Background Switcher 2.5 - All Done!

Of course, there's plenty still on The List, but I had to draw the line somewhere, put out a new version and have a break before embarking on the mighty road to 3.0.

All along I've wanted to keep JBS a simple application and avoid the sort of feature-creep that often turns neat, snappy applications into unwieldy monsters that are nearly impossible for the beginner to figure out. It's been a constant battle to put in cool new features without compromising simplicity and ease of use. While it may not look a whole lot different to previous versions I can assure you that a lot of design work's gone into making the user interface stay intuitive while adding a lot of new pieces of functionality. Oh yeah, and I sort of cheated by adding a 'More Settings' dialog that contains a boat load of customisations as requested by the people who use it.

I must thank the people who were crazy enough to help beta test this version and provide me with a hell of a lot of valuable feedback. While I couldn't get everything asked for in to this version, they're all on The List and will get there eventually. Thanks again! :-)

If I were to pick my favourite 3 new features in this version I'd choose these:

  • Mosaic mode - instead of setting a single picture as your background, it goes and downloads a selection of thumbnails and generates a mosaic and sets that as your background - very cool.
  • Explore from the last 7 days - you can now select from the most interesting photos uploaded to Flickr from the last 7 days - excellent pictures guaranteed.
  • Send to del.icio.us - if you see a cool photo on your background from Flickr, you can quickly add it to your del.icio.us bookmarks for later viewing!

The full release notes are here, and the download page is here. Have fun! Now, I'm off for a well-deserved cup of coffee…

Update: Well, a couple of annoying bugs appeared (why do they never show up in testing?) so I thought I'd quickly release a new version with those fixes in. You can do a 'Check For Updates Now' and follow the instructions or just go to the download page and get the installer. D'Oh!

Aren’t Mosaics Lovely?

I'm rapidly approaching the finish line for John's Background Switcher 2.5 and am getting quite pleased with what I've done. Progress had initially been slow as I just didn't have enough free time to dedicate to it but lately I've been on a roll. One of the cool things I've just implemented is Mosaic mode. I've seen this feature around and decided to put it into JBS. In short, it lets you automatically create backgrounds on your PC using whatever search criteria you like from Flickr like this (which is interesting photos from the last 7 days):

A Flickr Mosaic from John's Background Switcher

Instead of downloading one photo and setting it as your background, it downloads a load of thumbnails from Flickr and builds up a mosaic image. Other implementations of this sort of functionality I've seen are pretty inefficient as they download one thumbnail at a time, thereby taking an eternity to build the picture. So I've spent a good bit of effort making it fast and smart to the point where it takes around 45 seconds to generate the picture you see above and makes as few calls to Flickr's servers as possible.

It's fun writing clever multithreaded, caching thumbnail downloading code, but it's much more fun to use the resulting mosaic functionality to build up a picture of cat portraits or guinea pigs! In a couple of weeks you'll be able to do it too!