skysight-inc/HackerNews huggingface dataset:
Unlike ActiveX, Silverlight, or Flash, it's an open standard developed by a whole bunch of industry players, and it has multiple different implementations (where Java sits on that spectrum is perhaps a bit fuzzier). That alone puts it heads and shoulders above any of the alternatives.

Unlike the JVM, WASM offers linear memory, and no GC by default, which makes it a much better compilation target for a broader range of languages (most common being C and C++ through Emscripten, and Rust).

> Maybe I’m just old, but I thought we’d learnt our lesson on running untrusted third party compiled code in a web browser.

WASM is bytecode, and I think most implementations share a lot of their runtime with the host JavaScript engine.

> In all of these cases it’s pitched as improving the customer experience but also conveniently pushes the computational cost from server to client.

The whole industry has swung from fat clients to thin clients and back since time immemorial. The pendulum will keep swinging after this too.
I'm Not a Professional dev, but a sysadmin WHO Likes to code. I learned a bunch of languages over the year. C#, Java, Python, JS/TS, PowerShell, Rust. Not professionally, but enough to finish some Personal projects.

Elixir was so vastly different, had such a small community that I lost interest very, very fast. It just felt like a waste of time. Any of the other languages I learned I could and did apply at my job. Even just knowing the languages helps a great deal when evaluating the next tech stack to implement. And Elixir just doesn't. It's a niche language for niche applications and doesn't personally help me in the least.

I also just did not like the DX. I did fail to understand how to use the VS Code debugger to step through functions. Printing to console to inspect variables felt like being in the stone age again, no thank you.

I still believe Phoenix LiveView is a really, really good tech and currently wish that Svelte could implement something like that.

And that's my personal reason for not looking into it.
This doesn't make sense, WASM is supposed to run on the client, which is generally a different machine than the webserver, while a context switch is an event that happens within a single machine.
Who does the torch pass to now that he’s gone?
This is the ‘fuck anyone trying to pass anything to their children’ element which most parents will (rightly) got WTF at.
In the Google office we had (perhaps they still have) a deliberately crappy wifi you can connect to with your device, to experience extra latency and latency spikes and random low bandwidth. All in the same of this kind of testing.
Living Planet Report 2024
Tcl totally has lexical scoping, through proc and apply that create a new frame and thus new local bindings. Closures with explicit bindings (as opposed to tree-walking to find free variables to match with [info locals] which is something Tcl really can't do due to its "list == atom" thing) are easy to do through apply and a way to store the environment.

The last implementation in https://wiki.tcl-lang.org/page/Closures is pretty nice.
I agree, Open Weights are Open "Binary", not Open Source.

It's like taking an executable (.so module, firmware blob) and releasing it under permissive license, so anyone could disassemble, modify and hack it. And then disclosing what programming languages were used and pointing at a few libraries. And then saying that no, actual source code is not going to be released.
I will likely spend time implementing my solver in several different styles because this is a project I'm tackling largely to make some points about how I think WASM should be used. I'm far from final benchmarks on this but my suspicion is that the gap will be large.

Yes javascript is very well optimized, but as someone who's spent a lot of time writing javascript where speed matters, it's not easy, and it's not predictable. You're at the mercy of arcane optimizations in V8 which might not work for your specific situation because you did something weird, and if you're taking a lot of care not to do anything weird, and manually managing your memory with typed arrays, well, then you might as well write C and compile to WASM.
While the internet is flooded with thousands of posts about his demise, this statement you made is what I 100% agree.
Disagree. This position completely disregards our experience and expertise. We need to partner with our Product counterparts to figure out what our customers’ needs are. We must also be clear what our operating constraints are so PMs can make an informed decision on what to prioritise based on a reasonable idea of the costs/benefits.

Doing anything less is basically shitting on Product and, if you have that attitude, why do you think you deserve to be treated as an equal in the conversation?
This is an issue that is ignored by just about everyone in practice. The reality is that most developers have subconsciously internalized the compiler behavior and assume that will always hold. And they are mostly right, I’ve only seen a few cases where this has caused a bug in real systems over my entire career. I try, to the extent possible, to always satisfy the requirements of strict aliasing when writing code. It is difficult to determine if I’ve been successful in this endeavor.

Here is why I don’t blame the developers: writing fast, efficient systems code that satisfies the requirements of strict aliasing as defined by C/C++ is surprisingly difficult. It has taken me years to figure out the technically correct incantations for every weird edge case such that they always satisfy the requirements of strict aliasing. The code gymnastics in some cases are entirely unreasonable. In fairness, recent versions of C++ have been adding ways to express each of these cases directly, eliminating the need to use obtuse incantations. But we still have huge old code bases that assume compiler behavior, as was the practice for decades.

I am not here to attribute blame, I think it the causes are pretty diffuse honestly. This is just a part of the systems world we failed to do well, and it impacts the code we write every day. I see strict aliasing violations in almost every code base I look at.
I'm sorry that your governments rules of engagement are what you'd consider terrorism.

Maybe you should do something about it?
I did the weird claw thing, worked for me
Interesting. On your website, you mention pre-trained models. What exactly does that mean?
What the article actually says:

> If we go back to thinking about our Application Server models; this allows us to have a fresh process but without paying the startup costs of a new process. Essentially giving us CGI without the downsides of CGI. Or in more recent terms, serverless without cold starts. This is how Wasm is the new CGI.

^ It's not a frivolous claim.

> Wasm improves performance, makes process level security much easier, and lowers the cost of building and executing serverless functions. It can run almost any language and with module linking and interface types it lowers the latency between functions incredibly.

^ Not unreasonable.

I don't agree that its necessarily totally 'game changing', but if you read this article and you get to the end and you dont agree with:

> When you change the constraints in a system you enable things that were impossible before.

Then I'm left scratching my head what it was you actually read, or what the heck you're talking about.

> Serverless is mostly there to make money for Amazon and Azures of the world and will eventually go the way of the CGI.

There's... just no possible future, in which AWS and Azure just go away and stop selling something which is making them money, when a new technology comes along and makes it easier, safer and cheaper to it.

> I kind of like this variety of headline for it's ability to stimulate discussion but it's also nonsense. CGI can be any type of code responding to an individual web request, represented as a set of parameters. It has basically nothing to do with wasm

*shakes head sadly...*

...well, time will tell, but for alllll the naysayers, WASM is here to stay and more and more people are using it for more and more things.

Good? Bad? Dunno. ...but it certainly isn't some pointless niche tech that no one cares about is about to disappear.

CGI enabled a lot of things. WASM does too. The comparison isn't totally outrageous. It'll be fun to see where it ends up. :)
I also support the development of client side applications, but I don't think they should necessarily be run in a browser or sandbox or be bought through an app store, and it's definitely not a new idea.
With CGI the developer of the script could pretend that the-only-thing-which-existed was this request and do all kinds of things that would bring down a persistent process (leak memory, mutate globals, etc.) The problem was that spinning up a process per-request was expensive and slow. Now, with WASM's memory model it becomes possible to have a process that both does all the slow work initialization work once and has the ease-of-reasoning properties of CGI's "a single process for a single request" serving model.
I knew a person who was in abusive relationships where the abuser would keep making ridiculous claims that the person was cheating on them, and made them give up having their own phone as "proof" that they wouldn't cheat.

