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

Reads as RIP Metaverse to me.

Any time a CEO publishes such empty, wordy essays, it's probably earnings reporting time. I can't shake the feeling it's a public subreply at one of or a cluster of doubting investors, who started to doubt the CEOs vision for the company, or find the lack of one on a certain topic concerning.


FWIW, today is Meta’s earnings report

That’s exactly why he published this. To justify his insane investment spend. I am not sure if investors will continue to give him a blank check. He’s not spending his money. He’s spending shareholder money to pursue personal projects and endeavors.

> I am not sure if investors will continue to give him a blank check.

What are they going to do, exactly? They explicitly invested in the company knowing that Zuckerberg would retain full control.

If they can show gross negligence there may be a legal avenue, but it would be pretty hard to justify chasing potentially profitable business ventures, even if they end up failing, as being negligence. Controversial business decisions are not negligence in the eye of the law.

Sure, they can sell their interest in the company — if someone else wants to buy it — but that just moves who the investor is around. That doesn't really change anything.


Well, very true. They let him spend $100B plus on a mediocre VR devices that’s not improved all that much under Zuck. I keep thinking, what if they took that $100B and invested in Nvidia.

Hindsight is 20/20, I suppose. Not much they can do now, though, except sell their interest to someone else. But why would someone else want to buy their interest when that someone else could use the same money to buy a stake in Nvidia instead?

Looks like after-hours investors like what they see. Stock at all time high.

Hooks turn out to be a leaky and contagious abstraction.


Thanks for sharing. I always viewed DP as finding partials to cache. Something not done a lot in day to day algos. Did not appreciate the name as being related to execution order optimization.


The way looking up words in your vocabulary works kind of like a vector db search. Then sometimes I think of something and the query result returns only the thing in language 3.


Yes this. I worked in restaurants a lot and embarrassed myself back home when I could only remember the term pichet for jug, making me not look like a very talented linguist at all. Now I've been away from the learned language countries it's happening a bit in reverse.


If you're into handheld console emulation then definitely check out https://gbadev.org as well. I remember their forums were epically filled with reverse engineering knowledge.


Got the family a couple of Anbernics and we wanted to see if we could make our own Game Boy Advance games. I started out checking out gbadev.org but found everything there a little dated and getting a devkit set up on macOS looked messy.

Ended up using GB Studio instead. I don’t love low-code or no-code envs, but the community there is very active on Discord and Youtube.


Sadly, the gbadev forums have been broken and offline for ages.


Thanks Sebastiaan for exploring this, great demonstration and insights. Can’t wait to see what the actual redesign is going to look like.


TTFB optimization to the extreme? Cheaper to transfer than downloading an entire font first.


Feeling valued is the key here. If you need external validation then by all means, work smarter towards it. Become a manager. Become a company influencer. Build a brand, and sell it hard.

At some point later in life, I hope you’ll figure out your own sense of value, true to your being, and decoupled from what others may grant. Your raison d'être.


Can someone explain why they didn’t go with (anonymous) class destructors? Or something other than a Symbol as special object key. Especially when there are two Symbols (different one for asynchronous) which makes it a leaky abstraction, no?


Destructors require deterministic cleanup, which advanced GCs can't do (and really don't want to either from an efficiency perspective). Languages with advanced GCs have "finalizers" called during collection which are thus extremely unreliable (and full of subtle footguns), and are normally only used as a last resort solution for native resources (FFI wrappers).

Hence many either had or ended up growing means of lexical (scope-based) resource cleanup whether,

- HoF-based (smalltalk, haskell, ruby)

- dedicated scope / value hook (python[1], C#, Java)

- callback registration (go, swift)

[1]: Python originally used destructors thanks to a refcounting GC, but the combination of alternate non-refcounted implementations, refcount cycles, and resources like locks not having guards (and not wanting to add those with no clear utility) led to the introduction of context managers


What does "HoF" stand for?


higher order function, function taking an other function (/ block).

E.g. in Ruby you can lock/unlock a mutex, but the normal way to do it would be to pass a block to `Mutex#synchronize` which is essentially just

  def synchronize
    lock
    begin
      yield
    ensure
      unlock
    end
  end
and called as:

  lock.synchronize {
    # protected code here
  }


Destructors I other languages are typically used for when the object is garbage collected. That has a whole bunch of associated issues, which is why the pattern is often avoided these days.

The dispose methods on the other hand are called when the variable goes out of scope, which is much more predictable. You can rely on for example a file being closed ot a lock released before your method returns.

JavaScript is already explicit about what is synchronous versus asynchronous everywhere else, and this is no exception. Your method needs to wait for disposing to complete, so if disposing is asynchronous, your method must be asynchronous as well. It does get a bit annoying though that you end up with a double await, as in `await using a = await b()` if you're not used to that syntax.

As for using symbols - that's the same as other functionality added over time, such as iterator. It gives a nice way for the support to be added in a backwards-compatible way. And it's mostly only library authors dealing with the symbols - a typical app developer never has to touch it directly.


For garbage collected languages destructors cannot be called synchronously in most cases because the VM must make sure that the object is inaccessible first. So it will not work very deterministically, and also will expose the JS VM internals. For that JS already has WeakRef and FinalizationRegistry.

https://waspdev.com/articles/2025-04-09/features-that-every-... https://waspdev.com/articles/2025-04-09/features-that-every-...

But even Mozilla doesn't recommend to use them because they're quite unpredictable and might work differently in different engines.


Because this approach also works for stuff that is not a class instance.


There is no such thing as an anonymous property in JavaScript. Your question doesn't make sense. What else could this possibly be?


Because javascript is uncivilized.


The so-called Founder mode is basically necessary when a CEO shows signs they're unable to effectively manage their suite of chiefs and directors to steer the company stably into better times. The founder (often CEO themselves) feels immense board pressure and blames reorganizations (they chose for themselves) for this and goes all-in on another reorganization after firing executives and publicly sharing their epic shareholder letter, while quoting Steve Jobs and other greats.

Absolutely not saying MBA CEOs like Tim Cook are superior (in fact I personally believe the opposite), but for a founder to go into "Panic mode" is an act of childish, unstable behavior. When you stop and think about it from 5000 feet, maybe the founder is the one that should be replaced. It wouldn't be so bad in case of AirBnB.


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

Search: