skysight-inc/HackerNews huggingface dataset:
You may check https://cstack.github.io/db_tutorial which teaches writing an SQLite compatible database from scratch in C.

I know you mentioned about RDBMS, but may I introduce you to a structured path for building a KV Store, which can be a foundation for a RDBMS? My project is in TDD fashion with the tests. So, you start with simple functions, pass the tests, and the difficulty level goes up. When all the tests pass, you will have written a persistent key-value store.

https://github.com/avinassh/py-caskdb
There’s areas it’s good for: Beaten paths, modeling time-independent structures and things that are naturally 2D. Not so great for the final solution, but handy when you need to do quick iterations. Ex. the interface builder in xcode, the node system in blender, sound synthesis…
The UN, an organisation close to breaking point?
> Nobody’s surname needs 128+ bytes. No reasonable URL for a firmware update download needs 4096 bytes.

...and surely the "seconds" field of a timestamp is always between 0 and 59 inclusive, addresses will include a state and a building number, phone numbers contain only digits and maybe a leading + sign, etc.

Wrong assumptions like this are one of the root causes of (in the best case) bad UI or (worst case) annyoing bugs.

128 bytes for a surname is only about 60 unicode characters, less if you include RTL markings and characters outside the BMP.

A URL can contain SHA hashes (think: reproducible builds) and can thus be very long (okay, 4k characters is pushing it quite a bit but I wouldn't rule it out like you did...)
You seem to be deep in a hole based on some high profile, bad experiences. Take a moment to climb out of it and look around at all the cool stuff happening :)
GIZMO Users Guide - http://www.tapir.caltech.edu/~phopkins/Site/GIZMO_files/gizm...
The US software industry has already conquered the world, and continues to do so. It doesn't mean that it'll always be this way, but if you wanted to associate software with a single country, then the US would be your answer.
Not long to wait only... well, 2035. A blink of the eye in terms of astronomy build deadlines, I guess.
We've used ZMQ rather successfully, but step 1 of ZMQ is don't use REQ/REP at all, ever. It has advantages primarily around throughput and abstracting details across different mediums (which is sometimes actually a detriment).
It was already possible to search for photos in Google Drive by their content. They seemed to be doing some sort of image tagging and feeding that into search results. Did that ever cause a fuss?

I think the more interesting point is how little people seem to care for the auto-summarization feature. Like, why would anyone want to see their archived tax docs summarized by a chatbot? I think whether an "AI" did that or not is almost a red herring.
It's unlikely to come out in the business' favor either. Turning the conflict into a lawsuit will increase costs for both sides, and may significantly eclipse the amount in dispute.

For a large corporation with a substantial legal team, that might make sense for many situations...they've already paid a baseline cost for the capability of near-continuous engagement with litigation of some kind. For many small/medium businesses, it can be a large additional cost. Then it becomes a question of "am I so willing to screw this person I owe money to, that I am willing to screw myself in the process?"

Showing up in person is a way of indicating you're willing to make it complicated and/or expensive to make you go away.
And neccessary.
Then let's do something to encourage actually investing—putting money into a company, not into the stock market.

If I buy shares of, say, APPL today, Apple Inc. doesn't actually get that money. The person who owned those shares before does. Even if I bought up $2B worth of shares, Apple would see none of that money. It is not actually invested in the company in any way.

