MurphyA/hacker-news huggingface dataset:
Show HN: Scout – micro-game teaser for a map-based cycling RPG
by zackham | 2025-10-18 18:44:39+00:00
One-day experiment using claude code and grok heavy to build a tiny teaser for Scout, a map-based cycling RPG we’re about to release in Portland, OR. I’m a founder of Ride with GPS, and figured a playable prototype would be more fun than a static email form.

Gameplay:

- Click an icon -> fetches a real route from our routing service -> auto-rides it (~400×, 12 mph). - Collect items, reveal more. Arrow keys + spacebar for free roam + fireballs. - Add ?edit=1 to open the in-browser item editor to see how I put the items on the map. - No signup to poke at it (just req email for invites).

Under the hood: preloads a few static tiles from our map server, dynamically recolors them for the game theme, simple sprites for N/NE/E/etc facing cyclist, some misc CSS animations and canvas based stuff.

Goal: give a 30-second glimpse of the full RPG world we’re building.

Looking for any tips on making it more effective in generating interest in the game we're about to release.
by burntsushi | 2025-10-18 18:45:40+00:00
This might help: https://news.ycombinator.com/item?id=45629497

That is, you can whitelist specific hidden files/directories.

There is no way to tell ripgrep to "search precisely the set of tracked files in git." ripgrep doesn't read git repository state. It just looks at gitignore files and automatically ignores all hidden and binary files. So it make it work more like git, you might consider whitelisting the hidden files you want to search. To make it work exactly like git, you need to do the `git ls-files -z | xargs -0 rg ...` dance.
by BugsJustFindMe | 2025-10-18 18:45:57+00:00
> I can see why they want to give users the option

I completely dislike the practice of giving options for no reason other than to give options. Don't make me learn different ways of doing the same thing to succeed in an ecosystem. Don't make me learn differences and similarities. If one way works properly and doesn't have obvious downsides, stick with having one way. If it has obvious downsides, stick with having a different one way. Subjective format taste isn't a real downside. Pick one format and stick with it.

The line from the zen of Python about how "there should be one-- and preferably only one --obvious way to do it" is something that people all too often forget the value of.
by seba_dos1 | 2025-10-18 18:46:27+00:00
Personally I don't really care about tracking and I use it more as a power saving measure, but FWIW on my Librem 5 cutting the modem out of power is just a matter of a single flick of a switch on the side of the phone, making it trivial to use the modem only at will and keep the device WiFi-only otherwise.
by WarOnPrivacy | 2025-10-18 18:48:09+00:00
> looking for solutions like this and researching tinnitus makes it more noticeable and worse. The best approach for me has been to pretend it doesn't exist and is insignificant

This is me. I have a mental distance worked out. Posting in this thread will require a bit of recovery time.

However, I recently learned by best friend (lives distant now but we chat daily) has tinnitus to the point where it affects discerning speech - so it's up there. But it doesn't bother him at all to think and talk about it. He's never felt any distress from it.

I'd never heard anyone say that. I changed the topic because I didn't want to put his zen at risk.
Show HN: Macscope – Cmd+Tab Are Wasting Your Time. I Built a Modern Approach
by gprok | 2025-10-18 18:48:12+00:00
Hi HN,

Some of you may remember Macscope from an earlier post. I'm back with an update—thanks to a ton of great feedback, the app is now more stable, polished, and powerful than ever.

For years, I've felt this low-grade friction using macOS. I live on the keyboard, but managing windows always felt like a task for the mouse. Cmd+Tab is great until you have more than a few apps open, and then it's just an endless, frustrating cycle. Mission Control is a visual puzzle that offers no quick way to filter the chaos.

Coming from tools like the terminal and code editors where you can jump to anything instantly, the OS layer felt slow by comparison. That's where the idea for Macscope came from.

Macscope is a new window switcher and manager built on the philosophy of enhancing, not replacing, your existing muscle memory.

It works by augmenting the familiar Cmd+Tab workflow. A quick tap of your shortcut instantly switches between recent apps, just like you're used to. A slightly longer hold, however, opens the full Macscope interface where you can manage all your open windows and browser tabs.

Here are some of the key features:

Unified Search & Switch: A single interface to instantly find and switch to any window, browser tab (Safari, Chrome, Arc, etc.), or application just by typing.

Live Previews: See a real-time preview of what's inside each window so you know exactly where you're going. (You can also disable this for a minimal experience).

Placement Modes: Go beyond just switching. Instantly snap any selected window to the left/right/top/bottom half of your screen with a simple modifier shortcut.

Scopes: Save a collection of app windows as a "Scope" and instantly restore that entire workspace later. It's perfect for quickly switching between different projects.

It’s a native macOS app built with Swift and supports both Apple Silicon and Intel machines.

There's a free trial with 250 actions so you can see if it fits your workflow an a special offer for 15 days!

Website:https://macscope.app

Join our Discord Community:https://discord.gg/ehktEWr97K

I built this to scratch my own itch, but I figured others might find it useful too. I'll be here all day to answer questions and would be grateful for any feedback. Thanks for checking it out!
by toast0 | 2025-10-18 18:48:15+00:00
All of those things come with tradeoffs.

Compression tradesoff compute vs i/o, if your system has weak compute, it's a bad deal. Most modern systems should do well with compression.

Dedupe needs indexing to find duplicates and makes writes complex (at least for realtime dedupe). I think online dedupe has pretty limited application, but offline dedupe is interesting.

Copy on write again makes writes complex, and tends to fragmentation of files that are modified. Free snapshots are only free when copy on write is the norm (otherwise, you have to copy on write while a snapshot is open, as on FreeBSD UFS). Copy on write offers a lot, but some applications would suffer.

Dynamic resizing (upwards) is pretty common now. Resize down less so. Zfs downsizing is available, but at least when I tried it, the filesystem became unbootable, so maybe not super useful IMHO.

Logical partitions, per user stuff, qos adds complexity probably not needed for everyone.
by gblargg | 2025-10-18 18:48:32+00:00
I also thought I would go crazy when mine started after some ear infections in my 20s. It's gotten a lot worse over time but I mostly only notice if I think about it, and when I'm laying down to sleep, and when I wake up (it seems so strong). I've slept with white noise all my life, and without that I the tinnitus would definitely disturb my sleep.
by charleshn | 2025-10-18 18:48:46+00:00
I can relate.

I had tinnitus for over 10 years. My tinnitus was not the usual ringing type, it was some sort of humming, low frequency noise. The frequency was not constant, it could vary. It could sometimes stop for 5-10 minutes, e.g. after a hot bath.

Went to see many specialists, tried everything, to no avail.

One day I started experiencing recurrent tension and light pain in my neck and shoulder blades, so I started doing some neck and shoulder blades stretches several times a day.

After a few weeks, the pain was gone, and I realised the tinnitus had stopped. This was maybe 2 years ago (I am still doing those exercises multiple times a day).
by albertzeyer | 2025-10-18 18:50:42+00:00
Ok, this post is mostly about text-based IDEs, but I think the point mostly stands as well for IDEs in general. I'm thinking about Visual Basic or Delphi.

I think such a IDE for Python would really be helpful for beginners. Not text-based, but more like Visual Basic. But everything integrated, everything easily discoverable (that's very important!). Maybe also with such a GUI builder as in VB. And a built-in debugger. I think for the code editor, as long as it has some syntax highlighting and tab auto-complete, that would already be enough. But some easy code navigation would also be good. E.g. when you place some button on your window, and double click that button in the GUI editor, you get to the call handler code of that button.

Some time ago, a small group of people (me included) (I think from some similar HN post?) got together and we brainstormed a bit on how to implement this. But we got lost in the discussion around what GUI framework to base this on. I already forgot the options. I think we discussed about PySide, Dear PyGui, or similar. Or maybe also web-based. We couldn't really decide. And then we got distracted, and the discussion died off.

Note, Free Pascal was mentioned here. But then you should also mention Lazarus (https://www.lazarus-ide.org/), which is the same as Free Pascal but cloning Delphi. Lazarus is really great. And it is actively developed. But Object Pascal is too little known nowadays, maybe also a bit outdated.
by constantcrying | 2025-10-18 18:51:31+00:00
You are conflating a method of interaction with a method of drawing things to the screen. These are totally different things. Whether you have a keyboard focused interface like vim or not, has absolutely nothing to do with whether you are drawing graphics by sending escape codes to a terminal emulator to render the interface.

Neovim and it's frontends prove that if you remove terminal emulators the applications become better. The terminal emulator is just in the way.

There is absolutely no reason to build that keyboard focused interface around the terminal. Just drop the terminal and keep the interface, just like neovim did.
by immibis | 2025-10-18 18:51:49+00:00
You can skip libc on Windows - you can't skip the system DLLs like kernel32. (In fact, Microsoft provided several mutually incompatible libcs in the past.)

Well, you can non-portably skip kernel32, and use ntdll, but then your program won't work in the next Windows version (same as on any platform really - you can include the topmost API layers in your code, but they won't match the layers underneath of the next version).

But system DLLs are DLLs, so also don't cause your .exe to get bloated.
by IshKebab | 2025-10-18 18:51:59+00:00
Well... Yeah but then you lose all the advantages of static typing that he rightly acknowledges!

TSX in particular is a terrible example to make the point. It's very very similar to HTML so there is barely anything more to learn, and in return you get type checking, auto complete, go-to-definition, etc. Its so good I use it for completely static sites.

The SQL example is more compelling, but again it's really hard to paint "SQL makes static typing a bit awkward" as "dynamic typing is great here!". Like, you shouldn't be super happy about walking across a desert because your car can't drive on sand. "Look how simple legs are, and they work on sand".

That said, the SQL example does suck. I'm surprised nobody has made something like sqlx that generates the Rust types and does all the mapping for you from your schema. That's clearly the way to go IMO.
by motohagiography | 2025-10-18 18:52:22+00:00
> Luxury is a marker that we can afford to do something others might consider wasteful.

the most interesting luxury thing i saw was palmer luckey showing his modretro chromatic game boy in his interview with rogan this week. sapphire crystal screen, special alloy from the weapons factory, offline, 90s aesthetic, exists for the pleasure of it, etc. what luxury really is is an expression of value, or values. the most coarse version of that is "status," but what about religious garb, artifacts and symbols? to an atheist, a hijab or a cross is a luxury item, but to the wearer, they are the literal, existential point of being. it's pretty crass and unserious to suggest these are just status symbols in a materialist power struggle. things that express values that bring you joy or pleasure are not a "luxury," as this presumes you are nothing but an undifferentiated clump of cells with the same material needs as any other one, and any distinction in satisfying those needs is superfluous. and to what? your meaningless existence as grist for an eternal struggle? surely.

we need a new model of luxury. in economics, there are normal and inferior goods, then giffen goods whose demand becomes higher when the price rises, veblen goods whose price is inverse to utility, and some other ones, but they are all names for the shapes of price and demand curves, but they're all just curves.

materialist ideas about luxury are dumb thought terminating cliches that deprive others of the opportunity to contemplate or appreciate them. we need new thinking, imo
by siebenmann | 2025-10-18 18:52:24+00:00
One reason why Unix quotas are generally not maintained and imposed by path is that it's a lot easier to update quotas as things are created, deleted, modified, and so on if the only thing that matters for who gets charged is some attribute of the inode, which you always have available. This was especially the case in the 1980s (when UCB added disk quotas), because that was before kernels tracked name to inode associations in RAM the way they generally do today. (But even today things like hardlinks raise questions.)

(I'm the author of the linked-to article.)
by alessandru | 2025-10-18 18:52:59+00:00
wow 800 comments about an immature ev market complaining of depreciation values.

if more of the electorate knew they could use these ev batteries in second life applications to power their homes businesses or otherwise be recycled into functional power providing devices, perhaps the percieved value wouldn't be so low. but right now everyone is convinced that the batteries are expiring at a fast rate when in reality they maintain usability into the 100s of k-miles.

but again, this article is about india, which is about 10 years behind the west in electrifying anything. so ... why are we asking the new kids on the block about depreciation?

why don't you ask the norwegians (95% ev this year) about depreciation? their market is much more mature with many more advanced consumers that can appraise the depreciated batteries much better. but you don't ask them because you want to muck-rake EV.

don't go to the premier ev market for this information go to the most under-developed one.

why don't you go ask south africans what they think about depreciating batteries?

ugh. 400 points for this drivel. you people are literally inane.
by GistNoesis | 2025-10-18 18:53:06+00:00
The general technique is not recent I was taught it in school in global optimisation class more than 15 years ago.

Here there is a small number of local minimum, the idea is to iterate over them in increasing order.

Can't remember the exact name but here is a more recent paper proposing "Sequential Gradient Descent" https://arxiv.org/abs/2011.04866 which features a similar idea.

Sequential convex programming : http://web.stanford.edu/class/ee364b/lectures/seq_notes.pdf

There is not really something special to it, it just standard local non linear minimization techniques with constraints Sequential Least Squares Quadratic Programming (SLSQP).

It's just about framing it as an optimization problem looking for "Points" with constraints and applying standard optimization toolbox, and recognizing which type of problem your specific problem is. You can write it as basic gradient descent if you don't care about performance.

The problem of finding a minimum of a quadratic function inside a disk is commonly known as the "Trust Region SubProblem" https://cran.r-project.org/web/packages/trust/vignettes/trus... but in this specific case of distances to curve we are on the easy case of Positive Definite.
Show HN: I scraped Reddit to find the most controversial chef knife
by p-s-v | 2025-10-18 18:53:08+00:00
I wanted to quantify the endless "which knife should I buy" debates on r/chefknives, so I built a data analysis pipeline to get some real answers.

The project is a 5-phase system built with Node.js. It first uses Fuse.js for fast, typo-tolerant fuzzy matching of ~450 known brands and ~8,700 models. The remaining text is then passed to an LLM (via OpenRouter) for discovering new, unknown entities and performing sentiment analysis on every mention. I ran it on over 1,000 threads, totaling more than 25,000 comments.

A few interesting findings:

The Underdog: Budget-friendly Tojiro has a massive 27-to-1 positive-to-negative mention ratio.

The Controversy King: Shun is by far the most polarizing brand, sparking strong love/hate discussions (59 positive vs. 24 negative mentions).

The Unloved: Dalstrong was one of the few brands to receive more negative mentions than positive.

The system isn't perfect—I'm open about a critical entity aggregation bug in the write-up. The full technical architecture, results, and raw data are available.

I'm here to answer any questions!

Blog Post (full story & visualizations): https://new.knife.day/blog/we-analyzed-25000-reddit-comments...

GitHub (technical breakdown & raw data): https://github.com/pvijeh/reddit-named-entity-recognition/bl...

Original Reddit Discussion: https://www.reddit.com/r/chefknives/comments/1o2p363/i_analy...
by pydry | 2025-10-18 18:53:18+00:00
The thing I think most arch enemies of dynamic typing miss is the underlying economics of writing software.

~98% of software gets thrown on the trash heap before it reaches the point where it really needs to be maintained.

That last 2% of gold dust desperately needs to be maintained well and to work, but to get to the point where you have that asset you'll probably find you need to throw away an awful lot of code first.

If you write that 98% using static typing it will slow you right down - potentially to the point where you dont even get to the gold dust.

If you write that 2% with dynamic typing it will fall apart. A lot of programmers see this process without ever appreciating the fast prototyping that got it there in the first place.

So, this is why Im a fan of gradual typing.
by robotresearcher | 2025-10-18 18:54:09+00:00
> You and robotresearcher have still avoided answering this question.

I have repeatedly explicitly denied the meaningfulness of the question. Understanding is a property ascribed by an observer, not possessed by a system.

You may not agree, but you can’t maintain that I’m avoiding that question. It does not have an answer that matters; that is my specific claim.

You can say a toaster understands toasting or you can not. There is literally nothing at stake there.
by badsectoracula | 2025-10-18 18:54:23+00:00
I think you probably refer to something else than what i meant in my post above.

Borland C++ had the compiler as part of the IDE (there was also a separate command-line version, but it was also compiled as part of the IDE). This allowed the IDE to not spawn separate processes for each file nor even need to hit the disk - the compiler (which was already in RAM as part of the IDE's process) would read the source code from the editor's buffer (instead of a file, so again, no hitting the disk) and would also keep a bunch of other stuff in memory between builds instead of reading it.

This approach allows the compiler to reuse data not only between builds but also between files of the same build. Meanwhile make is just a program launcher, the program - the compiler - need to run for each file and load and parse everything it needs to work for every single source file it needs to compile, thus rebuilding and destroying its entire universe for each file separately. There is no reuse here - even when you use precompiled headers to speed up some things (which is something Borland C++ also supported and it did speed up things even more on an already fast system), the compiler still needs to build and destroy that universe.

It is not a coincidence that one of the ways nowadays to speed up compilation of large codebases is unity builds[0] which essentially combine multiple C/C++ files (the files need to be aware of it to avoid one file "polluting" the contents of another) to allow multiple compilation units reuse/share the compilation state (such as common header files) with a single compiler instance. E.g. it is a core feature of FASTbuild[1] which combines distributed builds, caching and unity builds.

Of course Borland C++'s approach wasn't perfect as it had to run with limited memory too (so it still had to hit the disk at some point - note though that the Pascal compilers could do everything in memory, including even the final linking, even the program could remain in memory). Also bugs in the compiler could linger, e.g. i remember having to restart Borland C++ Builder sometimes every few hours of using it because the compiler was confused about something and had cached it in memory between builds. Also Free Pascal's text mode IDE (shown in the article) has the Free Pascal compiler as part of the IDE itself, but in the last release (i think) there is a memory leak and the IDE's use keeps increasing little by little every time you build, which is something that wouldn't matter with a separate program (and most people use FPC as a separate program via Lazarus these days, which is most likely why nobody noticed the leak).

[0] https://en.wikipedia.org/wiki/Unity_build

[1] https://fastbuild.org/
by manoDev | 2025-10-18 18:56:33+00:00
Yeah, caffeine is not the cause per se - the thing is it has both vasoconstriction and vasodilation effects at different times, so it can mess with blood vessels in the inner ear. It totally makes sense if you get tinnitus when you cut caffeine after your body is used to it.

Magnesium plays a part on vasodilation regulation as well, and many people are silently deficient on it. It’s hard to detect deficiency w/ blood samples, because the body works hard to keep blood concentration stable. You will know you do if you get muscle cramps or twitches.
by bionsystem | 2025-10-18 18:56:43+00:00
I saw this at an airport. Took the same plane twice, one year apart, in between they had replaced the terminal by a web UI. First trip it took 15 seconds from the hostess (well into her 50s) to find my booking and print my pass. Second trip (on the web UI), it took 4 hostesses to team up for something that felt like 5 good minutes to do the same thing.
by mrblah | 2025-10-18 18:57:32+00:00
this is anecdotal and not medical advice, but i reduced my tinnitus symptoms by ~90% by taking therapeutic doses (1200-1800mg/day) of benfotiamine (fat soluble form of vitamin b1) over the course of a month and a half.

i was taking it for unrelated nerve pain and was very surprised that my sense of smell and hearing also remarkably improved, to the point where i needed to reduce the long standing 'known' audio levels of all my various listening gadgets a few clicks. the ringing was a little worse for the first couple weeks, but then reduced a couple more weeks, then almost completely stopped 1 day.

from what i gather, high doses of the fat soluble form of vitamin b1 can repair nerves and is used as first line therapy in some countries for neuropathy, chronic pain and even alzheimers.

i'm sure it won't help everyone, i can't even find any solid research on tinnitus and benfotiamine, but putting this out in the ether since it is a cheap and relatively safe thing to try, i was completely surprised by this nice off-label side effect (it did help with my nerve pain as well). there is much more research based evidence on benfotiamine therapy for other nerve problems, and it follows that hearing and smell would also be affected, it's all nerves, good luck

edit * adding if you are taking high doses of benfotiamine, you should also be taking magnesium with it, i just took zma (zinc, magnesium and b6) at bedtime *