MurphyA/hacker-news huggingface dataset:
by ajross | 2025-04-14 12:40:00+00:00
> I don’t get this. In the generic version the data is embedded with the linked list node, so there’s only one allocation per node.

The reason is that the object being placed "in" the list can have a longer lifetime than the list node, in fact that's generally the case. Like, I work on Zephyr and in Zephyr we have "threads", whose tracking structs are managed by the application code. But they can be in kernel-maintained lists like a scheduler queue, which is an ephemeral state that the essentially-perpetual thread will long outlive. There's no place to allocate a "generic" node at list insert time.

(Also, more importantly, Zephyr is an RTOS and disallows heap use in the core parts of the system to permit use in environments that need to disallow dynamic allocation. But that's not really relevant to a generics discussion.)

But you can trivially put a scheduler queue node right into the thread object, knowing that it's a behavior of the type. The semantics become different though: you only get the one node, it's not possible to have multiple "lists of threads" using this technique unless you know exactly what each list is for ahead of time.
by strcat | 2025-04-14 12:40:11+00:00
> You are right, it may have been a unusual bug that hardly occurs, but it definitely happened to me.

This doesn't mean that it was a GrapheneOS issue.

> I also agree that having a unlocked bootloader is a security risk

It's a major reduction in security. It completely ruins the defenses against data extraction and significantly reduces security against a remote attacker persisting access. It also reduces robustness.

> I can't remember disabling any core system components, executing low level adb commands or any other unusual things which may have let to update breaking.

Based on the error message you give below, it wasn't any of those things because the error message isn't from the OS and is from before the OS boots.

> I think the error message that I got was the "No valid operating system found" one.

This is an error message from the firmware indicating that there's no OS installed on the current slot. If that happened after an update, it would have automatically rolled back. What you're describing was either caused by a firmware bug or a hardware failure. It indicates data loss on the SSD. If you had the device unlocked and modified the OS, it indicates that went wrong. It's highly unlikely that this had anything to do with an OS bug or misconfiguration.

> The experience was for me a bit off putting because I lost some personal data (shame on me for not having proper backups), but after reading these comments I might try Graphene os again.

You're describing a Pixel firmware bug or hardware failure such as SSD data loss. It could have occurred with the stock OS too. It's not really feasible that it was an OS bug. The error is from the firmware, not the OS, and if the firmware was working properly with no hardware failure involved it would roll back automatically if it had happened after an update. If it wasn't after an update, then it indicates data loss for the existing OS images.
by mgaunard | 2025-04-14 12:40:31+00:00
There are several advantages to intrusive node-based data structures that I haven't seen stated in the article or the comments:

- the same object can move between containers with no allocation and no need for a dedicated complex API

- the same object can be part of multiple containers at once; particularly useful for intrusive binary trees, for indexing data with different criteria.

- the container can be fully polymorphic, no need for all elements to be the same dynamic type.

- no need for complex allocators, you can just store the objects as you see fit.
by bamboozled | 2025-04-14 12:40:56+00:00
I really enjoy the simplicity of the tool, it's just a great experience, you need to tap the plane or "kana" to get the blade into the right position, and I find the pulling rather than pushing is really satisfying. Maybe it's just different and I love it for that reason.

As others have said, I like the all wooden construction too.

I like western style hand planes too.
by viraptor | 2025-04-14 12:41:27+00:00
I think this article still applies there just in a different way. If:

- you're working on a project with other people and - you're at the right level to make such decisions and - people compete with different / conflicting formatting

Then it is important that you make A decision. It can be "we're using my preferred style", or "we're using gofmt/rubocop/black/whatever", or something else. But any of them is going to be better than future waste of time in reformatting, merge conflicts and people arguing.
by juujian | 2025-04-14 12:41:59+00:00
A few years ago, Zotero actually made me content with the fact that I would need an external PDF reader. Then they unexpectedly rolled out their own, but by this point I am so happy with Okular that I have barely even tried Zotero's built-in PDF reader. Mostly because of Okular's great annotation, which Zotero then automatically synchronizes. A far cry from Mendeley's terrible walled garden.
by Telemakhos | 2025-04-14 12:42:06+00:00
In the first two maps, there seems to be little difference between income per capita and income inequality: the regions with greater per capita income also show greater inequality. Is this because some people always end up at zero no matter the region, so that increasing per capita income from X (lower) to Y (higher) stretches the ranges of income from zero to Y and thus increases disparity?
by cafard | 2025-04-14 12:42:13+00:00
A sometime co-worker had on display in her office a list of "Molly-isms" (name redacted) assembled by those who worked closely with her. I did not particularly, and don't recall them.

A woman I worked with long ago was trying to tell her boss that something was "a whole new ballgame" but came out with "whole new ballpark." The boss didn't pick up on it, but after work she mentioned it to her husband, and "a whole new ballroom" became a family catchphrase.
by cyberjerkXX | 2025-04-14 12:42:22+00:00
I’m constantly amazed at the socialist argument that forcibly taking the labor of some people to benefit other people is considered “efficient”

Also...

The idea that wealth hoarding inherently leads to inequality is flawed. If by “wealth” you mean capital, then unused capital doesn't distort markets or hinder wealth creation. If you're referring to wealth hoarding in the form of monopolies, it's important to note that monopolies tend to fail in truly free markets. Without innovation, they can't sustain themselves—unless they rely on government coercion to maintain control.

Government coercion is the primary force that inhibits both wealth creation and healthy competition. Overregulated markets and protectionist policies stifle innovation and prevent new players from entering the market. The most corrupt governments and corporations benefit from these systems because they reinforce existing power structures and shield them from competition.
by messe | 2025-04-14 12:43:27+00:00
> What I know as the significant advantage is that you can have one object in multiple lists.

Another advantage is smaller code size, as the compiler doesn't need to generate code for SinglyLinkedList(i32), SinglyLinkedList(User), and SinglyLinkedList(PointCloud). This could have a performance impact by making it more likely that code remains in the cache.
by pc86 | 2025-04-14 12:44:05+00:00
I'm generally pretty against paternalism in markets, but when you get to the more "finance-y" stuff like this the opportunity for large scale fraud is just so prevalent and there are so many people just looking for their next mark.

If $10k or $25k is an amount of money you have to pause to think about at all you have zero business investing in early stage startups. Simply by the way the math works out you are better off buying lottery tickets because at least then you'll get to scratch something off before going bankrupt.
by cracadumi | 2025-04-14 12:44:08+00:00
Thanks, glad you found it fun! That was the main goal for this initial version.

Good question on evolution. Some ideas that come to mind, building on the core location concept:

Ephemerality: Maybe messages could disappear after a set time (e.g., 24h via TTL indexes) to keep conversations fresh and less like permanent archives.

Discovery/Activity: A heatmap layer (using something like Leaflet.heat) showing areas with recent message activity could be interesting for finding active spots without needing to click every pin. Could aggregate message counts per pin/area on the backend.

Mobile: A native app could enable things like background notifications for nearby activity, but that's obviously a much bigger step.

Definitely open to other thoughts if people find the core idea engaging.
by pjc50 | 2025-04-14 12:45:23+00:00
No, the surveillors will be issued with special microphones that are capable of detecting the residence status of the speaker from ultrasonics and not recording it.

(/sarcasm, although I'm sure someone will make an argument almost as ludicrous about how this is actually fine)

Also, I'm sure citizenship is a perfectly fixed status that it's not possible for the administration to decide to change administratively by altering a record in a database.
by Zambyte | 2025-04-14 12:45:50+00:00
If you learn better by video than by reading, the Structure and Interpretation of Computer Programs lectures by Abelson and Sussman are spectacular. I have watched the entire course multiple times. The SICP book also receives a lot of praise, but I have yet to read it myself. They specifically use Scheme, but most of the knowledge can be translated to other Lisp dialects as well. The biggest difference between the different Lisp dialects are the macro systems and the standard libraries, so getting started and learning it doesn't really matter which one you choose. GNU Guile or Racket would be easy to use to follow along with SICP though.
by geocar | 2025-04-14 12:46:58+00:00
> Rebinding Ctrl-X or Ctrl-C never works without addressing a dozen quirks, and there's always another one waiting around the corner. Hell no.

:)

> I'm arguing for more consistent behaviour for applications

I think that's tilting at windmills.

You can solve your own problems, or you can ignore them, but there's no way you can just whinge on the Internet about how much you love Emacs but hate the copy/paste keys and get anywhere. You already know this. I'm sorry. Good luck with that.

> This can be objectively measured by answering questions such as: "does this application copy and paste text? if so, does it use the same key shortcuts as the next application?"

Since my first mouse, it has always been select with left button and paste with second button. That's how it is in OS/2, in every unix, and even on VMS. That's how it still is with every terminal I use. It's just simply not an application concern in my world and I think it was bad engineering for Apple and Microsoft to try and get the Application involved in the clipboard.
by hobs | 2025-04-14 12:47:10+00:00
Unfortunately for you you work and live in an environment created by other companies and its likely that if your company succeeds its one acquisition or bad top level management play from invalidating everything you implicitly or even explicitly promised.

I have worked for "good companies" before - and they have a tendency to make money and be targets for bad companies, add enough zeroes and even the good guys sell.
by spiffyk | 2025-04-14 12:47:20+00:00
I mean yes, you can pass functions as parameters in Zig, you can even define them inline if you wrap them in anonymous structs, but my point is that — in a language where this is supported somewhat properly — you would do this to improve readability with some sort of a fluent API. If you attempt to do it in status-quo Zig, readability will only suffer and you are still much better off doing it with for and/or while loops (depending on the data structure), especially when Zig has nice syntax sugar with payloads in both to support these.

edit: formatting
by mstef | 2025-04-14 12:47:25+00:00
the difference is, that archive.ph snapshots something in headless. omnom snapshots the exact same state that your browser is displaying you. so if there is js interactions that change the dom, those will be snapshotted, unlike with archive.ph.

also lets not forget that archive.ph wraps everything in their own frame and has their own way of mangling the result. not in a bad way, it's just not the original as it would have been rendered in your browser.
by viraptor | 2025-04-14 12:47:30+00:00
> simply hasn't really fully scoped their NFRs which can often make a big difference in the design of the system.

"We're scaffolding / not implementing / delaying this part, until X, Y, Z are known." is a completely valid decision to officially make. And it helps with planning and development of related code. "I don't know, because of missing NFRs" is not a decision though.
by api | 2025-04-14 12:47:50+00:00
I'm not sure if this is physically accurate, but the best description I've encountered for relativity is:

You are always traveling at the same speed. That speed is 'c', the speed of light.

If you are sitting still, you are 'falling' through the time dimension at 'c'. If you move in the X,Y,Z dimensions, you must move slower in the 't' dimension so that your velocity vector still sums to 'c'.
by aosaigh | 2025-04-14 12:48:05+00:00
> Maybe it's my mother, and she now has to go find where she wrote down her email password because she still can't figure out that 1Password thing I setup for her. Also, she does not have 1Password on this computer (maybe it's a public library).

This is exactly the reason people use magic links - passwords are painful.

I generally don't mind having one or the other, so either password or magic link. What I can't stand is having both in the same login flow:

- Enter your email

- Get sent a magic link

- Open magic link

- Continue and enter your password

- Enter your 2FA as well

- Smash computer
by lukev | 2025-04-14 12:48:47+00:00
A) The historical position of the US is that human rights (freedom of belief and speech among them) are inalienable. It plays out different for non-citizens but up until the current administration, largely the same constitutional and due protections have been judged to apply.

B) We're talking about the government proactively monitoring communications for thought crimes. That doesn't actually protect or help anyone.

