MurphyA/hacker-news huggingface dataset:
by grumple | 2025-04-11 08:00:47+00:00
If your currency is high value (which USD is due to demand in part due to oil and part due to others having reserves of it), foreign goods are cheap to you. This makes importing attractive, but it makes it very expensive for other countries to buy your exports.

If your currency has a lower value, it’s cheap for others to buy your exports, but expensive for you to import goods.
by Voice_of_Void | 2025-04-11 08:01:03+00:00
We've just published a new approach to AI architecture that breaks from both the anthropomorphic robot model and the passive tool paradigm.

The Transformation Locker concept proposes a three-tier architecture:

· Core (stable intelligence)

· Personas ("digital clothing" for context-specific behavior)

· Bodies ("taxis" - temporary physical interfaces)

The model optimizes for energy efficiency, specialization, flexibility and distributed presence, while creating new markets for AI personas and physical interfaces. "By transforming our understanding of AI from a tool or rival to a partner, we open the way to a future where technology and humanity evolve together, enriching and supporting each other."

Feedback from the technical community would be especially valuable, as we're actively developing this model and planning initial prototypes.
by Arnt | 2025-04-11 08:01:12+00:00
I think you're saying "because ① pollution affects bystanders, ② bystanders have standing to complain about pollution, and ③ choosing not to write certain things is like pollution, bystanders also have standing to complain if someone chooses not to write these things". Do I understand that correctly? Can you explain why the choice not to write is like pollution?
by mschuster91 | 2025-04-11 08:02:05+00:00
> The free market approach is to remove barriers to trade and let things develop as they may.

And the events of the last 30-40 years have shown why this is a beyond foolish approach. The 47th and MAGA didn't rise out of nothing, they rose out of the economic devastation brought upon by completely unchecked turbo-capitalism.
by bryanrasmussen | 2025-04-11 08:02:11+00:00
the problem for me with AI startup, built on someone else's AI, is that it is difficult for me to envision what the moat will be - perhaps because it is difficult to think up what the moat will be for something so generically specified, but really whenever I think of something cool, it seems AI is an added on ability but not the main driver, and that AI does not give any moat whatsoever.
Show HN: Open-source, cross platform document data extraction with no OCR
by prithiv10 | 2025-04-11 08:02:51+00:00
The traditional pipeline for unstructured data extraction typically follows these steps: 1. Image → OCR Model (e.g., Google Vision) → Layout Model (e.g. Surya) → LLM → Final Answer However, this can be streamlined using a Vision-Language Model (VLM): 2. Image → VLM → Final Answer

Recently VLMs have improved a lot for OCR and document understanding tasks, specifically the Qwen-2.5-VL series. We can run the Qwen-2.5-VL-7B-AWQ model locally with just 16GB VRAM, and perform end-to-end information extraction (fields and table extraction) without any external models.

Hallucination with VLMs One question I am asked often is, higher hallucination with VLMs compared to OCR model. This is a valid point. But, even with correct OCR and Layout formatting, LLM can still hallucinate, and can give incorrect final answers. Layout models often struggle with complex documents (e.g., tables, complex sparse document). If the formatted text from the layout model is incorrect the LLM model will always produce incorrect extraction with high confidence.

Check out our GitHub repo for implementation details:

