MurphyA/hacker-news huggingface dataset:
by jact | 2025-08-22 11:40:58+00:00
I worked briefly on extending an Go static site generator someone wrote for a client. The code was very clear and easy to read, but difficult to extend due to the many rough edges with the language. Simple changes required altering a lot of code in ways that were not immediately obvious. The ability to encapsulate and abstract is hindered in the name of “simplicity.” Abstraction is the primary way we achieve simple and easy to extend code. John Ousterhoust defined a complex program as one that is difficult to extend rather than necessarily being large or difficult to understand at scale. The average Go program seems to violate this principle a lot. Programs appear “simple” but extension proves difficult and fraught.

Go is a case of the emperor having no clothes. Telling people that they just don’t get it or that it’s a different way of doing things just doesn’t convince me. The only thing it has going for it is a simple dev experience.
by m_fayer | 2025-08-22 11:41:10+00:00
Your comment sounds hyperbolic at first blush. But the more I think and observe and read about incoming evidence, it seems correct.

And if we take that as fact, that means Zuck's culpability is nigh unprecedented in private enterprise. The mega-scale profiteering of Apple & Microsoft & Amazon distort markets and elbow out competition but that doesn't compare to the personal misery and destabilization and resulting downstream poverty and violence caused by social media. Purveyors of booze and cigarettes are closer, but those things never threatened democracy or global order. Fossil fuel companies may contribute to climate change, but no one can saddle them with full moral responsibility for selling a product that's the lifeblood of the world. Weapons manufacturers didn't start the wars or cause the instability.

So Zuck and his algorithmic friends - what to make of them? The mind boggles.
by nullc | 2025-08-22 11:41:45+00:00
not just non-programmers. It's a common problem with jr programmers and good programmer internships (for example) make it a point of forcing the interns to expose themselves ASAP to get over it.

I think if everyone goes into it knowing that it'll be part of what they publish it would be less of an issue.

I mean, unless you're all a bunch of freaks who have instructed your LLM to cosplay as Slave Leia and can't work otherwise, in which case your issues are beyond my pay grade. :P
by sgarland | 2025-08-22 11:42:03+00:00
I love Python, but the sheer number of caveats and warnings for __del__ makes me question if this person has ever read the docs [0]. My favorite WTF:

> It is possible (though not recommended!) for the __del__() method to postpone destruction of the instance by creating a new reference to it. This is called object resurrection.

[0]: https://docs.python.org/3/reference/datamodel.html#object.__...
by tstactplsignore | 2025-08-22 11:42:07+00:00
Well, Bluesky is an open-source, algorithmless, decentralizable community platform with crowd sourced opt-in moderation, so it's the place to go for free speech, as opposed to the website run by the guy who bans people who disagree with him, has an AI he wants to rewrite history with, right, and has an algorithm preferentially promote his political views? This is common sense stuff to be honest
by caspar | 2025-08-22 11:42:19+00:00
Stash was not an acquisition. Stash was built from the ground up inside Atlassian during its golden age, by a bunch of engineers who really cared about performance. Though it helped that they didn't have Jira's 'problem' of having 8 figures of revenue hanging off a terrible database schema designed a decade ago.

You might be thinking of Fisheye/Crucible, which were acquisitions, and suffered the traditional fate of being sidelined.

(You are 100% correct that Stash/Bitbucket Server has also been sidelined, but that has everything to do with their cloud SaaS model generating more revenue than selling self-hosted licenses. The last time I used it circa 2024, it was still way faster than Bitbucket Cloud though.)

Source: worked at Atlassian for a long time but left a few years ago.
by yourapostasy | 2025-08-22 11:44:23+00:00
> ...an AML form that needs filling in if the sales go through...If that’s not overreach, I don’t know what is.

Absent a complete dismantling of AML oversight (and I do have empathy for those free market purists who want to wholesale toss out KYC and AML, but for now in practice we have to deal with what are on the books), these are difficult use cases to address. These kinds of edicts don’t usually say, “any retirees buying even economy cars must fill this out”, it is usually broadly applied like, “all car dealerships must do this for all transactions no exceptions”. And these laws are often a lagging reaction to various sham transactions uncovered as a result of crime busts.

Once you start weaving “reasonable” exceptions to address the overreach, the scammers start to come up with sham transactions that fit the exceptions filter. It’s a pretty fascinating problem.

There are many who would still object to a system where your mother doesn’t fill out a form. Instead her banking app pings her to confirm that she is purchasing a Yaris from the dealership (looking at the other comments here, it seems anonymous large transactions scattered through many people with otherwise clean records are a common laundering pattern, so metadata on the nature of the transactions might be one way to counter that kind of structuring, but alas that’s overreach for many), and uses her financial history in the background as the AML controls rails.

I’d love to see AML professionals participate in this thread to help us learn what they’re really facing. Assuming we have to put up with it for the time being, might as well design and make its implementation as low friction for lawful people as possible.
by tstactplsignore | 2025-08-22 11:45:08+00:00
Ummm... you know that Bluesky is the social network that permits anyone to say anything, right? Like, that's just how it works? That the open source decentralizable community moderation opt in website is the free speech website and the website run by a billionaire with an algorithm and AI designed to promote his political views isn't? Right?
by the_duke | 2025-08-22 11:46:04+00:00
I personally don't like Go, and it has many shortcomings, but there is a reason it is popular regardless:

Go is a reasonably performant language that makes it pretty straightforward to write reliable, highly concurrent services that don't rely on heavy multithreading - all thanks to the goroutine model.

There really was no other reasonably popular, static, compiled language around when Google came out.

And there still barely is - the only real competitor that sits in a similar space is Java with the new virtual threads.

Languages with async/await promise something similar, but in practice are burdened with a lot of complexity (avoiding blocking in async tasks, function colouring, ...)

I'm not counting Erlang here, because it is a very different type of language...

So I'd say Go is popular despite the myriad of shortcomings, thanks to goroutines and the Google project street cred.
by Buttons840 | 2025-08-22 11:46:29+00:00
And it's perfect for most business software, because most businesses are not focused on building good software.

Go has a good-enough standard library, and Go can support a "pile-of-if-statements" architecture. This is all you need.

Most enterprise environments are not handled with enough care to move beyond "pile-of-if-statements". Sure, maybe when the code was new it had a decent architecture, but soon the original developers left and then the next wave came in and they had different ideas and dreamed of a "rewrite", which they sneakily started but never finished, then they left, and the 3rd wave of developers came in and by that point the code was a mess and so now they just throw if-statements onto the pile until the Jira tickets are closed, and the company chugs along with its shitty software, and if the company ever leaks the personal data of 100 million people, they aren't financially liable.
by bluescrn | 2025-08-22 11:46:43+00:00
It's no escape from the angry political stuff, it's just a jump from one end of the political spectrum to the other.

Best to just cut down the social media usage. Twitter-style social media isn't a good place to have deep and meaningful discussions of anything.

Shame though, way back before Trump/Brexit and the era of extreme tribalism, Twitter was full of interesting creative and technical stuff :(
by gwd | 2025-08-22 11:46:57+00:00
So sometimes you want it lexical scope, and sometimes function scope; For example, maybe you open a bunch of files in a loop and need them all open for the rest of the function.

Right now it's function scope; if you need it lexical scope, you can wrap it in a function.

Suppose it were lexical scope and you needed it function scope. Then what do you do?
by homanp | 2025-08-22 11:48:09+00:00
I was experimenting with different injection techniques for a model dataset and came across something… concerning.

If a file contains instructions like “run this shell command,” Cursor doesn’t stop to ask or warn you. It just… runs it. Directly on your local machine.

That means if you:

1) Open a malicious repo 2) Ask to summarize or inspect a file

…Cursor could end up executing arbitrary commands — including things like exfiltrating environment variables or installing malware.

To be clear:

- I’ve already disclosed this responsibly to the Cursor team. - I’m redacting the actual payload for safety. - The core issue: the “human-in-the-loop” safeguard is skipped when commands come from files.

This was a pretty simple injection, nothing facing. Is Cursor outsourcing security to the models or do they deploy strategies to identify/intercept this kind of thing?

Feels like each new feature release could be a potential new attack vector.
by diggan | 2025-08-22 11:48:12+00:00
> IMHO. While prompting is something one can get better at, you're still just rolling the dice and waiting to see whether the output is delightful or dismaying.

You yourself acknowledge someone can better than another on getting good results from Stable Diffusion, how is that in any way similar to slot machine or rolling the dice? The point of those analogies is precisely that it doesn't matter what skill/knowledge you have, you'll get a random outcome. The same is very much not true for Stable Diffusion usage, something you seem to know yourself too.
by bell-cot | 2025-08-22 11:48:33+00:00
You'd really want a siding with (RR-specific) electrical connections, no noisy/smelly industry next to you, decent views, an elevated platform, and some parking spaces.

They're darn rare, but do exist. If I was Old Money, I'd probably build more in a few in beautiful spots - and freely loan 'em to my peers, as a social networking thing.
by zwnow | 2025-08-22 11:48:50+00:00
> Wait, what? Why is err reused for foo2()? Is there’s something subtle I’m not seeing? Even if we change that to :=, we’re left to wonder why err is in scope for (potentially) the rest of the function. Why? Is it read later?

First time its assigned nil, second time its overwritten in case there's an error in the 2nd function. I dont see the authors issue? Its very explicit.
by klabb3 | 2025-08-22 11:48:56+00:00
Disagree. Most critiques of Go I've read have been weak. This one was decent. And I say that as a big enjoyer of Go.

That said I really wish there was a revamp where they did things right in terms of nil, scoping rules etc. However, they've commited to never breaking existing programs (honorable, understandable) so the design space is extremely limited. I prefer dealing with local awkwardness and even excessive verbosity over systemic issues any day.
by nikolayasdf123 | 2025-08-22 11:49:07+00:00
I 80% of time use structs. common misunderstanding: it does not reduce performance for pointer vs value receivers (Go compiler generates same code for both, no copy of struct receiver happens). most of structs are small anyways, safe to copy. Go also automatically translates value receivers and pointer receivers back-and-forth. and if I see pointer I see something that can be mutated (or very large). in fact, if I see a pointer, I think "here we go.. will it be mutated?". written 400,000 LOC in Go, rarely seeing this issue.
by ben0x539 | 2025-08-22 11:49:10+00:00
Few things are truly forced upon me in life but walking away from everything that I don't like would be foolish. There is compromise everywhere and I don't think entering into a tradeoff means I'm not entitled to have opinions about the things I'm trading off.

I don't think the article sounds like someone didn't take the time to grasp the language. It sounds like it's talking about the kind of thing that really only grates on you after you've seriously used the language for a while.
by Saline9515 | 2025-08-22 11:50:24+00:00
On the contrary, your OP claims that dissertations require a rehash of the references cited in class. A real dissertation exercises logic and requires mobilizing facts and verbal precision to ground arguments. It is also highly teacher-dependent: if the correction is lax or not properly explained, you won’t understand what the exercise really is or how you are supposed to think in order to succeed.
by gwd | 2025-08-22 11:50:28+00:00
Anyone want to try to explain what he's on about with the first example?

bar, err := foo() if err != nil { return err } if err := foo2(); err != nil { return err }

The above (which declares a new value of err scoped to the second if statement) should compile right? What is it that he's complaining about?

EDIT: OK, I think I understand; there's no easy way to have `bar` be function-scoped and `err` be if-scoped.

I mean, I'm with him on the interfaces. But the "append" thing just seems like ranting to me. In his example, `a` is a local variable; why would assigning a local variable be expected to change the value in the caller? Would you expect the following to work?

int func(a *MyStruct) { a = &MyStruct{...} }

If not why would you expect `a = apppend(a, ...)` to work?
Show HN: PDJsonEditor – JSON editor with code↔graph sync and API fetch (OSS)
by korone | 2025-08-22 11:51:16+00:00
Link: https://json.podosoft.io Source: https://github.com/podosoft-dev/pdjsoneditor Docker: ghcr.io/podosoft-dev/pdjsoneditor:latest

