Avoiding the Chasm

April 11, 2010

A Step Too Far

Filed under: Software — Tags: , , — vextasy @ 10:14 pm

AppleLogoOver at www.knowing.net Larry O’Brien discusses the craziness of of Steve Jobs’ latest edict – namely the changes to the iPhone developers licence that says:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine,
and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link
to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Larry’s article is a good read and I wholeheartedly agree with what he has to say. In a funny kind of way I feel a sense of relief at this latest ridiculous declaration from Apple. I wanted so much to develop for the Apple platform that I purchased a book on Cocoa programming with a view to progressing to iPhone development. I started to read the Objective C tutorial but the stench of the 1980s was so  overwhelmingly strong that, try as I might, I couldn’t complete the chapter. No one voluntarily writes code like that these days do they?

So my next thought was to investigate ways of using F# or C# to sidestep the inevitable insanity that would have resulted from Spaghetti-C Objective-C but now Steve Jobs has put a stop to all of that. A number of interesting products exist. The two that jumped out at me were – MonoTouch and Unity. But both of these break the new commandment and so have, as things currently stand, been removed from my list of options.

For those developers who have already made the commitment to prostitute themselves for the financial gain that comes from writing for the iPhone platform this is probably no big deal. But, for every other developer out there who was considering investing in the platform the message is a very negative one, and one that I think Apple will pay for in 12 or 18 months time when they no longer have such a perceived lead in the mobile application market.

Developers are used to working to an API. We view it as the dividing line between the bits that we have to write and the bits that the system will do for us – a contract of sorts. Most platforms are keen to expose their APIs in as many languages as possible and the choice of language and supporting toolset is usually left to the developer – after all a good craftsman knows which is the best tool for a job. In general, as long as we satisfy the requirements of the API we can use whatever steps we like to get there. But not with Apple. in his post on the subject Greg Slepak likens Steve Jobs to “the ignorant boss” who knows nothing about programming but still insists that you use a particular tool and that is exactly how it feels.

There is a good reason why few, if any, other big platforms are using Objective-C as the application development language of choice and that is because things have moved on in the last twenty years. There are now much more reliable ways to write applications and all good developers know that. Not only do Apple insist on choosing the language for us but they also restrict our freedom to choose our own tools and these two things together really are a step to far.

So the decision has been made for me – I now feel like a great weight has been lifted from my shoulders and I look forward to the freedom I’m going to have with the Android and the forthcoming Microsoft Windows 7 mobile platforms.

Perhaps I won’t upgrade my iPhone when they announce the new models this year but instead look further afield. After all, Apple are still fretting about multitasking when Microsoft are applying themselves to addressing the problems of multithreading in F# – and let’s face it Microsoft will be the good guys soon.


April 7, 2008

My 10 Favourite (free) Windows Tools of all Time.

Filed under: Software — Tags: , , , , , , , , — vextasy @ 9:57 pm

Reading Ed Bott’s postings about his and his readers’ favourite Windows programs of all time I was surprised to note just how many of the programs on the list had an associated price tag rather than being free (as in beer). In particular, what attracted my attention was that had I been asked to guess which were free and which were not I would probably have failed miserably. For example, a text editor for $33, a note taking tool for $60 and a screen capture utility for $40, but a complete news aggregator for free.

I work, mostly, in a Microsoft environment and so the majority of my main software development tools for that platform are either purchased or licensed through an (expensive) subscription but, like most readers, I like to adorn that environment with utilities that make for a more agreeable working experience. Sometimes those utilities relate directly to work tasks and sometimes less so, but what I notice is that most often those utilities are free (or effectively so – more on this later).

I constructed a list of the utilities that I use on a regular basis at work and at home and very quickly the list grew well beyond 10 in size. As it doesn’t seem sensible to attempt to order them in any way (because such an ordering would make an assumption about your motives for having them in the first place) I leave them unordered. Likewise, as I don’t feel comfortable choosing my top ten, I describe more than that number here but the real list is much longer and growing.


TrueCrypt is disk encryption software which allows either an entire disk partition to be encrypted or else a virtual encrypted disk to be created from a file and then mounted as a Windows drive. The software is Open Source, well documented and thoroughly well thought out. I haven’t had the courage to get to encrypt a real partition yet but do use it to maintain a number of well protected virtual drives that I can mount when I need access to the documents that I store securely inside them. A drive can be mounted once the required password (or password and key file, or correct encryption keys) are provided and once mounted it can be used just like any other Windows drive. The contents of a TrueCrypt drive are never stored in their decrypted state on disk they are only ever held temporarily in RAM. TrueCrypt drives are a great place to store that collection of documents that you know should really be kept secure.


For software developers, like me, who were brought up in a Unix environment the lack of a real command line in the Windows environment can be stifling. Now I know (the awfully named PowerShell) is now available, but what made the Unix environment so complete was the rich set of commands that could be glued together with whichever variant of the Bourne shell was in vogue. Cygwin provides that same environment but hosted under Windows. The choice of programs is truly massive: editors, shells, compilers, interpreters, text and document processors, libraries, windowing systems. Most things GNUish can be found there courtesy of the GNU C compiler and friends too. Integration with Windows through the filesystem means that all of these tools can be used to process files and media residing on any Windows drive.

TimeSnapper TimeSnapper1

TimeSnapper quietly records your activity by taking snapshots of your computer screen at regular intervals through the day. The interval between snapshots can be configured to a given number of seconds and the recording is achieved without any noticeable pause or flicker. This is really handy on those days where you have moved from one task to another and have not been as meticulous about recording your exact timings as you should have been as it allows you to replay the day a snapshot at a time or to jump quickly to a particular time of day and see what you were working on at that point in time. You provide TimeSnapper with a folder it can use to store the snapshot images and chose the format (.png, .jpg, .gif, .wmf, .tiff, .bmp, .emf) and the resolution of the stored images as a percentage of the full screen resolution. TimeSnapper will also manage the archiving of the snapshots if you provide it with an age beyond which you wish it to delete old images or an upper limit to the amount of space you would like it to allocate to storage. Multiple displayed are handled too. This is a tool you can forget about until you need it, and then its a lifesaver.

Copernic Desktop Searchcds2-screenshot-all-big

Copernic Desktop Search is one the many similar search products but what I really like about this program is its intuitive interface. Of course, it is packed with all of the features you would expect from any such search tool and, of course, it indexes a myriad of document and media file formats inspecting meta data inside the files for rapid lookup. It also understands, and so can index, email and contact information from Outlook, Outlook Express, Eudora and Mozilla Thunderbird.

The using interface, rather than relying on a web browser as some search tools do, reacts dynamically as you type, homing-in on the information being sought. Indexing happens on-the-fly and only when the machine is not heavily loaded (and this is configurable). Copernic confirm on their web site that you can “Rest assured that the data indexed by CDS stays on your PC and on no account will it be transferred to us or any of our partners”. The licence only allows for non-commercial use. A separate licence exists for commercial application. That said, I know people for whom this has revolutionised the way they use their PC and I recommend this as a productivity tool.

Virtual CloneDrive virtualclonedrive

As a software developer I find that I am often presented with application software in ISO format. It is always a pain to have to burn a DVD just so that it can be mounted in a Windows drive and then discarded and probably never used again (probably never even labelled) once the installation has been completed. Most of my MSDN software arrives this way. SlySoft’s Virtual CloneDrive allows these images to be mounted directly from the ISO file on the file system. Several other formats are supported in addition to ISO.

MusicBrainz Picardpicard

If you have ripped your CD collection to MP3 or other digital format you will almost certainly have found errors in the track and album metadata that the music files contain or inconsistencies in the naming conventions used by each of the different people who have provided this information. MusicBrainz Picard comes to the rescue by applying the accumulated knowledge from the very well moderated MusicBrainz database. MusicBrainz is a community music metadatabase that attempts to create a comprehensive music information site and you can use the Picard tagger to automatically identify digital music and then tag it and to clean up the existing metadata tags in your digital music collection. I used Picard to correct the Windows Media Player created tags in my own music library when I ripped my entire CD collection to mp3 format and use it regularly each time I purchase music.

