This paper from 2018 presents a comprehensive empirical study of 103 crash recovery bugs from 4 popular open-source distributed systems: ZooKeeper, Hadoop MapReduce, Cassandra, and HBase. For all the studied bugs, they analyze their root causes, triggering conditions, bug impacts and fixing.
Crash recovery bugs are caused by five types of bug patterns:
- incorrect backup (17%)
- incorrect crash/reboot detection (18%)
- incorrect state identification (16%)
- incorrect state recovery (28%)
- concurrency (21%)
Crash recovery bugs are caused by five types of bug patterns:
- incorrect backup (17%)
- incorrect crash/reboot detection (18%)
- incorrect state identification (16%)
- incorrect state recovery (28%)
- concurrency (21%)
Недавно разговаривал о зависимостях и о том, как их менеджить. Мне доказывали, что это неинтересно и просто.
Но я слишком аутист по этому вопросу: меня сильно волнует, какие зависимости у меня есть. Это тот код, за который мне отвечать. Изначально косвенно, пока все работает.
Когда сломается - ох....
Или еще лучше, когда зависимость начнет делать что-то не то. Сочный пример с
https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/issues/123
И коммит с 800+ коментами и пикчами:
https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdbe0acce6f1dafc8beb84f2ac
mypkgmgmt update и все задачи решены.Но я слишком аутист по этому вопросу: меня сильно волнует, какие зависимости у меня есть. Это тот код, за который мне отвечать. Изначально косвенно, пока все работает.
Когда сломается - ох....
Или еще лучше, когда зависимость начнет делать что-то не то. Сочный пример с
rm -rf /usr /bla:https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/issues/123
И коммит с 800+ коментами и пикчами:
https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdbe0acce6f1dafc8beb84f2ac
GitHub
install script does rm -rf /usr for ubuntu · Issue #123 · MrMEEE/bumblebee-Old-and-abbandoned
An extra space at line 351: rm -rf /usr /lib/nvidia-current/xorg/xorg causes the install.sh script to do an rm -rf on the /usr directory for people installing in ubuntu. Totally uncool dude!!! The ...
Compile time of this really simple Pythagorean Triples, takes 2.85 seconds longer than the “simple C++” version.
Lest you think that “under 3 seconds” is a short time – it’s absolutely not. In 3 seconds, a modern CPU can do a gajillion operations. For example, the time it takes for clang to compile a full actual database engine (SQLite) in Debug build, with all 220 thousand lines of code, is 0.9 seconds on my machine. In which world is it okay to compile a trivial 5-line example three times slower than a full database engine?!
Modern C++ is like a Formula One car. Impressive? Sure. Marvel of engineering? Of course. Requires massive amount of skill to handle properly? Yes! Not the right tool for 99% of situations you’d even find yourself in? Yup
(c)
Lest you think that “under 3 seconds” is a short time – it’s absolutely not. In 3 seconds, a modern CPU can do a gajillion operations. For example, the time it takes for clang to compile a full actual database engine (SQLite) in Debug build, with all 220 thousand lines of code, is 0.9 seconds on my machine. In which world is it okay to compile a trivial 5-line example three times slower than a full database engine?!
Modern C++ is like a Formula One car. Impressive? Sure. Marvel of engineering? Of course. Requires massive amount of skill to handle properly? Yes! Not the right tool for 99% of situations you’d even find yourself in? Yup
(c)
Yet another how to shoot yourself in the foot with JavaScript no. WHOCARES
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#Scoping_rules_2
function varTest() {
var x = 1;
if (true) {
var x = 2; // same variable!
console.log(x); // 2
}
console.log(x); // 2
}
function letTest() {
let x = 1;
if (true) {
let x = 2; // different variable
console.log(x); // 2
}
console.log(x); // 1
}https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#Scoping_rules_2
MDN Web Docs
let - JavaScript | MDN
The let declaration declares re-assignable, block-scoped local variables, optionally initializing each to a value.
Сегодня скинули скрин одной немецкой конторы.
Увидел GodRelease пхп монорепы сегодня. От создателей GoldObject и GoldHammer.
34 пулл-реквеста, 300 комитов, включая “review fix”, за 2.5 месяца работы.
Дас ист фантастиш.
А еще оказывается люди путают монолит и монорепо 🤔
Увидел GodRelease пхп монорепы сегодня. От создателей GoldObject и GoldHammer.
34 пулл-реквеста, 300 комитов, включая “review fix”, за 2.5 месяца работы.
Дас ист фантастиш.
А еще оказывается люди путают монолит и монорепо 🤔
Forwarded from Hermitage
Хороший референс по Nginx'у в закладки: https://github.com/denji/nginx-tuning
Upd: в добавок https://github.com/trimstray/nginx-quick-reference (via @oleg_log).
Upd: в добавок https://github.com/trimstray/nginx-quick-reference (via @oleg_log).
GitHub
GitHub - denji/nginx-tuning: NGINX tuning for best performance
NGINX tuning for best performance. Contribute to denji/nginx-tuning development by creating an account on GitHub.