MurphyA/hacker-news huggingface dataset:
by gmuslera | 2025-05-18 22:28:24+00:00
I wonder about the cultural effects at large getting the O(n²) most of the funding. That expansive, aggressive and not always safe behavior is promoted, while the slow but solid approach is not. That shapes the ecosystem and the people in it, in and out those companies.

Maybe it is a good way for short term profits, but that is just one metric. That kind of dynamic may be harmful in the long term, and in a really big scale.
by canvascritic | 2025-05-18 22:28:50+00:00
Not surprised to see this. Whats interesting to me in all this is the misplaced faith in emergent structure.

Roam bet on the idea that if you link enough atomic notes, structure will self-organize.

Which is such a weird fantasy if you spend a few minutes thinking about it. Try writing code like that or building a company or just about anything else! Why should notetaking and archive development be any different

It's clear you need some sort of editorial hand to create something maintainable and future proof. Like zettelkasten had Luhmann’s obsessive discipline behind it. Evidently roam had um. enthusiasm and javascript?

and yeah, it’s telling that the comparison is to IDEs. Imagine an IDE that dumped every snippet you typed into a graph database and expected you to recompile coherence out of it by browsing links. thats what roam felt like after the honeymoon.

In general most of Roam's target should want to lean harder into opinionated workflows. there’s a reason tools like linear or notion are winning. they’re structured enough to relieve cognitive load, flexible enough to adapt. Roam tried to be emacs, but turns out most users don’t want to configure their own productivity dialect.

also, lol at the idea of "automated taxonomy". The entire knowledge management industry keeps rediscovering ontologies like they’re new. We are probably going to reinvent OWL at some point and give it a name like "neuroschema" or something
by thomassmith65 | 2025-05-18 22:29:11+00:00
There are only 902 American billionaires*, but this 'Redditor' claims to know nine of them. The wording implies these were chance friendships. It is a big answer, but not a great answer.

*https://npr.org/2025/04/01/nx-s1-5345950/forbes-billionaires...
by shiomiru | 2025-05-18 22:29:27+00:00
> I think something like a reference implementation (Ladybird, Servo or even Vaev maybe?) getting picked up as the small-web living standard feels like the best bet for me since that still lets browser projects get the big-time funding for making the big-web work in their browser too.

A "standard" should mean there is a clear goal to work towards to for authors and browser vendors. For example, if a browser implements CSS 2.1 (the last sanely defined CSS version), its vendor can say "we support CSS 2.1", authors who care enough can check their CSS using a validator, and users can report if a CSS 2.1 feature is implemented incorrectly.

With a living standard (e.g. HTML5), all you get is a closed circle of implementations which must add a feature before it is specified. Restricting the number of implementations to one and omitting the descriptive prose sounds even worse than the status quo.
by rasz | 2025-05-18 22:29:37+00:00
Bleem didnt need 233MHz Pentium to emulate 33MHz MIPS CPU, it needed it for the geometry (rotation, scaling). GTE 90-300K triangles per second is a LOT LOT. Geometry was the bottleneck of PC games in mid nineties. For example contemporary Quake was heavily optimized to operate on as little geometry as possible (BSP), rendering up to ~1000 triangles per second while only ever touching up to maybe 10K? triangles (I dont want to research this down to instrumenting quake code/looking at map data, Google results suggest PVS leaves are as small as hundreds of triangles) in active Potentially Visible Sets (PVS) at any given time. Playstation 1 on the other hand DGAF and could rotate/scale/light whole levels on every frame with raw power of GTE.

MMX was meant for anything you would normally use traditional DSP (also fixed point). Intel envisioned software modems and audio processing, in reality it was criminally underused and fell into 'too much effort for little gain' hole. Intels big marketing win was paying Ubi Soft cool $1mil for POD "Designed for MMX" ad right no the box https://www.mobygames.com/game/644/pod/cover/group-3790/cove... while game implements _one optional audio filter_ using MMX. Microsoft also didnt like Intel's Native Signal Processing (NSP) initiative and killed it https://www.theregister.com/1998/11/11/microsoft_said_drop_n...

