<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: exceptione</title><link>https://news.ycombinator.com/user?id=exceptione</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 04 Oct 2026 03:41:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=exceptione" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by exceptione in "Effect 4.0"]]></title><description><![CDATA[
<p>Ah thx, this is a rewrite of React's Context. `userName` would have been so much better than `value`. I had to keep the possibility in mind that `value` is a kind of implicit magic variable in atoms.<p>Not sure what benefit this atom stuff brings. In react I can see that `value` is an argument, which from an fp point of view is a clear pro.</p>
]]></description><pubDate>Sat, 03 Oct 2026 07:45:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=49942202</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49942202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49942202</guid></item><item><title><![CDATA[New comment by exceptione in "Effect 4.0"]]></title><description><![CDATA[
<p>Can someone explain why this is a good idea? There is a ton of magic here, since the value string is not even part of the UserName function signature. Dependency injection is not about hiding your dependencies. On a first look, this seems to be really bad, but I might be totally misunderstanding this library.<p><pre><code>    import { make, useAtomValue } from "@effect/atom-react"
    import { Atom } from "effect/reactivity"
    import * as React from "react"
    import { renderToStaticMarkup } from "react-dom/server"

    const User = make((name: string) => Atom.make(name))

    function UserName() {
        const atom = User.use()
        const value = useAtomValue(atom)
        return React.createElement("span", null, value)
    }

    export function App() {
    return React.createElement(
        User.Provider,
        { value: "Ada" },
        React.createElement(UserName)
        )
    }

    renderToStaticMarkup(React.createElement(App)) // => "<span>Ada</span>"
</code></pre>
(src = <a href="https://effect.website/docs/v4/api/atom-react/ScopedAtom" rel="nofollow">https://effect.website/docs/v4/api/atom-react/ScopedAtom</a>)</p>
]]></description><pubDate>Fri, 02 Oct 2026 19:25:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49937483</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49937483</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49937483</guid></item><item><title><![CDATA[New comment by exceptione in "Effect 4.0"]]></title><description><![CDATA[
<p>Monad Maybe?</p>
]]></description><pubDate>Fri, 02 Oct 2026 17:28:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49936153</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49936153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49936153</guid></item><item><title><![CDATA[New comment by exceptione in "Modern Object Pascal Introduction for Programmers"]]></title><description><![CDATA[
<p>Many languages provide 2 primitives as we generally want 2 different concepts:<p><pre><code>  String            -> immutable string
  StringBuilder     -> mutable string, optimized methods for string modification</code></pre></p>
]]></description><pubDate>Sun, 27 Sep 2026 10:56:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49865536</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49865536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49865536</guid></item><item><title><![CDATA[New comment by exceptione in "Modern Object Pascal Introduction for Programmers"]]></title><description><![CDATA[
<p><p><pre><code>  > Free Pascal strings are as close as you get to magic, compared to C/C++.
</code></pre>
Not your point of reference, but Java and C# treat strings as immutable objects too.</p>
]]></description><pubDate>Sun, 27 Sep 2026 10:51:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49865509</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49865509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49865509</guid></item><item><title><![CDATA[New comment by exceptione in "Poor Privacy Practices Leaves Revolut Customers Vulnerable (2020)"]]></title><description><![CDATA[
<p>related: <a href="https://gdprbuzz.com/news/revolut-confirms-data-breach-through-government-email-scam/" rel="nofollow">https://gdprbuzz.com/news/revolut-confirms-data-breach-throu...</a></p>
]]></description><pubDate>Fri, 25 Sep 2026 18:55:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=49848480</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49848480</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49848480</guid></item><item><title><![CDATA[Poor Privacy Practices Leaves Revolut Customers Vulnerable (2020)]]></title><description><![CDATA[
<p>Article URL: <a href="https://safereddit.com//r/Revolut/comments/gu5yyw/very_poor_privacy_practices_leaves_revolut/">https://safereddit.com//r/Revolut/comments/gu5yyw/very_poor_privacy_practices_leaves_revolut/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49848479">https://news.ycombinator.com/item?id=49848479</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Fri, 25 Sep 2026 18:55:09 +0000</pubDate><link>https://safereddit.com//r/Revolut/comments/gu5yyw/very_poor_privacy_practices_leaves_revolut/</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49848479</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49848479</guid></item><item><title><![CDATA[New comment by exceptione in "Virtio-nvgpu: Near-native Nvidia GPU access inside a KVM guest"]]></title><description><![CDATA[
<p><p><pre><code>  > just using PCI passthrough
</code></pre>
On a laptop, I never got a working setup where I could attach/detach a modern nvidia card from host linux. So something that can do without is better.
But intel SRIOV is a thing as well, which should be the secure alternative.</p>
]]></description><pubDate>Thu, 24 Sep 2026 09:14:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49828144</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49828144</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49828144</guid></item><item><title><![CDATA[New comment by exceptione in "ChatGPT now knows what you do on other websites via ad collector"]]></title><description><![CDATA[
<p>The surveillance economy hits again. The only business model they can think of. Combined with state capture this gives unprecedented power over the Average Joe, who will hand his life, his soul and his vote to Big Brother without a thought.</p>
]]></description><pubDate>Sun, 20 Sep 2026 17:23:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49777887</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49777887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49777887</guid></item><item><title><![CDATA[New comment by exceptione in "Show HN: Macros with a Behringer FCB1010 MIDI Pedalboard in macOS"]]></title><description><![CDATA[
<p>As an organ player, I sometimes dream of having a full midi pedal under my desk. Would be an easy way to get some extra exercise. The problem though is that I don't think such a thing is compatible with a comfy office chair. The polished wood of an organ bench isn't comfortable but it allows for mobility.</p>
]]></description><pubDate>Tue, 15 Sep 2026 08:14:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=49709322</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49709322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49709322</guid></item><item><title><![CDATA[New comment by exceptione in "Android NAT-T keepalive offload bypasses VPN lockdown"]]></title><description><![CDATA[
<p>Imho, the interface should not even be in the namespace to begin with. Unshare netns,  then using pasta allows you to pass a user-space network adapter inside. <a href="https://passt.top/passt/about/" rel="nofollow">https://passt.top/passt/about/</a><p>Caveat: I am no expert on Android.</p>
]]></description><pubDate>Mon, 14 Sep 2026 12:13:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49695549</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49695549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49695549</guid></item><item><title><![CDATA[New comment by exceptione in "How Much Has Trump Made from Crypto? ($1.4B from 2025 Federal Disclosure)"]]></title><description><![CDATA[
<p>I think any HN'er who previously voted republican has experienced enough disappointment; I doubt there would be anyone left.<p>The most important point for every political faction however is to realize that the problems aren't solved when the current president steps down. The real power that pushes the agenda rest in the hands of a loosely connected network of 'think tanks', religious organizations, tech billionaires and media moguls. They are hidden from the public discourse, simply because they are able to manage it, and as such are a formidable opponent.</p>
]]></description><pubDate>Mon, 14 Sep 2026 12:06:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49695466</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49695466</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49695466</guid></item><item><title><![CDATA[The Rules Changed. The Numbers Didn't]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.platypuseconomics.com/p/the-rules-changed-the-numbers-didnt">https://newsletter.platypuseconomics.com/p/the-rules-changed-the-numbers-didnt</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49695292">https://news.ycombinator.com/item?id=49695292</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 14 Sep 2026 11:51:56 +0000</pubDate><link>https://newsletter.platypuseconomics.com/p/the-rules-changed-the-numbers-didnt</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49695292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49695292</guid></item><item><title><![CDATA[New comment by exceptione in "Android NAT-T keepalive offload bypasses VPN lockdown"]]></title><description><![CDATA[
<p>I am not sure why all your comments are flagged, but here is my response to your other comment:<p><pre><code>  > We plan to heavily overhaul the VPN implementation to make most forms of leaks nearly impossible rather than continuing to use the current system prone to it.
</code></pre>
Thanks, great to hear. Given the slew of bugs you uncovered it seems the Android implementation has some rough edges. Would `pasta` be helpful to you? It allows you to unshare netns and then pass a user-space network adapter inside. <a href="https://passt.top/passt/about/" rel="nofollow">https://passt.top/passt/about/</a> Podman leverages this one as well in more recent versions.</p>
]]></description><pubDate>Sat, 12 Sep 2026 15:08:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=49673092</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49673092</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49673092</guid></item><item><title><![CDATA[New comment by exceptione in "Show HN: Graphify C# – Compiler-accurate Find Usages for coding agents"]]></title><description><![CDATA[
<p>Great, looking forward to it!</p>
]]></description><pubDate>Sat, 12 Sep 2026 11:31:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49671259</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49671259</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49671259</guid></item><item><title><![CDATA[New comment by exceptione in "Android NAT-T keepalive offload bypasses VPN lockdown"]]></title><description><![CDATA[
<p>GOS explicitly stated that they work on a fix, also for other issues and they keep this on their radar.<p>Google just closed the ticket, without communicating their plan to deal with it. I just stated that we cannot rule out a possibility of foul play, thereby keeping other options open. Keeping that thing in mind which is better known as "the reality" I would be a little bit more wary about Google's stance towards privacy than I would be about GOS though. The difference in how these parties are handling this issue is already a tell.</p>
]]></description><pubDate>Sat, 12 Sep 2026 10:48:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49671031</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49671031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49671031</guid></item><item><title><![CDATA[New comment by exceptione in "Another way to leak traffic on Android has been discovered"]]></title><description><![CDATA[
<p>Regarding cellular connection, the proof of concept presented here only works on wifi: <a href="https://github.com/GrapheneOS/os-issue-tracker/issues/8617" rel="nofollow">https://github.com/GrapheneOS/os-issue-tracker/issues/8617</a><p>I have a hunch this leak is bound to wifi hardware only, for details: <a href="https://supuk.ch/papers/android-natt-keepalive-vpn-bypass" rel="nofollow">https://supuk.ch/papers/android-natt-keepalive-vpn-bypass</a></p>
]]></description><pubDate>Sat, 12 Sep 2026 09:03:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49670464</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49670464</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49670464</guid></item><item><title><![CDATA[New comment by exceptione in "Android NAT-T keepalive offload bypasses VPN lockdown"]]></title><description><![CDATA[
<p>This paper goes into much more detail: <a href="https://supuk.ch/papers/android-natt-keepalive-vpn-bypass" rel="nofollow">https://supuk.ch/papers/android-natt-keepalive-vpn-bypass</a></p>
]]></description><pubDate>Sat, 12 Sep 2026 09:00:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=49670437</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49670437</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49670437</guid></item><item><title><![CDATA[New comment by exceptione in "Show HN: Graphify C# – Compiler-accurate Find Usages for coding agents"]]></title><description><![CDATA[
<p>The tool recommends you to use this skill <<a href="https://github.com/zachsaw/graphify-csharp/blob/main/.agents/skills/graphify-csharp/SKILL.md" rel="nofollow">https://github.com/zachsaw/graphify-csharp/blob/main/.agents...</a>>, but I wonder if this is the right approach if one just want to use this as a consumer in a .net project. It seems very wordy, but wording like these<p><pre><code>  "Read the relevant design documents under docs/ before changing architecture."
</code></pre>
makes me think that <i>developing</i> 'graphify the tool' and <i>using</i> 'graphify as a tool' are mixed up in the same document? How does an LLM keep track of both this gigantic skill and the user development problem at the same time?</p>
]]></description><pubDate>Sat, 12 Sep 2026 08:33:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=49670283</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49670283</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49670283</guid></item><item><title><![CDATA[New comment by exceptione in "Android NAT-T keepalive offload bypasses VPN lockdown"]]></title><description><![CDATA[
<p><p><pre><code>  > A proper fix would require changes in the Android system. The researcher who discovered the leak has reported the issue to the Android Vulnerability Reward Program, but according to the researcher the issue was closed without action. This issue is not public, but based on this information we deem it unlikely that Google will do anything about it. GrapheneOS is aware of the issue and are working on a fix.
</code></pre>
If the account given by the researcher is correct, we cannot rule out that Google deliberately introduced or wanted to keep the leak in place.</p>
]]></description><pubDate>Sat, 12 Sep 2026 08:20:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49670205</link><dc:creator>exceptione</dc:creator><comments>https://news.ycombinator.com/item?id=49670205</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49670205</guid></item></channel></rss>