ImageMagick (convert)

From ImageMagick®:

ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript, SVG, and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), Lua, NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.

Although the user interfaces for ImageMagick are rather clunky compared with other image editing tools, there are time when it is very useful to have its command line capabilities to manipulate an image or sets of images - such as command-line driven batch processing - and this is where ImageMagick really shines. It can sometimes offer a quick command-line rescue for a task that another tool can't handle.

It is sometimes simply known as convert, because that's the best known of the command line commandsit offers.

It is also handy to have programming language interfaces to it, so that, for example, images can be manipulated on-the-fly on a web server in the PHP language.

The easiest way to install it on Mac OS X is as a MacPort:

sudo port install ImageMagick

UNIX shell scripting languages


Dr Darren has used UNIX and various UNIX shell scripting languages since about 1985.

OPEN FEEDBACK: Expose Spaces: poor comparison with the KDE window manager and other windowing issues

This page contains, describes, or reports suspected ERROR(S) in content, a specification, or a tool !

Ever become really frustrated with a computer application or tool you feel could have much better designed features ? Well Mac OS X 'Spaces' (the virtual desktop regions aspect of Expose Spaces) is surely a candidate as far as I'm concerned..

Ever been tired and grumpy working still late at night, and sent a frustrated email prematurely to technical support to complain about a computer application you don't like, instead of waiting until the next morning to read of all the instructions calmly and trying things out again first before complaining so much ? Well this email from me (Dr Darren) below is surely one of those.

However, to make amends, here is a demonstration of how breaking complicated technical texts down into sentences and hyperlinking them to analysis (in the spirit of Dr Darren's UML™ Parsing Analysis recipe) can help make a bad thing good. Or at least better.

Besides. Spaces could indeed be much, much easier to use (and it's morning, and I have been reading the instructions).

I'll be demonstrating this live as I work on other things, because I'm starting to use Spaces (again) as I work, but it keeps distracting me, and I end up reading the help pages again and again, which makes it really hard to do real work. I've included some [moderating remarks] in [brackets] and I've indicated thus. Crucial sentences are hyperlinked to detailed analysis and images from: Gallery: snapshots of aspects of KDE3.5 window manager widgets

Please note following also the list of other ISSUES I've identified with Spaces !

Technical support feedback letter roughly as sent to Apple on 13 May 2009

Hi Apple,

After many years using mostly Linux with KDE I switched last year to Mac OS X on a MacBook Pro.

The one thing I've found hardest to adapt to is the way windows are organised on Mac OS X, and Expose Spaces does not help much [yes it does, although it could be much better]. I find KDE Window Manager approach is far superior [and it is] because of at least the following:

1. It should be possible to allocate a specific _window_ from an application to a given space, not the entire application's window set at once ! It should be possible to allocate a specific _window_ from an application to a given space, not the entire application's window set at once ! This is because one main use of such windows spaces is to organise them by project: 1=development, 2=finance, 3=client, 4=personal. Now each of these projects could use 0 or more windows from any number of applications. Especially when organising browser windows - which might provide materials relevant to these different projects - it is particularly annoying to have the window change space !

In KDE it is much easier: one can easily assign (by selecting a _named_ space from a button on the window bar) a given window to any space .. (or to all as "sticky", which you do have in Spaces), and many windows from 1 application can be allocated to different spaces.

If this is possible in Spaces please forgive my critique and let me know how.

2. In KDE when one pulls up the window list one gets a nice VERTICAL 2-level tree with the 1st level a selectable Space _name_, and the 2nd level it the specific window selection list .. with the names of those windows that are allocated to them (with the application of each window clear from an icon, or optionally in appended text, one could use "WindowTitle [Application]"

3. In KDE one can name each space, typically by project, as shown [explained] above.

The cognitive reason this [refers to 1. above] is so important is that while I am working on one project I don't want to be constantly reminded of other topics (alarms excepted), it distracts too much, I find it quite stressy. Especially if one has to look through a list of WindowTitles that are hetereogeneous (to find a window related to the current project, let's say Java coding), it is annoying to have to read about banking, personal stuff, or arbitrary web pages from some search.

4. The horizontal icon-based AppleKey+Tab equivalent is also better in KDE, because it only lists those window within a given space (and those that are sticky), so you stay within the zone.

5. When one clicks once an icon for a Space [shoud say ALT_TAB] in KDE, it gives a selectable list of all windows in that space, with an indicator of whether it is open or not [in (brackets) and greyed out a bit. One does get a passive list of windows per desktop on when hovering over a button for a desktop in the KDE panel mini-pager].

I am really surprised at the lack of these very basic features in Spaces, after only a few seconds working on real projects with Spaces you can see that the current system can't be really useful (unless one is always working with one type of application per project), especially given the number of really good window managers already out there; a little bit more R&D first might have helped.

I would like to say that Spaces is better than nothing, but in fact it is more annoying than just plowing through the full window list in most cases for my work,, except for 'accounts' which I do with MYOB, but even then it jumps spaces whenever I want to switch to an online banking page, which I then have to find in a window list of sometimes 100 !

So please as soon as possible:

1. ERROR: Ability to allocate a Window (not a whole Application) to a Space (or better instructions on how to if already present)..

2. WISH: A vertical Window list with some sub-structure by (named) Space.

3. WISH: Named Spaces, at least as an option or on hover over a Space icon. We have enough to remember already thanks

4. The horizontal icon-based AppleKey+Tab equivalent is also better in KDE, because it only lists those window within a given space (and those that are sticky), so you stay within the zone.

5. WISH: Nested selectable list of Windows (with Application indicator icon) currently allocated to a given space when clicking on the Spaces toolbar icon. . [Or if already possible, please explain how.]

This would save me and your many users lots of stress and save use a huge amount of time. [Which is why I invested a whole day preparing this OPEN LETTER with detailed feedback and examples of features.]

I was told Apple works with customer's feedback and really responds; well I'm a recent Mac convert, please turn me into a Mac evangelist by delivering on this one in an Expose & Spaces upgrade in way that offers an upgrade path for at least Mac OS X Leopard still (so that I can benefit from this feedback).


Darren Kelly (Bondi, Sydney, Australia)

PS: Can somebody please tell me how to really maximise (not just enlarge) a window to fit the entire screen in one click on any window ? Put me out of my misery after one year of pain.

Web Browsers: usage, compatibility, stats, relative popularity, experiences, opinions

A Webel IT zone with some info on web browsers for web developers.

Dr Darren hereby requests that Microsoft should start actively compensating all web developers for the time they have to waste on Microsoft-specific compatibility issues and bugs, especially those regarding the most-dreaded "Internet Exploder" ! BTW: Bill of Microsoft is richer than Dr Darren of Webel.

2014-02-15 Update: Thankfully, other browsers like Firefox (with its impressive set of plugins, extensions and development tools) have grown in popularity, and Google Chrome in particular has now completely overtaken the Internet Exploder in desktop/laptop web browser usage popularity. Even if IE was previously used a lot as a necessary evil, it was never very "popular" with web developers.

It is difficult to measure usage accurately, and there are lots of sites that claim to have done it (and lots of arguments about it). Certainly one of the best summaries is on Wikipedia: Usage share of web browsers, which places Google Chrome at around 40% for desktops/laptops. The current order of popularity (for desktops) seems to be:

Chrome > Internet Exploder > Firefox > Safari > Opera

with Firefox usage very close to IE usage, and Chrome now well in front. Due to iPhone and iPad, Apple's WebKit-based Safari does quite well on mobile and tablet usage stats - not least because iOS won't let you set other mobile browsers like Chrome for iOS as the default web browser on iOS devices.

The StatsCounter Global stats gives the Top 5 Desktop, Tablet, and Console Browsers for Jan 2014 as:

Chrome (43.67%) > Internet Exploder (22.85%) > Firefox (18.9%) > Safari (9.63%) > Opera (1.3%)

If one considers that Google Chrome (although initially WebKit layout engine based like Apple's Safari, then Blink layout engine based, not Gecko-based like Firefox) initially largely used several hired Firefox developers, and counting Chrome and Firefox together as the "cross-platform" alternative browsers, one sees that Internet Exploder is in fact not very popular, even on MS Windows. And what extremely good news that is for any web developer working with W3C standards.

Another interesting source is W3counter browser stats, which has slightly different values but the same relative order of browser popularity.

The W3school: browser stats has links to stats pages for each browser, with breakdowns by browser version:

It is extremely pleasing to note that older IE6 and IE7 versions of the Internet Exploder that had simply appalling support for major Cascading Style Sheet (CSS) developments are nearly dying out completely with less than 1% legacy usage combined.

W3school puts Chrome (apparently using their own W3School log files) as of Jan 2014 massively ahead on 55.7%, with Firefox next on 26.9%, and Internet Exploder down to 10.2%, whereas most other stats sources put IE usage around 20%. This might just mean that people who use Chrome and Firefox are more interesting in learning about things (are smarter) than people who use Internet Exploder.

Comparing them, and why Chrome is my current winner

As a Drupal™ CMS developer I often run 4 different browsers in parallel: for example:

- Chrome for the Drupal 'admin' role (the equivalent of superuser).

- Firefox for the authorised 'author' role (and with access to the unbeatable Firebug for web page element inspection and CSS work).

- Safari for plain 'authenticated' role testing (logged in, but no special rights).

- Opera for 'anonymous' role (as the WWW public, not logged in, see a site).

This gives me quite a chance to compare them running on exactly the same web pages. And - apart from the better range of plugins, extensions, and web development tools available for Firefox - Google Chrome is now my clear favourite in terms of stability and performance:

The fact is that, at least on Mac OS X, Firefox 27.01 is still an extreme memory hog at times, and is far more likely to freeze up for no clear reason during general web browsing than Chrome. And Safari is no angel either (see below about it's new insistence on reloading every tab when it has trouble with just one tab).

Because Chrome uses different processes for different windows, at least if it is having trouble with a bad page I can find the corresponding process and kill it without having to restart my entire session (although it does pollute the process list of course). From Wikipedia: Google Chrome:

'A multi-process architecture is implemented in Chrome where, by default, a separate process is allocated to each site instance and plugin. This procedure is termed process isolation, and it prevents tasks from interfering with each other, raising security and stability. An attacker successfully gaining access to one application gains access to no others, and failure in one instance results in a Sad Tab screen of death, similar to the well-known Sad Mac, but only one tab crashes instead of the whole application. This strategy exacts a fixed per-process cost up front, but results in less memory bloat overall as fragmentation is confined to each instance and no longer needs further memory allocations. This architecture is being adopted in upcoming versions of Safari and Firefox'

With my bold emphasis above, and it's very good news, because Firefox and Safari (especially) have caused me a lot of headaches with process management.

Similarly good in Chrome is:

'Chrome includes a process management utility called Task Manager which lets users see what sites and plugins are using the most memory, downloading the most bytes and overusing the CPU and provides the ability to terminate them.'

One interesting development is that all of Google Chrome, Safari, and Opera (Dragonfly) now offer web development tools (XHTML element, DOM, CSS style, and JavaScript inspector/experiment systems) that are quite decent even when compared with the mighty Firebug from Firefox.

Some things I don't like so much about Chrome

'The Omnibox is a URL box that combines the functions of both the address bar and search box'.

I prefer them separate, and I wish they would have an option or plugin to make them separate.

'When a user starts typing in the Omnibox, Chrome provides suggestions for previously visited sites (based on the URL or in-page text), popular websites (not necessarily visited before — powered by Google Instant), and popular searches. Although Instant can be turned off, suggestions based on previously visited sites cannot be turned off.'

Surely the last thing that any IT Consultant who uses their machine for professional presentations involving live web applications and live web sites on a data projector wants is hints about "popular sites" involving Lady Gaga, Justin Bieber, or Pamela you-know-who appearing by accident in a URL address bar or Omnibox ! I recommend you switch "Google Instant" OFF under the preferences as soon as possible; it has never made a suggestion I needed anyway.

I've had a really good look through the extensions from Google Chrome, and I really don't think they compare yet (as far as the needs of a web developer or web author are concerned) with the better of the Firefox extensions. For example, Chrome offers a number of quite inefficient, slow, ugly, and clunky tab management plugins that are not nearly as useful as the simple, quick Firefox Tabs Menu that 'Adds a Tabs menu to the main menu bar, allowing you to easily change to a different tab'.

I used to use Safari a lot, until they "improved" it

Quite simply, it stopped working many times each day; so I mostly stopped using it.

Safari recently introduced a completely mind-numbingly stupid desire ("feature") to reload every single tab of every single window when it has trouble with a single web page; this has rendered it almost completely unusable for professional web development, and whoever at Apple came up with the idea should be sacked, fined, shot, or all three at once. The problem is described here by Rob Pegoraro:

'Sometimes Safari offers a warning, in the form of one of the most annoying dialogs Apple has ever shipped: "Webpages are not responding. To visit the selected webpage, all webpages in other tabs and windows must be force reloaded. Do you want to visit this page?" Then you're stuck in a hostage situation: You can only click the "Cancel" button, then do something else on your Mac until Safari cools down.'

Or stop work, and get a cup of coffee until Safari cools down.

It used to be a good browser, and the developers should ask themselves why (since approx. Mac OS X Lion or Mountain Lion) their Safari browser has the need to do this ridiculous thing when no other web browser does. There is no excuse, it is, plain and simple, an idiotic change.

There may however be a rescue as described here: How to stop Safari 5.1 from unexpectedly reloading pages.

Update: I tried the fix, and it seems to work, but the instructions for Safari 5.1 needed to be adapted for Safari 6.1.1. This part works, in a terminal, with Safari closed, run:
$ defaults write IncludeInternalDebugMenu 1

Then on running Safari a Debug menu appears, but instead of choosing 'disable “Use Multi-process Windows”' you choose Use Per-Tab Web Processes:

But that DEBUG mode trick does not excuse shipping the browser by default with such an incredibly annoying, time-wasting, painful behaviour that was clearly not tested in the real world on a regular Mac.

How to pretend you have every version of Internet Exploder

If you are a Mac-based web developer you will be constantly exposed to the annoyance that something that works on all other browsers on all platforms suddenly does not work on version whatever of Internet Exploder (or it explodes) used by somebody else on MS Windows. Even it you run over to your Granny's house to use her Windows laptop, you won't be able to check your site on every version.

That's where the free cross-platform cross-version cross-browser checking services come in. One of the best free online ones is:

- Browser Shots: handles Linux, Windows, Mac OS X, BSD operating systems and all versions of all major browsers (as well as some others like Konqueror from KDE and even the command-line Lynx).

On iOS vs Android web browser usage

I have been for many years a Mac OS X and iOS person (and many years ago I was a Linux person), with MacBook Pro, MacMini, an iPhone and an iPad. The following links comparing iOS and Android usage are offered only for completeness.

The StatsCounter Global stats gives the Top 9 Mobile Browsers for Jan 2014 as:

Android (27%) > iPhone (21.38%) > Opera (14.61%) > UC Browser (11.57%) > Chrome (8.59%) > Nokia (6.17%) > Blackberry (2.58%) > NetFront (2.23%) > iPod Touch (1.28%)

But I am not sure what they mean by 'iPhone' as a mobile browser, presumably they mean Safari.

There is an interesting article by Jason Grigsby (August 1, 2012) Explaining the iOS and Android mobile browser usage disparity, which places the mobile web browser share order based on traffic as roughly:

Mobile Safari (60%) > Android WebKit (23%) > Microsoft Mobile Explorer > Opera Mini (4%) > Blackberry.

(I am not sure when the Chrome mobile versions were released, but of course they would change these figures quite a bit; I use Chrome for iOS on iPad and iPhone a lot.)

The point he makes is that this is when iOS and Android device ownership was neck-a-neck, so it seems iOS users (with Safari as default browser) are using their smartphones more for web browsing than Android users.

There's a very similar analysis from Dec 2012 iOS still spanking Android in total web traffic despite Android’s leading market share which gives (without mobile browser breakdown):

iOS (67%) > Android (33%)

'We’ve all seen the stats, Android is outgrowing iOS by a ridiculous number, something like for every 4 smartphones shipped, 3 of those are running Android (albeit, Gingerbread — but that’s neither here, nor there). More recently, a study by Gartner showed that Android tablets reached 44% of the market last quarter, just 11% under iPad’s share. There’s no question — there are a lot of Android devices out there.

So, can somebody please tell me why this new data from Chitika is showing that iOS web traffic is almost double that of Android’s ... I guess the simple explanation would be that iOS users really like surfing the web on their tablets.'

And they do.

A final nod to KDE's Konqueror and KHTML

Many years ago, around 1996, I became interested for while in the KDE desktop project for Linux (and also ran it on Solaris). From Wikipedia: Konqueror:

'Konqueror is a free and open-source web browser and file manager that provides file viewer functionality for file systems such as local files, files on a remote FTP server and files in a disk image. It is a core part of the KDE Software Compilation. Konqueror is developed by volunteers and can run on most Unix-like operating systems and on Windows systems.'

It has nice a tabbed document interface (which for example Finder for Mac has only just now introduced with Mac OS X Mavericks, nearly 20 years later), very nice split pane views (which one can get on Mac with the excellent Forklift), and the completely transparent interaction with the local file system (including quick tree views of the folder system) and remote web resources all in one place was a very nice way to work.

It gave rise via KHTML to the WebKit layout/render engine that now powers Safari and initially powered Google Chrome (until it was forked Blink).

Although I now work almost exclusively on Mac OS X, not Linux, and I don't use Konqueror any more, I miss some of its features, and I think the Konqueror team deserves a special mention for their diligent efforts.


For many years Linux (RedHat then OpenSuse) was the primary operating system for my Webel consultancy, and Linux was crucial to my work with many scientific institutes and software engineering clients. Thankyou Linus et al !

Although I now work mostly under Mac OS X, I often still use Linux.

GNOME desktop environment

The content or the technology discussed here is HISTORICAL or ARCHIVAL

While I have used GNOME often under Linux and have at times been thankful for some of the applications, I far prefer the K Desktop Enviroment (KDE) when working under UNIX systems.

K Desktop Enviroment (KDE)

I first used KDE in about 1997/1998 (when I managed to compile KDE1.0beta on Solaris at Deutsches Elektronen Synchrotron (DESY)), and have used it often since on Linux systems. I followed the early KDE development mailing lists, and have done some Qt development under KDE. KDE definitely made machines running Linux far more comfortable to use.

(I now work mostly under Mac OS X, without KDE.)


I have used UNIX for well over 20 years (showing my age there), including variants such as: Linux, Mac OS X, Sun Solaris, SGI IRIX, HP-UX, IBM AIX, BSD and the UNIX-like Domain-OS, (given in no particular order of preference).

Comedi control and measurement interface

I used the COMEDI data acquisition library in C for polling of streams of accelerometer signals from a data acquisition card in some versions of the DranceWare control software for The Drancing accelerometer music "air instrument" (in combination with Java Native Interface (JNI) for bringing acquired signals into a Java GUI).

Syndicate content