MurphyA/hacker-news huggingface dataset:
by thefluffytoucan | 2025-11-16 09:06:39+00:00
I find this applies pretty well to creative work, at least from a general mindset perspective and helps those of us who are prone to procrastinating.

It also goes hand in hand with the Cult Of Done Manifesto really well: https://medium.com/@bre/the-cult-of-done-manifesto-724ca1c2f...
by znpy | 2025-11-16 09:07:41+00:00
I would actually change as little as possible.

The current UI has it quirks, but has the great advantage that it looks the same irrespective of whether you're in an graphical environment (Xorg/Wayland/Windows/MacOS) on in a terminal (either local or remote via ssh).

I *love* that treemacs looks pretty much the same everywhere.
by bigfudge | 2025-11-16 09:08:13+00:00
My guess here is that this is not treatment as sic but assessment and that if you’re not appealing for your licence back you could just skip it. Perhaps a German could comment?

It’s weird to me how right wing Americans seem primed to catastrophise about Marxist big brothers when they hear about any vaguely effective or equitable example of public policy.
by WalterBright | 2025-11-16 09:09:35+00:00
There's concern that if all our chips come from one country, they could cut the supply off and make demands. That's called an "embargo".

It's also done to protect local industries, hence the term "protectionism". For example, Canada's large tariffs on American milk are there to protect the local Canadian milk producers.

AFAIK, Trump's tariffs are meant to serve the following purposes:

1. so critical supplies, like chips, will be produced domestically

2. to raise money for the treasury

3. to convince countries that have high tariffs to lower them in exchange for the US to reciprocate in lowering ours

4. to incentivize foreign manufacturers to invest in factories in the US

5. to use them as a negotiating tool for other terms favorable to US interests

These are not crazy things. We'll see how things play out.
by theodric | 2025-11-16 09:10:14+00:00
What? Upgrade it yourself! Swapping the RAM in a mini 2012 doesn't even require tools. Both SoDIMMs are right under the bottom cover.

The SSD is a bit more fiddly, but can also be done at home. Check iFixit.

https://www.ifixit.com/Guide/Mac+mini+Late+2012+Hard+Drive+R...
by dabinat | 2025-11-16 09:11:05+00:00
It reminds me of the USB keyboard extender that came with old Macs. There’s a little notch in the socket so you can only use it with Apple keyboards. At the time I thought it was a petty way of preventing you from using it with any other device, but apparently the reason they didn’t want you to use it with other devices is because the cable didn’t comply with the USB spec.

Some pictures here: https://www.reddit.com/r/assholedesign/comments/b1u08k/this_...
by wongarsu | 2025-11-16 09:12:10+00:00
I'd say for the purposes of this article anything that is required in order to have done the thing is "doing the thing".

If you need to read something to get the thing done you are doing the thing. If you already know everything to get started but still read another article you are procrastinating. If you need to sand this part to do a good job painting it, then you are doing the thing. If you just continue sanding with no benefit you are no longer doing the thing, you are now just delaying the next step
by Epa095 | 2025-11-16 09:12:44+00:00
I dont want the USSR, and I don't see the relevance. For me this is a discussion about the role of money and wealth in our economic system, I am not arguing for plan-economy. The dynamic allocation of resources provided by a market based economy is great. But there are many ways to run a capitalist society, I certainly don't belive we are at the end of history here.

Billionaires certainly CAN get more wealthy by a process as you describe. They can also get more wealthy by just owning stocks and do absolutely nothing. Last 20 years the S&P 500 has increased 8-fold. That means 64 times over 40 years, 512 times over 60, 4096 times over 80 years. With the s&p average since 1926 of 9.8%, the numbers are 42-fold after 40 years, 272 after 60 and 1770 after 80. Salaries has certainly not risen at the same rate.

My views are probably shaped by coming from a place with more old money, where more people are rich from inheritance than their own creation. And their share of the totalt wealth of the society increases even when they are just passive owners. For me this is a reinvention of Feudslism, where the owner class controls the economy because they inherited it.

Now, this is a bit of a tangent to the original discussion though. What I had been trying to say is that independently of the reason for why the billionaire has the money, the spending on that apple is not providing value to the economy. In your original post I read you to mean that, and that the billionaire provided value by buying that apple. Of course he did on the micro scale for the farmer, but not at the macro scale. All he is doing is slightly shaping the economy to provide what he wants, using money as the lube.

So billionaires can be so for a lot of reasons. They can have stolen the money, passively gained them, gained them on the back of others creating value, or they could have created the value themselves. Independently of the source, they now have power over the economic machine. They might use it to improve the machine (good) or they can make it create things the billionaire wants in place of things other people wants (less good).
by montagg | 2025-11-16 09:14:08+00:00
It’s, hilariously, the opposite: the exposure of this idea makes every other product better and Apple can’t change it (until they do).

Product tying is not a thing you can bypass.

This is idea is independent of whether Apple’s strategy is good or bad, legal or not. Product tying can’t be undermined, or it’s not actually a problem.
Show HN: Wiki&Database for Escape from Duckov Game
by WanderZil | 2025-11-16 09:19:03+00:00
Built a comprehensive wiki and database for "Escape from Duckov" game: https://duckovwiki.org

Current stats: • 367 items, 90 weapons with full specs • 7 interactive Canvas maps with 200+ markers • Quest guides and mod integration

Built with Next.js 15, featuring virtual scrolling (90% faster loads) and optimized Canvas maps with 60fps dragging.

The interactive map was the most fun to build - implementing marker virtualization and touch gestures while keeping it smooth on mobile.

Demo: https://duckovwiki.org/interactive-map/groundzero

Actively maintained and regularly updated with new game content. Feedback appreciated!
by atoav | 2025-11-16 09:19:12+00:00
If it is a hobby then probably the most important bit of advice is that you keep doing it in a way that lets you enjoy it. If you feel you need to become better regularity (translating to quantity) is in fact important, especially if you're the perfectionist type.

Coincidentally I teach (medialab) at one of the most recognized art universities in Europe and have a MA of fine arts and my mother is a painter. In my judgement the most overlooked (or most underrated) skill when it comes to painting is perception. Being a good painter aside from the manual skill has a lot to do with seeing or being able to see, even if you're not doing figurative paintings.

Painting more and more different things can be a good way to raise your own perception skills. It is also important to revisit old works occasionally. Ideally you will immediately see what was wring (or good) with them, something you may have not perceived back when you did it. This is proof that you leveled up.
by moron4hire | 2025-11-16 09:19:23+00:00
Exactly. Inheritance and composition are two different axises of the implementation reuse problem, just as object-oriented programming and functional programming are two different axises of the expression problem. In both cases, you should want to have both axises available, because they do different things. I think saying "prefer composition over inheritance" makes about as much sense as "prefer the Y-axis over the X-axis in a graphics system": it's a statement that doesn't make sense on its own; it only makes sense in specific scenarios, like "... when making a document scroll".

I think the biggest "mistake" in object-oriented programming is the explanations by analogy that many people advocate. A lot of times, people attempt to use a taxonomic metaphor like the tree of life—"a dog is-a mammal" sort of stuff. As a model it falls apart because even the real world tree of life is a flawed model that doesn't fully capture the complexity of life in the way most lay people assume it does. Try getting a random person to justify a platypus being a mammal. Without specific training in biology they stumble. And most computer scientists attempting to employ this analogy are definitely broadly ignorant about biology. You can see it because a lot of the examples people employ aren't even consistent with the metaphor. You're just as likely to see people say things like, "A dog is-a four-legged animal". I think it's an extremely harmful didactic path down which to start.

A lot of these problems happen because most people don't have a good handle on graph theory. They don't understand when they are trying to force a graph with cycles into a tree. Trees are easy for people to understand and handle, graphs with their pesky cycles are much harder, so I get the appeal. But what people come to call "tech debt" or "degenerate edge cases" are really evidence that an inappropriate model was employed early in development.