GitHub: https://github.com/NanoNets/docext
by n4r9 | 2025-04-11 08:03:06+00:00
[The italics and punctuation suggest your comment is sarcastic, but I'm going to treat it as serious just in case.]

Yeah, I'd say characterisation is a weakness of his. I've read Stranger in a Strange Land, The Moon is a Harsh Mistress, Starship Troopers, and Double Star. Heinlein does explore characters more than, say, Clark, but he doesn't go much for internal change or emotional growth. His male characters typically fall into one of two cartoonish camps: either supremely confident, talented, intelligent and independent (e.g. Jubal, Bernardo, Mannie, Bonforte...) or vaguely pathetic and stupid (e.g. moon men). His female characters are submissive, clumsily sexualised objects who contribute very little to the plot. There are a few partial exceptions - e.g. Lorenzo in Double Star and female pilots in Starship Troopers - but the general atmosphere is one of teenage boy wish fulfilment.
by squarefoot | 2025-04-11 08:03:29+00:00
Anyone using it successfully on OS-less embedded systems? (microcontrollers or very small SBCs) Crystal, and Zig for that matter, subsets could be interesting and more performing substitutes for Micropython where speed is vital and one still wants to keep on a higher level than ASM or C, however last time I checked there were only a few isolated experiments.
by inferiorhuman | 2025-04-11 08:03:31+00:00
It's trustworthy.

In what way is AI trustworthy? It's ruining the parts of the internet I use and care about. I can't visit Digikey's site in an incognito tab without having to sit through a ~5 second captcha these days. Mouser is less aggressive, but it's still problematic. Drew's spent how much time combating AI bots instead of improving Sourcehut?

In fact I'd be hard pressed to think of a site that isn't getting boned by AI.
by Ferret7446 | 2025-04-11 08:05:10+00:00
The planet will be here for a long, long, LONG time after we're gone, and it will heal itself, it will cleanse itself, cause that's what it does. It's a self-correcting system. The air and the water will recover, the earth will be renewed. And if it's true that plastic is not degradable, well, the planet will simply incorporate plastic into a new paradigm: the earth plus plastic. The earth doesn't share our prejudice toward plastic. Plastic came out of the earth. The earth probably sees plastic as just another one of its children. Could be the only reason the earth allowed us to be spawned from it in the first place. It wanted plastic for itself. Didn't know how to make it. Needed us. Could be the answer to our age-old egocentric philosophical question, "Why are we here?"

Plastic... asshole.

-- George Carlin
by TheDong | 2025-04-11 08:06:06+00:00
Not the person you're asking, but I'm curious what you mean when you say "the alternatives".

I've used runit, openrc, briefly upstart (what a trashfire that was), and I don't miss a single thing about them while writing systemd unit files.

I've used GNU Shepherd on Guix, and honestly, meh, systemd feels way more pragmatic.

I've also used systemd-networkd as well as NetworkManager, and feel like they both still have a few warts, but overall prefer systemd-networked on servers.

I've used grub, refit, and systemd-boot, and gotta say systemd-boot is my preference there too.

I haven't really used systemd portable services, but I've used docker and don't like it, and my overall impression is I'll probably like portable services more.

Are there other alternatives I have to use before I'm allowed to have an opinion? What alternatives have you used which made you feel so enlightened?
by mschuster91 | 2025-04-11 08:07:32+00:00
China is essentially acting like a VC fund. They spread money around everywhere... and get a ton of benefits in return. Local autocrats just love China because their money doesn't come with strings attached (such as IWF or EU/US aid), they get to spend down a chunk of their massive dollar forex reserves, provide a ton of people from their poor provinces with work (Chinese foreign construction projects usually don't hire local labor!), and build up soft power in the population of the countries where they invest.
by lukan | 2025-04-11 08:07:36+00:00
"If nobody's life or health is at risk, it is not urgent enough to sacrifice someone else's health for it."

I agree. But I think being on call is possible in a healthy way, if there are long enough brakes in between. Occasionally being a night on call is possible. (Well and normal if you have small kids, but having small kids and having to worry about getting an emergency call any minute, that would be draining)
Show HN: I made a Chrome extension that turns each new tab into a birding moment
by jaip | 2025-04-11 08:07:39+00:00
I built BirdTab, a Chrome extension that introduces you to a different bird species each time you open a new tab. It features stunning photos, bird calls (with a mute option), and interesting facts to bring a moment of nature into your browsing experience.

A year ago, I moved to the Himalayan foothills and was captivated by the song of a Blue Whistling Thrush outside my window. This sparked a fascination with birds. As a developer, I still spent hours in front of Chrome tabs, so I created BirdTab to bring a slice of that birding experience into my daily routine.
by staticelf | 2025-04-11 08:08:09+00:00
It's easy with Caddy to setup it in a way that you can have your api and SPA app in under the same domain in order to avoid CORS-issues.

