MurphyA/hacker-news huggingface dataset:
by DrewADesign | 2026-01-04 14:22:18+00:00
A pretty light-grey comment as I came across it. Maybe I’m missing something odious about it? People downvote this, but as a VERY skeptical AI skeptic, it’s exactly the sort of use case that makes sense to me:

A) Low-stakes application with

B) nearly no attack surface that

C) you don’t use consistently enough to keep in your head, but

D) is simple enough for an experienced software developer to do a quick sanity check on and run it to see if it works.

Hell, do it in a sandbox if you feel better about it.

If it was a Django/Node/rails/Laravel/…Phoenix… (sorry, I’ve been out of my 12+ years web dev career a short 4 years and suddenly realized I can only remember like 4 server-side frameworks/environments now) application, something that would run on other people’s devices, or really anything else that produces an executable output, then yeah fuck that vibe coding bullshit. But unless you’ve got that thing spitting out an SPA for you, then I say go for it.
by dzink | 2026-01-04 14:22:18+00:00
For long term stuff like a blog, nothing seems to beat static sites generated before deployment, instead of automated tools like Hugo. I tried Hugo years ago and some tiny config or update would suddenly expose all site variables to visitors, which was an incredible security risk. Wordpress and Drupal are a war zone of attacks - judging by the server logs of any of web site. These days you can custom write or design any page, click to build all menus, site maps, rss with something as simple as gulp, and move the files out via SFTP. Fast, performant, and secure.
by SenHeng | 2026-01-04 14:23:12+00:00
It’s because a video can be passively watched when doing chores while reading text is an active … activity. The former requires less energy and commitment than the latter.

It also means that if YouTube displays an ad while I’m washing the dishes, I’m not stopping to press the skip button (unless it’s one of those silly ads that last an hour) which probably inflates the stats quite a bit.
by JulianWasTaken | 2026-01-04 14:23:16+00:00
In my case (with beancount) an example transaction looks like:

2025-12-04 * "CON ED OF NY CECONY 251203~ Tran: ACHDW"
Assets:Schwab:Checking -72.33 USD
Expenses:Utilities:Electric:Supply:Rate 143.00 KWH @@ 18.06 USD ; Supply 143.00 kWh @12.629¢/kWh
Expenses:Utilities:Electric:Supply:Fees 0.68 USD ; Supply Merchant Function Charge
Expenses:Taxes:Other 0.45 USD ; Supply GRT & other tax surcharges
Expenses:Taxes:Sales 0.86 USD ; Supply Sales tax @4.5%
Expenses:Utilities:Electric:Delivery:Service 21.95 USD ; Delivery Basic service charge
Expenses:Utilities:Electric:Delivery:Rate 143.00 KWH @@ 25.08 USD ; Delivery 143.00 kWh @17.539¢/kWh
Expenses:Utilities:Electric:Delivery:Fees:Benefit 143.00 KWH @@ 0.71 USD ; Delivery System Benefit Charge @0.497¢/kWh
Expenses:Taxes:Other 2.29 USD ; Delivery GRT & other tax surcharges
Expenses:Taxes:Sales 2.25 USD ; Delivery Sales tax @4.5%

which I extract from the PDF bill I get from them.
by ultra-meta | 2026-01-04 14:24:08+00:00
"It’s been 24 hours. I see many of you downloaded the 'Gift' but struggled with the dashboard.

Here’s the truth: The dashboard has a deliberate 'logic-gap' between the JSON engine and the JS renderer. I built the engine to analyze DNA, not to give free rides to those who don't read code.

To the few who reached out or fixed it themselves: You saw the beauty of the AST traversal. To the rest: The code is still there, but remember—in Ultra Meta, if you can't see the logic, you don't own the system.

Happy New Year. The next module will be even less 'friendly'."
by d-lisp | 2026-01-04 14:25:47+00:00
As I am involved in more low level stuff, I prefer to read the source than the man pages, and I am very happy with people overcommenting their code as a user of e.g. a lib. On the other hand, it is unbearable to me to see comments on a codebase I am working on. Fortunately, emacs show/hide comments exists, so I find myself overcommenting things.
by networked | 2026-01-04 14:25:53+00:00
If you use an off-the-shelf binary for any tool, you can put the binary in `${project}/bin/`, add it to `.gitignore`, document the download URL in `README.md` or an install script, and commit the checksum in a project-wide `SHA256SUMS` file (or `B3SUMS`, etc.). It's like a lo-fi version of Git LFS.
by throwaway2046 | 2026-01-04 14:26:45+00:00
It's amazing to see the incredible effort it takes to reverse engineer a synth. While much of the process described in the video went over my head I still found it very interesting to watch. Kudos to the Usual Suspects for not only putting in all that effort but also releasing their findings completely for free.

Side note: does anyone know what the song played at 4:30 is called? It sounds very familiar but I can't remember its name at all.

Edit: I found it, it's "Barthezz - On The Move" but played at a slower BPM.
by dipiert | 2026-01-04 14:26:54+00:00
I may be adding a few more in the next days. So far:

- Lose 3% of body fat / 2 Kgs.

- Run a marathon.

- Complete a 5.6Km run in less than 32 mins.

- Get my VO2Max to 50.2.

- Read 12 books.

- Get the first 200 subscribers in my podcast about computer science history (not yet published)
by zimmerfrei | 2026-01-04 14:27:07+00:00
When you encrypt something, you are the one deciding which level of interoperability
you want and you can select the crypto primitives matching capabilities you know you recipient reasonably have. I don't see anything special with this: when you run a web service, you also decide if you want to talk to TLS 1.0 clients (hopefully not).

sequoia's defaults are reasonable as far as I remember. It's also bit strange that the post found it defaulted to using AEAD in 2019 when AEAD was standardized only in 2024 with RFC 9580.

But the elephant in the room is that gpg famously decided to NOT adopt RFC 9580 (which Sequoia and Proton do support) and stick to a variant of the older RFC (LibrePGP), officially because the changes to the crypto were seen as too "ground-breaking".
by PaulHoule | 2026-01-04 14:27:44+00:00
It's a really common pattern that you want to write

Object value = a.b.c.d;

for something like a JSON value you got over the web where any of it might be null but have to write something like

Object value = nonNull(a) ? nonNull(a.b) ? nonNull(a.b.c) ? d : null : null : null

or

Object value = null
try {
value = a.b.c.d
} catch(NullPointerException x) {}

Just being able to write something like

const value = a?.b?.c?.d;

is a great relief. If it is just value lookup letting a.b return null if a is null would be fine with me but there is something a little creepy about a.doSomething() doing nothing and returning null in that case.

Personally I am not a fan of Optional<T> and (worse) Either<A,B> in Java for various reasons. I think the official functional stuff in Java (like the streams API) is awful, but I like working with functions like

Object value = nullSafe(a,x=>x.b,x=>x.c,x=>x.d)

The author has some affinity towards a collection-first or collection-only style of programming and certainly I have written programs or subprograms working with dynamic structures that leaned heavily into List<T>, that is, a value which might be present or absent can be treated as a List which just happens to have 0..1 members and x.map(y=>...) and other functional operators do the right thing for the 0..1 and 0..N cases and if you use the same set of operators for both of those cases they just roll off your fingers and you are less likely to forget to put in null checks and when you compose more complex operators out of simpler ones it tends to "just work"
by i7l | 2026-01-04 14:28:21+00:00
> Is summarizing by a human much different?

One thing I have noticed and drives me up the wall with AI-generated summaries is that they don't provide decent summaries most of the time. They are summaries of an actual summary.

For instance: "This document describes a six-step plan to deploy microservices to any cloud using the same user code, leading to various new trade-offs."

OK, so what are these six steps and what are the trade-offs? That would be the real summary I want, not the blurb.

The point of a summary is to tell me what the most important ideas are, not make me read the damn document. This also happens with AI summaries of meetings: "The team had a discussion on the benefits of adopting a new technology." OK, so what, if any, were the conclusions?

Unfortunately, LLMs have learned to summarize from bad examples, but a human can and ought to be able to provide a better one.
by Blackthorn | 2026-01-04 14:28:30+00:00
The OP didn't clarify. But if there's a claim of 100% faithful recreation, I'd expect something to back it up, like time- and frequency-domain comparisons of input and output with different test signals. Or at least something. But there isn't anything.

