← All posts tagged ?

fillest
Linux ? ipc Дано: процесс S; множество инстансов процесса W, выполняющих множество рахных тасков; sqlite-база для некоторого специфичного общения между S и W. Любой из W может грязно крашнуться в любой момент (и у S могут быть произвольные даунтаймы). W пишет некоторые данные в бд, S каждые n времени читает из бд.
Нужно: каждый процесс W должен уникально идентифицировать себя таким образом, чтобы S мог определить, не крашнулся ли конкретный W. При этом W не должны зависить от S.
Текущая идея: W создаёт файл с уникальным именем, flock'ает его (такой лок автоматически освобождается ведром при гибели процесса), пишет в бд имя файла, при нормальном завершении освобождает и удаляет файл. S во время очередной итерации при подозрении на краш W пробует flock'нуть тот же файл и таким образом развеивает/подтвержает своё подозрение.
Это будет работать, но кажется немного оверкиллом, может есть попроще способ? Что-нибудь вроде возможности записать строчку куда-нибудь в proc чтобы не создавать ничего руками?
fillest
Python ? gunicorn вебобляди хуйлоад нагрузил тут, значит, одну опердень, прикрутил zero downtime деплой. И тут, думаю, а дай-ка как раз заодно проверю, работает ли заявленная плавная перезагрузка воркеров у аппликейшен-сервака под нагрузкой. Написано ведь, что плавная по HUP, но мы же знаем как люди пишут софт, верно? Кочегарю тест, делаю sudo killall -v --signal HUP -r 'gunicorn: master.*huemoe', и что же я вижу? А вижу я мешок лиловых хуёв — d.maxfile.ro Как видно, секунд на 20 (двадцать) gunicorn перестаёт отвечать. К этому времени проц уже был плотно загружен, но чтоб на 20 секунд задуматься — никак не похоже это на то, что он сначала мол прогружает новые воркеры, а потом гасит старые.

В связи с этим вопрос, тестил ли кто-нибудь uWSGI в этом плане?
fillest
? здоровье гаджеты спорт хочу удобный точный пульсометр (точный -> электрадатчик, оптика — фигня, как я понял), есть что-нибудь проверенное и не за стопицот денег? Нашёл пока только Polar FT4 (популярное) и Beurer PM 26 (вроде лучше и дешевле, но маловато отзывов).
Теоретически, можно скрафтить из standalone-датчика и аппликации на мобилке и вынимать её из кармана, но как-то хз
fillest
? девопс нужно с минимальными усилиями поднять (и забыть) на прыщесерваке загрузку (и управление) файлов в определённую папку для чайников (менеджеры, етц). Уже изобрели чего-ниибудь, или, по-прежнему, фтп, голубиная почта, перфокарты, "девушка, соедините"? Хочется банального undo, например, и чтоб не тратить неделю на свитерение. Ну ладно, вместо undo бэкапы, ок, но хоть нормальную поддержку tls бы.
fillest
кино ? уже полчаса пытаюсь найти The Exorcist в оригинальной theatrical версии (судя по всему, режиссёрская зафейлена), нет ли у кого случайно под рукой?
fillest
кино ? а Citizen Kane годнота или хайпнутая унылота вроде Bicycle Thieves, который щас невозможно смотреть?

Олсо, починили жуйк-то?
fillest
? mem Линукс девопс на одном хосте крутится кучка разных задач со слабоконтролируемым потребелением памяти. Там же есть редис, используемый таким образом, что очень нежелательна ситуации, когда память кончилась. Причём он сам хавает очень мало.
Можно ли сделать так, чтобы, допустим, при любом выделении им памяти ядро обязательно давало память ему вплоть до ущерба остальным процессам? oom_score_adj это оно или киллер действует асинхронно уже после отказа выделения? Свапа нет, vm.overcommit_memory = 1 (настраиваемо, ещё колеблюсь на эту тему).
Если это решается только какими-нибудь лимитами cgroups, не ебанусь ли я их настраивать? Набор сервисов периодически меняется, и тюнить руками лимиты каждый раз это не вариант, тем более что потребление памяти довольно произвольное, и постоянно мерять и снова тюнить это тоже биг ноу
fillest
? https TLS X.509 правильно ли я понимаю, что плата за сертификаты это плата за воздух, т.к. authority не имеет существенных затрат, деньги берут и платят просто по инерции, и Let's Encrypt закончит эту баблоблядскую нелепицу?
fillest
? здоровье спорт я понял, что единственный выход — удавиться^w купить беговую дорожку. Но лишнего места для её хранения никак нету, кроме, разве что, под кроватью. Жуицк, знаешь ли ты что-нибудь ценное о складных беговых дорожках? Может быть, годный диапазон цен или фирма, у которой она не развалится через месяцок, или какие-нибудь проблемы?
fillest
? красноглазие надоело читать man в ссаной чорной сосноли через less, как древний троглодит. Не сделали ли нормальный способ уже? Надо ли полдня устанавливать и настраивать говно и палки, а потом опять баттхёртить от кривоты?
man2html это оно? Его ведь надо перезапускать при каждой обнове? Это же неудобно и хрупко.
Всякие linux.die.net/man/ не годятся, т.к. разные версии.
fillest
? memory concurrency байтоебля задолбался гуглить
1. Где пруф (если он есть — все пишут, но без пруфа), что на x86 чтение/запись в int по выровненному адресу атомарны?
2. Возвращает ли mmap адрес всегда выровненный как минимум по int?
Есть задумка использовать int, расположенный в начале замапленного участка (shm_open+ftruncate+mmap), для простой дешёвой синхронизации между процессами.
fillest
? UI Задаченька на интерфейс.

