I will say that SourceSafe had one advantage: You could create "composite" proxy workspaces.
You could add one or two files from one workspace, and a few from another, etc. The resulting "avatar" workspace would act like they were all in the same workspace. It was cool.
Don't remember exactly. If I think about it, it could be quite complex.
Git has the concept of "atomic repos." Repos are a single unit, including all files, branches, tags, etc.
Older systems basically had a single repo, with "lenses" into sections of the repo (usually called "workspaces," or somesuch. VSS called them something else, but I can't remember).
I find the atomic repo thing awkward; especially wrt libraries. If I include a package, I get the whole kit & kaboodle; including test harnesses and whatnot. My libraries thend to have a lot more testing code than library code.
Also, I would love to create a "dependency repo," that aggregates the exported parts of the libraries that I'm including into my project, pinned at the required versions. I guess you could say package managers are that, but they are kind of a blunt instrument. Since I eat my own dog food, I'd like to be able to write changes into the dependency, and have them propagate back to their home repo, which I can sort of do now, if I make it a point to find the dependency checkout, make a change, then push that change, but it's awkward.
But that seems crazy complex (and dangerous), so I'm OK with the way things work now.
Your workflow is fascinating! What languages do you work in, if you don’t mind me asking?
Both git and jj have sparse checkouts these days, it sounds like you’d be into that
Do you vendor the libraries you use? Python packages typically don’t include the testing or docs in wheels uploaded to PyPI, for instance
These days in Pythonland, it’s typical to use a package manager with a lockfile that enforces build reproducibility and SHA signatures for package attestation. If you haven’t worked with tools like uv, you might like their concepts (or you might be immediately put off by their idea of hermetically isolated environments idk)
a repo is a repo - you're describing what is nowadays known as a 'monorepo' and it's a perfectly reasonable and desirable even exactly for the reasons you mention, except the 'distributed' part makes it very inconvenient to handle on dev boxes if it grows a lot.
in a centralized VCS there are viable CICD options like 'check the compiler binaries in' or even 'check the whole builder OS image in' which git is simply not able to handle by design and needs extensions to work around deficiencies. git winning the mindshare battle made these a bit forgotten, but they were industry standard a couple decades ago.
No, it let you continue to follow the main branch for most files, while files you edited would have their changes saved to a different location. And was just about as horrible as you might imagine.
We moved from VSS to SVN, and it took a little encouraging for the person who had set up our branching workflow using that VSS feature to be happy losing it if that freed us from VSS.
The world collectively (mostly the US) spends trillions on national defense, that spending is unnecessary if we all just got along. I think you're right that everyone spending money on local semiconductor industries is even more wasteful.
Unfortunately, that defense allows hoarding wealth. If the wealth was more evenly distributed globally, there would be little reason to defend against raids.
This is how places like the US despite having 4% of the population have about a quarter of the material and energy consumption. Not to single them out, I am in Australia, it is a similar ratio.
I am not defending this situation, just highlighting its role.
Not all wars are about raiding, especially in the modern era. Putin isn’t interested in Ukraine’s wealth. Nor would a Chinese invasion of Taiwan be about money.
"No wars have been more ruthless and ravaging than “just” wars, fought in “defense” of religion, honor, or principle. If war must be, give me rather a war to capture an enemy’s wealth and territory, based on honest greed, in which I shall be careful not to destroy what I want to possess. " - Alan Watts
I think it depends on what the goal is. Like, lots of countries (and probably a few US state) could, I bet, do their own foundries for, like, 22nm. Process node names are bullshit of course, but we’re talking about stuff that Intel was doing in 2012, Global Foundries in 2015.
22nm is already overkill for a lot of applications. But, like, if your country gets embargoed, you should be able to make computer chips for cars and farming equipment. Top end GPUs? Not necessary. Some basic RISC-V cpu for compute appliances? That should be a capability that everybody has.
That doesn't sound unreasonable. That is Ivy Bridge/Intel Core 3rd gen capabilities. You aren't running a generative AI but can do all manner of work loads. Combined with some software efficiency gains and you could be fairly comfortable.
This part of why I have been advocating for years that the open source/free software folks should be focusing on optimization and stability/security as long term it will probably be much more useful that adding features that can be dumped on top.
Sounds like a huge infusion of cash to highly skilled workers, and supporting the building of skills that can be transferred between companies sounds like a good thing.
Whats wrong with redundancy? Not having redundant supply of anything is a problem as human history has repeatedly shown. I think this kind of modern "more profit = more better" is just a ticking time bomb for a massive disaster, and it isn't like we haven't had any warning signs about critical supply problems for any number of resources and goods.
If you can print the money required with no bad consequences, go right ahead and build all the redundancies.
The problem with bleeding-edge fab is it's a (fast) moving target. It's not a solved problem. And customers can't simply migrate their designs to a different fab, as the designs are increasingly specific to a process.
I do think we need more fabs but not this kind. Very low cost fabs with standardized PDK and open(ish) tools, should be as simple as ordering a PCB. Not going to happen anytime soon though, needs old fabs to stop production and the bleeding-edge to hit a hard wall. Can't compete with fully depreciated legacy fabs/nodes.
This is too glib: If you imagine a world where every critical industry is replicated in every large nation, often inefficiently or inadequately, that’s a world where the average person is much, much poorer.
It’s a tradeoff between resilience and efficiency.
You can go for full efficiency if you want, but then like the US auto manufacturers learned during Covid, you don’t have any way to handle disruptions to your business
The premise of this thread is that efficient markets and comparative advantage won’t leave even a large nation with enough of the right competitive local industries for national security or whatever objective.
Thus to sustain those industries (semiconductor fabrication in this case) industrial policy (subsidies, tariffs, government investment, “Buy American” rules, … ) is essential.
I agree that industrial policy is essential for a nation that wants to ensure that competitive industries exist within the nation's economy.
But the justification I replied to was that the nation must inherently suffer material inefficiencies for a nation to do this, due to how economies work, which is not the case (or at least, no real justification was offered other than the heuristic that larger firms are somehow inherently more efficient, which if anything is opposite to my experience in a very large org).
A nation might well implement an industrial policy so as to pessimize its local industries that survive, but that is not required to happen either.
I don’t think the problem with the Soviets was doing everything themselves, which seems to be working okay for China. The problem is that centralized planning doesn’t work, and the system dehumanized people and destroyed incentives for people to innovate.
What marks a state out as being religiously extreme? Or sponsoring terror? Stuff like killing politicians of the opposing side? Pardoning insurrectionists on your side? Sponsoring organisations that badger mothers in foreign nations as they attempt to get an abortion?
> Wherever it is you live that you feel is morally superior to America and Israel on commercialized CNE
It's not the tech (or lack of it) that makes me feel morally superior. It's the choice to use that tech to defend literal facists that I would find embarassing.
Exactly. As somebody with a past in security, I've often thought about the ethics of my actions. Where is the ethics of government?
If you think that sounds naive, I think you get my point. Those in power can not show worse ethics and morals than those they rule, at least not if you want to uphold the illusion of democracy and its values.
It's not a question of illusion. Classical political philosophy makes it clear that leaders must be virtuous to be good leaders, and that the consequences of having leaders without virtue are bad. No system can counteract vice; people, after all, run the system. Probably the most famous example of how the state degenerates as virtue weakens is given in Plato's Republic, but this is seen consistently.
The American founders also emphasized the requirement that, for the American republic to function, it must have a virtuous people. The democratic process means that citizens now participate in the political process and thus shoulder some of the responsibility for how well a country is governed. The virtue of citizens becomes even more important.
You might not implement them but as a web engineer you're using them all the time. So all these tools that you use will have tree implementations in them.
- Every html document is a tree structure. And css documents have special syntax to address nodes within those trees
- If it's any good, you're routing framework probably uses some kind of tree to quickly match the request to it's handler
- The database you write to uses a tree to quickly find the location it needs to write to
I think that’s kind of the GP’s point, that there’s no “implementing a tree” so much as just using the tree that’s naturally there. When I make nested objects, I don’t think of trees or some boxes-and-arrows diagram, I just think “product type”. It’s good to know your graph algorithms, sure, but thinking about the data representation isn’t something one needs to have in the front of their mind in any decently abstracted language.
reply