MurphyA/hacker-news huggingface dataset:
by csomar | 2025-05-23 05:41:53+00:00
> People who lived under authoritarian regimes have long said that things move slowly at first, but after an inflection point, get real bad, real fast.

If you want an indication why the US could go into dictatorship mode, look no further than to what is happening now. Dictatorship coups are extremely fragile in the initial phase. The very recent example is South Korea. It only takes a few determined people to sabotage the coup. In the same fashion, Trump would immediately stop if enough people were to take it to the street. So far, the silence is extremely loud.
by palata | 2025-05-23 05:42:37+00:00
Maybe one reason why many "distributions" exist is that they don't feel like "distributing" the same way :-).

Diversity is good. I don't want "one distribution" that chooses the init system, distribution, compositor, window manager, etc. I want to have choice.

When it comes to distributing packages, I personally like system package managers. Not such a big fan of flatpak.
by Darmani | 2025-05-23 05:42:40+00:00
I prefer to think of Haskell-like lazy evaluation as constructing a dataflow graph. The expression `map f (sort xs)` constructs a dataflow graph that streams each output of the sort function to `f`, and then printing the result begins running that job. Through that lens, the Haskell program is more like constructing a Spark pipeline. But you can also think of it as just sorting a list then transforming each element with a function. It only makes a difference in resource costs or when there's potential nontermination involved, unless you use unsafe effects (e.g.: unsafePerformIO).

Is there a way to think of proofs as being lazy? Yes, but it's not what you think. It's an idea in proof theory called polarization. Some parts of a proof can be called positive or negative. Positive parts roughly correspond to strict, and negative roughly correspond to lazy.

To explain a bit more: Suppose you want to prove all chess games terminate. You start by proving "There is no move in chess that increases the number of pieces on the board." This is a lemma with type `forall m: ChessMove, forall b: BoardState, numPieces b >= numPieces (applyMove m b)`. Suppose you now want to prove that, throughout a game of chess, the amount of material is decreasing. You would do this by inducting over the first lemma, which is essentially the same as using it in a recursive function that takes in a board state and a series of moves, and outputs a proof that the final state does not have more material than the initial state. This is compact, but intrinsically computational. But now you can imagine unrolling that recursive function and getting a different proof that the amount of material is always decreasing: simply write out every possible chess game and check. This is called "cut elimination."

So you can see there's a sense in which every component of a proof is "executable," and you can see whether it executes in a strict or lazy manner. Implications ("If A, then B") are lazy. Conjuctions ("A and B") can be either strict or lazy, depending on how they're used. I'm at the edge of my depth here and can't explain more -- in honesty, I never truly grokked proof polarization.

Conversely, in programming languages, it's not strictly accurate to say that the C program is strict and the Haskell program is lazy. In C, function definitions and macro expansions are lazy. You can have the BAR() macro create a #error, and yet FOO(BAR()) need not create a compile error. In Haskell, bang patterns, primitives like Int#, and the `seq` operator are all strict.

So it's not the case that proofs are lazy and C is strict and Haskell is lazy so it's more like a proof. It's not even accurate to say that C is strict and Haskell is lazy. Within a proof, and within a C and a Haskell program, you can find lazy parts and strict parts.
by frollogaston | 2025-05-23 05:42:40+00:00
There are plenty of projects where frontend/backend is a logical way to separate things, in which case it can be much more cost-effective to hire frontend specialists. Not only are they more familiar with all the specialized tools, but they can also do it with only bootcamp education.

I've been in teams with generalists only, and yeah we can all deal with UI, but it takes longer. No matter how good someone is, they can't have every detail fresh in their head all the time.

Or what about a full stack that's backend-backend, in a large corp with multiple internal services talking to each other? Only the higher-tier engineers have a good understanding of all the teams' moving pieces, even then not so deep.
by sverhagen | 2025-05-23 05:42:55+00:00
It is undoubtedly very impressive. But once you're set up for it, it's probably easier than saving up the changes and doing a big release at the end of the month, because the amount of change and the amount of risk, per deployment, then is also a lot higher.

