MurphyA/hacker-news huggingface dataset:
by Karrot_Kream | 2025-05-22 18:31:58+00:00
> An easy way to solve for this is customization -- if no two users have the same "algorithm" powering their feed, it becomes hard for anyone to do this, because perhaps one user's algorithm filters out anything tagged with politics, or with a low Flesch–Kincaid score, or non-text posts, etc.

The problem, and where I strongly agree with the parent's statement that "I feel like social media has changed human behavior", is that the users themselves seek the engagement. Content creators want feedback about their content. You can codify that as "views", "likes", or whatever, but the whole problem here is fundamentally that most creators try and pursue strategies that increase whichever metric they are tracking to get value out of their posting.

I watched Bluesky grow up and become a "real network" and once Bluesky hit a certain scaling point it became the exact same as all the other supposed algorithmic-engagement optimized sites. Posters started posting snippy, sneery comments because it made the Like count go up.

> perhaps one user's algorithm filters out anything tagged with politics, or with a low Flesch–Kincaid score, or non-text posts, etc.

Zuck talked about how Threads specifically filtered out political content [1] and how that decision was reversed [2]. It turns out that users didn't like filtering out political content even though as most of us know, it tends to turn into dunking competitions online.

So I largely agree with what the parent said. The expectations in the game have changed. Content creators want big number to go up. People want to dunk on each other because it's fun and feels righteous. No algorithms or manifestos seem to change this fundamental change in the way folks post and engage with social media. Maybe a protracted education campaign can, though.

[1]: https://www.npr.org/2024/03/26/1240737627/meta-limit-politic... [2]: https://www.techpolicy.press/transcript-mark-zuckerberg-anno...
Ask HN: Software to Render Font to PNG
by delduca | 2025-05-22 18:33:00+00:00
Long story short: I adapted a codebase from over 20 years ago that used bitmap fonts in this format [1], and I really like it because I use it in my 2D engine. Bitmap fonts are more efficient and don’t require memory allocation for new texts (yes, I could render all glyphs into memory and draw them the same way as bitmap fonts), but I think bitmap fonts offer more artistic freedom. I’d like to know if any of you know of a tool or software that can generate fonts similar to the one in the image below.

Thanks!

https://imgur.com/a/S8GDnEC
by mrtksn | 2025-05-22 18:33:17+00:00
How so humans need to know about all this? Isn’t it the exact use case where the machines write all the code as it is machine to machine protocol and some of the machine involved are supposed to be phd level programmers.

The MCP or something similar should exist but it should be handled %100 by AI so the people can do the stuff that is important and human related.

It rubs me the wrong way seeing people trying to understand this and if you take it on face value it appears that now AI can do the code but MCP is so hard that it needs a human who studied that so they can talk.

Is this piece of JSON really the last frontier of programming?
by cloudc0de | 2025-05-22 18:33:26+00:00
Just saw this popup in claude cli v1.0.0 changelog

What's new:

• Added `DISABLE_INTERLEAVED_THINKING` to give users the option to opt out of interleaved thinking.

• Improved model references to show provider-specific names (Sonnet 3.7 for Bedrock, Sonnet 4 for Console)

• Updated documentation links and OAuth process descriptions

• Claude Code is now generally available

• Introducing Sonnet 4 and Opus 4 models
by datpuz | 2025-05-22 18:33:32+00:00
DeepSeek never mopped the floor with anyone... DeepSeek was remarkable because it is claimed that they spent a lot less training it, and without Nvidia GPUs, and because they had the best open weight model for a while. The only area they mopped the floor in was open source models, which had been stagnating for a while. But qwen3 mopped the floor with DeepSeek R1.
by ndegruchy | 2025-05-22 18:33:41+00:00
I remember requesting the source code after they bought it[1]. They kept kicking the can down the road. It looks like they dumped everything in a monorepo on Github[2] which does nothing good for anyone.

Seems like Mozilla is dead-set on grinding up any good will they get from users.

[1]: https://discourse.mozilla.org/t/pocket-source-code/43686/11 [2]: https://github.com/Pocket/pocket-monorepo
by pugdogdev | 2025-05-22 18:33:53+00:00
Thank you! I can see why you hide it. I thought about it a few times before creating DockFlow. Also, when building DockFlow, I discovered the folders, links, and spacer options in the dock, so I built a full custom dock per project with the needed folders and links when working on it. This makes the Dock a lot more useful.
by ipython | 2025-05-22 18:34:19+00:00
If we have concerns about unregulated power of AI systems, not to worry - the US is set to ban regulations on “artificial intelligence systems or models” for ten years if the budget bill that just passed the house is enacted.

Attempts at submitting it as a separate submission just get flagged - so I’ll link to it here. See pages 292-294: https://www.congress.gov/119/bills/hr1/BILLS-119hr1rh.pdf
by dylan604 | 2025-05-22 18:35:00+00:00
If the UK wants to force nationwide firewall rules to block my little ol' website, then bob's their uncle. I don't care if some Limey bastard can or cannot view my website. I mean censorship sucks and all, but I'm not going out of my way to ensure that I learn every single country's specific rules and find a way to ensure I comply with all of them. I am not doing business by accepting money in exchange for something. If my website states something that offends someone else because I said that chips is a dumb name for a fry when a chip is clearly a different thing entirely, then they need to get over themselves. Also, you put stuff in the trunk of the car, and you wear a boot on your foot. <insert_thumbs_in_ears_and_give_sloppy_raspberry> If someone feels unsafe about that, then good luck doing anything to me in another country about it.

Again, the main point is that I don't do shady shit that needs regulating. I don't use 3rd party libraries that hoover up data to be resold to anyone offering to buy. I roll my own JS to make something function. I write my own CSS to make it look "pretty". I know that nothing nefarious is happening because I didn't code anything nefarious to happen. My sites are about as lame as the people that think that regulations are going to solve anything
by lxgr | 2025-05-22 18:35:09+00:00
Ugh, and that only months after Omnivore (a really great FOSS "read it later" app) shut down.

The one constant of "save your favorite articles and websites offline, forever" apps seems to be that they're... very much not forever.

