924 karma · joined December 13, 2022
For the rest, isn't it obvious when an question is a question or a hint is hint? If you understand English then the meaning of each comment should be clear.
> Apparently everything online about how operating systems and CPUs work is terrible
Then it is time to head for the books. Most of the stuff in the web is not organized and coherent. In particular, the "basics" (whether is CPUs, machine learning, etc) are seldom explained.
SteamOS on the other hand is an actual GNU/Linux distribution that can be installed in any machine and any improvements that Steam does, e.g. to 3d drivers or hardware support, will benefit the entire desktop Linux ecosystem.
<div id="a"></div>
<div id="b"></div>
#a,
#b {
height: 200px;
width: 200px;
border: dashed;
}
#a {
background: -moz-element(#b) no-repeat;
background-size: 80%;
border-color: green;
}
#b {
background: -moz-element(#a) no-repeat;
background-size: 80%;
border-color: purple;
}Then the company adds more and more developers to work on the same codebase, which will not help because their productivity will be super-slow. Instead they should be working in rebuilding the product.
Of course, at some point doing a huge design and making everything technically perfect from the beginning is wasteful. The main mistake to me, however, is not realizing the long-term costs and that doing it "right" is not so expensive.
One does not even need to design everything, just have enough foresight to not paint oneself into a corner design-wise.
Also, according to Wikipedia, the largest shareholder for Thames Water is a Canadian public pension fund, so it is at least partially public, just owned by another country.
> In the branching model, large and infrequent merges can introduce bugs that are hard to identify and resolve due to the sheer size of the changes.
You are not supposed to have branches that diverge too much, and if you do, what's stopping you in a centralized VCS from doing the same? I.e. having a large local changes that you did not upload back to the server. It actually makes the problem worse.
> In contrast, the branching model encourages developers to create separate branches for every feature, bug fix, or enhancement.
It seems the author suggesting not only a reversion the centralized VCS days but also to do it with just a trunk branch, where either each commit is made to the trunk right away (so it must be right on the first try) or you pile uncommitted changes locally.
Using a DVCS and committing to the local version of the `master` branch already counts as having a branched model, except more limited.
> In a trunk-based model, continuous integration becomes more straightforward because your code is committed frequently to trunk, and that's the branch your CI environment is running the build and tests on.
You can run CI and test in any branch you want, and you can rebase prior to running the tests. It is not a big deal.
Every human activity consumes resources. We cannot make the reduction of consumption as a goal in itself. At the end of the road, what that line of thinking leads to is just existing for the mere fact of existing while occupying the minimal space and feeding ourselves enough to meet our required daily values. I do not think that is an existence that makes sense.
Going back to "agricultural land use". Much of the land use for raising animals would not become a lush forest if left alone. There's a reason it is being used for animals and not crops.
> In addition, violations of this code outside these spaces may affect a person's ability to participate within them.
which sort of negates all the other good aspects. If a CoC is a contract or agreement, it should provide guarantees for both sides, i.e. that inappropriate behavior will be punished but also make it exactly clear which things are inappropriate.
There are absolutely no reasons to extend the CoC to spaces outside the project other than to give the enforcers more opportunities to arbitrarily target people.
The input-update-output loop is fine, but you cannot easily combine and nest such loops. For example, in a robot you may have a speed control inner loop, then a path following loop and on top of that a high-level behavior loop. Nesting one inside the others you end up with a hand-baked implementation of a coroutine.
With coroutines you are using the language's control structures directly. The program counter is your state and a branch is an `if`. With minimal debugger support you will be able to see at which line is the execution on each coro.
With callbacks you would have to inspect which ones are pending, unless you have made the state explicit in a variable.
These is not a huge deal for those who have been programming for a while but for beginners coros will feel more like an extension of the language than something built on top.
The allocation can be handled by custom allocators for each object type. You can do only this and you avoid the double de-reference of handles.
If you are fine with double-dereferences and also want to implement extra checks and use less bits for the pointer you could overload `operator->()`, e.g.
struct CompressedPointer {
uint16_t obj_id;
Object \*operator->() { return Object::get_by_id(obj_id); }
};I'm annoyed when coroutines are reserved for use only in high performance, c10k-type of situations. For example, the KJ library's doc says:
"Because of this, fibers should not be used just to make code look nice (C++20's co_await, described below, is a better way to do that)."
With this "stackless or nothing" attitude we do not have good C++ coroutine libraries outside C++20's.
For me the purpose IS to make the code look nice and I do not care if the coros are stackfull and consume more stack memory. At the end of the day, for my application, I saved more in programmer's time and bugs than I lost in RAM (and I'm on an embedded board with only 64MB)
I agree that having 5 apps and needing a phone is bad, but the cost of the card reader will be passed onto you and less chargers will be available.
An NFC-based solution which worked with a single card or a phone would have been better.
"I remember my friend Johnny von Neumann used to say, with four parameters I can fit an elephant, and with five I can make him wiggle his trunk." [1]