MurphyA/hacker-news huggingface dataset:
by ndr | 2025-08-23 16:26:21+00:00
Super glad to hear!

The worst offender is a slack notification[0] deep link into a PR I need to review.

It loads in stages, and the time from click to first diff is often so frustratingly long that I end up copying the PR ID and going to GitHub instead.

Sometimes I give up while Graphite is still loading and use the shortcut C-G to go to GitHub.

The second issue might be the landing page. I love what it shows compared to GitHub, but it's often slow to display loading blocks for things that haven’t even changed. Reloads are usually fast after that — until sometime later, maybe a day, when it slows down again.

I don't know why it feels worse than Linear, even though there are clearly many similarities in how it's supposed to load.

The guest instance isn’t so much about loading speed, but usage speed.

When I submit a stack of PRs, I get a nice carousel to fill in PR titles/descriptions and choose where to publish each PR. What’s missing for me there is access to files and diffs, so I can re-review before publishing. I often end up closing it and going back to the PR list instead.

[0] Thank God for those! You've made them much more useful than GitHub's. Also, the landing page is far more helpful in terms of what’s displayed.
by griffzhowl | 2025-08-23 16:26:29+00:00
> The only path forward is technological innovation to reduce or remove carbon emissions.

Jared Diamond said a funny thing in his book 'Collapse', when talking about the last person on Easter Island to have cut down a tree.

Easter Island had at one point been densely forested and supported a dense human population. When Europeans found it there were no trees and it was sparsely populated. It's thought that their famous Moai statues were rolled to the shore on logs, and trees were found plentifully according to the pollen record there.

Anyway, Diamond envisages the person cutting down the last tree as thinking "It's ok, technology will save us!"
by OptionOfT | 2025-08-23 16:26:40+00:00
I used to hike every morning before starting work. Absolutely lovely.

Currently waiting for a new hip, because for some reason I've worn mine out too soon.

Now, I won't say that the fact I'm in pain 24/7 isn't making me sad, but the fact that I don't come outside as often anymore really is not helping.
by nikolayasdf123 | 2025-08-23 16:26:53+00:00
interesting. so Go seem to be using unicode categories, which is part of unicode spec/standard. so it is fairly language agnostic.

> IsPrint == .. categories L, M, N, P, S and the ASCII space character.

how does that compare to this standard (RFC 9839)? (don't mind that this is Go. just consider same unicode categories).
by call518 | 2025-08-23 16:28:08+00:00
Features

Version Compatibility: Transparent PostgreSQL version support (12-17) - automatically detects your PostgreSQL version and adapts functionality accordingly with zero configuration

PostgreSQL Monitoring: Performance analysis based on pg_stat_statements and pg_stat_monitor with full backward compatibility

Structure Exploration: Database, table, and user listing with detailed schema information

Schema Analysis: Detailed table structure with columns, constraints, indexes, and relationships

Performance Analysis: Slow query identification and index usage analysis with version-aware query optimization

Capacity Management: Database and table size analysis

Bloat Analysis: Table bloat monitoring and dead tuple analysis with maintenance recommendations

VACUUM/Autovacuum Analysis: Comprehensive maintenance operation monitoring, effectiveness analysis, and real-time status tracking

Configuration Retrieval: PostgreSQL configuration parameter verification

Database Performance Statistics: Comprehensive transaction, I/O, and buffer cache analysis

I/O Performance Monitoring: Version-aware I/O statistics (comprehensive on PG16+, basic on PG12-15)

Background Process Monitoring: Version-aware checkpoint and background writer analysis (split on PG15+)

Table Statistics Monitoring: Version-aware comprehensive table usage and maintenance statistics (enhanced vacuum tracking on PG13+)

Replication Monitoring: Standby server conflict detection and replication lag analysis with version-compatible WAL status tracking

Function Performance Analysis: User-defined function execution statistics

Query Performance Analysis: Version-compatible pg_stat_statements integration (PG12: total_time mapping, PG13+: native columns)

Safe Read-Only: All operations are read-only and safe

Easy Customization: Simple and clean codebase makes it very easy to add new tools or customize existing ones
by libraryofbabel | 2025-08-23 16:28:57+00:00
Mathematician JE Littlewood was a big proponent of walking and shaving for ideas:

> “Illumination, which can happen in a fraction of a second, is the emergence of the creative idea into the conscious. This almost always occurs when the mind is in a state of relaxation, and engaged lightly with ordinary matters. Helmholtz's ideas usually came to him when he was walking in hilly country. There is a lot to be said for walking during rest periods, unpopular as the idea may be. Incidentally, the relaxed activity of shaving can be a fruitful source of minor ideas; I used to postpone it, when possible, till after a period of work.”

I also recommend walking, I leave shaving to the men to try, and would add that like many others the shower is my most happy place for ideas and hitting on the causes of difficult bugs.
by CharlesW | 2025-08-23 16:29:11+00:00
> What layer in the code stack should make the decisions about what characters to allow?

I was responding to the parent's empty sniping as gently as I could, but the answer to your (good) question has nothing to do with this RFC specifically. It's something that people doing sanitation/validation/serialization have had to learn.

The answer to your question is that you make decisions like this as a policy in your business layer/domain, and then you enforce it (consistently) in multiple places. For example, usernames might be limited to lowercase letters, numbers, and dashes so they're stable for identity and routing, while display names generally have fewer limitations so people can use accented characters or scripts from different languages. The rules live in the business/domain layer, and then you use libraries to enforce them everywhere (your API, your database, your UI, etc.).
by Kuyawa | 2025-08-23 16:29:14+00:00
If we extrapolate it all to JSON, all we need to do is add two lines to the data file to reference the JSLT source and then use any templating system as default (ejs, mustache, handlebars) to do the transformation in the browser

{ "JSLT": "1.0", "style": "/invoice.jsl", "data": { "invoice":{ "date": "2025-08-23", "customer": { "name": "John Doe", "address": { "line": "123 Sunny Boulevard", "city": "Miami", "state": "FL", "zip": "33133", }, }, "items": [ { "code": "123456", "description": "Some Apple gadget", "quantity": "1", "price": "1234.56", "total": "1234.56", }, { "code": "123457", "description": "Another Apple gadget", "quantity": "1", "price": "1234.57", "total": "1234.57", } ] } } }

Then the JSLT file:

<html> <body> <h2>Invoice</h2> <p><label>Date</label> <span><%=data.invoice.date%></span></p> <div> <h3>Customer</h3> <p><%=data.invoice.customer.name%></p> <p> <%=data.invoice.customer.address.line%> <%=data.invoice.customer.address.city%> <%=data.invoice.customer.address.state%> <%=data.invoice.customer.address.zip%> </p> </div> <table> <tr> <th>Code</th> <th>Description</th> <th>Quantity</th> <th>Price</th> <th>Total</th> </tr> <% for(item of invoice.items) { %> <tr> <td><%=item.code%></td> <td><%=item.description%></td> <td><%=item.quantity%></td> <td><%=item.price%></td> <td><%=item.total%></td> </tr> <% } %> </table> </body> </html>

Then we could get rid of XSLT
by atombender | 2025-08-23 16:29:20+00:00
I've worked with Java, C#, C++, etc., and I find that for all its faults, Go's minimalism strikes a balance between abstraction and concreteness that works just fine.

In practice, I've never struggled to write modular, extensible software. Like in any language you have to think about the boundaries between modules and layers, and how to design the interfaces between them to avoid spaghetti soup. It's not more difficult in Go, just different. Java's OO approach kind of inextricably pulls you towards AbstractSingletonProxyFactoryBean situations that just feel wrong to replicate in Go. A lot of the "performative" software structure kind of falls away and you end up with very concrete, readable code.

Go is often derided for being "too simple", but I think this kind of simplicity is underrated in our industry. I'm a fan of the Niklaus Wirth approach to software development. Go is basically a reskinned Modula 2 with GC and concurrency, and that it's the Wirth influence that drives its core design.

To be clear, Go is chock full of warts and faults, some of them quite egregious. But they're mostly about the practical aspects of the language (invasive error handling, lack of sum types and pattern matching, the badness of channels) that don't really relate to what you're talking about.
by usefulcat | 2025-08-23 16:30:22+00:00
I had a friend who got a job at Compaq after we graduated college in the 90s. He said they would frequently throw out an entire palette of mostly working hardware after having used it for testing.

He was able to snag a Pentium motherboard and a SCSI controller for me, and that's how I upgraded from a 486 to a Pentium.
by PeterWhittaker | 2025-08-23 16:30:31+00:00
Not at my Mac right now, but I've defined cmd-F[12] to move windows from one monitor to the other.

The trick is to capture the exact words you see in the Window menu, with the exact monitor name, and use those exact words when defining the keyboard shortcut.

A clunky PITA, but once setup, works like a charm.
by qiine | 2025-08-23 16:31:03+00:00
everything is more expensive, more complicated, fragile, and with subtle incompatibilities.

I fully understand people wanting per-buildt, I get it, building and configuring properly a computer that will last, is not easy..

like xmp(not activated by default hu?) EXPO intel cpu and amd cpu bring significant motherboard diff? :(, ATX 3.0 or ATX 3.1 psu? with 12VHPWR or 12V-2×6 connector??? what the gpu can caught fire now???? and it's actually not new and there is no solution???? case are not so simple to choose?? wdym I have to do market timing to get a GPU at a still ludicrous price!?
by ndriscoll | 2025-08-23 16:31:21+00:00
Why would it lead to more than them getting fired? What would be the crime? If the idea is that they've coerced/raped a prisoner, presumably that prisoner is making that allegation, and it's the rape allegation that gets investigated/tried, as with any other serious allegation of a crime. If it's consensual, that sounds like they're just not trustworthy to do their job and should be let go.
by haskellshill | 2025-08-23 16:31:42+00:00
If all your code depends on all your other code, yeah 200k lines might be a lot. But if you actually know how to code, I fail to understand why 200k lines (or any number) of properly encapsulated well-written code would be a problem.

Further, if you yourself don't understand the code, how can you verify that using LLMs to make major sweeping changes, doesn't mess anything up, given that they are notorious for making random errors?
by azinman2 | 2025-08-23 16:32:40+00:00
“Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith.”

I’d encourage you to “read again” the HN guidelines.

> Government shouldn't bail out anyone. Period. It should enact preferential policies like grants, tax cuts, subsidies etc. for industries they want to promote.

If Intel is at risk of going under, saving it is what’s understood to be “bailing out.” A grant that’s meant to save a major multi-billion dollar company isn’t quite what most people think of as a grant.
Show HN: Immutable AA Trees in Go
by ncruces | 2025-08-23 16:32:48+00:00
AA trees are a variation of the red–black tree, a form of binary search tree, named after their originator, Swedish computer scientist Arne Andersson.

I found them somewhat simpler to implement compared to other binary search trees. Particularly, the set operations (union/intersection/difference) based on the join primitive by Adams (which I've not seen described elsewhere for AA trees).

Trees are immutable: modifying a tree produces a new tree, which shares as much of the tree structure as possible with the original tree.

If you look at the code, much of the incidental complexity is to ensure immutability while avoiding unnecessary allocations as much as possible (a language with a generational garbage collector could do away with some of that for an even more straightforward implementation).
by thro1 | 2025-08-23 16:33:28+00:00
> The real reason for the removal is that Google, a profit seeking corporation, considers XSLT to be unprofitable.

> Of course, they can't say this out loud, so they instead have @mfreed7 cherry-pick some numbers as justification. ( https://github.com/whatwg/html/issues/11582#issuecomment-321... )

Mason Freed (mfreed7), XSLT, 2025,

Jorge Villalobos, 'legacy' Firefox extensions, 2017,

..Mitchell Baker, ..Peter Daszak never will be forgotten for years of programmers lives lost and the pain they causing.
by tharkun__ | 2025-08-23 16:33:51+00:00
It's an example. But not of that.

It's an example of old things being new again maybe. Or reinventing the wheel because the wheel wasn't known to them.

Yes I know, nobody wants to pay that tax or make that guy richer, but databases like Oracle have had JPPD for a long time. It's just something the database does and the optimizer chooses whether to do it or not depending on whether it's the best thing to do or not.
by phmarques | 2025-08-23 16:34:08+00:00
Hi HN

I’ve been working on a new app called Intake, an AI nutrition companion that goes beyond calorie counting. You can log meals (photo or text), track body composition via photos, record mood, and see your progress over time.

I’ve been a diehard Swift fan, so I’ll admit I had pretty low expectations going in. My memory of React Native was from years ago when it felt sluggish and “uncanny valley” compared to native apps. But I’ve been genuinely surprised at how far it’s come (Expo is great too):

- Performance: UI feels smooth, gestures and animations feel indistinguishable from Swift (with one or two exceptions).

- Native APIs: HealthKit, camera, photo processing, all integrated without much pain.

- Iteration speed: feature velocity is noticeably faster than with pure Swift.

There were still some rough edges (i.e navigation complexity), but overall RN in 2025 finally feels like it delivers on the “write once, run native” promise.

For those who tried RN years ago and bounced off: have you given it another shot recently?

Would also love to hear broader thoughts on the current state of cross-platform frameworks.
by massysett | 2025-08-23 16:34:09+00:00
The chat bot operator slurps all websites and gives answers to all questions free of charge.

No other website can compete with that.

The whole story with streaming media is not just that pay streaming became more convenient. It’s also that content creators used legal and business mechanisms to make piracy inconvenient. They shut down Napster. They send DMCA notices. They got the DMCA enacted. They got YouTube working for them by serving ads with their content and thus monetizing it.

Chat bots are just like Napster. They’re free-riding off the content others worked to create. Just like with Napster, making websites more convenient will be only part of the answer.
by jjani | 2025-08-23 16:34:27+00:00
It's very strange that we'd have to dive into their privacy policy to get a clear definition of it, but good spot.

The rest stands though - no models, no averages. User tovej below put it better than I did:

> The median does not move if the upper tail shifts, it only moves if the median moves.

> The fact that they do not report the mean is concerning. The mean captures the entire distribution and could actually be used to calculate the expected value of energy used.

> The median only tells you which point separates the upper half from the lower half, if you don't know anything else about the distribution you cannot use it for any kind of analysis

49% of queries could be costing 1000x that median. Stats 101 combined with a sliver of critical reading reveals this report isn't worth the bytes it's taking up.
by csande17 | 2025-08-23 16:34:54+00:00
I could be mistaken, but I think Python cares about making sure strings don't include any surrogate code points that can't be represented in UTF-16 -- even if you're encoding/decoding the string using some other encoding. (Possibly it still lets you construct such a string in memory, though? So there might be a philosophical dispute there.)

Like, the basic code points -> bytes in memory logic that underlies UTF-32, or UTF-8 for that matter, is perfectly capable of representing [U+D83D U+DE00] as a sequence distinct from [U+1F600]. But UTF-16 can't because the first sequence is a surrogate pair. So if your language applies the restriction that strings can't contain surrogate code points, it's basically emulating the UTF-16 worldview on top of whatever encoding it uses internally. The set of strings it supports is the same as the set of strings a language that does use well-formed UTF-16 supports, for the purposes of deciding what's allowed to be represented in a wire protocol.
by superkuh | 2025-08-23 16:35:16+00:00
It's funny because I can no longer view his website's web pages because he implemented a broken by default "anti-bot" system that blocks anything that's not a corporate browser from $latestyear.

> You're using a suspiciously old browser

>You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace, the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions of Chrome). Unfortunately, as of early 2025 there's a plague of high volume crawlers (apparently in part to gather data for LLM training) that use a variety of old browser user agents, especially Chrome user agents. To reduce the load on Wandering Thoughts I'm experimenting with (attempting to) block all of them, and you've run into this.

>If this is in error and you're using a current version of your browser of choice, you can contact me at my current place at the university (you should be able to work out the email address from that). If possible, please let me know what browser you're using and so on, ideally with its exactl User-Agent string.

Hopefully I solved his email address riddle.
by pixl97 | 2025-08-23 16:35:21+00:00
I think part of the Amish line of thought is instead of randomly and quickly adopting technology/growth a community should take time to understand what the impacts are of using them.

Some people think Amish don't use electricity, but that's not true. You'll find quite a few of them with things like solar panels and LED lights. These things tend to have very long lifespans and no grid connections limiting needs from outsiders.
by oceanplexian | 2025-08-23 16:36:08+00:00
> Does modern mesopotamia seem like a great place for the birthplace of agriculture?

Actually yes, if not for the massive cultural and political dysfunction.

Modern Day Mesopotamia would be one of the most agriculturally productive regions in the world if managed. Like the California Central Valley and Central Arizona which share similar climate classifications and are the most productive regions (per Acre) on the planet.
by nikolayasdf123 | 2025-08-23 16:36:32+00:00
zero value. container-agnostic initialization. say your type is not struct anymore, you would not have to change the way you intialize it. what you care here is zero value, and let the type figure out that it is zero and use methods appropriately. and it is just more clean this way

here is google guideline: https://google.github.io/styleguide/go/best-practices#declar...
by dcrazy | 2025-08-23 16:37:01+00:00
The Unicode spec itself is designed around UTF-16: the block of code points that surrogate pairs would map to are reserved for that purpose and explicitly given “no interpretation” by the spec. [1] An implementation has to choose how to behave if it encounters one of these reserved code points in e.g. a UTF-8 string: Throw an encoding error? Silently drop the character? Convert it to an Object Replacement character?

[1] https://www.unicode.org/versions/Unicode16.0.0/core-spec/cha...
by swader999 | 2025-08-23 16:37:23+00:00
I wrote three sub agents this week, one to run unit tests, another to run playwright and a third to write playwright. These are pretty basic boundaries that aren't hard to share context between agent and the orchestrating main agent. It seemed to help a lot. I also have complex ways to run tests (docker, data seeding, auth) and previously it was getting lost. Only compacted a couple times. Was a big improvement.
by bwfan123 | 2025-08-23 16:37:32+00:00
A letter to shareholder should assume that anyone who has some basic business sense should be able to understand it. I think Buffet says something along the lines that it should make sense to an average shareholder. To this end, the communication has to simplified to make sense.

But this letter in the last 5 paragraphs appears abstruse. What the heck is he trying to say ? It appears to me that the CEO is saying something that makes sense to the 5 friends he hangs out with at a silicon valley pub, ie witty, clever and cute. But not to the average shareholder.
by zdc1 | 2025-08-23 16:37:51+00:00
It's another version of how gym memberships get you. Everyone errs on the side of over-committment and they get to make more money.

I've found I'm better off paying extra for a shorter duration until I've validated that I'll be using my subscription in 3/6/12 months from now. E.g. recently with Duolingo I ended up only paying for it on a monthly rate for about 4 months, and that wasn't even because I'd quit learning, I'd just found a much better app.
by layer8 | 2025-08-23 16:37:55+00:00
Also known as UCS-2: https://www.unicode.org/faq/utf_bom.html#utf16-11

Surrogate pairs were only added with Unicode 2.0 in 1996, at which point Windows NT and Java already existed. The fact that those continue to allow unpaired surrogate characters is in parts due to backwards compatibility.
by neilv | 2025-08-23 16:38:45+00:00
Thank you, that's interesting and a concern.

Do you have pointers to information about the governance and legitimacy of CoMaps?

(I see a mention that it's non-profit, but no statement about what kind of non-profit, not even on the donate page where that info is customary and relevant for US tax reasons. Also, I see no mention of who's who, nor how they operate.)

The closest I find is this:

https://www.comaps.app/support/what-is-the-comaps-history/

> As a result of the issues not being resolved, in April 2025, the community of former Organic Maps contributors created the CoMaps project, based on the Organic Maps open-source code.

If what that sounds like is true (that it does represent the community of contributors), it still will be important to have safeguards against someone taking over the project.

Or, if what that sounds like isn't true, that could be bad.

One matter that will have to be resolved with governance (if it hasn't already), is that there's what looks like an allegation that the CoMaps project is already tainted with code to which is expressly doesn't have license:

https://codeberg.org/comaps/comaps/pulls/1039#issuecomment-6...

A concern is that a funded commercial competitor could bankrupt a less-funded volunteer project with lawyer fees just arguing the merits of that.