If you want to encourage investing, then you need to find a way to advantage shares being sold directly by the company. (And, frankly, strongly discourage stock buybacks, because that's literally the opposite of investing, and generally only benefits the wealthiest shareholders.)
C programmers like their overly concise naming schemes don’t they… How do you expect a user to guess the subtle differences in behavior between strncpy, strlcpy and strscpy?

Sure screens were smaller before and you didn’t have autocomplete, but reaching out for documentation was also harder, and there was less of it. I guess “real programmers” memorize libc down to every detail and never use dependencies they didn’t write themselves.
Building proprietary tech is what builds proprietary tech. Facebook developers also use the power grid, but that fact shouldn't divert rage towards solar panels.

And there very much are open source software projects specifically designed to combat "Orwellian" tech. I would not have those be proprietary too.
Cooperation in Reactor Research
> The American political system was explicitly designed not to empower the will of the majority, because that would have been an existential threat to the status quo (slavery) at the time.

This whole retelling of history exclusively through the lens of the slavery is getting super old. It is divisive, it’s a form of revisionist history, and it’s wrong.

Read about the Northwest Ordinance, the provisions in it banning slavery in the 1780s were ultimately adopted verbatim into the Thirteenth Amendment. Or the actions of the founders including John Adams who put their lives on the line to fight against slavery. And the numerous states that made it illegal at the time of the nation’s founding.

There’s a lot more to history than the over-simplified retelling about how the radical pace of social change in the 18th century wasn’t somehow fast enough for our 2024 sensibilities.
>> I don't get how can each file system have a custom lifecycle for inodes, but still use the same functions for inode lifecycle management, but apparently with different semantics?

I had the same question. They're trying to understand (or even document) all the C APIs in order to do the rust work. It sounds like collecting all that information might lead to some [WTFs and] refactoring so questions like this don't come up in the first place, and that would be a good thing.
What's the reason for picking January 1974 as the starting date?
>In an era where performance mattered, and much software was written for hardware, and controlling hardware, it's hard to see an alternative

Actually, what made sense _was_ assembly when performance mattered above all. C was actually seen as a higher level language.

However C's advantage was the fact that it was cross platform, so you could compile or quite easily port the same
code to many different platforms with a C compiler (Solaris,Windows,BSD,Linux and latterly Mac OSX). That was its strength (pascal shared this too, but it didn't survive).

You can see this in the legacy of software that's still in use today - lots of gnu utilities, shells, X windows, the zlib library, the gcc, openssl and discussed fairly recently POV Ray which has been going since the 80's.
Show HN: RAG on HN comments in 34 LOC
I'd say that in general any format of variable size that does not state its length before the variable part is provoking buffer-overflow bugs. Thus such formats should be avoided in any kind of binary interop,

This holds even if the total length of the data in an interaction is not known ahead of time. E.g. an audio stream can be of indeterminate length, not known when the first byte is sent over the network, but each UDP packet has a well-determined length given in the header.

The length field can be made variable-size in a rather fool-proof way [1], allowing to economically represent both tiny and huge sizes.

(Zip files, WAD files, etc have that info at the very end, but this is because a file has a well-defined end before you start appending to it; fseek(fp, 0, SEEK_END) can't miss.)

[1]: http://personal.kent.edu/~sbirch/Music_Production/MP-II/MIDI...
"Satire requires a clarity of purpose and target, lest it be mistaken for, and contribute to, that which it intends to criticize."

To put it another way: From Poe's Law[0], we know that no matter how outlandish a position you take sarcastically in a forum like this, there's nearly guaranteed to be people who will be taking such a position in full sincerity. If you don't clearly indicate in some way that you're being sarcastic, you're going to be mistaken for the real asshole, because your tone of voice does not come across in plain text.

Next time, just put a /s and save everyone the trouble, hmm?

[0] https://en.wikipedia.org/wiki/Poe%27s_law
Just read this one. Always a good overview about what happens in the ruby world!
Wet-lab innovations will lead the AI revolution in biology
The Rust async experience indeed has lots of pitfalls, very much agree there.
Could argue this is efficient. Interestingly all the language teachers fired won’t stop consuming power.
That last point is super interesting: these diagrams never tell you much about the implementation or how it would perform.
I mean just use C++ w/ std::string why is it difficult?
Undisclosed minimum length is particularly egregious.

It's very frustrating when you've got a secure system and you spend a few minutes thinking up a great, memorable, secure password; then realize that it's too few (or worse, too many!) characters.

Even worse when the length requirements are incompatible with your password generation tool.
> The vastly overwhelming body of evidence clearly indicates that today humanity is materially and by nearly all concrete measurements of human well-being better off than at any time in all its long history.

I mostly agree, but my point was that materialist analysis has obvious limits. It also naturally favors industrial society as industrial society optimizes for material production (not necessarily material satisfaction, mind you, hence why I mostly agree)

> If you want to make a case for the "natural" life of simple pleasures

If you presume superiority by comparison to our modern "complex" pleasures, sure, you're not going to find much interesting in the past.

> If you want that kind of life today, within the relative safety net of modern medicine and economic support in a wider sense, you're free to pursue it as intensely as you like, and more safely than you ever could have before.

You will still be haunted by what you have seen of other humans and heard from their lips—there's no escaping that.
Lots of people "play the market" as a mostly total game of chance. They might just as well join a giant pool that tries to guess the ratio of alphabetic characters within each morning's top headline of their favorite newspaper.

Warren Buffet buys the newspaper and has significant control of the editor. That's not the same game at all.

There's a lot of talk here about active fund management. Active ownership is playing on a completely different level.
I used blueprint's predecessor 'kismet' quite extensively. I absolutely hated it. Give me unrealscript any day. Blueprint is popular because that's all you have. They removed unrealscript. To do anything even slightly complex you have to use C++ now.
Those walls would be nearly 30C in the inside already, if my house was built with them. The average temps for the past few weeks (low + high / 2) have been 30-32C. Its still somewhat early in the hot season here, so that will still go up.

There are months of the year where it doesn't get less than like 32C. save for rare cold snaps were it'll dip down to 26C or so for an evening or two.

My pool, which also has some decent thermal inertia, is already at 30C. The average temperature is still going up outside.

All of Europe is further north than most of the US. This does some big things for the climate.
There is "yestereve" but it's archaic and never used. Despite not being used, totally understandable to English speakers.
Maybe an AI editor?

That would be somewhat disconcerting.

Write about problem with AI and article get changed to 10 best fried chicken recipes.
this is similar to the scramble for health data during covid where a number of groups tried (and some succeeded) at using the crisis to squeeze the toothpaste out of the tube in a similar way, as there are low costs to being reprimanded and high value in grabbing the data. bureaucratic smash-and-grabs, essentially. disappointing, but predictable to anyone who has worked in privacy, and most people just make a show of acting surprised then moving on because their careers depend on their ability to sustain a gallopingly absurd best-intentions narrative.

your hacked SMS messages from AT&T are probably next, and everyone will be just as surprised when keystrokes from your phones get hit, or there is a collection agent for model training (privacy enhanced for your pleasure, surely) added as an OS update to commercial platforms.

Make an example of the product managers and engineers behind this, or see it done worse and at a larger scale next time.
> Rust kids need to quit tricking other entry level aspiring OS devs into wasting their time learning this language.

In that case, C/C++ developers need to quit tricking the rest of the world that C/C++ is a suitable language for anything security related and - for commercial
products - take responsibility for the economic and social impact for the data breaches due to memory safety issues.

(I really don't care if it's Rust, Java, C#, whatever.)
No trial period?
C can add a whole alphabet if str?cpy functions, and they all will have issues, because the language lacks expressive power to build a safe abstraction. It's all ad-hoc juggling of buffers without a reliably tracked size.
One problem here is that the string may not have been a correctly formatted UTF-8 string to begin with. No, not that it can contain any bytes-I mean, it might be ascribed even more than just decoding correctly. Maybe it is supposed to have the grapheme clusters preserved. Maybe the truncation should peel off the last file component because the string holds a path. The operation of “doing a dumb truncation” can be broken if you look at it from plenty of ways, and I don’t disagree with you, but I do want to make clear that the issue isn’t memcpy is breaking it but that if you need x, y, z maybe you’re reaching for the wrong tool. And conversely there is nothing inherently wrong with using it if you are going to use it in a way that is resilient to that kind of truncation.
The US undermines international law (1999)
That's fair, but it's only part of it. The issue of "stage fright" still exists and can't be mastered just by practicing your craft to proficiency in solitude. There are other practices, like literally going on stages (speaking, performing) and becoming used to the pressure, that would overlap.

Hopefully I'm not giving useful tips to future assassins. :P
The quote you gave there is entirely accurate, Biden is changing the national landscape.

Foxnews et al doesn’t claim Biden is Hitler (as insensitive as this is), and that if he isn’t stopped the entire free world and democracy will end. The rhetoric from the left is driving a group of people who already believe their self worth is defined by how involved in politics they are to now be violently involved.

The left needs to quit pointing fingers and own up to what they’ve done, and learn the lesson to not speak this way again.

Or maybe we need to consider if news media should report on elections and candidates of elections, or if that should be a subject illegal for them to report on.
The downside with always-unique cookies would be that you'd necessarily need some lookup data structure on both alloc and free, which is gonna be pretty expensive, both in memory usage (at least 16-byte entries, multiplied by load factor) and performance (essentially guaranteed cache misses on both alloc and free, unless you have generational lookup tables). Or, worse, some tree structure if you don't want some allocations to have to resize the entire hashtable. That's two things from the GC world - generational allocations, and stop-the-world pauses vs even more significant overhead :)

What it solves is double-free, not use-after-free; potential corruption (even if not of the allocator state) is always gonna be a problem with any allocator that ever reuses memory.
Given how those discussions usually go, and the scale of the change, I find that discussion extraordinarily civil.

I disagree with the negative tone of this thread, I'm quite optimistic given how clearly the parties involved were able to communicate the pain points with zero BS.
That’s actually incredible. I was picturing a 42 year old man. Good for him.
Little demo that searches Hacker News comments for a topic (using https://hn.algolia.com/api), extracts sentiment and other metadata, then generates a research summary.
Really proud of the API we've built at https://substrate.run – you don't have to think about graphs, but you implicitly create a DAG by relating tasks to each other. Because you submit the entire workflow to our inference service, you get automatic parallelization of dozens of LLM calls for free, zero roundtrips, and much faster execution of multi-step workflows (often running on the same machine).
AI Rights (assuming AGI).
Do we still treat it as a machine, are we allowed to turn it off etc...
This is the hope yes, and again that they prevail instead of the hot headed extremists running current politics.
AI Spotlight is your one-stop destination for AI tools. Explore our curated directory of over 5,000 AI-powered solutions tailored to meet your professional needs. From data analysis to automation, discover the tools that will revolutionize your workflow. Join our community and harness the power of AI today!
Right, but it's triggered by the user themselves, per the article:

> "[it] only happens after pressing the Gemini button on at least one document"

I agree the AI aspect is largely a red herring. But I don't think running an algo like a spellchecker within an open document is so awful. If people hate it or it's not useful or accurate, then it should be binned, ofc. And if we're ignoring the AI aspect, then it's just a meh/crappy feature. Not especially newsworthy IMHO.
I feel like this person went through an unnecessary and false tangent about how people are "afraid" of memcpy due to inexperience and missed the much more important criticism that arbitrary, naive truncation on a byte level doesn't play well with Unicode.
I think we all expected Trump to at least call off the protesters.

But instead, Trump gave us hours of inaction. Precious hours wasted during the time we needed leadership most.

I'm not planning on voting such an indecisive man into office.
This is not a notable challenge in rust, nor relevant to the article.

The article is about finding ways of using rust to actually implement kernel fs drivers/etc. Note that any rust code in the kernel is necessarily consuming C interfaces.

Bindgen works quite well for the use case that you are thinking.

https://github.com/rust-lang/rust-bindgen
Hmmm. Is this serious or facetious? Or could be either, depending on the response? There already is rust code in the Linux kernel (some drivers), afaik.
and also you have to copy (probably allocating) to get a substring.
See this discussion from about a week ago:
https://news.ycombinator.com/item?id=40882881
I've seen a few apps attempt this, e.g. Talkpal (https://talkpal.ai)

Wonder how long it will take Duolingo to roll out a its own version
(1) Is a problem for sure. Proprietary devs always overestimate the value of their code, and lack of open source scrutiny typically makes code quality worse.

(2) Definitely.

(3) VC culture can be an issue, though Facebook might not be the best example (they gave us React, GraphQL, PyTorch, and more).
I do understand that

But he is a cat

And cat does what cat does.

Again I understand you but maybe the hardship is fitting the cat in a non cat env. Nothing related to you
Care about the problem, not the solution.

If some framework solves a problem that you don't have, then you don't need to worry about the framework.
(I’m not on the search team, but I did write some search stuff back in 2019, explanation may be outdated)

The blocks (pages are a block) in Notion are a big tree, with your workspace at the root. Some attributes of blocks affect the search index of their recursive children, like permissions: granting access to a page grants access to its recursive child blocks.

When you change permissions, we kick off an online recursive reindex job for that page and its recursive subpages. While the job is running, the index has stale entries with outdated permissions.

When you search, we query the index for pages matching your query that you have to. Because the index permissions can be stale, we also reload the result set from Postgres and apply our normal online server-side permission checks to filter out pages you lost access to but that have stale permissions in the index.
strlcpy is the worst C string routine except for all the others.
This is normal, with newer versions of android (probably 10+) there is a feature that checks and removes unused permissions from apps in the last X days.

According to the OP here, it does seem like a pain in the butt to disable -
https://support.google.com/android/thread/268170076/android-...
Maybe the correct response is to burn down their office and if they don’t like it they can create their own data
Inspire you thinking by the sharing as the kind of picture
> Often, people need to be offended,

This could indicate a point in maturity. The question would be what ages are most afflicted, what percentage of us grow out and - importantly - what can hamper maturing out of that stage?
>if you actually try to fight on the job boards you are fighting for positions that were already turned down by top talent against recruiter firms that get a percentage of your salary

You don't know what you're talking about. Companies don't want to pay 3rd party recruiters if they can help it. They will if the position is difficult to fill, but that doesn't mean the job is a bad one.

>i guess it's just old fashioned git gud scrub mentality which is very toxic but what can i do about it?

Nothing. To some extent you do have to try, but you also have to recognize when the problem is outside your control. If the economy implodes, programmers and everyone else will be unemployed regardless of ability, and it may not be possible for them to get hired no matter how much they try to impress employers.

>i wouldn't trust a single person on linkedin if i was in a hiring position so it's really a losing game for everyone.

If you were hiring, you'd just have to interview people from LinkedIn to get "trust"... It's not like anyone expects you to not do that.

Personally, I got most of my jobs from strangers. The people I know have tried to help me get jobs before, but I only got one out of several due to help from a friend. And in that case, I was also a great fit for the job, so it wasn't like nepotism or anything. Maybe this lack of help is because I don't know enough people. I can't help but be suspicious of people who got their jobs due to extraneous considerations.
As history has shown, there a significant difference between project deadlines mentioned at the start of the project and the actual date of when it's launched. 2035 become 2037 becomes 2040 becomes 2045 very easily
That girl isn't a greybeard. That's a nobeard. No one takes them seriously.
M3: Massey Meta Machine
Yes, but that is an internal function of the Linux kernel.

It is available in user programs only if you define it yourself, e.g. by using memccpy.
> which was explained in manuals as a "keyword signaling an error condition"

Fun side-note: As someone who learned programming in parallel with learning English, my brain still thinks of many programming constructs as keywords that have no real meaning. 20+ years later it still surprises me sometimes when something clicks and my mind goes “Oh wait that concept is named after a real world analogy!! Whoa”