2023-12-06: A good explanation of how Shazam work in practice, and an implementation in Python.
2023-12-06: iMessage, explained: When you learn what
com.apple.madrid does on your machine, and all the other goodies Apple put into their APNs.
2023-12-11: ♪ Jelly Cleaver · Black Line
To choose an implementation is to choose a tribe. Since Scheme is so minimal, you begin to rely on extensions that are only present in your implementation, and so through code you bind yourself to a world of code, people, and practice, loosely bound to the rest of the Scheme world through a fictional first-person-plural. This is OK! Going deep into a relationship with an implementation is the only way to do great work. The looser ties to the rest of the Scheme world in the form of the standards, the literature, the IRC channel, and the mailing lists provide refreshing conversation among fellow travellers, not marching orders for a phalanx. — an opinionated guide to scheme implementations
2023-12-13: Just when I was about to try out boosting and bagging in Stata (rforest and boost), I realized that most programs now require Stata 15 or newer. Even Lasso penalization has been integrated in the core modeling facilities starting with Stata 18. At least, I can still run lassopack to perform L1, L2 regularization or a combination thereof. They use the same convention as in glmnet, where the parameter $\alpha$ stands for the elasticnet mixing parameter ($\alpha=0$ corresponds to the ridge penalty while $\alpha=1$ is the lasso penalty). The authors compared Stata builtin and R regularized estimation, which is great: Replication of glmnet and StataCorp’s lasso. See also An introduction to the lasso in Stata on the Stata blog.
2023-12-13: Micro-posting goes well as far as I can tell.
2023-12-18: TIL that you can use xeyes to check if an app is running under Wayland or XWayland.