Pidgin logo.pidgin

Pidgin is a multi-protocol messaging client that handles a large number of instant messaging protocols: AIM, Bonjour, Gadu-Gadu, Google Talk, Groupwise, ICQ, IRC, MSN, MySpaceIM, QQ, SILC, SIMPLE, Sametime, XMPP, Yahoo!, Zephy. I can really only claim to have used the MSN and IRC protocols but the reason for turning to Pidgin was to allow me to communicate with my family members on MSN without having to endure advertisement hell. Pidgin supports away messages, typing indications and file transfer between clients.

Firebug firebug

If you are anything more than the most casual of Firefox users or if you create any kind of HTML content or even if you are simply interested in the structure of the HTML page that you are viewing in Firefox you should be interested in the Firebug extension to Firefox. Firebug integrates with Firefox to enable rich examination of a web page structure including:

  1. an interactive and graphical identification of the effect of individual sections of HTML on the resulting display going from both HTML to display and from display to HTML.
  2. an indication of the CSS rules, and the order in which they have been applied, that determine the final appearance of a screen element.
  3. the ability to change elements of the CSS or HTML source and immediately see the resulting effect on the display.

Firebug was written by one of the original Firefox developers and the slickness of the integration is evident. If I could only keep one Firefox extension it would be Firebug.


Its difficult to get to excited about a file archive tool, especially one that performs well is unobtrusive and just gets the job done. 7Zip is just that kind of tool, integrating well with the Windows explorer shell context menus but providing more functionality and better performance than the native Windows archiver (Compressed folders). When writing an archive, 7z, ZIP, GZIP, BZIP2 and TAR target formats are available and when reading an archive any of RAR, CAB, ISO, ARJ, LZH, CHM, MSI, WIM, Z, CPIO, RPM, DEB and NSIS formats are available. 7Zip can optionally apply AES-256 encryption when creating 7z and ZIP format archives.


Gimp, the GNU Image Manipulation Program, is as close as you will get to a tool like Photoshop or Paint Shop Pro without spending a lot of money. For most of the image related tasks that I need to perform it is overkill (by a long shot too) but if you are prepared to put some time into learning the basic techniques some impressive results can be obtained. There are quite a lot of helpful web sites within reach of Google that contain hints, tips and tutorials for those who make the effort. Also take a look at paint.net, a relative newcomer but receiving a lot of praise.


JungleDisk is a tool that puts a user-friendly front-end on top of Amazon’s S3 Storage Service. S3 enables inexpensive off-site storage of files up to 5GB in size to an unlimited capacity. Storage costs are of the order of $0.18 / month per GB with data transfer rates of between $0.10 and $0.20 per GB. JungleDisk itself is not free (in spite of my claim in the title of this post), it costs $20, but can be used on as many PCs as you like with the same Amazon S3 account. I include it here because compared to the cost and worry of on-site storage the combined cost of JungleDisk and Amazon S3 is effectively free, at least as far as I am concerned. JungleDisk can perform on-the-fly encryption of data as it travels from the PC to S3 and decryption on its return journey, it can make the S3 storage appear as a mapped local drive and it can perform scheduled backups from the PC to S3.

Launchy launchy_icon

Launchy is a smart search program which tries to guess which program you are looking for and will launch it with the minimum number of keypresses required to satisfactorily identify the desired program. It is designed to help you forget about your start menu, the icons on your desktop, and even your file manager.

This is a utility that I didn’t expect to survive my move from Windows XP to Windows Vista because at first glance it appears to provide much the same functionality that is now found with the search facility that is built into Vista’s Start Menu search box. Indeed, to begin with, I survived without it for a couple of months but then I began to miss the fact that Launchy is started with only a hot-key combination and requires no mouse movement or clicks. Launchy lurks in the background and responds to the Alt-spacebar key sequence by opening a small input field to accept keyboard input. On typing, Launchy searches its indexed list of known programs for the closest match, the search being refined with each additional keypress. When the desired program is identified a hit of the enter key is all that is required to launch the program.