Of course, the abuser was cheating the whole time.
Right, you get ads, or you pay. Businesses aren't charities.
> Maybe for pickups above some weight drivers should have to have a commercial driver's license, the one you need to drive a real truck.

I would love that. At the very least, anyone with an at-fault accident should be barred from driving the heaviest vehicles.
A limited job market, considerably smaller ecosystem (compared to java/python), and lack of support from major tech corporations (unlike Go or Rust) makes it challenging to adopt Elixir.

At my company , we inherited a legacy Elixir service, but we're actively moving away from it. We found it more practical to rewrite the service in Go (entire team is proficient in + LLMs make it easier to migrate) rather than invest time and resources into learning Elixir and its associated ecosystem. The return on investment for mastering Elixir didn't justify the effort required, given our specific circumstances and needs.

I do like to tinker with Elixir for hobby projects. But supporting a whole new language in a company is an uphill battle, that's incredibly hard to justify.
I do basically everything with my left — but I do use the mouse with my right.
Not sure what that means…
> I don't believe it was operator error

Honestly, it probably was. Usually is.
All of those bytecode formats were designed to support higher abstractions. WASM on the other hand was born from asm.js, which tried to remove abstraction to make code run faster. Ultimately the goal for WASM was to run code faster, hopefully near native speed, which is not a priority for all the bytecodes you mentioned. If that wasn't needed then Javascript would have been enough.
A little ignorant here, could you explain a little more on this part.

> the highlight of the day was going to a cafe at 10 pm in middle of work

Is it 'normal' to have to work late to 10pm, or does it mean second job, etc.? Or was that just a typo and you meant 10am?

My gut instinct is 10am, but wanted to ask directly out of curiosity if I was wrong and get a better cultural understanding.
Is this a GenAI comment responding to a GenAI comment?
I will try but I suspect the final score will be

1. WASM
2. JS handwritten for speed
3. C compiled to JS

and the gaps will be greater than 2x
For those who don’t know,
Om shanti means may he rest in peace.

Its usually chanted during cremation as Oooooommmmm Shantiii.

Om (the same sound as you chant during yoga sometimes) in this context is like a moment of silence

Shanti means peace, in this context, eternal peace.
> Also the blood cancer has already killed one of the patients

