This page shows the source for this entry, with WebCore formatting language tags and attributes highlighted.


Apapter: software that works


<img attachment="screen_shot_2015-01-06_at_18.51.20.png" align="right" caption="The main UI, with a batch process in-progress">I have a reputation for complaining about software all the time. I feel justified in doing so because most software is disappointing bordering on hateful. I was a proud member and contributor to <a href="">Hates Software</a> for years.<fn> Therefore, when the opportunity presents itself to laud a piece of software, I feel that it's my solemn duty to do so. Introducing <a href="">Adapter</a> for OS X and Windows. It converts images, audio and video files from one format to another. That is, it puts a lovely UI on top of the at-times fiddly command-line of FFmpeg. It's free and does exactly what is advertised. It did not try to install any spyware. It was intuitive to use. It went about its work converting WMV files to MP3 over the span of 16 hours without complaint and without slowdown. <img attachment="screen_shot_2015-01-06_at_18.51.29.png" align="left" caption="Close-up of a batch process in-progress">The UI nicely shows which conversions and filters will be applied for the input files and the output type you've selected. Low-quality files are automatically up-sampled, as you can see in the screenshots. If you need audio/video/image conversion on Windows or OS X, this is your one-stop shop. Even the web site is lovely and useful. I almost don't know how to formulate "like" for software. I hope I've done it justice. <hr> <ft>As for software-hate, I'll include just a couple of samples I found while digging around in my mail archives. There's this one in Re: HP Photosmart Studio (and co-conspirators) (August 2008): <bq>I thank you both for the update; I myself haven't installed the HP software in years and am happy to be able to strike a potential HP scanner upgrade from my list of things to do without reservation. I have an HP Scanner now, attached to a Windows 2000 machine that is turned on almost exclusively for that purpose [1] and the aforementioned several years ago, I installed the over 100MB scanner software package to my poor Mac. In a word? Horrifying. The proverbial straw for me was when the processor was pegged and I couldn't find the offending application until I turned on "view processes from all users" in the Activity Monitor and saw that something with the letters "HP" in it was burbling away on the *guest* account, which was logged in, but had lain dormant for over a week. With a suicidal curiosity, I switched to the guest account and saw a message-box-like window floating in the middle of the desktop announcing ... nothing. No text in it. No close button either. Nothing for it but shooting down HP processes like clay pigeons, which was atavistically satisfying. Un. In. Stall. It. [1] That and the Ciclosport bike-computer software, which, though having plenty of grippy edges to which gobs of hate could be attached, redeems itself slightly by (A) having truly hilarious direct translations from the German UI to the English one and (B) actually accomplishing the tasks that it advertises, though in at times quite circuitous ways not necessarily unrelated to (A).</bq> This one was in Re: Windows File Protection (March 2009): <bq>Microsoft has a penchant for reporting errors in a very general manner. In their .NET framework, there's this class called a KeyedCollection that complains when you add an item with a key that is already in the collection. When it does so, it fails entirely to mention which key caused the collision. Probably some genius thought that, since KeyedCollection is fully generic and allows all manner of objects to be the key, it was best to err on the side of safety and not even *try* to resolve the value of the it by applying the ubiquitous ToString() method. It is entirely possible that, with an arbitrary class as the key, that this would result in gobbledygook instead of something useful, which would tarnish the koan-like simplicity of the current error message. In the acknowledgedly rare case that the key is a string, this would work, but who would possibly use simple strings as key values? With the "as few virtual methods as possible" policy found throughout that framework, you're stuck with either (A) a useless log entry from the customer installation or (B) combing the stack while debugging to figure out which string was actually used as a key. So, yeah, "DIE IN A FIRE" sums it up nicely.</bq> And finally, a more general comment that showed up in re: GNU diff (from January 2011): <bq>That's the thing about hating software: is the thing you hate about it hateful enough that it makes you stop using it or do you just adjust and move on? For some, the ability to be able to quickly and easily back out foolhardy commits is more important than adjusting developer workflow to stop making said commits. If you were using git, you'd be able to do this kind of commit-editing up until the point when you should stop, but git's not going to tell you when to stop (after you've pushed said commits to a repository from which others have pulled). I guess that makes git horrible too, in a way, but if you have to/want to keep using git, you'll just adjust your workflow and move on.</bq></ft>