суббота, 22 марта 2025 г.

[soft.tools] В склерозник: изменение размера диска в .vhd образе в VirtualBox

Зафиксирую в склерозник простое решение проблемы, которая меня донимала в последнее время.

Суть в том, что компьютера от Apple с macOS у меня нет, но выяснилось, что если что-то не компилируется clang-ом на macOS, то с большой вероятностью оно не скомпилируется и clang-ом на FreeBSD. Поэтому на Windows-ноутбуке держу VirtualBox, в котором поднимаю свежий образ FreeBSD. Эти самые свежие образы беру прямо на официальном сайте FreeBSD (например, здесь они лежат для 14.2).

Но эти штатные образы FreeBSD очень маленькие -- размер диска в .vhd образе что-то в районе 4Gb, из которых свободных всего пара сотен мегабайт. Поэтому даже поставить через pkg тот же git не всегда получается: делаешь pkg install git и свободное пространство уходит в ноль.

Однако, внезапно (с) выяснилось, что это дело легко починить. Что в VirtualBox по Ctrl+D вызывается окно управления дисковыми образами, в котором можно увеличить размер диска до нужных размеров.

Ларчик, оказывается, просто открывался.

Правда, в моем случае оказалось, что размер диска в .vhd нужно изменять до первого запуска виртуалки с FreeBSD. Тогда новый размер FreeBSD подхватывает. Но если запустить FreeBSD первый раз на оригинальном .vhd-образе, а затем уже изменить размер диска, то при следующем запуске FreeBSD новый размер не увидит и продолжит думать, что в распоряжении есть все те же 4Gb. Ну или это мои кривые руки в очередной раз сделали что-то не так.


Вот что я пока так и не смог сделать, так это заставить FreeBSD использовать терминал отличный от 80x25. Если кто-то знает, то подскажите в комментариях, плз. В выхлопе dmesg несколько строк, которые относятся к видео:

При попытке изменить шрифт в консоли через vidfont выдается ошибка:

vidcontrol: PIO_VFONT: Operation not supported

Upd. Вот что мне немного помогло:

  • в настройках виртуальной машины в разделе System включена галочку для "Enable EFI (special OSes only)". После этого внутри FreeBSD заработал vidfont;
  • в /etc/rc.conf добавлена строка allscreens_flags="-f vgarom-8x16";
  • вот эта ссылка с полезной информацией и примерами: How to change vt console font size?