Like other commenters here have said, it doesn't mean that I can say "(scoff --) we're doing the same" if I'm doing the same relative number of releases with my tiny team. But it is validating for a small team like mine to see that this approach works at large scale, as it does for us.
by aspenmayer | 2025-05-23 05:43:43+00:00
I’m asking because I noticed the change and was curious if anyone else on HN had noticed. I’m sure that the mods would notice in such a case, so that confirmation or denial would only provide authoritativeness to the answer, and such a valid answer would yet bring us no closer to the truth we seek, which is the awareness and impact of such knowledge on the community. By posing the question as I have, we get the confirmation for free, but by posing it your way, we could bring more heat than light to the discussion through the indirection.
by seanmcdirmid | 2025-05-23 05:43:57+00:00
I think we should just agree to disagree. All of those opened up new paradigms for programming, and so will AI even if we aren’t quite sure what that new paradigm is yet. There will always be people claiming the old-fashioned way is better, like Dijkstra’s famous complaint about kids not using punch cards anymore and how that meant they weren’t learning how to be good programmers.
by mikeyouse | 2025-05-23 05:45:40+00:00
It’s a reference to this paragraph where they hypothesized about a 10,000MT bomb;

> All of which is to say that the idea of making hydrogen bombs in the hundreds-of-megatons yield range was hardly unusual in the late 1950s. If anything, it was tame compared to the gigaton ambitions of one of the H-bomb’s inventors. It is hard to convey the damage of a gigaton bomb, because at such yields many traditional scaling laws do not work (the bomb blows a hole in the atmosphere, essentially). However, a study from 1963 suggested that, if detonated 28 miles (45 kilometers) above the surface of the Earth, a 10,000-megaton weapon could set fires over an area 500 miles (800 kilometers) in diameter. Which is to say, an area about the size of France.

Teller’s crazy ass wanted to build a 10,000MT bomb with a 1,000MT primary..

https://en.m.wikipedia.org/wiki/Sundial_(weapon)
by tayo42 | 2025-05-23 05:46:12+00:00
the article has a special string that says "fizz buzz",

they saying its unnecessary because if you go in order you first print "fizz", then print "buzz" which will always print "fizz buzz" for the equivalent of " mod 15" you don't need a special string that like.

the "if (m3 || m5)" is just printing a newline because under that condition you printed something earlier.
by mcv | 2025-05-23 05:48:50+00:00
Interesting observation about Swedes. I'm Dutch, and I've noticed Swedes and Dutch people and culture are very similar in many ways, very egalitarian and everything, but the Dutch are not hampered by politeness. And our brutal honesty might help keeping standups efficient.

I've been part of several "too large" teams, and one in particular, with 20 people, I was really surprised it worked so well. Standup would take 20 minutes, everybody paid attention. There were informal subteams that would discuss details outside the standup.

The most official subteam was the testers (first 2, later 4) who also controlled deployment, because everything had to go through them.

Somehow it was a very efficient chaos. Not scrummy at all; technically we had sprints, but everybody ignored them and it was more kanban. Some features would take months, others would be done quickly. Some would restructure much of the code base. I've seen PRs that touched hundreds of files. Somehow it all worked and it worked very efficiently. We even took over another project from a team in the US that was going nowhere, and we managed to deliver it within their original deadline despite the other team wasting a year doing nothing.

I still wonder how that team could work so well. We weren't all generalists; I was, but others would do only fronted, only backend, or spend most of their time thinking about taxonomies. The team did seem to foster a culture of friendly but brutal honesty without any punching down. Main tester and main backender would rib each other a lot. People eagerly took responsibility for fuckups. Everybody was considered an expert on something and nobody knew everything, so we'd consult each other a lot.
by masylum | 2025-05-23 05:49:11+00:00
I've been building a pocket alternative that also bundles an RSS editor (RIP google reader) and a light blogging platform.

The idea is basically to bundle the saving, discovering and sharing content through the same product. I've been using it for a year and it works beautifully.

https://fika.bar

And you can see my bookmarks/posts here: https://fika.bar/blogs/paoramen
by Braxton1980 | 2025-05-23 05:49:15+00:00
What Republican voter is facing consequences for this specific situation?

I do appreciate this notion as I read articles of government workers fired who supported Trump (why a person working for the government would vote Republican is beyond me).