C)The "reprehensible" positions here are things like "genocide is bad" or "Trump is a fascist." I don't know about you, but I don't believe such thoughts should be illegal.
by strcat | 2025-04-14 12:48:58+00:00
In general, we don't remove functionality. An exception is if something is explicitly insecure and has no reasonable use case. We removed support for instant apps, booting a Google signed GSI, adding new users while locked and pattern lock.

In very rare cases, someone complains about the removal of pattern lock, but it's a terrible feature and shouldn't be included in modern Android. It's a much worse variant of a PIN which gives people a false sense of security and encourages choosing an insecure lock method. We also didn't want to support it for our duress PIN/password feature or our upcoming random PIN/password generation feature. It's not really suited to either of those things. Pattern lock is genuinely an awful feature and shouldn't be included in modern Android, but they don't want to upset people by removing it. Extremely few people care that we remove it, and we've helped them by getting them to use a PIN instead especially if they use a proper random PIN.

> developer mode, adb, and sideloading

These things can be disabled with a device management app already, if what you mean by sideloading is installing apps via an APK or arbitrary app store. Sideloading an OS update to recovery has all of the usual signature verification and downgrade protection.
by TheCraiggers | 2025-04-14 12:49:22+00:00
> or vote with your vote and elect representatives which stop this.

And when all the choices of representative have already been bought and paid for with the lobbying power of that larger wallet?

This topic is especially nefarious as it's not just Lyft a representative has to worry about. Every company out there craves data; if not for direct usage, then for resale. Someone campaigning for privacy / data reform would be pissing off nearly every tech company in existence. So even if Lyft isn't lobbying (and we know they are), there's plenty of others that would be upset by stronger laws here.

It sure seems to me that we lost the privacy war a long time ago. Most houses have a slew of microphones and cameras owned by very large corporations, that came with legalese in the box stating they can do whatever the hell they want. And people plugged them in. Everyone carries smartphones tracking where the go, most loaded with apps harvesting as much data as Apple/Google lets them get away with, not to mention what Apple/Google are doing themselves.

I fear we are getting closer and closer to the time when the population finds out why we had those laws in the first place. There's an inflection point here that scares the hell out of me.
by DannyBee | 2025-04-14 12:50:15+00:00
Eh - having had to do these myself at Google for large orgs over the past few years, i would not assume it was based on merit.

The cost disparities can be huge between team members and locations, and a lot of time it's being done to hit some EOY or mid-year budget number. They are also slowly trying to clean up location strategy.

So it's entirely possible it was based on cost and location, and not merit.

It would still be merit "under the covers" if everyone was the same cost/location, but they aren't.
by slivym | 2025-04-14 12:50:18+00:00
They're not a charity. What do you want them to do? Hire $100Bn worth of engineers until their net income is 0? The possibly difficult truth at Google is that there's probably <1% of the company that is really essential to their monopolistic search business. The rest are either working on other projects which might be strategically interesting but not essential, or are working on the core product but not in a way that's driving business. Is it wrong for the management to say "We need to be efficiently investing shareholder capital" or for the market to be looking at Google and saying "We want your money spinning monopoly business please, not your eccentric other bets thanks".
by homefree | 2025-04-14 12:50:25+00:00
Yeah I’d argue this is so clearly the case and it’s one reason among many why the US has an enormous amount of successful tech companies and Europe has some amount that basically rounds to zero in comparison.

The ability to hire and fire easily is critical if you want to build successful companies.

There’s a reason ambitious founders move from Europe to the US and why most billion dollar tech companies are American. Europe has made really bad policy decisions around this for decades and their economy reflects it. Europe is poor and to an extent I don’t think Europeans really understand.
Tell HN: MCP Implementation – The Gap Between "Callable" and "Friendly"
by Tomotoes | 2025-04-14 12:50:26+00:00
I've been working with MCPs lately and want to share some hard-earned lessons about what actually makes them effective.

We built a system where LLMs could schedule meetings and book rooms through a popular enterprise platform. On paper, we had our own version of Microsoft's Task Matrix, but in practice? The failure rate was brutal.

Here's the thing: making APIs "callable" by LLMs is just the easy first step. The real challenge is making them "friendly" to how models actually think. Being callable sets the floor; being friendly determines the ceiling (physical-world APIs are incredibly difficult for models to handle correctly).

Tools like Gitmcp, and mcpify.ai promise "quick" and "easy" MCP integration of existing systems. Sounds great until you realize they offer zero guarantees about actually working well.

So how do we bridge this gap between real-world APIs and model reasoning? Some technical approaches:

1. *API Composition*: Bundle low-level APIs into semantic units that match model thinking - Example: Scheduling a meeting is one concept to a model, not a series of ID lookups and calendar operations - These are fixed workflows that don't need agent-style reasoning or complex composition

