MurphyA/hacker-news huggingface dataset:
by shevy-java | 2025-12-27 03:03:29+00:00
> the best point for developer productivity IMO.

That is a fair opinion. My opinion is different, but that's totally fine - we have different views here.

What I completely disagree with, though, is this statement:

> Without any types in a dynamic language, you often end up with code that can be quite difficult to understand what kinds of objects are represented by a given variable.

I have been writing ruby code since about 22 years (almost) now. I never needed types as such. My code does not depend on types or assumptions about variables per se, although I do, of course, use .is_a? and .respond_to? quite a lot, to determine some sanitizing or logic steps (e. g. if an Array is given to a method, I may iterate over that array as such, and pass it recursively into the method back).

Your argument seems to be more related to naming variables. People could name a variable in a certain way if they need this, e. g. array_all_people = []. This may not be super-elegant; and it does not have as strong as support as types would, but it invalidates the argument that people don't know what variables are or do in complex programs as such. I simply don't think you need types to manage this part at all.

> Especially in older poorly factored codebases where there are often many variations of classes with similar names and often closely related functions it can feel almost impossible until you're really familiar with the codebase.

Note that this is intrinsic complexity that is valid for ANY codebase. I highly doubt just by using types, people automatically understand 50.000 lines of code written by other people. That just doesn't make sense to me.

> With an actual fully typed language you're much more constrained in terms of what idioms you can use

I already don't want the type restrictions.

> A gradual type system on top of a dynamic language gets you some of the best of both worlds.

I reason it combines the worst of both worlds, since rather than committing, people add more complexity into the system.
by danaris | 2025-12-27 03:04:00+00:00
I have heard that the name of Kentucky derives from a "cane-tuck"—a copse of river cane, a kind of bamboo native to North America.

(My only source for this was someone who had learned of the existence of river cane in their Kentucky backyard, and was doing an enthusiastic deep research dive into it. It may or may not be true, but it's at least an interesting possibility!)
by cosmic_cheese | 2025-12-27 03:04:25+00:00
> Without any types in a dynamic language, you often end up with code that can be quite difficult to understand what kinds of objects are represented by a given variable. Especially in older poorly factored codebases where there are often many variations of classes with similar names and often closely related functions it can feel almost impossible until you're really familiar with the codebase.

One of the worst parts of exploring an unfamiliar codebase written in a language without type labeling is tunneling through the code trying to figure out what this thing you see being bounced around in the program like the a ball in a pinball machine actually is.
by jesse__ | 2025-12-27 03:04:56+00:00
I mean, I agree with the notion that a great type system is part of a great language, but the type system is only a small part of the overall whole.

Haskell has a great type system, but it fails miserably at many trivial tasks I care about :

1) sum 1 million integers == stackoverflow (big lul)

2) massive memory cliffs for using the wrong type [1], which is not uncommon

3) poor metaprogramming facilities

4) difficult documentation

[1] https://stackoverflow.com/questions/76470000/is-there-a-reas...
by cbare | 2025-12-27 03:05:25+00:00
My favorites that I read this year were:

- Playground by Richard Powers: the ocean reminds us that we, along with our obsessions and rivalries, are small
- Orbital by Samantha Harvey: a book were not much happens, but a lot goes on below the surface
- Hum by Helen Phillips: looks at an AI controlled near future through a different lens
- Tomorrow & Tomorrow & Tomorrow: sex, lies, and video games
by aw1621107 | 2025-12-27 03:06:32+00:00
> Autofree can be combined with other memory management methods, besides GC, and is something V developers have hinted at multiple times.

I'm just working off of what I could easily find, particularly in public docs. If the V devs have hinted at possibilities other than manual memory management and GC, then you are certainly better positioned than me to know about them.

Are the hints you mention publicly visible somewhere? Would be interesting to see more details if they're available.
by atomicnumber3 | 2025-12-27 03:06:48+00:00
In large - and honestly even medium - and honestly-honestly even _not-small_ python projects, you often end up losing track of what stuff is.

