skysight-inc/HackerNews huggingface dataset:
Show HN: Fifty – A game where you sum numbers until you clear the board
Hey everyone, I'm Fabio, a very long time lurker here.

Today I want to celebrate and share with you a game that I conceived more than 8 years ago.

Now, don't get me wrong, it didn't take that long to actually build it, but it took all this time to publish it, because, well, life happened...

So, what is it about? It's a game where the main goal is to sum the number that matches the one in the center until the board is cleared out. Numbers get removed from the board when the sum reaches or goes over 50. Sounds easy?

It all started back in 2014 when the game 2048 got published (which just recently celebrated 10 years! [1]) and, after playing it for a while, I started thinking about building something similar; but I didn't want to create one of the many clones. That intention didn't last long, as I totally forgot about it and worked on other projects.

Then after a couple of years of mainly working on backend stuff, I wanted to experiment a bit with React and that new thing called React Native: that was an occasion to finally think about a game to build with them! And there it was, some initial concept sketched on paper, then in a spreadsheet file, and then some code that brought it to a "digital" life. It was 2016. And it stayed there for all this time.

That was only an experiment, never meant to be published, and it again faded out from my mind pretty quickly because of other things I was working on (watch out for that shiny object syndrome!).

Until recently, when I was cleaning/organizing a bit some folders and repositories, and that project came up again. It was ugly, but I still enjoyed playing it, so I decided to refresh it a bit.

But this time if I was doing it I'd have to publish it at some point, no matter what. So here we are.

Even though I ended up rewriting most of it, I still kept it in React (and Next.js) deployed on Cloudflare Pages; and I'm finishing polishing up the mobile apps a little bit (will be ready soon!) built in React Native and Expo. While the backend is a vanilla Rails API with Postgres and Redis, nothing too fancy.

After all this time, it's just so refreshing to finally being able to share it.

I'd say that the big take away of this story is to "just do it" and press that "publish" button at some point!
And yes, it could be built&published in a weekend, or maybe even less with a LLM; but that's not the point :)

I'd love to know what you think about it. I'll try to answer to everyone during / before the end of the day.

A small trivia: today's %d+%y=50

[1]: https://news.ycombinator.com/item?id=41934746
Nvidia's new AI audio model can synthesize sounds that have never existed
> My beard is graying and it's annoying me excessively.

So is mine, and now I've lost most of the hair on my head I shave it so completely bald.

But I've learnt to accept it. I don't like it, and wish it was different. There's nothing I can do and I have plenty of more pressing problems to worry about.

So I keep fit and eat reasonably healthily. So even though I look old, I don't have to act it
Ah, sorry. Shoulda said: WebAssembly component model.
I would love to see a model focusing on making virtual instruments.

There are sample-based virtual instruments, but they do miss some subtleties, and there are physics-based ones where some subtleties are preserved, but generally worse sounding because actually modelling real hardware evolved over centuries is really difficult.

Even hardware-based instruments like electric guitars/violins/cellos etc. generally sound distinct from and less interesting than their acoustic counterparts. Electric guitar players seem to use various amplifier tricks to make up for that, and that's now a big separate instrument. But I think the point stands.
What does Redis do that you can’t do trivially with something else?

Postgres or SQLite for example.
What does make exceptions bad in my opinion (and shared by Go developers?) is a few things:

1. Exceptions are expensive (at least in Java / C#), as they generate a stack trace every time. Which is fine for actually exceptional situations, the equivalent of `panic()` in Go, but:

2. Exceptions are thrown for situations that are not exceptional, e.g. files that don't exist, database rows that don't exist, etc. Those are simple business logic cases. The workaround is defensive coding, check if the file exists first, check if the row exists? that kind of thing.

3. The inconsistency between checked and unchecked exceptions.

4. Distance - but this is developer / implementation specific - between calling a function that can throw an error and handling it.

But #2 is the big one I think. Go's error handling is one solution, but if it's about correct code, then more functional languages that use the Either pattern or whatever it's called formally are even better. Go's approach is the more / most pragmatic of the options.
I have extensive experience, and the only other country I can think of where ridesharing apps are straight up banned is Mongolia. The last major holdout was Japan, which until recently only allowed licensed taxis to be hailed, but they've started experimenting with liberalization as well.

Uber's own stats are 9.4 billion trips across 161 million users in 2023, and this excludes those markets where it has withdrawn in favor of other rideshare providers (Didi, Bolt, Grab, Yandex, Careem, etc).
Since no amount of us being scared is going to make any difference whatsoever, I'd say no.
Yeltsin was purged from the party because he gave a "secret speech" calling for more aggressive economic reforms, and then placed under so much pressure he tried to commit suicide. The tradition of shooting messengers was alive and well in the USSR.
Worker Autonomy: A Natural Law of Labor – By Adam Ard
Since phone (and internet) is not mail, the U.S. Supreme Court ruling that "no law of Congress can place in the hands of officials connected with the Postal Service any authority to invade the secrecy of letters and such sealed packages in the mail; and all regulations adopted as to mail matter of this kind must be in subordination to the great principle embodied in the fourth amendment of the Constitution" is completely irrelevant /s
I knew people who "groomed" a zebiba, for lack of a better term. I don't doubt that some people who have one are not doing it for show (otherwise who are they emulating?). Whether or not it's fashionable depends on your social circle, I assumr
"Because the world is the creation of a likely optimal being, it can achieve only the “best possible” state short of divine likely optimisation"?

If understood in a very mystic transcending meaning of "creation" maybe, otherwise it reads still like dogma to me.
I wonder if anyone left his uncut so he could show it off later? It would certainly be more attractive to numismatics later on.
There were multiple motives for that move, notably however not among those an attempt to curb inflation.
I think is called write after write (WAW) if I remember correctly.
Driving licence is a bad argument because there is public transportation service. If you're reckless or have other issues the licence is revoked.
Exactly.

Back in the day it was a major milestone for video game projects to "go gold". It meant that the rigorous QA process was passed, and that retail copies were ready to be manufactured. Since that involved significant costs and physical logistics, companies certainly didn't want major bugs shipped at this stage. There were some exceptions, but ultimately this led to much higher customer satisfaction. Removing this "inconvenience" for companies and allowing them to ship updates and fixes at any point is a major reason why most modern game releases are a clusterfuck at day one. They treat it as public betas, and day one customers (or, worse, preorder suckers) are testers and a replacement for a QA process they don't have. It's essentially crowdsourced development. This also allows them to hype the game up to boost initial sales, and then go "oops, sorry" while they finish implementing it. This scam has been pulled numerous times over the past decade+, yet these companies keep doing it because it's profitable and there's no legal accountability for it.

The fact these practices are now seeping into software on which human lives depend is criminal, and should be prosecuted and strictly regulated.
It probably has a heuristic for it
Yeah I think the author of this article had some subjective understanding and experience. I don't mean to diminish it but it's definitely something I and other (but not all) Muslims find foreign
But it works vastly better than anything Tesla has made so what does that say about Tesla?
For the homeless, the ratio of meaningful human interactions to total human interactions would be an astoundingly low number.
> And since Go is so readable, theoretically getting the core functionality out and rewriting it in a more specialized language would be fairly straightforward.

You'll have to rewrite your whole program (or at least factor out the "core" part you care about into a separate binary and talk to it via IPC or network) because Golang has terrible FFI as pointed out by OP.
The thing is, I no longer trust any news source. They all exist to serve their agenda, while rarely providing the real picture. So there is no way for me, as a regular citizen, to truly know what happens in the world or a particular regional conflict.

So while I do worry that there might be a bigger war, I also realize that the picture painted by the news, or the "promises" that different country leaders make, are meant to serve two goals: (1) keeping the general public in constant fear, and (2) making them (the leader) appear strong/decisive in a regional/international arena.
Finland maybe? My understanding is they don’t have private schools.
You're only paying for the hard drive (and the VPC stuff, if you want to be pedantic). The downside is that if you try to start your instance, they might not start if AWS doesn't have the capacity (rare but have seen it happen, particularly with larger, more exotic instances.)
Are Shopify wholesale merchants in need of another bulk buying solution?
At work I am a dev working in a team building extendcommerce.com, my question is there are already a bunch of b2b or wholesale solutions out there for Shopify, is there a need for another one?
His criticisms include:

- No sum types

- Default zero values

- "Go is an island": Fully integrated toolstack makes it easy to use the same tool top-to-bottom, but makes it difficult to use with any other project

None of those are lies; apart from the first, they all have advantages and disadvantages. Sure, there's an advantage to forcing you to specify every value, but there are disadvantages too. And sure, there are disadvantages from Go being an "island", but he lists some of the advantages right there in his post.

If those are deal-breakers for him, then sure, go use something else. But lots of us like the advantages more than we dislike the disadvantages.
I don't agree that that's what it's marketed towards, but it was designed with those in mind. That said, experienced developers can enjoy it too, as code is just a means to an end and code complexity or cleverness does not make for good software in the broader sense of the word.

It's a Google solution to Google scale problems, e.g. codebases with millions of lines of code worked on by thousands of developers. Problems that few people that have an Opinion on Go will ever encounter.
At the very start of the post:

> At the beginning of the year, I wrote a bunch of articles on the various tricks DOS played to overcome the tight memory limits of x86’s real mode.

With link to an article.
This feels like an incredibly elaborate way to say that he's a morning person. There's plenty of people for whom the entire thing works the exact opposite, and of course loads of people everywhere in between. I wouldn't really read deep into this, it's one of those takes that tries really hard to sound profound, but it really isn't.
cDc will always hold a special nostalgic place with me. Takes me back to middle school and high school in the 90s, well before I knew that I was going to become a programmer - sharing software on floppies and later burnt CDs... Dialing up BBSes... Learning the way of the early web via Webcrawler, Infoseek, ICQ, Usenet, Gopher and the other long forgotten protocols and services. I was obsessed with the idea of hacking... Me and my fellow nerd friends were always coming up with sneaky new ways to infect each other's and the school's PCs with Netbus or Back Orifice... Spreading the good word of J. R. "Bob" Dobbs around town by way of home printed pamphlets so that all may know of Slack. I often miss that earlier time in technology - before the masses could easily "sign on", so long as they have a tablet or smartphone...
> online access is as necessary as water
We have paper money and also can work and buy stuff offline.

I would say online access is as necessary as a car. Possible without but less flexible.
Formal petition to cancel the JavaScript trademark
It doesn't matter what Russia is fighting with. The war is not about winning, it is about war profiteering. Both for Putin and the West. While the West gives out fat new contracts to build new weapons, Putin has stolen much of the grain produced in Ukraine and launders it through ship to ship transfers then sells to Egypt and other countries. This has made billions for Putin in the last year alone.

Putin wins if the war ends and he wins if it continues. The only way he doesn't win if he no longer gets to play the game.
If it’s like the YouTube comment search links, it’s going to be terrible. Just let me select anything and search for it.
You might enjoy this discussion: https://news.ycombinator.com/item?id=41942096
I googled "verbatimicity" and all I could find was stuff published by rev.ai which didn't (at a quick glance) define the term. Can you clarify what this means?
This is down to developer style and agreements though; Go has typed errors and a set of utilities to match them [0]. Not using those is a choice, just like how in Java you can just `catch (Exception e)` after calling a dozen methods that might each throw a different exception.

[0] https://pkg.go.dev/errors
Cybertruck may be the best example of over-promising and under-delivering of all time.
I try not to worry about things that are not up to me. I will die at some point anyway.
I'm interested in an answer. Is there a way, by design, to run code from an untrusted source in a restricted manner? So the worse the code could do is call me rude names.
If function calling is sync, is MCP its async counterpart? Is that the gist of what MCP is?

Open API (aka swagger) based function calling is standard already for sync calls, and it solves the NxM problem. I'm wondering if the proposed value is that MCP is async.
Those climate objectives are necessary. Soon we will be spending a lot more on disaster mitigation than we would have on some EV subsidies. If anything the transition is not fast enough. I'm living very close to Valencia with its recent flooding disaster, that it didn't happen here was just a matter of chance. That week alone has cost the country more than 10 billion in damage payments and the actual damage is a lot bigger than that. And that's not even considering the hundreds that were killed.

And cars aren't as important here as in the US. I haven't owned or driven one in 7 years.

I agree that ariane isn't doing well but it's really niche anyway.
> To our modern sensibilities, this is a wildly invasive policy.

is it? not really

cutting the "value" of money in half always had been a important emergency tool countries had and sometimes used

and "moving" half of the value into a found which even pays out some years later is tbh. quite a fair way to do it (instead of just literally halving the money value permanently)
Carbon Language: An experimental successor to C++ (2022) [video]
No, because I voted for Trump. Europe gets to take responsibility for the wars they start and escalate now. Not my problem.
Well, as fascinating as your government telling you to surrender all gold you might hold [1].

https://en.wikipedia.org/wiki/Gold_Reserve_Act
> Go is seeing adoption that no other “new” language has exactly because of its simplicity

Yes - for me, the simplicity is essential. As a part-time programmer, I don't have months to spend learning C++ or Rust.

If my project needs to compile to small(-ish) standalone binaries for multiple platforms (ruling out Python, Ruby, Java, C#, etc) what simple alternative language is there? Plain C?
Fixing inflation is simple, people keep voting for it to not be fixed, so the inflation remains and gets worse.
Because everyone thinks they are the good guys. And good guys always win. ;)
100%, our leaders are playing with fire at this point. Their reasoning is also not rational. If you cannot use diplomacy with Putin because he is crazy, then why do you expect Putin to back down when you try to escalate to deescalate?
False. Inflation was mainly caused by the central banks(especially the US FED but also the ECB who followed suit) devalued the currency by over-issuing it during the pandemic, not due to the post pandemic high energy prices which are not that high when you adjust for the crazy Inflation the excessive money printing generated.

In short, they barrowed money in your name with you as a guarantor and now you're paying for it, it's that simple.

The war caused by Russia is just a convenient scapegoat that's easier to sell to the financially illiterate population to deflect the blame. Keep in mind most voters don't understand basic economics and how currency supply affects inflation, but they do understand "Russia dropping bombs = bad".

When 80% of the entire world supply of USD (the world reserve currency that the EU also has to use) was printed during the pandemic, how can anyone say that Russia's war caused the inflation? Do people not know arithmetic anymore?

https://fred.stlouisfed.org/series/M1SL
Feedback: more screenshots please. I am on phone but even if I open the extension store link, it has only those 3 screenshots.

Looking at those 3 images, I have absolutely no clue how it is a customizable new tab page? What does the to do list looks like? Can I have custom widgets? Can it do custom css?
I don't disagree with most of this. My point is only that if the West is not sending Ukraine SOTA across the board, it's not a serious handicap AFAICT.
Suno is by far the best generated AI music I've heard. That said, it is hot garbage.

I've listened to both songs on my Bose QC ultra headphones, which are far from perfect headphones. But even on them, the female voice has unbearable resonances in the higher frequencies. The male voice sounds mostly ok, but has also something that sounds like compression artifacts (like mp3 compression, not loudness compression). All instruments in these songs have these problems. They sound somewhat like the real thing, but really badly recorded. Also, the mixing isn't any good.

It is still very impressive that AI can generate that. But if I would record my band and someone would create such a mix out of it, I would fire them immediately. Heck, I would be furious that they fucked up so bad and would try to get my money back.

So the two links you provided just confirm what I said.
Why is a state killing someone located on foreign lands for political reasons not defined as an act of war?
I appreciate the effort, but after spending more than one hour on it, I still don't understand how and why I'd use this.

The Core architecture [1] documentation is given in terms of TypeScript or Python abstractions, adding a lot of unnecessary syntactic noise for someone who doesn't use these languages. Very thin on actual conceptual explanation and full of irrelevant implementation details.

The 'Your first server'[2] tutorial is given in terms of big chunks of python code, with no explanation whatsoever, eg:

Add these tool-related handlers:
...100 lines of undocumented code...

The code doesn't even compile.
I don't think this is ready for prime time yet so I'll move along for now.

[1] https://modelcontextprotocol.io/docs/concepts/architecture
[2] https://modelcontextprotocol.io/docs/first-server/python
The Magic of Not Giving a F** : https://www.youtube.com/watch?v=GwRzjFQa_Og
It's quite amazing how many people call themselves "free thinkers" to mean they have unique ideas, yet those ideas usually align with a huge percentage of the population.
You guys need a professional documentation person on your team, one that specializes in only writing documentation. I say this because the existing documentation is a confusing mess. This is going to cause all kinds of problems purely because it is weakly explained, and I see incorrect usage of words all over. Even the very beginning definitions of client, host and server are nonstandard.
This is the power of Go, its integrated toolchain. It makes interop more difficult like the article says, but in my personal and limited experience that's not a frequent use case.
Seems weird to buy an $80k car and then spend $6k on a paint job just to make it look decent...
Escalation is using force, not diplomacy. Force is something that Putin understands very well.
Oldest US firearm unearthed in Arizona, a bronze cannon linked to Coronado
My point isn’t that Twitter is dead, remember. It’s that it is in decline. Bluesky isn’t a twitter replacement today, sure, but it’s a risk, even if the risk is only that the end result is fragmentation. I’m not sure why you say it’s impossible for anything ever to seriously damage X. That’s fanaticism.

And as for people crying wolf, remember: at the end of the fable, there were indeed wolves. The boy was lying, yes, but the lesson is not that there was never any danger - it’s that people stop listening.
Military victory has been a precondition to military punishment for all of human history. You had to disable the enemy’s forces before you used the threat of further violence to enact your political will. In fact for all of recorded warfare, it was expected that the victors would be able to commit what we today call war crimes with impunity. The default consequence of defeat was all of your men being killed, all of your women being raped, and all of your children being enslaved.

The advent of nuclear weapons and ICBMs flips this precondition on its head. We no longer need to defeat enemy forces to inflict shocking and monstrous pain upon our enemies, nor upon any nation of the world, nor upon even the entire world. America and Russia both have the hair-trigger capability to launch thermonuclear weapons to any point on the globe. It takes 60 seconds to launch an ICBM, about 10 minutes for SLBMs, and a few hours for strategic bombers to reach their targets. 3,000 thermonuclear weapons can be detonated in anger in the time it takes to commute to work.

Our psychology did not evolve for this environment, and in fact it had not evolved from the previous state of affairs at all because there are still people alive who witnessed the first detonations of nuclear weapons! A single generation!

We don’t know if we can survive this state of affairs. Our time is marked by “for the first time in history” and “unprecedented.”
> Perhaps it's because I have experience, I love a simple language.

(fixed the statement to focus on your value, not age per se)

I love language ergonomics above all. Python wins. But for runtime bang-for-the-buck, Go wins.
Huh, it's actually on Amazon for something like $8 for a small piece (no idea if they are fakes though)

Now I'm tempted as well...
Especially since the Finnish experience is the only direct comparison to Ukraine today, where both their army and government are fighting Russia.
Huh. Does this mean that the AWS terraform provider could implement state locking without the need for a DDB table the way the GCP provider does?