<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: mathstuf</title><link>https://news.ycombinator.com/user?id=mathstuf</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 06 May 2026 08:18:29 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mathstuf" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mathstuf in "Show HN: I built a Cargo-like build tool for C/C++"]]></title><description><![CDATA[
<p>FD: I am a CMake developer.<p>Yes, config packages are better. But I think doing find_package everywhere is better. Assuming you install an SDK for others to use your project. If you're a "product", vendor away. The issue comes when you want to vendor X and Y and both vendor Z independently. Then you're stuck de-vendoring at least one and figuring out how to provide it yourself internally. IMO, better to just let Z make its own install tree and find it as a package from there.<p>One can write good Find modules, but there is some "taste" involved. I wish we had more good examples to use as templates.</p>
]]></description><pubDate>Fri, 10 Apr 2026 17:50:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47721472</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=47721472</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47721472</guid></item><item><title><![CDATA[New comment by mathstuf in "Show HN: Xmloxide – an agent-made Rust replacement for libxml2"]]></title><description><![CDATA[
<p>> 1) There could probably be tax credits or deductions for SWEs who 'volunteer' their time to work on these projects.<p>Why exclusive to SWEs? They tend to be more time-restricted than financial-restricted (assuming the "SWE" comes from a job description). I'd be more interested in making sure that those with less well-paying jobs are able to access such benefits rather than stacking it onto those already (probably) making 6-figures.<p>Of course, the problems arise in the details. Define "volunteer": if $DAYJOB also uses it (in a way related to my role), is it actually, instead, wage theft? Also, quantifying the benefit is a sticky question. Is maintaining 10k emoji packages on NPM equivalent to volunteer work on libcurl? Could it ever be? Is it volunteer work if it ends up with a bug bounty payday? Google's fuzzing grant incentives?</p>
]]></description><pubDate>Mon, 02 Mar 2026 11:00:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47216377</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=47216377</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47216377</guid></item><item><title><![CDATA[New comment by mathstuf in "Why every automaker is quietly bringing back the inline-six engine"]]></title><description><![CDATA[
<p>I had an '89 Cherokee to 235k and sold it for ~60% of my purchse price after 6 years after garages only quoted insanity for the smallest things (Dad is a mechanic, but the commute there for repairs isn't feasible on the regular and apartment living is not conducive to the required garage/tools).<p>Dad has seen AMC I-6s go 400k before the transmission died and ended its run.</p>
]]></description><pubDate>Wed, 25 Feb 2026 23:52:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47159802</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=47159802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47159802</guid></item><item><title><![CDATA[New comment by mathstuf in "I fixed Windows native development"]]></title><description><![CDATA[
<p>We manage Visual Studio on our CI machines using Ansible. Chocolatey installs the full Visual Studio and then we use the APIs provided to manage components via Ansible. See our action here: <a href="https://galaxy.ansible.com/ui/repo/published/kitware/visualstudio/" rel="nofollow">https://galaxy.ansible.com/ui/repo/published/kitware/visuals...</a></p>
]]></description><pubDate>Mon, 16 Feb 2026 00:48:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47029500</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=47029500</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47029500</guid></item><item><title><![CDATA[New comment by mathstuf in "AI agents can now create their own bank accounts"]]></title><description><![CDATA[
<p>I'm sure someone can make a verification parrot too. Why pull yourself up by the bootstraps when you can just strap a rocket engine on your boots instead?</p>
]]></description><pubDate>Thu, 12 Feb 2026 16:51:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46991158</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46991158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46991158</guid></item><item><title><![CDATA[New comment by mathstuf in "Show HN: If you lose your memory, how to regain access to your computer?"]]></title><description><![CDATA[
<p>I've thought about making a "word search" and embedding the passphrase in it using a pattern (e.g., a subset of a Knight's tour, a space-filling curve overlay, or some other sampling algorithm).</p>
]]></description><pubDate>Fri, 06 Feb 2026 21:56:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46918671</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46918671</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46918671</guid></item><item><title><![CDATA[New comment by mathstuf in "I Like GitLab"]]></title><description><![CDATA[
<p>I agree that the YAML can get out of hand. We use the `extends` keyword to put together jobs from pieces so that details can live in one place and the job bits and graph description can live in another. The way we've done our pipelines are very difficult to do with GHA as we build a DAG (with splits and forks) that are greatly aided by artifacts being integrated into GitLab-CI instead of separate piecemeal actions.<p>We also need custom runners anyways because macOS and Windows are important and getting those with graphical session access and/or CUDA hardware in the cloud is either $$$$ or severely limited. Even with our setup, we split the build and test phases so that CUDA hardware slots aren't wasted on running compilers. It also lets us test a single build under different environments easily.<p>So, yeah, I can see fighting with the feature spectrum, but you need to restrict yourself in most other cases with that kind of stuff too. But at least what we do is possible with GitLab-CI.</p>
]]></description><pubDate>Sat, 24 Jan 2026 16:46:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46745075</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46745075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46745075</guid></item><item><title><![CDATA[New comment by mathstuf in "Git Rebase for the Terrified"]]></title><description><![CDATA[
<p>Why does it always feel so black-and-white? On our projects we do rebases all the time so that <i>topic</i> history is clean. But we merge into the target branch(es) (our merge bot supports merging to old release branches from a single MR). This gives us:<p>- clean integration branch histories (series of merge commits)  
- merge commits can contain metadata (topic-level descriptions, trailers for who reviewed, merge request links, test results, etc.)  
- you can be (pretty) sure that `git bisect --first-parent` will not run into any compilation problems (logical conflicts occur, but are fairly rare; use merge queues to be sure)  
- none of the "you merged main into your topic" "backwards merges" to deal with too<p>Merging and rebasing each have their pros and cons, so why not use the pros of each and mitigate a lot of the cons at the same time.</p>
]]></description><pubDate>Thu, 22 Jan 2026 05:30:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46715657</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46715657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46715657</guid></item><item><title><![CDATA[New comment by mathstuf in "Show HN: I made a memory game to teach you to play piano by ear"]]></title><description><![CDATA[
<p>I have tried many times and I have been very unable to make any progress. In The Witness game, I ended up just guessing at the hardest whistle puzzles because remembering high/low order is very difficult at real-time speeds (mostly I can only compare "higher/lower than previous" so something like 2-1-3 is very indistinguishable from 2-1-2). Absolute positioning is even worse. The "end game" tanker puzzle is still unsolved because I don't want to cheat at that one but I have never been able to get the audio part down. I believe this is because my short-term memory "ingests" via audio (100% aphantasia, so no visuals to help out), so trying to "store" more notes erases anything longer than a note or two back (or I remember those notes and miss new notes coming in). Contrast this with Simon-like games (original, Brain Warp, Bop-It, etc.) where I was routinely able to get 12+ because I could "trace" a pattern in the lights/motions and "offload" the audio bits quickly enough to follow along and "compress" the sequence.<p>In this app, I ended up hunting for the first note and by the time I found it, I couldn't remember "how far" up/down the next note was (and by even 3 notes I often lost the direction from 2 to go). I /could/ figure out the key positions and go from the staff, but that goes through the FACE/EGBDF path of what notes the lines on the staff mean and is 100% non-aural for me. It's also extremely slow.<p>I also have a horrible time finding melodies and rhythms in music (kind of like Steve Martin in The Jerk, just more…physically coordinated at least). I end up "tapping" out every note and lyric syllable instead of being able to tease anything apart (separate instruments help, but then I lose "the rest"). Rarely was I able to effectively utilize those "song tapper" apps in the 00's to find anything I wanted.<p>I do remember playing the recorder in class in elementary school and at least "Horse With No Name" on a guitar in…some higher grade (7th? 8th?), but I believe those were very physical-oriented finger memory rather than anything to do with my ear helping out. New songs were basically from-scratch practices rather than being able to build on prior experience.<p>So while my ear might not be "tin", so to speak, my mind is not well-wired for ir.</p>
]]></description><pubDate>Mon, 12 Jan 2026 06:38:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46584878</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46584878</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46584878</guid></item><item><title><![CDATA[New comment by mathstuf in "Phoenix: A modern X server written from scratch in Zig"]]></title><description><![CDATA[
<p>Per-display DPI settings. No snooping on input without permission. Awareness of the lock screen (the compositor can know that the lock screen is active and provide alternate keybindings instead of having to configure the lock application as well). Locking is not blocked by context menus being open.<p>I ran XMonad for 15 years, but recently switched to river and am loving it.</p>
]]></description><pubDate>Thu, 25 Dec 2025 03:28:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46381817</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46381817</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46381817</guid></item><item><title><![CDATA[New comment by mathstuf in "Phoenix: A modern X server written from scratch in Zig"]]></title><description><![CDATA[
<p>Look into river. It has the window management and keybindings able to be offered by other tools (I have an idea to implement one using XMonad's layouts).<p>It also vastly improved battery on my Dell Pro laptop. 58% battery used in 7h45m (light compilation day, but no suspend).</p>
]]></description><pubDate>Thu, 25 Dec 2025 03:14:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46381760</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46381760</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46381760</guid></item><item><title><![CDATA[New comment by mathstuf in "Making macOS Bearable"]]></title><description><![CDATA[
<p>I don't think so? But I've never had issues on Linux to need to bother with alternatives (as a terminal dweller, drag and drop is very rare there).</p>
]]></description><pubDate>Wed, 10 Dec 2025 12:02:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46216778</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46216778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46216778</guid></item><item><title><![CDATA[New comment by mathstuf in "Making macOS Bearable"]]></title><description><![CDATA[
<p>If you have projects that fit within an app, sure. I do not. The only "apps" seen on my machines are terminal windows hosting tmux processes and Firefox. Everything else is ephemeral (mpv, dialogs, rofi, dunst). App-centric behavior is just the wrong axis for this setup.<p>I'm saying that given what details are there, I think the author is closer to "my" end of the spectrum than one where the question makes sense at all.</p>
]]></description><pubDate>Wed, 10 Dec 2025 08:43:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46215490</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46215490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46215490</guid></item><item><title><![CDATA[New comment by mathstuf in "Making macOS Bearable"]]></title><description><![CDATA[
<p>As someone who probably has a similar setup on Linux to the author: why do you have 10 windows for an app open?<p>For me, grouping by app is terrible. Yes, they may all be "Terminal" or "Firefox" windows, but they are for very different things. I'd rather see things grouped by project regardless of "app". But that is what tagging window managers are for :) .<p>Given that macOS forces that (IMO) braindead tunnel vision paradigm, I think the response should be "Wù".</p>
]]></description><pubDate>Wed, 10 Dec 2025 08:08:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46215302</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46215302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46215302</guid></item><item><title><![CDATA[New comment by mathstuf in "Making macOS Bearable"]]></title><description><![CDATA[
<p>I know I am weird, but I detest using a MacBook trackpad. However, recently having used Asahi on one, I've found that it is the Apple software that makes it so. I find it really difficult to drag and drop (I would rather open Terminal and standard Unix tools than try anymore) and gestures are way too greedy IMO. Under Linux it is bearable for me (though I still have preferred others slightly for a better texture than the glassy feel).<p>I wonder if the author is like me in that respect? Not sure I would spend time like this, but I also spent months building my Linux environment from a tty in 2009-2010 (landed on XMonad, finally on River this year after 5 months in GNOME purgatory to force myself to move to Wayland). Last macOS machine I set up, I turned off a bunch of stuff in Settings and was instantly bored because I just didn't want to deal with the window manager at all. It is now my video chat machine because of Dell's "wise" decision to use IPU7 hardware…but I really don't like using it for much else (Asahi reboots are tedious).</p>
]]></description><pubDate>Wed, 10 Dec 2025 07:59:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46215264</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=46215264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46215264</guid></item><item><title><![CDATA[New comment by mathstuf in "My Git history was a mess of 'update' and 'fix' – so I made AI clean it up"]]></title><description><![CDATA[
<p>They are. If you rewrite history, you get a different hash. You can do some shenanigans with git-replace, but those are usually for stitching history across gaps (like hooking pre-publish history to public release for internal archaeology at least.<p>What you actually want is a ban on rewriting tags or accepting branch updates to commits that do not have the current commit as an ancestor. These hooks do exist, but are not on by default (beyond the toilet paper protection of needing --force).<p>You also have to ban deleting branches because otherwise you just delete and push a new one with the same name. Maybe we should store topic branches in repos under refs/topics/ to distinguish integration branches from development/review branches?</p>
]]></description><pubDate>Mon, 10 Nov 2025 02:13:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45871552</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=45871552</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45871552</guid></item><item><title><![CDATA[New comment by mathstuf in "Announcing Development on Flirt"]]></title><description><![CDATA[
<p>That works great for those that only use those tools. I, at least, do not and would appreciate something that doesn't care what editor I use or what forge happens to host the project.</p>
]]></description><pubDate>Fri, 07 Nov 2025 06:49:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45844110</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=45844110</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45844110</guid></item><item><title><![CDATA[New comment by mathstuf in "The Theatre of Pull Requests and Code Review"]]></title><description><![CDATA[
<p>This is true<i>r</i> now that `git bisect --first-parent` exists. But it didn't always. And even then, there are times you find out that there is "prep work" to land your feature. And a PR just to do some deck chair moving that makes a follow-up commit easier is kind of useless. I <i>have</i> done prep work as a separate PR, but this is usually when it is more extensive than the feature <i>and</i> it is worthwhile on its own.<p>Another instance is a build system rewrite. There was a (short) story of the new system itself and then a commit per module on top of that. It landed as 300+ commits in a single PR. And it got rebased 2-3 times a week to try and keep up as more bits were migrated (and new infra added for things other bits needed). Partial landing would have been useless and "rewrite the build system" would have been utter hell for both me developing and anyone that tries to blame across it if it hadn't been split up at least that much.<p>Basically, as with many things in software development, there are no black-and-white answers here.</p>
]]></description><pubDate>Thu, 25 Sep 2025 18:03:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45376492</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=45376492</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45376492</guid></item><item><title><![CDATA[New comment by mathstuf in "Git-Annex"]]></title><description><![CDATA[
<p>While I also find git-annex more elegant, its cross-platform story is weaker. Note that LFS was originally a collaboration between GitHub and Bitbucket (maybe? Some forge vendor I think). One had the implementation and the other had the name. They met at a Git conference and we have what we have today. My main gripes these days are the woefully inadequate limits GitHub has in place for larger projects. Coupled with the "must have all objects locally to satisfy an arbitrary push", any decently sized developer community will blow the limit fairly quickly.<p>FD: I have contributed to git-lfs.</p>
]]></description><pubDate>Mon, 25 Aug 2025 05:47:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45010613</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=45010613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45010613</guid></item><item><title><![CDATA[New comment by mathstuf in "Apple vs the Law"]]></title><description><![CDATA[
<p>Just yesterday I had to edit something on an iPhone. I finally managed to put the cursor at the front to add a word before what was there already. But when I started typing, auto correct (or whatever) put the cursor back at the end of the word. I ended up just removing everything and typing from scratch because figuring out Apple logic behind such a behavior just wasn't on the agenda.</p>
]]></description><pubDate>Sat, 12 Jul 2025 12:49:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=44541700</link><dc:creator>mathstuf</dc:creator><comments>https://news.ycombinator.com/item?id=44541700</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44541700</guid></item></channel></rss>