MP3 - you could decode on Pentium ~100 so why bother, MPEG Pentium ~150 will play it flawlessly as long as graphic card can scale it in hardware. I would love to see the speed difference decoding MPEG with ffmpeg between Pentium 166 with and without MMX. Contemporary study shows up to 2x speedup in critical sections of image processing algorithms but only marginal gains for mp3/mpeg cases https://www.cs.cmu.edu/~barbic/cs-740/mmx_project.html

>drop the emulation CPU usage to a halt

Playstation 1 doesnt support MPEG.

Now could you implement GTE with MMX? Certainly yes, but again why bother when already 166-233MHz CPU is enough to accomplish same thing with integer unit alone.
by tasuki | 2025-05-18 22:29:45+00:00
> Do it! One of those life hacks that's really not that expensive and makes your life better with 0 cognitive load after initial setup.

I'd love to, actually. But where do I even start? How to choose the solution? I have some old blinds which leak a lot of light and wouldn't mind replacing them. Guess my only hard requirement is for the blinds not to connect to the internet.
by sebws | 2025-05-18 22:29:47+00:00
You can fix them both in one. In your local network you host a local DNS, in my case I’m using pihole. It has records which point to the local IP of a reverse proxy. With this setup you can have SSL for your domain names on your local network.

To make it then work outside your local network, in tailscale settings you use “split dns” to set your DNS to be the IP of your pihole in the tailnet for your domain. Now when you try hit your local domains you should receive the same local IPs that you do at home. Then in the tailscale route settings of your machine hosting the reverse proxy you make it advertise the subnet of those local IPs. Now when you receive the local IPs your devices using the tailscale VPN should go to your home server with SSL and no external DNS.

Hope that’s somewhat clear enough
by ghiculescu | 2025-05-18 22:29:49+00:00
The real issue is wage expectations. In 2 ways

1) For the last decade many juniors have had unreasonable salary expectations that have often still been met. Now there is an alternative that's a lot cheaper and doesn't come with an attitude.

2) It's generally agreed that for the first year or 2 in your career you aren't that useful; after that you start to add lots of value quickly. But salary expectations don't double when you go from a junior to an intermediate - maybe they go up 25%. It's clearly much better value to hire only seniors if you can find them.

I'm not saying these are right or wrong but a whole article about juniors that doesn't mention wages, and just tries to implore companies to "do the right thing", misses the point.
by jopsen | 2025-05-18 22:31:37+00:00
I don't understand checks, but isn't it just paper that allows transfer of money to the person the check is addressed?

If so, what does it matter that someone else cashed it? Such transaction is unauthorized, it's a matter between the bank and the thief, and doesn't concern Mr. Handy.

What concerns Mr. Handy is Paychex refusing to honor the check. Presumably they are claiming he authorized transfer of money to a person that neither Paychex or Mr. Handy can identify.

Probably PayChex has a weak claim there :)

Again, I don't fully understand checks -- but my impression is that because a check is (often) addressed to a person, they are actually pretty safe. I'm assuming fraud is always the responsibility of the bank that failed to verify addressed person. Hence, why cashing a 100k check probably isn't easy to do -- stealing to check is probably the easy part. Cashing it without getting caught is the impressive part.

That said: In practice, I'd never want to use a check.
by codekansas | 2025-05-18 22:31:57+00:00
Actually, we use COTS components for basically everything, that's how the price is so low. It's just that we do a lot to make sure we understand how everything works together from software to hardware

IMO humanoid companies do make a lot of big claims which is why it's important to make everything open-source. Don't have to take my word for it, can just read the code
by zeta0134 | 2025-05-18 22:32:15+00:00
> Obsidian was a great tool for me personally for a long time. But I felt frustrated when I wanted to access my notes on my phone while on-the-go and saw that I had to pay for this feature

