MurphyA/hacker-news huggingface dataset:
Show HN: Kraa.io – Markdown editor for notes, blogs, chats
by levmiseri | 2025-05-21 05:22:24+00:00
Hi HN! Excited to share the public beta of Kraa – a web-based markdown editor.

It's aiming to be distraction-free and has strong separation of the document's styling from the experience of writing it — while still alowing for rich customization. Example of a leaf with custom styles: https://kraa.io/kraa/examples/echolibrary

Curious about your feedback in hopes of improving Kraa before the planned launch later this year.
by alexey-salmin | 2025-05-21 05:22:40+00:00
While there are similarities, I think it's still very different. Default by itself doesn't make the debt disappear, you just stop serving it for a while. Then you may negotiate some cuts with creditors in exchange for a promise to repay the rest but there's no way they just forgive 100% of it, this makes no economic sense. If you want to get out of the debt completely you need not only a default but bankruptcy and dissolution which is rather painful at the state level. An example would be the Russian revolution and civil war where among other things the Bolsheviks refused to recognize tsar's debts claiming it's a new state now.
by xitang | 2025-05-21 05:22:42+00:00
I guess it increases your shots if the company is actively hiring. I can't speak to others, but that is actually how I and some of my friends land remote jobs, just by cold applying. And you get more chance if you apply early as soon as the post is up the first day or two.

Of course, as you said, it is more effective if you have connections or have gotten cold outreach by recruiters. But my point is that cold applying still works and quite some folks land their jobs this way.
by Gustomaximus | 2025-05-21 05:23:39+00:00
> I'd love to make that I think would honestly be worth a small subscription ($5/mo maybe)

I buy a few things for web dev side. I'm a sample of one but I avoid /mth pricing for most stuff if I can and prefer annual. Maybe me but the 'another monthly subscription' feels annoying as much as I respect I want this for my own business.

Will almost always start using free first then pay if its business beneficial to feature enrich of scale.

I think your best focusing on free and getting users. Once you hit a threshold you can ask for some $$ and some people will feel that's reasonable. If you start paid I suspect you'll have little chance of growth unless you come out with something truly amazing.
by miki123211 | 2025-05-21 05:24:26+00:00
TBH, I feel like regexes would be much easier to understand in a more literate form with standard syntax. Something like:

user_part = re.repeat(re.alnum | re.chars(".-_+")) domain_segment = re.repeat(re.alnum) domain = re.list(domain_segment,separator=".",minimum=2) email_address = user_part + "@" + domain

Where, in a real program, `domain` would be defined in a "standard library of constructions" that you can just import and re-use in more complicated regexes.

Something like this can be implemented in any language with operator overloading, no DSL required. Without operator overloading, the syntax would be a bit more awkward, but still nicer than the current regexp madness.
by anovikov | 2025-05-21 05:24:28+00:00
Can't upvote this enough! Most people habitually build those overcomplicated things, and THEN base them on clouds where they will be 40x-200x more expensive to run than on dedicated machines, as a result, getting things that are fragile, expensive to build, and extremely expensive to run.

Do a serious calculation of a load you can hope to have, what it will take to process all of it, and build a simple solution and deploy it on a single dedicated machine of appropriate specs in a good datacenter, or if it requires low latency, several of them with simple DNS-based load balancing, and you will get your thing much sooner, and much cheaper, and a good dedicated server or one per region, will be enough for vast majority of startups.

I recently had a laughable story. A client of mine wanted to build an AI setup to analyse videos that come from security cameras. A security camera is 24x7 by definition. There is no justification whatsoever to use clouds for that: you won't suddenly have 100x the load in minutes if your load comes from fixed security cameras that operate 24x7. So 90%+ of what you pay for a cloud is a direct waste. It took days of painful discussions to explain that.
by kazinator | 2025-05-21 05:25:24+00:00
> All the value is stored up in the team, the logic and the design, and very little of it is in the code itself.”

I regularly use a device with firmware that is probably dated around 1989.

Yes, the value is the code on that EPROM chip. The team is long gone.

This article's author has never used a program that was well developed, documented and finished, so that all that is left it to use it.

