Skip to main content

Posts

A semantic fuzzer for Obsidian Sync... in spite of Claude

I guided Claude Code to build a fuzzer to find Obsidian Sync bugs. It runs Obsidian instances in containers and makes them edit notes while it cuts their network connection.  And it works: it finds amusingly short sequences of operations that trigger data loss, and that you can verify yourself by running them manually on your own phone and computer. I got a functional prototype in 30h, but the next 30h turned into a painful bug treadmill, where at every turn Claude broke as much as it fixed.  So  I wrote an experience report: what went wrong, why research (and Anthropic's own docs) suggests that this was to be expected, and how to salvage the good bits. I posted the full experience report in Substack ; Blogger is not keeping up with the world. 

In quick praise of Quinn "The Skimo"

Apple is dismal with their documentation, and their Feedback Assistant is a cruel joke and waste of time that makes users and devs work for free for one of the biggest companies in the world – and then ignores them anyway. So when you're diving for information among the layers of deprecated debris, you end up noticing and remembering the rare nice nugget.  I've been noticing the name of Quinn "The Skimo" appearing at the bottom of many random dives, I'd swear since before OS X. And I just found that I'm not the only one remembering him! People in Hacker News also noticed the same .  So, I just wanted to thank you, Quinn "The Skimo"! (Possibly I failed to notice others with less memorable signatures... there's a lesson here)

Introducing DARUM - DAfny Resource Usage Measurement

Warum? Ach, darum! My team at Consensys R&D worked mostly with Dafny , the verification-friendly language. We enjoyed good success with it in our projects during the last few years; our extensive use got us a mention in Rustan Leino's Program Proofs book, and we even got a Best Paper Award in the 2022 edition of the International Conference on Formal Methods for Industrial Critical Systems! Unfortunately, our team at Consensys is no more. So I finished my tool DARUM for a v1.0 release, and this post aims to gather the lose threads and offer an easier entry point for external users.

What kext was that??

MacOS sometimes asks you to accept some system extension / kext. Unfortunately it can be difficult to clarify why, which can be scary. Sometimes you will only get notified that the kext signed by XYZ has been updated, and then it's on you to find out how to relate XYZ to a specific file and functionality in your system. I have found myself in the situation a couple of times, so in case it helps others, here's my notes to connect signers with kexts. BEWARE, just because something is in my list doesn't mean that it's OK in your system; instead, I recommend that (1) you re-confirm my information and then (2) decide if this kext makes sense in your system. If you don't know why you have some kext, maybe you should just remove it.

Lowest-latency Ethernet: Byte-oriented NICs? (deleted from StackOverflow...)

Back in 2017 I had a kinda esoteric question about Ethernet NICs with less-than-frame latency, based on my experience with networking software and hardware, and the evidence for something "atypical" being in use by High Frequency Traders. So I posted my question to Stack Overflow. The question got a lot of pushback, which I found bizarre. It had to be moved across 3 SO sites... and finally it stayed in SO proper, where anyway the only response I got was my own, when some days later I found the necessary information myself. Aaand a couple of years of inactivity later, the question just got deleted. 🤷‍♂️ I thought it was an interesting question (why would I ask it otherwise); it was an interesting collection of pushback; and had an interesting answer. So I saved them and here they are for posterity.

Home Assistant on macOS, the easy way

I almost got put off trying Home Assistant on my Mac because of the complex/useless installation instructions in the docs . For HA-OS, there's no KVM for macOS (you'd have to use QEMU), and VirtualBox is (still?) unavailable for current ARM (Apple Silicon) Macs. And the instructions for HA Core are off-puttingly involved, probably more useful for someone developing HA than for an end user. (... possibly a Python ecosystem-level problem...) Fortunately, it's actually much easier than any of that. I just gave feedback so hopefully it will be fixed in place, but just in case here's my instructions.