Eden
github.com
github.com
It's great to see this out in the wild now.
I wish more of those bright engineers would try to solve problems for other users rather than re-re-re-re-re-optimizing the life of their colleagues. But writing code for users involves, among other things, knowing something about users, which is more bogged down and less fun.
also you seem to have fallen for the same fallacy as the people who complain about open source devs not working on what they consider sufficiently important problems. trust me, there are no shortage of engineers willing and eager to work on end user problems, and the dev tools work enables them to deliver solutions to those problems faster, and makes those solutions work more reliably. it's a rising tide that lifts everyone's boats, not a zero sum game.
Out of interest, what is? (In your opinion)
I would rather a good engineer put their skills towards helping others use their skills more effectively than put that same engineer in a place where they don't like the work and produce below par results.
So I'd selfishly adjust it to 'solve other problems for the same users'! Asahi, for example, awesome stuff - I've lost count how many times I've had to explain (to both colleagues and non-engineer family/friends/etc.) 'no no, absolutely agree, love Mac hardware [...]'.
I know all of that is a lot to ask of anyone. But you might find you learn things you have in common with people you don’t expect to. And it might make your job less frictionful too.
I love animals in real life, but that doesn't mean that I love watching videos of animals on a screen, for me it's not the same experience.
The main goal that I see social networks addressing with many people is entertainment, but I feel that it takes away from my social life with people, that's why I have aversion to short videos for example.
Facebook didn't have these short videos forced on me, but just a few months ago it started to show video reels for me, and I couldn't stop myself watching them.
After bringing the settings back to just showing what's happening with my friends, the next time I opened it, it started showing addictive videos to me again.
Youtube disabled showing downvotes, which was the best signal for me to see if it's worth to see a 15 minute video, or if it's just a spam talking about nothing for 15 minutes just to optimize content length for the algorithm. And shorts are not a solution, as they don't have any depth either. Also it started spamming me with new channels that reupload videos of interesting people from years ago just to make me think that it's new content.
The main problem for me working on social networks is that making profit can't be separated from making people addicted to the lowest forms of entertainment (I'm a Xoogler).
Having a different idea of fun than another person is very common. My partner and I, whom I share a lot of personality traits with, have some different definitions of fun. I can spend hours working through math problems and find it fun while plenty of others would find that horribly boring. To _judge_ other people for having a different idea of fun than you is to be condescending; it deifies your idea of entertainment while putting down the others'.
> The main problem for me working on social networks is that making profit can't be separated from making people addicted to the lowest forms of entertainment (I'm a Xoogler).
Is it that hard to accept that other people have different ideas for what being social means? Does everyone have to be like you or you judge them negatively? Your take isn't uncommon on certain parts of the Web (especially the anti-social-media parts) but I've always found it trite and judgemental exactly for the reasons I expressed above. Not everyone has to think and feel the way you do and that's okay. Humanity is large. Some of us like to go to hyper-commercial malls, some like to go on challenging hikes, and others are at the club dancing and imbibing their hearts out. Sometimes people even change what they like to do for fun as they age! That's okay, it's human.
I think this is the wrong question - it isn't about being different, its about not even having a customer to empathize with. I can't empathize with a product, no.
As for users, you can be so unfamiliar with a demographic that you have no conception how to help them. I haven't touched facebook seriously in over 10 years (probably close to 12 now), in the world of manufactured FB problems I wouldn't have the foggiest to start.
Now, ignoring the fact FB is absolutely not in the business of helping their users, the question becomes, can or should I become enough like something I see no value in?
I think the answer is probably "no" - if people are busy walking themselves off of cliffs, I have no moral or ethical obligation to help them walk off cliffs, and I really don't have any obligation to walk myself off of one.
My only real feedback, for whatever it might be worth, is that this comment—discussing how you feel about these social networks—invites a lot more sympathy, at least to me, than judging how others value them differently.
> It's not like I don't understand their problems/goals. Just yesterday the person I was spending time with showed a cat video from Facebook, and as I seemed half interested only, she asked me if I like animals.
> I love animals in real life, but that doesn't mean that I love watching videos of animals on a screen, for me it's not the same experience.
I’m also not very interested in animal videos, and even fairly seldom interested in animal photos on social media. Videos I pretty much only watch if I’m pressured, and I’d say I skip by probably 80% of photos too.
And I’m an enormous hypocrite about this (I don’t really think so, but I would forgive anyone for thinking so). I post photos (and again occasionally video) of my pup almost daily. Partly this is because I am absolutely in love with her and love to share insights into our life, and adorable things she does.
Another part is there’s a small but very interested subset of my friends and family who, I’m certain, gets real joy out of seeing these updates and feels more connected with me through them. They take a different pleasure and emotional experience from not just my posts, but others I see when the algorithm surfaces them. And every one of them, like all of us, needs and deserves more joy in life.
My pup and I also have, I believe, a fairly unusual origin story which I intend to write about more at length, but I’ll share briefly here. I will not be offended at all if you decide to stop reading here (if I have any point in sharing this here, that’s my point).
I have a fairly light touch on social media these days, for a lot of the same misgivings you describe. A few years ago, not so much. I was on Facebook a lot, and Twitter quite a bit more.
I’m pretty much a nobody on Twitter, but I became first friendly and then eventually romantically involved with someone who’s what they call “Twitter famous”. That fact wasn’t a particular attraction for me or a romantic goal, and still not of much interest to me other than it makes the whole thing feel still surreal to this day. In all honesty, of all of the times I’ve been star struck… well let’s just put it this way, “Twitter famous” means about as much to me as finding out some wealthy person I’ve never heard of was in the next town over. It’s just what happened in my life.
Anyway, we dated for a while and we eventually moved in together. I moved to a very cold place at the start of a very cold winter. And we adopted a puppy! Like some people do when they’re in love. It eventually didn’t work out between us (the humans, I hope it’s obvious pup is still with me and well loved). Sometimes things don’t work out with romance. That’s okay.
I’m ever grateful that she decided it was best if pup went with me. I’ve since had—and continued to raise, and grow with—the best companion of my entire life. All because I implausibly connected with someone on Twitter of all freaking places at (IMO) its absolute worst most toxic point, and completely despite a zillion reasons it would be even more implausible (some not in detail here, but some will be written when I’m ready to tell a more full story).
Why am I telling you (and others who might be reading), of all people, this abridged version? I don’t know. I hope maybe it’ll be more valuable to you than if I just found some way to send a video of my pup? And I guess maybe because if you (or anyone) finds this story interesting, I hope one of the things that stands out is… several important life events and one incredible bond came out of me just being open to and pursuing a connection that feels still so unrelatable to me.
I’m not saying you should ask me for a pup video (but you can!), but just… okay yeah the actual point. People are experiencing a much more complex world of social media than you might see. Give them some grace, please?
Facebook originally started as a social network where I could see my friends' lives, babies, family life, puppies, and it was awesome and interesting, as it's something that I could talk with them about.
The problem with looking at friends' lives from Facebook's point of view is that it's not as addictive, and ads don't integrate naturally.
I loved the book, ,,Chaos Monkeys'', as it explained how impossible it was to monetize the huge active Facebook userbase in the early days, while users were prioritized and making money was just a secondary afterthought that Mark didn't care about.
It turns out that making assymetric relations, where some people/content creators have tens of thousands of followers and hundreds of thousands of views, and not usually friends with (except the case you are talking about) are much more addictive for people, and much easier to monetize as well. At this point though social media gets more media than social, and gets the same problems that other type of media had: creating unhealthy expectation for people whose brains don't really distinguish between what they see there and real life.
I chose a job at Google Engprod (a tooling/developer productivity org) because I specifically like to work on dev tooling and I'm much less interested in working on products aimed at end users. Surely, many engineers at FB feel the same way.
Cider, Piper, CitC, Blaze, etc make a really complete system. Nothing beats it.
This is kind of also surprising because product speed at Fb is much better :)
Source: Was a Meta infra engineer until last month, working in CDN & LogDevice, among other teams.
Mercurial / Eden were pretty fast though. Never had complaints about them.
I see nothing about review workflows in Eden’s README. Any pointers to example tooling — Presentations, code, screenshots — in the wild?
Which is to say, this is a product for one company - Facebook.
Perforce (and apparently Eden) make it usable.
- Requires a custom kernel to run. Although most of these patches are probably floating around the kernel mailing list in some form or another.
- Requires Google's RPC and authentication system. (I guess GRPC is open source now, IDK if piper has switched, but you still need auth)
- Requires Google's group membership seefvice.
- Requires Google's storage engine. I don't remember if they have migrated to spanner yet but even then it would be using internal spanner APIs not the cloud ones.
There are probably also more less obvious ones but the point is that when Google writes software to run in Google production it is based on top if a mountain of infrastructure. I'm not sure the design of Piper is in any way novel enough to be worth it. I mean piper works and scales well but I don't think it is a fantastic VCS.
If you use a tool like this you would basically be on your own. If you “stick to git” (or mercurial or whatever) at least you have all that momentum behind you, and you almost definitely won’t be the first people to encounter a problem.
One perspective on this is that many ORM libraries don't take the DB as the source of truth (one very good ORM library that does, and which saved me in this case, was JOOQ). I think a lot of small-scale problems could be solved this way, monorepo is just another variation of this solution: moving the source of truth into the repo.
It is surprising to me how often variations of this problem come up. Obviously, there are solutions from multiple directions: having cross-language definitions (ProtoBuf), Arrow (zero-copy abstractions suitable for high performance), maybe even Swagger which comes at the problem from documentation...but I think this problem still comes up anywhere (and the DB approach is, imo, a very strong approach with a decent ORM at smaller scale).
I think the core issue with git is that the submodule thing is obviously an afterthought that's cobbled together on top of the preexisting SCM instead of something that was taken into account from the start. It's better than nothing, but it's probably the one aspect of git that sometimes makes me long for SVN.
At the scale of something like Facebook you'd either have to pay a team to implement and support your split repo framework, or you'd have to pay a team to implement and support your monorepo framework. I don't have enough experience with such large codebases to claim expertise, but I would probably go for a monorepo as well based on my personal experience. Seems like the most straightforward, flexible and easier to scale approach.
My last place was about 10 years young, 150 engineers, and was still working within a single git repo without submodules.
There is a non-zero amount of discoverable config that goes into managing a repo like that, but it's trivial compared to the ongoing headaches of managing submodules, like you suggest.
The others weren’t “oh huh” enough to be easily recalled writing this comment, which probably speaks to their interestingness. But yes, you can chdir from search to calendar to borg and their dependencies, internal and vendored. It’s pretty much all there. It was pretty splendid, actually, and influences my thoughts on monos to this day.
https://github.com/facebookexperimental/eden/tree/main/eden/...
They could be a very strong contender in that space instead of being known as a terrible time suck for humanity.
It was shut down when FB apparently realized that an open cloud platform business is completely incompatible with how they run their infra.
Further, I'm happy with git. I played with Mercurial years ago, long enough to work with it day-to-day, and just didn't find any relevant advantages versus git.
I love that people are still out there trying to improve things, and certainly don't want that to stop, but it's difficult for me to imagine switching at this point.
1) Better handling of large files than git-lfs. As in 10+ GB repos. This is needed for game development (currently they tend to use Perforce or PlasticSCM)
2) Sparse checkout via file system integration (like Eden has)
3) Build system integration, so unchanged files and modules don't even need to be fetched to be compiled, because cached builds can be fetched from a build server instead (requires proper modularization, so e.g. C++ macro expansion doesn't just prevent anything from being cacheable)
These are all features that primarily have value for repos that push the limits on size, like big monorepos (with a huge amount of files) or game development (with big asset files). But get it right, and you could massively cut down the time it takes to check out a branch and build it.
Dud is meant to be a companion to SCM (e.g. Git) for large files. I was turned off of Git LFS after a couple failed attempts at using it for data science work. DVC[1] is an improvement in many ways, but it has some rough edges and serious performance issues[2].
With Dud I focused on speed and simplicity. To your three points above:
1) Dud can comfortably track datasets in the 100s of GBs. In practice, the bottleneck is your disk I/O speed.
2) Dud checks out binaries as links by default, so it's super fast to switch between commits.
3) Dud includes a means to build data pipelines -- think Makefiles with less footguns. Dud can detect when outputs are up to date and skip executing a pipeline stage.
I hope this helps, and I'd be happy to chat about it.
[0]: https://github.com/kevin-hanselman/dud
[1]: https://dvc.org
[2]: https://github.com/kevin-hanselman/dud#concrete-differences-...
Git LFS is intended more for a centralized "big repo" workflow, git annex's canonical usage is as a personal distributed backup system, but both can stretch into other domains.
In this case git-annex seems to have a feature that git LFS doesn't have that would be useful to you.
> Better handling of large files than git-lfs.
PlasticSCM does really really well with binary files.
> Sparse checkout via file system integration
Windows only [0] but Plastic does this. I've been working through some issues but it's usable as a daily driver with a sane build system.
> Build system integration
UnrealBuildTool at the same time is both the coolest and most frustrating build systems I've ever used. It's _not_ a general purpose build system for anyone and everyone, it's tailored to Unreal, it's slow to run the actual build system, the implementation is shaky at times, but some of it's features are incredible. Two standout features are Unity Builds, and Adaptive Unity builds. Unity builds are common now [1], but adaptive unity is a game changer. It uses the Source control integrations to check what files are modified and removes them from the unity blobs, meaning that you're only ever rebuilding + relinking what's changed, and get the best of both worlds.
[0] https://blog.plasticscm.com/2021/07/dynamic-workspaces-alpha... [1] https://en.wikipedia.org/wiki/Unity_build
Would this be a good fit for large machine learning data sets?
Every time a new model comes out that touts having been trained on something like a quarter of a billion images, I ask myself "how the heck does someone manage and version a pile like that?"
Potentially. It would depend on the image format and what metadata is (or can be) included in the file.
Because now you've got two versioning systems with different quirks and tools that behave slightly different that _must_ be kept in sync.
> I get that it's easier to keep everything together,
Easier is a bit of an understatement. Putting binary files outside of the project in another versioning system means you need two version control systems, _plus_ custom tooling to glue the two together. Also, the people who interact with these assets primarily are not technical at all, they're artists or designers, and they're the most likely to have issues with falling between the cracks.
It would be a game changer if any SCM actually manages to achieve this without needing multiple developer teams just for maintenance.
That would probably break gits current dominance within a relatively short timeframe... But I don't think it'll happen within the foreseeable future,
More seriously, can you describe what "build system integration" would look like? Basically like what GNU make does with RCS? I.e. considering the SCM "files" as sources.
How would such a system build a dumb tarball snapshot?
In practice it means that if I clone the repo and build it doesn't ever invoke the compiler, so that it takes only a few minutes instead of an hour.
Bazel has a similar system but I haven't used it myself,
The GP talks about "build system integration" being "a game changer", and I can see that being a useful thing for e.g. "priming" your cache, but that's surely just a matter of say:
ccache-like-tool --prime $(git rev-parse HEAD:)
I.e. give it an arbitrary "root" key and it would pre-download the cached assets for that given key, in this case the key is git-specific, but it could also be a: find -type f -name '*.[ch]' -exec cat {} \; | sha1sum | cut -d' ' -f1
Or whatever.Vertical integration, basically. There is value in these things working, and working well. As an example of the issues with ccache etc, I've yet to find a compilation cache that works well on windows for large projects.
The "automation" of our in-house system is what really makes the difference but then again we have a team of developers that focus on tooling so it's not so much automated as it is maintained...
It can use the Git data store, so developers can in theory start using it without the whole team adopting it. Then it addresses the big problem with Git, the user interface:
https://github.com/martinvonz/jj
I'm not suggesting that "jj" in particular will disrupt Git, but I think eventually the a tool which supports the git data store with a better user interface could take hold.
So rather than use Git + Git Annex or something like that (maybe more), you’ll just use this alternative SCM.
(I keep hearing about how Git will eventually support big repos, but it’s still not on the horizon. Big repos with Git still seems to be limited to big corps who have the resources to make something bespoke. Personally I don’t use big repos so I have no skin in this game.)
- Protocol for more efficiently widening sparse checkouts.
- Virtual filesystem or other solution for automatically widening sparse checkouts to greatly improve the UX.
- Ideally changing sparse checkouts from a repo state to just some form of lazy loading. Otherwise as you touch more files your performance will slowly degrade.
One thing I recall was an effort from pijul to make blaming a file run in O(n log h) where n is the size of the file and h is the size of the (repo or file, I’m not sure) history. I wonder if Eden will also have improved blame performance. I noticed they mentioned large histories but maybe it is still linear in the history size of the file. (The way hg works gives I think O(nh) where h is the size of the file history, which he stores per-file rather than per-commit like git).
Similarly, I think Git(hub) has succeeded in open source because bundling more complete changes into PRs works well for unevenly distributed contributions.
You know the feeling of having to use SVN after using Git? This is what it feels like to use Git after getting used to Meta's Mercurial. I wish I could go into the details, but I don't know how much of it was ported back to Mercurial.
One possibility could be to use some kind of git ui. I only know about magit (which is built on/in Emacs) but I’m sure others exist.
If they are then I totally agree.
That said, I would like to see it self hosted. I think then and only then will I give it a serious look.
Being open source doesn't mean I have to maintain your code contributions.
I love git just as much as the next guy, but git-lfs sucks.
But we were explicitly dissuaded from having binary data. I worked on image processing, and wanted to store test images for unit tests in hg, but the consensus was, that was a bad idea. So we stored them in a separate data store, and had a make rule to fetch them as part of the build.
1. The take up a lot of space because the entire history needs to be downloaded with all past versions (andany types of binary files completely change when updates so delta compression doesn't help much)
2. The are slow to update on checkout (not much of an issue if they don't chance much).
Basically any solution for large repos will also solve Git's "binary file problem" because in order to allow large repos you need to allow shallow and partial checkouts as well as efficiently updating the working copy (usually via a virtual filesystem).
TL;DR Git doesn't have a binary file problem, it just has a big repo problem. Binary files are often mentioned because they are the quickest and easiest way to get a big repo.
Getting the inertia amongst developers to migrate to a different SCM can be quite the challenge.
Edit: initially said migrating to git was a challenge. But really it’s migrating from any SCM to another that’s challenging.
It's great, and it doesn't work outside Facebook.
Even React, which is their most popular library, is not actually "open source." They're very transparent about the fact that their priorities are Facebook's needs -- even if they do take community input.
None of this is per-se bad, but you should definitely treat an open-source project out of Facebook with skepticism when it comes to adopting it for your own use cases (possibly making sure you're not too locked in when an incompatible v2 comes out with virtually no warning after FB's internal implementation drifts).
How do you define "open source"? It typically simply means the source code is available. By any definition I can think of, React is definitely both free and open source. How they design the software or if they take contributors isn't really relevant.
I agree with you that react is definitely open source, but I'd also encourage you to use more specific wording around what "open source" means.
I think wikipedia gets this right: https://en.wikipedia.org/wiki/Open-source_software
"Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose"
The license is the key bit.
On the other hand, there's "source available" software (also on wikipedia https://en.wikipedia.org/wiki/Source-available_software ), which is what your definition equates to, and I personally don't want to see confused with open source or free software.
- Freely licensed software (eg: MIT, GPL, etc)
- Code visibility (eg: ForgeRock)
- Community focus/contributions
Not all "open source" implements each of these, and just because they implement one and not the other doesn't mean they're not expressly open source. Just some ecosystems are more open than others.
That Wikipedia definition sounds more like what typically gets described as "Free and Open-Source Software"/FOSS, no?
As I see it commonly defined, "open source software", FOSS, and FLOSS all mean the same thing more or less. That the project uses an OSI approved license, or one very close to it, whether it's MIT, Apache2, or GPL.
"Free software" is the only of the phrases that I see having two competing common definitions, the "free as in money", and "free as in Free Software Foundation's definition of free software". This seems pretty understandable, since "free" is overloaded.
I only infrequently see people mixing up "open source" and "source available", and that's the specific thing I'm trying to discourage people from mixing up. I think keeping those terms clear, and especially calling out "source available" software as _not_ being "open source" (i.e. not granting you the freedom to modify it or run your own copy in some cases) is important.
Coming back to the original argument - which was that React was not truly open-source - being MIT, it 100% is, so I still don't understand it. That they prioritize their own needs for feature development is pretty much irrelevant, the source is there and you have permission to fork, tweak and publish changes on your own at any time. You legally are in your own right, but they don't have to make it easy on you.
Open Source == other peoples' contributions, to my project's code
Can you link to a reference?
As I understand it, "Free Software" is the term the FSF and general hacker community settled on for licenses that preserve user's freedom to modify and redistribute source code.
O'Reilly etc shifted to the term Open Source as part of making the idea less associated with "hacker culture", and more associated with businesses (as described here: https://en.wikipedia.org/wiki/Open-source_software#End_of_19... )
From there, I see "Open source" being slightly more often associated with companies or younger developers, and "free software" more often being associated with the GNU project, copyleft projects, etc.
I'm curious if you have references or more explanation about the difference you're trying to draw, since it's one I haven't seen before.
My distinction between the two is whether outside contributions make it back into the original project. Free Software is about the rights of end users to inspect the code and make and distribute their own modifications, but then Open Source takes it a bit further by explicitly soliciting contributions with the ostensible aim of building a better project through cooperative labor than an individual programmer could build alone.
In practice though "Open Source" has turned into unpaid project management work for billion-dollar corporations, bitter disputes between contributors over conflicting standards of morality, technical visions in constant flux as contributors come and go, and endless bikeshedding about semantic version numbers / code style guides / other things that don't matter. For years I thought I was totally burned out on Free Software and walked away from all of it, but what I was actually burned out on is Open Source and have been able to love programming again by working on things that are explicitly "Free Software but not Open Source".
The `actix-web` drama a few years ago is a perfect example, when a huge crowd of onlookers felt morally justified excoriating a popular project's creator / maintainer for not managing their project to the crowd's standards: https://steveklabnik.com/writing/a-sad-day-for-rust
??? Isn't React licenced under the MIT licence? It seems to me that it tickes all boxes?
I'm aware react is licensed under the MIT license. I was just talking about how the parent comment chose to define "open source".
I don’t know how we got to this point but it’s interesting to notice that the terminology drifted.
The terminology hasn't drifted that much. I think there is a small and vocal group of people who are trying to take back "open source" by reframing what it means, so as to exclude corporate projects. It doesn't make sense to me.
There are certainly a push in that direction. And that you need a group of people, core or council to be considered as Open Source. And Linux has that.
>The terminology hasn't drifted that much.
It depends how you measure it, but Twitter and HN are at least two places where lots of developers are suggesting Open Sources equals to Community driven. And yes, there are also some movement towards MIT, BSD or Apache 2.0 as being not considered as Open Source because they do not contribute back changes. Although that hasn't gotten any traction. ( yet )
For me, open source and community-driven are not similar and I don't understand why people seem to expect it.
React is a successful Facebook OSS project. An example of one which went poorly is Thrift. Facebook open-sourced it and then internally used fbthrift which diverged drastically. OSS Thrift isn't that popular these days any more.
that is not what that means. "source is available" and "open source" are very different.
> Disagree.
well, fortunately your agreement is not required. "open source" already has a definition and it requires openness.
A standard open source license with a patent grant, like the Apache license, would have been a lot clearer, but Facebook has so far refused to license React in that way.
A problematic patent grant was offered for earlier versions of React but that’s not the case anymore (and didn’t really fix the problem anyway).
The source code to Windows is available.
IMO that should be celebrated, not shitting on fb for their poor track record of going out of their way to open their source code to the public.
I hate meta as much as the next, but come on.
A fork may not be an option. Perhaps a given organization may not even be allowed to use React, if Facebook decides against it for some reason. Jurisdictions can differ as well.
In my opinion, the best thing would be if Facebook simply made the terms clear by using the Apache license or similar. But hey, it’s Facebook, so I’m not expecting much…
By that definition any "Open Source " MIT or BSD licenses that does not offer patent grant has problems.
> Re-sync with internal repository
I wouldn't consider this to be a problem.
So if history serves the next announcement to watch for is your departure from Facebook and the launch of Edenity, which will be sunset and abandoned inside a decade once it fails to IPO. Am I close?
but if i grep through the source code then it will download all of the stuff?
On the build side.... holy jesus, are they really compiling 40 different dependencies from scratch every time they push code? This build has been running for 5 minutes and it's still just compiling dependencies: https://github.com/facebookexperimental/eden/runs/5997101905... Come on, ya'll. You're supposed to be the "advanced FAANG people". Cache some build deps, will ya?
You also need much better tools than grep and locate for a monorepo - or any sufficiently large repo probably. Just load the full repo into memory in a few places around the world, and use an API to find the text you’re looking for. If you already have expertise with search services in your company, this is not that challenging a step - and you can get fancy by using something like Tree-sitter to make those searches more advanced than text. Hitting disk (especially for whole directory trees for “grep -r”) is a losing approach in a large repo.
Only setting up files and folders as they are requested might be very helpful with various git monorepo access patterns. Maybe there is something inherit to Git's design that makes this less practical.
Which seems to have been superseded by https://github.com/microsoft/scalar according to the README.
Madness
> I believe the most important thing we can do is work to bring people closer together. It's so important that we're changing Facebook's whole mission to take this on.
No wonder they have a major project named Yoga and now this...
It's used to predict things, but still strikes me as an odd name, just like Yoga.
No, you can't simply dismiss the fundamental problems with Facebook/Meta with whataboutism. Google and Apple and Microsoft are standard mixed bags. Not Facebook.
Facebook is pure evil. It has queued up the complete obliteration of western democracy, which even Rupert Murdoch couldn't quite manage on his own. You can absolutely find non-directly-evil things to at Facebook/Meta, but it all supports the evil in the end.
https://www.theatlantic.com/magazine/archive/2022/05/social-...
It's also possible, but not likely, and not the case here, that a TV show could be a sensation long before the first episode comes out. I can't think of a time when this happened except for a prequel or sequel like Better Call Saul, where it was much awaited, but I'm sure there are instances of that occurring.
Edit: from another comment, there's this, which came out in 1997 but isn't mentioned in the Wikipedia article for the TV series so I'm not sure it's related: https://en.m.wikipedia.org/wiki/Eden:_It%27s_an_Endless_Worl... There is a Manga mentioned in the article for the TV series but it came out the same year as the TV show.