Правда, после включения галочки "Enable EFI" запущенная FreeBSD перестала нормально завершаться после выдачи ей через меню VirtualBox-а команды "Send the shutdown signal"... :(

пятница, 21 марта 2025 г.

[business] Пара интересных роликов с YouTube о провале первого бизнеса

За последнее время посмотрел на YouTube с десяток разных роликов о том, как люди с разной степенью неуспешности пытались начать свой собственный бизнес. ИМХО, изучение опыта успешных компаний -- это повторение "ошибки выжившего". Тогда как попытки разобраться в том, что пошло не так в случае прогоревшего бизнеса дают гораздо больше полезной информации.

Наиболее интересными оказались вот эти два ролика (прошу прощения, что даю ссылки на YouTube, с которым в РФ проблемы, но у нас в РБ с YouTube пока OK):

При просмотре первого видео я не мог отделаться от вопроса: "Как человек, который никогда не имел дела с миром фитнеса, решился открыть бизнес именно в этой области?"

Мне доводилось сталкиваться с точкой зрения, что опытный управленец может спокойно менять область деятельности: мол, сегодня ты управляешь сетью продуктовых магазинов, а завтра руководишь строительной организацией, а послезавтра рулишь компанией по разработке ПО. С тем обоснованием, что управление -- это прежде всего работа с людьми, а люди везде одинаковы (что так и есть).

Но на практике мне не доводилось видеть (пока?) таких универсалов. Чему не удивлен, т.к. люди-то везде одинаковые, но вот специфика предметной области накладывает свои граничные условия (пара старых заметок на эту тему: раз и два. Поэтому-то и вызывает недоумение то, как люди начинают свой первый(!) бизнес в области, о которой не имеют представления. Кстати говоря, герой второго ролика именно это незнание и обозначил в качестве одной из причин своей неудачи.

вторник, 18 марта 2025 г.

[life] Пара-тройка вредных советов о том, как создать дискомфорт вашим соседям по больничной палате

Продолжаю делиться опытом, почерпнутым в больнице. Есть несколько простых вещей, которые могут изрядно поднапрячь ваших соседей по палате и вы смело можете ими пользоваться, если вам абсолютно пофиг на окружающих.

Заранее приношу свои извинения за использование обсценной лексики, но здесь как в анекдоте про прачечную, никак не обойтись... :(

четверг, 6 марта 2025 г.

[life] Вещи, которые оказались полезными для меня в больнице

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

В моем случае потребовалось еще несколько вещей, которые оказались неочевидными, скажем так. Но которые сильно повысили комфортность пребывания в больничной палате.

Электрический удлинитель. Я побывал в трех разных палатах, и во всех трех случаях оказывался далеко от розетки. Однажды мне вообще пришлось более двух суток лежать не вставая с койки. А т.к. телефон приходилось заряжать не реже, чем раз в день, то без удлинителя все это было бы гораздо сложнее. С удлинителем же зарядное устройство оказывалось на расстоянии вытянутой руки, так что телефоном можно было продолжать пользоваться даже во время зарядки.

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

Микро-чайник на 1-2 чашки. Подобные штуки, конечно же, под официальным запретом. Но если не наглеть и не оставлять на виду, а пользоваться с оглядкой, то подобный чайник может защитить от простуды. Мне, например, требовалось пить много воды, но после нескольких дней употребления воды комнатной температуры начинало неприятно першить в горле и я всерьез опасался простудиться. Спасал как раз переход на питье предварительно подогретой воды. При этом я говорю именно о нормальном электрочайнике с автоматическим отключением. Простые кипятильники -- это слишком опасная штука, категорически не рекомендую.


Одна штука оказалась неудобной, хотя я на нее сильно рассчитывал: это планшет с большим экраном, но без SIM-карты. Интернет я раздавал на него по WiFi с телефона, но как раз качества такой раздачи для комфортного просмотра видео и не хватало :(

Получалось, что читать тексты вполне себе OK, а вот смотреть ролики или фильмы -- уже нет. В итоге использовал для всего телефон. Благо он у меня довольно большой, с экраном 6.8", так что ни с чтением, ни с просмотром, ни с прослушиванием музыки проблем не было.

А вот был бы планшет с собственной SIM-кой чтобы напрямую пользоваться мобильным Интернетом... Возможно, впечатления были бы другими.

Еще я однажды взял с собой старенький легкий ноутбук. Так, чисто в качестве печатной машинки. На него Интернет так же раздавал с WiFi с телефона. В принципе, это нормальная тема, если у вас есть силы и возможность сидеть или хотя бы полулежать. Ну и если вы не можете позволить себе быть отрезанным от коммуникаций ни на день -- вам нужно писать письма, просматривать документы и вообще вы деловой дальше некуда... ;)

Я до операции как раз для разбора почты ноутбук и использовал. Гораздо удобнее и телефона, и планшета. Но вот после операции почему-то не хотелось брать его в руки. Даже не знаю почему, хотя некоторые предположения есть -- как-то восстановление после хирургического вмешательства невольно заставляет смотреть на мир несколько иначе, и то, что раньше казалось важным и неотложным, затем таким уже может и не казаться :)

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

среда, 5 марта 2025 г.

[life-n-health] У меня был план: просто прожить год...

Возможно, старые читатели блога обратили внимание, что за прошедшие пару месяцев здесь было опубликовано совсем мало постов. Так же с моей стороны не было активности на RSDN, LOR, Habr, LinkedIn и т.д. Тому была серьезная причина и сейчас уже можно сказать несколько слов о том, что же случилось.

В первых числах января внезапно обнаружилась запущенная до острого состояния болезнь, о которой я и не знал. К счастью, до грани "между жизнью и смертью" было еще далеко, но все равно два месяца приема различных препаратов + месяц жизни с трубкой из живота + два заезда в больницу по неделе каждое + одна сравнительно небольшая хирургическая операция. Ну и минус восемь кг живого веса, что можно считать единственным светлым моментом ;)

Процесс восстановления продолжается, пока что сижу на больничном, полного выздоровления еще не произошло.

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

На это время практически выпал из всех проектов, как коммерческих для заказчиков, так и собственных открытых. Что-то эпизодически удавалось делать, но совсем мало, нерегулярно и урывками. Временами было физически не до того. Временами тупо не было желания: больше тридцати лет подряд работал работу, зачастую без выходных и проходных, и продолжать делать это в момент, когда встает вопрос "а есть ли у тебя вообще будущее и каким оно окажется?" у меня лично не получилось. Наверное, я не настоящий трудоголик.

В общем, если хочешь рассмешить Господа Бога, то расскажи ему о своих планах. Я вот в предновогоднем посте написал, что планирую просто прожить 2025-й год. И как раз с "просто" и "прожить" что-то пошло не так ;)

Своим же читателям хочу пожелать крепкого здоровья. Как же хорошо, когда оно есть. А когда с ним возникнут проблемы, то любовь и забота ваших близких помогут вам с этим справиться. Но чтобы не остаться без этой самой любви и заботы, сместите, пожалуйста, свой work-life баланс в сторону life, а не work. Мне для осознания этой банальности потребовалось много времени, не будьте таким бараном, как я.


Upd. Большое спасибо за теплые слова в комментариях. К сожалению, из-за багов Blogger-а у меня не получается поблагодарить вас в ответном комментарии, поэтому хотя бы вот так.

суббота, 1 марта 2025 г.

[life.cinema] Очередной кинообзор (2025/02)

Традиционный список отсмотренных за минувший месяц фильмов. Традиционно, в начале каждого из списков то, что понравилось больше, а в конце то, на что можно свое время и не тратить вовсе. Плюс одно собое мнение по фильму, появление которого в хорошем качестве я долго ждал...

Фильмы

Ночной вор (La nuit se traîne, 2024). Мне понравилось, посмотрел с удовольствием.

Ущелье (The Gorge, 2025). Неплохо. Очень даже неплохо. Но лично мне финал не понравился, нужно было бы делать что-то гораздо более мрачное и трагичное.

Рейс навылет (Fight or Flight, 2024). Очень бодренько, даже не ожидал, отличная черная комедия с обилием мордобоя и даже, местами, "кишки, кровь, распидорасило". Мне зашло, но тем, кто не любит насилия на экране, лучше воздержаться от просмотра.

Киллер в отставке (Old Guy, 2024). Мне показалось, что смотреть это кино имеет смысл фанатам Кристофа Вальца -- он великолепен. В остальном ничем не примечательное проходное кинцо.

Элиас (Elyas, 2024). Еще одна попытка создать своего "боевого пенсионера", на этот раз от французов. Полагаю, хотели сделать что-то среднее между "Заложницей" и "Джоном Уиком", но получилось так себе. ЭкшОна мне лично не хватило, а имеющийся не поражает воображение. Но больше всего офигеваешь от сюжета, когда выясняется, что все эти горы трупов образовались из-за нежелания 13-летней соплячки подчинятся воле своего отца.

Особо опасный пассажир (Flight Risk, 2025). Могло бы получиться неплохо, если бы Марка Уолберга не заставили изображать из себя сумасшедшего клоуна.

Сериалы

Полиция Токио (Tokyo Vice, первый и второй сезоны, 2022-2024). Купился на высокий рейтинг сериала на Кинопоиске. По факту же очень нудно и сильно затянуто, особенно первый сезон, который нужно тупо перетерпеть.

Престиж (первый сезон, 2024). В принципе, можно глянуть. Но мне не понравилось смешение жанров -- здесь есть и детектив, и комедия, и мелодрама, и что-то вроде сатиры. Если бы сериал был посвящен мошенниками или мелким воришкам или крупным коррупционерам, то такая солянка была бы OK. Но т.к. речь идет все-таки об убийствах, то мне не хватило серьезности и именно что детективной составляющей.

Пингвин (The Penguin, первый сезон, 2024). Сделано качественно, но есть пару моментов, которые не позволяют мне оценить этот сериал по достоинству. Во-первых, хоть там супергеройской темы и нет, но комиксовая природа сквозит из всех щелей, а комиксы меня не торкают. Во-вторых, в кино нет ни одного положительного персонажа, которому бы хотелось сопереживать. Ощущение от просмотра "Господь, жги их всех, никого не жаль", поэтому происходящее на экране оставляет не то, чтобы равнодушным, а вызывает вопрос "когда же вы, уроды, друг друга перебьете?"

Говно года

Конклав (Conclave, 2024). Отлично сделано почти все: работа оператора, места съемки, костюмы, подбор актеров, сама актерская игра ключевых персонажей... Вот смотришь и радуешься, что не разучились еще снимать кино. А потом наступает финал и остается только развести руками -- ложка дерьма превращает бочку меда в бочку дерьма.

четверг, 13 февраля 2025 г.

[prog.c++] Где брать информацию о современном C++?

Зафиксирую в склерознике несколько ссылок, которыми я сам регулярно пользуюсь и которые висят у меня в разного рода закладках. Чтобы самому проще было найти все это при необходимости.

All C++20 core language features with examples. Шпаргалка с примерами кода, иллюстрирующими нововведения в C++20 (только сам язык, без стандартной библиотеки).

Modern C++ Programming. Набор презентаций с рассказами о самых разных аспектах языках C++. Покрывает большой объем стандартов C++: от C++03 до C++26 на данный момент. Фундаментальная штука, такое ощущение, что если ознакомиться с материалом, то можно найти шпаргалки практически по всем аспектам языка.

Конечно же, cppreference. Но тут нужно знать что именно искать ;)

Working Draft Programming Languages — C++ Текущий драфт последнего C++ного стандарта. Там же можно найти и драфты конкретных стандартов, если вы знаете их идентификатор. Например, вот драфт C++20: N4861, а вот драфт C++23: N4950 (полагаю, все это описано здесь).

Но все описанное выше -- это сухой справочный материал. Если же хочется учиться тому, как многообразие возможностей C++ использовать не отстреливая ноги и не сходя с ума, то нужно читать блоги. Из того, что нравится лично мне, отмечу:

пятница, 7 февраля 2025 г.

[life] Ролики с YouTube про восхожения на Эверест и коммерческий альпинизм

В 2023-ем году узнал, что Валдис Пельш со своей командой заснял документальный фильм "Ген высоты 2", про восхождение на K2. А до этого от тех же авторов был первый "Ген высоты", про восхождение на Эверест. Естественно, про первый "Ген высоты" до того момента ничего не знал, поэтому засмотрел. А после него и еще несколько роликов на ту же самую тему.

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

В итоге к самому коммерческому альпинизму сложилось, по большей степени отрицательное отношение. Как по мне, то высокие горы нужно оставить спортсменам и профессиональным альпинистам, которые кладут жизнь на то, чтобы пройти большой путь и для которых Эверест или К2 оказывается венцом их долгой и опасной карьеры.

Но это моя личная точка зрения, никому ее не навязываю. А если кому-то еще окажется интересна эта тема (вплоть до возникновения и реализации мечты "покорить" Эверест), то вот набор роликов с YouTube, которые лично мне показались наиболее интересными.

Ген высоты

Сергей Ковалёв. Как взойти на Эверест

Владимир Котляр. Взойти на Эверест. Фильм о восхождении на крышу мира

Еще у Владимира Котляра появился плейлист "Экспедиция на Эверест 2024", сам я его пока не смотрел, но ссылку на всякий случай оставлю: тыц

Алла Мишина. Старт в альпинизме после 50: личный опыт от Килиманджаро до Эвереста

Анна Шурышева. Восхождение на Эверест от и до. Акклиматизация, подготовка, рекомендации

Ну и, конечно же, "Ген высоты 2", хоть он и не про Эверест

суббота, 1 февраля 2025 г.

[life.cinema] Очередной кинообзор (2025/01)

Традиционный отчет о просмотренных за минувший месяц фильмах. Традиционно в начале каждого из списков идет то, что понравилось больше, а в конце то, что совсем не понравилось. Сразу скажу, что из сериалов не понравилось ничего, а вот из фильмов первые два из списка посмотрел с большим удовольствием, но мои вкусы несколько специфичны.

Фильмы

Граф Монте-Кристо (Le Comte de Monte-Cristo, 2024). Монументально и красочно. С визуальной точки зрения безупречно. Размах и масштаб почти такой, какой и ждешь от экранизации. Но мне лично показалось, что если бы в сюжете фильма было меньше отклонений от первоисточника, то часть происходящего на экране выглядела бы намного драматичнее.

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

Один день в Стамбуле (2024). Типичное кино от "Квартета И". Но, далеко не такой шедевр, как "О чем говорят мужчины". Так что смотреть можно, а вот ждать "Вау-эффекта" не стоит.

