Обновить
3

Пользователь

Отправить сообщение
От возможности горизонтального переноса (и между вирусами, ага) вместе с наличием штаммов с высокой летальностью и с высокой вирулентностью.


Вот когда полетит,. тогда и поговорим(с) Это известный факт, риски более-менее понятны, все новые штаммы гриппа мониторятся в том числе и по этой причине. Масштабное уничтожение птицы по причине птичьего гриппа, «низкий старт» при обнаружении свиного были именно по этой причине. Далее см. про суммарные риски.

Сужу по результату. Где публично известные оценки влияния карантина на экономические и социальные аспекты?


Спросите у профильных ведомств. Были они или нет, но это вот ни каким образом не является задачей медиков делать социальные и экономические прогнозы, правда же? Они могут только сказать, что с медицинской точки зрения без карантинных мер будет А, с лёгкой изоляцией — Б, с полной — Ц.
Это откуда такая вероятность? Даже тривиально состояние мировой экономики и здравоохранения при прочих равных не даст такого кол-ва пострадавших. Ещё раз: из реальных сценариев. Здесь «реальный» — основанный на фактических данных, а не «есть ненулевая вероятность, что ВИЧ мутирует начнёт передаваться воздушно-капельным путём»

Но при этом таки да, вспышки гриппа тщательно отслеживают (это только у ковиддиссидентов грипп такая фигня, что внимания не заслуживает, а корона лишь каплю хуже), и в случае свиного гриппа были вполне себе на низком старте.

Это во-первых. Во-вторых, вы не прочитали даже то, что процитировали. «Оценивать суммарные риски (в том числе экономические, социальные и т.п.) нужно на более высоком уровне по соответствующим рекомендациям профильных органов.»
исходя из худшего из реальных

Разве отсюда не следует, что мы все вместе должны сплотиться и уничтожить Нибиру, пока Нибиру не уничтожила нашу планету?


Нибиру реальна? Есть достоверные сведения, что Нибиру готовится уничтожить нашу планету или хотя бы уничтожала планеты ранее? Достоверно известно, что Нибиру движется к Земле? Если на все вопросы ответ «да» — то стоит ввести карантин подготовиться и привести войска в боевую готовность. Иначе это как-то не вяжется со словом «реальных», не правда ли?
Надо понимать, что органы здравоохранения по-хорошему должны действовать исходя из худшего из реальных, а не наиболее вероятного или, тем более, лучшего сценария. Оценивать суммарные риски (в том числе экономические, социальные и т.п.) нужно на более высоком уровне по соответствующим рекомендациям профильных органов.

Со свинячьим гриппом поначалу была высокая case mortality — то ли из-за особенностей выборки, то ли вирус быстро «смягчился» (в отличие от короны, которая весьма стабильно, вирус гриппа ж мутирует как последняя сволочь). В первые месяцы летальность устаканилась примерно на уровне, емнип, <1%, по факту оказалась в районе <0.05%. ВОЗ при этом не рекомендовал карантины и прочее.

Теперь сравниваем корону с ним:
1. заразность по предварительным оценкам выше
2. разница между латентным и инкубационным периодом выше в разы
3. case mortality выше в несколько раз (если сравнивать за аналогичный период с момента начала)
4. достаточно высокий процент средне-тяжёлых случаев, требующих врачебного наблюдения (это важный момент в разрезе нагрузки на больницы)
5. как лечить — вообще непонятно
6. перекрёстного иммунитета нет (по крайней мере даже на текущий момент нет данных за это), вакцин нет не только от конкретного вируса, но и от родственников, вообще ни от кого из семейства — и непонятно, насколько быстро удастся их разработать и удастся ли вообще
Летальность была очевидно более низкой, но неизвестно, насколько. При этом она всё равно оставалась высокой, в разы превышая, например, летальность гриппа, который заразен примерно настолько же. Для некоторого понимания, почему все сильно занервничали, рекомендую поднять статистику свиного гриппа за первые месяцы его пандемии и сравнить.
Атипичная пневмония (SARS) и ближневосточный респираторный синдром (MERS) тоже вызываются «новым вариантом давно известного и распространенного вируса» (из того же рода, причём!), значительно менее заразных, чем COVID, при этом с большой летальностью. Действительно, чего бы это видеть какие-то проблемы от очередного вируса из той же серии, у которого уже была видна высокая заразность?
Микросервисы ничем не спасают, никто не мешает проводить рефакторинг по частям и в монолите, разница только в том, что в одном случае API — это функции/классы/другие средства языка, а в другом — сетевые вызовы. Единственный момент в плюс микросервисам, что там тяжелее иметь какой-то глобальный изменяемый стейт со всеми вытекающими сложностями рефакторинга, да и то плюс сомнительный, ухитряются многотонные json/protobuf/etc между микросервисами гонять, куда весь этот стейт и засунут с потрохами.

