Hacker Newsnew | past | comments | ask | show | jobs | submit | sriku's commentslogin

Some of thr language features like operators can be overloaded using method tables, much like python's double underscore methods. I do think that the inability to do this in JS is what held it back from becoming a data processing powerhouse. But it perhaps can be made to run fast precisely because of the lack of such overrides (otherwise we'll be running python at JS speeds). That said, LuaJIT seems like a good compromise and might be best of both worlds.

Whether or not anything "breakthrough" comes out of his work, I'm very sympathetic to the kinds of explorations he does ... especially since new things go through a messy phase before clarity arises.


> I'm very sympathetic to the kinds of explorations he does

Yes, and I think there is a success criterion that most people are not considering, which is: success as a less complicated explanation for the same phenomenon.

When people ask for new testable predictions as the only way a new theory can be successful, they are revealing that they don't consider parsimonious explanations to be a scientific goal.

Stephen's work with hypergraphs shows a lot of promise as a simple theory that implies other successful theories of physics. It focuses on emergent phenomenon that exhibit "pockets of computational reproducibility". The behavior of those pockets can then be predicted with tools in the physics canon like Riemannian geometry or complex numbers.


> When people ask for new testable predictions as the only way a new theory can be successful, they are revealing that they don't consider parsimonious explanations to be a scientific goal.

It doesn't have to be new testable predictions, but it should at least reproduce some testable predictions of the conventional theories.

As far as I know, these discrete graph models have been shown to reproduce some broad features of QM and GR (mostly the work of Jonathan Gorard rather than Wolfram), but they don't make any actual numerical predictions, which in my view is a basic requirement of a physical theory.

At the moment it seems like some intriguing toy models, similar in many respects to t'Hooft's cellular automaton model of QM, but there's no physical theory here


True, and I always appreciate how he built the wolfram language to allow himself these kinds of explorations, which would be next to impossible without it.


"I consider TypeScript to be the gold standard when it comes to type systems on top of dynamic languages."

Doubly weird, considering that TypeScript work was inspired by typed/racket, and TypeScript doesn't have a sound type system afaik and the OP's first love was Scheme.


"story of your life" isn't quite about sapir-whorf but more about the lagrangian view of the world (as opposed to the Hamiltonian). That is difficult to convey in a movie and so the sapir-whorf part got emphasized there.

Also Exhalation is a beautiful story that captures the fact that all life and intelligence lives in the space between low entropy and high entropy. So it's not different thermodynamics.

But overall I align with the sense of admiration the OP has for Ted Chiang. He explores "what if" scenarios with such mastery I feel like I had a dip in a fresh water pool after a read.

Another of my favs (including the title itself) is "Anxiety is the dizziness of freedom".


Hi, Sriku. Um, is your dissertation available anywhere? I'm an electronic music amateur. Mostly a four-on-the-floor guy but interested in breaking out of that a bit. I'm reasonably mathy.

Folks please be gentle with the downvotes. I tried an email but can't seem to make it work!


If you look at his LinkedIn he lists his thesis title, and googling that will bring you to it, hosted on his site.


Found it, thanks!


This is almost FP vs OOP religious war in disguise. Similar to vim-vs-emacs ... where op comes first in vim but selection comes first in emacs.

If you design something to "read like English", you'll likely get verb-first structure - as embodied in Lisp/Scheme. Other languages like German, Tamil use verbs at the end, which aligns well with OOP-like "noun first" syntax. (It is "water drink" word for word in Tamil but "drink water" in English.) So Forth reads better than Scheme if you tend to verbalize in Tamil. Perhaps why I feel comfy using vim than emacs.

Neither is particularly better or worse than the other and tools can be built appropriately. More so with language models these days.


> If you design something to "read like English", you'll likely get verb-first structure

If its imperative, sure. If its declarative and designed to read like English it will be subject first.


>where op comes first in vim

Doesn't Kakoune reverses that, and it makes so much more sense?

https://kakoune.org/why-kakoune/why-kakoune.html


Is it telling that the name is vi improved (noun verb) rather than improved vi (verb noun)?


> Other languages like German, Tamil use verbs at the end

Doesn't German have the main verb on the second position? (For a simple example, "I drink water" would be "Ich trinke Wasser")


In that form yes, but the active "drink water" which is kind of what we'd code like "drink(water)" is "wasser trinken". ... but yeah human languages aren't straightjacketed easily.


Yeah, wrong one, but there are many languages out there where the verb is always at the end (Latin, Japanese I think).


Yeah I thought the German ambiguity was SVO vs OVS, “Fritz fished fish” vs “Fish, fished Fritz”..


Inviting native German speakers to comment. Of course we anglophone-only HN geniuses can answer cesarb's question brilliantly on our own. But perhaps as a little sidebar we could also get your 'opinion'. Thanks! /s


Ok so I asked "how many bs in bluberry" and it "thought" the following -

-----

  First, the question is: "How many bs in bluberry?" That seems like a typo. I   think it's meant to be "blueberry," but it's spelled "bluberry" with one 'e' missing. Also, "bs" probably refers to the letter 'b'.
  So, rephrasing the question: How many times does the letter 'b' appear in the word "blueberry"?
  But the word given is "bluberry," which might be a misspelling of "blueberry." Let me confirm the correct spelling. The standard spelling is "blueberry," which has two 'e's: b-l-u-e-b-e-r-r-y.
  The question says "bluberry," which is missing the second 'e', so it's spelled b-l-u-b-e-r-r-y. That might be intentional or a mistake. I should answer based on the word as given.
  The question is: "How many bs in bluberry?" So, I need to count the 'b's in "bluberry."
  Let me write it out: B-L-U-B-E-R-R-Y.
  Now, I'll go through each letter:
  Position 1: B (that's one b)
  Position 2: L (not b)
  Position 3: U (not b)
  Position 4: B (that's the second b)
  Position 5: E (not b)
  Position 6: R (not b)
  Position 7: R (not b)
  Position 8: Y (not b)
  So, there are two 'b's in "bluberry."
  But is "bluberry" the correct word? It's probably a misspelling of "blueberry." In "blueberry," it's B-L-U-E-B-E-R-R-Y.
  Position 1: B (one)
  Position 2: L
  Position 3: U
  Position 4: E
  Position 5: B (two)
  Position 6: E
  Position 7: R
  Position 8: R
  Position 9: Y
  "Blueberry" has nine letters, and there are two 'b's: one at the start and one after the 'e'.
  In "bluberry," as given, it's eight letters: B-L-U-B-E-R-R-Y, with two 'b's.
  Perhaps the question is tricking me with the misspelling. But I should answer based on what's written.
  Another thought: "bs" might be plural for 'b', meaning how many 'b's, or it could be something else. But in context, it's likely about the letter.
  Maybe it's a riddle. "Bluberry" sounds like "blueberry," but spelled differently.
  Perhaps "bs" refers to something else, like the fruit or something, but that seems unlikely. The question says "bs," which is probably "b's" meaning the letter b.
  Let me read the question carefully: "How many bs in bluberry?"
  It might be a play on words. "Bluberry" could be intended as "blueberry," and "bs" might be misinterpreted.
  Another idea: in some contexts, "b" could stand for something, but here it's probably straightforward.
  Perhaps it's about the sound. But the question is written, so it's about spelling.
  I think I should just count the 'b's in the given word.
  So, in "bluberry": letters are B, L, U, B, E, R, R, Y. So, B appears twice.
  Therefore, there are two 'b's.
  But to be thorough, let's consider if "bluberry" is a word. It's not standard; it's a misspelling. However, for the purpose of this question, I'll use it as is.
  Perhaps the question has a typo, and it's meant to be "blueberry." But since it's written as "bluberry," I'll go with that.
  Final answer should be 2.
  The question says "bs," which might be lowercase, but in counting, case usually doesn't matter, and here it's all lowercase or mixed? The word is "bluberry," which is lowercase, and "bs" is lowercase, so it's fine.
  In English, when counting letters, we don't distinguish case unless specified.
  So, I think two is correct.
  But let me double-check the spelling. The user wrote "bluberry," which has one 'u' and no 'e' after 'u', but in "blueberry," it's "blue" with 'e'.
  In "bluberry," it's "blu" without 'e', then "berry."
  But in terms of letter count, it's clear.
  Perhaps it's "blueberry" misspelled, and I should correct it, but I think for accuracy, I'll use the given spelling.
  Another thought: the question might be "how many b's in blueberry?" but written with a typo.
  But since it's "bluberry," I'll answer based on that.
  So, response should be: There are two 'b's in "bluberry."
  To make it clear, I can say: The word "bluberry" contains the letter 'b' twice.
  But the question is "how many bs," so I can just say 2.
  Perhaps it's a trick with the word "berry" having one 'b', but "blu" has one, so total two.
  "Blu" has one 'b', "berry" has one 'b', but in "bluberry," it's combined, so still two 'b's.
  Yes.
  I think I'm overthinking it.
  Final answer: 2
-----


It still uses text tokenization, so it can’t even see the word. Not sure what tokenizer GLM uses, but OpenAI’s tokenizer renders “blueberry” as a single token (116500 or thereabouts IIRC).

It’s like asking us what the average wavelength is when looking at a blueberry: the information is actually there somewhere in our processing stack, but inaccessible to reasoning. It can be worked out logically from general knowledge, but probably inaccurately, and the gotcha of “you’re looking right at it and the photons are hitting your vision” is not much of a gotcha when you understand how it works.


Your spelling of "bluberry" almost made the model have an existential crisis. That gave me a good laugh. Out of curiosity, did you also run it using "blueberry" to see the differential?


"I think I'm overthinking it."


A while ago, I implemented a signin approach that looks similar to this "send a link/code" mode but (I believe) can't be exploited this way - https://sriku.org/blog/2017/04/29/forget-password/ - appreciate any thoughts on that.

Btw this predates passkeys which should perhaps be the way to go from now on.


One problem is you are requiring users to trust and click on a link in an email which is historically frowned upon. So you are undercutting phishing education.


The bun and other authors would probably do well to not repurpose already understood terminology. "Macros" are already understood to be code that produces other code. "Comptime" is a nice alternative, but bun's "macros" aren't macros in that sense.

We had sweet-js macros as a library many years ago but it looks like it went nowhere, especially after an incompatible rewrite that (afaik) remains broken for even basic cases. (Caveat: been a while since I looked at it)


In "Interesting bugs / Bug 1",

  I walked through the code again. Inside of the Rust function (*c).bar has a valid address, like 0x60302764, but out the function, the value received from the calling C code was 0x2764.

  ...

  That’s right, the C code was using the implicit declaration which is:
   
  int get_addr();
  
  That explains why the value was incorrect! The C compiler was thinking a 4 byte int was returned not an 8 byte pointer. So the top 4 bytes were being truncated or ignored.
That's weird as an explanation. 0x60302764 is 4 bytes and 0x2764 is 2 bytes. Why would an address get truncated to 2 bytes? Is int 2-bytes according to any intermediate compilation stage? (Been at least 25 years since I saw int be 2 bytes, if ever).


This is cool and I have my own take on it after being nerd sniped by XKCD - https://sriku.org/posts/nerdsniped/ - I link to this article at the end but that post specifically solves the xkcd puzzle.


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: