MurphyA/hacker-news huggingface dataset:
by BenjaminHarris | 2025-12-11 23:02:14+00:00
Hi HN,

I’m the developer of Sunset Compass, a free iOS navigation tool for photographers and hikers.

The Problem: The current market leaders for ephemeris data (Sun Surveyor, PhotoPills) are incredible engineering feats, but they suffer from two issues:

They are complex and expensive ($10-$15), targeting the top 5% of professional photographers.

They largely ignore non-English markets, leaving a massive gap for casual users globally.

The Solution: I built Sunset Compass to be the "accessible" alternative. It tracks Sun and Moon positions, Golden Hour phases, and provides haptic feedback for alignment. Crucially, I decided to compete via a "Linguistic Moat" rather than feature bloat—the app is fully localized into 50 languages to target long-tail search intent in underserved markets.

Technical Stack & Optimizations: The app is built with React Native (Expo SDK 54). The biggest engineering challenge was map performance with large datasets of "Global Vista" pins:

Viewport-Based Rendering: I implemented a filtering logic that only renders pins visible in the current viewport (plus a 20% buffer zone). This reduced initial map load time from ~1000ms to ~200ms and cut memory usage significantly.

Parallel Storage: Using Promise.all to load pin data and favorites simultaneously from AsyncStorage during initialization.

Privacy Architecture: Unlike many competitors, there is zero cloud storage. All user locations and saved pins utilize local AsyncStorage. The app uses SunCalc for on-device astronomical calculations, meaning it works offline.

Current Status: The app is free (ad-supported, no subscriptions) and available on iOS.

I’d love feedback on:

The haptic feedback implementation (we use a 5-degree tolerance zone).

The "Glassmorphic" UI approach—does it feel too heavy for a utility app?

Any experience you have with ASO for tier-2/3 languages.

Thanks for taking a look!
by panick21_ | 2025-12-11 23:02:43+00:00
If a car cost 10x but public transport is 20x worse then people will still buy cars unless they can't afford it.

Look it might be easily doable for you, but the data shows pretty clearly that if one thing is easier and faster then another, most people, not all people will pick what is easier and faster. There are always 10-20% of people who will just prefer one thing, no matter what. See people who ride bikes in horrible dangerous conditions threw traffic. You might be willing to, but most people are not.

