<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: jamilbk</title><link>https://news.ycombinator.com/user?id=jamilbk</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 15 May 2026 18:26:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jamilbk" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[The identity join problem: Linking SSO profiles to directory users]]></title><description><![CDATA[
<p>Article URL: <a href="https://workos.com/blog/linking-sso-profiles-to-directory-users">https://workos.com/blog/linking-sso-profiles-to-directory-users</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48117235">https://news.ycombinator.com/item?id=48117235</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 13 May 2026 02:47:28 +0000</pubDate><link>https://workos.com/blog/linking-sso-profiles-to-directory-users</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=48117235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48117235</guid></item><item><title><![CDATA[Sans-IO: The secret to effective Rust for network services (2024)]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.firezone.dev/blog/sans-io">https://www.firezone.dev/blog/sans-io</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48037563">https://news.ycombinator.com/item?id=48037563</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 06 May 2026 15:44:55 +0000</pubDate><link>https://www.firezone.dev/blog/sans-io</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=48037563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48037563</guid></item><item><title><![CDATA[Against DNSSEC (2015)]]></title><description><![CDATA[
<p>Article URL: <a href="https://sockpuppet.org/blog/2015/01/15/against-dnssec/">https://sockpuppet.org/blog/2015/01/15/against-dnssec/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48035788">https://news.ycombinator.com/item?id=48035788</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 06 May 2026 13:07:20 +0000</pubDate><link>https://sockpuppet.org/blog/2015/01/15/against-dnssec/</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=48035788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48035788</guid></item><item><title><![CDATA[New comment by jamilbk in "Talking to strangers at the gym"]]></title><description><![CDATA[
<p>Yeah, the weight floor can be hit or miss with regards to striking convos with strangers. Many of the people there want to make friends too, but many just want to focus on their workout.<p>Two related contexts that I've found to be much more friendly for this:<p>1. Climbing gyms, for reasons mentioned previously<p>2. The sauna! Actually very ideal for convos with strangers. Max overlap time is ~15 minutes, people are generally relaxed, no phones to distract and if it doesn't go well either party can always leave.</p>
]]></description><pubDate>Tue, 05 May 2026 02:15:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48017347</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=48017347</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48017347</guid></item><item><title><![CDATA[New comment by jamilbk in "Can I disable all data collection from my vehicle?"]]></title><description><![CDATA[
<p>I remember yanking out the onstar unit in my 2015 silverado to physically disconnect the cell antenna. This was (is?) the only practical way to disable cellular in that vehicle.<p>Kudos to Rivian for making this a supported user privacy feature.</p>
]]></description><pubDate>Thu, 30 Apr 2026 20:38:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47967914</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=47967914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47967914</guid></item><item><title><![CDATA[New comment by jamilbk in "The challenges of soft delete"]]></title><description><![CDATA[
<p>At Firezone we started with soft-deletes thinking it might be useful for an audit / compliance log and quickly ran into each of the problems described in this article. The real issue for us was migrations - having to maintain structure of deleted data alongside live data just didn't make sense, and undermined the point of an immutable audit trail.<p>We've switched to CDC using Postgres which emits into another (non-replicated) write-optimized table. The replication connection maintains a 'subject' variable to provide audit context for each INSERT/UPDATE/DELETE. So far, CDC has worked very well for us in this manner (Elixir / Postgrex).<p>I do think soft-deletes have their place in this world, maybe for user-facing "restore deleted" features. I don't think compliance or audit trails are the right place for them however.</p>
]]></description><pubDate>Tue, 20 Jan 2026 23:47:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46699290</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=46699290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46699290</guid></item><item><title><![CDATA[New comment by jamilbk in "Self-hosting is being enshittified"]]></title><description><![CDATA[
<p>I don't fully understand the complaints about enshittification of open source permissively licensed software.<p>If the source code is available for you to fork, modify, and maintain as you see fit, what's the complaining really about?</p>
]]></description><pubDate>Mon, 29 Dec 2025 03:12:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46417089</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=46417089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46417089</guid></item><item><title><![CDATA[Hard Mode Rust (2022)]]></title><description><![CDATA[
<p>Article URL: <a href="https://matklad.github.io/2022/10/06/hard-mode-rust.html">https://matklad.github.io/2022/10/06/hard-mode-rust.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42675445">https://news.ycombinator.com/item?id=42675445</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 12 Jan 2025 18:11:12 +0000</pubDate><link>https://matklad.github.io/2022/10/06/hard-mode-rust.html</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=42675445</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42675445</guid></item><item><title><![CDATA[New comment by jamilbk in "How NAT Traversal Works (2020)"]]></title><description><![CDATA[
<p>Yes, the established standard here is known collectively as Interactive Connectivity Establishment (ICE) [1] which WebRTC relies on -- there are a few good libraries out there that implement it and/or various elements of it [2] [3].<p>libp2p [4] may be what you're after if you want something geared more towards general purpose connectivity.<p>[1] <a href="https://datatracker.ietf.org/doc/html/rfc8445" rel="nofollow">https://datatracker.ietf.org/doc/html/rfc8445</a><p>[2] <a href="https://github.com/pion/webrtc">https://github.com/pion/webrtc</a><p>[3] <a href="https://github.com/algesten/str0m">https://github.com/algesten/str0m</a><p>[4] <a href="https://libp2p.io" rel="nofollow">https://libp2p.io</a></p>
]]></description><pubDate>Sun, 05 Jan 2025 12:20:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=42601314</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=42601314</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42601314</guid></item><item><title><![CDATA[New comment by jamilbk in "Show HN: Test your WireGuard connectivity and see global stats, no client needed"]]></title><description><![CDATA[
<p>PRs welcome! We may not have much bandwidth to help, but happy to review anything that comes along. We can discuss further perhaps on a GitHub issue so the rest of the Firezone team can offer input: <a href="https://github.com/firezone/probe/issues/new">https://github.com/firezone/probe/issues/new</a>.</p>
]]></description><pubDate>Sun, 11 Aug 2024 00:55:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=41213272</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41213272</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41213272</guid></item><item><title><![CDATA[New comment by jamilbk in "Show HN: Test your WireGuard connectivity and see global stats, no client needed"]]></title><description><![CDATA[
<p>I've exposed `Android` as a support OS. Give it a shot now.</p>
]]></description><pubDate>Sun, 11 Aug 2024 00:53:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=41213266</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41213266</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41213266</guid></item><item><title><![CDATA[New comment by jamilbk in "Show HN: Test your WireGuard connectivity and see global stats, no client needed"]]></title><description><![CDATA[
<p>Noted! I'll update it to use the Unix instructions in that case. Thanks for the feedback!</p>
]]></description><pubDate>Sun, 11 Aug 2024 00:20:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41213148</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41213148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41213148</guid></item><item><title><![CDATA[New comment by jamilbk in "Show HN: Test your WireGuard connectivity and see global stats, no client needed"]]></title><description><![CDATA[
<p>Unfortunately the app wasn't designed to intake test results from runs that didn't originate from itself. We wanted to make it harder to submit fake results, and didn't want to add a lot of friction around user auth and such.</p>
]]></description><pubDate>Sat, 10 Aug 2024 18:11:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=41211224</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41211224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41211224</guid></item><item><title><![CDATA[New comment by jamilbk in "Show HN: Test your WireGuard connectivity and see global stats, no client needed"]]></title><description><![CDATA[
<p>Great! Did the test report the block accurately for you?</p>
]]></description><pubDate>Sat, 10 Aug 2024 15:59:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=41210371</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41210371</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41210371</guid></item><item><title><![CDATA[Show HN: Test your WireGuard connectivity and see global stats, no client needed]]></title><description><![CDATA[
<p>Hi HN,<p>Some misbehaving networks drop WireGuard packets either by accident or on purpose. Commonly the latter is done with simple DPI rules that block the handshake initiation [1], but it could be applied to other message types as well.<p>We thought it would be great if there was tool for folks to use as a quick litmus test to see if this happening for them, without having to configure a client to send data through a random, functional WireGuard tunnel to an untrusted remote host. So we built probe.sh.<p>How it works:<p>- The probe.sh web app is an Elixir Phoenix app that spawns a few gen_udp servers across a variety of common UDP ports.
- When a user visits the app, Probe starts a LiveView process and generates a unique cryptographic token to use for the test.
- When the user runs the script shown, it first sends an HTTP request to start the test, followed by a series of UDP payloads, and finally either a complete or cancel request to end the test.
- The UDP payloads are crafted to resemble real world WireGuard packets and sent with widely available tools like netcat (Unix) and System.Net.Sockets.UdpClient (Win) already on your OS.
- The gen_udp server receives these payloads, and if they match one of the four WireGuard message types by header, it broadcasts test updates to the LiveView process for that test, and the test is marked as success.
- The user is immediately shown the results of the test.<p>The entire tool is open source at <a href="https://github.com/firezone/probe">https://github.com/firezone/probe</a> (README contains guide for self-hosting) and you can find a FAQ with more useful info at <a href="https://probe.sh/faq" rel="nofollow">https://probe.sh/faq</a>. You can also see our tally of global results organized by country: <a href="https://probe.sh/stats" rel="nofollow">https://probe.sh/stats</a><p>We hope you find it useful for testing your network for WireGuard connectivity issues.<p>Thanks for reading - feedback welcome!<p>[1] <a href="https://x.com/6h4n3m/status/1459462360003919875" rel="nofollow">https://x.com/6h4n3m/status/1459462360003919875</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41205141">https://news.ycombinator.com/item?id=41205141</a></p>
<p>Points: 43</p>
<p># Comments: 10</p>
]]></description><pubDate>Fri, 09 Aug 2024 20:27:13 +0000</pubDate><link>https://probe.sh</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41205141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41205141</guid></item><item><title><![CDATA[New comment by jamilbk in "Launch HN: Firezone (YC W22) – Zero-trust access platform built on WireGuard"]]></title><description><![CDATA[
<p>We have a few intrepid users self-hosting the entire Firezone stack, but we don't have documentation to support it (yet), and wouldn't recommend it for production. It's something we'd like to write and maintain eventually, even if only for smaller / hobby deployments.<p>We do have a self-hosted community support channel on Discord if you are feeling adventurous: <a href="https://discord.gg/DY8gxpSgep" rel="nofollow">https://discord.gg/DY8gxpSgep</a><p>I would recommend starting here with a local development cluster:<p><a href="https://github.com/firezone/firezone/blob/main/docs/CONTRIBUTING.md">https://github.com/firezone/firezone/blob/main/docs/CONTRIBU...</a></p>
]]></description><pubDate>Wed, 07 Aug 2024 14:41:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=41181977</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41181977</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41181977</guid></item><item><title><![CDATA[New comment by jamilbk in "Launch HN: Firezone (YC W22) – Zero-trust access platform built on WireGuard"]]></title><description><![CDATA[
<p>You can read more about how we came up with the current implementation here:<p><a href="https://github.com/firezone/firezone/issues/3553">https://github.com/firezone/firezone/issues/3553</a><p>We didn't invent these techniques. Host candidates are part of standard ICE:<p><a href="https://datatracker.ietf.org/doc/html/rfc8445#section-5.1.1.1" rel="nofollow">https://datatracker.ietf.org/doc/html/rfc8445#section-5.1.1....</a></p>
]]></description><pubDate>Wed, 07 Aug 2024 14:30:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=41181846</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41181846</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41181846</guid></item><item><title><![CDATA[New comment by jamilbk in "Launch HN: Firezone (YC W22) – Zero-trust access platform built on WireGuard"]]></title><description><![CDATA[
<p>Firezone's DNS-based routing is able to manage access to multiple services independently, even if they share the same IP address. So you could for example allow access to gitlab.company.com but not jira.company.com even if they were on the same webserver / loadbalancer.<p>It took a couple iterations to get it right - lots of fun edge cases involved. We ended up having to build automatic NAT64 and 46 for DNS resources to handle some of them. We wrote a post on how this works: <a href="https://www.firezone.dev/blog/how-dns-works-in-firezone">https://www.firezone.dev/blog/how-dns-works-in-firezone</a><p>In terms of attributes for allowing access, we currently support time-based, country/region-based, auth method, and IP-based, with more planned:
<a href="https://www.firezone.dev/kb/deploy/policies#conditional-access-policies">https://www.firezone.dev/kb/deploy/policies#conditional-acce...</a></p>
]]></description><pubDate>Wed, 07 Aug 2024 14:19:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=41181741</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41181741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41181741</guid></item><item><title><![CDATA[New comment by jamilbk in "Launch HN: Firezone (YC W22) – Zero-trust access platform built on WireGuard"]]></title><description><![CDATA[
<p>We don't support full-tunnel yet, but it's just around the corner. Track this issue if you're interested in its progress: <a href="https://github.com/firezone/firezone/issues/2667">https://github.com/firezone/firezone/issues/2667</a></p>
]]></description><pubDate>Wed, 07 Aug 2024 03:59:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=41178128</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41178128</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41178128</guid></item><item><title><![CDATA[New comment by jamilbk in "Launch HN: Firezone (YC W22) – Zero-trust access platform built on WireGuard"]]></title><description><![CDATA[
<p>Thanks!<p>Erlang/OTP has so far been an excellent platform to build on for a product like Firezone. We chose it specifically for its reputation for powering soft realtime systems. Phoenix Channels are an added bonus that allow us to push all updates where they need to go, in just a few hundred lines of code.<p>We couldn't be happier with the stack choice.</p>
]]></description><pubDate>Wed, 07 Aug 2024 03:44:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=41178065</link><dc:creator>jamilbk</dc:creator><comments>https://news.ycombinator.com/item?id=41178065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41178065</guid></item></channel></rss>