Охота на воров 2: Пантера (Den of Thieves 2: Pantera, 2025). В отличии от первой части вторая оказалась на редкость занудной и затянутой.

Похищение искусства (Art Thief, 2023). Очень простенько и бюджетненько. Но не без некоторой интриги. Можно глянуть если больше вообще ничего нет.

Пассажиры (2024). Очень и очень слабо, уровень кружка художественной самодеятельности маленького уездного города. Рекомендую пройти мимо этого фильма.

Сериалы

Мир дикого запада (Westworld, первый сезон, 2016). Осилил первый сезон, смотреть последующие не захотелось. От первого сезона впечатления неоднозначные: с одной стороны прикольная идея и сюжет захватывает, с другой же типичная сериальная затянутость плюс прыжки по времени повествования то туда, то сюда, из-за которых далеко не сразу понимаешь к какой сюжетной линии относится конкретный фрагмент плюс временами хочется воскликнуть "не верю".

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

Черные голуби (Black Doves, первый сезон, 2024). Вот честно, лучше бы я это не смотрел. Во-первых, там гомосексуальная повестка в полный рост. Во-вторых, после развязки остается ощущение, что нам попытались втереть какую-то лютую дичь.

понедельник, 13 января 2025 г.

[prog.c++] Интересная постановка вопроса: если люди испытывают сложности с многопоточностью, то не забанить ли многопоточность совсем?

Этот вопрос всплыл на днях на r/cpp. Позволю себе процитировать значимую часть поста с reddit-а без перевода:

Hi all,

Had an interesting discussion today and would appreciate some advice.

Multithreaded code can be especially tricky for medium to junior level developers to write correctly. When a mistake is made, it can result in difficult to find bugs.

If the application you are working on needs to be very reliable (but isn't safety critical), what would you recommend for medium/low experience c++ teams?

Assume that the application will need to do 4 things at once and can't use state machines or coroutines. The various "threads" need to regularly exchange less than 10 KB of data a second.

Do you ban threads?

A few approaches come to mind.

#1 train the team to know the dangers and let them use threads with best practices. More experienced (and paranoid/diligent) developers carefully audit.

Any suggestions for books/resources for this team?

#2 and/or use a tool or technique to detect concurrency issues at compile time or during test? Thread sanitizer? cppcheck? ???

#3 ban threads and force concurrency to be implemented with multiple processes. 4 processes each with 1 thread. The processes will communicate with some form of IPC.

Т.е. смысл в том, что для разработчиков уровня middle/junior написание мультипоточного кода зачастую оказывается слишком сложным. И если приложение должно быть надежным, то возникает вопрос: как же быть? Может быть проще вообще запретить многопоточность в пользу многопроцессности? А если не запрещать, то что? Учить людей? Использовать какие-то инструменты для тестирования и анализа корректности кода?

Признаться, комментарии на reddit-е к этому посту я не читал, только просмотрел мельком и не увидел того, чего хотел 🙁

Поэтому выражу эмоции в этом блог-посте.

Хватить себя обманывать -- писать низкоуровневый многопоточный код сложно не только middle/junior-ам, но и senior-ам. Не устану повторять, что многопоточность на голых нитях, mutex-ах, condition_variable и, ниприведихоспади, atomic-ах -- это пот, боль и кровь.

Поэтому если у вас есть возможность не писать многопоточный код, то не пишите его.

Однако, такая рекомендация звучит очень похоже на банальность вида "хочешь быть здоровым -- будь им". Столь же бесполезная.

Тем не менее, в моей практике как-то так оказывается, что выбор "можем обойтись без многопоточности" и "не можем обойтись без многопоточности", как правило, бывает очевидным. В основном этот выбор определяется тем, нужно ли нам в одно и то же время делать N вещей одновременно или не нужно.

Если нужно, значит наш путь лежит в многопоточность. Если не нужно, то выдыхаем и не паримся (до поры до времени).

Итак, допустим, что нам нужно делать N вещей одновременно. Не суть важно, будет ли это одна и та же операция, но над разными порциями данных. Или же это будут совершенно разные операции. Важно то, что нам предстоит делать несколько дел одновременно, а значит без какой-то из форм распараллеливания не обойтись.

Ну а раз не обойтись, что вопрос уже не в том, запрещать многопоточность или нет. Вопрос в том, как уменьшить количество головной боли при использовании многопоточности. И ответ на него достаточно простой: использовать инструменты уровнем повыше, чем голые нити и примитивы синхронизации. Акторы, сопрограммы, CSP-шные каналы, task-и и вот это вот все. Плюс идеология shared nothing во главе угла (в том смысле, что чем меньше у вас разделяемых мутабельных данных, тем меньше у вас проблем).

Так что, имхо, проблема не столько в многопоточности, сколько во владении инструментарием. Если все, что вы знаете про многопоточность -- это голые нити и базовые примитивы синхронизации, то вы обречены на хождение по граблям и набивание шишек. Если ваш кругозор шире и у вас под руками есть подходящие библиотеки/фреймворки, то ваша жизнь станет гораздо проще и спокойнее.

Конечно же, ни акторы, ни CSP, ни task-и не избавляют нас от абсолютно всех проблем, и у этих подходов так же есть свои подводные камни. Тем не менее, многопоточность на акторах или CSP-шных каналах гораздо проще и безопаснее. Многократно проверено на людях.


Выбор между многопоточностью и многопроцессностью в современных условиях, имхо, должен лежать не плоскости простоты написания многопоточного или однопоточного кода. А, прежде всего, в плоскости дополнительных факторов. Например, таких как:

  • обеспечение надежности работы в условиях ненадежности используемых программных компонент. Например, мы вынуждены полагаться на стороннюю библиотеку, которая время от времени падает и роняет весь процесс, в котором ее используют. Библиотека не наша, мы не можем "довести ее до ума", можем только минимизировать причиняемый ею ущерб;
  • обеспечение надежности работы в условиях ненадежности внешнего оборудования и/или внешних сервисов. Например, к компьютеру подключено устройство, которое может зависнуть. И единственный способ вернуть его к жизни -- это убить процесс, который общался с устройством, переинициалировать устройство и начать работать с ним заново. Аналогично и со сторонними сервисами, с которыми мы можем общаться через HTTP(S) или еще какую-то форму IPC. Бывает, что такой сервис набирает от нас N запросов и перестает подавать признаки жизни до тех пор, пока все эти N запросов не будут принудительно прекращены;
  • возможность жесткого прерывания длительных операций. Например, какой-то математический расчет, который может занимать часы и который не так-то просто прервать "изнутри". Но вот если вынести этот расчет в отдельный процесс, то этот процесс легко "прибить" в случае необходимости;
  • простота и удобство реконфигурации "на лету". Иногда работающий в режиме 24/7 сервис нужно переконфигурировать без его останова, но из-за внутренней кухни и/или особенностей использованных в нем библиотек, сделать такую переконфигурацию затруднительно.

При этом необходимо учитывать, что многопроцессность привносит ряд своих особенностей и может стать источником своей головной боли. Например:

  • в Unix-ах нужно избегать возникновения зомби-процессов;
  • после принудительно убитого дочернего процесса могут оставаться различные следы жизнедеятельности (в виде .tmp-файлов, которые не были вовремя удалены), которые нужно подчищать;
  • если взаимодействие идет через shared-memory, то нужно как-то определить а доверяем ли мы текущему содержимому блока разделяемой памяти или же внезапно умерший дочерний процесс оставил там какой-то мусор...

В общем, переход от многопоточности к многопроцессности в ряде случаев имеет смысл. Более того, без такого перехода мы можем тупо не выполнить стоящих перед нами требований по надежности и отказоустойчивости.

Но аргументы "за" такой переход точно не должны быть из категории "однопоточное программирование проще многопоточного".


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

суббота, 4 января 2025 г.

[life.books] Кратко о книге "Ковчег 47 Либра"

Когда-то давно, году в 2005-ом или 2006-ом прочитал отличный научно-фантастический роман "Стая" Франка Шетцинга. Сильно тогда впечатлился. Ощущения были как будто в детстве читаешь произведения Жюля Верна, где фантастические события базируются на научной основе.

При этом после "Стаи" я, вроде бы, ничего из фантастики больше и не читал. Как-то так у меня получается, что чем старше становишься, тем меньше интересует что же такое выдумывают писатели-фантасты.

Однако, несколько месяцев назад почему-то захотелось перечитать "Стаю". Ни с того, ни с сего.

Нашел, перечитал. Впечатление, конечно же, не такое яркое, но все равно получил удовольствие.

Внезапно возникло желание прочесть еще что-нибудь из фантастики. Но что именно?

Проштудировал списки "лучшие фантастические произведения за 20xx год", выписал себе несколько названий, посмотрел аннотации, выбрал три или четыре штуки. Парочку даже осилил, но на начале третьей тупо сломался. Если первые две оказались обычным ширпотребом, коего в свое время на вокзалах в мягких обложках продавалось пучок на пятак, то третья произвела впечатление жуткого графоманского бреда. Забыл эту попытку как страшный сон, сейчас даже названий этих произведений не вспомню.

А тут как-то случайно через ролики на YouTube узнал о существовании Бориса Евгеньевича Штерна. И о том, что он пишет научную фантастику. Решил попробовать что-то из его произведений прочитать. Наугад попал в "Ковчег 47 Либра". И не смог остановиться.

Вот прям такое же ощущение, как в детстве, когда читаешь жюльверновские "20 тысяч лье под водой" или "Таинственный остров".

Мне отлично зашло. Настолько, что захотелось оставить зарубку в склерознике.

четверг, 2 января 2025 г.

[life.cinema] Очередной кинообзор (2024/12)

Традиционный список просмотренного за минувший месяц. Традиционно в начале каждого из списков идет то, что понравилось больше, а в конце то, что понравилось меньше или же вообще не понравилось.

Фильмы

Веном: Последний танец (Venom: The Last Dance, 2024). Третья часть мне понравилась больше, чем вторая. Хотя есть ощущение, что фильм полностью держится на юморе + еще немного на хорошей графике. Тем не менее, как аттракцион, который позволяет отвлечься от повседневных забот, фильм отличный.

Блуждающая тень (The Shadow Strays, 2024). Отличное кино для любителей жанра "кровавое мочилово". Хотя, имхо, до уровня первого "Рейда" чутка не дотянули, но очень старались.

День Шакала (The Day of the Jackal, 1973). Посмотрел его после одноименного сериала 2024-го года. Общего не так уж много, так что можно смотреть практически как самостоятельное произведение. Полагаю, что для своего времени было отличное кино, но сейчас это совсем уж ретро.

Задержанная (Detained, 2024). Средней паршивости кино. Производит впечатление телеспектакля, а не художественного фильма. Можно глянуть, если больше вообще уже нечего смотреть.

Безмолвное братство (The Order, 2024). Наглядный пример того, как потенциально интересную историю превратить в унылое говно.

Ручная кладь (Carry-On, 2024). Откровенная халтура. Причем и как по сюжету, так и по исполнению.

Сериалы

День шакала (The Day of the Jackal, первый сезон, 2024). К происходившему на экране есть несколько серьезных вопросов, но в целом понравился. Возможно, это лучший сериал из увиденных в 2024-ом году.

Чужак (The Outsider, 2020). О просмотре не жалею, но и не впечатлил. Сделано добротно. Но, имхо, можно было бы на пару серий и подсократить.

Горький 53 (первый сезон, 2024). Есть ощущение, что съемки этого сериала организовали чтобы пристроить большое количество известных еще 10-15 лет назад хороших актеров. Видеть их приятно, они стараются и мастерства у каждого на десятерых, но общее впечатление от сериала средненькое. Слишком много вопросов к сюжету, а развязка оставляет вопрос "И это все?" Может быть создатели планируют продолжение?

Боевой ангел (Machine, первый сезон, 2024). Все очень простенько, наивно, прямолинейно и предсказуемо. Но в этом есть свое очарование. Так что лично мне вполне зашел как раз потому, что можно не вдумываться в происходящее. Еще бы экшОна с мордобоем бы побольше, зашел бы еще лучше :)

Вне категории

Присяжный номер два (Juror #2, 2024). У меня просто нет цензурный слов: что бы так слить собственный фильм в унитаз Клинту Иствуду нужно было сильно постараться. Вот зачем нужно было историю главного героя раскрывать в самом начале? Это же убило всю интригу. Мне совершенно непонятно. Расскажи судьбу Джастина Кемпа в финале картины и получилось бы совсем другое кино, гораздо более интересное и с неожиданным поворотом в развязке.