bluem.net: News and beyondhttps://www.bluem.net/Carsten Blümhttps://www.bluem.net/img/logo-atom.pnghttps://www.bluem.net/favicon.ico2018-02-18T08:04:07+01:00Tree 2.0 releasedhttps://www.bluem.net/83192018-02-08T20:50:16+01:002018-02-08T20:50:16+01:00<div class="container wysiwyg"><p>A few days ago, I released version 2.0 of <code>bluem/tree</code>, a PHP library for handling data that is structured hierarchically using parent ID references. Notable additions include:</p>
<ul><li>Added method <code>Tree::rebuildWithData()</code> to rebuild the tree with new data.</li>
<li><code>Tree</code> and <code>Tree\Node</code> implement <code>JsonSerializable</code>&nbsp;with a sensible default implementation, which means that you can easily serialize the whole tree oder nodes to JSON.</li>
<li>The tree data no longer has to be an array, but instead it must be an <code>iterable</code>, which means that you can either pass in an array or an object implementing the <code>Traversable</code> interface. Similarly, the data for a node no longer has to be an array, but can also be an object implementing the <code>Iterator</code> interface. These changes should make working with the library more flexible.</li>
</ul><p>As a few deprecated methods were removed and the minimum PHP version raised to 7.0, this version is not backward compatible – hence the major version number change.</p>
<ul><li><a href="/en/projects/tree/">Tree homepage</a></li>
<li><a href="https://github.com/BlueM/Tree#20-2018-02-04" target="_blank">Changes in 2.0 release</a></li>
</ul></div>Cliclick 4 Beta 2 releasedhttps://www.bluem.net/82352017-10-25T21:15:34+02:002017-10-25T21:15:34+02:00<div class="container wysiwyg"><p>After the <a href="/en/news-and-beyond/cliclick-4-beta/">release of cliclick 4 Beta 1</a>, I got some feedback from a few people who tested it and seemed a bit upset due to the new “natural” mouse movement. As, on the other hand, there was no positive feedback on it (which might mean nobody likes it, but over the years I learned that users are very reluctant to give feedback, especially when they have nothing to complain about), I decided to leave the default behaviour as is. This means you can get easing / “natural” movement by using a new switch <code>-e</code>, which can be used to control the speed of movement. Example:</p>
<p><code>cliclick -e 500 m:100,200 m:300,800 m:700,200</code></p>
<p>This should result in a pretty slow movement. Reduce the value 500 to speed things up or increase it to make it even slower.</p>
<ul><li><a href="/en/projects/cliclick/">cliclick homepage</a></li>
<li><a href="/files/cliclick/cliclick-4b2.dmg" target="_blank">Direct download link</a></li>
</ul></div>Ofaco 1.13 releasedhttps://www.bluem.net/82332017-10-21T09:03:55+02:002017-10-21T09:03:55+02:00<div class="container wysiwyg"><p>Version 1.13 of Ofaco, released a few minutes ago, adds compatibility with mac 10.13, also known as “High Sierra”. (Note aside: time will tell&nbsp;if “High Sierra” also implies “High quality” – that would be a refreshing surprise given how the last major releases of macOS felt like …)</p>
<ul><li><a href="/en/projects/ofaco/">Ofaco homepage</a></li>
<li><a href="/files/Ofaco.dmg" target="_blank">Direct download link</a></li>
</ul></div>Cliclick 4 Beta releasedhttps://www.bluem.net/82222017-05-10T23:06:35+02:002017-05-10T23:06:35+02:00<div class="container wysiwyg"><p>Usually I do not publish beta version of my Mac applications, but this time I break with&nbsp;old habits. Although there is not much new in what might become cliclick 4, there is some potential for incompatibility compared to cliclick 3.</p>
<p>So – what has changed since 3.3, the last release? Well … not too much ;-)</p>
<p>There is one new feature, which is <strong>right-clicking</strong>, which can be invoked using command <code>rc</code> (for instance: <code>cliclick rc:123,456</code> for clicking at point with x position 123 and y position 456).</p>
<p>But the main reason why this beta exists, is: <strong>timing</strong>. On the one hand, I increased some delays, which all in all makes actions <strong>slower</strong>, thus (hopefully) reducing the need to use the “wait” (<code>w</code>) command. On the other hand, I implemented more <strong>“natural” movements</strong>, which will result in the mouse not suddenly move from a point to another, but to be moved with easing (slow start, then faster, then again slower) and with varying speed, where the speed depends on the distance.<br/>
Together, these timing-related changes could break existing scripts or use cases, and that is why (according to <a href="http://semver.org/" target="_blank">Semantic Versioning</a>) these changes should cause the next release to be a new major release, i.e.: version 4.<br/>
If you try this version and observe anything not working which worked with version 3, please let me know or open an <a href="https://github.com/BlueM/cliclick/issues" target="_blank">issue on cliclick project at GitHub</a>.</p>
<p>Finally, with this release, I plan to drop support for Mac OS X 10.6, which is another reason to increase the major version number.</p>
<p>So, if you are interested, <a href="/files/cliclick/cliclick-4b1.dmg" target="_blank">download the beta</a> and play around with it.</p></div>Ofaco 1.12.4 releasedhttps://www.bluem.net/82172017-03-29T21:41:39+02:002017-03-29T21:41:39+02:00<div class="container wysiwyg"><p>The usual procedure applies again: a new release of macOS (or OS X or Mac OS X, or whatever Apple currently calls its desktop OS) is shipped and, due to a resulting incompability, a new release of Ofaco follows.</p>
<p>In this case, it’s macOS 10.12.4 and Ofaco 1.12.4. Enjoy.</p>
<ul><li><a href="/en/projects/ofaco/">Ofaco homepage</a></li>
<li><a href="/files/Ofaco.dmg" target="_blank">Direct download link</a></li>
</ul></div>Ofaco 1.12.2 & Python 3 support for Pashuahttps://www.bluem.net/82132016-12-21T23:13:52+01:002016-12-21T23:13:52+01:00<div class="container wysiwyg"><p>Once more, a&nbsp;new macOS version required an Ofaco update, and so here is&nbsp;Ofaco 1.12.2. The only thing changed is the compatibility with macOS 10.12.2.</p>
<ul><li><a href="/en/projects/ofaco/">Ofaco homepage</a></li>
<li><a href="/files/Ofaco.dmg" target="_blank">Direct download link</a></li>
</ul><h2>Python 3 support&nbsp;for Pashua binding</h2>
<p>Mentioning the Ofaco update, I realized that I had forgotten to post an update regarding the <a href="https://github.com/BlueM/Pashua-Binding-Python" target="_blank">Python binding</a> for <a href="/en/projects/pashua/">Pashua</a>. Thanks to a contribution by <a href="https://github.com/alexwlchan" target="_blank">Alex Chan</a>, the code&nbsp;now performs equally well with Python 2 and Python 3.</p></div>Ofaco 1.12.1 releasedhttps://www.bluem.net/82112016-11-14T08:01:17+01:002016-11-14T08:01:17+01:00<div class="container wysiwyg"><p>Ofaco 1.12.1 is available for <a href="/files/Ofaco.dmg" target="_blank">download</a>. As (almost) usual, it does not bring any new features or bugfixes, but instead merely adds compatibility with the latest macOS&nbsp;release, in this case macOS 10.12.1.</p>
<ul><li><a href="/en/projects/ofaco/">Ofaco homepage</a></li>
<li><a href="/files/Ofaco.dmg" target="_blank">Direct download link</a></li>
</ul></div>cliclick 3.3 releasedhttps://www.bluem.net/82092016-11-12T19:13:58+01:002016-11-12T19:13:58+01:00<div class="container wysiwyg"><p>Version 3.3 of cliclick was just released. This is the changelist:</p>
<ul><li>Add support for numpad keys when using the “keypress” (<code>kp</code>) action</li>
<li>Support reading commands from stdin (use<code> -</code> [a dash] as filename with <code>-f</code> option)</li>
<li>Change donation switch from <code>-d</code> to <code>-n</code> to avoid ambiguity</li>
<li>Fix handling of absolute negative coordinates</li>
</ul><p>It may take a day or two until this version is available via&nbsp;MacPorts. It may take more time until you can get this version via Homebrew, as I will no longer update the Homebrew formula&nbsp;for cliclick. I don’t use Homebrew (never have) and only started contributing the cliclick formula due to demand by users. Updating a formula&nbsp;takes less than five minutes if you use Homebrew on a regular basis, but if you do it maybe every 12 or 18 months (like I did), it feels cumbersome (at least for me), especially when things change in Homebrew. And this is why the cliclick formula from now on needs another maintainer. So if you are reading this and would like to take it over: go ahead.</p>
<ul><li><a href="/en/projects/cliclick/">cliclick homepage</a></li>
<li><a href="/files/cliclick.dmg" target="_blank">Direct download link</a></li>
<li><a href="https://github.com/BlueM/cliclick" target="_blank">GitHub project page</a></li>
</ul></div>Ofaco 1.12.0 releasedhttps://www.bluem.net/81992016-10-21T23:53:21+02:002016-10-21T23:53:21+02:00<div class="container wysiwyg"><p>It has been roughly a month now that Apple released macOS 10.12, so an&nbsp;Ofaco update was overdue. &nbsp;But here it is: Ofaco 1.12.0 adds compatibility&nbsp;with macOS 10.12.</p>
<ul><li><a href="/en/projects/ofaco/">Ofaco homepage</a></li>
<li><a href="/files/Ofaco.dmg" target="_blank">Direct download link</a></li>
</ul></div>macOS Sierra: Three-finger dragginghttps://www.bluem.net/82012016-10-21T23:48:19+02:002016-10-21T23:48:19+02:00<div class="container wysiwyg"><p>I am not using macOS 10.12 (AKA “Sierra”) yet, but while evaluating it, I found that in the Trackpad preference pane, there is no longer a way to drag using three fingers.</p>
<p>Fortunately, Apple did not simply remove this feature (as they did with a number of others in the past), but merely moved it. You will now find it in the “Accessibility” preferences: “Mouse &amp; Trackpad” ➔ “Trackpad” ➔ “Options” ➔&nbsp;“Enable Dragging”&nbsp;➔ “Three finger”.</p></div>Ofaco 1.11.4 releasedhttps://www.bluem.net/81882016-04-06T21:19:04+02:002016-04-06T21:19:04+02:00<div class="container wysiwyg"><p>Ofaco 1.11.4 was released a few minutes ago. Again, this version does not introduce new features, but simply adds compatibility with the latest OS X release, so Ofaco is now compatible&nbsp;with OS X 10.11.4.</p>
<ul><li><a href="/en/projects/ofaco/">Ofaco homepage</a></li>
<li><a href="/files/Ofaco.dmg" target="_blank">Direct download link</a></li>
</ul></div>Terminal tip:
Navigating to the current Finder windowhttps://www.bluem.net/81852016-02-17T22:49:08+01:002016-02-17T22:49:08+01:00<div class="container wysiwyg"><p>A few days ago, I read an article&nbsp;about <a href="http://www.zsh.org/" target="_blank">zsh</a> in a German IT magazine. The author pointed out that with zsh, you can easily <code>cd</code> to the frontmost Finder window. Well … that’s not too exciting – this has been possible for years on OS X, with <em>any</em> shell.</p>
<p>All it takes is a shell alias like this one:</p>
<p><code>alias go-finder='cd "$(osascript -e "tell application \"Finder\"" -e "try" -e "set targetPath to POSIX path of (target of window 1 as string)" -e "on error" -e "set targetPath to \"\"" -e "end try" -e "end tell")" &amp;&amp; pwd'</code></p>
<p>(For unexperienced shell/Terminal users: this code has to go into one of the files which are read when starting a new shell. On OS X, one would typically use <code>~/.profile</code>, i.e.: a file called <code>.profile</code> in your home directory.)</p>
<p>Then, open a new Terminal window or <code>source ~/.profile</code>, invoke <code>go-finder</code>&nbsp;and here you go. If you have never encountered <code>osascript</code> before: it’s a command-line runner for OSA scripts, which means: for AppleScript and (more recently) for JavaScript. With its ability to bridge the gap between Terminal and GUI, <code>osascript</code> is one of those hidden gems that make OS X really shine.</p></div>cliclick 3.2 releasedhttps://www.bluem.net/81832016-02-17T22:41:09+01:002016-02-17T22:41:09+01:00<div class="container wysiwyg"><p>This morning, I released version 3.2 of <a href="/en/projects/cliclick/">cliclick</a>, a mouse and keyboard event emulator for the shell. These are the most relevant changes in this release:</p>
<ul><li>Added color picker (<code>cp</code>) action: can be used to read the RGB color values at a specific screen coordinate.<br/>
Example: <code>cliclick cp:123,456</code></li>
<li>“Keypress” (<code>kp</code>) action now supports the Enter key</li>
<li>Fixes crashes with non-Western keyboard layouts (for example: Chinese)</li>
</ul><p>It may take a day or two until this version is available via Homebrew or MacPorts.</p>
<ul><li><a href="/en/projects/cliclick/">cliclick homepage</a></li>
<li><a href="/files/cliclick.dmg" target="_blank">Direct download link</a></li>
<li><a href="https://github.com/BlueM/cliclick" target="_blank">GitHub project page</a></li>
</ul></div>Software recommendation: Pawhttps://www.bluem.net/81812016-02-06T13:47:30+01:002016-02-06T13:47:30+01:00<div class="container wysiwyg"><p>A few days ago I attended a meeting of the <a href="http://www.meetup.com/de-DE/sfughh/" target="_blank">Symfony Usergroup Hamburg</a>. Among the subjects that came up were RESTful APIs as well as clients to test such APIs. I was surprised that despite quite a number of OS X users were present, no one seemed to know <a href="https://luckymarmot.com/paw" target="_blank">Paw</a>.</p>
<p>Of course Paw is not the only API&nbsp;client for Mac, but there are a few things it gets right. Most notably, it lets you write extensions&nbsp;yourself (in <em>JavaScript</em>!) and it allows using a result from a previous response in a request. The latter is tremendously useful if you want to test an API that uses OAuth or JWT (JSON Web Tokens), as you <em>automatically</em>&nbsp;can include a previously received token in an “Authorization” header.</p></div>Taply discontinuedhttps://www.bluem.net/81682016-02-02T23:31:12+01:002016-02-02T23:31:12+01:00<div class="container wysiwyg"><p>Given the fact that doing Cocoa development for OS X is only a hobby for me for which I have far too little time to spend on, I decided today that I will stop the development of <a href="/en/projects/taply/">Taply</a>, a tiny audio player. It was fun writing it, but I hardly ever used it myself and I think that I should better invest my Cocoa efforts into applications that I use myself a lot (such as <a href="/en/projects/plain-clip/">Plain Clip</a>, which I use probably a hundred times each day) or for which there aren’t as many alternatives as there are for an audio player. Of course, “stopping the development” is a euphemism, as a quick glance at the version history reveals that there hasn’t been much development recently: in the last six years, there were only two releases&nbsp;…</p>
<p>Taply will remain available for download from this site. Moreover, I will probably offer the project sources for download, in case someone is interested in taking a look at it or taking over the project.</p>
<ul><li><a href="/en/projects/taply/">Taply product page</a></li>
<li><a href="/files/Taply.dmg" target="_blank">Direct download link</a></li>
</ul></div>Pashua 0.10.2 releasedhttps://www.bluem.net/81622015-11-29T12:54:08+01:002015-11-29T12:54:08+01:00<div class="container wysiwyg"><p>Pashua version 0.10.2, released just now, fixes a problem with checkboxes losing their status when a dialog should be closed, but stays on screen due to mandatory elements being empty. Moreover, it is now possible to use multi-line tooltip texts by inserting <code>\n</code> for linebreaks.</p>
<ul><li><a href="/en/projects/pashua/">Pashua homepage</a></li>
<li><a href="/files/Pashua.dmg" target="_blank">Direct download link</a></li>
</ul></div>Plain Clip 2.5.1 releasedhttps://www.bluem.net/81602015-11-22T14:07:23+01:002015-11-22T14:07:23+01:00<div class="container wysiwyg"><p>Fresh from the compiler: Plain Clip 2.5.1. The only new feature is a preference setting to replace “smart” quotes (typographically correct quotes) with “dumb” quotes. In other words: when enabled in the preferences, all occurrences of any of the characters „ “ ” » « will be replaced with ", and the same applies to occurrences of › ‹ ‚ ‘ ’ and ' respectively.</p>
<ul><li><a href="/en/projects/plain-clip/">Plain Clip homepage</a></li>
<li><a href="/files/Plain-Clip.dmg" target="_blank">Direct download link</a></li>
</ul></div>Exif Untrasher discontinuedhttps://www.bluem.net/81542015-09-05T14:44:22+02:002015-09-05T14:44:22+02:00<div class="container wysiwyg"><p>Twelve years and four months ago, I published the first version of <a href="/en/projects/exif-untrasher/">Exif Untrasher</a>, an OS X (then: Mac OS X) application for restoring “deleted” photos from digital camera memory cards/sticks. The motivation for this was that I had lost a few photos myself before, and thought it would be great if there was a tool that might help in this situation – and at that time, I didn’t know of any such tools running on Macs.</p>
<p>I’ve never again lost photos afterwards, so – apart from testing – I haven’t used my own application a single time. This, combined with the fact&nbsp;that meanwhile there are quite <a href="/en/projects/exif-untrasher/faq/">some alternatives</a> (free and commercial), I’ve come to the conclusion that I should officially discontinue Exif Untrasher.&nbsp;Version 1.5, <a href="/en/news-and-beyond/exif-untrasher-1-5-released/">released last year</a>, works, will hopefully continue to work for the next few releases of OS X, and will of course still be available from this site.</p>
<ul><li><a href="/en/projects/exif-untrasher/">Exif Untrasher product page</a></li>
<li><a href="/files/Exif-Untrasher.dmg" target="_blank">Direct download link</a></li>
</ul></div>cliclick 3.1 releasedhttps://www.bluem.net/81492015-07-18T09:56:30+02:002015-07-18T09:56:30+02:00<div class="container wysiwyg"><p>A few minutes ago, I published cliclick 3.1. The changes are:</p>
<ul><li>Bugfix: For the “keypress” (“kp”) command, fixed keys “volume-down”, “volume-up” and “mute”.</li>
<li>Bugfix: Typing did not work in “verbose” mode</li>
<li>Change: For the “keypress” (“kp”) command, removed support for “help” key, which didn’t work anyway.</li>
<li>New: “keypress” (“kp”) command supports additional keys: “brightness-up”, “brightness-down”, “play-pause”, “play-previous”, “play-next”, “keys-light-toggle”, “keys-light-up”, “keys-light-down”</li>
</ul><p>If you installed cliclick via MacPorts or Homebrew, the update should be available within the next days.</p>
<ul><li><a href="/en/projects/cliclick/">cliclick homepage</a></li>
<li><a href="/files/cliclick.dmg" target="_blank">Direct download link</a></li>
</ul></div>Pashua 0.10.1 releasedhttps://www.bluem.net/81472015-07-15T17:39:12+02:002015-07-15T17:39:12+02:00<div class="container wysiwyg"><p>Pashua 0.10.1 was released today. It does not add new features, but merely fixes a bug concerning the value of a button returned by Pashua. The problem was that&nbsp;if a user tried to close a dialog using a button and a mandatory element in the dialog was empty (so that the dialog didn’t close, but&nbsp;stayed on the screen), the button’s return value&nbsp;could be inaccurate later.</p>
<ul><li><a href="/en/projects/pashua/">Pashua homepage</a></li>
<li><a href="/files/Pashua.dmg" target="_blank">Direct download link</a></li>
</ul></div>Plain Clip 2.5 releasedhttps://www.bluem.net/81372015-02-23T20:33:40+01:002015-02-23T20:33:40+01:00<div class="container wysiwyg"><p>A new version of <a href="/en/projects/plain-clip/">Plain Clip</a> was released today. This new version (2.5) adds a single feature: Unicode normalization.</p><p>What is Unicode normalization and why would you want to care? As you might know, in Unicode (which is an underlying technology in all modern operating systems) there are – at least for some characters – two (maybe more) ways of encoding the same character. This means that, either way, you will see exactly the same character, but the internal representation differs. Depending on how you use the string and in what application you work with it, this can make a difference. Some applications normalize the character internally (i.e.: convert it to the same internal representation), others don’t.<br/>To make a long story short: if you have ever encountered the problem that, for instance, you copied text containing a German “ü” umlaut from a PDF, inserted it into OpenOffice, then searched for “ü” in OpenOffice and did not find anything, you probably ran into exactly this problem.</p><p>This is where the new Plain Clip version comes in handy. Simply check the new “Perform Unicode normalization” checkbox in Plain Clip’s preferences and you are done. (Reminder: keep the Shift key pressed while launching Plain Clip to open the preferences.) Whenever you launch Plain Clip, your clipboard will not only be converted to plaintext, but also normalized.</p><ul><li><a style="line-height: 18.2000007629395px;" href="/en/projects/plain-clip/">Plain Clip homepage</a></li><li><a style="line-height: 18.2000007629395px;" href="/files/Plain-Clip.dmg" target="_blank">Direct download link</a></li></ul></div>Ofaco 1.10.2 releasedhttps://www.bluem.net/81342015-01-28T18:44:03+01:002015-01-28T18:44:03+01:00<div class="container wysiwyg"><p>Today, Ofaco 1.10.2 was released. As usual, this version changes nothing except that it adds compatibility with Apple’s latest OS X release – in this case: OS X 10.10.2.</p><ul><li><a style="line-height: 18.2000007629395px;" href="/en/projects/ofaco/">Ofaco homepage</a></li><li><a style="line-height: 18.2000007629395px;" href="/files/Ofaco.dmg" target="_blank">Direct download link</a></li></ul></div>Taply 1.7.1 releasedhttps://www.bluem.net/81312014-12-12T10:28:52+01:002014-12-12T10:28:52+01:00<div class="container wysiwyg"><p>This new version fixes a single issue: it restores the ability to drop a folder onto Taply’s icon. This feature was inadvertently removed from version 1.7 while cleaning up the code.</p><p>If you were not aware of this feature before: you can drop a whole folder containing thousands of files (for instance: your entire “Music” folder) onto the application icon, and Taply will locate – and&nbsp;successively play – each audiofile it is able to read (MP3, AIFF, WAV, …).</p><ul><li><a href="/en/projects/taply/">Taply homepage</a></li><li><a href="/files/Taply.dmg" target="_blank">Direct download link</a></li></ul></div>Ofaco 1.10.1 releasedhttps://www.bluem.net/81052014-11-22T10:20:44+01:002014-11-22T10:20:44+01:00<div class="container wysiwyg"><p><a href="/en/projects/ofaco/">Ofaco</a> version 1.10.1 is out (<a href="/files/Ofaco.dmg" target="_blank">direct download link</a>). There is no new functionality in this release, but it merely adds compatibility with the latest “Yosemite” release, OS X 10.10.1.</p></div>Pashua 0.10 releasedhttps://www.bluem.net/80992014-11-08T15:50:44+01:002014-11-08T15:50:44+01:00<div class="container wysiwyg"><p>Today, <a href="/en/projects/pashua/">Pashua</a> 0.10 was released (<a href="/files/Pashua.dmg" target="_blank">download</a>). In addition to the usual fixes (wich can, as always, be found in the <a href="/en/projects/pashua/versions/">version history</a>), there is a new feature which is worth mentioning and a change in how the example/binding code for Pashua is handled and distributed.</p><h2>Mandatory elements</h2><p>The new feature is the ability to <strong>declare elements as mandatory</strong>. Using this is as simple as adding <code>fieldname.mandatory = 1</code> to the window configuration. When the window is about to be closed using the default button and there are any elements that are defined as mandatory, but are empty, the window will not close, but instead the mandatory elements are highlighted. For a mandatory element,&nbsp;“empty” means that the element does not have a string value or that the string value contains only whitespace. The digit zero (0) is not regarded as empty. Radio buttons are regarded as empty as long as none of the buttons has been clicked.<br/>Naturally, the <code>mandatory</code> attribute is not available for all elements, as there are types for which this simply does not make sense, for example all kinds of buttons.</p></div>
<div class="container wysiwyg"><h2>The “Pashua bindings” repository</h2>
<p>While in the past, example code for a whole bunch of supported languages was included in the download, I increasingly had the feeling that for a number of reasons this is not the proper way to handle it:</p>
<ul><li>When bundling the examples with Pashua, it is impossible to release updates to example code or examples for new languages independently from Pashua.</li>
<li>The examples shipped with Pashua are not the “best” way to handle the commu­ni­cation with Pashua, but only one out of several possible ways. (The one which causes the least possible amount of maintenance work for me.) For instance, instead of defining a string which describes the window, one could of course also write example/binding code which follows a “GUI builder style”, offering an API which allows to invoke methods such as <code>$window-&gt;addTextfield()</code>. So, instead of one example per language, it could easily become two or three examples, which is just too much to include it all.</li>
<li>I am not an expert for all of the languages for which example code exists, so I should not be the one who is in charge of deciding if code is suitable to ship it with Pashua. This is also why a few times in the past I rejected code people sent me in languages I have never used (I recall that Ada95 and&nbsp;OCaml were such cases).</li>
</ul><p>For all these reasons, I decided to move all existing examples/bindings to GitHub repositories (each in its own repository) and to start another repository (you could call it a meta repository) which contains nothing but a list of examples/bindings with links to the repositories. This repository is called ”Pashua bindings” and can be found at&nbsp;<a href="https://github.com/BlueM/Pashua-Bindings" target="_blank">https://github.com/BlueM/Pashua-Bindings</a>.<br/>
Currently, it lists only the examples which were distributed with Pashua 0.9.5.1 and the ones included in the new 0.10 release. But I hope that in the long run, I will get pull requests to include other examples/bindings in the list.</p></div>cliclick 3.0.3 releasedhttps://www.bluem.net/80942014-10-29T11:25:19+01:002014-10-29T11:25:19+01:00<div class="container wysiwyg"><p>Today <a href="/en/projects/cliclick/">cliclick</a> 3.0.3 was released. It does not add new features, but fixes some minor issues.</p><p>First, it improves the reliability of “drag &amp; drop” operations and reduces the need to add “wait” commands for dragging to work correctly. It turned out that cliclick performed actions too fast so that the events were not registered correctly in some target applications. With cliclick 3.0.3, this should no longer be a problem, and if you have scripts that use drag &amp; drop and which include “wait” commands to make d&amp;d work, you might event try to remove the “wait” commands.</p><p>Second, I fixed a number of bugs related to memory management. Bugs of this kind are usually not a problem with a tool like cliclick, which is invoked, runs for a couple of seconds and then terminates, but there are also use cases where this might have caused trouble.</p><p>If you got cliclick from&nbsp;<a href="http://www.macports.org/" target="_blank">MacPorts</a> or <a href="http://brew.sh/" target="_blank">Homebrew</a>, you should get the 3.0.3 update maybe in a day or two, and if you installed it manually, you can <a href="/files/cliclick.dmg" target="_blank">download the 3.0.3 archive</a> to update.</p></div>Ofaco 1.10 releasedhttps://www.bluem.net/80922014-10-19T09:17:38+02:002014-10-19T09:17:38+02:00<div class="container wysiwyg"><p>Yesterday I published <a href="/files/Ofaco.dmg" target="_blank">Ofaco 1.10</a>&nbsp;(direct download link), which adds compatibility with the recently released OS&nbsp;X 10.10. Apart from that, there are no changes.</p>
<p>After that, I took screenshots to use on both the <a href="/de/projekte/ofaco/">German</a> and the <a href="/en/projects/ofaco/">English</a> Ofaco product pages. For both languages, I decided to use a mail text which includes the words “YouTube” and “Yosemite” to show how Ofaco uses words from the mail for the text completion. The funny thing was that when doing this using the German localization of Yosemite, I noticed that while there were completely useless entries such as plural forms of city names, the name “Yosemite” isn’t even listed in the German system dictionary.<br/>
If I hadn’t used Ofaco for years, this would have been the moment that would have me convinced to use&nbsp;it.</p></div>cliclick 3.0.2 releasedhttps://www.bluem.net/80702014-10-08T13:07:55+02:002014-10-08T13:07:55+02:00<div class="container wysiwyg"><p><a href="/en/projects/cliclick/">cliclick</a> 3.0.2 is available for download. This is a minor bugfix release which mainly addresses an issue with command-line parsing that can be relevant when using the <a href="/en/news-and-beyond/cliclick-3-0-released/">new typing feature introduced with cliclick 3.0</a>.</p></div>Exif Untrasher 1.5 releasedhttps://www.bluem.net/80532014-10-07T20:42:17+02:002014-10-07T20:42:17+02:00<div class="container wysiwyg"><p><a href="/en/projects/exif-untrasher/">Exif Untrasher</a> 1.4.3, before today the most recent release, was published on 06/06/2006. Today it’s 10/07/2014, and I have released Exif Untrasher 1.5, which means this update took 3,045 days. Wow.</p><p>Looking back, I am myself surprised. Admittedly, I wasn’t too much interested in this software, as I would have needed it myself exactly once – and at that time (in 2003), I didn’t have Exif Untrasher. So, actually, I haven’t used my own software a single time. But still, in all this time, people continued to write mails asking questions, blog about it and occasionally sent a donation, so I knew it is still widely used.</p><p>Therefore, I had long planned to release an update that would fix some of the more severe usability issues, of which there were quite a few. Without doubt, the fact that Exif Untrasher was single-threaded was the one shortcoming that was the worst of all. Pretty soon after you started the restoration process, it would become unresponsive and show the spinning beachball – which I found acceptable at that time, as I didn’t want to dig into Cocoa multi-threading (After all, that was long before Apple came up with Grand Central Dispatch and NSOperation.), but obviously caused a lot of confusion.</p><p>Years passed and I rather spent my “Cocoa sparetime” on <a href="/en/projects/">other projects</a>. During that time, not only got Exif Untrasher’s codebase more and more outdated (in fact, when cleaning up for version 1.5, I removed code that tested if EU is running on Mac OS X &lt; 10.3), but everything else, too. This meant that I not only had to modernize code, but also migrate from Subversion to Git (which I have exclusively used in the last few years), add new high-resolution icons, adapt the codebase to my build system, and update everything else, from Readme files to screenshots on the website. Doing things like these is never fun, but doing it all at once is even more tedious.</p><p>This is why I am all the more happy that Exif Untrasher 1.5 is finally out. Apart from usability improvements (finally, the restoration is done in a separate thread), there is nothing much visible change. Specifically, the image restoration algorithm was not changed, so when it comes to the results, Exif Untrasher should behave no different than before.</p></div>cliclick 3.0 releasedhttps://www.bluem.net/80542014-09-15T19:52:08+02:002014-09-15T19:52:08+02:00<div class="container wysiwyg"><p>Today I released version 3.0 of <a href="/en/projects/cliclick/">cliclick</a>, a shell program for emulating mouse and keyboard events. The most important change – which had been the most requested feature – is the ability to type (almost) arbitrary text.</p>
<p>Versions prior to 3.0 could emulate only a few keys which where hardcoded in a list in the source. That was OK (and still is, as <a href="https://github.com/BlueM/cliclick/blob/3.0/Actions/KeyPressAction.m#LC48" target="_blank">this code still exists</a> and there is no need to remove it), as these were hardware-independend keys. “Hardware-independend”&nbsp;means that the Mac will recognize the key as the same, regardless of whether you use an American, a German or a Brazilian keyboard layout. On the other hand, the keys for almost all printable characters <em>are</em> hardware-dependend, so it is obvious that this feature was only of limited use,&nbsp;as it did not allow real “typing”.</p>
<p>For cliclick 3.0, I invested the time to write code for a runtime-generated mapping between keys and characters. This mapping is created by simply iterating over all keys that are hardware-dependend and collecting information on which character would be created without modifier keys, with Shift, with Alt or with Shift plus Alt. The nice thing is that this approach is generic and works for every keyboard layout.</p>
<p>Unfortunately, even this method is not perfect, as there are characters that can be entered by typing a sequence of characters, typically including so-called “dead” keys. An example is entering the German umlaut ü on a keyboard with American layout: there is no key for ü, but you can enter it by typing Alt-u (which will result in ¨ followed by u). I could not think of an algorithm to automatically identify these cases, so again, I had to resort to hard-coded mappings.</p>
<p>Naturally, this only works for the layouts and the characters which you will find&nbsp;<a href="https://github.com/BlueM/cliclick/blob/master/KeycodeInformer.m#L176" target="_blank">listed in the code</a>, so the support for these characters is fragmentary. But still, the ability to type in 3.0 is a huge improvement, as for most uses, the auto-generated mapping will be sufficient.</p>
<p>Having said all this, here is the basic approach how it works:</p>
<pre><code>cliclick t:'Isn’t that nice?'<code/></code></pre>
<p>As a slightly more useful example (<em>which will not work if your are running 10.10/Yosemite, as the way Spotlight works has changed</em>), to start a Spotlight search for “Safari” on your Mac, you could use code like this:</p>
<pre><code>cliclick kd:cmd kp:space ku:cmd w:500 t:'Safari' w:500 kp:arrow-up w:500 kp:return<code/></code></pre>
<p>This assumes your Spotlight keyboard shortcut is the default (⌘ Space). The “w:500” commands for waiting 500 milliseconds make a little clearer what exactly is happening.</p>
<p>That’s it so far. If you like cliclick, spread the word and/or <a href="https://github.com/BlueM/cliclick/" target="_blank">contribute to it</a> and/or invoke <code>cliclick -d</code>&nbsp;;-)</p></div>A new website sectionhttps://www.bluem.net/80512014-09-08T11:34:12+02:002014-09-08T11:34:12+02:00<div class="container wysiwyg"><p>For years I have pondered about adding a section to this website where I could occasionally write a few lines about web development and Mac topics and make some announcements (primarily for new releases of <a href="/en/projects/">my Mac applications</a>). And all of this time, I felt reluctant to do so for a number of reasons, one being that for a long time I was too busy to work on the Mac apps, which implied that there was hardly a need for writing about releases.</p><p>Having spent more time in the last few months than usual on updating these applications, I once again came to think about this issue and how it would be handy to have a place for things that do not fit in release notes but that I nevertheless would like to make publicly available.</p><p>So, finally, here it is. The title “News and beyond” leaves room for improvements, but for the time being, I think it is OK, as it describes the content pretty well. For people interested in staying tuned, there is also an <a href="/atom-news/">Atom feed</a>.</p><p>Have fun.</p></div>