Welcome to my May round up where I run through what I’ve been up to this past month. As usual, I have been quite busy, and in no small part thanks to everything going on at work with demergers and divestments, the first of which will be in effect as I write this. That’s not to say that’s done and dusted - that’s just phase one of divestment one. There’s a whole handover and standing up of systems to do now. But outside of work I’ve been busy too writing, experimenting, and trying to plan a few things about gearing up to get into the job market which looks like it will be next year now - so I have a long if rather busy run up.
ThoughtAsylum
The first post on my blog this month was one focused on Keyboard Maestro where I put together a macro group that runs as a continuous clipboard text capture. This is a feature I used all the time on Windows within the NoteTab editor when I was gathering information and I still find occasions on the Mac where I find myself wanting an equivalent. In the past, I had other workarounds that functioned but were definitely little on the flaky side. This time I put a bit of time and thought into it to come up with something a lot more reliable and less intrusive than my previous solutions.
Using this solution, you can continuously capture text, including from images such as screenshots, and the entire content is then available to paste as one contiguous block of text in one go. You can, of course, enable and disable this, so it does not run all the time, and clear this “Clipbook” store any time you wish.
You can read about how it works and download the macro group in the Keyboard Maestro Clipbook blog post.
The next post relates more towards my current day job, and you can expect more of these to be appearing amongst my other posts over the coming months as I raise my online professional profile a bit. Nothing different to what I used to do when I was a consultant a few years back, but this may be a bit of a shift for some of my more recent followers.
In my day job I currently work with enterprise learning technology, and one of my core competencies is around a product called SuccessFactors Learning. I am a member of various professional groups that work with this technology and in the discussion forum for one of them, there was a query about a feature request to SAP. In response to it, I suggested that, while not a direct solution, that a modification to the administrator’s home page within the system could help. There was some interest in how to do it after I had shared how I had applied a modification, and because it required a bit of deeper explanation as to how it worked behind the scenes, I said I would write and share with them a blog post about it.
The post is for anyone is used to an admin home page with a static welcome message and a picture of a fairground carousel on it. You can have something better than this curiously random standard image from SAP.
If you would like to understand how you can customise your SuccessFactors Learning Admin Home Page, then you check out my post.
Podcasts
Last month I noted that I had been asked by David Sparks to contribute an interview to his latest field guide. That field guide is now out, and I am sure some of you will even have a copy by now. The field guide is on one of my favourite apps, Alfred, the launcher (and automation) utility.
The field guides are video based courses where David walks through a particular topic/system/application in detail building up from the basics through to more advanced topics and setting you up for success. He puts a great deal of effort into these and this one has a lot of content. I have several myself and I find that they have been really valuable to help me get up and going flatter with things I am not familiar with, and make a useful reference for things I am familiar with, but where there are aspects I have not used before or use infrequently.
For this particular guide, some of my Alfred workflows were referenced and David figured it would be nice to have me on for a chat about my use of Alfred. I accepted the invite and I hope that everyone who grabs a copy finds that at least a little interesting.
You can access the MacSparky Alfred Field Guide here, and his other guides and learn.macsparky.com, and listen to a conversation about the guide on Mac Power users episode 796, which I also get a mention on.
For transparency here because I guess this could feel like an ad, I get no financial reward for anyone who gets the guide. I just get the karmic benefit of maybe more people hear about my workflows and get benefit from the effort I put into creating the workflows in the first place. The guides are David’s work. They are good value in my opinion, and as he says, ‘it’s how he pays for his shoes.’
Forums
There was a little up tick in my usual forum haunts this month, and while still quieter, there were hopefully a few places where I helped
Drafts
I shared some insights into a query about integrating Drafts with DEVONthink.
There was a rather nice comment on my Alfred Workflow for Drafts topic (for Doctor Drafts).
Lastly, there was a query about setting up the Add to Obsidian Note (Daily Note or any other) Drafts action.
Automators
A forum member recalled my TextSoap recommendation from one of the episodes and asked for some help using TextSoap to extract multiple text groups.
There was further discussion on a topic from last year about retrieving Brazilian car valuation data via Shortcuts.
Someone has apparently made a card game in Shortcuts that is freezing while running, but did not post any information about it. They mention not being able to post an image as a new user, but you can still post a link to the shortcut, which is so much more useful for debugging!
There was a question about creating an appointment in an iOS calendar using current caller details.
A new forum user had some questions about a Scriptable widget to show stock levels and tagged me for it in a self-reply. Sometimes I feel like I am just another LLM 😂
There was a chat about using Hazel and OCR to rename PDF scripts.
While assigning a Safari tab group in a secondary profile to a focus mode might not be available, I did have a suggestion.
There were some curious differences in saving a webpage to a PDF in a specific folder that came up.
Finally, a necro-post on a topic from 2020 on deleting items from Data Jar saw me create a new example shortcut, and once again extol the value of sharing shortcut links and not screenshots of shortcuts.
Other
In terms of other things this past month, well, it has been quite a busy one.
Internet Woes
I have been having various issues on and off since moving house with my Internet connection, but over the last five months, things have been particularly strange, and we have experienced a number of random slow-downs.
My current set up utilises a Mikrotik router and I started ferreting around in routerOS once more to try to use it to help me analyse the Internet slow-downs. Previously, I had seen bandwidth saturation from a PlayStation 5 (not mine), and my QNAP NAS (mine), so I wanted to ensure it wasn’t some rogue device on the network causing issues. The Torch tool got me so far, but never seemed to show much on mobile vs the same setup accessed via WinBox on the desktop.
I ended up creating a script that periodically runs on the router and creates specific queues for any new connections. On the mobile and desktop apps I can access the list of queues, reset their data counters, and watch them increment. It is a little crude, but it gives me a clear indication about the traffic.
To help keep things on an even keel, I also grabbed a copy of the Snail app by Murus. This was specifically for throttling bandwidth when downloading large models in LM Studio. I figured it would be a good way to stop bandwidth saturation.
Regardless, over the course of the month, nothing would show up, and the connectivity would vary. A good throughput would be 6–8 Mbps and often individual devices running speed tests would register at under 1 Mbps. Eventually, the last weekend of May, the connectivity dropped entirely. It came in and out briefly for a few minutes at a time.
I use my ISP’s auto check as usual, and it showed there was an issue, and they scheduled an engineer to check the local circuit that links to my home from a street comms cabinet about fifty metres from my house. We’ve had them do this before, and it is usually stable for a while after. This time, however, the engineer couldn’t find any issues and so actually visited my house.
After apparently suggesting to my wife that we would need to replace our “old” networking gear in a few years (even though it is only about a year old, business-level equipment, and replaced the junky Wi-Fi router they provided us six years ago, and that didn’t work properly from day one), he replaced the master socket which is the landline and Internet ingress point for the house.
Since that socket was replaced, our Internet has been stable and our Internet speed is almost three times faster - matching the speeds we were predicted when we moved rather than the minimums we actually experienced.
I still can’t wait to get full fibre in the area and get a more modern Internet speed, but until then, if we can maintain the current level then we will be happy.
Synology and Docker
This past month I started to add some Docker containers to the Synology NAS I added to my home network (to replace my ancient QNAP NAS).
The first one I got up and running was Audio Book Shelf. This platform is for hosting my own podcast feed. I am not hosting a podcast, but rather I can add audio files to storage on my NAS and have this generate RSS feeds, so I can listen to them via an RSS player. This means I can queue up old BBC Radio comedies I had ripped from CDs years ago as well as more recent content from creators like Julian Simpson. In future, I also expect to be generating audio from online articles and adding the files to the NAS, so I can listen to them later.
Overcast is my player of choice, but after lots of tweaking and testing, Overcast refused to accept the RSS feed. Apple’s Podcasts app accepted it just fine, but I wanted to be able to control things like the speed of playback. Not for comedy and narratives, but for articles and training content.
I resigned myself to using Plappa, which seems to be a capable player specifically for Audio Book Shelf. Not my ideal solution, but it fills the gap for me until such time as I either figure out a workaround for Overcast, or it gets a patch to allow the RSS feeds to work.
Before anyone asks, no I am not sharing the RSS feeds publicly. They are only accessible to devices connected to my Tailscale network.
I also spent more time than I would have liked trying to get the automation platform n8n up and running. I had all sorts of issues with configuration, and it took multiple articles and heavy use of AI chatbots to get it even up and running. Particularly frustrating was an issue where it would constantly forget my credentials and I would have to reconfigure it again. It turned out that particularly thorny issue was down to something to do with how Safari (specifically) handles .local domains. I eventually resolved it by creating a custom static route on my router along with a reverse proxy to access on my internal network via n8n.lan.
While I did technically get HTTPS working, the result was that it broke about 60–70% of the functionality in n8n. So it is currently siloed and running on HTTP while I am exploring the functionality it offers and seeing if it could help me do anything I would like to with automation.
Sound Effects
I do like my audible notifications for when things happen, but using the standard audio sounds only gets you so far, and I often struggle to find simple and free sounds online. I usually spend hours searching through Foley engineer catalogues, finding things that are frankly too realistic, too long, or too complex.
To address this, I have started creating my own simple sounds and have shared them via a GitHub repo (sound-effects). I will add to them over time, but if you just need a simple brief sound, then grab a file for free.
SAP HR Connect
The last of my currently planned work excursions for the year took place this past month when I attended an SAP event for people working in and around the HR solutions space utilising SAP products. It was a bigger event that previous years and gave me the opportunity to catch up with a few people as well as see what SAP was going to be bringing to the table this year.
Unsurprisingly, artificial intelligence (AI) featured front and centre, and it was good to see interoperability becoming a key concern to be addressed. This is something that I have been asking companies about for years. In fact, I directly asked this interoperability question to SAP and to several vendors for their AI chat interfaces at the same event last year. No one had a clue last year and everyone simply assumed you would use their AI user interface to do everything, and they would integrate with everyone’s systems.
Now we are moving to a much better approach for agents and for inter-AI communication, and it seems we are moving to an open model rather than a specific concierge or hand-off model. Honestly, I think that is the right choice, but I am amazed that it has taken the industry so long to realise that AI silos are bad when all they had to do was look at how humans work together.
SuccessFactors Learning, AICC, and An Embedded SharePoint PDF
Also, in my day job, I came across a rather interesting issue. I had obviously not paid close enough attention to a change in how AICC (a type of content format specification for use with a learning management system) had changed with launching externally hosted content. I rarely use AICC, but now SAP had added an extra launch step within SuccessFactors Learning for this type of content.
I was able to work around this for some SharePoint hosted content using a parameterised HTML wrapper (for an AICC-wrapper), and this could then seamlessly launch the resulting PDF. I plan to share the details of that on my blog soon so other SuccessFactors Learning admins and consultants can benefit from it.
However, I discovered some curious behaviour. While it all worked perfectly in my testing with a single page PDF, when I used the actual PDF content this was developed for, the first page did not load as the default.
To include the PDF, you have to use an embed URL from SharePoint rather than a share link, and when I was using this, it always loaded the PDF at page 1, then after a few moments (as the PDF loading completed), scrolled forwards to page 3. In fact page 3 regardless of how many pages there were unless it was only 1 or 2 pages in which case it navigated to the final page.
I thought it was a strange interaction issue, but when I tested the URL independently and in the original SharePoint embed code it had the same result. It seems that the SharePoint embedded PDF viewer component that the embed URL utilises has a bug.
Unfortunately, raising bugs with Microsoft has never been an option for me. Even when I have had large Microsoft customers as my own customer or employer, the result of trying to log an issue has always been the same. I always get directed to public feature request forums to log such issues. Years ago, I was steered to this conclusion when I proved that a core SharePoint RSS feed format was invalid and was told that I should raise it like this. I was also told that they could not just fix it as it might break things that existing customers were relying on - given it was broken for all users everywhere already. That was surprising.
No solution for this one I’m afraid, but if you see it, at least you’ll know, and hopefully at some point some fix will be made.
MacSparky Labs
Along with David Sparks’ other work, he also has a “MacSparky Labs” community, which I have now joined. I have attended but not yet contributed to some live sessions, and I particularly enjoyed the one on local AI, which is something I am now able to test out with my recently acquired Mac Studio. The advice from members attending that session was useful, but this is definitely an area I am going to have to dive deeper into.
I am acutely aware that I am late to the local AI ‘game’, and my results so far from using the local vs online models have been worlds apart. As yet I have not managed to get much benefit from hooking things into the new DEVONthink 4 beta, and my typical types of queries for online models are getting rather bare and inaccurate results locally. But, this may well be down to what I am used to, and I expect I need to adapt my use a little to get good results.
As a new joiner, my only contribution to the community so far is that I posted a reply (and a macro download link) about a revision to Davids’ Keyboard Maestro macro for fixing bad transcriptions on the clipboard - but you will need to be a community member to access that post and my comment. Though if you are interested in fixing bad transcriptions and have TextSoap, then my blog post on list content management is actually an explainer of how I did the processing for fixing transcriptions for the Automators podcast episodes for the Automators Obsidian Vault.
3D Printing
In 3D printing excursions this month, the main event was probably the design of a parametric ramp for radio-controlled (RC) cars. It was my youngest son’s birthday in May and I bought him an entry level RC off-road car. I knew that as well as driving it fast at our local park, he would want to do stunts and jumps with it too. While we could probably use boards and anything we could find to lift one end, I knew the best solution would be something that was designed to be a ramp and would not fall apart as soon as the vehicle hit it.
After some work in OpenSCAD, some prototyping, and a bit of thought on how I could make it modular, I came up with my parametric model. I have not uploaded it anywhere yet, but it is on my list. For the birthday car I printed two large ramps that took up most of the build plate in my Bambu Lab P1S, and these are latched together with some simple locking pins. The result was a ramp wide enough to accommodate the car, with a leading edge designed not to fracture and not to create a bump on entry, and a smooth gradual curve to give it the entry for some height on the jumps.
It works well and most importantly, my son loved it.
I also updated my 3D printing notes site with some new filament drying information.
Upcoming
With my relatively recent switch to the Mac Studio I have switched back from BetterTouchTool (which I still have installed and use) to the Elgato Stream Deck app to controlling my Stream Deck. While there was nothing wrong with the BetterTouchTool use, I found it was very slow to set up new keys and in the end it just was not giving me any advantage over the existing app that I could see. Certainly not for anything I was doing, and the Stream Deck software from Elgato themselves has had a lot of updates since I last used it and being able to access the custom plugins was potentially going to offer me more flexibility. So, with the switch of hardware, I also switched back to the Elgato software.
This was all fine until the 6.9.0 (69420) update that recently introduced browser selection for URLs and broke the URLs I was using for things like triggering Keyboard Maestro macros.
Of course, the obvious remedy was to switch to using KM Link by Corcules. This was the plugin I used when I first got my Stream Deck and is probably the de facto plugin for Keyboard Maestro - even mores than the official Keyboard Maestro plugin. However, there’s the odd niggle with the plugin for how I would like it to work. I have also been interested since I got a Stream Deck in building a plugin for it. It simply has not been at the top of my list to research and try my hand at it.
Well, not until this recent update. I am now working on developing my own Stream Deck plugin to meet some of my own needs and to add my own take on things. It is covering more than Keyboard Maestro, and I would not expect anyone to replace the use of KM Link with it, but if I get it to a place where I am happy with it and get it into the Stream Deck marketplace (it will be free), I will probably write a post about it too.
At the time of writing, I have been working on it for a few days, and it has over half a dozen actions, so it is coming along nicely, and I guess is not all that far off being ready to document.
I want to try to get some more of my models up onto my page on Makerworld this next month. While the models exist, I need to prepare the accompanying information to go with them. Given most of my models are parametric, they require a little more explanation than “just download and print”, which takes a bit of time.
I also need to return to the printing of the power tool trigger from April. The use of ASA for the trigger seemed to be better, but it only recently got tried, and it sheared. All is not lost, and it looks like a different printing orientation and some reworking of the design to be a bit bigger and thicker in places than the original may be possible. The hope is that this will then be able to address the shearing issue at two of the mounting pinholes.
Certainly, I have enough to keep me out, or is it in trouble this coming month. Thank you, as always, to everyone who has dropped a coffee my way. I truly appreciate it and I really do drink a lot of coffee (in fact I also recently got a rather nice large Airscape container for my local stash of beans).
Thanks for reading, and I’ll have another update for you all in about a month.