<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: skydhash</title><link>https://news.ycombinator.com/user?id=skydhash</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 10 Apr 2026 06:44:49 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=skydhash" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by skydhash in "Top laptops to use with FreeBSD"]]></title><description><![CDATA[
<p>I wouldn’t mind faster wifi speed, but reverse engineering stuff has always been slow (i.e Asahi Linux, and they only have a few device to investigate)</p>
]]></description><pubDate>Thu, 09 Apr 2026 19:08:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47708268</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47708268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47708268</guid></item><item><title><![CDATA[New comment by skydhash in "Top laptops to use with FreeBSD"]]></title><description><![CDATA[
<p>I like the word tune rather than fiddle. The BSD are very stable. You adjust some configuration, and then updates without having to change your tools or your config with every release. The config are not provided out of the box but the manuals can be very informative.<p>A lot of current GNU/Linux complexity have no benefits for most users and may be an hindrance when they want to slightly alter their use cases.<p><pre><code>  sudo -> doas
  systemd -> rcctl
  nftable -> pf
  iproute2|netplan -> ifconfig|route
  alsa|pulseaudio|pipewire -> sndiod
  cgroups|podman|lxc -> jails(freebsd)*
</code></pre>
The first column may have valid use cases, but I strongly doubt those cases include casual usage. Simple tools that work well is better than complex tools that solves everything.<p>* Openbsd does not like containers or being a vm host</p>
]]></description><pubDate>Thu, 09 Apr 2026 16:25:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47705693</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47705693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47705693</guid></item><item><title><![CDATA[New comment by skydhash in "Top laptops to use with FreeBSD"]]></title><description><![CDATA[
<p>> More sensible, IMHO, might be to bolt the FreeBSD user space unto the Linux kernel.<p>A lot of BSD utilities that are not POSIX has really close interaction with the kernel. OpenBSD’s *ctl binaries are often the user-facing part of some OS subsystem. Linux subsystem often expose a very complex internal that you need to use some other project to tame down</p>
]]></description><pubDate>Thu, 09 Apr 2026 15:05:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47704703</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47704703</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47704703</guid></item><item><title><![CDATA[New comment by skydhash in "FreeBSD Laptop Compatibility: Top Laptops to Use with FreeBSD"]]></title><description><![CDATA[
<p>Not really weird when some firmware are close to being full blown OS. An alpine VM can be run with 64 MB which is lower than a lot of software.</p>
]]></description><pubDate>Thu, 09 Apr 2026 15:00:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47704647</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47704647</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47704647</guid></item><item><title><![CDATA[New comment by skydhash in "Top laptops to use with FreeBSD"]]></title><description><![CDATA[
<p>I think the intersection between BSD users and people who will buy a dongle or use Ethernet is a perfect circle.</p>
]]></description><pubDate>Thu, 09 Apr 2026 14:56:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47704591</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47704591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47704591</guid></item><item><title><![CDATA[New comment by skydhash in "Top laptops to use with FreeBSD"]]></title><description><![CDATA[
<p>If you don’t care about administrating your computer and just want to use some software on some hardware, the BSDs are not that great. But if you do, the experience is better on the BSD land because cohesiveness reduces cognitive debt.<p>Also I wouldn’t make hardware support an OS quality metric. Linux get by with NDA and with direct contributions from the vendors. Which is something the BSDs don’t want/don’t benefit from.</p>
]]></description><pubDate>Thu, 09 Apr 2026 14:54:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47704568</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47704568</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47704568</guid></item><item><title><![CDATA[New comment by skydhash in "Top laptops to use with FreeBSD"]]></title><description><![CDATA[
<p>I have the latitude 7490 and it worked great with Linux, FreeBSD and OpenBSD. The only issue is some hardware design issue where lifting it with one hand will cause it to freeze (possibly some stress causing a shock or a displacement).<p>The best resource to check support is <a href="https://dmesgd.nycbug.org/dmesgd" rel="nofollow">https://dmesgd.nycbug.org/dmesgd</a></p>
]]></description><pubDate>Thu, 09 Apr 2026 13:19:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47703380</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47703380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47703380</guid></item><item><title><![CDATA[New comment by skydhash in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>On my local copy of the repo, commits are notes to myself. I don't use the `--message` switch. I let git bring up my $EDITOR where I type what I did since the last commit. This helps when I'm writing the PR description and when I'm rebasing the branch on top of the main trunk. And then some time, I need to do a bit of git-fu and split the changes into different PRs. Hard to do this with generic messages.<p>But I use magit and I can commit specific lines and hunks as easily as files. That helps with managing changes to meaningfully group them.</p>
]]></description><pubDate>Thu, 09 Apr 2026 04:37:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47699315</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47699315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47699315</guid></item><item><title><![CDATA[New comment by skydhash in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>> `git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --`<p>If you remove the rainbow specification, it should be<p><pre><code>  git log --graph --pretty=format:'%h -%d %s (%cr) <%an>' --abbrev-commit --
</code></pre>
And most programmers are used to C style formatting.</p>
]]></description><pubDate>Thu, 09 Apr 2026 04:23:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47699246</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47699246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47699246</guid></item><item><title><![CDATA[New comment by skydhash in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>> I still don't understand why `checkout` is both for changing branches and clearing uncommitted changes.<p>Because `checkout` is for getting the working directory to the state of a specific revision. Which both means switching branches (which are just pointer to revisions) and clearing changes (and get back to the starting revision). In both cases, you "check out" the version of the file at a specific commit or HEAD.</p>
]]></description><pubDate>Thu, 09 Apr 2026 04:12:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47699189</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47699189</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47699189</guid></item><item><title><![CDATA[New comment by skydhash in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>Why should there be tolerance? You look it up once, then write a script or an alias if it's part of your workflow. Or made a note if it's worth that. I use magit and I get quick action and contextual help at every step of my interaction with git.</p>
]]></description><pubDate>Wed, 08 Apr 2026 20:44:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47696011</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47696011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47696011</guid></item><item><title><![CDATA[New comment by skydhash in "We moved Railway's frontend off Next.js. Builds went from 10+ mins to under 2"]]></title><description><![CDATA[
<p>No click-ops that way.</p>
]]></description><pubDate>Wed, 08 Apr 2026 17:37:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47693570</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47693570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47693570</guid></item><item><title><![CDATA[New comment by skydhash in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>I get your POV, but I’ve always considered that long-lived branches in the canonical repo (the one in the forge) other than the main one should be directly related to deployable artifacts. Anything else should be short-lived.<p>There can be experiment on the side that warrants your approach, but the amounts of merge going back and forth would make this hard to investigate (especially when blaming) I would prefer to have one single commit with a message that describe every contribution.</p>
]]></description><pubDate>Wed, 08 Apr 2026 17:32:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47693504</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47693504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47693504</guid></item><item><title><![CDATA[New comment by skydhash in "Claude Code login fails with OAuth timeout on Windows"]]></title><description><![CDATA[
<p>> This has no relation whatsoever to the sentence you quoted.<p>Maybe I wasn’t clear. What I wanted to convey is that the use of programming languages, paradigms, patterns, and other software engineering principles is related to the human side of programming.<p>You can solve a problem correctly, but with the resulting code being hard to parse. Or you can write readable code but with bugs. And almost everyone prefers the latter.<p>So badly written means incomprehensible code, mostly due to the size of it in the case of Agents. It’s all right if no one cares about the code. But if you expect someone to review it, changeset that even the author don’t understand is slop.</p>
]]></description><pubDate>Wed, 08 Apr 2026 13:44:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47690144</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47690144</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47690144</guid></item><item><title><![CDATA[New comment by skydhash in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>Do people actually share PR as in different people contributing to the same branch?<p>Also I can understand not squashing if the contribution comes from outside the organization. But in that case, I would expect a cleaned up history. But if every contribution is from members of the team, who can merge their own PR, squash merge is an easy way to get a clean history. Especially when most PR should be a single commit.</p>
]]></description><pubDate>Wed, 08 Apr 2026 12:37:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47689348</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47689348</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47689348</guid></item><item><title><![CDATA[New comment by skydhash in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>If the team is using a PR workflow, the PR is a working place to produce one single commit. The individual commits are just timestamped changes and comments. Think of it as the equivalent of annotated diff in mailing list conversation.</p>
]]></description><pubDate>Wed, 08 Apr 2026 12:27:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47689250</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47689250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47689250</guid></item><item><title><![CDATA[New comment by skydhash in "Taste in the age of AI and LLMs"]]></title><description><![CDATA[
<p>Moving faster towards what? The biggest diff? The most tickets closed? Or a working software?</p>
]]></description><pubDate>Wed, 08 Apr 2026 11:55:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47688950</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47688950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47688950</guid></item><item><title><![CDATA[New comment by skydhash in "Git commands I run before reading any code"]]></title><description><![CDATA[
<p>It’s not “having to squash”. The intent was already for a PR to be a single commit. I could squash it on my end and merge by rebasing, but any alteration would then need to be force-pushed. So I don’t bother. I squash-merge when it’s ready and delete the branch.</p>
]]></description><pubDate>Wed, 08 Apr 2026 11:49:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47688883</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47688883</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47688883</guid></item><item><title><![CDATA[New comment by skydhash in "Taste in the age of AI and LLMs"]]></title><description><![CDATA[
<p>Test suites don't verify correctness. They just ensure that you haven't broke something so bad the specific instances that the tests assert have turned into a failure. You can have a factorial function and more likely the test cases will only be a few numbers. Which does not guarantee correctness as someone who know about the test cases can just put a switch and return the correct response for those specific cases.<p>The compromise is worth it in traditional coding, because someone will care about the implementation. The test cases are more like the canary in the coal mine. A failure warrants investigations but an all green is not a guarantee of success.</p>
]]></description><pubDate>Wed, 08 Apr 2026 02:52:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47684422</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47684422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47684422</guid></item><item><title><![CDATA[New comment by skydhash in "Taste in the age of AI and LLMs"]]></title><description><![CDATA[
<p>Deciding between 1000 different versions is a lot of effort IMO. With manual coding, you’re mostly deciding one decision point at a time, which is easier when you think about it. It just require foresight which comes from experience</p>
]]></description><pubDate>Tue, 07 Apr 2026 20:39:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47681064</link><dc:creator>skydhash</dc:creator><comments>https://news.ycombinator.com/item?id=47681064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47681064</guid></item></channel></rss>