At one of my jobs, i was often plagued by not knowing if "f" - short for file, naturally, that part is fine tbh - was a string, an io-like thing, a path object, a file object, or what-have-you. Sure sure, some argue this is the magic of python - just try to do whatever you want to it, and if it doesn't work, throw an error - I know I know. I'll tell you that's all really cool until you have 8 different people passing around 8 different types and you're just trying to have the darn program not crash and also not print logs like "could not snafucate file: [whatever str/repr comes out when you print() an IO object]". And this isn't one of those cases where being able to shrug at the type is like, buying you anything. It's just a damn file.

So, when python's types came out, I started going in and type hinting f: str where i found it and could determine it was a string. (and various other things like this - obviously f is just an example). And suddenly after enough of this, we just stopped having that problem. Coworkers thanked me when they saw me in the diffs adding them. People just passed in strings.

I'll also add that in most programs, most types are just primitives, built-in collections, and structs composing those two. So while it's quite nice yes that you can do crazy backflips that would simply not work in more rigidly typed languages, often I do want to just reassure everyone that yes, please pass in a str for "file". And if i've typed it as str|IO then do feel free to also pass in an IO. It just lets me talk to the other programmers in the codebase a lot more easily. I'm not trying to enforce correctness of types necessarily. I'm just trying to communicate.
by bdangubic | 2025-12-27 03:07:01+00:00
yes, since uniformed people have gained legal rights to touch my junk in order for me to be allowed to board the plane (not to mention that they took my toothpaste twice) - every year since then. we have lost every ounce of freedom after 9/11 and this “madness” today is nothing new, we just take for granted now what our own “freedoms” have been reduced to
by shevy-java | 2025-12-27 03:07:23+00:00
I agree on the first part. This is valid for all programming languages though.

I disagree that you get the same safety as C# anywhere though. But even more importantly - I don't think people should write C#-like code in ruby. It does not really work that well. It is better to write ruby like ruby; and even in ruby there are many different styles. See zverok using functional programming a lot. I stick to oldschool boring OOP; my code is very boring. But usually well-documented. I want to have to think as little as possible because my brain is very inefficient and lazy; zverok has a good brain so he can write more complex code. It is very alien code to me though, but he also documents his code a lot. You can find his code or some of his code here, it is a quite interesting ruby style, but also alien to me: https://zverok.space/projects/