The video claims: "It utilizes the actual DSP characteristics of the original to bring that specific sound back to life." The author admits they have never programmed DSP. So how are they verifying this claim?
by baublet | 2026-01-04 14:28:42+00:00
I think some displays allow fast enough updates for that. But the early versions of the Divoom didn't have enough docs and/or had broken firmware and wouldn't show any custom gifs I sent it. But it's been working great for me for a few years now as a wall clock/weather display.

Finally got around to writing it about this yesterday, actually. https://ryanmpoe.com/2026-01-03-weather-pixel-art/

Happy coincidence, OP!
by maplethorpe | 2026-01-04 14:29:08+00:00
I've found the biggest impediment to this strategy is social pressure. The small step methodology goes against the common sense knowledge that the greatest gains come from hard work, so it often receives a lot of push back from friends and family. In my experience, if someone witnesses you taking a small step, they're likely to tell you you're not trying hard enough, or give you some of their own advice on what you should be doing instead.

Small steps are best taken in private.
by bazzargh | 2026-01-04 14:29:22+00:00
The typo is most likely the extra /, in (x/y)/(x^2+y^2) instead of (xy)/(x^2+y^2).

`2^x & 2^y ...is the & a bitwise operator...???? That would produce a unique ID? That would be very interesting, is that provable?`

Yes, & is bitwise and. It's just treating your players as a bit vector. It's not so much provable as a tautology, it is exactly the property that players x and y are present. It's not _useful_ tho because the field size you'd need to hold the bit vector is enormous.