We built an open-source JSON editor to reduce context-switching between an editor, a viewer, and an API client.

What it does: - Keeps code and an interactive graph in sync (click a node → jump to code) - Multi-tab editing with autosave; import/export JSON - Fetch JSON from APIs (GET/POST/PUT/PATCH/DELETE, headers/body) - Collapses large arrays (“show more”), quick navigation for deep structures

Why: Debugging large/nested JSON or API payloads felt slow with either plain text editors or simple tree viewers. We wanted a visual map and an editor that stay in lockstep.

Looking for feedback on: 1) Performance with big files (~10MB+ / deeply nested) 2) Navigation UX for large graphs 3) Next features: JSON Schema validation, JSONPath queries, diff/merge

Tech notes: Svelte + SvelteKit, @xyflow/svelte for the graph, Dagre for layout, TypeScript. Privacy: Runs in the browser; no data is sent to a server (network only when you fetch a URL). License: MIT. Contributions welcome—especially perf optimizations or visualization ideas.
by OutOfHere | 2025-08-22 11:51:29+00:00
It sounds like an utterly lazy government that cannot go after actual crime. I would never vote for such a government.

Meanwhile, the same corrupt government gives a free pass to its buddies devastating the planet with digging for oil and gas, destroying sea life with major leaks, and stops renewables from succeeding. See the current administration. The government permanently destroys farmland by using PFAS mulch as fertilizer, making the soil poison.

The difference between this country and others is only that corruption is legalized here.

Thr problem with people at such regulatory agencies is they drink their own koolaid a bit much.
by zelphirkalt | 2025-08-22 11:52:31+00:00
I remember how in a previous job the code formatter cost me time and time again. I already intentionally format my code as it makes sense and with the goal of improving readability. Then the damn auto formatter comes along and destroys this, by splitting a log call over 5 lines, because it has seen, that the log call is longer than 80 characters. Thank you for wasting 5 LoC of screen space for something that is a sidenote basically. That'll surely improve readability. So what do people do? They increase line length to 200 characters, to avoid this shit happening. Only that now it does no longer break long lines that should be broken. Unless I added trailing comma everywhere, wasting more time to make the formatter behave properly.

I am not against auto formatters in general, but they need to be flexible and semantically aware. A log call is not the same as other calls in significance. If the auto formatter is too silly to do that, then I prefer no auto formatter at all and keep my code well formatted myself, which I do anyway while I am writing the code. I do it for my own sake and for anyone who comes along later. My formatting is already pretty much standard.
by mdrzn | 2025-08-22 11:52:36+00:00
"I built MixHub because I was frustrated with juggling multiple subscriptions and paywalls just to use different AI models"

You were frustrated with having to do it once, so now you made it your "job"? To keep up juggling multiple subscriptions and paywalls to let your users use mixhubai?

What's the difference between this and OpenRouter or other similar solutions already on the market?

Pricing:

800 credits/month Up to 8000 Standard chats/month Up to 800 Advanced chats/month Up to 800 images/month Up to 160 videos/month

Why don't you just explain what a credit does? Is it 1 credit per chat? 1 credit per image?
by astrobe_ | 2025-08-22 11:52:43+00:00
It is strange to me that people obsess on programming in-game with "red stone" etc. That said I am dayjob programmer so the last thing I want to do on my free time and is to program stuff.

I made a game that uses the Luanti "voxel" engine (MC-likes games of course, but also transposition of other genres), and even programming that is bit of a chore but that's the price to pay to play the game you want to play (there's much more to that than just programming/modding; game design is a rabbit hole).

But I think that it would be more rewarding for those who are curious about programming to start modding, especially in Luanti because it is relatively well documented and it's Lua. In a way, making it rain with the programmable particle spawner the engine provides is a loot box locked by an API, with hints on how to open it in the docs ;-)
by jact | 2025-08-22 11:52:48+00:00
I think with C or C++ devs, those who live in glass houses shouldn’t throw stones.