Есть RSS-ридер, он периодически ходит по куче урлов с чёрным мешком и собирает упоительные истории, показывает новые посты лентой.
Много постов со временем обновляют (это автоматически обнаруживается). Например, это исправление (иногда значительные) заголовков, ошибок, дописывание апдейтов-постскриптумов. Это может происходить по нескольку раз. Задержка каждого обновления — от секунд до дней.

Как преподносить эти изменения юзеру?

Сейчас изменённый пост показывается как отдельный новый — это было наименее трудозатратно сделать. Но это убого — например, на HN очень часто подправляют заголовки, и ощутимая доля ленты замусорена такими полудублями.
На всякий случай, — надо понимать, что юзер открывает ридер "асинхронно", в момент открытия в непрочитанном часть обновлений может быть уже сделана, а часть — ещё нет. Т.е. нельзя просто обновлять сами посты в базе — тогда юзер не узнает о последующих их правках после первого прочтения.
fillest
? name tfw второй день не можешь начать колбасить кот, потому что не придумывается название проекта (потом исправлять будет лениво).
Придумайте, а? Это тудушник-планировщик-напоминалка-(возможно)таймтрекер — грубо говоря, из области гугель-календаря. Прошлый был как workflowy, но я понял, что это не особо работает, и надо более календаристый функционал и интерфейс.
Короткий набор букв на англ. И да, "todoshnik" уже занято какой-то перлофигнёй. Не то что бы это останавливало настоящего альфа-брограммера, но это так себе название, всё равно.
fillest
? алкоголь Виски Жуй, посоветуй мягкий вкусный вискарь. Например, Jameson мягкий, но вкус простой и надоедает. Chivas Regal 12 лучше, но очень уж спиртяжный.
Хлебаю мелко ("sipping"), иногда со льдом.
fillest
? security admin devops updating А есть какие best practices процессов обновления пакетов на серваках?

Например, об обновлениях надо узнавать. Это уведомления на мыло. Неужели велосипедить скрипт в крон, парсящий apt-get upgrade -s?
Обновление некоторых пакетов может потребовать рестарт чего-угодно, от всякой мелочи до всей системы. Например, какой-нибудь софт юзает либу libsdelatzaebis, а она юзает libkorovniki, для последней выходит секьюрити апдейт, закрывающий возможность выполнить удалённо rm -rf, послав пакет с цитатой из библии, соотв после апдейта софт надо рестартнуть. Как это определять автоматически?
Ах да, некоторый софт ставится не из пакетов.

Бонус-челленж-уровень. Т.к. между публичным обнаружением уязвимости и выкладыванием пакета с поправленным софтом в стабильный репозиторий дистрибутива проходит понятная неминуемая задержка, иногда может хотеться не ждать. Достаточно ли распространена практика, допустим, сразу постить в CVE (или куда?), откуда это потом можно как-то автоматически выдернуть на мыло? Или, как обычно, бардак, и надо выгребать руками из разных зассанных мейлистов и тикет-трекеров?

fillest
Linux ? disk io nolife Что почитать, чтобы в самых подробностях понимать, что происходит с данными от вызова write(fd, buf, len) до окончательного физического "размещения" данных внутри харда?
Есть ли что-нибудь хоть отдалённо плавно усваиваемое и информативное по аналогии с этим (пусть и не в одном месте), или придётся, укусив псилоцибина и запив бензином, читать, интерпретировать и трейсить в голове листинги ведра, дров и прошивок?

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