This isn’t a fair interpretation of the death - the treatment of the drug-linked cancer bears a risk of multiple complications. One of these complications led to a patient’s death.
From reading the title, I assumed they wanted to make me handle all Errortypes explicitly. However, they just want to replace this:

try:
risky_operation()
except:
handle_any_error()

with this:

try:
risky_operation()
except Exception as e:
handle_expected_error(e)

and this will also be legal:

try:
risky_operation()
except Exception as e:
pass

... seems fine to me, but its off the table anyway.
You get lucky, or you just don't.

Unfortunately, this complaint is echoed across many industries.
I’m somewhat doubting that actually is his lawyer, though no one appears to be denying that it is.

It just feels so very odd. Why would Matt’s lawyer care what people say here? He doesn’t have to convince of us anything. The PR folks would like to convince us of stuff and I wouldn’t be surprised if they showed up, but why legal?

And what kind of lawyer says that about a client in an ongoing case on a public forum using an account in their own name?! It’s a level of unprofessionalism that I struggle to believe a reputable lawyer would engage in. If Matt is unreasonable to the point of needing to make a public comment, Neil should have just forced him to find new council and quit.

I’ll likely never have need for this specific type of council, but if I do there’s a brand new list of people I won’t hire with only a single name on it.
Another formulation of this which I like is that the Mahalanoubis distance measures “how many standard deviations apart” two state vectors are.

Note that since the covariance matrix has variance on the diagonal, it corrects not only for correlations but also normalizes each dimension using their standard deviation.
In a typical LRU cache every read is a write in order to maintain access order. If this is a concurrent cache then those mutations would cause contention, as the skewed access distribution leads to serializing threads on atomic operations trying to maintain this ordering. The way concurrent caches work is by avoiding this work because popular items will be reordered more often, e.g. sample the requests into lossy ring buffers to replay those reorderings under a try-lock. This is what Java's Caffeine cache does for 940M reads/s using 16 thread (vs 2.3B/s for an unbounded map). At that point other system overhead, like network I/O, will dominate the profile so trying to rearrange the hash table to dynamically optimize the data layout for hot items seems unnecessary. As you suggest, one would probably be better served by using a SwissTable style approach to optimize the hash table data layout and instruction mix rather than muck with recency-aware structural adjustments.

The fastest retrieval will be a cache hit, so really once the data structures are not the bottleneck then the focus should switch to the hit rates. That's where the Count-Min sketch, hill climbing, etc. come into play in the Java case. There's also memoization to avoid cache stampedes, efficient expiration (e.g. timing wheels), async reloads, and so on that can become important. Or if a dedicated cache server like memcached, one has to worry about fragmentation, minimizing wasted space (to maximizing usable capacity), efficient I/O, etc. because every cache server can saturating the network these days so the goals shifts towards reducing the operational cost with stable tail latencies. What "good performance" means is actually on a spectrum because one should optimize for overall system performance rather than any individual, narrow metric.
An "SEO Consultant"? You're using the word "contributor" very loosely.
Yes, I started about 4 years ago (in my mid 40s) just putting watercolour onto paper - like stick trees, really the absolute basics. I moved on to reproducing patterns in pencil (Islamic tiling designs, celtic knots, etc) as something to put paint into.

After a few years of reproducing all sorts of patterns - mainly Islamic patterns using compass and straightedge, but honestly also tracing paper - I now can convert an image I like of a tile or similar into a neat, symmetric painted-on-paper example in a weekend.

Along the way I've learned how to use various types of paint (watercolour, gouache, acrylic) and mediums (gum arabic, gloss) and varnishes. Also brushes - current favourite being an angled shader and types of paper.

Most importantly, learning about how to use colours - mixing them, and choosing a palette that looks good. Also what I consider the 'finish' of a work: inking outlines, bordering, just making it look good.

I initially put stuff on Etsy, just to put it out in the world. However - not particularly surprisingly, that's not something want to buy - so I now use cara.app as a way to show it to other people, which is what I actually want :) I worry though that cara is unsustainable.

It's been fun, just trying out what seems interesting and striving to get output that you can be proud of and is visually pleasing in whatever way.
But you can look at it without barfing, at least. And have fun doing wacky metaprogramming instead of wacky code golfing aka obfuscation.
This is a huge blow. For those not familiar with the history of Tata group of companies and their influence over India, they will not understand the significance of this death.
I literally quoted it:

> I think that the excellent tooling and dev team for Rust, subsidized by Big Tech, pulls the wool over people’s eyes and convinces them that this is a good language that is simple and worth investing in. There’s danger in that type of thinking.

Patronising and wrong.
> I’m still looking back at Elixir with nostalgia, wondering if I’m going to have a chance to go back to it and really make it an extension of my arms/brain like Ruby had become.

You should give it another try. :)

