NP (complexity) Updated 2025-07-16
Strictly speaking, only defined for decision problems: cs.stackexchange.com/questions/9664/is-it-necessary-for-np-problems-to-be-decision-problems/128702#128702
Linker (computing) Updated 2025-07-26
LeetCode Updated 2025-07-16
Text-based user interface Updated 2025-07-16
Cloud computing market share Updated 2025-07-16
Cloud Computing market share in Q2 2022 by statista.com
. Source. Hyperscale computing Updated 2025-07-16
Basically means "company with huge server farms, and which usually rents them out like Amazon AWS or Google Cloud Platform
Cloud computing platform Updated 2025-07-16
Platform as a service Updated 2025-07-16
Closed standard Updated 2025-07-16
How the hell are you supposed to develop an open source implementation of something that has a closed standard?
Inner source Updated 2025-07-16
If you are going to do closed source, at least do it like this.
Basically the opposite of need to know for software.
Closed source offline software used by millions Updated 2025-07-16
Closed source on offline products used by millions of people is evil, when you could just have those for free with open source software! Thus Ciro's hatred for Microsoft Windows and MacOS (at least userland, maybe).
Carnot cycle Updated 2025-07-16
Correspondence principle Updated 2025-07-16
Excessive encapsulation is the root of much evil Updated 2025-07-16
Some anecdotes.
Ciro Santilli never splits up functions unless there is more than one calling point. If you split early, the chances that the interface will be wrong are huge, and a much larger refactoring follows.
int cross_block_var;
// First step.
{
int myvar;
}
// Second step.
{
int myvar;
}Ciro has seen and had to deal with in his lifetime with two projects that had like 3 to 10 git separate Git repositories, all created and maintained by the same small group of developers of the same organization, even though one could not build without the other. Keeping everything in sync was Hell! Why not just have three directories inside a single repository with a single source of truth?
Another important case: Linux should have at least a C standard library, init system, and shell in-tree, like BSD Operating Systems, as mentioned at: Section "Linux".
The development cycle time is your God Updated 2025-07-16
New developers won't want to learn your project, because they would rather shoot themselves.
Of course, at some point software gets large enough that things won't fit anymore in 5 seconds. But then you must have either some kind of build caching, or options to do partial builds/tests that will bring things down to that 5 second mark.
A slow build from scratch will mean that your continuous integration costs a lot, money that could be invested in a new developer!
One anecdote comes to mind. Ciro Santilli was trying to debug something, and more experience colleague came over.
To reproduce a problem, ciro was running one command, wait 5 seconds, run a second command, wait 5 seconds, run a third command:
cmd1
# wait 5 seconds
cmd2
# wait 5 seconds
cmd3The first thing the colleague said: join those three commands into one:And so, Ciro was enlightened.
cmd1;cmd2;cmd3 Everything that is not tested breaks Updated 2025-07-16
Everything can break everything Updated 2025-07-16
Whenever someone asks:you don't need to read anymore, just point them to this page immediately. Virtualization for the win.
I can only see this one thing different our setups, do you think it could be the cause of our different behaviour?
Fix it twice Updated 2025-07-16
You aren't gonna need it Updated 2025-07-16
Sometimes you are really certain that something is a required substep for another thing that is coming right afterwards.
When things are this concrete, fine, just do the substep.
But you have to always beware of cases where "I'm sure this will be needed at some unspecified point in the future", because such points tends to never happen.
YAGNI is so fundamental, there are several closely related concepts to it:
KISS principle Updated 2025-07-16
The software engineer phrasing of simplicity is the ultimate sophistication.
Like all other principles, it is not absolute.
But it is something that you should always have on the back of your mind.
You aren't gonna need it is closely related, as generally the extra unnecessary complications are set in place to accommodate useless features that will never be needed.
There are unlisted articles, also show them or only show them.