In real world examples, you'll see object oriented programming and functional programming as well as inheritance and composition used extensively and successfully. I think GUI libraries are a good example here. Buttons and text boxes both inherit from a control base class. This pattern is pervasive and long standing. But you naturally shouldn't usually[1] try to make a form inherit from control as they are much more appropriately compositions of controls.

[1] I say "shouldn't usually" here because some common subforms can be useful encapsulated as a control for composition into other forms, e.g. an address entry form embedded into a user profile form.
by 999900000999 | 2025-11-16 09:20:10+00:00
So I want this Thinkpad.

https://www.lenovo.com/us/en/p/laptops/thinkpad/thinkpadp/th...?

AMD Ryzen™ AI 9 HX PRO 370 Processor (2.00 GHz up to 5.10 GHz) Operating System Windows 11 Pro 64 Graphic Card Integrated AMD Radeon™ 890M Memory 64 GB DDR5-5600MT/s (SODIMM)(2 x 32 GB)

But I also seriously want to run LLMs. My hunch is a gaming laptop is the best way to do this on the go without spending 5000$ for a Thinkpad with a high end graphics card.
by mihaic | 2025-11-16 09:21:21+00:00
I have been using inheritence for 15 years, and have sometimes regretted it and sometimes loved it.

It does have actual benefits if you can limit its usage, and don't use the full insanity that languages like C++.

I generally dismis people that tell you to always use composition over inheritance without first understanding the problem space, and how it could be modeled.
by MITSardine | 2025-11-16 09:22:28+00:00
This all hinges on the fact the variance is homogeneous to X^2, not X. If we look at the standard deviation instead, we have the expect homogeneity: stddev(tX) = abs(t) stddev(X). However, it is *not linear*, rather stddev(sum t_i X_i) = sqrt(sum t_i stddev(X_i)) assuming independent variables.

Quantitatively speaking, t^2 and (1-t)^2 are always < 1 iff |t| < 1 and t != 0. As such, the standard deviation of a convex combination of variables is *always strictly smaller* than the convex combination of the standard deviations of the variables. In other words, stddev(sum_i t_i X_i) < sum_i t_i stddev(X_i) for all t != 0, |t|<1.

What this means in practice is that the convex combination (that is, with positive coeffs < 1) of any number of random variables is always smaller than the standard deviation of any of those variables.
by jillesvangurp | 2025-11-16 09:22:38+00:00
One of the lesser known features in Kotlin is interface delegation. This lets you get away with doing multi class inheritance via composition of a class with a delegate. This kind of blurs the boundaries between inheritance and composition in a useful way.

class Foo(internal val _list: MutableList<Int>=mutableListOf()): MutableList<Int> by _list { ... }

Here Foo has a _list property that it delegates the implementation of list operations to. You can even do function overrides in the class and interact with the delegate via the _list property. However, messing with internal list state is off limits (a problem with inheritance).

val foo = Foo() foo.add(1)

Like Java, Kotlin supports single class inheritance. But this provides a way out.

When I was researching this stuff in the nineties, I came across some papers about role based programming by a Norwegian called Trygve Reenskaug. That formed a lot of my thinking on this topic a bit.

Modern Kotlin and Java look a lot like what he proposed: small interfaces (roles) and classes that implement multiple of these things whose objects can play those roles in different contexts. Go's duck typing (having the operations means it implements the interface) is also cool for this. Traits, mixins, etc. are all variations on this topic that you can find in other languages. Javascript is actually a really interesting languages since it is a prototype based language (inspired by a long forgotten language called Self). It did not have classes for a long time (that's a recent syntactic addition) and you create new objects by copying old ones. And since it is dynamically typed, it has no need for interfaces either.
by Draiken | 2025-11-16 09:24:00+00:00
> Fines are probably the best way to do that for rational actors

How can you say that after not only this instance but also all the other instances that showed how ineffective they are?

That also has the huge assumption that companies are rational actors. They're not. They're merely profit machines that'll do anything to achieve their goal.

It simply does not work.
by globular-toast | 2025-11-16 09:24:01+00:00
> Most class hierarchies are wrong

One of the most damaging things is when they teach inheritance like "a Circle is a Shape, a Rectangle is a Shape, a Square is a Rectangle" kind of thing. The problem is the real world is exceedingly rarely truly hierarchical. Too many people see inheritance as a way to model their domain, and this is doomed to failure.

Where it works is when you invent the hierarchy. Like a GUI toolkit or games. It's hierarchical because you made it hierarchical. In my experience the applications where it really works you can count on one hand, whereas the vast majority of code written is business software for which it doesn't really.
by chiffaa | 2025-11-16 09:25:21+00:00
It's not exactly what you're looking for but you might be interested in Lem[0]. It's an emacs-style editor but written completely in Common Lisp on top of curses/SDL2. I haven't used it that much (same for Emacs itself, really), but it looks like a very solid foundation

[0]: https://github.com/lem-project/lem
by intended | 2025-11-16 09:25:33+00:00
The emotional intensity of the crime of child abuse? So we are removing the emotional valence of crimes, and then comparing it to the emotional state of being in fear of police over reach?

I mean, if you need that level of handicap to make your position become defensible, then you don’t really have an apples to apples comparison.

As for leg work, would you feel better to know that I have been on the other end of doxxing attempts, and that team mates I know have had it worse?
by tux3 | 2025-11-16 09:27:27+00:00
Say I have this type:

struct A { raw_data: Vec<u8>, parsed_data: B<&pie raw_data>, parsed_data2: B<&pie raw_data> } struct B<T> { foo: &pie T [u8], }

Ignoring that my made up notation doesn't make much sense, is the idea that B.foo would be an offset relative to its own adress?

So B.method(&self) might do addr(&self.foo) + self.foo, which is stable even if the parent struct A and its raw data field moves?

Then I wonder how to handle the case where the relative &pie reference itself moves. Maybe parsed_data is std::mem::replaced with parsed_data2 (or maybe one of them is an Option<B> and we Option.take() it somewhere else.)
An exposed .git folder let us dox a phishing campaign
by spirovskib | 2025-11-16 09:29:21+00:00
This past Friday afternoon, a member in our Discord server reported a phishing email pointing to a fake login page.

We took up to research it and because of clumsy decisions by the attacker we got their GitHub and their operational Telegram bot.

Screenshots: https://imgur.com/a/FTy4mrH

Sometimes the attacker incompetence can be a defender's best weapon ¯\_(ツ)_/¯

The phishing page was a standard clone of an "email", unbranded anf generic service. A bit of gobuster reconnaissance and we got the site's .git directory publicly accessible and listing its contents.

Inspecting of the requests also got us the first Telegram bot token. This is the digital equivalent of leaving the blueprints to your entire operation, including past versions and deleted files, lying on the front lawn.

We pulled the repository, found automated deployments and multiple fake pages with different hardcoded Telegram bot tokens and Chat IDs.

With the source code, repo and the active Telegram bot token, we filed detailed abuse reports:

- GitHub: We reported the repository containing the phishing kit's source code. It was taken down for violating TOS.

- Telegram: We reported the bot using the provided token and chat ID, leading to its removal.

- Hosting Provider: The malicious site was reported and taken offline.

Lesson learned? Never deploy a .git folder to production. Even if you are a criminal.

Acknowledgement: This was a collaborative effort by members of the BeyondMachines Discord community. The crowdsourced speed and collaboration helped us take this down very fast.
by Terr_ | 2025-11-16 09:29:30+00:00
So it looks like there are 4 distinct spans in the past [0] where a nominal value kept getting decayed by inflation. To put them here with inflation-adjusted 2025 dollars in parens:

* 1938 to 1977: $1 ($22 -> $5.43)

* 1978 to 1992: $5 ($25 -> $11.50)

* 1993 to 2014: $200 ($446 -> $272)

* 2015 to 2025: $800 ($1087 -> $800)

* 2026 to ????: $0 ($0 -> $0)

The point I'd like to make from this is that Americans under 50 weren't adults-with-money in time to ever encounter those older more-restrictive spans. If you're under 28, the highest-exemption is the only situation they've ever known until now.

