 Hi, this is Allison Sharon into the NoCillicast podcast, hosted at podfeed.com, a technology podcast with an ever so slight Apple bias. Today is Sunday, December 17th, 2023, and this is show number 971. Before we get too deep into the show, I wanna 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 assured on content for the New Year's show. So if you get a toy as a gift and you wanna 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. With so many people traveling this time of year, it's up to the NoCillicast 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 troublemaking 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 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. You know, 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. 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 AI to caption my photos. It's super cool and it's free so I wanted to walk you through how to do it. 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. 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 wanna 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. All right, 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 as 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. 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 of 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. 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 gonna be where we're gonna 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 explained that the Be My AI application can analyze faces, but it cannot identify people. 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. Be My Eyes will request access to the camera and you have to say yes if you wanna 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. 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's 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. 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 wanna remind you of something Tom said when I bemoaned that my captions weren't worthy after seeing what Be My AI can 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 photo's library and add a caption to it created by Be My AI. This is the use that Tom really likes. With the photo selected, hit the share sheet icon, which is the square with the little up arrow, and then swipe up. Be My 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 edits actions button to move it closer to the top since I plan on using Be My Eyes, or Be My AI, often. 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. 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. 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. 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 might be an even easier way for you to add alt text. To recap, so far we open photos to the image we intend to post a mastodon. We use 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? Well, 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 wanna 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 wanna 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 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. 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 Mona app at mastodon.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 gonna fix it. 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 mastodon client does not 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. 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 sub-menu for advanced settings. Within advanced settings are four options with toggles and finally another sub-menu 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. Back on a happy note though, I'm gonna 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 wanna restrict anyone from enjoying the incredibly clever content I post online? You can learn more about Be My Eyes at support.bemyeyes.com and in the immortal words of Peter Faulk playing the detective Colombo, 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 pics. Ice Cubes app nailed this feature. Well, you know I had to install Ice Cubes 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 like to think of him up there sailing with dad. Sentimentality aside, I decided to test and see what Ice Cubes would add as a caption. It automatically with no intervention on my part at all wrote 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 wanna correct the alt text because Ice Cubes 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 either turn down wind to 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 his 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 seawaters under a clear sky. I gotta say that Ice Cubes 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 Ice Cubes 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 shearware 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 podfeed.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 sent along his review and I love that he preempted my request because he knows I was gonna 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 gonna 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. Yesterday I had to delete an app because it did not work any longer for me. Although I have Hazel's app sweep 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 wanna 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 F-A-F. 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. It 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, et cetera. It's a shareware 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. 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 podcast over all those years. Merry Christmas to you and your family and to all the no-sella castaways. All right, so now we're back in my voice. I wanna thank Christian for sending this in because I downloaded FindAnyFile and I gave it a whirl and I found another really interesting use for it. So I'm gonna go a bit deeper to explain the interface than he did and what it can do. 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, FindAnyFile 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, a 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. 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 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 trash 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. 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. Now 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 QuickLook 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 point to get the carpet. 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 Allyson slash library slash containers slash messages slash data slash TMP slash temporary items slash com dot apple dot mobile SMS. And it was buried even farther 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. 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. 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. 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. They're the same three options for how to deal with package contents which allows you to peer inside applications, as I said. Finally, they're 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.5 gigabyte movie file had the number 1910 in it so I searched the more than 3000 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 Tempelman, 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. So how delightful is that? The payment page has a dropdown showing $6 is the minimum, $10 is generous and $15 is 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. Last week, I walked you through how I was able to create a bashed shell script to perform OCR on PDFs using the open source library OCR My PDF 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 to think fancy, but instead I wanted the option where you simply select the macro in a dropdown 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. 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 OCR My PDF 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 OCR My PDF. Two command line commands, super easy, but takes forever. Not forever, but 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 and executing my shell script saw the command OCR My PDF and said, what you talking about, Willis? Basically it told me, I don't know that command. This 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 gonna admit right here in front of Barton country that I never understood what he was talking about until I ran into this problem with keyboard maestro not knowing the command that terminal knew all about. But as Bart likes to say, the penny finally dropped from me on this whole path thing. 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 an Apple Silicon are in slash opt, slash homebrew, slash bin and in this case, it'd be slash OCR My PDF. But other commands like LS, the 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 My PDF 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. 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 him a lot of times which 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 dollar 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 when I mentioned slash opt slash homebrew slash bin and slash opt slash homebrew slash S bin. These would tell keyboard maestro where to find OCR 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 dollar one. Unfortunately, keyboard maestro didn't recognize dollar one. Instead of throwing a useful error such as unknown variable dollar one the unhelpful error it threw was macro canceled execute a shell script failed with script error usage colon dur name string and it's square brackets and dot. 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 dollar one keyboard maestro uses an environment variable again dollar KM var followed by an underscore followed by the input file name. So my shell script I assigned my own variable using the syntax input equals or actually sorry it was input name equals dollar one in keyboard maestro it needs to change to input name equals dollar KM var underscore input file and 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 chat GPT suggested the one that sounded easiest to implement was to add an action called for each and use the finder selection collection token this is probably the biggest value chat GPT 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 I make it 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 Humber 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 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 chat GPT 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 OCR my PDF 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 set up before trying to run it, right? 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 turning away my shiny new OCR file is created and I get a notification I've included 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 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 when I'm still working out on something else that I'm doing but for right now I think this is probably only reliable on Apple Silicon if you wanna 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 wanna 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 now you'd be 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 but Griffman 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 my file dot PDF that I need to build the output file as the same thing but my file dash OCR dot PDF Griffman 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 Griffman explained that my shell script could then be quite simply the running of the actual OCR my PDF command the macro using Griffman 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 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 they kept it from working and that was invaluable to me now David Roth actually needs this macro as he runs runs into non OCR 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 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 listen to him straight away I think of all the things I wouldn't have learned well that is going to wind us up for this week did you know you can email me at allisonatpodfeed.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 podfeed at chaos.social remember everything good starts with podfeed.com if you want to join in the conversation you should absolutely join our Slack community at podfeed.com slash slack where you can talk to me and all of the other lovely no-silla castaways you can support the show at podfeed.com slash Patreon or with a one-time donation at podfeed.com slash PayPal and if you want to join in the fun of the live show head on over to podfeed.com slash live and Sunday nights at five p.m. Pacific time in January and then you can join the friendly and enthusiastic no-silla castaways happy holidays to the live show audience but remember we have two more shows this year thanks for listening and stay subscribed