Many of Trumps actions attack those that would either likely never vote Republican or can't vote (illegals, groups on special visas that lost them, foreign students, etc)
by bntr | 2025-05-23 05:49:52+00:00
Thanks! The cube mapping idea is really interesting — I didn’t know about that approach. However, I doubt it would help in my case, where the distortion is strong enough to flip the depth order of objects.

Maybe these methods could be combined somehow, but it seems simpler to use subdivision (as also mentioned in that thread) — perhaps selectively, for objects near the periphery where distortion is strongest.
by admissionsguy | 2025-05-23 05:49:56+00:00
It's not that it's not useful at all, it's that the mismatch between the reality (what you described) and hype ("build full-stack AI companies to outcompete human-first ones") is wilder than anything I have seen in my lifetime. It's reminiscent of stories about the dot-com bubble era, which I am not old enough to have seen first hand.

(Maybe a bit less than what you described. It's something I tried and I don't think LLMs can deal with most unstructured data at scale very well.)
by jakemanger | 2025-05-23 05:50:36+00:00
Thinking about how this can be used to my advantage the next time I play Catan. I play with someone that wins almost every time and is a real dirty deal-maker (trades with you then blocks your path), so it would be good to get her back.

Soak the dice to shift the most common to be 5 or 9 rather than 6 - 8? Is that possible?
by SchemaLoad | 2025-05-23 05:50:53+00:00
Open source projects can be the worst at this stuff. I realise it's all volunteer run so I'm not complaining too much. But so often they end up pushing a versioned release once a year. So you end up finding a bug, going to report it and see it was fixed 8 months ago but still broken in the published package. And then they get afraid to push a new version because it's been so long since the last one that everything has changed.
by frollogaston | 2025-05-23 05:51:01+00:00
I've been in many 15min meetings that I felt were a good use of time, cause everyone was involved the entire time and the topic was important. Not so many 30min ones; those usually end up being 2 people talking while the rest spectate.

The 2-pizza thing coined by Bezos means 6-8 people.
by pugdogdev | 2025-05-23 05:51:40+00:00
Hey, Of course, you can create all this app functionality using Dockutil. This is the tool that DockFlow uses under the hood. It also supports direct Dock terminal commands for some users for whom Dockutil doesn't work well. But I think having everything in an easy-to-use UI (including managing spaces, files, and folders in one place) is a much better solution for most users. This is like running OLLAMA on the terminal or using one of the many UI wrappers out there. Thank you for the feedback, of course, and I invite you to check DockFlow and see if it gives you a better solution than a bash script
by Ey7NFZ3P0nzAe | 2025-05-23 05:53:21+00:00
> Hari Seldon is a fictional character in the Foundation series of novels by Isaac Asimov. In his capacity as mathematics professor at Streeling University on the planet Trantor, Seldon develops psychohistory, an algorithmic science that allows him to predict the future in probabilistic terms

- https://en.m.wikipedia.org/wiki/Hari_Seldon
by jwr | 2025-05-23 05:54:02+00:00
I didn't actually even test tool calling. I have two test cases that I use for all models: one is a floating-point equality function, which is quite difficult to get right, and another is a core.async pack-into-batches! function which has the following docstring:

"Take items from `input-ch` and group them into `batch-size` vectors. Put these onto `output-ch`. Once items start arriving, if `batch-size` items do not arrive within `inactivity-timeout`, put the current incomplete batch onto `output-ch`. If an anomaly is received, passes it on to `output-ch` and closes all channels. If `input-ch` is closed, closes `output-ch`. If `flush-predicate-fn` is provided, it will get called with two parameters: the currently accumulated batch (guaranteed to have at least one item) and the next item. If the function returns a truthy value, the batch will get flushed immediately. If `convert-batch-fn` is provided, it will get called with the currently accumulated batch (guaranteed to have at least one item) and its return value will be put onto `output-ch`. Anomalies bypass `convert-batch-fn` and get put directly onto `output-ch` (which gets closed immediately afterwards)."

In other words, not obvious.

I ask the model to review the code and tell me if there are improvements that can be made. Big (online) models can do a pretty good job with the floating point equality function, and suggest something at least in the ballpark for the async code. Small models rarely get everything right, but some of their observations are good.
by Braxton1980 | 2025-05-23 05:54:18+00:00
>Why would you want a valid argument..

I want them to think about it because... "let's face it, most people will just pick whichever one is on "their side"."

>And those choices, once chosen, will do... whatever the hell they want

What does this mean? It's not even close to being random or unpredictable.

>There's no consequence to them doing whatever the hell they want.

Elections

>So it doesn't really matter what the choice is to begin with.

I'm not sure what you are trying to say, do you mean an elected person has full control of their position's power? Then yes, obviously but you can predict what they will do, you are giving them power.

Yes, the options are two choices externally picked. And?
by rnd0 | 2025-05-23 05:54:21+00:00
Litigation in some form or another. This is undoubtably related to the take it down legislation recently passed.

Porn isn't the only worry; there's also getting sued by the estates of dead celebrities, being misused for misinformation purposes.

Things are going to become increasingly restrictive until it is not worth using unless you're a corporation or a state actor. But for hobbiests? Resources are going to become thin on the ground and no, that is not a good thing.
by jakemanger | 2025-05-23 05:54:33+00:00
Been playing around with it in Cursor and have to say I'm pretty dang impressed.

Did notice a few times that it got stuck in a loop of trying to repeatedly make its implementation better. I suppose that is ok for some use cases but it started overthinking. I then gently prompted it by saying "you're way overthinking this. Just do a simple change like ..."

I guess there's still a purpose for developers
by noduerme | 2025-05-23 05:54:43+00:00
I only work for companies where I have direct interaction with the owners. But I think that any business structure that begins to resemble a "soviet" type, where middle management accumulates all the power (and is scared of workers who have ideas) is inevitably going to collapse. If the way they try in the late 2020s to accumulate power is by replacing thoughtful coders with LLMs, they will collapse in a very dramatic, even catastrophic fashion. Which will be very funny to me. And it will result in their replacement, and the reinstatement of thoughtful code design.

A lot of garbage will have to be rewritten and a lot of poorly implemented logic re-thought. Again, I think a hard-learned lesson is in order, and it will be a great thing for our industry.
by microtonal | 2025-05-23 05:55:11+00:00
That assumes that there are never zero days or other unpatched vulnerabilities. You should not trust applications because you have access to the source. Nobody is actively auditing the vast majority of open source code, well except of malicious actors who probably have a handful of remotes in a lot of RSS readers, chat apps, microblogging clients, etc., which they can use to compromise activists and journalist naive enough to trust desktop Linux.

A lot of Android vulnerabilities are bugs in open source parsers of untrusted data (open source as in AOSP or more widely used open source libraries). But the impact is smaller because Android has proper security boundaries. If desktop Linux was as popular as Android -- we would have a security disaster of epic proportions.
by Braxton1980 | 2025-05-23 05:56:40+00:00
>Were the people who voted for Hitler bad people because they voted for a bad person?

Depends on what they know or heard. The situation is very different today. The internet gives each person access to all the information. I'm sure time can be a factor but in Germany you have more an excuse.

Also, with Germany, the economic situation was used by Hitler and worked to his advantage.

There's also the more controversial take but I've only read bits and pieces and many disagree with this as it implies a multigeneration swaying and ingrained cultural change

https://www.amazon.com/Hitlers-Willing-Executioners-Ordinary...
by Dylan16807 | 2025-05-23 05:56:45+00:00
> IMHO, if you're looking at software h.264 vs software vp9, I think vp9 is likely to give you better quality at a given bitrate, but will take more cpu to do it. So, as always, it depends.

That's a pretty messy way to measure. h.264 with more CPU can also beat h.264 with less CPU.

How does the quality compare if you hold both bitrate and CPU constant?

How does the CPU compare if you hold both bitrate and quality constant?

AV1 will do significantly better than h.264 on both of those tests. How does VP9 do?
by moralestapia | 2025-05-23 05:57:13+00:00
Here's what they built, https://x.com/ID_AA_Carmack/status/1925243539543265286

