Code by Kevin

Code by Kevin, Programming, code, business, and other pursuits

Your Host
Kevin Walzer, software developer.


Subscribe to RSS Feed
Get a syndicated feed of my weblog.



Privacy Policy

Site design: Skeleton


Tue, 19 May 2020

Stringscan 2.0

I've released version 2.0 of Stringscan, my grep-like tool for macOS and Windows. Like my other applications, this version features UI improvements for Mac and Windows, a significantly streamlined installation process for Windows, a new scripting API, and more. This application, a free release, asks for a donation to support its development.

With this release, I have completed a significant update cycle on all my apps for Mac and Windows, and I plan to take a break from app development and return to Tk development. My colleague Marc Culler has been doing a brilliant job with bug fixes and Tk improvements, and I'm eager to jump back in with some ideas for improving Tk.

[/software] permanent link

Thu, 30 Apr 2020

FileMorph 4.0

I've released version 4 of FileMorph, my file modification tool for macOS and Windows. This release continues my work with upgrading the UI of my apps for macOS, and assorted improvements for Windows as well. This release also continues my work in making my applications free but asking for user support with a donation. The app is very useful for batch modifications of file attributes, and I encourage you to give it a try.

[/software] permanent link

Fri, 13 Mar 2020

QuickWho 7.0

I've released version 7.0 of QuickWho, my GUI DNS client for Mac and Windows. This is a significant update over previous versions with a new scripting interface, support for dark mode on macOS, and a streamlined Windows installation process.

As with my other apps, it is now free but requests a donation to support my open-source work. It's a useful tool; please give it a try.

[/software] permanent link

Fri, 03 Jan 2020

TextSweep 5.0
I've just released TextSweep 5.0, my search-and-replace tool for macOS and Windows, written in Tcl/Tk.

This release includes an updated user interface, support for Dark Mode on macOS, and a streamlined Windows installation process that reduces the download size, adds a command-line interface to the user's path, and more. Part of the updated UI is using the native help display systems on Mac and Windows.

This release also continues my shift in business model away from charging a registration fee to requesting donations through the Liberapay system for open-source developers.

It's a free download, and if you want a helpful, well-reviewed tool for search and replace of text in multiple files, it's worth a look.

[/software] permanent link

Sun, 13 Oct 2019

New releases for Catalina

I've released version 9.1 of PortAuthority, my GUI for MacPorts, and Manpower, my man page viewer for macOS. These apps are now free to download and use; I've replaced the registration fee and serial numbers with a request for a donation to support my work at Liberapay. Both apps are significant updates over previous versions with full support for Catalina. Please check them out, especially if you use open source software or have interest in the Unix underpinnings of macOS.

[/software] permanent link

Tue, 21 Aug 2018

FileMorph 3.0

I've just released version 3.0 of FileMorph, my file modification tool for macOS and Windows. The biggest changes in this release are the introduction of a scripting API for Windows based on Dynamic Data Exchange, which I am gradually rolling out into all my Windows products. This release also includes an improved UI on Windows (no more console!), and various bug fixes for macOS and Windows.

As always, upgrades to my products are free to registered users.

[/software] permanent link

Thu, 19 Jul 2018

Updated mobile apps

We've released updated versions of our mobile travel apps, The Lake Effect (Great Lakes travel) and Snowbird Shores (Atlantic coast travel). Both feature modest UI updates. Both are free downloads for iPhone and iPad.

[/software] permanent link

Mon, 04 Jun 2018

Stringscan 1.2

Amid the ongoing updates to my apps to reflect my transition to a new server, I've also assembled a more substantial update to Stringscan,, my text search application for Mac and Windows.

In addition to the updates for the source code repository, Stringscan also features a re-worked search algorithm and significant changes to how I deploy it on Windows. Here are the details:

  • New search algorithm. Previous versions used a core Ruby module that inspected a file and attempted to determine its type, and filter out non-text files. This algorithm was fine for filtering out non-text files but also filtered out a lot of readable text files that did not fit is model (script files, for instance, would be registered as applications and not plain text). Thus, searches were very incomplete. I've improved the search algorithm by pulling the large list of standard text file formats that I use in TextSweep, which covers a broader range of file types. The list is probably not exhaustive, but does provide a basis for further incremental refinements.
  • New deployment on Windows. Previous versions of Stringscan shipped with a stub executable that directly linked to the Ruby interpreter and could launch the app. Previously this meant the app would open a Windows DOS-style console when launched, which I judged to be lacking in polish. My recent efforts to remove the console have been successful with TextSweep and another app, but with the Stringscan executable, I found the app crashing on startup. After a fair amount of frustration trying to debug this, I finally decided to use the Ruby GUI executable itself to run the app, and linked to it using a Windows desktop shortcut. The slick thing the Windows shortcut is that I can give it Stringscan's name and icon even as I set its target to run rubyw and Stringscan's main script. In the Windows start menu and taskbar, this looks exactly like a regular application. It's a neat solution, one that I learned from seeing how another app, webGobbler, was installed and presented in the start menu.
  • As always, Stringscan 1.2 is a free update for registered users. If you are looking for an easy-to-use text search tool, give it a try.

    [/software] permanent link

    Sun, 22 Apr 2018

    New source code repository

    Because of Apple's decision to deprecate its product, I've had to move my Internet presence to an external hosting service, and I've migrated my source code repository as a result.

    Here is my new repo:

    I'm in the process of pushing out minor updates to all my apps, mainly containing minor bug fixes and links to the new source code repository. More extensive updates will come later this year.

    [/software] permanent link

    Fri, 29 Dec 2017

    TextSweep 4.0

    I've released version 4.0 of TextSweep, my search-and-replace tool for macOS and Windows.

    The big feature in this release is a new scripting interface, for both Mac and Windows. The scripting interface makes it possible to drive TextSweep from other programs. While the specific nature of TextSweep does not require it to return data to other programs, it can still be called as a helper tool from other applications that need search and replace functionality.

    As with my other apps, Mac scripting support is offered for AppleScript through my aem library. For Windows, after looking at several different API's for inter-application communication, I chose Dynamic Data Exchange (DDE).

    The selection of DDE is not a common one these days, so I wanted to offer a bit of explanation. Like Apple Events on macOS (the underlying mechanism for AppleScript) and the Component Object Model (COM) on Windows, DDE provides a mechanism for communicating data and executing code across applications. DDE is a very old technology on Windows, dating back to Windows 2.0, and is relatively simple compared to the much more powerful COM. In this case, however, simplicity is a virtue--DDE is easy to implement, is supported natively on Windows by Tcl, and can be exposed without issue from other programming languages that incorporate a Tcl/Tk GUI. An excellent extension library, TWAPI, supports COM and greatly simplifies the process of setting up a COM interface--but it is still overkill for my needs.

    As always, TextSweep is a free upgrade for registered users.

    [/software] permanent link