<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: jolmg</title><link>https://news.ycombinator.com/user?id=jolmg</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Jul 2026 05:47:46 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jolmg" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jolmg in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>Such a generic word. I imagine there are tons of CLI utilities out there with a --passkey option that refer to simply files with a key inside. Kind of crazy that it's being used to mean specifically devices that implement a specific protocol.<p>Kind of feels like "crypto is a type of currency and not all cryptography", or "SQL Server is a specific product of Microsoft".<p>Wonder if how it happened this time was people read the specs and explanations of WebAuthn, saw "passkey", never seen that word before and assumed it's only ever been used in the super narrow context of WebAuthn so it can only mean that. Maybe "header" can only ever mean "HTTP header".<p>Thinking about it like that, it may be more like how "latte" is specifically espresso with milk (it's really just milk), or "queso" is specifically cheese dip (it's really just cheese of any kind), or "masa" is specifically made of corn (it's really just dough of any kind, or it's mass like atomic mass is masa atómica).</p>
]]></description><pubDate>Wed, 22 Jul 2026 19:22:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49012075</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=49012075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49012075</guid></item><item><title><![CDATA[New comment by jolmg in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>Is "passkey" only supposed to mean devices that implement specifically U2F, WebAuthn, etc.? I would have thought TOTP and challenge-response hardware tokens to count, including cellphones with apps that implement such.<p>As to<p>> No major bank revokes your password when you setup a passkey, either.<p>If we're talking about requiring 2FA via TOTP or challenge-response hardware tokens or banking apps implementing such, that depends on the country. It's the status-quo in some places. Some banks even put the input field for the token output as a third input in the login form on their website because all customers have them. The rest separate their login form in multiple steps, but they likely require it of all customers too.</p>
]]></description><pubDate>Wed, 22 Jul 2026 18:50:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=49011597</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=49011597</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49011597</guid></item><item><title><![CDATA[New comment by jolmg in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>> I've not seen any insist that a passkey _must_ be used, and you can always log in with your password (or worst case, email magic links) as a fallback.<p>With the exception of Github, and banks.</p>
]]></description><pubDate>Wed, 22 Jul 2026 18:06:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49010955</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=49010955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49010955</guid></item><item><title><![CDATA[New comment by jolmg in "ScreenWall – Turn old phones into synced widgets for your space"]]></title><description><![CDATA[
<p>The link provided by cydodon is about emulating a battery.</p>
]]></description><pubDate>Wed, 22 Jul 2026 13:20:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49006328</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=49006328</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49006328</guid></item><item><title><![CDATA[New comment by jolmg in "The git history command"]]></title><description><![CDATA[
<p>I mean, that's a positive feedback loop. It takes longer to review, because they're expecting them to be big. Big PRs/MRs are left there until there's a big enough free time block to tackle and discuss. If the PRs are small, obvious things, they can be merged in minutes.<p>(Depending on what the PR's about and how the team organizes. Ideally, there's consensus on the goals or who's responsible for what. Reviews can be limited to finding bugs and e.g. organizational problems)</p>
]]></description><pubDate>Tue, 14 Jul 2026 21:07:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48912970</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48912970</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48912970</guid></item><item><title><![CDATA[New comment by jolmg in "The Git history command deserves more attention"]]></title><description><![CDATA[
<p><p><pre><code>  man git-bisect</code></pre></p>
]]></description><pubDate>Tue, 14 Jul 2026 03:27:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901930</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901930</guid></item><item><title><![CDATA[New comment by jolmg in "The Git history command deserves more attention"]]></title><description><![CDATA[
<p>Right, maybe a better way to get what they're going for would be<p><pre><code>  git checkout @~ ^tests
</code></pre>
where ^tests is zsh's way of saying * except for tests. So you get the tests/ of the current commit and the code of the prior.</p>
]]></description><pubDate>Tue, 14 Jul 2026 03:24:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901908</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901908</guid></item><item><title><![CDATA[New comment by jolmg in "The git history command"]]></title><description><![CDATA[
<p>Yeah, there's a balance. I try to make my commits so they make sense on their own.<p>> commits around it to figure out why that change was even made.<p>A commit should be such that the message can articulate the why.</p>
]]></description><pubDate>Tue, 14 Jul 2026 03:18:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901866</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901866</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901866</guid></item><item><title><![CDATA[New comment by jolmg in "The git history command"]]></title><description><![CDATA[
<p>> No one is ever going back and reading individual commits.<p>Straight from the git-log, maybe not, but sometimes you see code that makes you wonder how it came to be and it can help a lot to see it in context of the commit that introduced it. That'd be less helpful if that commit were some huge thing making lots of different changes at once.</p>
]]></description><pubDate>Tue, 14 Jul 2026 03:08:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901815</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901815</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901815</guid></item><item><title><![CDATA[New comment by jolmg in "The git history command"]]></title><description><![CDATA[
<p>Maybe the issue is they think of a PR as an expensive thing. Would be best if they could just do the small thing and make a PR of that from the get-go. If they want to base future changes on the ones they just did, they can just create a new feature branch from right there, and just not create the PR of the second feature until the first is merged, or create it and add a note to the reviewer that it includes the changes of the other PR so they should review that one first. Should they want to add changes to the first feature, they just need to checkout that branch, do the changes, and merge to the second feature branch so they're available there.</p>
]]></description><pubDate>Tue, 14 Jul 2026 03:03:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901786</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901786</guid></item><item><title><![CDATA[New comment by jolmg in "The Git history command deserves more attention"]]></title><description><![CDATA[
<p>Huh.. That's a shame :(. Maybe what it refers to is if you had a branch on B rather than D, it might update that.<p>EDIT: Yeah, this seems to be it. `git branch b` on b, then `git rebase -i --update-ref @~3` from main caused branch ref `b` to move from d86229e to 02fcaf7:<p><pre><code>  * 1e354fb (HEAD -> main) fix b
  * 40e6f70 c
  * 02fcaf7 (b) b
  | * f4188e0 (branched-feature) d
  | * d86229e b
  |/  
  * 5fe78fa a</code></pre></p>
]]></description><pubDate>Tue, 14 Jul 2026 02:33:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901607</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901607</guid></item><item><title><![CDATA[New comment by jolmg in "The git history command"]]></title><description><![CDATA[
<p>> but branches can be moved around with less ceremony than tags<p>`git tag -f` to move a tag.<p>Personally, I just do `git show` when I'm feeling cautious, but I can generally just scroll up to find the last `git commit` I did with the hash in the output. `git reflog` should also have record of it, so everything else is kind of extra.</p>
]]></description><pubDate>Tue, 14 Jul 2026 02:30:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901590</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901590</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901590</guid></item><item><title><![CDATA[New comment by jolmg in "The Git history command deserves more attention"]]></title><description><![CDATA[
<p>Exactly, but the second graph where untouched E is reparented to B' is not something that git would allow.</p>
]]></description><pubDate>Tue, 14 Jul 2026 02:14:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901484</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901484</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901484</guid></item><item><title><![CDATA[New comment by jolmg in "The git history command"]]></title><description><![CDATA[
<p>>  I'll end up with this state, where `E` remains untouched?<p>Can't, because a commit's hash takes into account the parent hashes.<p>Haven't used --update-refs, but reading it, it should result in your third graph. So,<p>> is there a way to get `git rebase` to have the same behavior?<p>is already the case.</p>
]]></description><pubDate>Tue, 14 Jul 2026 02:10:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901459</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901459</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901459</guid></item><item><title><![CDATA[New comment by jolmg in "The git history command"]]></title><description><![CDATA[
<p>One can also use that, or just `git log -n1` and taking note of the commit hash. So many options.</p>
]]></description><pubDate>Tue, 14 Jul 2026 02:06:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901430</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901430</guid></item><item><title><![CDATA[New comment by jolmg in "The git history command"]]></title><description><![CDATA[
<p>> scary rebase -i commands that can leave your tree in a half-broken state if you so much as sneeze<p>`git rebase --abort` exists. One can also set a tag or something before doing the rebase, do whatever, then `git reset --hard $set_tag` to go back. Nothing to be scared of. Not like the prior state is lost.</p>
]]></description><pubDate>Tue, 14 Jul 2026 01:52:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901340</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48901340</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901340</guid></item><item><title><![CDATA[New comment by jolmg in "How to read more books"]]></title><description><![CDATA[
<p>Yeah, the benefit of audiobooks is being able to do it while doing chores or being out and about. The medium's ideal for being hands-off.</p>
]]></description><pubDate>Mon, 13 Jul 2026 04:10:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48887800</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48887800</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48887800</guid></item><item><title><![CDATA[New comment by jolmg in "How to read more books"]]></title><description><![CDATA[
<p>> it could not be any more of an equal experience absorbing a book through my eyes or my ears.<p>With stories, probably. With nonstories, and depending on what kind of nonstory book, I might jump around a lot. I might like to skim quickly (e.g. chapters/sections, starting sentences of every few paragraphs, etc.), then skim more thoroughly (e.g. recheck paragraphs of a chapter to get a general flow of it and how they connect, etc.), then read thoroughly on some sections and less others. You just can't do that with audiobooks. You don't have the same level of control.<p>Depending on how thought-provoking something is, my mind may stray on thinking of implications. Then, it's easier for my eyes to dart back by the time I notice and reread x or y, than rewinding, listening a little bit, rewind some more, etc. I might just stare at some words sometimes. You can't stare at sound.<p>Memory in relation to sight and sound is probably different, too. With sight you can kind of make more associations. You read an idea, and you can associate that with the location of where you're reading it (what part of the page, around how many pages have been turned in the chapter, what chapter, thickness of pages on left and right side of the spine). With sound, it's just a single stream. You're not staring at the timestamp location in the file of everything you're hearing and there isn't like this hierarchical location structure.</p>
]]></description><pubDate>Mon, 13 Jul 2026 03:29:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48887527</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48887527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48887527</guid></item><item><title><![CDATA[New comment by jolmg in "An update on residential proxies and the scraper situation"]]></title><description><![CDATA[
<p>> Anyway, I would’ve thought it’s an acceptable cost from e.g. Google’s perspective to block ranges that did something bad once in spite of collateral damage.<p>Almost nobody is on a static IP. ISPs have an interest to keep their customers connected and not affected by other customers, so they'd probably use as large address pools as possible for their dynamic IP rotations. "Did something bad once" is short-lived unless address ranges are large.<p>Tech companies like Google are interested in being global monopolies to dominate markets and also having as good and large-sampled statistical data as possible from everyone. Blocking thousands of users for each bad user that can likely easily switch to another block if they really want to doesn't seem effective. It would also affect their reputation. Who wants to rely on an email service that may block you because of other users on your IP block? Having a reputation for being reliable is important for businesses.<p>With small personal sites/blogs like the ones you mentioned, they can just block most of the planet without a problem. There's not as much reason to be as reachable as possible (some may be satisfied with an audience of a handful of people), and they're also more budget conscious.<p>In the case of Google blocking an Apple service, they not blocking users; they're blocking Apple. The users can just not use Apple's service.</p>
]]></description><pubDate>Sat, 11 Jul 2026 21:11:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48875923</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48875923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48875923</guid></item><item><title><![CDATA[New comment by jolmg in "An update on residential proxies and the scraper situation"]]></title><description><![CDATA[
<p>> There must be countless individuals all over the world who suddenly can't log into their Gmail or create any new accounts because a fraudster sent spam from their IP.<p>Places with open WiFi like hotels and restaurants would be having the same problem. People on CGNATs would be having the same problem. An IP doesn't correspond with a single user.</p>
]]></description><pubDate>Sat, 11 Jul 2026 04:12:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48868663</link><dc:creator>jolmg</dc:creator><comments>https://news.ycombinator.com/item?id=48868663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48868663</guid></item></channel></rss>