myapp.localhost { tls internal

# Serve /api from localhost:3000 (your API) @api path /api/* handle @api { # Remove the leading "/api" portion of the path uri strip_prefix /api reverse_proxy 127.0.0.1:3000 } # Fallback: proxy everything else to Vite's dev server on 5173 handle { reverse_proxy 127.0.0.1:5173 }

}

You're welcome.
by nottorp | 2025-04-11 08:09:33+00:00
> I am wondering what's the relation between the topic being discussed here and vim/neovim?!

It's a similar religious matter?

> I also checked your profile and again, wondered why you are putting this: "Only admins see your email below. To share publicly, add to the 'about' box." as your bio!

Why not? I have "Error retrieving about text" in my "About" field on a certain sms replacement chat app...
by eawgewag | 2025-04-11 08:09:55+00:00
replied to the parent, but --

Last time I tried I couldn't find a way to bulk delete contacts. I had to delete them all one by one. I couldn't stand how tedious it was and gave up. I don't feel any kind of sentimentality towards these contacts, given most of these people I haven't spoken to in nearly 15 years

I don't connect google to my phone anymore, so at least they don't pollute any data elsewhere
by berkes | 2025-04-11 08:10:13+00:00
Indeed.

We had "Altavista" and for a very short time it was OK, but then quickly decended into a ad-ridden "portal" This was 1997 or so.

The web was full of popups, and then popunders. It was not uncommon to close your browser in the computer-room, then have to close 20 popups that kept coming back. Some of which showing straight out porn. At least scams like viagra, "buy gold online" or "download more memory" malware.

Before Google, it was merely undoable to find anything useful between all the banners, gifs, "only readable in netscape" search-engines.

Before Mozilla/Firefox, popups made it almost impossible to browse the web for longer than half an hour before the browser crashed or the computer locked up.

Chat was insecure, scammers, groomers, malware injection, mitm was everywhere. There was no privacy.

Forums, BBSes and NNTP were full of "trolls" before this term was even known. Flamewars, flamebait, and again, scammers, groomers and malware everywhere.

I do have fond memories of this time. But also know these memories are distorted. It was a dark forest already.

The main difference, I believe, was that the majority of internet users back then were smart - mostly western - educated or young people. I.e. the "tech literate" folks. Those who know how to deal with malware, scams, groomers, privacy, hackers. Those who know how to navigate around popup-bombs, redirect-loops, illegal-content and criminals. But the bad stuff was there from the early days. Today, the "bad stuff" has shifted, from criminals into monopolized big-tech tapping our attention and data, but it has always been there, this dark side.
by mukesh610 | 2025-04-11 08:10:15+00:00
Both articles are correct, from me reading them. When you invoke a shell script directly, it gets passed to the kernel to try and execve. The kernel returns ENOEXEC when it detects it doesn't have a shebang. The shell catches the error, and then as a last resort, tries opening the file and interpreting its instructions.

I might be wrong, so do correct me if so.
by nylonstrung | 2025-04-11 08:11:20+00:00
Even with automation and high tech industry, their GDP per capita (both nominal and PPP) is equivalent to that of Mexico

The average household income in China is equivalent to making $17K salary in the US, and on average, Chinese work 25% more hours than Americans

Average home in their Tier 1 cities is 20x annual salary, compared to a 7x ratio in NYC

It's still pretty bleak for the average person there- you see that reflected in the "let it rot" youth movement online
Show HN: I built AI Agents for continuous customer feedback
by fletchervmiles | 2025-04-11 08:11:47+00:00
Growth is harder than ever. Acquisition costs, churn, customer expectations, # of competitors—all way up! Understanding your customer is your moat but traditional methods aren't great.

Survey's lack depth. Human interviews aren't repeatable, scalable or convenient (for you or your customers).

Franko let's you create and deploy agents to have short, targeted conversations at critical points in your customer journey.

Configure your agent with a "Conversation Plan" and other details (i.e. # questions to ask, etc) and then send directly to customers!

I.e. you might configure an agent to understand customer churn, and send your relevant agent link in an automated churn email sequence.

Customer clicks, opens a ChatGPT-like UI, and the agent guides them from there! Short, sharp, insightful!!

Let me know what you think :)

Cheers, Fletcher
by sublimefire | 2025-04-11 08:12:31+00:00
Aside from using people instead of computers etc, what is interesting to me was that investors try to get back the money using fraud as an argument. I reckon if there was no real fraud they’d attempt other professional misconduct allegation to bypass the fact that the money burned in the limited company. I wonder if any sort of indemnity insurance could help in these situations to dodge the lawsuits.
by andriusbartulis | 2025-04-11 08:12:51+00:00
There are two main high-level approaches for architecting web application client state:

1. Client-heavy state management (separate client application)

2. Client-light state management (thin client)

The state has to be tracked and managed somewhere. In most web applications, that state is persistable - at some point, it will end up in a DB of some kind.

As such, we already have to handle it on the server side, regardless of whether we also choose to separately manage it on the client side or not.

So the question at the end of the day is: Do I want to separately manage the application state on the client side, when I am already managing it on the server side?

In a lot of situations, the pragmatic answer would be "No". Why? Because managing the state in two places causes duplication, synchronisation issues, diverging logic issues, and so on. We are increasing the accidental complexity of our solution. Maintainability becomes slower, riskier and more expensive.

For some applications, the extra complexity might be worth it. In most web applications I have worked with (eCommerce, internal business tools, booking systems, online calculators, business dashboards), it is not.

And "let's keep all state and processing on the server" does not anymore mean no real-time or highly interactive features. With SSE and fast HTML fragment merging, we can enjoy highly interactive and performant web applications with almost no client-side application state management.
by batiali | 2025-04-11 08:15:06+00:00
Built this game with Cursor using React with Vite, Tailwind CSS, Framer Motion, Firebase and a bunch of other stuff. Took me about 2 months working on it on my free time(which I don't have since I have a full time job and a small child) As a side effect, I feel somewhat proficient with React now. Building things and learning after is turned out to be a good method for me.
by palata | 2025-04-11 08:15:11+00:00
> There are few unicorns in Europe, alas, and too little innovation.

There is most definitely innovation in Europe. It just gets bought by the US, who is quick to forget where the technology came from.

As for unicorns and trillion dollars companies... some may say it's a feature, not a bug. It's great to claim to have free speech and competition, but when a few people own a few big monopolies and control the media, is it real? Regulations are not bad.
by spookie | 2025-04-11 08:15:32+00:00
From my own experience the alternatives are fine as long as the distro maintainers put on the effort to make them work.

I've used Devuan and others with runit, sysV, s6 and openrc. And honestly, openrc is the better alternative from an user perspective.

Nevertheless, it is hard to argue against systemd when the critical mass is there, and you run into eventual problems.

Still, I find alternatives such as runit and openrc easier to reason about than systemd. Perhaps this is due to the need to fully grok them, so you're able to fix issues yourself. Contrast that with systemd, where there are plenty of drag and drop solutions out there, so that requirement is lessened. You could also argue the real reason is systemd's complexity, but personally that doesn't feel like the core reason.

Either way, it's good that there are alternatives. I like how heterogenous the whole Linux ecosystem can be, it helps mitigate large scale security issues.
by andersmurphy | 2025-04-11 08:15:54+00:00
I'd also add even if for whatever reason you are on http1.1 (you should really use http2 for server driven apps there's a lot of other advantages). Datastar prunes connection based on the browser visibility API so on http1.1 a user would need 5-6 visible tabs/windows visible at the same time for you to hit any issues.

Assuming you are using Datastar the way I do with a single persistent SSE connection.

This feature is also much better for the battery life of devices and the server as you are only sending stuff if the user is there.
by teivah | 2025-04-11 08:17:26+00:00
It's your opinion, nothing wrong with it. Let me try to see if I can make you change it at least a bit.

> The first paragraph is totally pointless - we are reading a book about 100 most common mistakes, obviously this mistake is very common, how did this increased the value?

There are different levels in terms of common mistakes, and this one was probably one that all the devs did at some point. So I think highlighting the fact it's a frequent one does make sense.

> Then we have another line that explaining what happens in the code, which is totally useless because the code is super trivial.

I have a rule: always explain the intention of the code. Even if it's 5 lines of code, it helps the reader to better understand what we will want to highlight.

> Then the code, with more explanations on the side as if the previous line was not clear.

The explanations on the side do not impact the size of the book so the argument doesn't hold. I did it in many code snippets to highlight where the reader needs to focus.

> I understand that book publishers feel they need to justify the price of a book by reaching the 300p mark in some or other way

This is more about guiding the readers, making sure the expectations are crystal clear and that they can follow me throughout an explanation. You judge it as a criteria to justify the price of the book, but it's not the real reason. At least not for my book and I'm sure it's the case for many others :)
by andersmurphy | 2025-04-11 08:18:06+00:00
Basically. It's generating the html for the game state every 200ms (regardless of the number of connected users) and pushing it down to any connected clients via SSE. The magic is Brtoli + SSE + a properly sized context window means it runs well even on 3G connections (you can play with this in chrome dev under the network tab throttle option).
by sdesol | 2025-04-11 08:19:09+00:00
> All in all, a prompt history would be really edicational if anyone thinks about doing something similar.

As we start to develop AI first programs, I believe we will need to start connecting LLM conversations to code, not only for educational purpose but for maintenance as well. I'm currently experimenting with what I call Block-UUIDs, and they are designed to make it easy to trace LLM generated code. You can see what I mean in the link below, which contains a simple hello world example.

https://app.gitsense.com/?chat=7d09a63f-d684-4e2c-97b2-71aa1...

Something worth noting is, you can't expect the LLM to properly generate a UUID. If you ask the LLM, it'll says it can, but I don't trust it to do it correctly all the time. Since I can't trust the LLM, I instruct the LLM to use a template string, which I can replace on the server side. I've also found LLMs will not always follow instructions and will generate UUID and how I handle this is, when the LLM stops streaming, I will validate and fix if needed, any invalid UUIDs.

How I see things playing out in the future is, we will alway link to LLM conversations which will give use the Block-UUIDs generated and by looking at the code, we can see what Block-UUID was used and how it came about.

Full Disclosure: This is my tool
by alexlarsson | 2025-04-11 08:19:31+00:00
As per https://gitlab.opencode.de/bmi/opendesk/info/-/blob/main/OVE...

This has:

* libreoffice online * element / matrix * jitsi video conferencing * nextcloud file/data synchronization * dovecot imap server * identity management via samba4 * xwiki - wiki

Seems nice.
by thyristan | 2025-04-11 08:20:33+00:00
I've used Solaris SMF back in the day, which is what systemd largely copied, but badly.

The major difference is, in SMF you specify services, their dependencies and whatever else you need. Then SMF looks at the whole desired system, computes the dependency tree and boot order, validates everything and writes a boot plan that can be executed in a static and deterministic fashion. You can look at the plan, execute that exact same plan each boot. You therefore know that if the system came up once using that plan it will again.

Whereas systemd does everything on the fly, the boot order is computed anew with each boot, all the services on the same tree level are started at the same time and just have to fight it out. Thus the actual boot order varies greatly with each boot and will fail randomly, wait randomly (hands up: who wasn't annoyed by the systemd-rememberance-minute-and-a-half popping up like an inopportune windows update?) and will be hard to debug because you just cannot reproduce anything that lead to that. Your boot will be littered with 'wait-for-something' units, 'sleep-for-10s-because-that-magically-makes-it-work' and additional dependencies to maybe clean up the tree which the maintainers forgot about. Sometimes intentionally because "systemd is about making it boot fast, and it works on my laptop".

It isn't all bad, but for systems that I need to boot and shutdown reliably, systemd is a step back even over init scripts because of the nondeterminism. You can "fix" things by just watchdog-rebooting when the system doesn't come up, and the downtime will just be a little longer. But it is annoying. And it is a design bug that will never be fixed.