<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: jklowden</title><link>https://news.ycombinator.com/user?id=jklowden</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 01:29:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jklowden" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jklowden in "Columnar Storage Is Normalization"]]></title><description><![CDATA[
<p>Nonsense.  See Codd’s first paper.<p>1NF removes repeating groups, putting for example data for each month in its own row, not an array of 12 months in 1 row.<p>Storage efficiency was never the point.  IMS had that locked down. Succinctness of expression and accuracy of results was the point. And is: normalization prevents anomalous results.</p>
]]></description><pubDate>Wed, 22 Apr 2026 14:00:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47863780</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=47863780</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47863780</guid></item><item><title><![CDATA[New comment by jklowden in "C# strings silently kill your SQL Server indexes in Dapper"]]></title><description><![CDATA[
<p>> SQL Server has to convert every single value in the column to nvarchar before it can compare.<p>This of course is not true. It is a defect in Microsoft’s query planner.  And the proof lies in the remedy.<p>The recommended solution is to convert the search argument type to match that of the index. The user is forced to discover the problem and adjust manually. SQL Server could just as well have done that automatically.<p>No information is lost converting nvarchar to varchar if the index is varchar. If the search argument is ‘’, no conversion from varchar will match it (unless the index data is UTF8, which the server should know).<p>This is a longstanding bug in SQLserver, and not the only one. Instead of patting ourselves on the back for avoiding what SQL Server “has to do”, we should be insisting it not do it. Anymore.</p>
]]></description><pubDate>Mon, 09 Mar 2026 13:28:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47308804</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=47308804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47308804</guid></item><item><title><![CDATA[New comment by jklowden in "C# strings silently kill your SQL Server indexes in Dapper"]]></title><description><![CDATA[
<p>I’m not sure why the top-rated reply begins by presuming anything about the problem domain.  Many domains have a specified language and implied if not explicit collation. Rejecting characters outside that domain is part of the job.  There are no emojis listed on the NASDAQ.</p>
]]></description><pubDate>Mon, 09 Mar 2026 13:17:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47308668</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=47308668</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47308668</guid></item><item><title><![CDATA[New comment by jklowden in "Why does C have the best file API"]]></title><description><![CDATA[
<p>It’s a terribly useful idea.  FTFY.<p>The program you used to leave your comment, and the libraries it used, were loaded into memory via mmap(2) prior to execution. To use protobuf or whatever, you use mmap.<p>The only reason mmap isn’t more generally useful is the dearth of general-use binary on-disk formats such as ELF.  We could build more memory-mapped applications if we had better library support for them. But we don’t, which I suppose was the point of TFA.</p>
]]></description><pubDate>Mon, 02 Mar 2026 14:36:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47218483</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=47218483</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47218483</guid></item><item><title><![CDATA[New comment by jklowden in "C isn't a programming language anymore (2022)"]]></title><description><![CDATA[
<p>Not sure how viable Mezzano is.  The most recent bug report was two years ago. The “beginnings of a manual” was last updated 7 years ago.<p>A better example might be Guix, depending how “operating system” is defined.</p>
]]></description><pubDate>Fri, 06 Feb 2026 15:45:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46914234</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=46914234</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46914234</guid></item><item><title><![CDATA[New comment by jklowden in "The lost art of XML"]]></title><description><![CDATA[
<p>If only there was one good library. libxml2 is the leading one, and it has been beleaguered by problems internal and external. It has had ABI instability and been besieged by CVE reports.<p>I agree it shouldn’t be hard. On the evidence, though, it is. I suspect the root problem is lack of tools. Lex and yacc tools for Unicode are relatively scarce. At least that’s what’s set me back from rolling my own.</p>
]]></description><pubDate>Fri, 23 Jan 2026 15:46:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46733867</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=46733867</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46733867</guid></item><item><title><![CDATA[New comment by jklowden in "Roomba maker goes bankrupt, Chinese owner emerges"]]></title><description><![CDATA[
<p>iRobot’s largest creditor isn’t its Chinese supplier. It’s the US government, in the form of unpaid tariffs, some $3.5 million. Arguably it was Trump’s stupid tariffs that drove the company out of business. Rather than bringing manufacturing to the US, it allowed the Chinese to acquire an American company, leaving production right where it is.</p>
]]></description><pubDate>Mon, 15 Dec 2025 14:00:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46274637</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=46274637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46274637</guid></item><item><title><![CDATA[New comment by jklowden in "Waiting for SQL:202y: Group by All"]]></title><description><![CDATA[
<p>I believe that’s what we call a "view".</p>
]]></description><pubDate>Mon, 17 Nov 2025 14:23:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45953795</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=45953795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45953795</guid></item><item><title><![CDATA[New comment by jklowden in "Quantifying pass-by-value overhead"]]></title><description><![CDATA[
<p>There is no pass-by-value overhead.  There are only implementation decisions.<p>Pass by value describes the semantics of a function call, not implementation. Passing a const reference in C++ is pass-by-value.  If the user opts to pass "a copy" instead, nothing requires the compiler to actually copy the data. The compiler is required only to supply the actual parameter as if it was copied.</p>
]]></description><pubDate>Tue, 28 Oct 2025 14:19:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=45733221</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=45733221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45733221</guid></item><item><title><![CDATA[New comment by jklowden in "QUIC and the end of TCP sockets"]]></title><description><![CDATA[
<p>Note well: the claims about TCP come with some evidence, in the form of a graph. The claims for QUIC do not.<p>Many of the claims are dubious. TCP has "no notion of multiple steams"?  What are two sockets, then?  What is poll(2)?  The onus is on QUIC to explain why it’s better for the application to multiplex the socket than for the kernel to multiplex the device. AFAICT that question is assumed away in a deluge of words.<p>If the author thinks it’s the "end of TCP sockets", show us the research, the published papers and meticulous detail.  Then tell me again why I should eschew the services of TCP and absorb its complexity into my application.</p>
]]></description><pubDate>Thu, 09 Oct 2025 13:32:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45527464</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=45527464</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45527464</guid></item><item><title><![CDATA[New comment by jklowden in "Why America still needs public schools"]]></title><description><![CDATA[
<p>There was never any danger of public education, so eliminating that danger was quite easy. What we are undermining, though, is the benefit of public education. Witness the last election, where tens of millions were indifferent to democratic governance if it meant cheap gasoline and eggs.<p>And, yes, the assault on democracy is real. On January 20, Trump signed an order in support of free speech. Within a week he barred the AP over the Gulf of America.  Within a month he illegally disbanded USAID. Within 3 months he began suing law firms and defunding university research. Today colleges are receiving letters demanding curriculum in exchange for funding. And we have four years more, at least, to endure.</p>
]]></description><pubDate>Thu, 02 Oct 2025 13:43:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45449505</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=45449505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45449505</guid></item><item><title><![CDATA[New comment by jklowden in "Why America still needs public schools"]]></title><description><![CDATA[
<p>90% of funding for K-12 public schools comes from state and local taxes. That’s hardly a one-size-fits-all national system.<p>Would you tell me though, please, what language and cultural differences should inflect science or math or literature or history?  Are you suggesting evolution not be taught where there are parents who object, or that the civil war be taught differently in the former confederacy, so as not to hurt anyone’s feelings?  Those things are happening, of course. I’m just innocent of any defense for them.</p>
]]></description><pubDate>Thu, 02 Oct 2025 13:32:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45449383</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=45449383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45449383</guid></item><item><title><![CDATA[New comment by jklowden in "Why America still needs public schools"]]></title><description><![CDATA[
<p>To be fair, the characterization is entirely accurate. Anyone who speaks of "government schools" advocates their demise.  They want an entirely privatized system funded at taxpayer expense: a voucher for every child to be spent as each parent decides. If that means every public school closes, well, voila: the magic of the market.<p>Whoever "they" are in your assertion, they are not cutting down bureaucracy or promoting local control. The federal government has not issued new regulations to cap administrative overhead, for example.  It simply abandoned its civil rights enforcement and slashed funding.<p>Agreed, public schools in America do a poor job. Something like 1/3 of graduating seniors are ready for college work, according to the "national report card". But that’s by design: elected school boards and administration determine salaries and standards. No principal wants to explain poor grades to a disappointed parent; no teacher wants to combat a parent’s prejudice by teaching real history or biology. So, the curriculum is mediocre and grades are high.<p>The situation isn’t much better at private schools by the way. Grade inflation is everywhere. Harvard just has the luxury of picking its students.<p>No Child Left Behind and civil-rights enforcement by the department of education did narrow the achievement gap, which has now begun to widen again. So it is clear the department directly benefits student. The complaint is not that; it is that it benefits the "wrong" students, if you get my drift.</p>
]]></description><pubDate>Thu, 02 Oct 2025 13:25:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45449310</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=45449310</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45449310</guid></item><item><title><![CDATA[New comment by jklowden in "Red Hat Technical Writing Style Guide"]]></title><description><![CDATA[
<p>Brian Kernighan cannot be topped. He is easy to read, succinct, clear, and sometimes funny.</p>
]]></description><pubDate>Fri, 11 Jul 2025 03:58:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=44528269</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=44528269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44528269</guid></item><item><title><![CDATA[New comment by jklowden in "Go, PET, Let Hen - Curious adventures in (Commodore) BASIC tokenizing"]]></title><description><![CDATA[
<p>Why do I remember that every C64 BASIC keyword was a 2-byte integer?  A typing shortcut was to enter the first letter, followed by a "shifted" high-bit character.  Every keyword was represented that way.<p>Variables were also 2-bytes, but ASCII. The user could enter a longer name, but only the first two characters were significant.</p>
]]></description><pubDate>Sat, 05 Jul 2025 15:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44473430</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=44473430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44473430</guid></item><item><title><![CDATA[New comment by jklowden in "FAA to eliminate floppy disks used in air traffic control systems"]]></title><description><![CDATA[
<p>Operating systems were always more reliable than Windows95 from the day it was introduced. Protected memory and process privilege were not exactly unknown when DEC was selling VMS. Or for that matter when Microsoft was selling Windows NT.  That the FAA cheaped out then, choosing an inferior system with no technical merit, is prelude to the current problem.</p>
]]></description><pubDate>Mon, 09 Jun 2025 13:50:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44224523</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=44224523</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44224523</guid></item><item><title><![CDATA[New comment by jklowden in "FAA to eliminate floppy disks used in air traffic control systems"]]></title><description><![CDATA[
<p>> some systems can never be shut down<p>Tomshardware could do better reporting. There is no such thing as a computer that can’t fail, or a component that can’t be replaced. Does our reporter think the entire system was installed 25 years ago, and not one component has been replaced since?  More likely it’s the ship of Theseus, and not one component is original.<p>I’ve replaced whole systems without interruption. You build in compatibility, then replace every computer one by one, and phase out use of the compatibility. It’s not rocket surgery.<p>Technical sites could be superior to the reporting in the general media on technical issues. It doesn’t have to be be stenography.</p>
]]></description><pubDate>Mon, 09 Jun 2025 13:43:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=44224453</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=44224453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44224453</guid></item><item><title><![CDATA[New comment by jklowden in "Understanding effective type Aliasing in C [pdf]"]]></title><description><![CDATA[
<p>What drugs were they on?  Why on earth is there any distinction between variables allocated statically, on the stack, or on the heap?  I allocate a struct, copy data to it, and those data have no Effective Type?  Because I started with malloc?  Give me a break.<p>The point of the type system is to define types.  It’s not to make the compiler’s job easier, or to give standards committees clouds to build their castles on. No amount of words will justify this misbegotten misinvention.</p>
]]></description><pubDate>Wed, 07 May 2025 13:53:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43915723</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=43915723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43915723</guid></item><item><title><![CDATA[New comment by jklowden in "Show HN: TextQuery – Query CSV, JSON, XLSX Files with SQL"]]></title><description><![CDATA[
<p>Uh huh.  The No SQL zombie yet shuffles on.<p>Anyone who knows SQL sees dozens of problems immediately. What enforces data integrity? How do we know the records are NF1? How do we perform a join, or test existential quantification, without table names?  How do we know all supposed "dates" are valid dates, and not my uncles ex-wife’s maiden name?  How does one reference XML attributes from SQL?<p>The answer produced by SQL are only as good as the data they’re drawn from. The quality and internal consistency of those data are enforced by the DBMS. No amount of pretty graphs and syntax highlighting changes that. The effective of SQL depends on the knowledge of the practitioner. No tool changes that, either.</p>
]]></description><pubDate>Tue, 06 May 2025 14:30:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43905569</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=43905569</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43905569</guid></item><item><title><![CDATA[New comment by jklowden in "Usability Improvements in GCC 15"]]></title><description><![CDATA[
<p>Yup, COBOL is that overnight sensation 4 years in the making. GCC COBOL is foremost an ISO COBOL compiler, with some extensions for IBM and MicroFocus syntax. We also extended gdb to recognize COBOL, so the GCC programmer has native COBOL compilation and source-level debugging.</p>
]]></description><pubDate>Sat, 12 Apr 2025 04:17:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=43661316</link><dc:creator>jklowden</dc:creator><comments>https://news.ycombinator.com/item?id=43661316</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43661316</guid></item></channel></rss>