(Ruby also adopted some habits from perl. I also don't think writing perl-like ruby makes a lot of sense. See also the old global variables inspired by perl; I can not recall most of them off-hand, so I avoid using them. My brain really needs structure - it is such a poor thinking machine really. And slow. My fingers are much faster than my brain really.)
by rester324 | 2025-12-27 03:08:34+00:00
Buying a phone is a non-dispensable part of life today. There are some government services in many countries which are digital only (and phone only in particular), and restaurants, hotels, etc in the service industry which all require you having a phone, otherwise you can't use their services. And this trend is growing. So if you are the type who wants to live in a cave, or hang yourself on a tree rather than accepting that modern societies require a modern phone, thats's your choice. But others rather accept this. We are beyond the point where this trend can be reversed. On the other hand AI is not that integral part of people's lives yet, and it's better to protest now as long as it has an impact
by __alexander | 2025-12-27 03:08:56+00:00
Murakami’s fiction novels are extremely different from “What I Talk About When I Talk About Running”. If you want to try another non-fiction book of his check-out “Underground : The Tokyo Gas Attack and the Japanese Psyche”, I loved it. If you go the fiction route “Kafka on the Shore” and “A Wild Sheep Chase” are a good starting point. Avoid some of his longer works unless you enjoy his style.
by malikolivier | 2025-12-27 03:09:05+00:00
If I remember correctly, the properties mentioned in this document are well-known and commonly found in mushroom field guides or scientific literature written in the Chinese language.

I've been to Yunnan and have eaten that mushroom too (properly cooked!).
We can find closely related species to this one in the wild in Japan too, but documentation for those Lanmaoa species found outside China is currently lacking, I believe.

EDIT: Found the field guide I was thinking about on my shelf. It's "中国真菌志 牛肝菌科(III)" [1], which is only about boletes!

[1] https://baike.baidu.com/item/%E4%B8%AD%E5%9B%BD%E7%9C%9F%E8%...
by xpe | 2025-12-27 03:09:39+00:00
Yes. People want to know that others are spending time on an interaction. Taking short-cuts feels impersonal.

There are people with better and worse social skills. Some can, in a very short period of time, make you feel heard and appreciated. Others can spend ten times as long but struggle to have a similar effect. Does it make sense to 'grade' on effort? On results? On skill? On efforts towards building skills? On loyalty? Something else?

Our instincts are largely tuned to our ancestral environment. Even our social and cultural values that got us to say ~2023 have not caught up yet.

We're looking for 'proof of humanity' in our interactions -- this is part of who we are. But how do we get it with online interactions now?

Maybe we have to give up any expectation of humanity if you can't the person right in front of you?

Strap in, the derivative of the derivative of crazy sh1t is increasing.
by Hizonner | 2025-12-27 03:10:15+00:00
TLS 1.3 forces PFS, which means that if you want to decrypt a 1.3 stream, you have to actually do a man in the middle attack, not just get a copy of a key. PFS was optional before.

It supports ECH, which lets you hide which service the client is trying to reach on a multitenant host or CDN. Given that Cloudflare supports ECH, and that it's possible to hide the fact that you're using ECH, that makes it possible to have connections that could actually be using any of a huge number of possible sites without passive spying equipment being able to tell which ones.

It removes a bunch of weak old primitives and options, and should generally be harder to misconfigure in a dangerous way.
by zem | 2025-12-27 03:10:23+00:00
the argument is not "some other language has it so we should", the argument is "static type checking is very useful even if it is not 100% strict, and ruby's lack of syntactic support for type annotations makes them clunky to use, so here's an enhancement that adds them".

the intrinsic use case is that your code is often implicitly statically typed, even if the language itself doesn't enforce that, so it's nice for tools to check it for you. this gets more and more useful the larger your codebase gets; python and javascript have shown that in practice.

and note that people have already written type checkers for ruby, they are just much less pleasant to use because there is no nice way to express the types you would like to check/enforce.
by jibal | 2025-12-27 03:10:57+00:00
foo is a name. It's not at all clear what you mean by "the foo" ... the called function can modify the object referenced by the symbol foo unless it's immutable. If this is your complaint, then solve it with documentation ... I never write a function, in any language, that modifies anything--via parameter or in an outer scope--without documenting it as doing so.

> I don't care about the reference to foo (that's a low-level detail that should be confined to systems languages, not application languages)

This is not true at all. There's a big difference, for instance, between assigning a reference and assigning an object ... the former results in two names referring to the same object, whereas in the latter case they refer to copies. I had a recent case where a bug was introduced when converting Perl to Python because Perl arrays have value semantics whereas Python lists have reference semantics.

There seem to be disagreements here due entirely to erroneous or poor use of terminology, which is frustrating ... I won't participate further.
by eschaton | 2025-12-27 03:11:13+00:00
That literally *is* what they’re doing though, just not at sentence granularity—they’re doing it at both larger and smaller scales. Sometimes they may give you a plagiarized paragraph, sometimes they’ll give you a plagiarized phrase, sometimes they’ll give you a structure that they fill in with “their own” words where the structure itself was taken from something… They do nothing original.
by glenstein | 2025-12-27 03:12:26+00:00
I suppose I don't disagree with the individual observations, but where you lose me is in treating it all like it amounts to some kind of conceptual system crash that precludes progress as a matter of principle. It's not even that I disagree one way or the other so much as it's a matter of having trailed off from the question of the role of definitions in research.

Maybe it helps to consider dark matter. What we have is effectively a placeholder definition based on its observable effects. We don't know if it's WIMPs, axion-like particles, or even some alternative framework for gravity. But we have enough to state meaningful questions about it and iterate toward understanding from a number of directions using a combination of hypothesis, data and experimentation. Finding out what it truly is would be the culmination of research that settles the question rather than something to be stipulated at the start.

