Обновить
70
Антон Кортунов@ToSHiC

Программист

25
Подписчики
Отправить сообщение
Есть ещё такой момент: когда вы в России произносите «отечественный», то синоним обычно — что-то не очень качественное и удобное. ВАЗ 2107 в 2005 году, например.

Когда американцы говорят про локальное производство (domestic, US made) — то синонимом будет являться «вот это Вещь, а не китайская фигня», и очень даже гордятся этим фактом. Этот момент я отчётливо осознал, когда покупал в магазине катушку для спиннинга во время одной из поездок в США. Просто посмотрите, как этим запуском гордятся: название Launch America, American astronauts on American rockets from American soil.
Было бы очень здорово, если бы мы, россияне, научились так гордиться, ну и чтобы было чем.
Да, надо срочно переходить на CMYK, там и чёрный есть, и даже жёлтый!
Собственно, в комментарии habr.com/ru/post/456288/#comment_20290512 поднимались проблемы, на которые не было получено ответа.

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

Простите, но ваши фразы типа
Заботиться об обновлениях — задача потребителя вашего кода.
мне говорят о том, что вы коммон библиотеки или клиенты для своего сервиса, которыми пользуются потребители, не делали. Им, потребителям, надо, чтобы работало, а не тестировать ваши изменения по 10 раз на дню.

А фраза
Вы можете ему помочь, если не будете ломать апи, а слом апи сопровождать codemod-ом,
говорит о том, что вы совершенно не поняли мои слова про ABI.

Если бы мне предложили работать с какой либо библиотекой в концепции «автор может делать много изменений, поддерживает только транк/мастер, но на ваш (то есть мой) сервис ему, в целом, наплевать» — то я бы поостерёгся ею пользоваться и пошёл искать альтернативы.

Почему же в реальной жизни все JS-еры фиксируют версии? Почему не собирают всё на самой последней версии? Почему существуют LTS версии библиотек и даже операционных систем? Ваша концепция (vintage — это же вы?) не выглядит какой-то уникальной, почему никто не живёт так, если она столь хороша?
Например, потому что вам надо задеплоить map-reduce на 15к машин? Или потому что вам надо задеплоить какую-нибудь систему машинного обучения на тысячу машин, и «надувать» её по ночам, когда пользовательская нагрузка спадает?

Чем больше машин под управлением одного шедулера, тем более эффективно он может распределить ресурсы. Даже если делать несколько кластеров, то каждый из них должен быть на порядок больше, чем самые жирные системы, которые в нём живут, иначе будут либо пятнашки по перекидыванию машин между кластерами, либо пятнашки по перекидыванию проектов между кластерами. Чтобы вот всего этого избежать и делают кластера размером в availability zone. Почитать про это можете в статье про tupperware: engineering.fb.com/data-center-engineering/tupperware.

Я бы ещё сказал, что если у вас под кубернетесом есть IaaS, который вы можете легко сдувать-надувать, то строить один большой кластер действительно нет смысла. Но в случае с Google/FB borg/tupperware крутятся на голом железе.
То есть проблема в фиксации версий, а не полирепе.

А какие предложения есть? Как вообще искать все проекты, которые используют твою библиотеку, особенно если разработка идёт в фиче-бранчах?

А тут соответственно проблема в попытке полагаться на бинарную совместимость, а не полирепе.

А на какую зависимость надо полагаться? Если по исходникам, то как фиксировать?

Не надо поддерживать устаревший код. Тогда переползать будут гораздо быстрее.

Как синхронизировать разработку, если твою библиотеку использует 50 проектов?

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

Кубер — это, безусловно, хорошо, если у тебя кластер на 10, 10 или даже 1000 машин. Но запустится ли он на 100к машинах? Как будет работать оркестрация меж-локационнных выкладок? Как шардировать всё это хозяйство, и иметь при этом один логический кластер?

Собственно, даже в доке кубера пишут:
At v1.18, Kubernetes supports clusters with up to 5000 nodes. More specifically, we support configurations that meet all of the following criteria:

No more than 5000 nodes
No more than 150000 total pods
No more than 300000 total containers
No more than 100 pods per node

5к нод — это совсем несерьёзно даже для Яндекса/Мейла, не говоря уж про Гугл.
Это очень спорное утверждение. Сразу хочу сказать, что я не фанат монорепы.

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

Я довольно долго использовал парадигму дебиановских пакетов и бинарную зависимость. Что я могу сказать: бинарная зависимость в C++ — это боль. Отдельно доставляют циклические зависимости, если у программ есть плагины. Ещё раз отдельно, но уже по-другому, доставляют переезды на новые версии ОС, когда тебе надо пересобрать ВСЁ, даже какие-то старые коммон-библиотеки, которые уже года 3 как заморожены.

Я даже дружил библиотеки, собранные из монорепы, с бинарными сборками в дебиановские пакеты, и отлов багов с клэшингом символов — это прям особое «удовольствие».

Стоит отметить, что везде это был C/C++ код, со всеми его проблемами динамической или статической линковки. Но общие моменты, что надо уметь делать минорные релизы, которые не ломают API+ABI, думаю, будут применимы ко всем языкам. Это тяжело, и это форсит накапливать подобные несовместимые изменения в большие пачки и делать большие мажорные релизы, которые требуют много работы для внедрения, переписывания кода у использующих данный код проектов и т.д. А пока все медленно переползают — надо поддерживать 2, а то и 3 мажорных релиза. И да, сложность поиска кода действительно есть, найти, из чего именно был собран какой либо бинарник/пакет далеко не так тривиально, как может показаться. Есть ещё «вирусные» изменения, типа включения поддержки нового стандарта C++ — это тянет за собой включение сборки с этим же стандартом и у всех зависимых компонентов. На сколько я понимаю, у Java есть примерно такая же фигня с целевой версией JVM, и примерно такая же проблема у JS кода, подобным «вирусным» изменением может быть использование более новой версии питона при разработке какой либо библиотеки.

В противоположность этому монорепа требует вносить изменения плавно и итеративно, можно даже вносить изменения, ломающие API, но своим же коммитов исправлять все использования из чужого кода, главное — сохранять совместимость на уровне сетевого протокола и формата данных. Да, это требует наличия тестов у проектов. Да, это несколько усложняет разработку в бранчах (поэтому обычно монорепа соседствует с trunk-based разработкой), но позволяет делать такие изменения у популярных, с точки зрения количества использующих их проектов, библиотек. Важно отметить, что монорепа — это не столько большой SVN/Mercurial/git/whatever, сколько система сборки, система контроля зависимостей, тестирование, система CI/CD и т.д.
Полезность, ИМХО, очень легко оценить — надо запилить тред на профильном форуме, типа rcdesign.ru, и если народ будет повторять технические решения в своих моделях — значит, изобретение полезное.
Сколько тепла в вашем ДЦ можно со стойки снять? Какой резон ставить мощные камни, если 40 (ну ок, пусть даже 30) тушек в стойке будут в 2 раза превышать бюджет по питанию и охлаждению, если нормально их прогрузить?
Кажется, редактировать можно только рабочий пропуск. Когда пропуска только вводили, я звонил на горячую линию — там сказали, что если ошибся, то значит потерял свою попытку.
Я, по большей части, согласен с вашими утверждениями. Но, ИМХО, чтобы всё эффективно работало должно быть доверие как граждан к государству, так и государства к гражданам. У нас же власти (во всяком случае в Москве) это доверие планомерно уничтожает. Везде вокруг только штрафы-штрафы-штрафы, никакой поддержки. Люди нарушают и радуются, что смогли придумать, как не получить штраф. Кажется, даже сотрудники МВД уже потеряли мотивацию штрафовать. Положительная мотивация, опять же ИМХО, необходима для появления взаимного доверия.

Лично мне хотелось бы жить с доверием к государству, как в Скандинавии, а не в Северной Корее.
Но дальше то идёт речь про работу на новом месте. Не сходится!
Моя релокация стоила как вся моя зарплата за 4 месяца.

Что касается ЗП, то по итогам года мне её проиндексировали на 5,33%, что в абсолютных цифрах чуть больше 10 тысяч рублей на руки.

10 000 / 5% * 4 = 800 000.
800 тысяч рублей за релокацию из Ярославля в Москву?
Конечно не каждый. Но я специально упомянул про E6 — обычно, у тех ребят уже есть возможность выбрать интересный для себя проект.
ИМХО не только на старте карьеры. Я примерно так представляю это для людей, которые растут профессионально, а не в руководители:
  • Ты только начинаешь работать. Очень важно не попасть в болото, в идеале — попасть в такое место, где ты научишься быстро развиваться, и где будет на кого равняться, у кого учиться. Крупные технологические компании обычно могут такое предоставить.
  • Выходишь на уровень среднего разработчика, эдакий Вася-копатель. В принципе, в этот момент можно пойти в самые разные компании, можно даже в айти отдел неайтишной компании — там может случиться быстрый карьерный рост. За счёт того, что на первом этапе хорошо прокачался — есть конкурентное преимущество на рынке.
  • А вот когда (если) уже сделал несколько крутых проектов, имеешь солидный опыт за плечами — есть резон идти в FAANG, или крупных российских (Яндекс, Рамблер, Меил), потому что там будут интересные и крупные задачи, и снова будет куда расти. Уровень скилов — в районе Фейсбуковского E6: www.levels.fyi/SE/Google/Facebook/Microsoft
Собственно, вот вы сейчас этический вопрос задаёте: должны ли власти и/или общество считать граждан априори нарушителями, или априори добропорядочными. УК и КоАП заявляют о презумпции невиновности, т.е. граждане считаются добропорядочными, если не доказано иное. В такой парадигме «Социальному мониторингу» работать тяжело, надо искать кросс-доказательства вины.

Наш московский мэр же априорно считает москвичей нарушителями, отсюда вся концепция борьбы с COVID-19: штрафы с камер, блокировка троек, «социальный мониторинг», «мамаши» и «шашлычники». При этом тем, кто добропорядочно сидит на самоизоляции или на карантине, нету никакого бонуса за это. И уж тем более ни у кого, пожалуй, нету стимула пойти и добровольно сказать, что у тебя простуда: в лучшем случае ничего не изменится, в худшем — карантин на 2+ недели, потенциальные штрафы и риск заразиться уже от врачей/в больнице, пока тебя обследуют. Помощи со стороны государства или города тем, кто самоизолируется, тоже никакой нету. Например, на машине ты не ездишь, потому что пропуска, самоизоляция и вот это всё, а транспортный налог платишь по полной.

Люди достаточно эгоистичны, чтобы они сделали что-то полезное для общества — у них должен быть личный мотив. Хотя бы банальное, сидишь дома на самоизоляции — не платишь за услуги ЖКХ. Сидишь дома на карантине — получаешь «талончики» в 1000р в день, чтобы заказать еду в ближайших ресторанах. Деньги на талончики — за счёт ОМС, и это будет выгодно государства, ведь по данными ФФОМС стоимость лечения одного пациента с COVID-19 в больнице стоит 200 тысяч рублей. Но это я сейчас первое, что приходит в голову, пишу, наверняка можно и множество других способов придумать.
При этом, если Вы используете только 2 магистральных оператора, и Вам нужно для сервера обеспечить резервирование 2N, получается, что половина коннективности использоваться не может. Получается, что на каждые 10 Гбит / с, Вам нужно купить 20, потратив 6000 евро, и держать половину емкости на случай недопустности первых 10, что удорожает стоимость в 2 раза.

А зачем вы коммититесь на 100% загрузку канала? Купите с коммитом в 50% и не переплачивайте.
Небольшая ошибка расшифровки записи:
Где? В городе у нас — я, по остальному команда у нас делится по направлениям.

На видео youtu.be/kXd40iEUFrY?t=1571 это так звучит и выглядит:
Где? В городе у нас один [неразборчиво, показывает рукой вверх], остальное — команда [показывает руками горизонталь], там [неразборчиво] делится по направлениям.

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

Это верно, но это касается только автоматической фиксации нарушений сертифицированными средствами, подробнее можно почитать в Постановлении Пленума Верховного Суда РФ от 25.06.2019 N 20 «О некоторых вопросах, возникающих в судебной практике при рассмотрении дел об административных правонарушениях, предусмотренных главой 12 Кодекса Российской Федерации об административных правонарушениях». Там, кстати, есть и про то, что если комплекс не сертифицирован, то особый порядок привлечения к ответственности не применим.

Вред на самом деле — есть.

Кажется, для этого надо, чтобы он:
  • Заболел чем-то заразным и опасным (бактериальная пневмония, свиной грипп, туберкулёз или ещё что-то такое)
  • Не сидел дома
  • Начихал/накашлял на кого-то

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

Второй важный нюанс: сам факт превышения скорости, в целом, уже общественно опасное деяние (вынесем за скобки то, как расположены знаки и т.д.). ПДД написаны адекватно, соответствуют мировой практике, их можно понять, а не только вызубрить. А вот то, что человек с простудой не установит себе приложение — тут пока никакого вреда, даже потенциального, обществу не нанесено. И если приложение дало сбой, сдетектило его не там — тоже. И если он отдал свою карту «тройка» и кто-то по ней прошёл — тоже не является, потому что тройка не является персонифицированной, и её можно передавать другому лицу. Мобильный телефон тоже не запрещено передавать другому лицу.

BTW вопрос про это я отправить в Росстандарт через электронную приёмную, но пока что ни ответа, ни привета. Даже входящий номер обращения не дали.

Информация

В рейтинге
4 314-й
Откуда
Россия
Зарегистрирован
Активность