Quite exciting. Without diminishing the amazing value of LLMs, I don't think that path goes all the way to AGI. No idea if Carmack has the answer, but some good things will come out of that small research group, for sure.
by s_ting765 | 2025-05-23 05:57:39+00:00
To make the best out of flatpak, it's best to think of it as a new sandboxed distribution that lives on your host system. E.g You could check if a specific theme is installable as a flatpak application.

Flatpaks are not perfect and I have my gripes with flatpak but the only alternative is Ubuntu's snaps.
by AlotOfReading | 2025-05-23 05:58:10+00:00
Many systems I've worked on can be written as embarrassingly parallel with synchronized checkpoints for a relatively small cost if they're not serial, but yeah, the middle ground is hard. That's the nature of the beast though. Imagine trying to rearrange the instructions in your program the same way. You're going to get all sorts of wacky behavior unless you invest an enormous amount of effort into avoiding problems the way superscalar CPUs do.

Relatively few programs truly need to operate that way though and they're usually written by people who know the cost of their choices.
by gnulinux | 2025-05-23 05:58:11+00:00
I just Ctrl+P print the reader mode output to PDF. Takes 1 second. I've been doing it for years and it works perfectly. I have articles I saved from a decade ago in Dropbox. I'm honestly surprised people use a whole app for such a trivial feature, but yeah it's fair to have special needs. For me, Firefox reader mode is all I need, and you can just save it as PDF.
by smartbit | 2025-05-23 05:58:48+00:00
Richard Garwin was member [0] of Pugwash [1]

He was an active and kind participant in many Pugwash, ISODARCO and Amaldi conferences. From 1982 on, Garwin worked with Gorbatschev’s Science Advisor, Evgeny Velikhov, and other American and Russian scientist on proposals limiting nuclear arsenals and space-based weapons.

[0] https://pugwash.org/2025/05/20/obituary-and-appreciation-for...

[1] https://en.wikipedia.org/wiki/Pugwash_Conferences_on_Science...
by frollogaston | 2025-05-23 05:59:26+00:00
This is neat, but I was expecting the soaking to affect the dice more. Is this enough to really affect how you play? The naughty and nice players had equal number of dots, but I feel like you usually have more uneven choices than that.

Seems like it'd be more advantageous to make people over/underestimate the chance of being robbed, but this didn't affect the chance of a 7. Is that the same no matter which side you soak?
by djtango | 2025-05-23 06:01:22+00:00
I remember I did an Advent of Code day 1 in Haskell a while back.

The meat of the code was a one liner. But opening a file, throwing away the first line and parsing a CSV took a lot more head scratching, especially if you've only ever done puzzles in Haskell.

Makes the hard things easy and the easy things hard
by nayuki | 2025-05-23 06:01:53+00:00
There is a solution for you - log points! https://en.wikipedia.org/wiki/Relative_change#Logarithmic_ch... , http://a-loonie-saved.blogspot.com/2008/08/log-points.html

An example of deceptive arithmetic: A mutual fund's 5-year history of annual returns is −70%, +30%, +50%, +20%, +40%. Naively, the total return for the 5-year period looks like +70%. But in fact it's −1.72%, because the reciprocal function makes the −70% very “heavyweight” compared to the positive changes.

Using log points instead, the 5-year sequence is approximately −120.4, +26.2, +40.5, +18.2, +33.6. The sum of these rounded numbers is −1.9 (nowhere near +60.0), which agrees well with the correct result of about −1.735 log points (i.e. −1.72%).
by sshine | 2025-05-23 06:02:23+00:00
I live-coded Haskell a couple of times at job interviews for non-Haskell positions where you were free to choose.

It’s fun because the interviewer often doesn’t grok the paradigm. In one case, I was asked to make a password generator, and I went with QuickCheck’s Gen, which lets me write a random generator of things without explicitly defining a single function (they’re all monads).

So you go from somehow describing the thing you want to make to “I’m done.” :-D
by Braxton1980 | 2025-05-23 06:03:07+00:00
>if you cannot understand your ophonents you are no better than them?

Literally no. I don't understand serial killers but I'm better than them and to use a more relevant example, I have limited understanding of some racists but I'm better than them (in that specific case).

Understanding is only useful for engagement but if a person is being manipulated by lies or exaggerations then what am I to do?

Solve a non-existent or exaggerated problem? Tell them their information is wrong?