tag:blogger.com,1999:blog-68113369686192764202024-03-16T17:35:58.143+10:00H. Mijail's BlogRunning away from the comfort zoneHoracio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.comBlogger106125tag:blogger.com,1999:blog-6811336968619276420.post-45832221658849809722023-05-24T20:25:00.003+10:002023-05-24T20:26:44.339+10:00Home Assistant on macOS, the easy wayI 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. (... Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-60907327882543139062021-01-14T12:13:00.002+10:002021-09-27T15:18:12.821+10:00Así hace un Valenciano e̶x̶p̶a̶t̶ emigrante una paella con arroz integralViviendo 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com1Brisbane QLD, Australia-27.4697707 153.0251235-55.780004536178851 117.8688735 0.84046313617884394 -171.8186265tag:blogger.com,1999:blog-6811336968619276420.post-8326863173434170032020-07-25T00:41:00.002+10:002023-07-08T19:27:47.971+10:00A script to announce new chat messages in ZoomAvailable 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-29291872653742888962019-12-03T14:38:00.001+10:002022-06-27T18:35:22.954+10:00Bluetooth audio latency, codecs, when does it matterThese 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-7618617457101434552018-08-21T01:09:00.001+10:002018-08-25T11:41:04.773+10:00YOU 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com2tag:blogger.com,1999:blog-6811336968619276420.post-74628078265290648222018-05-23T16:17:00.000+10:002018-05-23T16:19:51.269+10:00Macbook 2013 vs 80 MHz WiFi channelsI 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com4tag:blogger.com,1999:blog-6811336968619276420.post-71119763449334206932018-03-20T21:53:00.000+10:002018-03-20T22:38:31.555+10:00CrashPlan complaintsAfter 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com1tag:blogger.com,1999:blog-6811336968619276420.post-59012644818117601262017-08-29T20:35:00.003+10:002018-01-18T20:45:50.395+10:00CrashPlan limitationsAfter 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 filesHoracio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com2tag:blogger.com,1999:blog-6811336968619276420.post-34482113246100132982017-07-24T04:20:00.003+10:002017-07-24T19:26:53.988+10:00Review of air purifier Prem-i-Air Invierno and air analyzer AirVisual NodeLiving 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com1tag:blogger.com,1999:blog-6811336968619276420.post-21392527064045958652017-06-16T22:38:00.002+10:002023-07-08T19:28:28.559+10:00User-site-installed python packages, and PATH modificationPython 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 "Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-43540867725408071332016-09-21T21:46:00.000+10:002016-09-21T21:51:49.370+10:00Installing Ubuntu 16.04's friends into an iBook G4 with a USB pendriveI 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 practicalHoracio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-57746626797806979802016-08-27T19:11:00.000+10:002023-07-08T19:32:23.726+10:00Grand 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com2tag:blogger.com,1999:blog-6811336968619276420.post-65070836595042612922016-08-27T19:09:00.000+10:002016-08-27T19:20:50.189+10:00Cocinando con citrato sódico caseroParece 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? EnHoracio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com2tag:blogger.com,1999:blog-6811336968619276420.post-29966030223734689672016-07-10T03:30:00.003+10:002019-04-09T09:12:33.908+10:00GitFlow (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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-40067479732132258372016-06-27T00:55:00.002+10:002023-07-08T19:35:00.694+10:00Doxygen error parsing in Eclipse CDTEclipse (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.
Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-34843739318404357282016-06-23T03:36:00.001+10:002023-07-08T19:32:43.854+10:00repo 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com4tag:blogger.com,1999:blog-6811336968619276420.post-57882289669072705462016-05-24T08:27:00.000+10:002016-05-26T04:19:12.127+10:00BPM-showing players for iOSIt'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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-15512879248435491642016-03-27T05:16:00.000+10:002016-05-01T06:54:29.765+10:00An IS_DEFINED() C macro to check whether another macro is definedEvery 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com4tag:blogger.com,1999:blog-6811336968619276420.post-86826615052460586052016-02-17T01:57:00.002+10:002023-07-08T19:33:57.812+10:00Tweaking Waf for integration with Eclipse CDTFirst, 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? Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com1tag:blogger.com,1999:blog-6811336968619276420.post-21594671136641667882015-09-15T01:11:00.000+10:002016-08-02T01:10:15.370+10:00Flame 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 Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com1tag:blogger.com,1999:blog-6811336968619276420.post-14441462549635216972015-09-10T20:50:00.001+10:002023-07-08T19:34:18.910+10:00List the DTrace providers in your machineI don't see any official way to list the DTrace providers; you can seemingly only list ALL the probes, the >300K of them (in my Mac right now), and then you have to deal with the multitude of providers instantiated multiple times for different PIDs.
So here's a small AWK script to list the unique providers, how many instances of each are there, and how many providers are attached to each PID:Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-30983021832018105812015-08-29T00:09:00.004+10:002021-08-07T19:44:16.431+10:00Best practices for a (GNU) makefile in the XXI centuryThis is not really a tutorial on makefiles; there are lots of those around the web.
But most of those are very outdated, and/or follow dubious practices. You'll end up with a makefile which was OK for a make and a compiler from the 90's, maybe even around year 2000. Even the GNU make manual recommends unnecessarily complicated things, given the capabilities gcc has grown in the last decade.
So,Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com1tag:blogger.com,1999:blog-6811336968619276420.post-17690452588901120282015-08-08T05:45:00.000+10:002018-08-25T19:22:01.457+10:00Fred Brooks vs Dijkstra?In the 60's, Freed Brooks led the development of the IBM/360 system and its OS. The experience made him write the famous The Mythical Man-Month.
Turns out that Dijkstra also wrote about that system in his EWD255. And everything he complained about on that system is the standard nowadays! Sounds like he considered that a lot of the complexity that should be fixed by the computer is being dumped Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com3tag:blogger.com,1999:blog-6811336968619276420.post-32718942788088446232015-08-02T21:22:00.000+10:002015-09-15T02:46:06.685+10:00"Cómo reconocer cuándo alguien es de izquierdas o derechas" - volumen IIÉste era uno de esos estúpidos chistes que van por ahí, de mail en mail o incluso de whatsapp en whatsapp. Pero me resultó suficientemente tendencioso (por supuesto hacia lo buenos que son los pobrecitos de la derecha y lo malos que son los abusones de la izquierda - por qué siempre este tipo de cosas llevan esa orientación? *) que tuve que escribir una 2a versión, aún más clara sobre lo que Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0tag:blogger.com,1999:blog-6811336968619276420.post-76386496201837043682015-07-30T20:27:00.003+10:002015-09-15T02:46:18.393+10:00My first official Linux kernel patch Well, that took some time. Quite an exacting process… which makes you get a new perspective of how Linux is made, and what it takes to keep loose collaboration at a high quality level.
And interesting too how such a simple patch evolved. First it made me think of the bike shed…
… but at the end of the day, and after considering some of the horror stories and the complexity involved, it makes Horacio Mijailhttp://www.blogger.com/profile/10941261506308268725noreply@blogger.com0