RSSAmplifier

Blog

H. Mijail's Blog

Running away from the comfort zone

hmijailblog.blogspot.comRSS feed ↗25 posts

Latest posts

Migrating from Logseq to Obsidian - the hidden post

I just noticed that the Logseq forums tend to hide critical posts, so I thought I'd link here the posts where I explained my migration from Logseq to Obsidian, the trouble you'll find and how it can be fixed.Some background I loved Logseq and was a subscriber for months, until I got fed up with the data loss, the constant CPU wastage and general unreliability. Around then is when the

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

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!

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

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

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. (...

Así hace un Valenciano e̶x̶p̶a̶t̶ emigrante una paella con arroz integral

Viviendo fuera de España como expat emigrante es difícil (y caro) encontrar arroz bomba para hacer una paella de verdad. Pero además, si estás intentando reducir hidratos de carbono en tu dieta, el arroz en sí es ya un mal paso.Así que me puse a hacer pruebas para hacer una paella con arroz integral normalucho, del que encuentras en cualquier supermercado. Y lo conseguí. Resulta que no es tan

A script to announce new chat messages in Zoom

Available at https://github.com/hmijail/announce-zoom-chat-messages. It's so disheartening to see AppleScript to stay so ... unloved. It was never easy to deal with it, enough so that I decided this time to force myself to get into the newish JavaScript syntax. And yes, that eases the syntax; but the whole ecosystem feels so devolved since the last time I used it. Even Apple's own Accessibility

Bluetooth audio latency, codecs, when does it matter

These are some random-ish observations regarding Bluetooth audio latency vs "codecs". This started life as a long comment trying to untangle a messy thread in Wirecutter's review of bluetooth speakers, but since it covers a lot of things that I periodically forget about, I'll have it now as a refresher for myself next time I'm checking BT headphones. A couple of pre-clarifications: Different

YOU could have invented the LMAX Disruptor... if only you were limited enough!

This is about a shocking realization I got while learning about the LMAX Disruptor – a data structure / architecture that got published in 2011 and made some waves across the web because it allowed LMAX to process +6M transactions per second on a single thread. In Java. Which was interesting because Java was (still?) supposed to be too slow for that kind of thing. By then I was already a couple

Macbook 2013 vs 80 MHz WiFi channels

I found that the WiFi on my MacBook Pro (late-2013) works slowly on 5 GHz / 80 MHz channels (topping out at about 30 Mbps). Enough so that it's at least 3x faster when connected to the 2.4 GHz band in the same router (and I say at least because I can't measure any higher). So, if your router works in the 2 bands and your Mac is switching between them transparently (as it usually does, which

CrashPlan complaints

After a couple of months using CrashPlan I wrote about its awkward feature set and their interactions. The awkwardness didn't negate that it seemed to work well enough, better than the alternatives I tried at the moment. Still, it was also bad enough that it motivated me to keep my TimeMachine local backup, even though my earlier idea was to get rid of it. 8 months later, I'm fed up enough with

CrashPlan limitations

After a few weeks using CrashPlan PRO for small business (not the free tier!) I tried contacting support to ask how to do some underexplained things, and/or to open some bug reports/feature requests. Like: How to know which were the last backed-up files? or, when was a file last backed up? (maybe some useless-but-frequently-updated file is slowing down backups of bigger and more important files

Review of air purifier Prem-i-Air Invierno and air analyzer AirVisual Node

Living in Warsaw, I got tired of worrying about the air quality – which some days during winter got reported as worse than that of infamously polluted Beijing. So some months ago I bought an air purifier. I had a number of doubts about how to use it so it was effective: does it have to work all day? The purifier's power level depends on the room's size, how do I know that it's working as it

User-site-installed python packages, and PATH modification

Python makes it apparently easy to install packages. Just use pip, or any of the other more-or-less old and deprecated ways to install them, right? (heh) The first difficulty is that maybe your system's Python needs sudo to install those packages, and you don't want (or even can't) use it. The definitive solution is to use virtual environments, but that can feel like going too far in the "

Installing Ubuntu 16.04's friends into an iBook G4 with a USB pendrive

I had an old iBook G4 that could be useful for an elderly person, to be able to do her banking and basic internet browsing without having to use an XP-vintage, molasses-slow, honeypot-aspiring PC. There's a reasonably complete and up-to-date guide in https://ricanlinux.blogspot.com/2015/03/ubuntu-mate-on-my-ibook-g4.html. I had to change a couple of details; and there are a couple of practical

Grand Central Dispatch for Android?

(Sometimes after a couple of hours of research, the result is a dead-end or needs further digesting. Still, such a result might itself still be worth remembering. This is a Quick&Dirty report of one of those cases.) GCD is an implementation of thread pools / queueing (+ event management (sockets, files), etc) by Apple for Mac OS X / iOS. It was open-sourced, and FreeBSD got an

Cocinando con citrato sódico casero

Parece ser que un ingrediente típico para la "cocina molecular" de Ferrán Adriá y compañía es el citrato sódico, que se usa por ejemplo para esferificaciones, caviar de frutas y cosas así. Pero también se usa para algo mucho más simple y usable en casa en el día a día: ¡queso fundido!, que queda genial para salsas, dips, incluso fondues. ¿Pero cuál es el problema? Fundir queso es fácil, ¿no? En

GitFlow (and friends) with remotes: avoid the busywork

If your local feature branch tracks origin/feature, you are probably working extra, no matter your flow. There are lots of places online where one can learn about GitFlow, but it's seemingly always discussed in a local way; the details, subtle or not, about using GitFlow when you are pushing and pulling your changes through the network are never mentioned. Now, GitFlow is a bit long on the

Doxygen error parsing in Eclipse CDT

Eclipse (or is it the CDT?) has, by default, some Doxygen integration: if the preferences are set appropriately, Doxygen-style comments are highlighted differently, and Doxygen commands in those comments are further highlighted. But that's about it. A particular missing feature is that errors in the comments are not highlighted in any way; and that's what made me look for a better alternative.

repo sync --force-sync overwrites your existing repository!

I couldn't find any good explanation of what does Android's repo's --force-sync do, nor why it can be needed. So I'm reporting my painful findings in repo 1.22. Looks like repo keeps track of the repositories that it has init'ed. So if you created a repository independently of repo, and then add an entry for that existing repository to the repo manifest, repo sync will choke and present you

BPM-showing players for iOS

It's surprisingly difficult to find a way to browse one's music library on the iPhone together with the BPM values that were set on iTunes. Note that the BPM value is stored in the iTunes database, not in ID3 tags in the individual songs. I was surprised by this; I rather expected iTunes to offload as much information as possible onto the actual files. And probably that would be the best option

An IS_DEFINED() C macro to check whether another macro is defined

Every C programmer knows to use #defines and #ifdefs to disable compilation for a piece of code. But not everyone knows that there are better ways; the problem with this strategy is that the code becomes invisible to the compiler (and "smart" indexers), which means that it stops being checked for correctness. Also, if the rest of the code changes substantially, like variable renaming, function

Tweaking Waf for integration with Eclipse CDT

First, the way not taken: there is an official Waf extra named "eclipse.py" which theoretically creates the files that Eclipse expects in a project. But that extra is from 2011; both Waf and Eclipse have evolved since then, and I didn't have the time nor inclination to dig into both Waf and Eclipse internals. Also, what would be the end result of that extra: only build support, or full indexing?

Flame Graphs vs Instruments in OS X: using Intel's Performance Counters

TL;DR: as of last update for OS X 10.11 / Instruments.app 7.1, you can't really create meaningful CPI Flame Graphs on OS X because of bugs in Apple's tools, both GUI and command-line. There are some alternatives and workarounds; for an alternative to a CPI Flame Graph, Instruments.app might be good enough. I sent 6 bug reports to Apple, and 5 of them got marked as duplicates; so maybe some