So depending on how you look at it, you already have a working definition of consciousness sufficient to organize research, we already have made real progress of the kind that should be impossible if definitions were really dealbreakers, and having "a definition" in the complete sense is something you would never have up until the point the question was settled once and for all, which happens at the end of research rather than the beginning.

I see Wittgenstein mentioned more often in these parts which is awesome, and I think the best Wittgensteinian attitude to adopt here is to turn the tables on this whole question and refuse to agree that there's such a thing as a question of definition that stands between us and research progress.
by beej71 | 2025-12-27 03:13:23+00:00
I've moved away from DOCish or PDF for storage to text (usually markdown) with Makefiles to build with Typst or whatever. Grep works, git likes it, and I can easily extract it to other formats.

My old 1995 MS thesis was written in Lotus Word Pro and the last I looked, there was nothing to read it. (I could try Wine, perhaps. Or I could quickly OCR it from paper.) Anyway, I wish it were plain text!
by godzillafarts | 2025-12-27 03:13:34+00:00
My favorites this year, be genre:

Sci-fi: Exiles by Mason Coile.

Fiction (Fantasy): The Bright Sword by Lev Grossman.

Fiction (post-apocalyptic / zombie): One Yellow Eye by Leigh Radford.

Non fiction: The Wager by David Grann.
by qingcharles | 2025-12-27 03:13:40+00:00
I use Umami. It definitely appears to have a lot less features than Matomo. I wouldn't say that necessarily means it uses less resources, though? An analytics server is probably spending 99.999% of its time just receiving a tiny HTTP event rather than drawing UI unless you are sat refreshing the stats all day.

Umami got rooted twice this month because of holes in React, partly because of the enormous complexity of that framework.

Just my two cents.
by resonious | 2025-12-27 03:14:55+00:00
I work in Ruby a lot on large/old projects. I think the main reasons are: people nowadays are very dependent on editor intellisense, and "undefined method ... for nil" errors in production are very frustrating.

That said, I am actually in the "don't want types in Ruby" camp. Intellisense isn't as needed if you're good at using irb (the repl). And the dynamism makes it super easy to write unit tests, which can give you back a lot of the guarantees you'd otherwise get from static types. Most importantly, a lot of the fun in Ruby comes from the ability to make nice DSLs and aggressively metaprogram boilerplate away.
by safety1st | 2025-12-27 03:15:01+00:00
I mean, this very discussion is a case study in the supremacy of text. I skimmed the OP's blog post in thirty seconds and absorbed his key ideas. Your link is to a 54 minute video on an interesting topic which I unfortunately don't have time to watch. While I have no doubt that there are interesting ideas in it, video's inferior to text for communicating ideas efficiently, so most people reading this thread will never learn those ideas.

Text is certainly not the best at all things and I especially get the idea that in pedagogy you might want other things in a feedback loop. The strength of text however is its versatility, especially in an age where text transformers are going through a renaissance. I think 90%+ of the time you want to default to text, use text as your source of truth, and then other mediums can be brought into play (perhaps as things you transform your text into) as the circumstances warrant.
by ehnto | 2025-12-27 03:15:35+00:00
I don't think I would be comfortable serving any DB over the internet these days, exploit scanners are so agressand ubiquitous that a breach would feel inevitable.

Not that it is fool proof, but if I am setting up the infrastructure I can probably control where the DB is deployed, so I would colocate it with the application servers on a local network or virtual local network, that is all I would be comfortable with.
by makeitdouble | 2025-12-27 03:16:51+00:00
Yes. I think jobs where any laptop would do will get better ROI from the most run of the mill machine, whichever it is.

Back in the day it was the Dell XPS and Thinkpad lines, right now I see the MBA and Surface added to those. Economies of scale just work that way, and these machine will be aimed at perfectly doing the 20% that cover 80% of the requirements, Pareto style.

Does Framework get mainstream media treatment ? I thought they weren't even sold in stores, and only got press from TheVerge and other tech focused media. So the target market ends up being people dedicated enough to pay thousands sight unseen from a smallish company that will deliver in batches months after the order.
by vkou | 2025-12-27 03:17:37+00:00
Have the TSA disappeared a lot of people? Flown them out to foreign torture prisons, and thrown away the key? Ignored judicial orders to return them?

(I'm also not entirely sure why they are touching your junk, I've not had that happen in any of my security checkpoint experiences.)

Look, while I'm as happy as the next person to bitch about how awful the TSA is, if they are your best example of the US being a police state... It's not particularly persuasive. Most police states don't limit their capacity for repression to throwing you out of an airport without a refund for your ticket.
by t-writescode | 2025-12-27 03:17:49+00:00
That article was way better prepared than I was prepared for. I like how it translates its code into Ruby's official types-in-headers format. Very nice.

I think this is a nice way to include types into a project if you like it. I know when you're working on large Ruby projects - 10s of thousands of lines across hundreds of files - types become really, really helpful to figure out what on earth is happening where. In the past I've used DryRb and was pretty happy with it; but an even deeper connection, like this, looks wonderful.

I'd really enjoy it, I think :)
by ehnto | 2025-12-27 03:19:34+00:00
I love that the world is loving kei trucks and kei cars right now.

I see them pretty often in Australia which also has an anti yank-tank movement (tongue in cheek name for a big american "truck")

That said our most popular cars are still all three tonne utes or SUVs so it's a small movement.

You are right to note the economic situation being a big part of vehicle decisions. Fuel prices has been a driving force, and image plays a big part too.
by mcswell | 2025-12-27 03:19:55+00:00
gnabgib points out that this same article has been posted for comment here three other times since it was written. That said, afaict no one has commented any of these times on what I'm about to say, so hopefully this will be new.

I'm a linguist, and I've worked in endangered languages and in minority languages (many of which will some day become endangered, in the sense of not having native speakers). The advantage of plain text (Unicode) formats for documenting such languages (as opposed to binary formats like Word used to be, or databases, or even PDFs) is that text formats are the only thing that will stanmd the test of time. The article by Steven Bird and Gary Simons "Seven Dimensions of Portability for Language Documentation and Description" was the seminal paper on this topic, published in 2002. I've given later conference talks on the topic, pointing out that we can still read grammars of Greek and Latin (and Sanskrit) written thousands of years ago. And while the group I led published our grammars in paper form via PDF, we wrote and archived them as XML documents, which (along with JSON) are probably as reproducible a structured format as you can get. I'm hoping that 2000 years from now, someone will find these documents both readable and valuable.

There is of course no replacement for some binary format when it comes to audio.

(By "binary" format I mean file formats that are not sequential and readily interpretable, whereas text files are interpretable once you know the encoding.)
by t-writescode | 2025-12-27 03:21:30+00:00
Ruby provides a lot of really nice libraries; and Ruby on Rails - *especially its ActiveAdmin infrastructure* is best-in-class for "build something stupid-fast". Legitimately, I'll spend a day or so per-page on making administrative sites that do a 1/10th of what ActiveAdmin does in like 2 lines. And AA does it much prettier, too.

I write in Kotlin for myself, and Ktor and React or Ktor and Htmx + SolidJS, for web stuff; but those are decisions I made for myself, (edit: and) I know what it's costing me to not have the raw convenience that is Ruby's Active Admin infrastructure, among other things, I'm sure.
by ajross | 2025-12-27 03:22:37+00:00
They didn't, though? The multiracial founding fathers thing was a side effect of what one assumes is pretty normal prompt engineering. Marketing departments everywhere have rules and standards designed to prevent racial discrimination, and this looks like "make sure we have a reasonable mix of ethnicities in our artwork" in practice. That's surely "bias", like I said, but it's not deliberate political ideology. No one said[1] "we need to retcon the racial makeup of 18th century America", it was just a mistake.

[1] Or if they did, it's surely not attested. I invite links if you have them.