Launchy can be customised to search specific locations for commands and to recognise additional files type, or to provide additional arguments or accept user supplied parameters to commands and it can also perform online searches with google, msn, yahoo, live, weather, amazon, wikipedia, dictionary, thesaurus, imdb, netflix, and msdn.


SharpReader is an RSS feed aggregator created by Luke Hutteman and is the only RSS reader that I have ever been completely comfortable with. The application is infrequently updated but (possibly as a result) runs without faulting and simply does the job well. In addition to allowing a collection of feeds to be browsed it also presents a stacked list of alerts up the right hand edge of the display whenever new items arrive. The lifetime of these alerts can be adjusted to allow just enough time to quickly scan them without them becoming too much of a distraction to the job in hand. At the time that I started using SharpReader the only other utility that I felt came anywhere close to it was FeedDemon. FeedDemon is now also a free product and I have been dual running it alongside SharpReader – the jury is out, but SharpReader still has the edge.


Vi was one of the first Unix visual text editors, taking its name from the two character command that switched its predecessor ex into a, so called, visual mode. Ex, in turn, is a descendent of ed which was written by Ken Thomson back in the 1960s as part of the Multics environment and contained one of the first implementations of regular expressions. Vim was created in 1991 for the Amiga computer as an extended version of the vi editor and gVim is the graphical variant of vim. The expressiveness of regular expressions combined with the rather terse but necessary and sufficient approach command driven editing that this family of editors supported went on to fuel many of the ideas in other important Unix commands, notably grep, sed and later awk (which you could argue was responsible for the creation of Perl). The lineage continues with Rob Pike’s sam and acme for the Plan 9 and Inferno operating systems.

You could argue that Vim is part of Cygwin which I have described elsewhere but I think it deserves to be singled out here if for no other reason than for the fact that on a Windows system it allows you to replace the hopeless notepad with something that at least allows you to perform some useful tasks and, if you are prepared to make the effort to learn its command syntax, become more productive too.

March 30, 2008


Filed under: Media, Software — Tags: , — vextasy @ 10:45 pm

MusicBrainz is a community-driven music meta-database. It is almost a Wikipedia of the music world. Content is maintained by a community in which changes have to be approved by a vote before they become permanently accepted into the database and a team of dedicated moderators oversee the whole thing. The words orderly and consistent spring to mind; emphasis is placed on consistency of style (by that I mean, for example, capitalisation and abbreviation conventions) and correctness. In return for their input, community members are rewarded with a great tool for maintaining their own music databases – the tags in their own music collection. The tool is called Picard and is free to download. In acknowledgement of the quality of the database MusicBrainz has now been licenced by an impressive list of customers including MusicIP, The British Broadcasting Corporation (BBC) and Last.fm.
MusicBrainz Logo
At some point during the Christmas holiday of 2005 I began the process of ripping my CD collection to allow it to be recalled and replayed in a more controlled manner and to reduce the amount of space that it occupied. I opted to make it visible on my home LAN using a combination of a Linksys NSLU2 (affectionately known as a SLUG) and a 250GB Buffalo DriveStation. The DriveStation is a USB hard drive and the Linksys bridges such a USB drive to an ethernet network. The Linksys will support two drives, although I’ve not needed to use both here.
The nice thing about the Linksys is that it runs Linux and can be customised to perform a number of task in addition to file serving. Both devices sit quietly tucked out of the way in an upstairs room and are directly connected to my wireless broadband router. The Linksys runs the ubiquitous (at least in the Unix world) Samba SMB file server which allows it to look just like a networked PC to other PCs on the home network. Files can be accessed from its drive(s), given the appropriate permission, as if they were on a PC but, of course, there is no fan noise or hot processor or display and so power consumption is at a minimum. The beauty of this arrangement is that they can be left running and so are always available.

I used Windows Media Player to rip the, roughly, 5,700 tracks from CD to mp3 format. Media Player makes a great attempt to tag the mp3 files correctly but for an irritatingly large number of tracks the information is either incorrect or inconsistent. This is where MusicBrainz comes to the rescue. Specifically, MusicBrainz Picard, their free and open source, cross-platform music file tagger.

Picard uses the MusicBrainz database to correctly and consistently tag mp3, wav, vorbis, flac, mpc, mp4 and wma format files. If asked to identify a music CD it will recognise the artist and release based on an analysis of the content of the CD which it uses to construct a unique disc-id which can be compared to known disc-ids in the MusicBrains database (at the time of writing there are approximately 228,000 such known disc-ids). Alternatively, Picard can recognise individual music files by a form of audio fingerprinting and makes a special effort to associate clusters of music files with a particular release or album. If neither of these techniques succeed the GUI allows manual associations to be made with the correct titles from the database.

Once associations have been made, Picard displays the tag information currently stored in the music file alongside the suggested information (from the MusicBrainz database) together with an indication of closeness of fit and allows (selective) correcting of the tags in the music file. Plugins to Picard allow you to pull down cover art of incorporate genre information from Last.fm but I haven’t tried either of these.

Reading Ian Dixon and Ed Bott’s postings on how they organise their music collections made me realise just how many different ways there are to achieve the same outcome. Where I think the MusicBrainz tools score is in the quality of the database that sits behind them.

January 14, 2006

Thirty Years of Sharing

Filed under: Media, Software — vextasy @ 2:05 pm

The January 2006 edition of Dr Dobbs journal runs an article entitled Dr Dobb’s Journal @ 30 in which Michael Swaine tells the history of the development of the magazine from its birth in early 1976 as Dr. Dobb’s Journal of Computer Calisthenics & Orthodontia to its current form. The magazine was conceived at the point in time where the prospect of building or owning a personal computer became a financial reality for many hobbyists and the excitement that accompanied it was easy to sample.

A number of hardware vendors began turning out microcomputer kits which consisted of:

  • A simple CPU, such as Intel’s new microprocessor chip developed for the calculator market.
  • A storage device which might be a fixed or floppy disk, a magnetic or paper tape or more commonly a cassette recorder.
  • Some form of I/O device which, given a suitable interface, might be a teletype or even a keyboard and display but other times was little more than a set of dip switches and lights.

The concern among the hardware vendors was that people would not find an application for the hardware and so the marketers of the time declared that their use was “limited only by your imagination”.

In common with other electronic and computing magazines of the late 1970s and early 1980s, the journal retained a hands-on hobbyist feel even as more and more business application began to fill the non-editorial and classified pages. The emphasis was on sharing information to further extend the boundaries of what could be achieved on a limited budget – the journal even published a 4K BASIC language implementation in hex to key into the Altair.

In the 1980s, magazines commonly published listings as part of an article or in an appendix. When the computer games craze began, it was common to return from the newsagent with a fresh copy of a favourite computing magazine and begin the process of keying in pages of BASIC listing in the hope of playing what most modern teenagers today wouldn’t recognise as a game. Often the listing would contain a printing error and the following edition of the magazine would print the corrections required to make the game run.

Over the decades the journal published volumes of source code, ranging from byte-saving coding tricks for the 8080, Steve Wozniak’s floating-point routines for the 6502, Lawrence Livermore Labs BASIC, John Starkweather’s PILOT, implementations of PASCAL and FORTH, the full source code for an 8080 kernel, a portable screen-oriented editor and, very importantly, two C compilers and the beginnings of a toolset in C. All of these tools were freely available for the use of its readers.

Almost thirty years ago Jim Warren, the incumbent editor, wrote:

It is this open sharing that particularly delights me…We must all do what we can to encourage it. The sharing of ideas…allows us to stand on one another’s shoulders, instead of standing on one another’s feet…So continue to share your ideas, and continue to share your excitement.

Create a free website or blog at WordPress.com.