I would criticize Go from the point of view of more modern languages that have powerful type systems like the ML family, Erlang/Elixir or even the up and coming Gleam. These languages succeed in providing powerful primitives and models for creating good, encapsulating abstractions. ML languages can help one entirely avoid certain errors and understand exactly where a change to code affects other parts of the code — while languages like Erlang provided interesting patterns for handling runtime errors without extensive boilerplate like Go.

It’s a language that hobbles developers under the aegis of “simplicity.” Certainly, there are languages like Python which give too much freedom — and those that are too complex like Rust IMO, but Go is at best a step sideways from such languages. If people have fun or get mileage out of it, that’s fine, but we cannot pretend that it’s really this great tool.
by cluckindan | 2025-08-22 11:52:56+00:00
For every action, there is an opposite and equal reaction. For example, there is a correlation between the acceleration and deceleration of colliding objects: inertia is transferred, not created or destroyed.

Similarly, for every chemical and nuclear reaction, when something is gained, something else is lost. For example, when two ions bond covalently by sharing electrons, a new molecule is gained, but the two ions are no longer what they previously were. So there is a correlation between gain of reaction products and loss of reactants.

But perhaps such analogies cannot be found everywhere in theoretical physics. Perhaps such a non-correlation would be a sign of a novel discovery, or a sign that a theory is physically invalid. It could be a signal of something for sure.
by rbinv | 2025-08-22 11:54:09+00:00
From the abstract:

> This photonic-architectured cement achieved a temperature drop of 5.4°C during midday conditions with a solar intensity of 850 watts per square meter. This supercool cement featured intrinsic high strength, armored abrasive resistance, and optical stability, even when exposed to harsh conditions, such as corrosive liquids, ultraviolet radiation, and freeze-thaw cycles. A machine learning–guided life-cycle assessment indicated its potential to achieve a net-negative carbon emission profile.
by YetAnotherNick | 2025-08-22 11:54:30+00:00
What does this mean? Do they just use recover and keep bad data?

> The standard library does that. fmt.Print when calling .String(), and the standard library HTTP server does that, for exceptions in the HTTP handlers.

Apart from this most doesn't seem that big of a deal, except for `append` which is truly a bad syntax. If you doing it inplace append don't return the value.
by andy_ppp | 2025-08-22 11:54:52+00:00
They are forcing people to write Typescript code like it’s Golang where I am right now (amongst other extremely stupid decisions - only unit test service boundaries, do not pull out logic into pure functions, do not write UI tests, etc.). I really must remember to ask organisations to show me their code before joining them.

(I realise this isn’t who is hiring, but email in bio)
by fabian2k | 2025-08-22 11:54:55+00:00
There are real pain points with async/await, but I find the criticism there often overblown. Most of the issues go away if you go pure async, mixing older sync code with async is much more difficult though.

My experience is mostly with C#, but async/await works very well there in my experience. You do need to know some basics there to avoid problem, but that's the case for essentially every kind of concurrency. They all have footguns.
by TYPE_FASTER | 2025-08-22 11:55:12+00:00
My Twitter account was hijacked earlier this year. I created it in 2007 using an e-mail address on a domain I've owned since 1999. Multiple attempts to recover the account have been rejected.

I created a new account. Since I'm not following anybody, I see a random-ish feed of things.

It's kinda jarring going from a feed of tech science music to misinformation getrichquick scams and reposted viral content. Like woah.
by ACCount37 | 2025-08-22 11:55:21+00:00
That's copium.

The proper name for it is "AI effect", but the word "copium" captures the essence perfectly.

Humans want to feel special, and a lot of them feel like intelligence is what makes them special. So whenever a new AI system shows a new capability that was thought to require intelligence? A capability that was once exclusive to humans? That doesn't mean it's "intelligent" in any way. Surely it just means that this capability was stupid and unimportant and didn't require any intelligence in the first place!

Writing a simple short story? Solving a college level math problem? Putting together a Bash script from a text description of what it should do? No intelligence required for any of that!

Copium is one hell of a drug.