In my view, this not being a native, interoperable feature of web browsers is a failure of the web. I'll be able to listen to a podcast episode I've downloaded as an MP3 forever, and the same goes for ePub books (if they don't have DRM in any case) – so why is the same so hard for blog posts and articles?
by saeedesmaili | 2025-05-22 18:35:41+00:00
This really hurts. All my content consumption workflow depends on Pocket, I shortlist from my rss reader (inoreader) directly into pocket, then ot gets synced with readwise reader automatically where I listen to the chosen articles [1]. I also use my pocket account's archive as a collection of the articles and writings I have liked (planning to build a personal and simple content recommendation system for myself). [1] https://saeedesmaili.com/posts/my-content-consumption-workfl...
by timetraveller26 | 2025-05-22 18:36:06+00:00
So much wasted potential, I was a top 1% reader for a couple years (mostly because I saved a lot of things probably); it was a convenient way to save articles and references in multiple devices but at the end I was frustated it was so cumberstone to keep links organized.

I stopped paying premium and migrated to a self-hosted Wallabag, which doesn't have all the features I want but hey, in hindsight it was the right decision.

It would be cool if they open sourced the code, but one can only dream.
by growlNark | 2025-05-22 18:36:14+00:00
> I'm comfortable saying if a foreign nation rolls military vehicles across a border and starts shelling apartment buildings, those buildings' residents have every right to assert their existence with violence.

Of course, I have nothing against sovereignty. I just think states greatly overestimate what they're owed for simply not mowing down their own citizens. If my state causes another state to invade me, of course I'll side with the invader—my own state has failed me.
by PaulHoule | 2025-05-22 18:36:15+00:00
For one thing, Windows got something like Wayland in Windows Vista back in 2007. It is 18 years later and some linux distros still use X.

10 years ago I found it an aggravation that Linux desktops did not pay attention to little details like font metrics so it was not unusual for a label to overflow the space for it. In the past 2 years or so I have had Ubuntu desktop machines that I like using so I think it has gotten better.

I am not really a "Windows Dev", I use Windows to develop web-based applications that often run on Linux servers. Long ago I used to write Silverlight applications with WPF and it was cool, I've got no idea how I would start writing a Windows native GUI program today, however it seems that Microsoft isn't all that sure and would consider "use Electron" or "What the hell is wrong with you? Just make a web app."
by TimTheTinker | 2025-05-22 18:36:26+00:00
The fact that institutions can be corrupt (or corrupted) doesn't invalidate the concept of an institution. Humans must coordinate their efforts to have widespread impact, and institutions are the de-facto way to coordinate effort: from marriage, the nuclear family, and extended families to local clubs, churches, companies, non-profits, and governments at various levels.

Ever since the counter-culture movement of the 1960s, it's been cool to "stick it to the man", which unfortunately translates to anti-institutionalism too often. Tearing things down never yields a positive result when no good institutions exist or are created to fill the vacuum.
by marcosdumay | 2025-05-22 18:36:42+00:00
Hum... In theory the closed system includes a database with most of the humanity's written works, and the people that know how the thing works expect it to push some information from the database into the code. (Even though, I will argue that the people that know how the thing works barely use it.)

The reason LLMs fail so often are not related to the fundamental of "garbage in, garbage out".
by dragonwriter | 2025-05-22 18:36:50+00:00
> have fun working out the semantics of break and next when used in a block that isn't an argument to an enumeration method.

The semantics are:

* next returns from the block, optionally taking a return value that will be returned as the result of the function (this is identical to the behavior of "return" from a Proc with lambda semantics)

* break returns from the function that yielded to the block, optionally taking a return value that will be returned as the result of the function (EDIT: deleted comparison to returns from a Proc with proc rather than lambda semantics here, because it wasn't quite accurate.)

This is, incidentally, also exactly the semantics when they are called from a block passed to an enumeration method, there is no special case there.

> How do you as a method author opt in to distinguishing between the two after yielding to a block?

If control returns to your method, it was a return from the block, either via return (from a block with lambda semantics), next, or running through the end of the block. If, OTOH, break is called (or return from a block with proc semantics), control won't return to the calling method normally, but code in any "ensure" sections applicable will be run, which can be used to identify that this has occurred, and even to override the return value provided by the break.

The simplest possible function illustrating this:

def how_exited yield direct = true return "next, completion, or lambda return" rescue direct = true return "exception" ensure return "break" if not direct end
by pugdogdev | 2025-05-22 18:37:17+00:00
Thank you for the feedback Actually, you are able to do it right now with DockFlow. In the settings window, you have an Export/Import option, so you can use it to share your dock between different machines. I am working hard on a public Dock preset sharing platform that allows one-click import directly in the app. So this process will be easier in the future Let me know if you managed to use it. Thanks again
by tristanho | 2025-05-22 18:37:37+00:00
That is definitely one of the biggest painpoints, and we feel it ourselves for whatever it's worth!

However, if you're just looking for a replacement for Pocket, you only need the Reader app/extension and it shouldn't be clunky at all.

It's only if you want our highlight-specific reviewing/exporting functionality that you would also need the Readwise app... still not ideal, but merging two complex products like this without making the experience janky/complicated for new users is a really really hard problem!
by saaaaaam | 2025-05-22 18:38:33+00:00
I've been using Claude Opus 4 the past couple of hours.

I absolutely HATE the new personality it's got. Like ChatGPT at its worst. Awful. Completely over the top "this is brilliant" or "this completely destroys the argument!" or "this is catastrophically bad for them".

I hope they fix this very quickly.
by growlNark | 2025-05-22 18:38:37+00:00
Sure, but what are you comparing it against? C is certainly more straightforward to internalize than the semantics of C++, or Python.

Many of the corners of C understanding come with inherently abstruse backgrounds: say, accessing fenced memory with an aliased value in-scope, or in getting the particulars of expected memory-layout right for a given ABI. None of this actually impacts most daily development.

Hell, the impact of using zero-terminated strings is far greater of an issue than poor-specification of the language is. You have to deal with this problem; POSIX decided to bake it in to its core. Pointer mismanagement is a generally difficult problem, but C decided to actively cook-in hard-to-manage-strings.
by thethirdone | 2025-05-22 18:38:40+00:00
The first iteration vectorized with numpy is the best solution imho. The only additional optimization is using modulo 9 to give you a sum of digits mod 9; that should filter out approximately 1/9th of numbers. The digit summing is the slow part so reducing the number of values there results in a large speedup. Numpy can do that filter pretty fast as `arr = arr[arr%9==3]`

With that optimization its about 3 times faster, and all of the none numpy solutions are slower than the numpy one. In python it almost never makes sense to try to manually iterate for speed.
by palata | 2025-05-22 18:38:57+00:00
> It fits the function anyways.

And then it works well when interpolating, less so when extrapolating. Not sure how much novelty we can get from interpolation...

> It is much easier to find new questions and new problems than to answer them

Which doesn't mean, at all, that it is easy to find new questions about stuff you can't imagine.
by corimaith | 2025-05-22 18:39:21+00:00
>I think this is fantasy. It's like an informatic / learning perpetual motion machine. Learning requires input from the world. It requires training data. A brain in a vat can't learn anything and it can't reason beyond the bounds of the accumulated knowledge it's already carrying. I don't think it's possible to know without learning or to reach valid conclusions without testing or observing.

Well I mean, more real world information isn't going to solve unsolved mathematics or computer science problems. Once you have the priors, it pretty much is just pure reasoning to try to solve issues like P=NP or proving the Continuum Hypothesis.
by sysysy | 2025-05-22 18:39:33+00:00
Which mode of AES do you mean? AES ECB seems to fit your example, but wouldn't it still expose the incremental nature UUID v7 with enough samples (see https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation, the Linux Tux image example)? Other AES modes produce way longer results, even when the ID is encoded with Base58 or the like.
by vidarh | 2025-05-22 18:40:05+00:00
> The bigger issue, though, may be rendering the text in the first place. I'm not sure how much the GPU can help there, though it is at least possible with SDL3_ttf to pass off some of the work to the GPU; I may test that as well.

The font rendering gets slow if you re-render the glyphs regularly. This becomes a challenge if you render anti-aliased glyphs at sub-pixel offsets, and so make the cost of caching them get really high.

If you keep things on pixel boundaries, caching them is cheap, and so you just render each glyph once at a given size, unless severely memory constrained.

For proportional text or if you add support for ligatures etc. it can get harder, but I think for most scenarios your rendering would have a really high cache hit ratio unless you're very memory constrained.

My terminal is written in Ruby, and uses a TTF engine in Ruby, and while it's not super-fast, the font rendering isn't in the hot path in normal use and so while speeding up my terminal rendering is somewhere on my todo list (far down), the font rendering isn't where I'll spending time...

Even the worst case of rendering a full screen of text in 4k at a tiny font size after changing font size (and so throwing away the glyph cache) is pretty much fast enough.

I think this is pretty much the worst case scenario you'll run into on a modern system - Ruby isn't fast (though much faster than it was) - and running a pure Ruby terminal with a pure Ruby font renderer with a pure Ruby X11 client library would only get "worse" if I go crazy enough to write a pure Ruby X11 server as well (the thought has crossed my mind).

If I were to replace any of the Ruby with a C extension, the inner rendering loop that constructs spans of text that reuses the same attributes (colors, boldness etc) and issues the appropriate X calls would be where I'd focus, but I think that too can be made substantially faster than it currently is just by improving the algorithm used instead.
by sckleinis_8 | 2025-05-22 18:40:24+00:00
Extensions are necessary if you want to use any social media app these days, for YT there's UnTrap for YouTube.

I don't use Xitter anymore, but when I did, Control Panel for Twitter was my go to.

It's insane how better (and boring/less addictive) social media becomes by simple enhancements.
by Joker_vD | 2025-05-22 18:40:27+00:00
This is such an obviously bad idea; I've heard anecdotes of embezzlement cases where investigation took more than e.g. 5 years, and when it was finally established that yes, the funds really were embezzled and they went after the perpetrator, it turned out that the guy had died a year before due to all of the excesses he spent the money on.

I mean, if you talk from the position of someone who doesn't believe that the world will end soon.
by Vinnl | 2025-05-22 18:41:31+00:00
One thing that unfortunately never got properly announced, is that over time Pocket was slowly open sourced piece-by-piece, mostly as it got rewritten/modernised, as I understand it: https://github.com/Pocket/

I guess the fact that it wasn't a big bang source code dump made it hard to make a moment of it.

(Note: open-source does not necessarily mean that it was optimised for self-hosting, which would've been a lot more work, of course.)
by bossyTeacher | 2025-05-22 18:41:34+00:00
> I'm sure a lot of HN readers view any of Mozilla's operations outside of Firefox as a distraction

For most people, Mozilla is just the company developing Firefox and Firefox is the Mozilla product. Mozilla's pivot into the web's hero is coming at the price of Firefox and people are not happy. Their current situation where they depend financially on Google just doesn't feel right. And I understand that Google has been asked to stop financing Mozilla. Tough times will be coming for them
by nzoschke | 2025-05-22 18:42:10+00:00
I built my own audio player too.

https://github.com/nzoschke/jukelab

It's a web app with the Spotify Web Playback SDK or a good old MP3 HTTP server and API like Internet Archive.

It works crazy well on a ChromeBook, and reasonably well on an iPhone, iPad or Android both through a native app with a webview component or the browser.

I have a theory the pendulum is swinging back and there is a demand for controlling our own music and music interface, and web technology is sufficiently good for implementing players.
by tristanho | 2025-05-22 18:42:11+00:00
Cool! The import should auto-retry, but in case something gets snagged there you can also always do `cmd+k -> pocket` to retrigger a full import.

Totally hear you on price.. Reader is built for people who spend a lot of time reading and can justify it (and the sub also comes with access to our Readwise product too).

We also have a 50% off discount for students as well folks in countries with depressed currencies (eg India, South American countries, etc) which might help.

We try our best, but are also bootstrapped and have to charge enough to keep the company sustainable!
by cloudc0de | 2025-05-22 18:42:14+00:00
I was able to request both new models only in Oregon / us-west-2.

I built a Slack bot for my wife so she can use Claude without a full-blown subscription. She uses it daily for lesson planning and brainstorming and it only costs us about .50 cents a month in Lambda + Bedrock costs. https://us-west-2.console.aws.amazon.com/bedrock/home?region...

https://docs.anthropic.com/en/docs/claude-code/bedrock-verte...
by cheald | 2025-05-22 18:42:18+00:00
My household of 5 has been running exclusively Linux desktops for the past several years. Coming from Windows, I installed KDE distros and nobody has had any trouble with it.

They average user needs to be able to turn on the machine and have it boot, log in, use a web browser, connect Bluetooth devices, and print stuff. Linux desktops are more than capable of that sort of thing with zero additional training.

This weekend, I actually booted an old Windows XP machine that I've had sitting in a closet, and was astonished at just how...clunky Windows XP felt to me. It's not that it was hard, but it really helped highlight to me just how actually-usable Linux desktops have become.
by em3rgent0rdr | 2025-05-22 18:42:19+00:00
Sure, log scales are done quite often with SI prefixes for absolute (non-ratio) data that doesn't have a standard reference (which is the case for component datasheets). But dB can be more convenient when you want to present logarithmically-varying ratios, particularly for gain or attenuation (which are relative to unity) or when you have a commonly-accepted reference of your absolute data that is a useful standard to compare against. This gives your 0-point typically at the top or bottom of the axis a standard meaning across all graphs in a particular domain, and then datapoints typically have about a couple significant digits above the "." of the dB datapoint that you generally are interested in.

I grew up in a metric country too, but still it is much easier to speak of 0 to 100 or so of decibels with decades of power being in increments of 10 rather than having to say 10, 100, 1k, 10k, 100k, 1M, 10M, 100M, 1G, 10G, etc of gain or 100m, 10m, 1m, 100u, 10u, 1u, 100n, 10n, 1n, 100p, etc of attenuation. Especially when gains or attenuations would be multiplied, then decibel makes it really easy to just add and or subtract in decibels. For an example, a signal with 10M of gain (or that is 10M times some reference) that gets passed through 100m attenuation would result in a 1M signal (which takes my brain some fiddling with those letters and numbers), but in decibel we are just dealing with simple addition & subtraction: 70 dB minus 10 dB equals 60 dB.