MurphyA/hacker-news huggingface dataset:
by Matl | 2025-08-23 16:38:58+00:00
Go was written with the experience of a bunch of C people who weren't particularly fond of C++ while writing network services/systems at Google and have written Go as a 'C for the 21st century' with the sort of use case they used C++ for previously at Google.

People like Rob Pike and Ken Thompson certainly knew that you can't put in a GC and cover all systems programming use cases, but they knew that Go could cover their use cases.

Or are you suggesting that they were frustrated with C++ so they decided to write a language they couldn't use instead of C++ for their use case?

> Google's networking services keep being writen in Java/Kotlin, C++, and nowadays Rust.

And? Google is a massive company that uses many languages across many teams. That doesn't mean that some people at Google, incl Go's original creators, would not use Go nowdays to write what they would previously use C++ for.
by sschnei8 | 2025-08-23 16:39:15+00:00
I feel like this is more an example of:

“We filtered first instead of reading an entire table from disk and performing a lookup”

Where both OLAP and OLTP dbms would benefit.

To your point, it’s clear certain workloads lend themselves to OLAP and columnar storage much better, but “an endless sequence of misbehavior” seems a bit harsh .
by jayd16 | 2025-08-23 16:39:22+00:00
Fit and finish is good and Apple has been good at leveraging minimalist designs in premium materials. Even if a MacBook is very old, it's hard to say it looks or feels old.

And the real irony is past 5 years it drops off a cliff because of Intel Mac End of life.

Most people really don't care about tech specs for a daily driver. I mean, I love specs but my coffee table laptop is a Google Pixelbook (2017) with a metal body and ancient junk inside, but it still feels good to use.
by yencabulator | 2025-08-23 16:40:10+00:00
1190s is still pretty modern when the Turkish construction is believed to be from 700-2000 BCE, and the commenters words "almost nothing" are spot on for the U.S.

I grew up near a castle not much younger than Mesa Verde and a church that was mostly built in the 1400s and they were just regular buildings around town. I had a friend who lived in a 600 year old building with meter-thick stone walls. A cafe had glass floor under which you could see preserved medieval city streets, with coins etc left as found.

USA has gorgeous old nature with amazing stories to tell (I've found dinosaur footprints on a hike! I've watched clouds gather below me in the Grand Canyon! I've seen some of the largest trees in the world!), but human history just ain't one of its strong suites.
by andai | 2025-08-23 16:40:16+00:00
>Whether websites have to work without any JavaScript at all is a question almost as old as the web itself. By now, the answer is clear: No, they don’t. It’s firmly established that websites should be more than just structured and styled text. JavaScript execution is an integral part of (almost) every browser.

The page this text is on, proves that isn't true!
by mananaysiempre | 2025-08-23 16:40:36+00:00
WTF-8 is more or less the obvious thing to use when NT/Java/JavaScript-style WTF-16 needs to fit into a UTF-8-shaped hole. And yes, it’s UTF-8 except you can encode surrogates except those surrogates can’t form a valid pair (use the normal UTF-8 encoding of the codepoint designated by that pair in that case).

(Some people instead encode each WTF-16 surrogate independently regardless of whether it participates in a valid pair or not, yielding an UTF-8-like but UTF-8-incompatible-beyond-U+FFFF thing usually called CESU-8. We don’t talk about those people.)
by MathMonkeyMan | 2025-08-23 16:40:53+00:00
You can do hydroponics outside, but it will still be warm at night. And with hydroponics, you need to prevent the water from getting too warm -- the roots will rot. So you might have trouble during the day, too.

[This guy][1] does a bunch of hydroponics and hydroponics adjacent projects outdoors.

[1]: https://www.youtube.com/@Hoocho
by CharlesW | 2025-08-23 16:41:17+00:00
> Right now the app leans heavily on punishment mechanics (loss aversion + alarms)…

For those who know the "tough love" approach won't be effective for them or their family members, I recommend checking out the gentler, less-aggressive approach of an iOS/Android app at the top of Apple's charts right: Hank Green's "Focus Friend". https://www.yourfocusfriend.com/
by 827a | 2025-08-23 16:41:46+00:00
Its mentality. When told "Tennis is likely to have amazing health benefits", you could respond by saying "Sick, I'll integrate more tennis or sports like it into my life". In fact, one might not respond at all, and just do it. But instead, some people have this bug in their programming where they feel compelled to respond with a variant of "well, ahktually, tennis is popular among rich people so there's confounding factors at play which means you can't actually claim...."

The source of this bug is the same reason why when someone says "I wake up at 4:30am to go on a run", you'll 100% always get someone to respond "adequate sleep also matters, what time are you going to bed, you're missing out on important life events that happen after 8pm" etc. The cardinal sin is jealousy; getting up at 4:30am is hard, playing tennis multiple times a week is hard, the opposing side feels jealousy because they aren't doing something that's hard, so they need to find any way to minimize that hard thing they're doing to feel like equals.

Even you're doing this, and you don't realize it: "What's wrong with running at a normal time?". Nothing at all. Literally, seriously, no one even remotely implied there was anything wrong with running at a normal time. Someone choosing to run at 4:30am does not mean not running at 4:30am is bad; but you think it is. Why? Because it is true that running at 4:30am is harder. Harder doesn't always even mean better, especially when it comes to getting up at 4:30am, but it does definitely mean Harder. So: You minimized their strain by asserting that running at 4:30am is "not normal".

This isn't a university, and you're not a test subject. You're a human, who needs to take care of their body. Arguing about the minutia of the results of some research paper is Mindset; its forest for the trees. Literally, no one who adequately exercises would care that much about studies on tennis which adequately control for confounding factors, because they're too busy actually playing tennis, and they've seen and felt the positive effect it has had on their body and don't need a research paper to tell them its healthy.

(I'm just using tennis as an example here; there's plenty of other sports that follow this vein)
by kragen | 2025-08-23 16:41:47+00:00
He does have one paragraph about tomatoes, but he also talks about Andean cacti like Browningia candelaris, "plants from places like cloud forests of Central America", Solanum pennellii, and "plants from (...) the Páramo of Ecuador".

My mother was able to grow tomatoes successfully in Pohnpei, which is at 3° latitude and never gets outside the temperature range of about 23°–32°. https://weather.com/es-GT/tiempo/10dias/l/cc8849a0250ec854cb.... They were pretty leggy though; she had a hard time keeping them alive.
by zahlman | 2025-08-23 16:42:37+00:00
>"Unicode Scalars", aka "well-formed UTF-16", aka "the Python string type"

"the Python string type" is neither "UTF-16" nor "well-formed", and there are very deliberate design decisions behind this.

Since Python 3.3 with the introduction of https://peps.python.org/pep-0393/ , Python does not use anything that can be called "UTF-16" regardless of compilation options. (Before that, in Python 2.2 and up the behaviour was as in https://peps.python.org/pep-0261/ ; you could compile either a "narrow" version using proper UTF-16 with surrogate pairs, or a "wide" version using UTF-32.)

Instead, now every code point is represented as a separate storage element (as they would be in UTF-32) except that the allocated memory is dynamically chosen from 1/2/4 bytes per element as needed. (It furthermore sets a flag for 1-byte-per-element strings according to whether they are pure ASCII or if they have code points in the 128..255 range.)

Meanwhile, `str` can store surrogates even though Python doesn't use them normally; errors will occur at encoding time:

>>> x = '\ud800\udc00' >>> x '\ud800\udc00' >>> print(x) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'utf-8' codec can't encode characters in position 0-1: surrogates not allowed

They're even disallowed for an explicit encode to utf-16:

>>> x.encode('utf-16') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'utf-16' codec can't encode character '\ud800' in position 0: surrogates not allowed

But this can be overridden:

>>> x.encode('utf-16-le', 'surrogatepass') b'\x00\xd8\x00\xdc'

Which subsequently allows for decoding that automatically interprets surrogate pairs:

>>> y = x.encode('utf-16-le', 'surrogatepass').decode('utf-16-le') >>> y '𐀀' >>> len(y) 1 >>> ord(y) 65536

Storing surrogates in `str` is used for smuggling in binary data. For example, the runtime does it so that it can try to interpret command line arguments as UTF-8 by default, but still allow arbitrary (non-null) bytes to be passed (since that's a thing on Linux):

$ cat cmdline.py #!/usr/bin/python import binascii, sys for arg in sys.argv[1:]: abytes = arg.encode(sys.stdin.encoding, 'surrogateescape') ahex = binascii.hexlify(abytes) print(ahex.decode('ascii')) $ ./cmdline.py foo 666f6f $ ./cmdline.py 日本語 e697a5e69cace8aa9e $ ./cmdline.py $'\x01\x00\x02' 01 $ ./cmdline.py $'\xff' ff $ ./cmdline.py ÿ c3bf

It does this by decoding with the same 'surrogateescape' error handler that the above diagnostic needs when re-encoding:

>>> b'\xff'.decode('utf-8') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte >>> b'\xff'.decode('utf-8', 'surrogateescape') '\udcff'
by dominis | 2025-08-23 16:42:47+00:00
I had the same problem, browser extensions weren't enough, and I wanted something system-wide. So I built Sinkzone [1], a DNS tool that blocks everything unless allowlisted. It’s open-source and works across OSs. Thought it might be helpful if you're looking beyond NextDNS.

[1] https://github.com/berbyte/sinkzone
by techpineapple | 2025-08-23 16:43:00+00:00
Do you regularly use chatGPT as a voice assistant?

Like, I kind of wonder what else I might want SIRI to do that isn’t hard. I would like it to occasionally summarize facts like who was the president of France in 1975, and I might use it for that, but I wonder… does Apple make any money if they add that feature? Do they _want_ people using Siri? Yes, it is actually a valuable feature for me to be able to get directions while driving or play a song while cooking. Everything else has a weird cost-benefit ratio to Apple I imagine. The things that make you think the iPhone is substantively more valuable because Siri can do them are hard.

It probably comes down to the fact that Apple likes to make money, and OpenAI isn’t quite as concerned.
by gnfargbl | 2025-08-23 16:43:00+00:00
It's pretty standard for the infosec world, it attracts somewhat unusual personalities. This is why it's so important for larger companies to have clearly signposted responsible disclosure channels: if the channels are there, then people like Bob often will use them, even if there's no reward on offer.

> causing the friend to get fired, rightfully so

Given that the intent of the friend was to help improve McDonalds' security, I'd have to disagree that the firing was rightful. However, it is something that probably 90%+ of multinationals would do in this situation.
by Terretta | 2025-08-23 16:45:22+00:00
Paper: SlowFast-LLaVA-1.5: A Family of Token-Efficient Video Large Language Models for Long-Form Video Understanding:

“We introduce SlowFast-LLaVA-1.5 (abbreviated as SF-LLaVA-1.5), a family of video large language models (LLMs) offering a token-efficient solution for long-form video understanding... Experimental results demonstrate that SF-LLaVA-1.5 achieves superior performance on a wide range of video and image tasks, with robust results at all model sizes (ranging from 1B to 7B). Notably, SF-LLaVA-1.5 achieves state-of-the-art results in long-form video understanding (e.g., LongVideoBench and MLVU) and excels at small scales across various video benchmarks.” -- https://arxiv.org/abs/2503.18943

Github: https://github.com/apple/ml-slowfast-llava

Hugging Face: https://huggingface.co/papers/2503.18943
by ninkendo | 2025-08-23 16:45:44+00:00
So?

All the letters in this string are “just text”:

"\u0000\u0089\uDEAD\uD9BF\uDFFF"

JSON itself allows putting sequences of escape characters in the string that don’t unescape to valid Unicode. That’s fine, because the strings aren’t required to represent any particular encoding: it’s up to a layer higher than JSON to be opinionated about that.

I wouldn’t want my shell’s pipeline buffers to reject data it doesn’t like, why should a JSON serializer?
by overfeed | 2025-08-23 16:46:01+00:00
> DNS: Can you from memory recite how name lookups work on Linux

Yes, I can, and I use systemd only because it's the default on debian, I have no reason to try devuan yet.

> ever written the old sysV ones from scratch?

Many, many times, and I was only an enthusiast/user, not a sysadmin.

> did you remember to make yours re-entrant?

Dealing with PID files was only mildly annoying. Init scripts were very boilerplate-y, so I wouldn't forget anything after my copy-paste-edit-delete unnecessary parts cycle. In a single afternoon, one could bash out an CLI init-script generator that uses jinja2 templates and interactively asking <10 questions about the service.

> Systemd is not perfect. But what it replaces was god-awful and far worse.

Init systems shouldn't have anything to do with managing container lifecycles beyond managing the container-runner service using the usual unix interface (signals). Call me a purist, but system services shouldn't be containerized.

An init system shouldn't be managing DNS or logging either, those should be standalone components. If they are problematic, there should be composable, domain-specific tools that solve them, instead of smooshing everything into systemd.

SystemD wasn't the only possible way to solve those logging, DNS, or security policy problems, and I'm glad other PID 1 projects that focus on being init systems are thriving.
by griffzhowl | 2025-08-23 16:46:04+00:00
btw, Jared Diamond's "Collapse" begins with a chapter on Montana gold mines. When I first got it I thought "oh no, this is gonna be boring af", but his depth and breadth of knowledge made even that captivating. I also learned later in the book about the Greenland Norse and their ups and downs, and that was also revelatory. Reading that book was one of the top edifying experinces of my life. I highly recommend it.
by chimpanzee | 2025-08-23 16:46:54+00:00
> He's talking about growing tomatoes all the way through the article. Nothing but talking about how tomatoes grow

This is flat-out wrong. (And the comment you replied to is also wrong.)

He mentions tomatoes only 6 times in about 1500 words. These words appear half-way into the article, in only 2 of the roughly 16 paragraphs. Three of those instances are in direct reference or comparison to the wild ancestors of tomatoes.

While not specifying, the article also mentions high-altitude, tropical plants and cacti.
by porridgeraisin | 2025-08-23 16:47:23+00:00
Love this. Majority of concurrency in a usual web service is implemented using waitgroups IME (see below) This will greatly simplify it.

var wg sync.WaitGroup wg.Add(1) go func(){ callService1(inputs, outParameter) wg.Done() } // Repeat for services 2 through N wg.Wait() // Combine all outputs

BTW, this can already be done with a wrapper type

type WaitGroup struct { sync.WaitGroup } func (wg *WaitGroup) Go(fn func()) { wg.Add(1) go func() { fn() wg.Done() }() }

Since you're doing struct embedding you can call methods of sync.WaitGroup on the new WaitGroup type as well.
by lukepuplett | 2025-08-23 16:48:04+00:00
Hey all,

To solve the problem where we each have to repeatedly upload and over-share entire private documents to gain access to services or prove something about ourselves (or about where timber was sourced, etc.), I have created ProofPack, it's an open source NPM package for making selective disclosure proofs.

At its heart is a JSON format defining a Merkle tree, plus a pointer to an attestation of the Merkle root hash on a service like EAS on e.g. the Base blockchain.

The JS library (npm) makes it easy to create proofs as well as read and verify other people's proofs.

The general idea is that many of our apps could be providers of strong proof. We can bear witness to "bundles of facts", i.e. short records, onchain and then offer downloadable proofs to our users which can then be uploaded to some other app.

The canonical example is a passport checking app can make a proof of date of birth which can be read by a gambling app, but all kinds of stuff can be proven, e.g. where your steak was sourced from.

This use-cases doc is a good place to learn.

https://github.com/zipwireapp/ProofPack/blob/main/docs/suppl...

Thanks for reading. It's free - I don't make any money from this. I just think we need to stop uploading PDFs or photos of our passport, and that as engineers and product people, we need to agree a way to exchange verifiable records.

Btw, it's different to ZKP; you'd use it when you want to actually share the data.

Luke
by ksec | 2025-08-23 16:48:46+00:00
That is actually a valid point on expectation given the attracted people's demographic.

I will hopefully wait for comments from Ghostty, Bun or Tigerbeetle Devs.

On another point that is wroth mentioning, I hope Andrew will at least put it out publicly, IMO Zig isn't Anti-Rust. But it did attract the type of people who are not too happy with Rust. I dont remember a single time Zig came out to bash anything about Rust. It isn't Anti anything at all. Its goal is to be a decent C replacement as very high level assembly languages, aiming at Data Oriented Design with some interesting features, and extremely fast compilation speed. ( Which was the reason why I was interested in it in the first place. I miss Turbo Pascal )

Zig reminds me of the old school, traditional projects. It isn't perfect for everything, it never claims to be, if you like it, use it. If not, there are plenty of options out there.

At least Ghostty Dev seems to be enjoying it almost every day.
by retrac | 2025-08-23 16:49:25+00:00
> I believe attitudes toward air-conditioning are class markers in many European countries. Air-conditioning is seen as prototypically American

Anecdotally, from the Europeans I know, this is true. When the topic comes up, I will mention that we almost universally have air conditioning here in Canada. (As we do.) After any initial surprise fades over AC in a country generally known for being cold a retort comes usually along the lines of "well you're practically Americans culturally anyway". That may be part of it, sure.

But I think it's mostly that electricity is cheap here, while it reaches almost 40 °C in summer.

Speaking of electricity, the article doesn't really mention energy costs. Here in Canada I don't know many who don't have AC because they don't like it philosophically, but I know some people who don't have one, or who don't use their AC as much as they would like, because they just can't afford it. And it's not the AC itself. It's the electricity. A window unit running on high will consume its weight in electricity in one summer, or sooner.

And that's at Canadian electricity prices, where we pay about 0.10 CAD (0.06 EUR / 0.07 USD) per kWh here. To run AC like Canadians do (often with central air to cool the entire home) could cost potentially thousands of dollars a year, if we paid German electric rates.
by commandersaki | 2025-08-23 16:49:47+00:00
My 12" powerbook from 2002 lasted well into 2011 until I formally retired it by giving to a mate.

Most of my macbook airs have lasted at least 7 to 8 years. None have actually died and were still intact, but I just gave them away, so I don't know how much longer they lasted.

My 2015 macbook pro (pre butterfly) is still going strong today; I did a battery replacement myself which was a huge pain in the arse, so it definitely feels replenished.

I have replaced many of my family members laptops with M-series laptops, nay issue, and I have a feeling they'll easily go a decade, though at some point they'll all need the battery replaced (but I will probably just have Apple do it this time - unless it is easy now with the repair manuals being available by Apple).
by shepherdjerred | 2025-08-23 16:49:48+00:00
I do this with Selkies to do Twitch Plays Pokemon, but for Discord

The container runs KDE a web browser that runs an emulator. It's all GPU accelerated.

https://github.com/selkies-project/docker-selkies-glx-deskto...

https://github.com/shepherdjerred/discord-plays-pokemon
by rododecba | 2025-08-23 16:49:52+00:00
I recently launched Libre , a small side project and social experiment. It’s not a social network, but kind of the opposite:

No profiles, usernames, or followers

No likes, trending topics, or algorithms

No ads, no data collection

Just anonymous thoughts from people around the world. Curious to see how it evolves and what kind of conversations happen when metrics are removed.
by freehorse | 2025-08-23 16:50:17+00:00
> content creators used legal and business mechanisms to make piracy inconvenient

Copyright holders, not content creators. Though typically content creators are also copyright holders, copyright holders are not always content creators, esp in this context. To a big degree these practices are not on the behalf of content creators nor are they helping them.

The solution may be elsewhere: starting from creating content that people may actually care about.
by chis | 2025-08-23 16:50:29+00:00
A16Z is consistently the most embarrassing VC firm at any given point in time. I guess optimistically they might be doing “outrage marketing” but it feels more like one of those places where the CEO is just an idiot and tells his employees to jump on every trend.

The funny part is that they still make money. It seems like once you’ve got the connections, being a VC is a very easy job these days.
by crashprone | 2025-08-23 16:50:40+00:00
The idea is amazing, congratulations on getting the product out! However, there's a lot about this site that doesn't sit well with me. The rather generic site design and uninspiring results of the challenges are something that I could probably overlook, but what irks me the most is the lack of any human aspect throughout the site. How does an academy completely gloss over the contributions of various amazing people who've been teaching shaders for years now and are responsible for making shaders accessible and fun? I would've never learnt what GLSL is, without ShaderToy. If someone started learning shaders through this site and never discovered the treasure trove of material on iquilezles' website, how do we expect them to jump straight into "Ray Marching"? I can't help but think that the site intentionally holds back information on various other phenomenal shader learning resources.

Existing works of art like iquilezles "Planet Fall" should be part of the recommended curriculum if only to inspire others and set the baseline for what's possible with shaders.