{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - mudge","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/mudge@ruby.social","_microblog":{"about":"https://micro.blog/about/api","id":"183175","username":"mudge@ruby.social","bio":"Computer programmer up t’north. Former organiser of London Computation Club and speaker at London Ruby User Group, now mostly writing Ruby, Go and JavaScript but also Python, PHP, Rust and Clojure. My views do not represent those of my employer.","pronouns":"","is_following":false,"is_you":false,"following_count":0,"discover_count":0},"author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://micro.blog/photos/200/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg"},"items":[{"id":"83202146","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@henrik\" class=\"u-url mention\">@<span>henrik</span></a></span> don’t forget to celebrate 23 Dogs day <a href=\"https://x.com/tomstuart/status/668795250190757888\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">x.com/tomstuart/status/6687952</span><span class=\"invisible\">50190757888</span></a></p>","url":"https://ruby.social/users/mudge/statuses/115983565048027559","date_published":"2026-01-30T10:25:53+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2026-01-30 10:25","date_timestamp":1769768753,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"83006529","content_html":"<p><span class=\"h-card\"><a href=\"https://social.tomstu.art/@tom\" class=\"u-url mention\">@<span>tom</span></a></span> apropos of nothing, I’ll remind you <span class=\"h-card\"><a href=\"https://ruby.social/@hlame\" class=\"u-url mention\">@<span>hlame</span></a></span> once tried to make meringue with the tomato sauce that comes with baked beans.</p>","url":"https://ruby.social/users/mudge/statuses/115969061568968702","date_published":"2026-01-27T20:57:28+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2026-01-27 20:57","date_timestamp":1769547448,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"80428011","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> <span class=\"h-card\"><a href=\"https://ruby.social/@larskanis\" class=\"u-url mention\">@<span>larskanis</span></a></span> it’s (quite literally) the least I can do. My heart goes out to you seeing the likes of <a href=\"https://github.com/rake-compiler/rake-compiler-dock/pull/179\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/rake-compiler/rake-</span><span class=\"invisible\">compiler-dock/pull/179</span></a></p>","url":"https://ruby.social/users/mudge/statuses/115752641559754767","date_published":"2025-12-20T15:39:00+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2025-12-20 15:39","date_timestamp":1766245140,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"75947177","content_html":"<p><span class=\"h-card\"><a href=\"https://chaos.social/@jonty\" class=\"u-url mention\">@<span>jonty</span></a></span> we all play synth.</p>","url":"https://ruby.social/users/mudge/statuses/115385763943803641","date_published":"2025-10-16T20:37:12+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2025-10-16 20:37","date_timestamp":1760647032,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68030565","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@jswright61\" class=\"u-url mention\">@<span>jswright61</span></a></span> I ended up going back to 1Password for now, exporting everything out of Passwords (in its CSV format that 1Password thankfully supports), and only had to manually migrate a handful of passkeys.</p>","url":"https://ruby.social/users/mudge/statuses/114782768712931210","date_published":"2025-07-02T08:47:35+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2025-07-02 08:47","date_timestamp":1751446055,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"67732638","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> my original issue was this dependency conflict when trying to install re2 <a href=\"https://github.com/mudge/re2/pull/171#issuecomment-3009844339\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/mudge/re2/pull/171#</span><span class=\"invisible\">issuecomment-3009844339</span></a> but I can’t get it working even if I try upgrading (or downgrading) GCC. I’ve declared bankruptcy in <a href=\"https://github.com/mudge/re2/pull/171/commits/ea0460e758e973ddac5381f156247bd22a92f81e\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/mudge/re2/pull/171/</span><span class=\"invisible\">commits/ea0460e758e973ddac5381f156247bd22a92f81e</span></a>. At least Windows 2022 and Ruby 3.4 works but it’s a pity to lose the coverage.</p>","url":"https://ruby.social/users/mudge/statuses/114755482249681287","date_published":"2025-06-27T13:08:17+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2025-06-27 13:08","date_timestamp":1751029697,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"52165079","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> what’s the plan for your panoply of native gems? Cut new versions before Christmas assuming there will be no ABI breakage between 3.4.0-rc1 and the final version or hold out until the new year?</p>","url":"https://ruby.social/users/mudge/statuses/113650344374418631","date_published":"2024-12-14T08:57:11+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-12-14 08:57","date_timestamp":1734166631,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"51965671","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@henrik\" class=\"u-url mention\">@<span>henrik</span></a></span> I’ve often seen this slightly reframed as “seek forgiveness, not permission” where the outcome is similar: prefer action to inaction. See also “disagree and commit”.</p>","url":"https://ruby.social/users/mudge/statuses/113639163355430695","date_published":"2024-12-12T09:33:42+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-12-12 09:33","date_timestamp":1733996022,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"46829420","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@henrik\" class=\"u-url mention\">@<span>henrik</span></a></span> have you seen Kaitlyn Tierney’s “Librarian’s Guide to Documentation” re using Notion <a href=\"https://brightonruby.com/2023/librarians-guide-to-documentation-kaitlyn-tierney/\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">brightonruby.com/2023/libraria</span><span class=\"invisible\">ns-guide-to-documentation-kaitlyn-tierney/</span></a>?</p>","url":"https://ruby.social/users/mudge/statuses/113249930977658919","date_published":"2024-10-04T15:46:48+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-10-04 15:46","date_timestamp":1728056808,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"46002295","content_html":"<p><span class=\"h-card\"><a href=\"https://hachyderm.io/@rmondello\" class=\"u-url mention\">@<span>rmondello</span></a></span> thank you for writing this as it inspired me to finally (and very slowly) migrate.</p><p>I’m not sure if this is the case in the US but a lot of UK banks use multiple passwords (calling them a “security number” or “PIN”) but only ask for certain digits, e.g. “select the 4th, 5th, and 9th digit”.</p><p>In 1Password, I’d manage this by adding multiple passwords and use “show large type” to see each digit and its position. It’d be amazing for Passwords to support this use case.</p>","url":"https://ruby.social/users/mudge/statuses/113180974156319692","date_published":"2024-09-22T11:30:10+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-09-22 11:30","date_timestamp":1727004610,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"45476362","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@benpickles\" class=\"u-url mention\">@<span>benpickles</span></a></span> dare I ask how you came across this? Can you register gems with the same name that differ only in case?</p>","url":"https://ruby.social/users/mudge/statuses/113135660416317375","date_published":"2024-09-14T11:26:17+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-09-14 11:26","date_timestamp":1726313177,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"45269229","content_html":"<p><span class=\"h-card\"><a href=\"https://mastodon.social/@jaygooby\" class=\"u-url mention\">@<span>jaygooby</span></a></span> next step: a simple three-year undergraduate degree in electrical engineering.</p>","url":"https://ruby.social/users/mudge/statuses/113118891524657318","date_published":"2024-09-11T12:21:44+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-09-11 12:21","date_timestamp":1726057304,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"44820658","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@soulcutter\" class=\"u-url mention\">@<span>soulcutter</span></a></span> GitHub Package Registry: <a href=\"https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">docs.github.com/en/packages/wo</span><span class=\"invisible\">rking-with-a-github-packages-registry/working-with-the-rubygems-registry</span></a></p>","url":"https://ruby.social/users/mudge/statuses/113080989272166392","date_published":"2024-09-04T19:42:42+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-09-04 19:42","date_timestamp":1725478962,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"42675799","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> (I also haven’t tried it or investigated in detail) the verification side seems the tricky bit: without integration on the Bundler/RubyGems side I’m not sure if it’s better than asking people to manually verify GPG signatures.</p>","url":"https://ruby.social/users/mudge/statuses/112886588036959105","date_published":"2024-08-01T11:43:54+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-08-01 11:43","date_timestamp":1722512634,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"40530580","content_html":"<p><span class=\"h-card\"><a href=\"https://wafer.baby/@d\" class=\"u-url mention\">@<span>d</span></a></span> can you please explain how such things are possible with two “ankle biters”? It took me about two years to finish God of War: Ragnarök.</p>","url":"https://ruby.social/users/mudge/statuses/112698908994948167","date_published":"2024-06-29T08:14:39+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-06-29 08:14","date_timestamp":1719648879,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"38847470","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> and now my build is back down to 16 minutes (e.g. <a href=\"https://github.com/mudge/re2/actions/runs/9363222278\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/mudge/re2/actions/r</span><span class=\"invisible\">uns/9363222278</span></a>)! Thanks for looking into this and resolving it so promptly.</p>","url":"https://ruby.social/users/mudge/statuses/112557312094974807","date_published":"2024-06-04T08:04:42+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-06-04 08:04","date_timestamp":1717488282,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"38797966","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> will do. I'm able to reproduce it lcoally by running the `pkg-config` command in Docker so I can hopefully see if an upgrade makes a difference before going any further.</p>","url":"https://ruby.social/users/mudge/statuses/112553300053924611","date_published":"2024-06-03T15:04:23+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-06-03 15:04","date_timestamp":1717427063,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"38788404","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> comparing a \"fast\" (~15m) x86-linux build <a href=\"https://github.com/mudge/re2/actions/runs/9036456420/job/24833369915\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/mudge/re2/actions/r</span><span class=\"invisible\">uns/9036456420/job/24833369915</span></a> with a \"slow\" (~1h) <a href=\"https://github.com/mudge/re2/actions/runs/9339767727/job/25704541366\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/mudge/re2/actions/r</span><span class=\"invisible\">uns/9339767727/job/25704541366</span></a> reveals that \"checking for whether -pthread is accepted\" has gone from 53s to 4m9s and \"checking for -lstdc++\" from 1m5s to 5m17s. That alone adds over 40 minutes to the build.</p><p>See <a href=\"https://gist.github.com/mudge/100a9986a53c28c451a1bcc2073714f3\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">gist.github.com/mudge/100a9986</span><span class=\"invisible\">a53c28c451a1bcc2073714f3</span></a></p>","url":"https://ruby.social/users/mudge/statuses/112552693767601000","date_published":"2024-06-03T12:30:12+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-06-03 12:30","date_timestamp":1717417812,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"38029750","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@soulcutter\" class=\"u-url mention\">@<span>soulcutter</span></a></span> yes, I’ve run into that too because CircleCI “does not run workflows for tags unless you explicitly specify tag filters” (see <a href=\"https://circleci.com/docs/workflows/#executing-workflows-for-a-git-tag\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">circleci.com/docs/workflows/#e</span><span class=\"invisible\">xecuting-workflows-for-a-git-tag</span></a>). My understanding is that there is some implicit `ignore: /.*/` there for tags by default and you need to opt in instead.</p>","url":"https://ruby.social/users/mudge/statuses/112486550548494788","date_published":"2024-05-22T20:09:07+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-05-22 20:09","date_timestamp":1716408547,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"36231910","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> an odd thing I noticed was that macos-latest resolved to macOS 12 for my recent Actions runs despite what it says in the docs.</p>","url":"https://ruby.social/users/mudge/statuses/112333019764802546","date_published":"2024-04-25T17:24:13+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-04-25 17:24","date_timestamp":1714065853,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"35911380","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> given the fallback behaviour is to compile the gem locally (as opposed to not being available at all), that sounds pragmatic.</p><p>In a sad story of software rot, I’d love to be able to test the precompiled x86 Windows gem (the only one left not tested in CI) but I don’t believe it’s possible to use such a runner on GitHub Actions.</p>","url":"https://ruby.social/users/mudge/statuses/112304883120598686","date_published":"2024-04-20T18:08:42+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-04-20 18:08","date_timestamp":1713636522,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"35883997","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> I noticed the x86-linux and x86_64-linux gem precompilation takes ~15 minutes (compared to all other platforms taking 3-5 minutes) so I switched my single “build-precompiled-gems” job with a matrix strategy into separate jobs using a reusable workflow: <a href=\"https://github.com/mudge/re2/commit/413a30cb865a43af4452b6f3ed87a9756a25a8b1\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/mudge/re2/commit/41</span><span class=\"invisible\">3a30cb865a43af4452b6f3ed87a9756a25a8b1</span></a> This way, the individual jobs to test each platform gem run as soon as their gem is precompiled rather than waiting for all platforms to finish. Not sure if it is general enough for <a href=\"https://github.com/flavorjones/ruby-c-extensions-explained/\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/flavorjones/ruby-c-</span><span class=\"invisible\">extensions-explained/</span></a></p>","url":"https://ruby.social/users/mudge/statuses/112302442807665126","date_published":"2024-04-20T07:48:06+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-04-20 07:48","date_timestamp":1713599286,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"35709051","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@flavorjones\" class=\"u-url mention\">@<span>flavorjones</span></a></span> I’ll be really interested to hear how the native musl/gnu gem split goes given all the RubyGems/Bundler caveats (though dropping Ruby 2.7 hopefully limits the most painful cases).</p>","url":"https://ruby.social/users/mudge/statuses/112287881938599801","date_published":"2024-04-17T18:05:04+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-04-17 18:05","date_timestamp":1713377104,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"34712406","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@rbates\" class=\"u-url mention\">@<span>rbates</span></a></span> I once worked at a company that intentionally randomised the application time zone on every test run to tease out date-related bugs.</p>","url":"https://ruby.social/users/mudge/statuses/112203009332248907","date_published":"2024-04-02T18:20:51+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2024-04-02 18:20","date_timestamp":1712082051,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"28618223","content_html":"<p><span class=\"h-card\"><a href=\"https://ruby.social/@henrik\" class=\"u-url mention\">@<span>henrik</span></a></span> <span class=\"h-card\"><a href=\"https://ruby.social/@mudge\" class=\"u-url mention\">@<span>mudge</span></a></span> <span class=\"h-card\"><a href=\"https://mastodon.social/@leocassarani\" class=\"u-url mention\">@<span>leocassarani</span></a></span> <span class=\"h-card\"><a href=\"https://ruby.social/@tom\" class=\"u-url mention\">@<span>tom</span></a></span> it may well do that (and probably should) but the edge case I was covering was a _future_ event where a timezone change occurs after it is created (as happened not so long ago in Turkey), e.g. imagine I post an event for 7pm GMT next Friday and then on Monday, GMT totally changes its offset.</p>","url":"https://ruby.social/users/mudge/statuses/111676609775650829","date_published":"2023-12-31T19:10:31+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2023-12-31 19:10","date_timestamp":1704049831,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"35363282","content_html":"<p>I get teased about it (mostly by <span class=\"h-card\"><a href=\"https://mastodon.social/@tomstuart\" class=\"u-url mention\">@<span>tomstuart</span></a></span>) but I secretly enjoy supporting EOL Ruby 1.8.7 in my gems (after years of “Dependabot Mondays”, I never want an upgrade to break anything for existing users). Thank goodness for <a href=\"https://ruby.social/tags/rspec\" class=\"mention hashtag\">#<span>rspec</span></a> as its Docker images for legacy Ruby testing <a href=\"https://github.com/rspec/docker-ci\"><span class=\"invisible\">https://</span><span>github.com/rspec/docker-ci</span><span class=\"invisible\"></span></a> were crucial when building a similar setup with GitHub Actions for re2 <a href=\"https://github.com/mudge/re2-ci\"><span class=\"invisible\">https://</span><span>github.com/mudge/re2-ci</span><span class=\"invisible\"></span></a> <a href=\"https://github.com/mudge/re2/blob/v1.6.0/.github/workflows/tests.yml\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/mudge/re2/blob/v1.6</span><span class=\"invisible\">.0/.github/workflows/tests.yml</span></a></p>","summary":"","url":"https://ruby.social/users/mudge/statuses/109325985407143165","date_published":"2022-11-11T15:55:50+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-11 15:55","date_timestamp":1668182150,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922940","content_html":"I get teased about it (mostly by @tomstuart) but I secretly enjoy supporting EOL Ruby 1.8.7 in my gems (after years of “Dependabot Mondays”, I never want an upgrade to break anything for existing users). Thank goodness for #rspec as its Docker images for legacy Ruby testing https://gith... <a href=\"https://ruby.social/@mudge/109325985407143165\">ruby.social</a>","summary":"","url":"https://ruby.social/@mudge/109325985407143165","date_published":"2022-11-11T15:55:50+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-11 15:55","date_timestamp":1668182150,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922938","content_html":"Having resisted the temptation for years (and not being @eightbitraptor), I finally got an esoteric keyboard in an effort to combat RSI. If you’re also a #vim user on macOS with a #KinesisAdvantage360 and a bit baffled by layout options, give https://www.reddit.com/r/kinesisadvantage/co... <a href=\"https://ruby.social/@mudge/109325661435678090\">ruby.social</a>","summary":"","url":"https://ruby.social/@mudge/109325661435678090","date_published":"2022-11-11T14:33:26+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-11 14:33","date_timestamp":1668177206,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922936","content_html":"While I’m being nostalgic, it has been five years since I wrote a lot of words and several ASCII diagrams inspired by @jcoglan in an attempt to understand #TypesAndProgrammingLanguages’ chapter on #Subtyping: https://github.com/computationclub/computationclub.github.io/wiki/Types-and-Pr... <a href=\"https://ruby.social/@mudge/109325027563369029\">ruby.social</a>","summary":"","url":"https://ruby.social/@mudge/109325027563369029","date_published":"2022-11-11T11:52:14+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-11 11:52","date_timestamp":1668167534,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922935","content_html":"<p>Over 10 years ago(!), James Hunt and I tried to tackle the issue with implicit dependencies in <a href=\"https://ruby.social/tags/ActionView\" class=\"mention hashtag\">#<span>ActionView</span></a> templates with Proffer <a href=\"https://rubygems.org/gems/proffer\"><span class=\"invisible\">https://</span><span>rubygems.org/gems/proffer</span><span class=\"invisible\"></span></a>. I’m interested to see an update to <a href=\"https://ruby.social/tags/rails\" class=\"mention hashtag\">#<span>rails</span></a> to add explicit locals to templates: <a href=\"https://github.com/rails/rails/pull/45602\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/rails/rails/pull/45</span><span class=\"invisible\">602</span></a></p>","summary":"","url":"https://ruby.social/@mudge/109324462056832788","date_published":"2022-11-11T09:28:25+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-11 09:28","date_timestamp":1668158905,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922934","content_html":"I can never remember how different #rspec spec types map to Rails’ tests so for posterity: a request spec https://relishapp.com/rspec/rspec-rails/v/5-0/docs/request-specs/request-spec is an integration test https://guides.rubyonrails.org/testing.html#integration-testing and a system spe... <a href=\"https://ruby.social/@mudge/109324423102790535\">ruby.social</a>","summary":"","url":"https://ruby.social/@mudge/109324423102790535","date_published":"2022-11-11T09:18:31+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-11 09:18","date_timestamp":1668158311,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922932","content_html":"If you’re hosting #YARD documentation on #GitHubPages and running into broken links when trying to load _index.html, it might be due to https://github.com/lsegal/yard/issues/1027. You can disable Jekyll altogether by placing a .nojekyll file in the root of your repo: https://github.blog... <a href=\"https://ruby.social/@mudge/109324382249282202\">ruby.social</a>","summary":"","url":"https://ruby.social/@mudge/109324382249282202","date_published":"2022-11-11T09:08:08+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-11 09:08","date_timestamp":1668157688,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922931","content_html":"Hello! Time for an #introduction. I’m Paul and I’ve been programming in Ruby since 2007. I contributed the function composition operators added in Ruby 2.6 (see https://www.ghostcassette.com/function-composition-in-ruby/) and maintain the re2 gem used in GitLab (https://github.com/mudge... <a href=\"https://ruby.social/@mudge/109323986364654214\">ruby.social</a>","summary":"","url":"https://ruby.social/@mudge/109323986364654214","date_published":"2022-11-11T07:27:27+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-11 07:27","date_timestamp":1668151647,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922930","content_html":"If you’re trying to use a queue adapter in request specs that isn’t Active Job’s test adapter (e.g. Good Job’s inline adapter) and struggling, take note of https://github.com/rails/rails/issues/37270 There’s a workaround by disabling the test adapter on ActiveJob::Base and its descendan... <a href=\"https://ruby.social/@mudge/109321141445396776\">ruby.social</a>","summary":"","url":"https://ruby.social/@mudge/109321141445396776","date_published":"2022-11-10T19:23:57+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-10 19:23","date_timestamp":1668108237,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13922929","content_html":"Ruby’s UNIXSocket.pair https://ruby-doc.org/stdlib-3.1.2/libdoc/socket/rdoc/UNIXSocket.html#method-c-pair can come in handy when testing a streaming API using Rack::Hijack https://github.com/rack/rack/blob/main/SPEC.rdoc#hijacking- : pass one of the two sockets in your request, e.g. get... <a href=\"https://ruby.social/@mudge/109321061309792617\">ruby.social</a>","summary":"","url":"https://ruby.social/@mudge/109321061309792617","date_published":"2022-11-10T19:03:34+00:00","author":{"name":"mudge","url":"https://ruby.social/@mudge","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fcdn.masto.host%2Frubysocial%2Faccounts%2Favatars%2F000%2F000%2F743%2Foriginal%2Fbe80df73ae155f75.jpeg","_microblog":{"username":"mudge@ruby.social"}},"_microblog":{"date_relative":"2022-11-10 19:03","date_timestamp":1668107014,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}}]}