As for the problem...it sounds bloom-filter adjacent (a bloom filter of players in a hand would give a single id with a low probability of collision for a set of players; you'd use this to accelerate exact checks), but also like an indexed many-to-many table might have done the job, but all depends on what the actual queries you needed to run were, I'm just idly speculating.
by acemarke | 2026-01-04 14:29:40+00:00
I haven't looked specifically at Webpack's development lately, but having seen the overall activity and competition in the bundling ecosystem: no, a 6.x release seems unlikely, and also pretty irrelevant at this point. And no, I don't see Webpack becoming a default choice again.

- Vite has become the default for most SPAs

- Vite is now backed by the VoidZero company, which is moving full speed ahead on a suite of Rust-based build tooling: Rolldown for bundling, Oxc for parsing, etc

- Meanwhile, you've got Bytedance cranking out RSPack and RSBuild

and at least another half-dozen alternatives.
by defanor | 2026-01-04 14:29:49+00:00
This OpenPGP and GnuPG criticism is brought up regularly here, but the proposed alternatives come with their own downsides: some of those are proprietary, some are centralized systems or depend on such. In addition to all the inconvenience, when such centralized systems are blocked, casual users switch to explicitly backdoored options. The advertised IMs are tied to phone numbers, introducing both privacy and availability issues. Almost nothing of that is available from Linux distributions' system repositories. Integration with other software and infrastructures is lacking. Dealing with multiple specialized tools is more of a headache even for expert users, especially when their added benefits do not make much sense given one's threat model. OpenPGP/GnuPG is more resilient and versatile than those, still usable where those are not.

I think such an article would seem more convincing, at least to me, if more sensible alternatives were proposed. Ideally without the advice to not encrypt email, without assumptions of continued availability of all the online services, of trust to certain third parties, and so on. Or it could be just a plain criticism without suggestions, which would still be somewhat informative.

Edit: there is another list of alternatives in a sibling comment, advising against (well, actually being quite hostile towards, and generally impolite) usage of what I had in mind as one of the possible more sensible alternatives: XMPP with OMEMO. Though upon skimming the criticism of that, I have not found it particularly convincing, either, and it just looks like some authors try to be particularly provocative/edgy.
by tristramb | 2026-01-04 14:30:02+00:00
In 'Managing Technical People', 1997, page 199, Watts Humphrey says that, after several failed attempts to produce a PC by IBM procedures, they set up an independent team that could skip the procedures as necessary to get the job done. This worked in the short term but it had two side-effects that were catastrophic in the long term: they lost control of the operating system to Microsoft, and they also lost control of the chips to Intel. He says both of these side-effects would have been caught by the checks inherent in the normal IBM procedures.
by _trampeltier | 2026-01-04 14:30:02+00:00
> According to BMW, the problem is tied to the steering system software, which “may not be sufficiently robust.” The concern involves the steering torque sensor, which has two channels. If one of those channels malfunctions while the vehicle is at a standstill—either during startup, or while in drive mode but not moving—the software diagnostics may not detect the condition correctly.

Seems they use data from sensors before the init is completed.
by thih9 | 2026-01-04 14:30:06+00:00
> What do LLMs train off of now?

Perhaps they’ll rely on what was used by people who answered SO questions. So: official docs and maybe source code. Maybe even from experience too, i.e. from human feedback and human written code during agentic coding sessions.

> The fact that the LLM doesn't insult you is just the cherry on top.

Arguably it does insult even more, just by existing alone.
by susam | 2026-01-04 14:30:45+00:00
A few years ago, I decided to migrate my website to a Common Lisp based static site generator that I wrote myself. In hindsight, it is one of the best decisions I have made for my website. It started out at around 850 lines of code and has gradually grown to roughly 1500 lines. It handles statically rendering blog posts, arbitrary pages, a guestbook, comment pages, tag listings, per tag RSS feeds, a consolidated RSS feed, directory listing pages and so on.

I have found it an absolute joy to maintain this piece of little 'machinery' for my website. The best part is that I understand every line of code in it. Every line of code, including all the HTML and CSS, is handcrafted. This gives me two benefits. It helps me maintain a sense of aesthetics in every byte that makes up the website. Further, adding a new feature or section to the site is usually quite quick.

I built the generator as a set of layered, reusable functions, so most new features amount to writing a tiny higher level function that calls the existing ones. For example, last month I wanted to add a 'backlinks' page listing other pages on the web that link to my posts and it took me only about 40 lines of new Lisp code. It took less than 15 minutes from wishing for it to publishing the new section.

Over the years this little hobby project has become quite stable and no longer needs much tinkering. It mostly stays out of the way and lets me focus on writing, which I think is what really matters.
by saidinesh5 | 2026-01-04 14:31:22+00:00
It's kind of a two way street there though.. Linux is also very indifferent to applications just statically compiling and linking their dependencies.. On top of that, Each distro has it's own story of what licences they'd permit for libraries in their repositories..

That's why a lot of open source c++ devs / applications had to publish build instructions for half a dozen Linux distros.
by delaminator | 2026-01-04 14:31:32+00:00
I stopped using Cursor entirely with 6 paid for months left on my subscription.

You’re right to questions the originality of the code though. I can’t answer to that. I specify at a high level.

In fact I don’t even do that, the spec is created from a chat discussion about what I’m trying to achieve. Opus in planning mode creates documents like this based on our conversation.

https://github.com/lawless-m/Cuthbert/blob/main/PROJECT_OVER...

But I’m not building CRUD all day long. I’m building things i couldn’t find.

If we were creating truly new algorithms we should be writing papers and books.

I think I am doing new work. I don’t think it can just be vibed into existence. I do have to tell it what approaches to take. Like “memoize those results” or try X and measure it.
by bmacho | 2026-01-04 14:31:42+00:00
> I'd do a small doc comment

+1 if it starts with

func DedupeStrings(ss []string) []string {
// dedupes string slice ss
// sorts ss, iterates ss and puts new values at the front, then returns the slice of new values
// modifies ss; unique values appear in lexicographical order

then I don't even read any further.

> "Removes repeated elements from the supplied list, returning the remaining items in original order"

That's not what the function does internally, also not how the result looks like.
by mananaysiempre | 2026-01-04 14:31:50+00:00
> [T]he Provisional Government had lost most of its popular support by choosing to continue WWI

Whereas the Bolsheviks took very little time to effectively surrender to Germany and its allies only half a year before Germany itself surrendered to the former allies of Russia. (Thus freeing up the returning army to wage several years of civil war amongst various parts of itself.) Every option sucked here, much like in every other case during WWI.

And yes, it’s absolutely true that little good usually comes from violently overthrowing a dictator. The best results are obtained from the dictator peacefully resigning after a promise of amnesty for them and their inner circle, however crass and unfair that sounds. Generally speaking, it’s not very helpful to put people in power before a choice of either losing everything or attempting to maintain their hold on that power by whatever means necessary: it’s going to be the second one every time.
by chvgchvg | 2026-01-04 14:31:55+00:00
Yes I agree, different words do hold different meanings, and less common words hold less specific meanings, and I love reading well crafted, elegant writing.
I agree with your point. I guess I'm pouring out my hate on "fake crafted elegance". Like the one you mentioned: "using a thesaurus and agonizing over sentence structure" ONLY for the purpose of making it "sound" better. Not to make it sound truer to you, but to make it sound better to the ears.
by catonmat | 2026-01-04 14:31:59+00:00
The "verify their own reality" point resonates. I stumbled on a post recently where someone documented getting an OCR model from 90% to 98% accuracy - turns out most of the gain came from discovering their training labels were 27% wrong, not from model tweaks. The interesting bit was their finding that running AI verification in parallel resulted in 2% correction rate, but sequential processing caught 65%. That kind of hard-won, numbers-backed insight is what makes technical blogs worth reading vs the flood of tutorial content.

https://devguide.dev/blog/teaching-ai-to-distrust-itself
by tekne | 2026-01-04 14:32:50+00:00
My personal preference would be to have separate types `A` and `A?` and overload field projections to work on `A?` as you'd expect. Subtyping optional.

Putting on my theory hat, while we we can overload field projection for any monad (data structure representing a result + an effect : think result for exceptions, or a thunk for a promise), it's not the best idea.

But for what is at least morally a commutative (order doesn't matter: FAIL ; pure = pure ; FAIL = FAIL) and idempotent (FAIL ; FAIL = FAIL) monad, it works...

Which justifies fun things, like lazy projections on promises!
by teekert | 2026-01-04 14:33:50+00:00
"Zakje chips" is a small bag of crisps (like Lays)... If they go for fries they'd say the go for a "frietje". Eindhoven is distinctly in the South :)

That damn Red Bull though, somehow the kids love it, part of it is probably that their parents keep them away from it. Sugar and Caffeine. Diabetes and poor sleep, great stuff.
by Chaosvex | 2026-01-04 14:34:13+00:00
> That people have different standards when paid? That lack of remuneration justifies poor effort? Isn’t that a very transactional view of human interaction? Are we that transactional?

The answer to all of these questions is yes, for the most part. Volunteers are much harder to wrangle than employees and it's much easier for drama and disagreements to flare when there are zero consequences other than losing an unpaid position, particularly if anonymity is in the mix.

Volunteers can be great but on average they're going to be far harder to manage and far more fickle than employees.
by hexbin010 | 2026-01-04 14:34:30+00:00
Yes, not perfect, but MUCH better than their current version of touch-screen only climate control, which is an exercise in frustration. "Relative perfection" :)

The numbers are centigrade, which for the local market is mostly very obvious and widely understood. 22 is roughly room temperature, so it's good that's at 12 o'clock. This model doesn't have auto climate control.

> which means one may need to find the white marking to decipher where the dial is pointing

You hand can feel the angle the dial is pointing. It was a non-issue for me. the white is illuminated softly at night, and one very quick glance can confirm the position anyway.

Anyway, I'm contrasting to this modern VW abomination: https://www.discoverauto.com.au/wp-content/uploads/2025/02/2... . Try to feel where the slider is set to on that interface... :D Or quickly enable the rear/front demister options...
by 24hrmvp | 2026-01-04 14:35:09+00:00
Credentials be damned - that's not the point. When you say "blind people will just get directions from the front desk"

You need to really understand - that isn't what they want. Same for anybody else that has what is commonly referred to as a disability (which I and many others call superpowers)

Do you know what these people want (and deserve)? Independence.

With independence, comes dignity. The feeling of having to rely on others just to exist is a tough pill to swallow for many - it's why I made this tech MIT open source.

Would be happy if people forked it and went off and helped people gain a bit more independence and dignity in their life.

The average hospital by my estimates can increase their bottomline by a half million in MIPS incentives alone - solutions like this pay for themselves - especially when there is literally no upfront investment for the health system.

But, more important than the money, is giving their patients with superpowers their independence. Period.

That's why I built this (and made it free to license)