What am I supposed to say to that? If you think the argument that you believe I’m trying to make (which I couldn’t guess if you put a gun to my head) would be easy to make, and that I’m just not doing so, then you’d be better off engaging in discourse with an imaginary but more competent interlocutor.
HN user
theobeers
[ my public key: https://keybase.io/theobeers; my proof: https://keybase.io/theobeers/sigs/orT-LRJbX6iFyDSnl_FcydcN_bA88mrF8RJW-ODwFio ]
Mr. Ptacek, a) I have no affiliation with OP, and b) do you know what my actual position is (not presupposing that you care)? It's that I don't know anyone who has been inspired by anything that YC has funded in a very long time. The supermajority of these startups that don't make headlines for being scams is, in a way, even sadder.
I also think it's pointless to howl at the sky about how depressing this is. It's just the current reality of SV. I'm not going to pretend that what a16z is funding is any better (or worse).
While I agree that YC appears rotten to the core at this point, it’s almost impossible to sustain a criticism of the accelerator because they make so many little investments. No matter what you accuse them of, they’ll dismiss it by saying you’re cherry-picking. I have to admit, it’s a brilliant strategy to avoid any kind of accountability.
Well, that's sort of like what the "sort key" of a given string is: a vector of its nonzero primary-level collation weights, then secondaries, then tertiaries... And once you know what collation options you're using (tailoring etc.), you could just compute the sort key of each string as you encounter it and cache that. Then you would be able to reach a collation decision rapidly for any two strings whose sort keys you already have. It does boil down to vector comparison at that point.
I experimented with adding an LRU cache to my Rust UCA implementation, but I saw essentially no performance benefit (on the workloads I had), and I decided the feature wasn't worth the complexity and removed it.
Something I found about Unicode collation is that, once the fast paths are added, they get hit a surprisingly large percentage of the time. I'm thinking in particular of the way that performant UCA implementations build sort keys lazily, stopping once a collation decision is reached. The average "point of difference" is at the primary level and within a few characters of the start of each string. Only a small portion of the sort keys ever get built.
I am definitely interested in finding more ways to avoid work in the collation routine. Many times, I've had what I thought was a clever idea and found that it didn't pan out in benchmarks. Thank you for your comment!
Submission statement:
Figuring out how to develop a Unicode collator from scratch for a research group that I working with in Berlin was one of my formative experiences as a programmer. Ever since then, I've wanted to write something to collect my thoughts on the Unicode Collation Algorithm and the process of building a conformant implementation. Last summer I had a good excuse to do this, when I decided to adapt my collator to Zig as a way of learning that language.
The Unicode standards, and the (relatively) low-level software libraries based on them, do a lot of things for us to make computing possible. We have the luxury of not needing to worry about most of those things most of the time. I find it humbling whenever I do peek under the hood.
Submission statement:
This was posted on Monday by the author and didn't manage to cut through the noise on a busy day. Thought I would give it one more chance.
It's a post by the founder/CEO of an edtech company offering courses on software development (where I also work), on the problem of connecting the dots between the software careers that people are looking to get into and the job openings that actually exist in the current market.
A few points that I found noteworthy:
- AI/ML has obviously been the growth field of the decade, but job-seekers' interest in getting into it seems to swamp the available roles.
- The point about fullstack devs getting low-ish compensation was new to me: it's probably because they tend to be jacks-of-all-trades at smaller companies that just pay less.
- Backend dev (the original focus of this company) still pencils out nicely, given what seems to be low interest from job-seekers relative to available roles, which also often pay well.
- It's unclear how or when the tech job market is supposed to correct. We can all feel that it's a broken market, on a fundamental level and to a severe degree; but diagnosing the specific problems is difficult, let alone suggesting fixes.
Direct link to the GitHub repo with the data that was gathered and analyzed for the post: https://github.com/bootdotdev/jobdata-november-2025
“If AI doesn’t literally take all the white-collar jobs over the next few years, we won’t just have a stock market bubble to deal with. We’ll have a drought of educated workers.”
Indeed. For me this feels like an “I saw the best minds of my generation” moment.
Perhaps the new "Green Tea" GC will help? It's described as "a parallel marking algorithm that, if not memory-centric, is at least memory-aware, in that it endeavors to process objects close to one another together."
Indeed, many such cases. Our society is full of institutions that functioned only because "no one in a position to participate would be shameless enough to abuse it." Then that assumption breaks, and it's ruined for everyone.
It is relevant, though awkward to discuss, that a large share of NIH and NSF funding proposals (and indeed funded projects) are led by researchers who didn't grow up in the US. I wonder if it's in fact a majority.
Another record, Name Authority Pointer (NAPTR), has the telephone number of the Johnson Space Center in Houston:
> dig where-is-the-iss.dedyn.io NAPTR
; <<>> DiG 9.10.6 <<>> where-is-the-iss.dedyn.io NAPTR
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31786
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;where-is-the-iss.dedyn.io. IN NAPTR
;; ANSWER SECTION:
where-is-the-iss.dedyn.io. 3600 IN NAPTR 100 100 "u" "E2U+voice:tel" "!^.*$!tel:+12814830123!" .
;; Query time: 84 msec
;; SERVER: 100.100.100.100#53(100.100.100.100)
;; WHEN: Sun Jul 06 10:53:39 EDT 2025
;; MSG SIZE rcvd: 111As recently as five years ago, the Fine Arts Building on Michigan Ave. in Chicago employed elevator operators. It probably still does.
Watching that video made me wonder whether I should even feel comfortable visiting HN.
An interesting bit, on not making it too easy for people to circumvent the borrow checker:
First, we use a C++ compiler to build gccrs, disabling the borrow-checking pass of the compiler. It is important to ensure borrow-checking cannot be disabled at runtime using a command line flag, as this could have a negative impact on the Rust ecosystem – however, building gccrs without borrow-checking to use it as an intermediate compiler in our bootstrapping process is okay.
In context, those are not shockingly high sums. The real problem seems to be what Woit summarizes in this 2004 (!!) comment on his blog:
It takes a non-trivial amount of time and effort to absorb new mathematical ideas and by so dominating the mathematical end of particle theory for twenty years, string theory has monopolized the time of the mathematically sophisticated members of the community. It has also quite literally driven out of the field a lot of people who were interested in other sorts of ideas about how to apply mathematics to questions in particle theory.
https://www.math.columbia.edu/~woit/wordpress/?p=119&cpage=2...
edit: How bonkers is it that another two decades have been pissed away on this?
Let’s wait and see what the vulnerability is. Maybe it doesn’t have anything to do with the pitfalls of C. But if it does, expect to read a lot more comments like this.
The screenshot of the DoD recruitment pitch from the conference set off a little "military-industrial complex alarm" in my mind. To be clear, I wouldn't have tagged the guy in a mean tweet. I would have just frowned and gone on with my day. But I think it's crucial that the voices of people like this blogger be present in tech communities.
She was right to speak out, and her employer was within its rights to fire her. As long as she subsequently found a job at a company that comes closer to sharing her values, it sounds like a win-win.
I like this about Deno (not to suggest that the runtime is without its flaws). Whenever I try to run a script and it tells me I need to allow e.g. read access to the filesystem, I’m more grateful than annoyed. And it lets you choose the granularity of the permissions that you grant. Hopefully this approach will become more common.
I wonder why Cloudflare still recommends a value of 6 months (15552000 seconds) for Max-Age in the HSTS header, when that isn't enough to qualify for Google's preload list. They do acknowledge this problem in their docs, but (afaik) without explaining why they've stuck with 6 months as the default and recommended value.
No smoking all day is a big deal for many Muslims in the Middle East. One year I was living in Cairo during Ramadan, and each day when it got close to the sunset call to prayer (which heralds the end of the fast), it seemed like all the cab drivers had cigarettes in hand, waiting eagerly to light up.
This blog post is from 2015—which should be added to the title here on HN.
See MDN's docs on innerText. It's fully supported in Firefox since version 45 (2016). (Edit: the blog post also has an update at the bottom, noting that, as of 2016, the situation was already much better.)
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement...
I have a library in which I set #![forbid(unsafe_code)]. It relies on a small number of carefully chosen dependencies, almost all of which contain unsafe code. I mean first-rate libraries like bincode, bstr, and once_cell. It feels a bit disingenuous for me to emphasize the safety of the top layer that I've written. I guess what I can actually express is that I'm setting risk boundaries and, in a way, taking myself out of the equation.
As of last year, Meta recommends internally that CLI tools be implemented in Rust:
https://engineering.fb.com/2022/07/27/developer-tools/progra...
I never thought I would see mention of Rogers Orchards on HN. Some of my family members live within biking distance of there, and I love stopping by for a bag of apples or a pie.
When I lived by Lake Shore Drive in Chicago (down in Hyde Park), the noise of nighttime motorcycle races really bothered me. I was surprised because I never thought of myself as being sensitive to such things. But it was so, so loud, and they kept it up late into the night. Trying to crack down on this seems reasonable to me—at least insofar as we’re comfortable with traffic cameras in the first place.
Putin has only so long to live, and I doubt that whoever/whatever replaces him will have even his (lately degraded) level of competence.
I’m glad someone did this. I immediately uninstalled the extension when I saw that it had been acquired by Avast.
I’ve been reading Masnick for years; I’ve just gotten really tired of his shtick. It sounds like you’re also bored by this unproductive discourse, albeit from the other side. At least we can agree in one respect, as sad as it is…
Re: your last point, bingo. It’s almost impossible to have a real debate on this issue because people—esp. those who favor censorship and think highly of themselves for understanding what Section 230 does and does not say—refuse to go to the crux of it. They’ll bury you in technicalities and side arguments before saying anything about what they believe.
I love cooking with cast iron and have built up a decent collection over the years. More recently, I’ve also gotten into carbon steel cookware.
However… I always keep one nonstick pan in the kitchen, and it sees a fair bit of use. My practice is to buy something cheap, since I’ve found that the nonstick coating will last only so long, even on an expensive pan. By not spending much, I avoid feeling upset when it’s time for a replacement. (My current one came from IKEA, for about 15 EUR. I expect to get a year out of it.)