Generated Shownotes
Chapters
0:00:10 Last live show of the year; upcoming shows announced
0:02:38 Introducing Be My Eyes app for AI-generated photo captions
0:06:47 Cautionary statements and getting started with Be My Eyes
0:07:54 Be My AI provides detailed and contextual photo descriptions
0:09:44 Adding Be My AI descriptions to photos for social media posts
0:17:15 IceCubes Misses the Point of a Sailboat Photo
0:19:26 Christian's Review of Find Any File App
0:22:08 Exploring the Interface and Features of Find Any File
0:26:50 Efficient file searching with List and Tree View options
0:36:23 The progress bar and notification enhancements
Long Summary
In this episode, we inform our live audience that this will be our last live show of the year, but we'll continue to have shows shortly before Christmas and New Year's. We're looking for content for the New Year's show, specifically toy reviews, to provide great content for those traveling during this time.
In the previous show, we discussed the importance of alt text on social media images for inclusivity. We talked about the Be My Eyes app, which uses AI to generate detailed descriptions for alt text. Although we had trouble demonstrating it live, we encourage everyone to download the app and give it a try. It's free and available on both iOS and Android. Be My Eyes allows visually impaired individuals to get visual assistance from sighted volunteers.
We also discussed using Be My AI to generate alt text descriptions for photos. We demonstrated the process using the app's integration with the share sheet in Photos. We also mentioned that Mona for Mastodon is a social media app that preserves captions as alt text. We highlighted the importance of alt text in making online content inclusive and mentioned IceCubes as another app that generates alt text automatically.
Next, we tested two AI tools, IceCubes and Be My AI, by captioning a photo of two men on a sailboat. IceCubes' caption was inaccurate, while Be My AI provided a detailed and accurate description. We discussed the importance of accurate alt text and the limitations of different social media platforms in preserving captions as alt text.
Moving on, we discussed an email review of the app Find Any File, which helps locate files that Spotlight misses. We provided additional information about the app's features and pricing. We discussed the search parameters and filters in Find Any File and how it can be used to search for specific files. We shared a personal experience of finding duplicate video files and reclaiming disk space using the app. We praised the interface and functionality of Find Any File and expressed gratitude to the developer.
In the last part of the episode, we discussed the integration of a Bash shell script for OCR on PDFs into Keyboard Maestro, a more user-friendly option. We explained the process of installing OCRMyPDF using Homebrew and setting up an environment variable in Keyboard Maestro to locate installed apps. We used the "execute shell script" action in Keyboard Maestro and discussed issues with command recognition. We mentioned the assistance received from ChatGPT in finding terminology and documentation for Keyboard Maestro.
To address the issue of not being able to monitor the progress of the OCR process, we decided to add a progress bar using Keyboard Maestro's Display Progress action. However, we discovered that these progress bars are not accurate and require assigning an arbitrary percentage. Nevertheless, we set it to 50% for some comedic effect.
To ensure the progress bar disappears, we added a second progress bar at the end of the macro set to 100%. Although this is a slightly humorous way of indicating progress, it is similar to the progress bars commonly seen on computers.
For user notification upon completion of the OCR process, we added a notification using the Display Text action. Initially, we had trouble locating it, but with the help of ChatGPT, we found it was called Display Text in Keyboard Maestro. To make the notification even more celebratory, we included happy clapping emojis.
To provide instructions and information to users, we included a comment box called Requirements in the macro. This box is colored red and explains that installing OCRMyPDF from Homebrew is necessary for the macro to work properly. Additionally, we detailed the steps for setting the path in the environment variable for Keyboard Maestro Macro.
Using the macro is simple. Users just need to select a PDF in any Finder window and choose the OCR macro from the Keyboard Maestro menu bar item. Once selected, the macro runs, displaying a pop-up window pretending to show progress. Finally, the OCR file is created, and a notification appears.
We provided a download link for the Keyboard Maestro macro and a screenshot in the show notes. However, caution is advised, as it's always a good idea to study the macro before running it to ensure there are no hidden malicious elements.
During the process, we encountered a couple of issues. One problem is uncertainty regarding whether the macro will run on Intel machines with unsupported operating systems. Currently, it seems to be reliable only on Apple Silicon.
To access the macro via the menu bar, it needs to be put into a group and the whole group should be set to display in the menu bar after importing it into Keyboard Maestro.
While figuring everything out, we faced difficulties with variables. We sought help from the Keyboard Maestro forums, and Griffman explained the issue to us. He pointed out the need to enclose variable names in quotes when dealing with input file names containing spaces. We made the necessary adjustments in Keyboard Maestro and our original shell script.
Griffman also introduced us to the split path action in Keyboard Maestro, which simplifies breaking up the input file name and reassembling it into the output file name. This solution allowed us to streamline the macro, making it simpler and more elegant.
We're grateful to David Roth and Joe from the Northwoods for extensively testing our Keyboard Maestro macro. Their efforts in finding edge cases and mistakes were invaluable. David specifically appreciated the macro as he often deals with non-OCRed PDFs that need to be converted for searchability.
After getting the macro to work, we asked David if there was anything he wished worked differently. He amusingly responded that he would prefer to trigger the macro without having to use Keyboard Maestro, as he doesn't often utilize it.
In the final part of the episode, we're excited to announce that there will be a part three to this story. Part three will not be as dense as parts one and two because the final solution is delightfully simple and user-friendly. We created a quick action that allows users to right-click on a PDF and select the action to OCR the file. This solution was suggested by Mike Price long ago, and if we had listened to him earlier, we would have saved much time and effort.
That concludes this week's episode. We encourage listeners to email us with any questions or suggestions. Happy holidays to the live show audience, and thank you for listening.
Brief Summary
In this episode, we discuss the importance of alt text for inclusivity on social media and review AI tools like Be My Eyes and IceCubes. We also explore the app Find Any File for locating files and integrate OCR capabilities into Keyboard Maestro. We faced some challenges but ultimately found a user-friendly solution. Stay tuned for part three of this story coming soon! Happy holidays to our audience and thank you for listening.
Tags
episode, alt text, inclusivity, social media, AI tools, Be My Eyes, IceCubes, app, Find Any File, locating files, OCR capabilities, Keyboard Maestro, challenges, user-friendly solution, part three, story, holidays, audience, listening
Transcript
[0:00] Music.
Last live show of the year; upcoming shows announced
[0:10] Today is Sunday, December 17, 2023, and this is show number 971.
Before we get too deep into the show, I want to tell the live audience that this will be the last live show of the year.
But of course, it's not the last show of 2023.
You'll be getting a show shortly before Christmas and another one shortly before New Year's.
I've got some help already lined up with Bodie and Bart, but I'm a little bit short on content for the New Year's show. So, if you get a toy as a gift and you want to do a little review, that would be swell.
I should be able to pull it off, but a little help would not be turned away.
[0:46] With so many people traveling this time of year, it's up to the Nosilicast to give you lots of great content to keep your ears full on long drives or waiting for planes.
And unlike many shows, these shows will not be reruns.
But remember, we won't be live on Christmas Eve or New Year's Eve this year.
This week I did have some trouble making content. Not that I didn't learn a lot doing what I was trying to talk about, and not that I didn't write a lot.
I wrote thousands of words, but both of the things that I worked on turned up bust in the end.
Not completely bust, they're just not quite figured out yet.
So the show won't be quite as long as it normally would be, or as I intended it to be, but still we've got some great content for you.
On Nocillicast number For 969, Tom Maddock explained how important it is that we all add alternative text, also known as alt text, to our images when we post them on social media.
We all say we want more engagement, and one of the ways to get that is to be inclusive in your postings.
Without alt text, blind folks can't tell anything about our images, but with a text, their screen readers can let them be part of the party too.
[1:54] Back in the day, it used to be a real chore to add alt text, and you had to be in the know to even know it was something you could do.
But I'm finding these days that developers, in most cases, are making it pretty obvious that there's a field for you to add some descriptive text for the image.
When Tom and I were chatting in audio, he told us about a cool app called Be My Eyes that will create a super detailed description of your images using AI that you can use as your alt text.
I tried to figure out how to do it live on the show, and I ran into some troubles.
But after the show, with Tom's encouragement, I figured out how to use Be My Eyes to caption my photos.
It's super cool, and it's free, so I wanted to walk you through how to do it.
Introducing Be My Eyes app for AI-generated photo captions
[2:38] I think you'll be amazed at how detailed the captions are that Be My Eyes AI generates.
First you need to download the application Be My Eyes from the App Store for iOS or the Google Play Store for Android.
Now, I believe that the Android version is still in beta that has the AI feature, so I've included a link to the Be My Eyes webpage where they have a download link and they specifically talk about the new AI feature.
As I go through the steps to use AI to caption photos, though, I'll be describing how it works on iOS with the hope that it's pretty close to the same on Android.
[3:13] When you first launch Be My Eyes, it will ask you whether you need visual assistance because you're visually impaired or whether you're volunteering to share your eyesight.
The Be My Eyes concept is that sighted volunteers can be called upon to describe what the visually impaired person's phone can see.
When I first heard about this, I remember my friend showing me how he was looking for his cufflinks and he used Be My Eyes to ask someone with sight to help him look around the room to find his cufflinks.
Even if you're sighted, you want to choose the option that says need visual assistance, because the Be My AI feature to caption photos will only be available to you if you select need visual assistance.
I had previously created a login as a sighted volunteer, and that's why I was unable to find Be My AI when I was recording with Tom.
Once you choose that, you can never get to this AI feature. If you have an account as a sighted volunteer already, you'll need to open a new account or delete your existing account and start over.
They say that deleting an account can take a couple of days, so I just used a second email address to create a second account.
[4:23] When you select the button that says, I need visual assistance, it will say, call a company or volunteer on that same button.
But don't be concerned, it doesn't call anyone when you tap this button.
The next page is dedicated to privacy and terms, and they provide a good summary along with a way to view the terms of service and the full privacy policy.
In the summary, you agree to not use Be My Eyes as a mobility device.
You agree that Be My Eyes can record, review, and share videos and images for safety, quality, and is further described in the privacy policy.
Finally, the data, video, images, and personal information you submit to Be My Eyes may be stored and processed in the USA. If you're okay with those terms, select Agree.
[5:07] Next, you'll create a login using your email or a login with Apple, Google, or Facebook.
After account creation, you'll get a screen with a giant blue button covering most of the page, inviting you to call a volunteer for live video support.
Below that, you'll see an option to view specialized support.
This has nothing to do with captioning, but it turns out you can get help with assistive tech, beauty, and grooming.
I'm thinking, do I have a chive in my tooth? Maybe that's what it's for.
You can find out about blindness organization, look at careers, and more.
[5:38] We're not going to access any of these options. At the bottom of the screen, you'll see that we've been on the Get Support tab, which looks like a little video camera.
The next tab over is a regular camera icon that says Be My AI underneath it, and this is where we're going to have some real fun.
When you select the camera icon, you'll be greeted by some cautionary statements on using Be My AI, the AI tool that will be creating captions for us within the Be My Eyes interface.
In the cautionary page, they say that they don't want you to trust it for everything and they admit that it's not 100% accurate.
They don't want you to use it for crossing streets or for medical use, and they tell you not to use it for sensitive information.
I gotta tell you, having worked for a government contractor working with sensitive information, I can see why they have this caution. They also explain that the Be My AI application can analyze faces but it cannot identify people.
[6:36] As all AI tools should warn, they say to double-check important things and use more appropriate tools in health and safety cases.
Once you understand those cautions, select Get Started.
Cautionary statements and getting started with Be My Eyes
[6:48] Be My Eyes will request access to the camera and you have to say yes if you want to play along.
This immediately opens the camera app with a blue button telling you to take a photo. For the show notes, I took a picture of a coaster on my desk.
Came from a company called Universal Audio.
If I was to write an alt text description for this photo, I would say, two men in white shirts working on some electronics.
[7:11] After I took the photo, Be My AI worked for a little bit, and then it wrote this.
The picture shows a black and white photograph of two men working on some electronic equipment. They're both wearing white lab coats.
The man on the left is seated, looking down at some papers he is holding, while the man on the right is standing and appears to be adjusting or testing the equipment with his hands.
In the background, there are racks of electronic devices with various knobs and meters.
At the top of the photo, there's a logo that reads, Universal Audio.
Below the image there is a caption that states, Universal Audio Engineers bench testing the original 1176 limiting amplifier circa 1967.
The photo is placed on a dark wood surface.
Be My AI provides detailed and contextual photo descriptions
[7:54] Seriously, that's what Be My AI can do. This is a perfect description of this photo and it provides the screen reader user with a lot more detail and context than my description.
I do want to remind you of something Tom said when I bemoaned that my captions weren't worthy after seeing what Be My AI could do.
He said that when you write your descriptions for photos online, you don't have to be this detailed.
He said to focus your energy on what's important about the photo, like why is it funny or compelling or beautiful.
So maybe my description would be better as, a coaster I got from Universal Audio years ago with two nerdy guys playing with electronics.
Anyway, we'll circle back on how to get maybe the best of both worlds.
Now that we know how to take a photo and find out what's in it, which is of massive value to those without sight, let's get into what you can do with your existing photos.
Once you have Be My Eyes installed on your phone, it becomes an action in the share sheet for photos.
I'll use a very silly photo I took of my granddaughter hugging our dog Tesla as an example of how to take an existing image from your photos library and add a caption to it created by Be My AI. This is the use that Tom really likes.
[9:05] With the photo selected, hit the share sheet icon, which is the square with the little up arrow, and then swipe up.
BMI Eyes will not be one of those pretty icons in the horizontal row, but rather it'll be down lower in the text list of actions.
There's things like create watch face and add to new quick note.
I'll be honest with you, I never noticed how many cool things you can do from this list. I'd never read them all before I saw this.
You're looking in this list for Describe with Be My Eyes.
On my phone, it was way down at the bottom, so I used the Edit Actions button to move it closer to the top, since I plan on using Be My Eyes, or Be My AI, often.
Adding Be My AI descriptions to photos for social media posts
[9:44] With your photo selected, in the Share Sheet, select Describe with Be My Eyes.
It'll think for a little bit, and after a few seconds, you'll see the description.
[9:53] On my Sienna and Tesla photo, it came back with this description.
The picture shows a young girl with blonde hair embracing a large brown dog with a black muzzle.
The girl is sticking out her tongue playfully to the side and looking towards the camera with a joyful expression.
She is wearing a green long sleeve top and patterned pajama pants.
The dog is sitting on the floor looking up and appears calm and content with the girl's arms wrapped around its neck.
They are indoors with a brown couch adorned with various patterned cushions in the background.
There's a wooden table with a closed laptop and a child's sippy cup on it.
A small toy ball with a tag still attached is also visible on the table.
The flooring is carpeted in a light brown color.
[10:37] Again, I am floored by what a fantastic description that is.
My only complaint was it wasn't a closed laptop. It was a closed iPad, but I guess I'll let that go.
[10:49] Once you have this fantastic description of Be My Eyes, you can tap and hold on the description to get a one-tap copy button.
Cancel out of the description, and you're right back in Photos with your selected image.
If you swipe up on the image, you can paste the description right into the caption field for the photo.
With the text in the caption field, you can copy it as you post your images to social media, ready to paste into the alt text field.
But if you use Mona for Mastodon, it's even easier than that.
Mona has native clients for the Mac, iPhone, and iPad, and it was built with accessibility as part of its foundation.
If you add captions to your images inside Apple Photos, when you send them to Mona, the caption is automatically added as the alt text. No copying and pasting.
You don't have to add the caption using Be My AI to get the advantage of this feature, but it's so easy to do and supplies so much more of a vivid description without having to use your own brainpower, it might be an even easier way for you to add alt text.
To recap, so far, we opened photos to the image we intend to post a mastodon.
We used the share sheet to get to Be My AI to write a description, copied it, swiped up on the image to paste it in the description.
Still in Photos, we can use the share sheet again, this time to post to Mona.
It immediately switches you into Mona with the image attached to a new post and the caption is automatically added as the alt text. How cool is that?
[12:17] Let's review to see if using Be My AI to create captions is any easier than the normal process.
The normal process to post an image to Mastodon with alt text is open photos, select the image you want to post, use the share sheet to open in your Mastodon app, such as Mona.
In the Mastodon app, tap the attached image, tap add description, think up a caption, type it in, tap done, and now you're ready to write your clever post.
If you use Mona with Be My Eyes to write your caption, the process is open photos, select the image you want to post, use the share sheet and select describe with Be My Eyes.
Wait for it to think up a detailed and descriptive caption, copy the caption, hit cancel to back out of Be My Eye AI, now you're back in Photos where you can swipe up, tap in the caption field and tap paste, then use the share sheet to send a mona and your detailed alt text is already in the image, and then you can write your clever post.
[13:13] It's definitely an extra step to go through Be My Eyes, but it sure is cool to be able to provide so much more content for our blind friends.
By the way, if you don't see your captions from photos showing up in Mastodon, go into iOS settings, scroll down to Mona, tap on Photos, select Options, and make sure Captions is toggled on.
I also discovered in here there's a toggle for whether location information is included in your attached images in Mona.
I tested this process using Apple Photos on the Mac posting to Mona, and the share sheet method is entirely broken.
Works perfectly on the iPhone, but on the Mac, when you tell it to post to Mona, the image just never shows up in the post.
I sent a Mastodon post to at Mona app at Mastodon dot social, and they wrote back and said it's a bug in Mac OS 14, and they would solve it later.
Kind of wish they would have said, yeah, it's on the timeline or we know or thanks or anything like that, but oh well, they said they're going to fix it.
[14:14] When I started researching this cool method of adding captions to my images, I was really hoping to walk you through how all of the social media apps like Threads and Facebook and Slack and Instagram would automatically add the captions from photos into the alt text field.
But sadly, in all of my testing, only Mona for Mastodon is the place I saw the caption preserved as the alt text.
Even Ivory, beloved by many as a import the caption.
I mentioned at the beginning that in most cases, developers are making it easier and more obvious to add alt text.
The giant exception is Instagram.
[14:52] Get this, in Instagram, after you add a photo, the first thing you're offered is a filter, and you have to hit next to get past that.
Now you have a screen to write the post, which they call a caption.
Then you have a long list of things with sub-menus like tag people, tag products, set the audience, add a location, add music, add a fundraiser.
Really? And then a toggle to share to Facebook.
After all of that, there's a submenu for advanced settings.
Within advanced settings are four options with toggles and finally another submenu to write alt text.
So that's three taps in just to get to where we can add the information our blind friends can use to enjoy the image we're posting.
Then it's two more taps to get back out to where we can share the image.
I am shocked at how poorly Meta handles alt text on images in Instagram, and to channel my inner John F.
Braun, I send a fish shake to Mark Zuckerberg.
[15:48] Back on a happy note, though, I'm going to try using Be My AI to write the alt text for all of the images I post to Mona for a while.
I may not stick with it, but I will always add alt text to my images, even by hand, because why would I want to restrict anyone from enjoying the incredibly clever content I post online?
You can learn more about BeMyEyes at support.bemyeyes.com.
And in the immortal words of Peter Falk playing the detective Columbo, just one more thing.
Around the time I was researching and testing Mona for this article, I read a post on Mastodon by Kyle Reddock in which he said, If there is one thing Mona app could add is AI-generated alt descriptions when posting picks.
IceCube's app nailed this feature.
[16:38] Well, you know I had to install IceCubes to test out what Kyle said, and you know what?
It does write alt text without you having to do anything at all.
It's nothing like the level of detail that Be My AI creates, but if you find yourself not adding any alt text at all, it's definitely better than that.
Do check what it writes, though, because it may miss the point of the photo.
I tested with a photo of my brother Kelly and my dad on our boat where Kelly is at the helm.
The photo is precious to me, as neither of them is with us any longer.
But on Kelly's birthday every year, I'd like to think of him up there sailing with Dad.
IceCubes Misses the Point of a Sailboat Photo
[17:15] Sentimentality aside, I decided to test and see what IceCubes would add as a caption.
It automatically, with no intervention on my part at all, wrote, quote, two men aboard a sailboat, one steering the vessel and the other sitting casually, both looking in different directions.
This is an example of where I'd want to correct the alt text, because IceCubes did miss the point of the photo.
Kelly and my dad are not looking in different directions, they're looking in the same direction.
I know from looking at it that they're looking at the sails to see if they're luffing.
Luffing is when the sail kind of flutters near the mast or the mainstay, which means you're headed too close to the direction of the wind.
You need to either turn down wind a smidge or trim the sails in even tighter.
So in contrast to the brevity of ice cubes, I ran it through Be My AI and here's what it wrote. The picture shows two men on a boat.
The younger man on the left has curly hair, a mustache, and is shirtless wearing red shorts. He is steering the boat with a large wheel.
The older man on the right wears glasses, a straw hat, a striped shirt, and blue jeans.
He is seated looking off into the distance with his hands clasped.
Both appear relaxed and are surrounded by calm sea waters under a clear sky.
[18:28] I gotta say that IceCubes does a passable job with no intervention by the user who may or may not choose to write captions, but clearly Be My AI did a much better job of capturing the vibe with that one extra step.
Either way, as Kyle and I both agreed, competition in this space is an awesome thing so hats off to the developers of Mona and IceCubes and Boo on Instagram.
This week I got an email with a review from Christian.
He wrote, Hi Allison, today I stumbled upon a little app that is called Find Any File.
It is shareware and it works just great.
It occurred to me that it might be an idea to send a little review, as I could not find one on podfeet.com, and no, I really do not feel comfortable recording the review.
It is absolutely fine with me if you do not have any use for this review, feel free to ignore it in that case.
Have a very Merry Christmas, and thank you for everything. Greetings from Germany, Christian.
Christian's Review of Find Any File App
[19:26] Christian sent along his review, and I love that he preempted my request because he knows I was going to ask him to record the review himself.
I don't really like to record other people's reviews because it sounds odd to hear someone else's words coming from me, like when I say I but it's not me, it's him, but I'm going to make an exception on this one.
Christian's review is short and to the point, and find any file sounds like a lovely app.
Here we go. Just imagine this is in Christian's lovely German accent.
[19:56] Yesterday, I had to delete an app because it did not work any longer for me.
Although I have Hazel's AppSweep activated, I ended up with some app crud left on my Mac.
The app still was listed under Allow in the background and at other places.
Maybe a quirk of mine, but I cannot stand having stuff left on my Mac that I want to get rid of, but just cannot.
Spotlight did not find anything related to the app or its developer.
This is when I stumbled upon Find Any File, abbreviated FAF.
It's a shareware app by Thomas Templeman.
It truly does one thing, and it does it well.
Yes, I do still miss Tim Verporten.
From the app's website, it says, FAF can find files that Spotlight doesn't.
That is also on network, network-attached storage drives, and other external volumes, hidden ones inside bundles and packages, and those in folders that are usually excluded from Spotlight search, such as the system and library folders.
And can even search in other users' folders if you use FAF's unique root search mode.
FAF lets you search precisely for many file properties such as name, extension, date range, size, kind, etc.
[21:09] It's a Shireware app like in the good old times. You can download and use it for free, but you're expected to pay the developer.
It's been around for quite some time. I found a review from Macworld that was published back in 2011.
Macworld back in 2011 said, the biggest drawback is that it doesn't search inside files.
Well, it's even able to do that today. So what does this app set you back if you decide to buy it? $6.
[21:38] Yes, $6. But you can donate more if you like.
Allison and Steve, thank you for all the work you're doing, publishing our beloved podcasts over all those years.
Merry Christmas to you and your family and to all the no-seller castaways.
All right, so now we're back in my voice. I want to thank Christian for sending this in, because I downloaded Find Any File and I gave it a whirl and I found another really interesting use for it.
So I'm going to go a bit deeper to explain the interface than he did and what it can do.
Exploring the Interface and Features of Find Any File
[22:08] Before I get started, I need to tell you that the app isn't accessible.
Parts of it are, but it fails on some of the most fundamental items.
I think it's worth a chat with the developer because the inaccessible fields are just like some of the accessible ones, so I think it probably wouldn't be too much work.
The opening window is quite simple.
After permitting full disk access, Find Any File has a dropdown for where you want to find items with the default set to On Startup Volume.
In this dropdown, as Christian said, you can change it to search on all disks, local disks, on network volumes, a specific finder selection inside a specific folder, and then it shows you all of your internal disks, any attached external disks, and any logged in network locations.
[22:53] Once you've decided the scope of your search, you can start setting search parameters.
By default, the first search has a dropdown set to Name, the criteria dropdown is set to Contains, and then you can type in part or all of the name of the file for which you're searching. Simple enough.
The first dropdown can be changed from Name to Extension, Last Modified Date, Created Date, and more.
You can search by folder names or path, and even comments or tags.
You can choose to You can search invisible items, which is a great way to find those elusive dot files.
You can search inside package contents, which is the way applications actually work, they're packages.
And you can search inside trashed contents.
You can limit the folder depth, which is something I've often wanted.
You can even limit the amount of returned items.
You can add filters together to narrow your search. You can't do OR, so they're always ALL, if that makes any sense. so every search is kind of additive.
[23:50] Anyway, I thought it would be fun to search for all files containing IMG with the MOV extension.
Find Any File tells you that if you choose the extension filter, don't put in the dot, so just search for extension is MOV.
This search should find all QuickTime movies that were taken on an iOS device since they always start with IMG.
While I just made up this search off the top of my head for something to do for the review, I was very surprised and pleased by what Find Any File found.
It didn't dig inside my photos library to look for these IMG files, but it would be interesting to see if searching in package contents could do that.
But it still found 3,322 QuickTime movie files on my disk, not inside photos.
Guess where they were? They were stored inside my library folder as attachments in Messages. messages.
This was interesting because I'm not even a big messages user.
I made all my friends and family switch over to Telegram a long time ago.
While this is interesting in and of itself, what was really interesting to me was when I sorted by size, I found not one but two copies of a 3.5 gigabyte video file.
The best part is that when I use Quick Look to view the video from inside Find Any File, it's over five minutes long and only the first two seconds are even vaguely of interest.
98% of the video is either black or pointing at the carpet.
[25:19] I started wondering, who would I have sent such a dreadful file to?
So I started searching inside Messages for the file name, but I didn't find it there.
I looked more closely at the file path, which was provided at the bottom of the Find Any File window, and I found it was in allison-library-containers-messages-data-tmp-temporary-items-com.apple.mobile-sms.
And it was buried even further down. One of these was in a copy, one copy was in media, and one was in something called linked files.
Using the path bar I just mentioned from find any file, I double clicked on the lowest folder names and indeed, I found two 3.5 gigabyte movie files of my carpet.
One was not a copy of the other because it said linked files.
That's what I thought I might find. But there were two copies.
It's unbelievable to me. there is seven gigabytes of disk space I can get back for the shareware price of $6 to the developer of Find Any File, Thomas Templeton.
[26:24] Now I know this has all been about me and my silly file, so let's get back to the interface of Find Any File.
Once you've got the results of your search, you can continue to see it in the standard list view where you see name, kind, date modified, and size across the top.
And you can sort by those columns simply by clicking them. You can also use the standard right-click on the top and add more columns for things like Date Created or Added, Last Opened, and more.
Efficient file searching with List and Tree View options
[26:50] For search results with thousands of hits, List View is pretty good, but if you got more manageable results, you might want to use the menu bar to change the view to Tree View.
This is kind of an exploded view that shows you the full path to the file in a staggered set of open folders.
It's kind of hard to explain, but it's much easier to read than the full path in the path bar, so it could be very helpful.
[27:13] Continuing across the top of the menu bar, you can choose how to deal with invisible files.
The three options are show, hide, and show only invisible files.
There are the same three options for how to deal with package contents, which allows you to peer inside applications, as I said.
Finally, there are the same three options of show, hide, and only show trashed items.
As if that weren't enough options, once you have your search results, you can search within your search results.
I knew my 3.5GB movie file had the number 1910 in it, so I searched the more than 3,000 results for 1910 and it immediately came back with the impressive tree view of how buried my movie files were, and you can see them all in one little window with that full path.
When you're done enjoying this interface, the last button in the menu bar is Purchase.
I love the window that pops up. As Christian said, this is the epitome of what shareware used to be like.
The window says, Dear user of Find Any File, I am Thomas Templeman, the author of this program.
I've put a lot of time into making Find Any File, which you are now able to use and find out how you like it.
Please consider making a small donation to encourage further development.
It only costs a few dollars, much less than a lunch out.
You will then get an email explaining how to stop this reminder from appearing.
Write me at templeman at gmail.com.
[28:41] How delightful is that? The payment page has a dropdown showing $6 as the minimum, $10 as generous, and $15 as very generous.
I was so enamored with the speed and utility of Find Any File in just this one quick experiment that I was feeling very generous.
Thank you again, Christian, for this great find. See what I did there.
And as you said, this was a great reminder of the legacy of Tim Verporten.
[29:09] Last week I walked you through how I was able to create a Bash shell script to perform OCR on PDFs using the open source library OCRMyPDF that George from Tulsa taught us about.
I was very proud of my little script. But I realized that running a script isn't a very mainstream thing to do.
I also thought it was a bit cumbersome for me to run for myself.
If the next time I need to run a shell script is six months from now, I probably won't even remember the name of the script, much less remember where I put it and how to run it.
I got the idea to put the script into Keyboard Maestro, which I think is a smidge more mainstream.
It's still on the nerdy side to set up, but I knew you could run shell scripts inside Keyboard Maestro, so it would be a lot easier to run the script.
In Keyboard Maestro, you can create macros that you can run from a keyboard shortcut or they can be triggered by events on your Mac. It's very flexible in that way.
I didn't want anything fancy, but instead I wanted the option where you simply select the macro in a drop-down from Keyboard Maestro's menu bar item.
That way I wouldn't have to remember a darn thing the next time I needed to OCR a PDF.
[30:15] In case you started at this point in my story and didn't hear the previous installment, to make this Keyboard Maestro macro work, you'll need to install the open-source library OCRMyPDF using Homebrew.
That process is explained in detail in my previous post on this subject.
It's pretty easy, though. You install Homebrew, and then you install OCRMyPDF.
Two command commands super easy but takes forever.
Not forever, but it takes a little while.
All right, this started out pretty super easy.
In Keyboard Maestro, you build up a workflow by dragging different actions in.
One of the available actions is called execute shell script.
I assumed I could copy and paste my shell script in and I'd be done.
I was quite wrong. The first thing that threw me for a loop was when Keyboard Maestro, in executing my shell script, saw the command to OCR my PDF and said, what you talking about Willis?
Basically, it told me, I don't know that command.
It seemed odd since when I ran the same shell script from the terminal, my system does know the command.
Way back in Taming the Terminal chapter 13, Bart spent a lot of time explaining something to us called PATH, in all capital letters.
I'm going to admit right here in front of Bart and Country that I never understood what he was talking about until I ran into this problem with Keyboard Maestro not knowing the command and that Terminal knew all about, but as Bart likes to say, the penny finally dropped for me on this whole path thing.
[31:39] Command line apps, or libraries as they're often called, can be installed in different places, and the operating system has to know where they are in order to run them.
Apps installed by Homebrew, if you're on Apple Silicon, are in slash opt slash homebrew slash bin, and in this case it'd be slash ocrmypdf.
But other commands like ls to list your files are stored in slash bin.
Since commands can be stored in all different places, there needs to be essentially a directory that knows all of the places that apps could possibly be stored, and that directory is called path.
Clearly, Keyboard Maestro doesn't have access to my path because it didn't know where OCR MyPDF was in order to run it.
I needed to figure out how to actually teach Keyboard Maestro where to look for my installed apps, and it was trickier than I'd hoped.
[32:29] One answer was to set up an environment variable in Keyboard Maestro.
Now, don't anybody tell Bart, but I don't understand what environment variables are yet either.
Even though he's told me about them a lot of times. But shh, just don't tell him.
In Keyboard Maestro, if you open Settings, which when open will call itself Preferences, there's a tab to define variables.
I created a variable called env underscore path for environment path.
I needed to give that new variable the current path on my system, which is pretty easy to find.
In Terminal, you simply type echo $PATH, all capital letters.
This spits out into the terminal where all of the good stuff is stored.
Buried in PATH were two directories I knew were important to this exercise, that one I mentioned, slash op slash homebrew slash bin and slash op slash homebrew slash sbin.
These would tell Keyboard Maestro where to find OCR in my PDF, since I'd installed it with Homebrew.
Last week, when I explained how my shell script was constructed, I told you that the first input to the script gets a pre-assigned but ephemeral variable name of $1.
Unfortunately, Keyboard Maestro didn't recognize $1. Instead of throwing a useful error such as unknown variable $1, the unhelpful error it threw was MacroCancelled execute a shell script failed with script error usage colon der name string and some square brackets and some dots.
[33:54] I didn't know what that meant, but luckily the awesome developer of Keyboard Maestro, Peter Lewis, has a good user manual, and on the page about running shell scripts, he explained that instead of $1, Keyboard Maestro uses an environment variable, again, $KMVAR followed by an underscore followed by the input file name.
So, in my shell script, I assigned my own variable using the syntax inputName equals $1.
In Keyboard Maestro, it needs to change to inputName equals $KMVAR underscore inputFile.
Not that bad, once you actually read the documentation.
The next piece of the puzzle was how to get the macro to run on any selected file in the finder.
Using my new pal GPT as my little assistant, I asked it how to get a Keyboard Maestro macro to work on a file selected in the Finder, and it gave me several options, all from the Keyboard Maestro wiki manual.
Of the options ChatGPT suggested, the one that sounded easiest to implement was to add an action called For Each, and to use the Finder Selection Collection token.
This is probably the biggest value ChatGPT is bringing to me.
I can jabber away at it, just kind of describing the thing I'm looking for, and it returns the correct terminology.
I would never have thought to search for for each in Keyboard Maestro's action list, but armed with the terminology I needed, I was able to search the Keyboard Maestro support wiki for the documentation and get moving.
[35:24] I'm making a big deal about this, but I really only needed to do three things to convert my shell script into a Keyboard Maestro macro.
Tell it where the Homebrew app was, set up a variable to take the input file, and tell it how to find the input file.
The macro was now functioning, so I decided to add two enhancements to my Keyboard Maestro macro.
Since the macro works silently as it does the OCR, there's no way to know if it's working properly or maybe doing nothing at all.
Keyboard Maestro has a Display Progress action that will pop up a little progress bar, so I thought that'd be a good way to tell the user that it's working.
But the progress bars are a lie. I'm serious, they really are.
You give the Display Process action a title, and then you just arbitrarily assign a level of progress.
You literally make up a number, and it creates a progress bar with that value.
I chose 50%, but I really should have set it to something like 63.5% just for the comedy.
The progress bar and notification enhancements
[36:23] Now here's another thing about the progress bar. It never goes away unless you put in a second progress bar at the end of your macro that's set to 100%.
It's a funny way to do things, but I suppose these make-up progress numbers are just about as useful as the supposedly real ones we look at all the time on our computers.
The final enhancement I did to my Keyboard Maestro Macro was to add a notification to tell the user that it was complete.
I couldn't find notifications in the list of actions, so I asked my co-pilot, ChatGPT, what it was called in Keyboard Maestro, and it told me to look for Display Text.
I had some fun with it and added some happy clapping emoji to celebrate completion.
I lied. There was one more enhancement to my Keyboard Maestro Macro to OCR PDFs.
I put in a comment box, and I called it Requirements, and I set the color to red.
This is where I make sure the user knows that they have to install OCRMyPDF from Homebrew before this will work and how to put path in the environment variable in settings for Keyboard Maestro Macro.
The good news is I know everyone will read the requirements and setup before trying to run it, right?
[37:33] Sure they will. To use my little macro, I simply select a PDF in any Finder window and then select the Keyboard Maestro menu bar item icon and my macro is listed right there.
When I select it, the macro runs, I see a little pop-up window pretending to tell me about the progress, and when it's done churning away, my shiny new OCR file is created and I get a notification.
I've included in the show notes a link to download my Keyboard Maestro macro and a screenshot in the show notes so you can play with it yourself if you like.
As always, make sure it's not set to auto-run so you can study it first and make sure I didn't put anything nefarious in there. By the way.
[38:14] I mentioned up front that a couple of things that I worked on this week were turned up bust.
One of the problems I'm having is I'm not sure this will run on an Intel machine, if it's not running a supported operating system.
It might not run on Intel at all, in fact, I'm not sure. That's what I'm still working out on the on something else that I'm doing.
But for right now, I think this is probably only reliable on Apple Silicon.
If you want to access this macro by selecting a PDF in any Finder window and then clicking on the Keyboard Maestro menu bar item and selecting the OCR macro, you have to follow one more step.
Once you import my macro into Keyboard Maestro, if you want to run it via the menu bar, you have to put it into a group and you have to set the whole group to display in menu bar.
[39:03] You'd think I'd be done with this explanation of how to OCR PDFs using my shell script inside Keyboard Maestro, but you would be wrong.
In the middle of figuring this all out, my variables weren't working properly, so I posted my macro and a question to the forums for Keyboard Maestro.
A lovely person named Rob Griffiths, whose name sounds very familiar and I feel like I might know him.
Anyway, he goes by Griffman in the forums and he explained the problem to me.
Since my input file is like a human named file with spaces in it for the title, for my script to work properly, I need to put the variable names all inside quotes to preserve those spaces.
I went back and fixed it in Keyboard Maestro, but I also fixed it back in my original shell script, the one I told you about last week.
That one won't work on file names with spaces either, unless you take this new one.
[39:56] But Griffin did one more thing to help me. Remember that most of the steps in my little script are designed to take my input file name with its full path, break it up into pieces, and then reassemble it into an output file name.
For example, if the file is at slash user slash allison slash desktop slash myfile.pdf, then I need to build the output file as the same thing, but myfile-ocr.pdf.
Griffin explained that you can do that same job using a single action inside Keyboard Maestro called split path.
I'm not going to go through all of the details, but I put a screenshot in the show notes of how simple it is. Grifman explained that my shell script could then be quite simply the running of the actual OCRMI PDF command.
The macro using Grifman's solution is simple and elegant.
If this simplified version is more to your liking, I've included a link to download that version as well.
[40:50] The bottom line is I'd like to thank David Roth and Joe from the Northwoods for their tireless testing of my keyboard maestro macro as I got it working.
They found edge cases and just plain old mistakes that kept it from working, and that was invaluable to me.
Now David Roth actually needs this macro, as he runs into non-OCRed PDFs all the time that he needs to convert so they're searchable, and he was quite grateful for my work on this.
After we had it working, I asked him, is there anything about this that you wish worked differently?
His answer cracked me up. He said, I'd really like to be able to trigger it without Keyboard Maestro, which I seldom use.
[41:30] Well, you know what this means, don't you? There's a part three to this story.
I promise it won't be nearly as dense as parts one and two, because the final solution is delightfully simple and easy to use.
I'll give you a spoiler. I created a quick action that allows the user to simply right-click on a PDF and select the action to OCR the file.
At this point, Mike Price is yelling, I told you so!
Into his phone because he suggested that very solution ages ago.
If I'd listened to him straight away, think of all the things I wouldn't have learned.
[42:05] Well, that is going to wind us up for this week. Did you know you can email me at allison at podfeed.com anytime you like? If you have a question or suggestion, just send it on over.
Maybe you get a fun little toy for Christmas or Hanukkah and you want to just send it on over with a little review for us for the show for New Year's. That would be swell.
You can follow me on Mastodon at podfeet at chaos.social.
Remember, everything good starts with podfeet.com. If you want to join in the conversation, you should absolutely join our Slack community at podfeet.com slash slack, where you can talk to me and all of the other lovely nocilla castaways.
You can support the show at podfee.com slash patreon or with a one-time donation at podfee.com slash paypal And if you want to join in the fun of the live show head on over to podfee.com slash live and Sunday nights at 5 p.m Pacific time in January and then you can join the friendly and enthusiastic, docila castaways Happy holidays to the live show audience.
But remember we have two more shows this year. Thanks for listening.
[43:07] Music.