[0] https://www.brookings.edu/articles/small-parcels-big-problem...
by natrys | 2025-11-16 09:29:43+00:00
It can hardly be called resistance to improvement, when everyone do improve it - just in their own ways. The default isn't some fashion statement, some aesthete that's objectively good (though I am sure some people do subjectively like it). But it's meant to be sort of a least presumptuous blank state that everyone can radically overhaul. So arguably it's an encouragement for improvement just like everything else in Emacs, which focuses on making the tools for improvement easier.

It's just that "improvement" as a matter of public consensus that everyone can agree on to elect the next blank slate has been to impossible to settle on. But the counterculture here broadly might be extreme reluctance to inconvenience even a minority of existing users, in pursuit of market share/growth.
by epaga | 2025-11-16 09:31:03+00:00
I live in Germany and UPS is asking for 116€ customs / fees for a personal gift package someone sent me worth $47 (40€ which is below the new 45€ de minimis line). Nearly everything in the blog post happened to me just this past week except I didn't have 116€ at home in cash(!) so they will be delivering on Monday (when I will have cash and then try to get it all back from UPS).

The whole thing is unbelievably infuriating and insane and I will warn anyone in the States to never again use UPS for shipping abroad.
by AnthonyMouse | 2025-11-16 09:31:46+00:00
The best solution is antitrust enforcement and removal of anti-competitive laws/rules lobbied for by incumbents. When companies have to compete with each other for labor and customers, wages go up and prices go down. Whey they consolidate they can charge monopoly rents.

Unions often even make this worse because they'll latch on to a monopolistic employer and then lobby with them to retain the monopoly at the expense of all the workers who are their customers rather than their employees.
by mschuster91 | 2025-11-16 09:32:12+00:00
> For example, there should be a very large fine if a waymo hits and kills someone. It should not be an infinitely large fine or result in jail time for waymo executives.

The way this is done is by certification and testing. Mercedes Benz for example? They got their driving assistant certified under SAE Level 3 [1]. Do that and you'll get a pass because you followed the legal guidelines - but if you don't and use an uncertified system, it means jail time.

Autonomous cars aren't some random webshop or bananaware (ripens at the customer's), autonomous cars are two ton heavy ballistic weapons capable of mass murder (as a bunch of terror attacks show) and should be treated as such - test before going on the road, not afterwards after you used the general public as guinea pigs.

[1] https://www.heise.de/news/Autonomes-Fahren-Mercedes-wird-Lev...
by imvetri | 2025-11-16 09:33:15+00:00
I was experiencing same, since last six or seven years. Last year I wanted to give cycling a try.

To balance CPU cycles that run in my head which processes information out of monitor in the physical world.

Theory is that, our field is an imaginative field and path we take to reach finishing a task does not remember the path we took.

This inturn affects next steps as the judgement or self judgement get weakened.

Attacking this challenge from its fundamental is to mimic the work outside computer.

Example writing, reading codebase after printing out in paper.

This builds a strong memory of size of space of imaginary work in physical space.

While paper printing solve reader writer challenge.

Then how to solve infinite running OS program running on CPU cycles?

Hence bicycle.
by Simulacra | 2025-11-16 09:34:03+00:00
Fyi actual title "Replacing Brake Pads on a Hyundai Ioniq 5 N Requires a Professional Mechanic’s Login"

This article feels like half the story. Is this only a repair you can get done at a Hyundai dealer, or can you take it to any shop? Ostensibly that shop must have the Hyundai equipment, requiring you to purchase an expensive piece of equipment, so even technically this completely fails right to repair. And I don't think car dealers are explaining this when they sell you the vehicle. You don't realize until you take it in for service that you may need to buy a subscription for brake pads, or pay through the nose if you go to another shop because the equipment is expensive.

If anything, this is a very blinking, loud, and glaring sign above Hyundai cars: DO NOT BUY.
by noelwelsh | 2025-11-16 09:36:11+00:00
This won't take me away from Doom Emacs---I prefer the keyboard centric approach of Doom---but I'm really happy to see this. I feel that Emacs has some really innovative UI plugins (things like Vertico) but the out-of-the-box experience is pretty bad. If this makes Emacs more accessible to a different group of people I think it's great.