Or any other great piece of engineering that was done and dusted, and didn't need a perpetual team to prop it up.
by chadaustin | 2025-05-21 05:25:33+00:00
It did, especially as the drives got older and shrieky. Plus the floppy and optical drives spinning up. But... funny story, when I moved to Silicon Valley, SSDs didn’t exist yet, but compile times were IO-bound. So my company bought everyone Dell workstations with two 15k RPM SAS drives in RAID 0. When I’d kick off a build, the desk would start vibrating under my fingers.

It made everything feel real!

Later, the company switched new employees to 3x 10,000 RPM SATA drives. Not quite as grindy, but still loud.
by extrabajs | 2025-05-21 05:26:45+00:00
I see what you mean. But would you not experience the same sort of issue simply from redefining types in the same way? It seems this kind of destructive operation (whether on types or terms) is the issue. As someone who's used to ML, it seems strange to allow this kind of thing (instead of simply shadowing), but maybe it's a Lisp thing?
by CJefferson | 2025-05-21 05:26:45+00:00
But, I wonder how much it would reduce performance, if we only have to pick a value the first time the memory is read?

I would imagine there isn't that many cases where we are reading uninitalised memory and counting on that reading not saving a value. It would happen when reading in 8-byte blocks for alignment, but does it happen that much elsewhere?
by protocolture | 2025-05-21 05:27:34+00:00
>Screen reader accessibility on Mac Os is stagnating

Apocryphally, a lot of this was apparently developed at the direct insistence of Steve Jobs who had some run ins with very angry visually impaired people who struggled to use the early iphone/ipad.

That said, my source for this is one of the men who claims to have spoken to Mr Jobs personally, a visually impaired man who had lied to me on several fronts, and was extremely abusive. However I couldn't find anyone inside apple management or legal who would deny his claim. And he seemed to have been set the expectation that he could call the apple CEO at any time.
by beeflet | 2025-05-21 05:28:18+00:00
>health insurance CEOs a little richer.

To be honest, I don't even think it's just the people at the top profiting. The whole system is like designed to create as many useless jobs as possible. If I want to get a blood test, I have to do like 4-5 referrals before I can just get my test done. If I want a diagnosis, I have to wait a week to talk with a doctor who is going to push sponsored medication anyways. I'm better off doing the research myself and buying drugs through telehealth service or the greymarket.

You would be better off just having a free market where consumers figure out what doctors/nurses/pharmaceuticals are safe on their own, and you strip intellectual property protections and legal requirements for prescription drugs. It shouldn't cost a million dollars to get an x-ray. It does because there are high legal barriers that allow rent-seekers to creep in.
by fodkodrasz | 2025-05-21 05:28:37+00:00
Your link is the most authentic LaTeX experience for beginners: fonts with no preview/screenshot on their homepage... LaTeX users already know it, why make screenshots :D

The blog post does this some justice though, the author does live in the current century, and does have nice examples.

/me is former LaTeX user from uni, not overly fond of it, for usability issues not unrelated to its legacy.
by alexey-salmin | 2025-05-21 05:28:49+00:00
Yes, but it's a temporary turbulence that lasts for a few years, then you can rebound. The debt on the other hand can last for decades taxing the economy more and more. If the cost of servicing the debt crosses a certain threshold there can be no rebound, not without a default.

Effectively when printing money you reset both the debt and the savings. If your debt is much bigger than savings it becomes a good deal.
by toast0 | 2025-05-21 05:29:08+00:00
Thanks for that ... I got a little bit nerd sniped. I haven't gotten to the bottom of this one, but I dug a bit.

On my machine dual-socket Intel(R) Xeon(R) CPU L5640 running 14.2-RELEASE-p3, I found similar differences in speed with the system openssl (3.0.16) and rustls from head (795ae1f5d0435dbc80dac04ec147e85d4970563c).

Openssl 3.0.16 (FreeBSD base 14.2-RELEASE-p3) handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 1275.38 handshakes/s (512 / 0.401448) Rustls: (795ae1f5d0435dbc80dac04ec147e85d4970563c) handshakes TLSv1_3 EcdsaP256 TLS13_AES_256_GCM_SHA384 server server-auth no-resume 1998.39 handshakes/s

I looked at a lot of stuff, but no real smoking guns. There's a difference in behavior between the two handshakes, but it's not that different. openssl-bench generates 4 application packet wrappers for the 'first flight', whereas rustls generates one which contains the 4 messages of encrypted extensions, server cert, server cert verify, server handshake finished; this seems like it could be significant, but I couldn't easily undo it to test. Also, openssl-bench generates 2 more application packets after receiving the client handshake finished; I'm pretty sure those are tickets, but turning off ticket generation was ~ 1% improvement, so whatever.

However, one of my friends suggested aws-lc might just be super fast, so I ran openssl-bench linked against that and saw a big improvement. So I went ahead and tried with all the options from FreeBSD pkg. Here's my list of results:

aws-lc-1.48.4 (freebsd pkg) handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 2478.93 handshakes/s (512 / 0.206541) openssl111-1.1.1w_2 (freebsd pkg) handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 1773.9 handshakes/s (512 / 0.28863) openssl-3.0.16,1 handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 1333.5 handshakes/s (512 / 0.383951) openssl31-3.1.8 handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 1387.69 handshakes/s (512 / 0.368958) openssl32-3.2.4 handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 1353.54 handshakes/s (512 / 0.378267) openssl33-3.3.3 handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 1406.62 handshakes/s (512 / 0.363994) openssl34-3.4.1 handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 1393.34 handshakes/s (512 / 0.367463) openssl35-3.5.0.b1 handshakes server TLSv1.3 TLS_AES_256_GCM_SHA384 1155 handshakes/s (512 / 0.443289) boringssl-0.0.0.0.2025.03.27.01_1 did not manage to get a matching cipher libressl-4.0.0_1 (does not compile, don't care to fix)

So.... in my testing, on my machine, rustls is faster than openssl-bench linked against openssl and openssl 1.1.1 is faster than openssl 3.x, but openssl-bench linked against aws-lc is faster than rustls.

I'll try to get ahold of the authors tomororow and suggest they add openssl-bench linked against aws-lc to their test.
by natmaka | 2025-05-21 05:29:43+00:00
Because a mix of renewables deployed on a continent (most grids tend nowadays to extend on whole continents because it enhances continuity of service while offering many ways to optimize for emissions, costs...) is better (cheaper, less dependency towards any fuel, less risk related to accidents/neglects/mistakes/war/terrorism/hot waste/... ...).

GAFAM nuclear are mere announcements, intentions.

On the other front most already progress. https://www.reuters.com/sustainability/climate-energy/micros...

https://www.reuters.com/sustainability/climate-energy/micros...
by al_borland | 2025-05-21 05:30:11+00:00
I also find the elaborate wind down routines to be overdone, and most of the ones online seem very performative. Though I do think general lifestyle (diet, activity, etc) likely play a large role and could be looked at through the lens of sleep hygiene.

How is the headband going to increase restorative sleep? Is it expected to compensate for lifestyle issues that could be leading to many issues that people have? You mention you don’t have the solution yet, is the headband more of a hypothesis at this point?
by strogonoff | 2025-05-21 05:30:16+00:00
> As an example, when people use ChatGPT and get an image back, most don't think "oh, so the LLM called out to a diffusion API?" - they just think "oh chat GPT can give me an image if I give it a prompt".

Note: your first part skipped entirely the process of obtaining the data for and training of both of the above, which is a crucial part at least on par with what called which API.

I don’t think it’s unreasonable to expect people to build an intuition for it, though. It’s healthy when underlying processes are understood to at least a few layers of abstraction, especially in potentially problematic or morally grey areas.

As an analogy to your example, you could say that when people drink milk they usually don’t think “oh, so this cow was forced to reproduce 123 times with all her children taken away and murdered so that it makes more milk” and simply think “the cow gave this milk”.

However, like with milk, like with the ML tech, it is important to realize that 1) people do indeed learn the former and build the relevant intuitions, and 2) the industry is reliant on information asymmetry and mass ignorance of these matters (and we all know that information asymmetry is the #1 enemy of free market working as designed).
by valleyer | 2025-05-21 05:33:34+00:00
Ah yes, I've seen that occasionally too, but it hasn't been a big enough issue for me to block adoption in a non-productized tool.

I actually implemented the STT -> LLM -> TTS pipeline, too, and I allow users to switch between them. It's far less interactive, but it also gives much higher quality responses.

Best of luck!
by vkou | 2025-05-21 05:33:36+00:00
> In isolation an $8,000 EV looks cheap to us earning a salary in the West, but that is still 1.7x the median household income (so half of all Chinese households have even less money to spend).

You're looking at China the wrong way. A better way to view it is as two countries - a developed urban one, tied to a developing, rural one.

The latter is currently bigger than the former, so it drives any median wealth metrics down. A lot.

But for the past 40 years, the developing part of it has been shrinking - while the developed part has been growing. On that kind of trajectory, that median divide of wealth is currently where the 60th percentile was a decade ago, and in a decade, will be where the 40th percentile is today.

Where does the median urbanite in China stand, compared to her Thai or Malaysian counterpart?
Show HN: What Are People Doing Now?
by mazzystar | 2025-05-21 05:33:59+00:00
Hi, I'm the developer. Yesterday, I came across the website https://humans.maxcomperatore.com and was inspired to create a similar one where you can write about what you're doing right now and share it with others, while also seeing what people around the world are doing at the same time.

Seeing what others are doing online at the same time gives me a sense of companionship. Have fun!
by xitang | 2025-05-21 05:36:54+00:00
Thanks again for your note! You are totally right that something is wrong. I took a closer look and fixed 2 issues that should massively improve the performance now if you would like to try again.

Below are more details--- Issue 1. Table with a link overlay in every cell I initially used an off shelf table component to move fast and didn't take a closer look at the implementation. It turned out this component renders a link overlay in every cell to allow user to click table row to be taken to the job link. So 400 jobs with 6 rows end up rendering 2400 link overlays.

The reason it attaches a link overlay to a cell instead of a row is due to a well known bug with Safari, where you can't use `position: relative` in table row `tr` https://bugs.webkit.org/show_bug.cgi?id=240961. Attaching it to each cell works for small number of rows but causes performance issues with large number of rows.

I fixed it by rolling out my own table with css grid instead. It is not as semantic as it no longer uses table, thead, th, tr, td, but thanks to Safari, it is a tradeoff I am okay with.

Bug 2. Unnecessary re-render on Zustand store rehydrate I used Zustand store to filters preference and save it to browser's local storage. On page load, it fetches from local storage to update the state or store rehydrate . I didn't use shallow comparison initially and caused the table to render even if the prev and new state is an empty array due to comparison by reference. Using shallow comparison minimize an uncessary render.
by tastyfreeze | 2025-05-21 05:37:03+00:00
Whatever people buy. If you are looking at the dollar value of gold you have to look at what a dollar would buy that year. That is the value. You will find that a similar amount of gold buys the same amount of things throughout time regardless of the dollar price.

Another way to say that is that the dollar price of gold is correlated with the cumulative inflation of the dollar0 over time.
by wickedsight | 2025-05-21 05:37:26+00:00
Since the first GenAI started popping up, many people have glossed over the fact that they are just tools. All the anger from artists and keyboard warriors completely ignored the fact that you still need skill and time to make something good with these tools.

Artists aren't going to be replaced by AI tools being used by me on my iPhone, those artists were already replaced by bulk art from IKEA et al. Artists who reject new tools for being new will be replace by artists who don't. Just like many painters were replaced by photographers.
Tell HN: Maybe the Matrix Was Right
by babyent | 2025-05-21 05:38:08+00:00
This is just a casual conversation about AI and implications. Now that we can make AI videos and the record of history is about to become obsolete, perhaps the Matrix was right.

The 90s were the peak of human existence. We didn’t have insane technological progress and things in general seemed quite cohesive. It was a human centric period.

Countries were developing and moving their populations out of poverty. We had good original movies and we weren’t making the 4th remake in the same universe.

Music was meshing in new ways but again, it was mostly original and fresh.

Now, where will the joy of creativity be? Anyone can make any reality they want. Pretty soon, we might be able to make our own realities.

So maybe the Matrix was right. We are all in a simulation which will lead to the machines overtaking us, and we will land back in the simulated reality over and over again.

The next Matrix will fix the previous one’s defects. Forever.
by xitang | 2025-05-21 05:40:47+00:00
Sorry for the lag. I just fixed 2 bugs (table and store hydration) that should massively improve it if you would like to try again. Thanks.

I shared the root cause in a sibling comment and am forwarding it here: Below are more details---

Issue 1. Table with a link overlay in every cell I initially used an off shelf table component to move fast and didn't take a closer look at the implementation. It turned out this component renders a link overlay in every cell to allow user to click table row to be taken to the job link. So 400 jobs with 6 rows end up rendering 2400 link overlays.

The reason it attaches a link overlay to a cell instead of a row is due to a well known bug with Safari, where you can't use `position: relative` in table row `tr` https://bugs.webkit.org/show_bug.cgi?id=240961. Attaching it to each cell works for small number of rows but causes performance issues with large number of rows.

I fixed it by rolling out my own table with css grid instead. It is not as semantic as it no longer uses table, thead, th, tr, td, but thanks to Safari, it is a tradeoff I am okay with.

Bug 2. Unnecessary re-render on Zustand store rehydrate I used Zustand store to filters preference and save it to browser's local storage. On page load, it fetches from local storage to update the state or store rehydrate . I didn't use shallow comparison initially and caused the table to render even if the prev and new state is an empty array due to comparison by reference. Using shallow comparison minimize an unnecessary render.
by globnomulous | 2025-05-21 05:43:35+00:00
> Anyone who has widely read topics across philosophy, science (physics, biology), economics, politics (policy, power), from practitioners, from original takes, news, etc. ... has managed to understand a tremendous number of relationships due to just words and their syntax.

You're making a slightly different point from the person you're answering. You're talking about the combination of words (with intelligible content, presumably) and the syntax that enables us to build larger ideas from them. The person you're answering is saying that LLM work on the principle that it's possible for intelligence to emerge (in appearance if not in fact) just by digesting a syntax and reproducing it. I agree with the person you're answering. Please excuse the length of the below, as this is something I've been thinking about a lot lately, so I'm going to do a short brain dump to get it off my chest:

The Chinese Room thought experiment --treated by the Stanford Encyclopedia of Philosophy as possibly the single most discussed and debated thought experiment of the latter half of the 20th century -- argued precisely that no understanding can emerge from syntax, and thus by extension that 'strong AI', that really, actually understands (whatever we mean by that) is impossible. So plenty of people have been debating this.

I'm not a specialist in continental philosophy or social thought, but, similarly, it's my understanding that structuralism argued essentially the one can (or must) make sense of language and culture precisely by mapping their syntax. There aren't structulists anymore, though. Their project failed, because their methods don't work.

And, again, I'm no specialist, so take this with a grain of salt, but poststructuralism was, I think, built partly on the recognition that such syntax is artificial and artifice. The content, the meaning, lives somewhere else.

The 'postmodernism' that supplanted it, in turn, tells us that the structuralists were basically Platonists or Manicheans -- treating ideas as having some ideal (in a philosophical sense) form separate from their rough, ugly, dirty, chaotic embodiments in the real world. Postmodernism, broadly speaking, says that that's nonsense (quite literally) because context is king (and it very much is).

So as far as I'm aware, plenty of well informed people whose very job is to understand these issues still debate whether syntax per se confers any understanding whatsoever, and the course philosophy followed in the 20th century seems to militate, strongly, against it.
Ask HN: AI tool for editing mockup screenshots (not code or Figma gen)
by jerrygoyal | 2025-05-21 05:44:06+00:00
I'm searching for an AI tool that can edit existing mockup screenshots directly. I'm not interested in tools that generate code or Figma files from images—just looking for solutions to make changes to screenshots as images (e.g., change button style, edit text, move UI elements, etc.). Any recommendations?
by yorwba | 2025-05-21 05:45:07+00:00
The name "per-layer embeddings" is all we have to go on, and there are currently no published papers (that I'm aware of) using any similar mechanism, so, yes, it's a huge leap from a paper that doesn't mention per-layer anything.

It's fine to speculate based on the name, but don't pretend that it's a known technique when it clearly isn't.