"Kernel anti-cheat" and "spyware" is exactly what i mean. Thry do have millions of players. But that's like 20-30 games out of 1000s that run just fine.
HN user
vkazanov
"Far ahead"? DRM'ed spyware, yes.
Everything else? Not so much, thanks to the monumental effort of Wine and Proton projects.
Well, operational dbs in practical circumstances are used for queries that take predictable time to complete.
"Get a row" "Get ten rows"
Etc, etc. All constant, all predictable, all not requiring unpredictable time to run. Also caches nicely.
What is "simply wrong" here?
Yes!
Distributed systems introduce severe restrictions on what can be reasonably done at scale. Having a single connection string is one thing, being able to do a massive JOIN is another (and should only be ever done in analytical databases).
The question is not "when sharding becomes counter-productive" but "when it starts making sense".
With sharding something somewhere has to know how to route queries to subsets of data. So it is a complexity price paid for being able to scale. If one can avoid paying this cost then he should.
And USUALLY cross-shard queries are not just expensive but simply impossible in operational clusters. Like, if you do COUNT on a table, you only count within a single db shard table.
Of course 768 servers NEVER behave as 1. This is physically impossible.
Global services using relational dbs typically severely restrict queries that run against the cluster. So no joins, no intervals, no grouping, etc.
Transactional queries are usually limited to something like "get a single record, preferably from cache". For many typical web services this can go VERY FAR. Only a handful of global services needs more than a few dozen database servers and a caching cluster. In fact, i have seen major businesses running off a pair of very big postgres instances.
Analytical stuff is extracted into dedicated storages optimized for throughput, like Snowflake or Redshift or BigQuery.
True! the borrow checker is a special thing. This is what i mean when i say "explicit data flow analysis".
In a way this is compiler internals exposed to a programmer.
I think the REALLY cool thing about apple's shared memory implementation is the ultra-wide memory bus.
Otherwise, AMD is quite close to what Apple has, and Strix Halo is honestly incredible.
Not sure what RDMA brings to the table.
It is interesting how apple claimed that "unified memory" is something special, and ppl believed them.
Intel and AMD had been doing this for years already, and had linux support for it from day 1.
Yes.
The biggest innovation of Rust is bringing some of the good ideas from functional programming to low level programming. I'd also say that partially exposing data flow analysis to a proframmer is new.
Rust package management is quite good, and also not by any means an invention.
I am still not a fan of all the ugly macro programming systems and verbose syntax in the language.
Heh, i want to both disagree and agree.
I started with pascal and then C++. And then discovered Emacs and Lisp. Boy, that was a revelation!
Never ever in my life shipped a line of lisp code to production. My real life code was always Python or C++ or Java or C. All of my lisp was toys and emacs tweaks (50k loc in my config!).
But most of production code is gone from my life. I am a mid-level engineering manager now. I mostly write texts, or messages, or emails, or slides... and still use emacs and lisps for fun and profit and competitive programming.
Not a single production-grade lisp LOC in 20+ years. But, OTOH, i contributed to emacs, tinkered with compilers and interpreters and prog. lang. internals - all because Lisps made it interesting for me.
And, in a way, this brought me closer than ever to the job of my dreams: i work for a major player in static analysis space.
So yes, you are right and wrong at the same time.
I am not a huge Rust fan but the language did bring a few practical and useful innovations, while also keeping a focus on practice.
And no, C++ just doesn't make the same things easy or clean.
And no, "discipline and appropriate rules" were never enough.
As a lisper, i like PLAI and all the other books from the same school: Lisp in small pieces and many others.
But they also felt kind of detached from realities of industrial languages and compilers.
These days Crafting Interpreters is probably the best suggestion.
Dragon book is a weird one. While a classic, it only decently covers basics of the theory of computation, while only doing a brief run through the rest of compilers.
None of modern grad-level compiler topics are decently covered. The dragon is also not a very practical book.
Tiger book is a much better introductory read, balancing between practical and theoretical aspects.
Most truly advanced compiler topics are not really covered by any single book.
This looks like an undergrad-level walkthrough through key topics of how a language works. Say, python or ruby, or simpler pascal compilers.
Both compilers and language design are as old as this industry, and have too much knowledge for a single course.
This one is ok, better than most similar courses based on, say, the dragon book.
FSF is working on such a policy. Many other projects are announcing/discussing these.
Legal problems with LLM-written code are well-known. And copyright law is the cornerstone of open source as an idea in general.
Besides legal issues, major oss projects do not necessarily accept contributions to core subsystems by default. Maintainers can and often will decline patches.
I've lost count of my patches that were declined, or unreviewed, or unnoticed. And that's before the LLM explosion, when patches were small and expensive to write
Your frustration is understandable but could have been avoided.
It is not "after the fact".
This is a big discussion in open source over all, and checking contribution policies "before the fact" would prevent this waste of time immediately.
Hell, asking your favourite llm about this would clarify the situation in a minute.
One more factor: Similar to how this works in semiconductors, some things are just too expensive to build without having an economy of scale.
Yes! But the point here is that producing apple products in the US would probably turn that 1000 dollar toy into 3000 dollar toy, which would in turn result in the sales going down as well.
Global economy means global price competition.
Another interesting effect is that industrial countries typically have MUCH lower average salaries.
I saw it in literature on cpu pipelines in quotes, never without.
I grew up in the east of lithuania, mostly hearing polish and russian in my early years, and then also lithuanian to a smaller degree.
I eventually managed to separate the languages proper but I clearly see how the languages are are not a discrete classification.
Like, lithuanian polish and lithuanian russian are similar, but polish polish is further away phonetically.
Lithuanian has weird phonetics but the underlying grammar is very close to slavic languages.
English is much further away on the spectrum but why are sentence intonations (irony , question, etc) are still strangely compatible with languages from other branches of the language tree..?
Conclusion: strict language separation is a political construct not a natural thing.
Memory semis are a classical example of a cyclical industry: simulaneous capacity investments -> overproduction -> price crash -> ...
This cycle is the first one than truly breaks the trend. It seems that the industry NEVER needed thus nuch memory for this long.
Also, given the history, producers are afraid to overivest, and newer players from china are lagging behind for now.
Oh, this weird little game!
In my little hometown back in Lithuania we played the game as teens so much that everybody knew the optimal strategy, and it was more about either sheer luck, or who misremembers other people hands.
A bit like checkers after a certain level.
Well it is kind of an integral part of the classic european literature canon. Certain novel genre's were invented by Russian writers, say, Tolstoy's epic novels.
So the question really is how does one find out about classic writing overall? Outside of school?
Quake 1 was an unbelievable tech breakthrough: full 3d, quakec vm, overall engine design held up really well. It was not a perfect game but it was ok.
I still hack on the engine and its derivations from time to time.
Quake 2 was a development of that, will a deep focus on multiplayer. And it won at that. As a singlr player game it was boring but LAN play was just amazing.
So quake 3 did rethink the engine but went all in on multiplayer.
As funny as it may sound but in the end, it is quake 1 that just keeps going thanks to its easy moddabilty.
How did you approach emacs onboarding? In my case it wad sheer enthusiasm of 20 year old who want to do cool things, no matter the amount of effort.
So if it takes learning a language, language it was.
But i gave up on teaching Emacs. My current stance is: if you want emacs then you know how to do it.
This sounds like a bug! I mean, this makes libgccjit a hard dependency for pgtk which just doesnt make sense
Well there is advanced and there is advanced.
This course is just a second course on compilers for people who had an introduction. And a great one at that.
A good modern, practical and decently optimizing compiler can do just fine without all the things you've mentioned, including vectorization.
Besides, most programming language implementations never go beyond the basic SSA toolkit.
I did.
After learning the key bindings, I actually found a library book on a pre-CLisp dialect of lisp by some finnish authors and wrote a tool i later used to write my thesis in electrical engineering.
The tool was parsing my matlab files and generated latex, which i then made into the final pdf, complete with formulaes and calculations.
So instead of writing a decent thesis, i learned about makefiles, latex, emacs lisp and the fact that parsers are very interesting.
Also, Lisp felt sooooooo out of this world after pascal, C, Cpp.
Surely, i did not work a single day as an electric engineer.
PS I keep looking for this book to this very day
What is advanced then? Good coverage of dce, data flow, ssa, intruction selection and reg alloc is actually like 98% of the backend.
Native compilation is optional as you surely know.
It also has nothing to do with Wayland.
And what's wrong with adding lexical scope!?
I do have some concerns about certain features but the ones listed do work, and work great.