LINUX.ORG.RU

Сообщения upcFrost

 

Автомобили и электроника

Форум — Talks

Суп лор. Дальше будет жж и многобукв, если лень - пропускайте следующий абзац

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

Короче в чем суть - на новой машине сцатая тонна электроники. На старой управление было плюс-минус механическое (вернее аналоговое, без цифры), т.е. нажимая на тормоз ты ногой чувствуешь как колодка трёт диск. На новой - вместо тормоза прям какой-то рычаг с двумя положениями вкл/выкл, при том ещё и тупящий полсекунды прежде чем переключить режим. Аналогично короб - на старом стоит кошерный гидроавтомат, и сколько бы говна не лили на AL4, по сравнению с новым «умным» роботом это прям бомбезный короб был, разве что пары передач ему не хватало. Руль вообще пластиковая игрушка, которая типа пытается имитировать сопротивление дороги (спойлер: не получается).

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

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

 ,

upcFrost
()

Apple изобрёл комп в форм-факторе клавиатуры

Форум — Talks

Сабж https://www.patentlyapple.com/patently-apple/2022/02/apple-invents-a-new-mac-computer-device-that-takes-on-the-form-factor-of-their-magic-keyboard-.html

Скоро перейдут с грязных ссд на эко-кассеты и заживём

 ,

upcFrost
()

Маленькие радости легаси

Форум — Talks

Суп лор, вопрос-опрос к местным код-мартышкам: когда работаете над легаси проектом, за что вам чаще всего хочется убить прежнего разраба? Безотносительно того насколько вы сами на коне и в белом.

Мне лично за любовь к разбивке всего и вся на «микросервисы» без особого понимания зачем и как, в итоге вместо 4 сервисов натурально 50, транзакции на базе юзать нереально, дикая нагрузка просто из-за наличия этих самых 50 сервисов и прочие радости жизни

жж -20 пошёл дальше копать мёд лопатой

 , ,

upcFrost
()

Ищу рисовалку для интерактивной схемы оборудования

Форум — Admin

Ввиду того что список хостов всем всегда обновлять лень, ну и потому что последний аудит меня слегка подвазелинил за стухшую схему сети, ищу сабж

Что хочется: чтоб было можно нарисовать схему сети/серверного хозяйства (мышью, uml, хоть питоном), задать всем нодам как до них подключиться (ssh/rdp/telnet), после чего чтоб при нажатию на ноду выпадал список с этими самыми вариантами подключения, и при выборе скажем ssh открывался терминал с собственно подключением

Плюс-минус похожим когда-то в 2012 была MaSSHandra, но оно давно стухло, а их вебверсия ещё хуже десктопной

Интерфейс пофиг (веб/десктоп), ценник - в целом платные тоже пойдут, только желательно one-time fee

Основной упор не на сеть даже, а на сервера, своего сетевого оборудования у нас нема. Короче такой интерактивный инвентарь в виде схемы, с зонами и прочим

Подскажите кто знает что-то такое

 

upcFrost
()

Качество интернетов в странах уехавших тракторов

Форум — Talks

Минутка тракторного жж на ЛОРе. Господа и господамы трактористы, как в вашем трактор-ленде обстоят дела с интернетом?

Вопрос к тому что в своей стране «с самыми высокими зарплатами» я уже задрался искать как бы домой сеть провести. Единственный не-мобильный интернет какой предлагают - ADSL в 25 мбит за 100 франков в месяц. 4 франка за мбит, здравствуй «стрим» и 2002 год. И судя по отзывам здесь и в соседней Франции это основной режим подключения. Пишу с кофеварки и тихо фалломорфирую

Справедливости ради - в женеве есть два типа подключения, adsl и оптика в 10 гбит. Последняя как витуха в мск в 2001 году - вроде везде есть, а вроде кого не спроси ни у кого нету

 , , , ,

upcFrost
()

Яблоко опять яблоко

Форум — Talks

https://edwardsnowden.substack.com/p/all-seeing-i

Уже обсудили?

Tldr: яббел опять шпионит и сливает штатовским чекистам

 , ,

upcFrost
()

Пре-релиз aiomongowire, комментарии/замечания/предложения

Форум — Development

Пост не совсем про релиз, а скорее request for comments.

Выложил на тестовый pypi первую сборку aiomongowire, реализации mongo wire protocol на asyncio.Protocol. На данный момент умеет все перечисленные в мане опкоды монги кроме command (deprecated уже весьма давно), две разных либы bson (bson и pymongo) плюс интерфейс если хочется свою либу, умеет сжатие.

Ссылки:

Отличия от мотора:

  • это реализация протокола, а не высокоуровневый клиент. Он не умеет find и транзакции, он умеет op_query и op_msg. В будущем хочу написать более высокоуровневый клиент поверх этого.
  • мотор использует run_in_executor для перевода синхронных вызовов в асинхронные. Aiomongowire использует asyncio.Protocol. Имхо так чище.
  • мотор неплох, но комбайн, как и pymongo. Плюс мотор тянет за собой pymongo, таким образом вместо одной небольшой либы сразу приезжает целый вагон.

По поводу кода - я знаю что он пахнет джавой, мне норм.

Замечания предложения welcome

 , ,

upcFrost
()

Монга, микросервисы, разбивка данных

Форум — Development

Суп лор, мучаюсь в попытках найти золотую середину в монге и микросервисах. Суть такая - где провести границу между nested записью/одним микросервисом и dbref/несколькими сервисами. Через слеш поскольку вещи в каком-то смысле связанные.

Warning: ниже много букв.

Упрощённый пример: веб-альбом. Владелец-юзер, директории, картинки, отзывы на них, метаданные с камеры на них. Картинка без директории не существует, хоть в корне но всё-таки. Мета и отзывы без картинок тоже в воздухе не висят.

Для простоты допустим что если все запихать в одну запись, то её размер заведомо сильно меньше 16мб (лимит монги), и даже меньше 4мб (лимит grpc). Также допустим что отзывы не связаны с другими юзерами.

С одной стороны все элементы связаны one-to-many в одно дерево, так что спокойно ложатся в одну nested запись и один сервис. Но тогда начинается геморрой с projection и тонной ручек на каждый чих, иначе для жирного юзера фронт будет получать мегабайты меты чтоб всего-то получить список директорий. Можно graphql, но тогда геморрой обратный - либо писать dataloader, либо тонна запросов в базу чтоб выдрать мету для N картинок. Ну и это все может очень вкусно лечь если сервисов таки больше одного, потому что им всем придется четко знать какие им нужны поля.

С другой стороны мешать юзера с картинками мягко говоря странно, это вообще разные сущности, и логичнее выглядит dbref и/или два сервиса. Но тогда логично вытащить все тоже отдельно в 5 плоских коллекции/сервисов, что начинает выглядеть все более странно с каждым шагом. Плюс это создаёт много радости когда пытаешься навесить на это чудо транзакции если сервисы разные. А отсутствие в монге нормального join только добавляет счастья. Да и вообще для монги это будет антипаттерн.

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

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

Если смотреть по количеству записей - картина аналогичная. Юзеров разумеется меньше всех, а вот сколько записей в мете и в отзывах сказать сложно, от тишины но срача в комментах. Да и директории бывают почти пустые, а бывают овер 9000 записей.

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

p.s. я не делаю веб-альбом, если что, но выглядит все довольно похоже

 , , ,

upcFrost
()

Объясните про twisted

Форум — Development

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

Я конечно тупой, но как нормально (без стенда) тестить и дебажить эту шарманку до меня так и не дошло, равно как и не дошёл life cycle протокола.

Это только мои задвиги и я просто не раскурил священный Deferred, или кому-то еще тоже так кажется?

 , ,

upcFrost
()

Минимальная убунта

Форум — Talks

Поржал сейчас с инсталлера убунты (графического).

Minimal installation в 2021 году это «web browser and minimal utils». Жирноват стал пингвин.

 ,

upcFrost
()

Найти где течет память в пистоне

Форум — Development

Сабж. Кто-нибудь знает нормальный метод это сделать?

Есть скрипт, у которого ну прям очень явно течет память. При этом gc debug рапортует что усе собирается, а tracemalloc вообще считает что скрипт больше 10 метров не ест.

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

Пока думаю попробовать снять дамп через haystack посмотреть чем эта зараза сожрала полтора гига

upd: залез gdb, говорит 20 метров. система говорит 400. wtf?

 ,

upcFrost
()

Питонисты

Форум — Talks

Немного жж.

Ищем питониста, включил в тест одну из своих любимых задач. Задача на самую базовую синхронизацию тредов (либо тасков если хочется asyncio), и в N=2 варианте решается в 5 строк. Даже в 2 строки, в зависимости от интерпретатора и условия. Тупо пара локов.

Из нескольких сотен кандидатов её кое-как в базовом варианте решил один. Вариант в N>2 потоков не решил вообще никто. Большинство людей походу даже не дошли что там блин надо что-то синхронизировать.

Wtf? Неужели никто из питоноедов ни разу потоки не юзал? Типа фласк/джанга/GIL все стерпят, а что там внутри пофиг?

P.s. вакансия висит в жобс, но нужен паспорт EU/EFTA

 , , ,

upcFrost
()

Dependency management для нескольких питонопроектов

Форум — Development

В мавене есть такая весч как dependencyManagement, где фиксируются версии либ, но при этом нужно ли их ставить каждый child-проект решает сам.

Проблема, которую оно решает: есть 40 проектов, нужно в 30 обновить одну либу, а в 20 - другую, множества пересекаются, тянуть все либы в каждый проект плохо. Каждый проект говорит что ему надо без указания версий, а версии идут из родительского depMgmt.

Кто-нибудь знает что-то похожее в питоне? Poetry вроде так не умеет, чистый pip тоже

 ,

upcFrost
()

Python backend, mid-senior, Женева

Форум — Job

Внимание: нужен паспорт ЕС/EFTA, удаленки нет

Небольшая компания в Женеве ищет питон-бэкендера, уровень мидл-сеньор, направление проекта - ЭЦП.

Что нужно:

  • Английский язык (уровень - говорить 8 часов свободно на любые темы)
  • Питон 3.7+ с asyncio, датаклассами, вот этим всем
  • Умение решать задачи достаточно быстро и без говнокода даже при не слишком четкой формулировке
  • Умение читать чужой код
  • Хотя бы базовые знания по инфраструктуре (армии админов и взвода девопсов, компания небольшая):
    • Контейнеры
    • Хотя бы базовая настройка rs монги
  • (Желательно) опыт работы с GraphQL и gRPC
  • (Желательно) любовь к юнитам, профайлеру, кодстайлу, ООП, периодическое желание натянуть java-сову на питон-глобус
  • (Желательно) нелюбовь к getattribute и адептам Dict[str, Any]
  • (Плюс в карму) хотя бы базовое понимание работы ip-телефонии, в идеале опыт настройки, но просто знание чем sip от rtp отличается и умение снимать tcpdump тоже сойдет (эта часть не про эцп, другой проект)

Что есть:

  • Офис с видом на поля и горы Швейцарии
  • Движ и возможность влиять на ход проекта
  • Кофе

Зарплата по собеседованию, ориентир - средняя по рынку 80-120к франков в год.

Откликнуться - либо скастовать меня, либо в телегу с этим же логином, либо в гмейл с ним же. Либо сразу на https://www.alohi.com, раздел “Careers”

p.s. я знаю что это не linux.org.eu и не linkedin, на последнем вакансия тоже висит

 , ,

upcFrost
()

Производительность Poppler

Форум — Development

Пытаюсь сконвертить страницу из pdf в png, в частности через pdftoppm (еще vips, чистый gs без magick и пачку других).

Есть рабочий яббел-бук прошка, на котором крутится ide, браузер и куча всякого барахла. На нем pdftoppm из homebrew отрабатывает за 0.17 сек.

Есть сервер с зионом, памяти аналогично ноуту, но на нем ничего не крутится. На нем тот же pdftoppm, но из репы (да и самосбором тоже), отрабатывает за 0.70 сек, то есть в 4 раза медленнее.

кто-нибудь знает в чем может быть подвох? сомневаюсь что огрызок на крышке ноута делает магию. poppler пересобирал вручную с нужным march, получил 0.6, но ниже никак. Может отсутствует какая чудесная либа, которая делает его сильно бодрее, или на рендер влияет отсутствие запущенных иксов/вяленого, или еще что-то аналогичное?

 ,

upcFrost
()

Правильная цепочка запросов в базу для Android

Форум — Development

сабж. Пытаюсь понять как правильно сделать цепочку запросов в базу (все в один запрос не предлагать, они и так здоровые). Собственно сейчас на ум приходят два варианта. Либо через LiveData и Transformations типа

Transformations.switchMap(data1) { list1 ->
  Transformation.switchMap(data2) { list2 ->...

и так еще 4 раза для нескольких параметров, либо сразу отдать MutableLiveData наружу и запустить корутину, пост-фактум закинув в нее результат.

Изменяемых полей, которые нужно мониторить прям в этой activity, штуки 2-3, это здоровый экран с результатом расчета и на нем менять ничего не выйдет.

Подскажите кто знает, чую корутина более корректна в этом случае

 , ,

upcFrost
()

Протобуф и кастомные темплейты

Форум — Development

сабж. Кто-нибудь знает как с минимальной болью чуть видоизменить стандартные темплейты protoc и особенно grpcio-tools для питона? хочется добавить пару небольших оберток над вызовом типа метрик для prometheus и логирования. Вручную их добавлять на каждый вызов тяжко, сервисов много, запросов еще больше, половина кода будет в этих самых обертках. Ну и type hints добавить бы

на шваггере делалось с умеренной болью через handlebars, но здесь на вид такого механизма нема

 ,

upcFrost
()

У всех инет протупил или только у меня

Форум — Talks

На вид восточное побережье штатов и север Германии сложились. Кто-нибудь ещё заметил?

 

upcFrost
()

DNS для мейл-сервера с failover

Форум — Admin

привет,

есть мейл-сервер, хочу сделать для него failover. Не мгновенный, пара минут простоя ок, главное чтоб автоматический. Встал вопрос на счет DNS-записей.

Подскажите, логично ли выглядит такая схема (VIP перекидывается на активную ноду по чеку tcp 25 open, mail - ip основной ноды, fail - ip failover-ноды):

MX:
example.com → mail.example.com (pref 10)
example.com → mail-primary.example.com (pref 20)
example.com → mail-backup.example.com (pref 30)

A:
mail.example.com → VIP
mail-primary.example.com → MAIL
mail-backup.example.com → FAIL

PTR:
VIP → mail.example.com
MAIL → mail-primary.example.com
FAIL → mail-backup.example.com

TXT/SPF - ip:VIP ip:MAIL ip:FAIL -all

CallerID - <r>VIP</r> <r>MAIL</r> <r>FAIL</r>

Небольшое уточнение - VIP работает только на вход. На выход нода использует свой собственный внешний IP

 ,

upcFrost
()

Пошто потерли тему с конституцией на гитхабе

Форум — Linux-org-ru

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

 ,

upcFrost
()

RSS подписка на новые темы