You jumped in quite early, when we were still collectively figuring out what it meant to build Phoenix applications, and many things were in flush back then. You probably went through Ecto 1 -> 2 -> 3 and Phoenix was migrating to contexts.

But I also have to say there was a lot of FOMO in relation to OTP back then: people felt they had to build these amazing supervision designs, otherwise they were not using the language correctly. But the truth is that they are building blocks for frameworks and certain libraries, in the same way threads/mutexes are for other languages. Of course, GenServers are higher-level, more expressive, and bring more properties, but the overall idea is that they are about infrastructure, and not design. Phoenix, Ecto, Broadway, etc should be spawning 99% of the processes that you need for you.
I disagree with the premise that humanity is important, that's a matter of opinion espoused by humanity itself. Of course we're going to find ourselves important. You're free to ascribe value to that opinion, but I'd bet if squids, penguins or lions could talk they'd have the same opinion about themselves. We are not the apex of evolution (we're killing ourselves, right?) or the end goal. We've just found ourselves on Earth like we suddenly woke up here and realised survival requires balance on a knife's edge. We very much are expendable as evidenced by the almost inevitable fact that we are expending ourselves.

It's ironic, humanity needed the energy and resources to progress to the point we realise we're killing ourselves to do it.

That said, there's a ton of things we could do collectively to fix these problems but individual action requires realising there are problems (or believing they exist if you will) and then taking enormous personal risk to fix them. Take your example: Do you propose to strike? To stop generating an income? I just don't see that happening since survival at an individual level on a worldwide scale will likely take precedence until it's too late.
Doctor, it hurts when I do that.
Painting wargaming and TTRPG minis. I guess I've been at it about a decade now. Mine aren't quite as good as my more experienced and obsessive friends', but I've got my own style, they look good enough, and most importantly, I enjoy it.

Lots of people here recommending regular practice, but I'm a binger. Nothing puts me off something than it feeling like work.

I'll obsessively work on a project for a week or so, get somewhere nice with it, then forget about the whole thing for months.

The satisfaction comes from seeing the most recent thing being better than the last. Gives tricky plateaus, which I've worked around by changing style and medium.
From what I can tell, it doesn't:

$ brew deps --include-build eza
autoconf
automake
ca-certificates
cabal-install
certifi
cmake
ghc
ghc@9.8
libgit2
libssh2
llvm@18
lz4
m4
mpdecimal
ninja
openssl@3
pandoc
pkg-config
python@3.11
python@3.12
readline
rust
sphinx-doc
sqlite
xz
zstd
Night shift/2nd shift is a thing.
> Create a new email address for every service we sign up for?

Yes! Just get a domain and have every email it go to you. Mine is something like “@super-secure-no-viruses.email”
Same here. Totally agree with this!
People just have AI write a cover letter now.

High effort may just indicate someone is desperate for work, which is perhaps not the best sign.
If you’re leading an engineering team in a product company you should absolutely be asking why and trying to find the actual problem that’s often buried amongst solutions that are brought to you from the customer or product or sales. This is how you deliver faster, cheaper and simpler solutions.
The explanation doesn't make sense without addressing the elephant in the room - why not teach users to use the universal "tab close" action via a common shortcut? That one is immediate unlike loading another page
Yep. That's what I'm saying.
I'm the same, just mirrored.. I'm technically right-handed, but my left hand works as well as the right one for stuff that I haven't exclusively trained my right hand to do (or the left one, for that matter, as far as the right hand is concerned). So I can't write with my left hand (except that I can mirror-write, especially if I write with my right hand at the same time. Apparently Leonardo Da Vinci used his left hand when he mirror-wrote, and his right hand when he didn't. Read that somewhere).
It's not appropriate to say that "having trouble with borrow checker means code is wrong". Sometimes you just want to add a new feature and the borrow check force you to do a big refactor.

See also: https://loglog.games/blog/leaving-rust-gamedev/
Steve Jobs famously called Blu-ray's licensing (presumably mandating annoying DRM requirements at the OS, driver, and device level) a "bag of hurt" - but it probably didn't hurt that Apple already had a competing "iTunes" movie download store, whose annoying DRM requirements Apple happily implemented at the OS, driver, and device level.

In any case, rip/mix/burn never really made it to iDVD or iMovie (or QuickTime Player), and Apple never shipped Blu-ray movie player software for Macs.
You should learn Arabic, then you can write in the other direction and watch the right-handed normies struggle with this :)
Programming should be simple – Demo 2 Promo [video]
One of the most memorable books I’ve read is by Paul Ekman, who explores emotions and nonverbal communication.
As a (mostly) rightie, I use the mouse with my right, except if I feel shoulder pain. Then I take a week on the left hand. And my shoulder avoids developing a chronic issue.
> But imagine the whole state losing its actual representation because of power outages and stuff.

What you are describing would be a problem regardless of the presence of the electoral college.