On Android, I solved this problem quite simply by pointing Obsidian's mobile app at a syncthing folder, which cheerfully communicates with my workstation (and about a dozen other devices I own) and keeps things up to date. Works way better than I expected it to. Honestly the most infuriating part is that Google seems to have decided that apps like syncthing aren't welcome on the Play Store anymore, leaving the maintenance of that particular app up in the air. But the point here is that Obsidian can point to any folder, and the syncing task is totally separate. It's nice to have the convenience of their hosted option, but it's by no means the only solution to that problem.
by CuriouslyC | 2025-05-18 22:33:10+00:00
Nope, it's an internal company tool to build high performance distributable container images based on a manifest of services for resource constrained edge devices with an installer that manages installing, configuring, removing, auto-updating and daemonizing the container process across a variety of OS targets.

The container images also have significant logic for interfacing securely with the private company network and upstream services given on-prem or edge deployment.
by canvascritic | 2025-05-18 22:35:39+00:00
This is a clever hack and a cute abuse of SQL joins to brute-force what’s essentially a 2-ply MDP over a finite space.

The core idea btw of using precomputed transition/score tables to simulate and optimize turn-by-turn play is a classical reinforcement learning method

What would be interesting here is to flip it: train a policy network (maybe tiny, 2-layer MLP) to approximate the SQL policy. then you could distill the SQL brute-force policy into something fast and differentiable.

i’d love to see a variant where the optimizer isn’t just maximizing EV, but is tuned to human psychology. e.g., people like getting Yahtzees more than getting 23 in chance. could add a utility function over scores.

Anyway this is a great repo for students to learn expected value optimization with simple mechanics.
by jbmsf | 2025-05-18 22:36:31+00:00
We have one junior dev in a team about a dozen. They have had other roles with us, both at the current job and previous ones. We know they are smart, reliable, and motivated. It's a no brainer to spend time on training because, combined with the skills from other roles, they are likely to have a lot of leverage.

But it's hard to imagine committing to the training without the history.
by sokka_h2otribe | 2025-05-18 22:36:44+00:00
Mounted internal to the window frame, not external, works better for me. Internal can ride tighter to the window, so light can't go out the edges. With external frame mounting, you need much wider shades.

If the fabric itself isn't blocking light... You need better material. I have only ever had problem with light leakage in the edges, not in the fabric material.

I believe 'blackout thermal shades' is what to look for.
by scubbo | 2025-05-18 22:37:35+00:00
> Again, a little bit odd considering that the author is technically savvy enough to write an entire PKMS but didn't seem to consider that you can just check your markdown notes into a git repository and sync with the native android/iOS Obsidian app on a mobile device.

Even simpler, I have mine in a Dropbox folder. Felt very strange for _this_ to be the straw that broke the camel's back for the author.

Nonetheless, very glad for them that they enjoyed and learned from the experience of building a replacement!
by mgh95 | 2025-05-18 22:39:50+00:00
> To be fair, republicans have been saying SS will go insolvent from the moment it was written into law. It's been almost a century. After a certain point, we have to call a spade a spade and just admit there's a lot of people ideologically opposed to SS and that's it.

Actually, SS was going to go insolvent when it was first written. The benefits were far too generous for what was affordable, even with the population pyramid at the time.

Then it actually was going to go bankrupt and the benefits were reduced in real dollars, because it turned out at one point we were dramatically overestimating inflation, and we couldn't afford it.

If social security was an actual insurance or pension plan, it would have been shut down by a state regulator or the PBGC. It's a horrifyingly bad plan for the simple reason that it's structurally insolvent. Even the concept of "uncap the tax" just kicks the can down the road: you now need to pay those people benefits.

The issue is we don't actually know what we want from it, which I alluded to in another comment. If we want some sort of "social insurance" plan where you just get back a portion of what you pay in, we have it and it's functionally in default. If we want a social safety net, we need to have a serious discussion about means testing.
by kristianc | 2025-05-18 22:39:53+00:00
> Indeed, companies that try to staff only with experienced devs face a pipeline problem. Without juniors today, there are no seniors tomorrow.

This one seems like a classic Prisoner's Dilemma. Defecting (hiring only seniors) is rational in isolation, but if everyone defects, everyone loses. What incentive for a smaller company to hire and invest in training the junior if in two years they'll leave for a larger company anyway.
by maxgashkov | 2025-05-18 22:39:53+00:00
Please don't read too much into it. Outside of the peak demand at least here, in Kansai area, gates will close when they sense you approaching to indicate that you actually need to touch the card or insert a ticket. They stay open only if there is a continuous flow of passengers going one after another.

Another interesting fact is that gates' actuators are not super rigid and it's completely possible to force enter not realizing in time your card has failed (you will be approached by station attendant though).

To summarize, culture may play a role but the main differentiator is the high traffic volume.
by refulgentis | 2025-05-18 22:40:22+00:00
Thanks man this is incredible work, really appreciate the details you went into.

I've been chewing on if there was a miracle that could make embeddings 10x faster for my search app that uses minilmv3, sounds like there is :) I never would have dreamed. I'll definitely be trying potion-base in my library for Flutter x ONNX.

EDIT: I was thanking you for thorough benchmarking, then it dawned on me you were on the team that built the model - fantastic work, I can't wait to try this. And you already have ONNX!

EDIT2: Craziest demo I've seen in a while. I'm seeing 23x faster, after 10 minutes of work.
by nine_k | 2025-05-18 22:40:30+00:00
The examples of bad, overly complex types are indeed unpleasant and unwieldy: colossal, highly nested types with long, cryptic lists of type parameters.

I think this speaks of lack of abstraction, not excess of it.

If your type has 17 type parameters, you likely did not abstract away some part of it that can be efficiently split out. If your type signature has 9 levels of parameter type nesting, you likely forgot to factor out quite a bit of intermediate types which could have their own descriptive names, useful elsewhere.
by mshook | 2025-05-18 22:40:34+00:00
That's my experience as well in 2 different companies where we went from 2 E15K to 2 E25K because it was "cheaper" than rewriting who knows how much code, for how long and at what cost

At the other one, we jumped from 2 25k to 2 M9000-64 for the same reasons...
by mjr00 | 2025-05-18 22:40:41+00:00
IMO you're way overestimating how much hand-holding juniors need. Juniors coming out of college have a decent grasp of basic tooling like git, IDEs, debuggers, and yes AI coding assistants. We just hired two recent graduates and they were both getting meaningful work done independently within 2 weeks. They still need code review and guidance, but it's not like they need a senior watching over their shoulder telling them how to write a function in python.

You're going to have to teach them about the unique frameworks and processes at your company, but you have to teach seniors about those things too. Unless you're doing something really unique, juniors don't need to tie up senior devs "for months". Remember they can help each other, too.
by mmooss | 2025-05-18 22:42:21+00:00
> Yes there were books before Roget's that contained the word “thesaurus” (treasury) in their title, including at least one dictionary. But none of these earlier books caused the word “thesaurus” to start to mean a particular kind of book ...

FWIW, OED has a separate sense for, "A ‘treasury’ or ‘storehouse’ of knowledge, as a dictionary, encyclopædia, or the like." Is that a particular kind of book or a general concept? I don't know.

Its usage extends past Roget - e.g., (1862) "In a complete thesaurus of any language, the etymology of every word should exhibit both its philology and its linguistics." and (1906) "This work is one of five thesauri published under the auspices of Kang Hsi, the second Emperor of the present dynasty."

And to be complete, a newer usage dates to 1957, "A classified list of terms, esp. key-words, in a particular field, for use in indexing and information retrieval.".

> I did in fact look at Etymonline

Etymonline is the admiral work of one person. If you can get access to the OED (and if you love etymology, etc., it's essential), you'll generally find much more, and much more reliable work done by teams of professional over ~150 years.

Etymonline's About page is incredible - I'm going to submit it:

https://www.etymonline.com/columns/post/bio

> the comment by folex remains weird — for one thing, it uses “stereotype” where “meaning” would be more appropriate.

Not weird at all - folex says they don't speak English natively. Stereotype makes sense in a way, but is not the word a native speaker would choose. I'm the same in some languages.

folex's question is maybe the most interesting part of the discussion.
Show HN: AI web scraper (no selectors, $2/1k pages, built by 1 dev)
by zeeb0t | 2025-05-18 22:42:22+00:00
Hi HN - I’m the solo founder of InstantAPI, a web scraping API that turns any webpage into structured JSON without HTML selectors or coding. I built it because I was frustrated with scraping tools that required setup, CSS parsing, or came with confusing pricing and limits.

InstantAPI is designed to be radically simpler and more scalable:

- You send a URL and the data structure you want (via example or JSON schema) - it returns just that, parsed by AI.

- It handles JavaScript, CAPTCHAs, and rotating proxies automatically.

- You can /scrape any page, extract /links by description, automatically find /next page in paginated results, and /search Google SERPs.

- No per-feature pricing - just a flat $2 per 1,000 fully scraped pages, including all rendering and AI parsing.

- It includes a no-code protocol (MCP) that lets LLM agents request structured data directly, without wasting tokens on markdown or full page content.

I built this alone using AI tools and bootstrapped it all - and in testing it’s outperformed a few VC-backed tools that charge 10x more or require selector logic and scraping scripts.

Would love your thoughts, questions, or feedback. Happy to share tech details or walk through how it works. Thanks!
by mmcconnell1618 | 2025-05-18 22:42:23+00:00
The reproduction cost for the 2nd copy of media is near zero just like software. Handmade or customized furniture is more expensive because it takes more labor for each copy. With media, the cost is fixed, even if it is large. Once the first version of handmade media has been created, the owner is incentivized to get as much value from it as possible. The optimal demand curve is probably not a few rich people paying as much as possible.
by canvascritic | 2025-05-18 22:43:02+00:00
Thanks for the reply

IME the COTS angle cuts both ways. It brings costs down and makes iteration faster, but whats the moat then?

if the value is in integration, that’s fine, but integration is fairly fragile IP. Open source is good reputationally but accelerates the diffusion of your edge unless the play is towards community+ecosystem lock-in or being the canonical reference impl (cf. ROS, HuggingFace)?
by conartist6 | 2025-05-18 22:44:02+00:00
Fun fact, I once worked in just such an IT back office for a pharma. But you're right of course, for them this stuff isn't the product, it's just a infrastructure needed to be able to keep people focused on building the product.

I don't follow the logic that undermining that infrastructure is therefore harmless. Stop keeping the lights turned on regularly, and your researchers are unlikely to keep showing up to their jobs. Stop maintaining the IT infra and eventually it will be kludge that makes people hate using it. Stop supporting HR and eventually when your employees need HR they won't trust HR.

In any company all the employees know there are two sets of values at play. There's the declared values, which get printed up with nice graphic design, and then there's what the company actually incentivizes and shows that it cares about through its actions. Show through your actions that you don't care (despite saying you do) and people will get the message you say you aren't sending.

With these kinds of change-ups the message is "if AI isn't the solution, then you're the problem"
by vidarh | 2025-05-18 22:45:16+00:00
Separating out blocks this way is pretty meaningless. Blocks are a syntactical construct that can be optimized a certain way, and is in MRI.

You can obtain a value of a block by naming it, and when you do, what you obtain is a proc.

A Ruby implementation could if it chooses make any block a proc, because you shouldn't be able to tell the difference without extensive contortions (e.g. you could iterate over ObjectSpace and show that a block causes the creation - or not - of an object of the Proc class). And in-fact my (woefully buggy and incomplete) Ruby compiler prototype does just that.