<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: vngzs</title><link>https://news.ycombinator.com/user?id=vngzs</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 11 Jun 2026 00:25:30 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=vngzs" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by vngzs in "AI agents find $4.6M in blockchain smart contract exploits"]]></title><description><![CDATA[
<p>How do you manage to coax public production models into developing exploits or otherwise attacking systems? My experience has been extremely mixed, and I can't imagine it boding well for a pentesting tools startup to have end-users face responses like "I'm sorry, but I can't assist you in developing exploits."</p>
]]></description><pubDate>Tue, 02 Dec 2025 02:27:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46116660</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=46116660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46116660</guid></item><item><title><![CDATA[MinIO declines to release Docker builds resolving CVE-2025-62506]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/minio/minio/issues/21647">https://github.com/minio/minio/issues/21647</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45684035">https://news.ycombinator.com/item?id=45684035</a></p>
<p>Points: 175</p>
<p># Comments: 2</p>
]]></description><pubDate>Thu, 23 Oct 2025 16:46:57 +0000</pubDate><link>https://github.com/minio/minio/issues/21647</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=45684035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45684035</guid></item><item><title><![CDATA[New comment by vngzs in "The cryptography behind passkeys"]]></title><description><![CDATA[
<p>I can register my Yubikeys on account.google.com (and around the web, e.g., fastmail.com) as passkeys. If you visit the account security page[0] and enable "skip password when possible", then you can log in to Google with only a Yubikey-backed passkey.<p>If you have old Google creds on your Yubikey, you may have to first remove those creds from your account (because there are older and newer protocol choices, and with the old protocols enabled Google will not support passwordless login).<p>Multiple yubikeys are required if you would like to have backups; there is no syncing between keys.<p>For support matrices, see [1].<p>[0]: <a href="https://myaccount.google.com/security" rel="nofollow">https://myaccount.google.com/security</a><p>[1]: <a href="https://passkeys.dev/device-support/" rel="nofollow">https://passkeys.dev/device-support/</a></p>
]]></description><pubDate>Wed, 14 May 2025 16:41:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=43986591</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=43986591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43986591</guid></item><item><title><![CDATA[New comment by vngzs in "Show HN: Vekos – a Rust OS with Built-In Cryptographic Verification"]]></title><description><![CDATA[
<p>Curious what the threat model for the cryptographic verification is. It  looks like verify_signature_software[1] doesn't actually verify ed25519 signatures, but rather computes a truncated sha512 hash of the data and compares that with the supplied hash.<p><pre><code>    fn verify_signature_software(&self, data: &[u8], signature: &[u8; ED25519_SIGNATURE_LENGTH]) -> bool {
        let mut h = [0u8; 64];
        let data_hash = self.compute_sha512(data);
        for i in 0..32 {
            h[i] = data_hash[i];
        }
        self.verify_ed25519_reduced(h, signature)
    }
</code></pre>
This calls [1] which merely performs a byte equality check on the first 32 bytes of the hash:<p><pre><code>    fn verify_ed25519_reduced(&self, h: [u8; 64], signature: &[u8; ED25519_SIGNATURE_LENGTH]) -> bool {
        // ...
        let mut matches = true;
        for i in 0..32 {
            if signature[i] != h[i] {
                matches = false;
                break;
            }
        }
        // ...
        matches && key_valid
    }
</code></pre>
With this design, an adversary who knows data can simply calculate their own hash of the input data and supply it as a "signature", no?<p>It is difficult to comment on the verification approach when there are no secrets and only hash verification occurs. Do you have documentation on the approach and future plans? At best, this "signature verification" looks like placeholders for future verification.<p>[0]: <a href="https://github.com/JGiraldo29/vekos/blob/d34e6454f3f7290e4b57298a4d866a7891f6231f/src/crypto.rs#L86-L100">https://github.com/JGiraldo29/vekos/blob/d34e6454f3f7290e4b5...</a><p>[1]: <a href="https://github.com/JGiraldo29/vekos/blob/d34e6454f3f7290e4b57298a4d866a7891f6231f/src/crypto.rs#L179">https://github.com/JGiraldo29/vekos/blob/d34e6454f3f7290e4b5...</a></p>
]]></description><pubDate>Wed, 04 Dec 2024 20:26:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=42321682</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=42321682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42321682</guid></item><item><title><![CDATA[New comment by vngzs in "Guile-Emacs Relaunched"]]></title><description><![CDATA[
<p>Does this mean rewriting Magit to use libgit2 FFI bindings[0] rather than subprocess calls would lead to significant speedups?<p>[0]: <a href="https://github.com/emacsorphanage/libegit2">https://github.com/emacsorphanage/libegit2</a></p>
]]></description><pubDate>Tue, 03 Dec 2024 14:52:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=42306687</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=42306687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42306687</guid></item><item><title><![CDATA[New comment by vngzs in "Furilabs Linux Phone"]]></title><description><![CDATA[
<p>It's a Linux phone that runs Android apps, so they ostensibly don't have the problem of building the ecosystem.</p>
]]></description><pubDate>Mon, 14 Oct 2024 17:35:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41839789</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41839789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41839789</guid></item><item><title><![CDATA[New comment by vngzs in "Furilabs Linux Phone"]]></title><description><![CDATA[
<p>It's "fury phone":<p>> Furious Support from the FuriOS team</p>
]]></description><pubDate>Mon, 14 Oct 2024 17:32:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=41839757</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41839757</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41839757</guid></item><item><title><![CDATA[New comment by vngzs in "Debugging in the Multiverse"]]></title><description><![CDATA[
<p>There's a binary analysis time travel debugger similar to this, Qira [0][1].<p>[0]: <a href="https://www.usenix.org/conference/enigma2016/conference-program/presentation/hotz" rel="nofollow">https://www.usenix.org/conference/enigma2016/conference-prog...</a><p>[1]: <a href="https://qira.me/" rel="nofollow">https://qira.me/</a></p>
]]></description><pubDate>Tue, 10 Sep 2024 15:12:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=41501581</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41501581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41501581</guid></item><item><title><![CDATA[New comment by vngzs in "Gitea blocks PR from community, charging $$ for open-source contributions"]]></title><description><![CDATA[
<p>We're not, and they're still in the process of discussion. It seems a bit early to fork and witch-hunt [0]:<p>> So clarification here: you asked me about that, but I haven’t been able to respond to you due to my illnesses and I’m just getting back on my feet now. So it’s not that it hasn’t been well received, it’s that I’ve been physically unable to respond to you.<p>[0]: <a href="https://github.com/go-gitea/gitea/pull/24257#issuecomment-2338334044">https://github.com/go-gitea/gitea/pull/24257#issuecomment-23...</a></p>
]]></description><pubDate>Mon, 09 Sep 2024 15:17:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=41489332</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41489332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41489332</guid></item><item><title><![CDATA[New comment by vngzs in "The YouTube like button glows when you say "smash that like button" [video]"]]></title><description><![CDATA[
<p>It's not a complete mitigation, but you can pause your video history which may decrease the amount of information Google retains over time from this sort of analytics. I haven't dug into the privacy policy and I'm not sure it mentions if this feature affects backend data collection, however.</p>
]]></description><pubDate>Tue, 20 Aug 2024 18:05:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=41302392</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41302392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41302392</guid></item><item><title><![CDATA[Reversing the AMD Secure Processor (PSP) – Part 2: Cryptographic Co-Processor]]></title><description><![CDATA[
<p>Article URL: <a href="https://dayzerosec.com/blog/2023/04/22/reversing-the-amd-secure-processor-psp-part-2-cryptographic-co-processor-ccp.html">https://dayzerosec.com/blog/2023/04/22/reversing-the-amd-secure-processor-psp-part-2-cryptographic-co-processor-ccp.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41236993">https://news.ycombinator.com/item?id=41236993</a></p>
<p>Points: 112</p>
<p># Comments: 30</p>
]]></description><pubDate>Tue, 13 Aug 2024 16:34:07 +0000</pubDate><link>https://dayzerosec.com/blog/2023/04/22/reversing-the-amd-secure-processor-psp-part-2-cryptographic-co-processor-ccp.html</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41236993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41236993</guid></item><item><title><![CDATA[New comment by vngzs in "Federal appeals court finds geofence warrants “categorically” unconstitutional"]]></title><description><![CDATA[
<p>There's actually a <i>Slate</i> article covering this topic[0]. First, consent was given for certain homes. However, the article also notes that under "exigent circumstances" warrantless searches are permitted:<p>> In <i>exigent circumstances</i>, or emergency situations, police can conduct warrantless searches to protect public safety. This exception to the Fourth Amendment’s probable cause requirement normally addresses situations of “hot pursuit,” in which an escaping suspect is tracked to a private home. But it might also apply to the events unfolding in Boston if further harm or injury might be supposed to occur in the time it takes to secure a warrant. A bomber believed to be armed and planning more violence would almost certainly meet such prerequisites.<p>[0]: <a href="https://slate.com/news-and-politics/2013/04/boston-bomber-manhunt-is-the-watertown-door-to-door-search-by-police-for-dzhokhar-tsarnaev-legal.html" rel="nofollow">https://slate.com/news-and-politics/2013/04/boston-bomber-ma...</a></p>
]]></description><pubDate>Mon, 12 Aug 2024 21:32:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=41229569</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41229569</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41229569</guid></item><item><title><![CDATA[New comment by vngzs in "Scrum is the Symptom, not the Problem"]]></title><description><![CDATA[
<p>I think you'll find "distributed decision-making" is no panacea. I joined a company recovering from a distributed governance model, and the big challenge was that nobody had enough decision-making authority for the firm to change quickly and respond to the evolving outside world. Bringing a whole room to consensus is a lot tougher than getting a few people to disagree-but-commit and move on with their day.<p>Funny enough, you even see this paradigm in secret messaging with Signal: the <i>ecosystem is moving</i>[0]. If you want a system that can evolve in response to external change, centralization is <i>useful</i>.<p>This isn't a defense of scrum, but a voice of opposition to running businesses as distributed utopias. It sounds great on paper, but you'll be out-competed by the faster-moving entities with centralized power very quickly.<p>[0]: <a href="https://signal.org/blog/the-ecosystem-is-moving/" rel="nofollow">https://signal.org/blog/the-ecosystem-is-moving/</a></p>
]]></description><pubDate>Wed, 07 Aug 2024 18:40:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=41184080</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41184080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41184080</guid></item><item><title><![CDATA[New comment by vngzs in "Show HN: 1-FPS encrypted screen sharing for introverts"]]></title><description><![CDATA[
<p>Links are just for reference, but the gist is: serve the webapp from the Go binary instead. The end-user already has to trust the Go binary, and if they need to they can look at the code <i>once</i> and confirm it's not vulnerable. I prefer this to browser extensions because the audit trail process from source to browser extension is less clear; even for open-source browser extensions, I still have to trust the author to not add code that isn't in the repository.</p>
]]></description><pubDate>Wed, 07 Aug 2024 16:38:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=41183012</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41183012</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41183012</guid></item><item><title><![CDATA[New comment by vngzs in "Show HN: 1-FPS encrypted screen sharing for introverts"]]></title><description><![CDATA[
<p>You're very right! Luckily, we can resolve the vulnerability in this instance, although it's a challenging problem to resolve in general webapps.<p>The technical explanation for our issue is that the client-side Javascript in our webapp is <i>trusted</i>. To quote the late Ross Anderson [0, pg. 13], "a <i>trusted</i> system or component is one whose failure can break the security policy." In this case, our security policy is that the server must not be capable of viewing our screenshots. Our goal is to make that trusted Javascript more <i>trustworthy</i>: that is, closer to a system that <i>can't</i> fail.<p>We're at an advantage in this case: there's an open-source application on GitHub with eyeballs[1] on it that users must run on their endpoint machines. Given that we already have source-available local code running, we could instead serve the UI from the local Go application and use CORS[2] to permit access to the remote server. If the local application is trustworthy, and we're only <i>sending</i> data (not fetching remote Javascript), then the local client UI is trustworthy and won't steal your keys. If users run binaries directly from 1fps (as opposed to building from source), then you would want some multi-party verification that those binaries correspond directly to the associated source [3].<p>Protonmail is almost surprising: it's <i>supposed</i> to be end-to-end encrypted, but it's not end-to-end encrypted in the presence of a malicious server. If, say, a government order compelled Protonmail to deploy a backdoor only when a particular client visited the site, most users would be unaffected and the likelihood of discovery would be low.<p>[0]: <a href="https://www.cl.cam.ac.uk/~rja14/book.html" rel="nofollow">https://www.cl.cam.ac.uk/~rja14/book.html</a><p>[1]: <a href="https://en.wikipedia.org/wiki/Linus%27s_law" rel="nofollow">https://en.wikipedia.org/wiki/Linus%27s_law</a><p>[2]: <a href="https://stackoverflow.com/a/45910902" rel="nofollow">https://stackoverflow.com/a/45910902</a><p>[3]: <a href="https://en.wikipedia.org/wiki/Reproducible_builds" rel="nofollow">https://en.wikipedia.org/wiki/Reproducible_builds</a></p>
]]></description><pubDate>Tue, 06 Aug 2024 23:05:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=41176434</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41176434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41176434</guid></item><item><title><![CDATA[New comment by vngzs in "Show HN: 1-FPS encrypted screen sharing for introverts"]]></title><description><![CDATA[
<p>AES-GCM has more issues than merely the nonce reuse in the context of random nonces. For instance, the short tag issue[0] leaks authentication (not encryption) keys after a probabilistic "forged" message.<p>In general, the move in modern cryptography engineering is to assume the end user does not know what they are doing. For GCM, you have to get the nonces right and you need the right tag length, and the design uses lookup tables so it's prone to timing attacks in many implementations.<p>Later on I didn't just recommend an algorithm but a specific implementation (at least if we can find a better method of symmetric key distribution): nacl/secretbox [1]. This is a cryptographic library designed to be <i>misuse-resistant</i>, a property of cryptographic designs that makes implementation errors more difficult. nacl is a few years behind the curve inasmuch as it arguably gives the end-user too much control over key generation, but it permits random nonces (being based upon XSalsa) and provides a simple API that is difficult to mess up.<p>AES-GCM is secure with a correct implementation, but to build a correct implementation you often need to know the specific library inputs and configuration settings to produce your desired outcome. Something like secretbox doesn't give you those options: you get one relatively secure configuration ... and that's it!<p>[0]: <a href="https://csrc.nist.gov/csrc/media/projects/block-cipher-techniques/documents/bcm/comments/cwc-gcm/ferguson2.pdf" rel="nofollow">https://csrc.nist.gov/csrc/media/projects/block-cipher-techn...</a><p>[1]: <a href="https://pkg.go.dev/golang.org/x/crypto/nacl/secretbox" rel="nofollow">https://pkg.go.dev/golang.org/x/crypto/nacl/secretbox</a></p>
]]></description><pubDate>Tue, 06 Aug 2024 21:48:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=41175732</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41175732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41175732</guid></item><item><title><![CDATA[New comment by vngzs in "Show HN: 1-FPS encrypted screen sharing for introverts"]]></title><description><![CDATA[
<p>I assume there's TLS in the server connection already, but the encryption here is to make the communication unavailable to the server for decryption, so "bare" TLS does not solve the problem.<p>With TLS you need pubkeys you can trust (the certificate authority hierarchy provides that trust for the open Internet) or you're vulnerable to MITM. You could potentially share pubkeys using a similar out-of-band mechanism to that currently used for symmetric key distriubtion, and tunnel that TLS connection through the server's shared comms channel. That would work OK for two parties, but it becomes significantly more cumbersome if you want three or more, since each TLS session is a pairwise key exchange. Notably, however, this would not transit secret keys through server-controlled web pages where they could be available to Javascript. Something like Noise [0] might also be useful for a similar pubkey model.<p>Unfortunately, this kind of cryptography engineering is <i>hard</i>. Key distribution and exchange is <i>hard</i>. There isn't much of a way around learning the underlying material well enough to find this sort of issue yourself, but misuse-resistant libraries can help. Google's Tink [1] is misuse-resistant and provides a handful of blessed ways to do things such as key generation, but I'm not sure if it's suitable outside of cloud deployments with KMS solutions. nacl/secretbox handles straight encryption/decryption with sound primitives, but it still requires a correct means of key generation [2] <i>and</i> distribution.<p>[0]: <a href="http://www.noiseprotocol.org/noise.html" rel="nofollow">http://www.noiseprotocol.org/noise.html</a><p>[1]: <a href="https://github.com/tink-crypto/tink-go">https://github.com/tink-crypto/tink-go</a><p>[2]: <a href="https://pkg.go.dev/golang.org/x/crypto/nacl/secretbox" rel="nofollow">https://pkg.go.dev/golang.org/x/crypto/nacl/secretbox</a></p>
]]></description><pubDate>Tue, 06 Aug 2024 19:11:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=41174188</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41174188</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41174188</guid></item><item><title><![CDATA[New comment by vngzs in "Show HN: 1-FPS encrypted screen sharing for introverts"]]></title><description><![CDATA[
<p>You will still need to get the nonce and key generation right, but I'd recommend using Golang's nacl/secretbox [0] for a project such as this. It's designed to be relatively misuse-resistant compared to using underlying primitives directly, and under the hood it's XSalsa20+Poly1305 - so you can use random nonces with negligible collision risk.<p>[0]: <a href="https://pkg.go.dev/golang.org/x/crypto/nacl/secretbox" rel="nofollow">https://pkg.go.dev/golang.org/x/crypto/nacl/secretbox</a></p>
]]></description><pubDate>Tue, 06 Aug 2024 18:40:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=41173851</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41173851</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41173851</guid></item><item><title><![CDATA[New comment by vngzs in "Show HN: 1-FPS encrypted screen sharing for introverts"]]></title><description><![CDATA[
<p>Good job releasing your project! It's a cool idea and surprisingly minimalist. That said, I've found a number of cryptographic flaws in the application source. This should not be used in instances where the encryption is mission-critical.<p>1) You generate a random key [0] and then feed it into PBKDF2 [1] to generate a 32-byte AES-GCM key. If you can generate 32 random bytes instead of 10 reduced-ASCII characters and a key stretch, just do that. PBKDF2 is for turning a password into a key, and it's far from the recommended algorithm nowadays; prefer scrypt if you need to do this sort of thing.<p>2) AES-GCM with random 12-byte nonces. Never use random IVs with GCM; this breaks the authentication [2] [3]. Given the pitfalls of AES-GCM with respect to random nonces, you might prefer switching to XSalsa20+Poly1305. The advantage of XSalsa is it has an extended nonce length, so you can use random nonces without fear.<p>3) Random key derivation with a restricted character set can make brute force attacks easier. You should have a 256-bit random key, and if you want that key to be within a certain character set, then <i>encode</i> the byte output from the CSPRNG using that character set.<p>4) 1fps achieves symmetric key distribution via a URL with a fragment identifier ("#") which IIRC is not sent to the server. Therefore it assumes you have a secure key distribution channel - the link contains the key, so it's important that only the intended recipient can view the part after the "#". If the server is truly malicious, it can deploy client-side Javascript to send the fragment to the server, allowing the server to access the key (and thus cleartext communication).<p>[0]: <a href="https://github.com/1fpsvideo/1fps/blob/main/1fps.go#L99">https://github.com/1fpsvideo/1fps/blob/main/1fps.go#L99</a><p>[1]: <a href="https://github.com/1fpsvideo/1fps/blob/main/1fps.go#L287">https://github.com/1fpsvideo/1fps/blob/main/1fps.go#L287</a><p>[2]: <a href="https://eprint.iacr.org/2016/475.pdf" rel="nofollow">https://eprint.iacr.org/2016/475.pdf</a><p>[3]: <a href="https://soatok.blog/2020/05/13/why-aes-gcm-sucks/" rel="nofollow">https://soatok.blog/2020/05/13/why-aes-gcm-sucks/</a></p>
]]></description><pubDate>Tue, 06 Aug 2024 18:23:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=41173644</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41173644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41173644</guid></item><item><title><![CDATA[New comment by vngzs in "Open source AI is the path forward"]]></title><description><![CDATA[
<p>Agreed. The Linux kernel source contains everything you need to produce Linux kernel binaries. The llama source does not contain what you need to produce llama models. Facebook is using sleight of hand to garner favor with open model weights.<p>Open model weights are still commendable, but it's a far cry from open-source (or even <i>libre</i>) software!</p>
]]></description><pubDate>Tue, 23 Jul 2024 16:27:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=41047881</link><dc:creator>vngzs</dc:creator><comments>https://news.ycombinator.com/item?id=41047881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41047881</guid></item></channel></rss>