В словосочетании «микросервисная архитектура» главное слово «архитектура», а вот «микросервисная» само по себе не даёт ничего.
Там сказано, переводя на человеческий язык, примерно следующее: «вот есть простой фактор, который прекрасно бы объяснил все имеющиеся на данный момент факты, но он нам не нравится, поэтому будем говорить, что дело не в нём». Больше ничего про него нет. Точка.
> Здесь мы можем использовать p как ASCIIZ строку.

Только у вас нет ASCIIZ строк, они плохие, медленные и вообще, их выкинули. Упс.

> То же самое, если мпортируем strtol откуда-нибудь

strtol тоже нет, он с гадостью работал. val := StrToInt(p) — упс, а чего это у нас компилятор ругается? Копируем в string, жуём кактус, громко радуемся, что у нас быстрые строки, а не ужасный медленный ASCIIZ. 8))

> И этот length имеет сложность O(1).

Как и арифметика. Удивительно, не правда ли?
Вот именно поэтому ASCIIZ строки быстрые, а pascal-like — нет.
const char str[] = "1,2,3,4,5"; // внезапно строка
const char *p = str + 4; // внезапно тоже строка в ASCIIZ
char *endp = NULL;
long val = strtol(p, &endp, 10); // и endp тоже не менее внезапно строка
// check errors
...
if (endp - str >= sizeof(str) - 1) // strlen()? А шо ента и, главное, зачем?
  fprintf(stderr, "unexpected EOS\n");


Этот момент очень важен, когда нужно быстро разбирать какую-нибудь простыню околотекстовых данных (например, pdf). Да, возникает такая необходимость редко, да, это неудобно и требует крайней аккуратности (собственно, а чего вы хотели-то от условно-переносимого ассемблера?), но я не могу придумать ни одного другого варианта, который предоставлял бы такую же гибкость, скорость и относительное удобство в тех случаях, когда нам эта гибкость и скорость не нужна (я про семейство str*() функций).
1. За счёт того, что в ASCIIZ строках копирование не всегда нужно. Например, надо разбить строку по разделителю — мы можем просто менять разделитель на '\0' и дальше мы, во-первых, уже знаем длину (если нормально разбор пишем), во-вторых, так же можем использовать функции, которые принимают ASCIIZ, а не массив байт с длиной.
1.1. Чем utf-8 отличается? Длина считается так же (нам ж длина массива байт нужна, а не кол-во символов — во втором варианте всё вообще по-другому)

2. Либо мы выделяем место под {длина строки, строка} — выделение + копрование, либо под {длина строки, указатель на первый байт} — выделение + как реализовать c_str(), который обязан завершаться нулём? Зачастую это всё равно надо, но всё-таки не всегда в случае ASCIIZ. А размер считать не надо. Про подсчёт длины: строки не берутся божественным промыслом, длину мы почти всегда знаем, когда получаем строку откуда-нибудь (будь то возвращаемые значения из функций, данные протоколов или что угодно ещё). Исключений мало — либо по определению некритичные для производительности вещи (аргументы CL, environment), либо криво спроектированные библиотеки.
А зачем вы конкатенируете строки через strcat(), я стесняюсь спросить, если вам хоть в какой-то мере интересна скорость? И откуда вы получаете строку, не узнавая там же её длину? Я только два места знаю: аргументы командной строки и переменные окружения. Оба случая не про скорость. Зато ASCIIZ строки безумно быстрые, если уметь читать доки. И, в отличие от «строк с длиной» позволяют избегать лишних выделений памяти или копирования.
Ну тогда уж using _ = std::unused. И, к слову сказать, ещё вот какую-нибудь такую штуку было бы приятно иметь a-la designated inits:
auto [st_size: sz, st_mode: mode] = fstat_wrapper(fd);
if (S_ISREG(mode) && sz > 0xfffffffful)
    std::cerr << "Ooops.\n";
Хм… А до такого когда-нибудь доведут, интересно:
switch (foo()) {
case [true, result]:
    do_something(result);
    break;
case [false, _]:
    LOG(error) << "Shit happens!";
    break;
}


Кстати, а плейсхолдеры добавили? Желательно что-нибудь минималистичное вроде того же "_", а не «std::structured_bindings::paceholders» 8)) И алиасы нподобие хаскеллевского «pair@(first, second)»? Понятно, что это сахарок, но без него таки не так сладко будет.

PS: прошу прощения, в прошлом комментарии что-то с форматированием стряслось…
Хм… А до такого когда-нибудь доведут, интересно:
switch (foo()) {
case [true, result]:
do_something(result);
break;
case [false, _]:
LOG(error)
12 ...
24

Информация

В рейтинге
Не участвует
Откуда
Сербия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Системный инженер
Git
C++
C
Python
Linux
PostgreSQL
MySQL
MariaDB
Высоконагруженные системы