AI tools are transforming how we approach complex problems by automating tasks, enhancing decision-making, and fostering collaboration. This article explores the impact of AI on my software development work, ethical considerations, and the future of problem-solving in the AI-driven era.
macOS has always lacked a built-in way to route and mix audio on a per-application basis. Windows users have had per-app volume control for years, but on macOS, you need third-party tools to get anything close. I had been using a combination of SoundDesk, the Stream Deck MIDI plugin, and a Stream Deck plus with dials to solve this. The setup worked, but configuring it was fiddly. Then Elgato released Wave Link 3, and everything changed.
TypeBoost is an AI personal assistant that helps boost writing productivity by allowing you to apply prompts to text in any application. In this post, I test the tool to see how well it performs and how much it improves my productivity.
Opera Neon is a new browser with an AI assistant that interacts with web pages on your behalf, completing tasks that typically require manual clicking, typing, and navigation. In this post, I test the browser with real tasks to see how well it performs.
CleanMyMac has long been a go-to tool for macOS maintenance, but its recent addition of cloud storage cleanup is worth examining. In this post, I test the new feature to see how well it helps manage cloud storage across services like iCloud and Google Drive, and whether it's a useful addition or just a gimmick.
Four years into a full-scale invasion and a decade after Russia’s annexation of Crimea, Ukraine’s tech ecosystem continues to flourish at home and in exile around the world. After celebrating its 10th anniversary in 2024, Ukraine’s premier tech event, IT Arena, returned to the Arena Lviv Stadium for the first time since 2019.
Surrounded by digital devices, it's all too easy to use any number of them to access a world of distractions, rather than focus on doing what you need to get done. In a strange, ironic twist, many of the devices and operating systems now offer tools to help block and filter these distractions. When I split myself between macOS and Android, I had focus modes set on both (conveniently, both OSs call them the same thing), but I never found them to be that effective, as I'd have to keep remembering to keep the equivalent modes the same on both devices. Then I bought an iPhone and discovered that the focus modes mostly sync between devices. With the arrival of the "Reduce Interruptions" focus mode in the 2024 operating systems, I went all in on optimising focus modes to work as efficiently as possible, not only blocking and filtering as many distractions as possible, but also automating them as much as possible.
Have you ever tried programming with a language that uses musical notation? What about a language that never runs programs the same way? What about a language where you write code with photographs?
All exist, among many others, in the world of esoteric programming languages, and Daniel Temkin has written a forthcoming book covering 44 of them, some of which exist and are usable to some interpretation of the word “usable.” The book, Forty-Four Esolangs: The Art of Esoteric Code, is out on 23 September, published by MIT Press.
On May 23rd 2025, the MySQL database celebrated its 30th anniversary. Look at the usage trends for databases on DB-engine and MySQL and its owner since 2010, Oracle's own product occupy the top two spots. However, the same rankings show that the popularity of most of the top four is declining, especially for MySQL.
It has been in slow decline since the era of "cloud computing" began, but like many other areas of technology, it is the demands of and for artificial intelligence (AI) that are causing the most pressure. As it celebrates its 30th year, what is the project doing to remain relevant and competitive in the new AI age? With rivals hot on its tail and some of its biggest competitors offering fully compatible, free alternatives, how does it plan to survive for another 30 years?
Much like "googling" has become a generic term for searching, Grammarly has become almost synonymous with a general grammar and style checker, outside of those provided by tools like Word or Google Docs. I have used the pro version for several years, and while its advice is not always correct and inconsistent, it's generally a good aid in giving ideas and pointers for writing. However, every year, that subscription comes up for renewal, and I start thinking about alternatives and features I'd like to have that Grammarly doesn't offer. In this post, I look at the disappointingly few alternatives that exist.
Many organizations work with clients and infrastructure around the world and face significant challenges ensuring they follow privacy regulations as their application data flows across borders.
This post looks at how you can use Bacalhau to handle distributed cross-border processing and anonymize data with Microsoft Presidio to help meet some of these requirements.
API documentation is generally predictable, follows common patterns, and is one of the least interesting tasks in a documentation project. It's also a task with a degree of pre-existing automatic generation tools and practices.
It sounds like a perfect use case for AI-assistive tools!
In this post, I look at general and specialized tools for generating API documentation from code and text-based prompts. I also cover potential problems and pitfalls in generated docs and how to test the generated output to ensure its accuracy.
The Opera Web browser, first introduced 30 years ago, has over its long tenure helped to pioneer features that would later become commonplace among all Web browsers—including tabs, sync, and built-in search. Opera was among the first to introduce a built-in AI assistant (Aria) as well as the ability to use locally running models with its developer version. Now, Opera aims to be the first to offer a new kind of AI agent–based browsing, with a feature called Browser Operator.
Machine Learning requires vast amounts of resources, and distributing these resources across multiple devices and regions helps with cost, speed, and data sovereignty. Bacalhau is an open-source distributed orchestration framework designed to bring compute resources to the data where and when you want, drastically reducing latency and resource overhead.
Instead of moving large datasets around networks, Bacalhau makes it easy to execute jobs close to the data’s location, reducing latency and resource overhead.
The move to the cloud promised to save users money and give them insights into their usage and costs.
However, the opposite happened. A 2025 report from AAG stated that around 82% of respondents found cloud spending challenging. A cloudzero report from 2024 states that more than 20% of respondents had no clear idea of their cloud costs, with reports for large users sometimes consisting of thousands of rows of hard-to-read usage data.
Welcome to a new newsletter/post/radar/term-yet-to-be-defined from me that I have been planning for ages. I intend it to be something of a round up of tools and services i’ve been trying recently, plus also industry analysis and trends. To begin with it’s just the tools and service round up as the analysis part requires more thought that I haven’t had time for yet.
With many applications that rely on data warehouses, you need to keep data sources in different locations. This could be due to privacy or regulatory reasons or because you want to keep processing close to the source. However, there are still times when you want to perform analysis on and across these data sources from one location but not move the data.
This post uses Bacalhau to orchestrate the distributed processing and DuckDB to provide the SQL storage and querying capacity for some mock sales data based in the EU and the US.
When the modern-day internet began emerging in the early 2000s, finding hosting services and resources to run the new wave of dynamic web applications was hard. You needed a database to store application data. These were slow, expensive, and unreliable, regularly bringing applications to a grinding halt when a single instance failed. You needed a server to run interpreted languages like PHP, Python, or Ruby. These were equally expensive, often needed configuration, had security issues, and frequently ran out of memory or CPU resources, again bringing applications to a grinding halt.
For those of you in the Bazel ecosystem, when you hear "Dagger", you probably think of the dependency injection framework for Java, Kotlin, and Android. And for good reason. Dependencies are frequently part of a build process. But there's another Dagger in the wild, a tool and platform for ephemerally building and testing multi-language projects. Sound familiar?
In this post, I look at what (the new) Dagger is, how it works, and how it compares to Bazel.
Changes in recent versions of macOS have made running macOS and Linux virtual machines far easier and more performant. Primarily used for testing, a plethora of new applications that take advantage of these features emerged, so when Mac Stadium released a free desktop version of their long-running Okra range of virtualisation tools, one feature in particular stood out to me as something different and potentially useful.
I've been a mostly happy VSCode user for a few years now. So much so that I even maintain a couple of extensions for it. Before VSCode, I loved Atom. And before that… I can't remember anymore. But every now and then, it's good to look into alternatives and see how they compare, what options you haven't considered they offer, and if they bring anything new to your productivity.
Ruby’s creator, Yukihiro Matsumoto (Matz), released the first public version of the programming language in December 1995, making Ruby just shy of its 30th birthday. It spread across Japanese-language Usenet newsgroups, a popular way of exchanging conversation and media before the World Wide Web, and then reached broader communities throughout the late 1990s.
Developers talk a lot about “immutability.” Outside the technical world, it usually means something negative: unmoving, inflexible, and entrenched. However, in the technical field, these features become an advantage and mean that a system is reliable and reproducible.
I've been happily using [Parallels Desktop][1] for my Windows and Linux virtual machine needs for about the past three years. It's performant, supports a reasonable variety of guest operating systems, and, with some tweaks, can also run headless developer machines and Kubernetes clusters.
Installing and updating applications and other dependencies on a computer really should be a solved problem by now. Yet almost every major desktop operating system provides multiple options, with no real clear answer to “which is best.”
JetBrains is known for its variety of developer-focused IDEs, all based around its IntelliJ core. In recent years, they developed their own writer-focussed plugin, Grazie, for handling grammar and style guidance, Writerside for a wide variety of tech writing tasks, and more recently, an AI assistant for writers. The company has also helped with community-maintained plugins such as those for markdown and asciidoc. But then, a year or so ago, JetBrains announced that Writerside would become a fully-fledged tech writing IDE. I've been using it on and off for some time, and in this post, I take a look at some of its features, recent updates, and related plugins.
A few years ago I detailed the hardware and software I use for producing my podcasts and videos. Since then, I have changed a lot, so it seemed a good time to revisit.
In June, Kubernetes celebrates its tenth birthday. The system is now so widely used by hundreds of thousands of companies worldwide to scale their applications to meet demand it’s hard even to remember a time before it existed. But there was a time when other options were available, and I even remember using some of them.