2. *Input Processing*: Simplify parameter structures - Flatten nested structures into single-level representations - Add intermediate calculations for parameters (e.g., converting date strings to timestamps) to scaffold the model's reasoning

3. *Output Processing*: Refine API responses for semantic clarity - Specify clear next steps after each API call - Provide only essential information rather than raw API responses that force the model to filter through noise
by briandear | 2025-04-14 12:50:29+00:00
Fairly biased article:

“In 2018, he celebrated Lula’s imprisonment in Brazil on dubious corruption charges, and the following year exulted in the right-wing coup that deposed Evo Morales in Bolivia. Since then he has voiced his support for far-right candidates such as José Antonio Kast in Chile and Jair Bolsonaro in Brazil…”

“Dubious” charges against Lula? — He was convicted of accepting a seaside apartment as a bribe for helping the OAS construction company get lucrative deals with state oil firm Petrobras.

Did Lula not do that? The claim is that Lula was targeted to keep him out of the election. Seems exactly the motivation for the various charges against Trump. Are charges dubious only when the right does that against the left? Marine Le Pen is another recent example of “dubious” charges being ok as long as it’s only going left against right.

Also Bolsonaro was termed “far right,” but Lula not called “far left?”

Does anyone actually do any neutral reporting or analysis? It seems that anyone to the right of JFK is “far right” while anyone to the left of Marx is “left leaning.”

More importantly, does anyone care any more? Seems like tribalism has gotten much worse over the past few years. The truth is, in the example of Lula is that is is/was very corrupt, but that he’s a leftist seems to excuse that.
by jesserwilliams | 2025-04-14 12:51:02+00:00
It's not the only one using OCI to package models. There's a CNCF project called KitOps (https://kitops.org) that has been around for quite a bit longer. It solves some of the limitations that using Docker has, one of those being that you don't have to pull the entire project when you want to work on it. Instead, you can pull just the data set, tuning, model, etc.
by zaphar | 2025-04-14 12:51:03+00:00
Why? This isn't a contrarian complaint but the problems that Cloudflare solves for an essential service require verifying certain things about the client which places a burden on the client. The problems exist in many cases because the service is essential which makes it a higher profile target. Expecting the client to bear some of that burden for interacting with the service in order to protect that service is not in my mind problematic.

I do think that it's reasonable for the service to provide alternative methods of interacting with it when possible. Phone lines, Mail, Email could all be potential escape hatches. But if a site is on the internet it is going to need protecting eventually.
by cafard | 2025-04-14 12:51:06+00:00
""" In addition to Lem, Dick named three other sci-fi figures associated with him as in on the plot – Peter Fitting, Fredric Jameson and Franz Rottensteiner (also Lem’s literary agent in the West). """

I've never heard of the other two, but Fredric Jameson was a well-known literary critic. I gather that he did write about science fiction, and certainly he was a Marxist, but was he really a "sci-fi figure"?