But what you need is a system with enough quality that enough people use it so they can demand continued increases in quality.
by stared | 2025-12-11 23:03:00+00:00
I find the original post confused. What it has to with code? Why putting the US as "the West"? Why the Eastern void is bad? (Oftentimes it's the Western void which is oblivion, Eastern which is nirvana.)

In Polish, 'niezły' (literally 'not bad') means 'very good'. Even in English there are many such things, e.g. 'indestructible', 'immortal'.

When it comes to labels on food there is "no preservatives" or similar. It even has its parodies, e.g. "asbestos-free oat cereal" (https://xkcd.com/641/).
by themafia | 2025-12-11 23:03:07+00:00
> The growing deployment of DNS Security (DNSSEC) and IPv6 has increased response sizes and therefore the use of TCP.

Yes, but doesn't IPv6 also increase the "maximum safe UDP packet size" from 512 bytes to 1280?

> Existing deployments of DNSSEC [RFC4033] have shown that truncation at the 512-byte boundary is now commonplace. For example, a Non-Existent Domain (NXDOMAIN) (RCODE == 3) response from a DNSSEC-signed zone using NextSECure 3 (NSEC3) [RFC5155] is almost invariably larger than 512 bytes.

This has been a flagged issue in DNSSEC since it was originally considered. This was a massive oversight on their part and was only added because DNSSEC originally made it quite easy to probe entire DNS trees and expose obscured RRs.

> The MTU most commonly found in the core of the Internet is around 1500 bytes, and even that limit is routinely exceeded by DNSSEC-signed responses.

> Stub resolver implementations (e.g., an operating system's DNS resolution library) MUST support TCP since to do otherwise would limit the interoperability between their own clients and upstream servers.

Fair enough but are network clients actually meant to use DNSSEC? Isn't this just an issue for authoritative and recursive DNSSEC resolvers to and down the roots?
by notahacker | 2025-12-11 23:03:29+00:00
Worth adding that the actual collision avoidance manouevres Starlink (and other satellites with propulsion) makes are based on more conservative assumptions

The papers assumptions lead to the conclusion that with no manouevres, we'd see a catastrophic crash between two or more satellites in LEO within 2.8 days. To be on the safe side, Starlink did over 144000 in the first six months of the year (and based on historical doubling rate, will probably be doing 1000 per day by now)...
by daotoad | 2025-12-11 23:03:46+00:00
The real trick is getting just enough meaning into the name to be helpful, while keeping it distinct. SQLAlchemy is a great example.

I called by zsh bookmark tool `tutu`, my idea was to make it sound like what it does.

- It helps you go TO places - The main command is `tu` because it is short, a homophone of "to", and wasn't already taken - Additional commands `tutu` (which does a `pushd` instead of `cd`) and `untu` (which is just a wrapper around `popd`) are short, memorable, and pronouncable.

All of those naming decisions were made with ergonomics in mind.

Was I successful? I like it. A few other people are using it and seem to like it, too.

To the extent that I was, I think it's because the name is meaningful enough while remaining distinct.

https://github.com/daotoad/tutu
by idiotsecant | 2025-12-11 23:04:56+00:00
This is a concept that I firmly believe will be a fundamental feature of the medium-term future. Personal memetic firewalls.

As AI gets better and cheaper there will absolutely be influence campaigns conducted at the individual level for every possible thing anyone with money might want, and those campaigns will be so precisely targeted and calibrated by autonomous influencer AI that know so much about you that they will convince you to do the thing they want, whether by emotional manipulation, subtle blackmail, whatever.

It will also be extraordinarily easy to emit subliminal or unconscious signals that will encode a great deal more of our internal state than we want them to.

It will be necessary to have a 'memetic firewall' that reduces our unintentional outgoing informational cross section, while also preventing contamination by the torrent of ideas trying to worm their way into our heads. This firewall would also need to be autonomous, but by exploiting the inherent information asymmetry (your firewall would know you very well) it need not be as powerful as the AI that are trying to exploit you.
by wcarss | 2025-12-11 23:05:09+00:00
Yeah, getting into the car with the guy holding the gun doesn't become okay because you have a great argument you're waiting to use down the road. He's already got the gun out.

We should have started arguing when he just said he had a gun, indoors, in the crowd. We shouldn't have quietly walked outside at his demand. But that all happened. Here we are now, at the car, and he's got the gun out, and he's saying "get in", and we're probably not going to win from here -- but pal, it's time to start arguing. Or better yet, fighting back hard.

Because that car isn't going anywhere we want to be. We absolutely can not get in the car right now, and just plan to argue the point later. It doesn't matter how right the argument is at all.
by amelius | 2025-12-11 23:05:38+00:00
I recently found out that it is surprisingly hard to convert an SVG file that consists of series of line segments into a list of those line segments in Python.

I tried with ChatGPT and Claude but both were not able to find a solution that respects the entire specification, especially transforms.

Initially, my expectation was that there must be a library for this kind of thing, but alas.
by panick21_ | 2025-12-11 23:05:54+00:00
I'm not sure how you measured how far away everybody talking about it is. If seen more passion form Americans then from Europeans about HSR in California. And I don't think most people in China are hot on it.

I guess there are some very passionate rail fan liberals in the Eastern united states that hope for true HSR on the East coast that really root for HSR.

But then again I have heard plenty of Californians passionately denounce/advocate for the project.

So I don't think your observation holds.
by Barrin92 | 2025-12-11 23:06:24+00:00
In Britain in particular? The NSPCC, Molly Rose Foundation, IWF among a bunch of others. 70% of Brits are supportive of the online safety act[1], it's been supported by Conservatives, Labour and the SNP.

There's simply no data in favor of the argument that this is a minority position or even some kind of conspiracy. Child safety is (not very surprisingly) usually a voter driven concern. You think banning people from social media is an idea coming from big tech and shadowy three letter agencies? What kind of sense does that make

[1] https://yougov.co.uk/technology/articles/52693-how-have-brit...
by Uehreka | 2025-12-11 23:06:37+00:00
I think we (the Next.js user community) need to organize and either convince Vercel to announce official support of the Pages router forever (or at least indefinitely, and stop posturing it as a deprecated-ish thing), or else fork Next.js and maintain the stable version of it that so many of us enjoyed. Every time Next comes up I see a ton of comments like this, everyone I talk to says this, and I almost never hear anyone say they like the App Router (and this is a pretty contrarian site, so if they existed I’d expect to see them here).
by thefaux | 2025-12-11 23:06:40+00:00
As impressive as this analysis is by the compiler, I shudder to think how much time the compiler spends doing these kinds of optimizations. In my opinion, a better architecture would be for the compiler to provide a separate analysis tool that suggests source level changes for these kinds of optimizations. It could alert you that the loop could be replaced with a popcount (and optionally make the textual replacement in the source code for you). Then you pay the cost of the optimization once and have the benefit of clarity about what your code _actually_ runs at runtime instead of the compiler transparently pulling the rug out from underneath you when run with optimizations.

Side note: many years ago I wrote the backend for a private global surveillance system that has almost surely tracked the physical location of anyone reading this. We could efficiently track how often a device had been seen at a location in the prior 64 (days|weeks|months) in just 192 bytes and use popcount to compute the value. I am not proud that I built this.
by llbeansandrice | 2025-12-11 23:06:59+00:00
This is better solved by leveraging more traditional forms of transportation. Making biking, walking, and various forms of transit easier, safer, and more effective. Cars, whether self-driving or not, are in direct opposition to this.

I'm sure they could be useful to folks that have the specific use-case for it, but the vast vast majority of trips in a person's day-to-day are better solved by robust multi-modal options and public transit. The benefit there is that less drivers means that traffic is actually better for everyone.
by crorella | 2025-12-11 23:07:17+00:00
It’s like having 3 coins and users preferring one or the other when tossing it because one coin gives consistently more heads (or tails) than the other coin.

What is better is to build a good set of rules and stick to one and then refine those rules over time as you get more experience using the tool or if the tool evolves and digress from the results you expect.
by AnthonyMouse | 2025-12-11 23:08:06+00:00
> HDMI: tech is shared between you and competitors, but you don't get to collect all the licensing fees for yourself

> Some bespoke interface: you can make the bet that your tech is so good that you get to have control over it _and_ you get to license it out and collect all the fees

Except that these are alternatives to each other. If it's your bespoke thing then there are no licensing fees because nobody else is using it. Moreover, then nobody else is using it and then nobody wants your thing because it doesn't work with any of their other stuff.

Meanwhile it's not about whether something is a formal standard or not. The government simply shouldn't grant or enforce patents on interoperability interfaces, in the same way and for the same reason that it shouldn't be possible to enforce a copyright over an API.
by Asooka | 2025-12-11 23:08:26+00:00
It does seem needlessly complex. I think a better idea is to just have a type that is a pair of pointer-sized words. That pattern crops up again and again - context pointer and function pointer, array and its size, memory allocation and effective size, etc. The problem with having both pieces in separate variables is that it is very easy to lose track of what is where. If you have it in a single bundle it is a lot simpler to use. The exact design needs a lot more consideration for sure, because I would like something simpler than writing anonymous structs everywhere (which I can already do), but at the same time flexible enough for most use cases.
by rvnx | 2025-12-11 23:09:25+00:00
Malicious ? No, and this is far from astroturfing, he even speaks as "we". It's just a logical move to defend your company when people claim your product is buggy.

There is no other logical move, this is what I am saying, contrary to people above say this requires a lot of courage. It's not about courage, it's just normal and logic (and yes Hackernews matters a lot, this place is a very strong source of signal for investors).

Not bad at all, just observing it.
by panick21_ | 2025-12-11 23:09:31+00:00
Sure but there are teams that work on radios and modems that likely could be acquired and not sure Qualcomm needs that. RISC-V isn't so different that you need to acquire a team.

Ventana is a company founded and build around a team to do massive ultra wide chips for data-center, and their focus was not efficiency primary. The kinds of chips they build are just not the right fit. Moving all that team over to something on the literal other end of the spectrum and dropping their existing products and costumers seems a bit silly.
by fellowniusmonk | 2025-12-11 23:09:31+00:00
Over the course of my life I have seen every profession but one go through boom and bust cycles.

I've seen attorneys, professors traders, plumbers, programmers, accounting, all go through demand cycles.

But never MDs

It is my dream that before I die I see a bust cycle on MDs where the growth of supply exceeds the demand.

Uber or Airbnb for medical care is so needed, why not break some laws to reveal how protectionist the whole industry is?

I'd gladly book a "Parody Doctor" or whatever it takes if it cost 2/5ths the price.
by awesome_dude | 2025-12-11 23:10:15+00:00
Another data point has just arisen - I have a function (in Go) that accepts an unpacked slice of `interface{}` (some people will now call that an unpacked slice of `any`)

I was calling that function with an unpacked slice of string - eg

```Go

foo := []string{"one", "two", "three"} bar(foo...)

```

The AI I was using (Claude for the purposes of this discussion) incorrectly told me that I first needed to convert the slice of string to a slice of interface before calling the function

It argued with me when I said that I didn't and demanded I TIAS to prove its point, and report the compile time errors

Of course, I did, and there were no errors

The issue was that the AI (Claude) did not understand that `interface{}` or `any` means that any type can be used there.

Claude is doing a fantastic job, but this is an example of it not actually understanding what's happening.
by i15e | 2025-12-11 23:10:52+00:00
You can use Ctrl+z to suspend the foreground process, bg to resume it in the background, and then wait to wait for it to complete. By default wait will wait for all jobs to finish and then return a success exit code, however if you give it a specific job ID it will instead return the exit code of the waited-on process:

$ (sleep 10; false) ^Z [1]+ Stopped ( sleep 10; false ) $ wait %% && echo ok || echo nok [1]+ Exit 1 ( sleep 10; false ) nok
by tehjoker | 2025-12-11 23:10:58+00:00
Very interesting and useful analysis. I am looking forward to more. It was very strange that the Snowden documents didn't get more analysis than they did (even though there was some significant analysis).

I wonder what this organization is though. The stated purpose seems a little anachronistic, similar to the ideas of the early 2010s, which were amply covered by Surveillance Valley: The Secret Military History of the Internet (2018). A number of organizations of that type ended up being funded by U.S. intelligence as it ended up benefiting military intelligence in various ways, e.g. the Tor Project is funded like this and provides chaff cover for intelligence operations (if all Tor traffic was military, there would be little point to it since it would stick out like a sore thumb) and e.g. NSA can de-anonymize Tor traffic since they can correlate entry and exit traffic with total system awareness (an asymmetric capability no other nation or sub-national organization has).

There's a great podcast + transcript with Chris Hedges and author Yasha Levine about this book here: https://consortiumnews.com/2025/04/13/chris-hedges-report-th...

Doing this analysis is a great way to get some credibility, but it also doesn't reveal anything that wasn't publicly available. Nonetheless, I still appreciate it!
by upghost | 2025-12-11 23:11:22+00:00
Ok what I would really love is something like this but for the damn terminal. No, I don't store credentials in plaintext, but when they get pulled into memory after being decrypted you really gotta watch $TERMINAL_AGENT or it WILL read your creds eventually and it's ever so much fun explaining why you need to rotate a key.

Sure go ahead and roast me but please include full proof method you use to make sure that never happens that still allows you to use credentials for developing applications in the normal way.
by koakuma-chan | 2025-12-11 23:11:30+00:00
First off, it's a doujinshi—not a manga. Then, I don't know why it is tagged as "rape" and "incest" as it has neither. If you read it carefully:

> Next, we'll talk about the "room you can't leave until you have sex"

> which as introduced as a measure to address the declining marriage rate and birthrate

I don't see why I wouldn't use this as an example.
by jacobgkau | 2025-12-11 23:11:44+00:00
Parental control software has existed for decades. It hasn't worked.

Over 70% of teenagers <18 today have watched porn [1]. We all know (many from experience) that kids easily get around whatever restrictions adults put on their computers. We all know the memes about "click here if you're 18" being far less effective than "click here if you're not a robot."

Yes, there were other ways of trying to solve the problem. Governments could've mandated explicit websites (which includes a lot of mainstream social media these days) include the RTA rating tag instead of it being a voluntary thing, which social media companies still would've fought; and governments could've also mandated all devices come with parental control software to actually enforce that tag, which still would've been decried as overreach and possibly would've been easily circumventable for anyone who knows what they're doing (including kids).

But at the end of the day, there was a legitimate problem, and governments are trying to solve the problem, ulterior motives aside. It's not legal for people to have sex on the street in broad daylight (and even that would arguably be healthier for society than growing up on staged porn is). This argument is much more about whether it's healthy for generations to be raised on porn than many detractors want to admit.

[1] https://www.psychologytoday.com/us/blog/raising-kind-kids/20...
by piker | 2025-12-11 23:12:36+00:00
These are all great points, and I will update the blog post to reflect them in the morning.

I believe this approach can work while retaining the most apparently-idiomatic mapping. What do you guys think?

impl IRibbonExtensibility_Impl for Addin_Impl {

unsafe fn GetCustomUI(&self, _ribbon_id: BSTR, out: *mut BSTR) -> HRESULT { log("GetCustomUI called()"); std::mem::forget(_ribbon_id); if out.is_null() { return windows::Win32::Foundation::E_POINTER; } unsafe { std::ptr::write(out, BSTR::from(RIBBON_XML)); } S_OK } }
by accrual | 2025-12-11 23:12:51+00:00
I feel it's not really applicable here. Pihole has the advantage of funneling all DNS traffic (typically UDP/53) to a single endpoint and making decisions about the request.

A user using an LLM is probably talking directly to the service inside a TLS connection (TCP/443) so there's not a lot of room to inspect the prompt at the same layer a Pihole might (unless you MITM yourself).

I think OP has the right idea to approach this from the application layer in the browser where the contents of the page are available. But to me it feels like a stopgap, something that fixes a specific scenario (copy/pasted private data into a web browser form), and not a proper service-level solution some have proposed (swap PII at the endpoint, or have a client that pre-filters).
by myself248 | 2025-12-11 23:12:55+00:00
Furthermore, this raises the possibility of a "de-debloater" that HDD users could run, which would duplicate the data into its loading-optimized form, if they decided they wanted to spend the space on it. (And a "de-de-debloater" to recover the space when they're not actively playing the game...)

The whole industry could benefit from this.
by opo | 2025-12-11 23:13:01+00:00
> ...which calls for "A New Pearl Harbor":

Reading through your link, I don't see how one can say it "calls for a "A New Pearl Harbor":

>...Further, the process of transformation, even if it brings revolutionary change, is likely to be a long one, absent some catastrophic and catalyzing event – like a new Pearl Harbor. Domestic politics and industrial policy will shape the pace and content of transformation as much as the requirements of current missions.

...

>...Absent a rigorous program of experimentation to investigate the nature of the revolution in military affairs as it applies to war at sea, the Navy might face a future Pearl Harbor – as unprepared for war in the post-carrier era as it was unprepared for war at the dawn of the carrier age.
by bitwize | 2025-12-11 23:13:02+00:00
> Same thing applies to other fields like chemical engineering, where people there maintain even stricter discipline. IUPAC nomenclature ensures that 2,2,4-trimethylpentane describes exactly one molecule. No chemist wakes up and decides to call it “Steve” because Steve is a funny name and they think it’ll make their paper more approachable.

Ummmmm...

https://en.wikipedia.org/wiki/List_of_chemical_compounds_wit...

"You sure 'bout dat? You sure 'bout dat?"

My favorite: there's a protein called "sonic hedgehog" that's essential to animal embryonic development. (All of the "hedgehog" family proteins would cause fruit flies to take on a spiky appearance when mutated, hence the name.) When chemists synthesized a drug that suppresses SHH protein's action, they named it "robotnikinin".