<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: robertgraham</title><link>https://news.ycombinator.com/user?id=robertgraham</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 25 Apr 2026 18:44:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=robertgraham" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by robertgraham in "That Secret Service SIM farm story is bogus"]]></title><description><![CDATA[
<p>The "Washington Game" is described the Society of Professional Journalists.
<a href="https://www.spj.org/spj-ethics-committee-position-papers-anonymous-sources/" rel="nofollow">https://www.spj.org/spj-ethics-committee-position-papers-ano...</a><p>Citing anonymous sources is not established ETHICAL practice, it's corruption of the system. The roll of the journalist is to get sources on the record, not let them evade accountability by hiding behind anonymity. Anonymity is something that should be RARELY granted, not routinely granted as some sort of "long established practice".<p>What is the justification for anonymity here? The anonymous source is oath bound not to reveal secrets, so what is so important here that justifies them violating their oath to comment on an ongoing investigation? That's what we are talking about, if they are not allowed to comment on an ongoing investigation, then it's a gross violation of their duty to do so. The journalist needs to question their motives for doing so.<p>We all know the answer here, that they actually aren't violating their duty. They aren't revealing some big secret like Watergate. They are instead doing an "official leak", avoiding accountability by hiding behind anonymity. Moreover, what the anonymous source reveals isn't any real facts here, but just more spin.<p>We can easily identify the fact that it's propaganda here by such comments about the SIM farms being within 35 miles of the UN. It's 35 miles to all of Manhattan. It's an absurd statement on its face.</p>
]]></description><pubDate>Wed, 24 Sep 2025 20:30:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45365587</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=45365587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45365587</guid></item><item><title><![CDATA[New comment by robertgraham in "Reading the Code Around Make_u32_from_two_u16()"]]></title><description><![CDATA[
<p>This blogpost comments on Linus's latest tirade by reading the code.<p>For example, it explains the specific problem of technical debt on failing to mask of high order bits by casting the low part to (u16). Years from now, when this leads to a bug, you'll no longer be able to fix the macro because inevitable some code will by that time depend upon high order bits in the low part.</p>
]]></description><pubDate>Tue, 12 Aug 2025 14:59:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44877105</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=44877105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44877105</guid></item><item><title><![CDATA[Reading the Code Around Make_u32_from_two_u16()]]></title><description><![CDATA[
<p>Article URL: <a href="https://cybersect.substack.com/p/linus-and-the-two-youts">https://cybersect.substack.com/p/linus-and-the-two-youts</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44877104">https://news.ycombinator.com/item?id=44877104</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 12 Aug 2025 14:59:22 +0000</pubDate><link>https://cybersect.substack.com/p/linus-and-the-two-youts</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=44877104</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44877104</guid></item><item><title><![CDATA[New comment by robertgraham in "TCP connection timeout mystery"]]></title><description><![CDATA[
<p>My guess is that your original SYN did not go to the target, but was redirected somewhere close by. I'd look at the TTL value in the IP header of your first SYN-ACK, and play with such things as traceroute.<p>Such redirection is often done on a specific port basis, so that trying to access different ports might produce a different result, such as a RST packet coming back from port 1234 with a different TTL than port 443.<p>There is so much cheating going with Internet routing that the TTL is usually the first thing I check, to make sure things are what they claim.</p>
]]></description><pubDate>Mon, 25 Mar 2024 08:46:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=39813947</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=39813947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39813947</guid></item><item><title><![CDATA[New comment by robertgraham in "So you think you know C? (2016)"]]></title><description><![CDATA[
<p>The first two answers are 8 and 0.<p>They are technically `undefined` according to the C standard, but are the behavior of every mainstream compiler. So much of the world's open-source code depends upon these that it's unlikely to change.<p>Using clang version 15.0, the first 2 produce no warning messages, even with -Wall -Wextra -pedantic. Conversely, the last 3 produce warning messages without any extra compiler flags.<p>The behavior of the first two examples are practically defined even if undefined according to the standard.<p>Now, when programming for embedded environments, like for 8-bit microcontrollers, all bets are off. But then you are using a quirky environment-specific compiler that needs a lot more hand-holding than just this. It's not going to compiler open-source libraries anyway.<p>I do know C. I knowingly write my code knowing that even though some things are technically undefined in the standard, that they are practically defined (and overwhelmingly so) for the platforms I target.</p>
]]></description><pubDate>Sat, 20 Jan 2024 23:34:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=39073682</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=39073682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39073682</guid></item><item><title><![CDATA[New comment by robertgraham in "IDEs we had 30 years ago"]]></title><description><![CDATA[
<p>Nobody (yet) has mentioned Microsoft PWB - Microsoft's Programmers Workbench for their C compiler, around 1990. It's what all the Microsoft engineers themselves used when writing code for Windows, WinNT, OS/2, etc. It was essentially perfect for its time.</p>
]]></description><pubDate>Fri, 29 Dec 2023 20:55:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=38810091</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38810091</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38810091</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>Ethernet doesn't use TCP/IP. Ethernet is it's own network. It has nothing to do with TCP/IP.<p>Other things use Ethernet. Routers, when connected to each other, often use a local Ethernet network to communicate.<p>Think of the TCP/IP Internet as it's own network, ignoring how routers physically talk to each other. Sometimes it's a directly link, a wire. Sometimes it's carrier pigeons. Sometimes it's WiFi. Sometimes it's Ethernet. Whatever it is, it's local to between the routers and does not extend outside that.</p>
]]></description><pubDate>Wed, 25 Oct 2023 19:21:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=38017057</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38017057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38017057</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>Well, you sort of demonstrate my point.<p>The writers the OSI Model wrote a specific blueprint, not an "observation of natural laws". When they said "session", they didn't mean the same things you conceive of. Instead, they meant a very specific problem of connecting dumb terminals to simplex links.<p>What you now call "sessions" is what OSI called "associations", and OSI defined them to be part of the "Application Layer".<p>I'm not sure you've even read the OSI Model. For example, the "Presentation Layer" is not defined to do the data format translation, but only to NEGOTIATE a common represenation. The actual data translation is still done in the Application.<p>This is the problem. People have not read and understood the entire model. They've not heard of "associations" and believe the OSI's use of "sessions" means anything they might call "session". They believe OSI was written as theory when it was not. They believe anything OSI terms they don't understand mean something else, mean some sort of timeless theory.<p>They are seduced by their own ignorance of the model.</p>
]]></description><pubDate>Wed, 25 Oct 2023 14:53:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=38013465</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38013465</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38013465</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>I use RFC 791, the original Internet model.<p>RFC 1122 is a retconned version of the Internet model that tried to change terminology to fit OSI.</p>
]]></description><pubDate>Wed, 25 Oct 2023 06:19:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009739</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009739</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009739</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>Yea, it's not about engineers constructing systems. I mean, engineers do frequently pretend their creations fit the OSI model, but they work backwards to make it appear to conform to orthodoxy.<p>The issue is about education. People teach the model, or some variation of it. It teaches misconceptsion, such as how Ethernet and the Internet are integrated in a single network stack rather than being independent networks. It leads to professionals in IT and cybersecurity who continue to hold this misconception.</p>
]]></description><pubDate>Wed, 25 Oct 2023 06:17:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009719</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009719</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>It's wrong to think of them as different functions of the same network. Instead, they are differnet networks.<p>Ethernet and the Internet both provide the function of forwarding packets through a network to the target destination address. The MAC protocol and IP protocol provide the same theoretical function.<p>Where they differ is that Ethernet was designed to a be a local network, whereas the Internet is designed to be an internetwork. All it demand from local networks is that they get packets from one hop to the other. Ethernet does this for the Internet, but so do carrier pigeons.<p>The same is true for HTTP. Instead of thinking of it as a component of the network, think of it as something that rides independently on top of the network. In a hypothetical future whe we've replaced the Internet with some other technology, the web would still function.</p>
]]></description><pubDate>Wed, 25 Oct 2023 06:14:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009695</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009695</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>You can't. Nobody knows what the session layer does. Most falsely believe that layer handles sessions.</p>
]]></description><pubDate>Wed, 25 Oct 2023 06:08:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009666</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009666</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009666</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>I discuss this point several times. I claim the model is not useful, specifically because the layering abstraction for hte lower layers is a misconception rather than the truth.<p>For example, I describe how the OSI Model claims that layer #2 and #3 describe different functionality in the same network stack. I claim the opposite, how they describe roughly the same functionality in differnet networks.<p>Namely, both Ethernet and the Internet forward packets based upon addresses. The difference is that Ethernet does this locally while the Internet does this locally. Otherwise, the theoretical concept of packets, forwarding, and addresses are the same.</p>
]]></description><pubDate>Wed, 25 Oct 2023 06:05:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009648</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009648</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>The book has an extensive section on history.<p>I claim that by 1981, the OSI Model was already obsolete and that it didn't fit well, that was not a good teaching tool, that it has done more to beffudle than enlighten students. The problem being is that if you learned according to the modle, you are not aware of what you misundertood.</p>
]]></description><pubDate>Wed, 25 Oct 2023 06:02:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009641</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009641</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009641</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>Elsewhere in the text I describe how OSI chose a word at random, that they never meant by it what we now call "sessions". It could've been 'dialog layer' or 'interaction layer". I recommend they should've chosen "Intercourse Layer".</p>
]]></description><pubDate>Wed, 25 Oct 2023 06:00:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009631</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009631</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>Contrast with my descriptions of the layers, especially in chapters 3, 7 and 8.</p>
]]></description><pubDate>Wed, 25 Oct 2023 05:59:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009621</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009621</guid></item><item><title><![CDATA[New comment by robertgraham in "The OSI Deprogrammer"]]></title><description><![CDATA[
<p>Well, as my footnote in the abstract says, it's swatting a fly with an anvil.<p>It's not about people who already deal with this, like Nanog or systems programmers. Whatever model they've started with, they've developed a better one in their heads based upon their own expertise and experience.<p>It's about educators who continue to teach out-dated concepts.<p>Take Presentation Layer #6 as an example. It was created because in the 1970s, every computer model had a different character-set, and every terminal model different command-codes. It was therefore assumed that translating among these different formats would be a property of the network, that a fundamental step would be negotiating some common representation, like it is with FTP and Telnet.<p>This is no longer true today. Everything's Unicode. A PDF file on an EBDIC IBM mainframe is still encoded as UTF-8. Data representation is a property of the DATA not a property of the NETWORK. But people are slow to adapting to this paradigm shift.<p>As for "layering violations", I propose an alternative model where there are no layering violations. If real world conflicts with your model, the model needs updating.</p>
]]></description><pubDate>Wed, 25 Oct 2023 05:55:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=38009596</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=38009596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38009596</guid></item><item><title><![CDATA[New comment by robertgraham in "Huawei Backdoors Explanation, Explained"]]></title><description><![CDATA[
<p>> I have no clue what point the author's trying to make here<p>You mean, you don't know the agenda. The "point" was data, namely:
- the Washington game that leads to unreliable journalism
- the fact that all Huawei's competitors have the same law enforcement backdoors, the same support contracts, and there's no evidence or even accusation that Huawei is doing anything different
- my own personal experience watching Huawei support engineers using their "backdoor" "sidedoor" "frontdoor" access to gain intelligence information.<p>> implying it's reporting is inaccurate<p>Unreliable, not really inaccurate. It's clearly bad journalism violating clearly expressed ethical standards. That doesn't mean it's wrong, it doesn't mean the government official's accusations are false. It instead means that we can't rely upon them.<p>> straw-man argument that all telco manufacturers/operators do similar things for law enforcement so we shouldn't be concerned about Huawei's practices<p>I'm not sure you read the article. I make it clear that we should be concerned about Huawei even if their hardware, software, and support access are no different than any other vendors, because the Chinese government can lean on them in ways democratic governments cannot lean on their own vendors.<p>> comes off as blatant astroturfing<p>One of us does not understand "astroturfing". This is clearly an anti-Huawei piece that nonetheless tries to understand things from Huawei's point of view. I haven't worked with Huawei's engineers, I was working on a mobile companies systems when I saw Hauewei's support people log in via their VPN and gather national intelligence information.<p>The point is that everything can be true: Huawei can in fact be no different any competitor, doing at least as good a job preventing backdoors, and yet still be a national security threat due to backdoors. I believe it's good policy to forbid Huawei equipment in 5G deployments even if I doubt they have any special technical backdoors.</p>
]]></description><pubDate>Sun, 08 Mar 2020 21:52:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=22520869</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=22520869</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22520869</guid></item><item><title><![CDATA[New comment by robertgraham in "Zcoin implementation bug enabled attacker to create over 500K Zcoins"]]></title><description><![CDATA[
<p>It's an absurd point.<p>ZCash was built upon the Bitcoin codebase. This inherits a lot of bad decisions. Moral purity, demanding they start over again from scratch, just isn't practical.<p>The bug in question could have been solved had the simply compiled with minimal static analysis -- by which I mean -Wall.<p>C/C++ is memory safe if you turn on dynamic checking. Sure, it's twice as slow as C/C++, but still tons faster than nonsense languages like Ocaml or Haskell.</p>
]]></description><pubDate>Tue, 07 Mar 2017 07:48:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=13808916</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=13808916</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13808916</guid></item><item><title><![CDATA[New comment by robertgraham in "Ask HN: When do you know your startup has failed?"]]></title><description><![CDATA[
<p>Yea, your startup failed long ago. You are just throwing good money after bad.<p>Here's how a business model works: you try a business model. If it works, great. If it doesn't, move on and try the next business model. You are either growing, dieing, or the zombie of living death. If it's the last two, get out now.<p>If you are a skilled person, then you can always get another job elsewhere, especially now that you've got "startup experience" on your resume. Conversely, if you aren't skilled, then that's probably causing your startup's failure, and that's not going to change.<p>Being overly optimistic is great when starting a company. You have to believe, against all odds, that you are going to succeed. But optimism death AFTER starting up, hanging on hoping things will change when they won't.<p>Growing companies have a chance of success. Dieing companies really don't. Zombie companies are even worse. Get out.</p>
]]></description><pubDate>Fri, 17 Apr 2015 09:02:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=9393044</link><dc:creator>robertgraham</dc:creator><comments>https://news.ycombinator.com/item?id=9393044</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9393044</guid></item></channel></rss>