lalaithion

Joined 10 years ago

Karma
2,419
Submissions
552
Member since
Mar 9
“to teach if we are called upon, to be taught if we are fortunate”
View on Hacker News

Recent submissions

Comment · 1 month ago
they could just swap the direction for each matching
Comment · 3 months ago
What do you mean the provenance? It was published on livejournal in 2012, that’s the provenance.
Comment · 3 months ago
Yes they have GPUs.
Comment · 4 months ago
What about virtual events between participants in different time zones? Whose do you keep stable if one has their clock moved under them?
Comment · 9 months ago
System.Object is a type of all objects, NOT a type of all types. That is, all objects are System.Object. If one has a class Foo, then every object of type Foo is also of type System.Object. But what is the type of Foo itself? Not of an instance of Foo, but Foo itself. In the languages this paper is about, the type system can recurse upon itself, allowing types themselves to have type. It’s sort of like C#’s System.Type, except System.Type is a class that holds type information for runtime type inspection, whereas the type of types in this paper is for compile-time generics that can abstract over not just types but the types of types as well.
Comment · 10 months ago
This post mixes up “easy for compilers and assemblers to transform and easy for cpus to execute” with “easy for LLMs to understand” and assumes that anything in the first category must also be in the second category since they’re both computers. In reality, the tools that help humans think are also useful for LLMs.
Comment · 11 months ago
Yes; because - is on the keyboard and — isn't. (Don't tell me how to type —, I know how, but despite that it is the reason, which is what the parent comment asks about.)
Comment · 11 months ago
[flagged]
Comment · 1 year ago
Comment · 1 year ago
Protocol buffers suck but so does everything else. Name another serialization declaration format that both (a) defines which changes can be make backwards-compatibly, and (b) has a linter that enforces backwards compatible changes.

Just with those two criteria you’re down to, like, six formats at most, of which Protocol Buffers is the most widely used.

And I know the article says no one uses the backwards compatible stuff but that’s bizarre to me – setting up N clients and a server that use protocol buffers to communicate and then being able to add fields to the schema and then deploy the servers and clients in any order is way nicer than it is with some other formats that force you to babysit deployment order.

The reason why protos suck is because remote procedure calls suck, and protos expose that suckage instead of trying to hide it until you trip on it. I hope the people working on protos, and other alternatives, continue to improve them, but they’re not worse than not using them today.

Comment · 1 year ago
They didn’t account for training. From the paper:

> LLM training & data storage: This study specifically considers the inference and serving energy consumption of an Al prompt. We leave the measurement of Al model training to future work.

This is disappointing, and no analysis is complete without attempting to account for training, including training runs that were never deployed. I’m worried these numbers would be significantly worse and that’s why we don’t have them.

Comment · 1 year ago
A couple nits, since we're already going above and beyond the normal amount of nitpicking:

1. In Kenji's article on how to cut an onion, he shows a picture after doing the horizontal cuts; he did five of them, not just one or two. (https://www.seriouseats.com/knife-skills-how-to-slice-and-di...)

2. I'm pretty sure I do more than 10 vertical cuts; there's no easy image in the link above and the video cuts before he does all the vertical cuts, but I think he's doing at least 20.

3. In real life, an onion starts flexing and bending when you cut. With a very sharp knife, I'm sure you do get a bunch of the small pieces which throw off the standard deviation for the "more cuts" method, but a bunch of the small pieces won't actually be cut as a layer of the onion is pushed out of the way instead of a tiny piece cut off.

Comment · 1 year ago
What if your program depends on library a1.0 and library b1.0, and library a1.0 depends on c2.1 and library b1.0 depends on c2.3? Which one do you install in your executable? Choosing one randomly might break the other library. Installing both _might_ work, unless you need to pass a struct defined in library c from a1.0 to b1.0, in which case a1.0 and b1.0 may expect different memory layouts (even if the public interface for the struct is the exact same between versions).

The reason we have dependency ranges and lockfiles is so that library a1.0 can declare "I need >2.1" and b1.0 can declare "I need >2.3" and when you depend on a1.0 and b1.0, we can do dependency resolution and lock in c2.3 as the dependency for the binary.

Comment · 1 year ago
Yeah but GET doesn’t allow requests to have bodies (yeah, I know, technically you can but it’s not very useful), and this is a legitimate issue preventing its use in complex APIs.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton