Ilias

@galarius
4 Followers
20 Following
16 Posts

macOS software developer working in cybersec.


Here on Mastodon to share insights and notes from the various fields I've encountered over the years.

GitHubhttps://galarius.github.io
It was great to see that OpenCL 3.1 has been recently released, and the working groups show no signs of stopping: https://www.khronos.org/blog/opencl-3.1-is-here
OpenCL 3.1 is Here

On the eve of IWOCL 2026, the Khronos® OpenCL Working Group has released OpenCL™  3.1, bringing widely deployed, field-proven capabilities into the core specification to expand functionality, including SPIR-V ingestion, that developers will be able to rely on across conformant implementations. The new specification arrives into a growing OpenCL ecosystem, with implementations from multiple silicon vendors, particularly in mobile and embedded

The Khronos Group

My "OpenCL for VS Code" extension got a rather big update. I moved the code completion feature to the cross-platform language server and implemented it with libclang. Since the binary size has increased and the number of supported architectures has as well, I also added a downloader & installer to the VS Code extension.

As a bonus, I finally added the icon for kernel files which I wanted to add back in 2017, but it was not possible back then.

I had the opportunity to present my hobby project Kierrätyskartta for iOS at “HRI Loves Developers: Jätteet ja kiertotalous” (28.4.2026), a webinar organized by Helsinki Region Infoshare (HRI) in collaboration with HSY. It was great to be invited as an independent developer alongside professionals working on waste management and open data in the Helsinki region. 🌱♻️

Spent some time setting up an #n8n automation to categorize the digital graveyard of my Telegram “Saved Messages”.

It pulls recent messages and, depending on the type, analyzes images, processes tweets, or reads posts. Results go into #NocoDB as cards, with filtered views for categories and tags.

Everything is self-hosted, using a custom #llamacpp build with Vulkan on an Intel Mac to run Gemma 3 12B.

Set myself a mini-marathon: build something small but useful from scratch in ~2-3 weeks and ship it to the App Store. Mostly to see if I can still push through the last annoying 10% - and how well I can estimate a new project.

Result: an app showing recycling spots across Finland 🇫🇮♻️

Had a pretty good idea what to do - and of course still got ambushed by a couple of unexpected gotchas. Nevertheless, finished on time. App Store approval on the first try 🎉

https://apps.apple.com/fi/app/kierrätyskartta/id6757157926

While on vacation I hacked together a macOS Console-like app that monitors XPC connections. It shows details about the initiating process and the XPC service being contacted.

Right now it includes streaming mode, search tokens, and some basic anomaly detection. Pretty niche, I know, but I’ve got some promising ideas to make it genuinely useful for security researchers and developers… if Apple approves the distribution entitlement I need to release it.

https://xpc-monitor.github.io

SPM + GTest

If you need to expose a C++ library with #gtest via #spm, there is a straightforward way to wrap existing tests with #xctest:

1. Add gmock as a .systemLibrary target in your Package.swift and link it to your .testTarget.

2. Create a module map and an umbrella header for gmock.

3. Create an Obj-C++ adapter that wraps GoogleTest with XCTestCase.

🚀 CMD + U

On macOS, fts supports per-thread version of chdir(), even though it's undocumented!

Set the FTS_USE_THREAD_FCHDIR environment variable, and fts will internally use pthread_fchdir_np() instead of fchdir().

This allows different threads in your process to have different current directories.

🐞 Debugging Story: Weakly Linked Frameworks

I noticed that a product with extensive XPC communication was missing some data in its UI. There were no crashes, log errors, XPC interruptions — just an unexpected behavior. The issue? A few classes from a weakly linked framework were used in a variant not meant to rely on the framework. When the framework was absent, the dynamic linker nullified the weakly linked symbols, which unfortunately were never checked for nil.
(min. example below)

While implementing the “8080” instruction set, I tried to make extensive use of Google Tests framework for testing. However, it is not fully compatible with SystemC because: a) all components and connections must be set up before starting the simulation; and b) the simulation cannot be restarted, which makes testing components with dedicated threads problematic. In the project, I have workarounds for both issues.