<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: meejah</title><link>https://news.ycombinator.com/user?id=meejah</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 25 Jun 2026 04:22:57 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=meejah" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by meejah in "Hypothesis: Property-Based Testing for Python"]]></title><description><![CDATA[
<p>Here are some fairly simple examples: testing port parsing <a href="https://github.com/meejah/fowl/blob/e8253467d7072cd05f21de7cd6d94cef3fe5977e/src/fowl/test/test_cli.py#L146" rel="nofollow">https://github.com/meejah/fowl/blob/e8253467d7072cd05f21de7c...</a><p>...and <a href="https://github.com/magic-wormhole/magic-wormhole/blob/1b4732cc785dc93b4c50f8679e34fb54e99cc32b/src/wormhole/test/dilate/test_subchannel.py#L303" rel="nofollow">https://github.com/magic-wormhole/magic-wormhole/blob/1b4732...</a><p>The simplest ones to get started with are "strings", IMO, and also gives you lots of mileage (because it'll definitely test some weird unicode). So, somewhere in your API where you take some user-entered strings -- even something "open ended" like "a name" -- you can make use of Hypothesis to try a few things. This has definitely uncovered unicode bugs for me.<p>Some more complex things can be made with some custom strategies. The most-Hypothesis-heavy tests I've personally worked with are from Magic Folder strategies: <a href="https://github.com/tahoe-lafs/magic-folder/blob/main/src/magic_folder/test/strategies.py#L219" rel="nofollow">https://github.com/tahoe-lafs/magic-folder/blob/main/src/mag...</a><p>The only real downside is that a Hypothesis-heavy test-suite like the above can take a while to run (but you can instruct it to only produce one example per test). Obviously, one example per test won't catch everything, but is way faster when developing and Hypothesis remembers "bad" examples so if you occasionally do a longer run it'll remember things that caused errors before.</p>
]]></description><pubDate>Wed, 05 Nov 2025 05:15:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45819434</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45819434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45819434</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>I am not a cryptographer, but can explain that Magic Wormhole uses SPAKE2 to negotiate a shared secret (RFC9382 claims equivalent to gap Diffie-Hellman), and then uses NaCl SecretBox to symmetrically encrypt all data between the peers.<p>(If using the newer Dilation protocol -- which is true for many of the non-file-transfer tools like ShWiM, Git-WithMe or Fowl -- peer traffic uses this shared secret with Noise, specifically "Noise_NNpsk0_25519_ChaChaPoly_BLAKE2s")<p>One tool that does now use Magic Wormhole for "introduction" like this is EtherSync: <a href="https://ethersync.github.io/ethersync/" rel="nofollow">https://ethersync.github.io/ethersync/</a></p>
]]></description><pubDate>Tue, 07 Oct 2025 18:21:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45506773</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45506773</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45506773</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>Correct.<p>It does learn some metadata: the endpoints of the messages (unless you use Tor) and the number of bytes in those messages.</p>
]]></description><pubDate>Mon, 06 Oct 2025 20:51:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45496192</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45496192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45496192</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>...and also "Git-WithMe" for peer-to-peer, one-off Git usage: <a href="https://sr.ht/~meejah/git-withme/" rel="nofollow">https://sr.ht/~meejah/git-withme/</a></p>
]]></description><pubDate>Mon, 06 Oct 2025 18:35:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494648</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494648</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>Note, too, that you may run your own "transit helper" (code: <a href="https://github.com/magic-wormhole/magic-wormhole-transit-relay/" rel="nofollow">https://github.com/magic-wormhole/magic-wormhole-transit-rel...</a> ) and then specify this via "wormhole --transit-helper tcp:<your host>:<port>" when doing a transfer.<p>You do need to run the helper on a public IP address, like a rented VPS for example.</p>
]]></description><pubDate>Mon, 06 Oct 2025 18:32:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494617</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494617</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>You should probably first test and ensure that you're sending "directly" instead of via the relay -- but if that's true then yes.</p>
]]></description><pubDate>Mon, 06 Oct 2025 18:30:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494580</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494580</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>One use-case could be for SyncThing to actually _use_ magic-wormhole as a way to introduce / join another endpoint to a SyncThing folder.</p>
]]></description><pubDate>Mon, 06 Oct 2025 18:28:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494570</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494570</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>There are Rust and Haskell implementations too (not quite as feature-full as the Python code yet, though) as well.<p>In principal WebRTC communication could be added to magic-wormhole, but that work has not been done yet. There is WebSocket support in the relay (including "cross-protocol" so one client can be WebSocket and the other TCP). This is only deployed on the Winden.app servers (tcp://relay.mw.leastauthority.com:4001 and wss://relay.mw.leastauthority.com for the relay).<p>You'd need to use the Winden.app relay server if you want <a href="https://winden.app" rel="nofollow">https://winden.app</a> users to reach your Python CLI (e.g. via "wormhole --relay-url wss://mailbox.mw.leastauthority.com/v1 send" for example)</p>
]]></description><pubDate>Mon, 06 Oct 2025 18:24:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494504</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494504</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>You might even use Magic Wormhole to securely transfer WireGuard keys!</p>
]]></description><pubDate>Mon, 06 Oct 2025 18:20:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494449</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494449</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>There are several different clients available for Magic Wormhole, including GUIs and phone apps: <a href="https://magic-wormhole.readthedocs.io/en/latest/ecosystem.html#guis-for-desktop-mobile-web" rel="nofollow">https://magic-wormhole.readthedocs.io/en/latest/ecosystem.ht...</a></p>
]]></description><pubDate>Mon, 06 Oct 2025 18:19:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494430</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494430</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>If two Magic Wormhole clients _are_ on the same LAN they should communicate directly that way (i.e. no relay required).</p>
]]></description><pubDate>Mon, 06 Oct 2025 18:18:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494414</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494414</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494414</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: Get things from one computer to another, safely"]]></title><description><![CDATA[
<p>Yes, there are several alternative clients including several for Android: <a href="https://magic-wormhole.readthedocs.io/en/latest/ecosystem.html#guis-for-desktop-mobile-web" rel="nofollow">https://magic-wormhole.readthedocs.io/en/latest/ecosystem.ht...</a></p>
]]></description><pubDate>Mon, 06 Oct 2025 18:13:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45494349</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=45494349</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45494349</guid></item><item><title><![CDATA[New comment by meejah in "Shell-with-me/shwim: instant E2EE terminal sharing"]]></title><description><![CDATA[
<p>Building on top of various Magic Wormhole features, "shwim" enables quick and easy 1:1 terminal sharing with durable, end-to-end-encrypted communications using tty-share.</p>
]]></description><pubDate>Thu, 07 Aug 2025 21:29:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=44830623</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=44830623</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44830623</guid></item><item><title><![CDATA[Shell-with-me/shwim: instant E2EE terminal sharing]]></title><description><![CDATA[
<p>Article URL: <a href="https://meejah.ca/blog/initial-shwim-release">https://meejah.ca/blog/initial-shwim-release</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44830622">https://news.ycombinator.com/item?id=44830622</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 07 Aug 2025 21:29:41 +0000</pubDate><link>https://meejah.ca/blog/initial-shwim-release</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=44830622</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44830622</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: get things from one computer to another, safely"]]></title><description><![CDATA[
<p>Yes, all the implementations speak the same wire protocol.<p>The Python implementation has the most features. More about which implementations support what features is here: <a href="https://magic-wormhole.readthedocs.io/en/latest/ecosystem.html" rel="nofollow">https://magic-wormhole.readthedocs.io/en/latest/ecosystem.ht...</a></p>
]]></description><pubDate>Mon, 26 Aug 2024 16:17:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=41358732</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=41358732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41358732</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: get things from one computer to another, safely"]]></title><description><![CDATA[
<p>The Haskell implementation uses the same protocol as the Python implementation. The main difference is that there are some features the Python implementation has that the Haskell implementation still lacks (most notable "Dilation").<p>See also <a href="https://github.com/magic-wormhole/magic-wormhole-protocols/">https://github.com/magic-wormhole/magic-wormhole-protocols/</a></p>
]]></description><pubDate>Mon, 26 Aug 2024 16:16:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=41358714</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=41358714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41358714</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: get things from one computer to another, safely"]]></title><description><![CDATA[
<p>That is just using normal STUN/TURN via another server that one of those developers is running</p>
]]></description><pubDate>Mon, 26 Aug 2024 16:14:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=41358694</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=41358694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41358694</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: get things from one computer to another, safely"]]></title><description><![CDATA[
<p>Yes, it does -- via the Rust implementation.</p>
]]></description><pubDate>Sun, 18 Aug 2024 00:21:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=41279158</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=41279158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41279158</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: get things from one computer to another, safely"]]></title><description><![CDATA[
<p>There's also a Haskell implementation (besides the Go one pointed out above). They all interoperate.</p>
]]></description><pubDate>Sun, 18 Aug 2024 00:17:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=41279138</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=41279138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41279138</guid></item><item><title><![CDATA[New comment by meejah in "Magic Wormhole: get things from one computer to another, safely"]]></title><description><![CDATA[
<p>There is also <a href="https://magic-wormhole.readthedocs.io/en/latest/ecosystem.html" rel="nofollow">https://magic-wormhole.readthedocs.io/en/latest/ecosystem.ht...</a> and if that is lacking anything please file a ticket or pull-request</p>
]]></description><pubDate>Sun, 18 Aug 2024 00:04:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=41279078</link><dc:creator>meejah</dc:creator><comments>https://news.ycombinator.com/item?id=41279078</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41279078</guid></item></channel></rss>