Архив недели @abstract_artem
Понедельник
темы которые мне интересно затронуть:
- карьера, частые смены работы
- переезд в и уезд из кремниевой долины
- политкорректность в IT
- Оупен Сорс
- IT в СНГ vs IT на Западе (Европа, США)
- подкасты, ютюбы, конференции
- философия, культура, этика, эстетика, экзистенциализм
- психические расстройства
- железо всё лучше, код всё хуже
ну или как-то так
коллективные аккаунты не читаю — лицемер?
когда зарождались — было интересно, быстро пришли к перегрузу однотипной информацией
особенно специализированные типа "менеджер underhood", "мобильный разработчик", etc
нет там контента на 52 недели разных профессионалов
лучшее из подобного для меня CTOcast — интервью подкаст с разными CTO
за 32 выпуска я понял одно — сами CTO не знают шо включено в эту должность, некоторые программируют, другие только по верхам баззворды знают
много общался в долине с engineering директорами и CTO — аналогично
про карьеру: делю на два этапа
карьера начатая по молодости-глупости
карьера начатая более осознанно после переосмысления/личного кризиса
по молодости в моем случае началась где-то с 8го класса по ночам с красными глазами в школьные семестры и круглосуточно летом
мое текущее понимание работы головы говорит, шо тогда я начал идти по деструктивному пути
сбитый сон: ложился в 2-4, вставал в 7:45
приводит к проблемам с памятью, сбою нейромедиаторных систем — дофамин, серотонин
сбой нейромедиаторов — нет, не депрессия, но дегродация психологического и эмоционального восприятия людей, эмпатии, рефлексии
маниакально увлёкся программированием — легкий дофамин: написал, запустил, порадовался или огорчился и так по кругу
поглащал книжки, видеокурсы как не в себя
иногда нормальные вроде Программист-прагматик, большинство так — технические справочники
сделал пару сайтов для себя, полтора на заказ, запустил торрент трекер, и ушел из веб (PHP, JS, HTML, CSS — абсолютно проклятый стек)
старшие классы первый телефон на Android — вау, надо пробовать мобильную разработку
приложений в маркете тогда — кот наплакал
разносил листовки, мыл полы — деньги тратил на книжки и кстати успешно инвестировал в акции через маму лол
начал ходить на митапы в своем городе
деньги в семье были, но мне казалось важным зарабатывать копеечку самому, благо за жизнь платить не надо было
связываю с фикшном который я читал подростком про самостоятельных подростков, собстно поэтому и пишу сюда — чужой опыт ещё как влияет
поступил в ИТМО на Инфокоммуникационные Системы и Технологии, переехал из Уфы в Петербург
потом Минск 1.5 года, Сан Франциско 3.5 года, Нью Йорк, Москва набегами
каждый переезд считаю позитивным несмотря на сопутствующие проблемы — новый взгляд на жизнь, интересные люди
про личные отношения много говорить не буду, скажу так — вписываться в долгие отношения со школы, тащить их в универ и через города — полная глупость
особенно когда ты ничего не понимаешь про психологию, эмпатию, как слушать и выражать свои потребности, а думаешь только о работе
пошёл по делам
пролайкайте с чем согласны, прореплайте с чем не согласны
подумайте про эмоции
и про вот эти вопросы:
- где я?
- что я?
- кто я?
- с кем я?
во вам музыка на неделю, плейлистчик бoх
open.spotify.com/playlist/0z4YT…
работал весь бакалавриат фуллтайм, компании менял где-то раз в 9 месяцев
часто сидел в офисе до 11, работал на парах, универ еле закончил (хоть и на 4ки 5ки)
после первых 2х курсов кончились интересные предметы: матан, физика, химия
началось очень плохое обучение айти
чсвшные преподы с минимальным или отрицательным знанием предмета, нормальный был 1
ИТMO хорош если вы хотите в олимпиадное программирование — то есть максимально неподдерживаемый код с синдромом not invented here
всё как любит г-н Дуров
может шото поменялось конечно
бакалавриат пригодился при получении рабочей визы O-1 в США так шо ладно
очень печально, шо нельзя выбирать программу и предметы по ходу обучения
наверняка есть и более менее толковые направления, мне не повезло
на ЕГЭ было шото около 275 баллов, информатику сдал на 91 вроде
Тред (Артём Зиннатулин)
@itunderhood если коротко: я не верю, что можно сделать что-то круто + классно, если задушить в себе рвение въебывать, которое ты называешь "деструктивным путем"
это важное мнение, я примерно его и придерживался
только вот не понятно чего я добился: глубочайшей депрессии, разочаровании в карьере, эскапизм, 7 психологов, 2 психотерапевта, 2 психиатра, антидепрессанты, тревожность, подозрение на БАР
звездочки на гитхабе этого стоят? twitter.com/dkeysil/status…
мой хороший друг, который, кстати в яндексе работал, выдал как-то мысль
два пути: ты делаешь какие-то проекты или живешь для комфорта
через 5-10 лет психическое состояние скорее всего будет +- одинаковое, так
как показывают исследования счастья, голодающий ребенок в африке и миллионер могут быть на одном уровне счастья/несчастья
гормональная и нейромедиаторная системы подстраиваются
получается, если ты шото делал эти 5-10 лет — достижения получаются как бы бесплатно
а шо ты жил счастливо годик когда-то, это очень сложно пощупать, в отличие от достижений
если постоянно про это не рефлексировать — память просто этого не запомнит
то есть имеет смысл и рефлексировать и ебошить проекты для достижений
@itunderhood кажется это звучит интереснее чем 8-ой год платить ипотеку в мурино, а если повезет и ты чуть умнее среднего человека то на коменде, каждый день ездить 40 минут через пробки на своей киа рио и так далее может я не прав и играет максимализм какой-то
8й год ипотеки в мурино и 40 минут в день в пробках на кио рио помогает избежать не ебошево на работе, вот в чём дело
а осмысление происходящего: почему я плачу за квартиру в страшной панельке на 3 тысячи квартир без инфраструктуры и эстетики цену материалов за частный дом 100кв twitter.com/dkeysil/status…
гедонизм без когнитивного фундамента работает недолго
да, ты шото сделал и получил деньги/блага, но зачем?
если этого зачем нет, не так важно ни шо ты сделал, ни шо ты получил
у меня были мотоциклы, машины, комп за $10k, часы и тп — гиперкомпенсация отсутсвия смысла в жизни
остутствие смысла в жизни: работе и том что после нее — экзистенциализм
крайне токсичное, но очень интересное направление мысли, не видел ни одного счастливого человека кто изучал
когда в системе ценностей мало логики — экзистенциализм будет сносить весь когнитивный фундамент
это фреймворк на который мозг инженера встает очень легко
рекурсивно задаешь вопрос "какой в этом смысл" несколько месяцев — лежишь на полу рыдаешь в 5 утра
как и другие патологии, экзистенциализм упорно не дает новым идеям, смыслам и целям овладеть тобой
пародокс отсутсвия общения: чем больше ты один, тем сложнее тебе понимать мысли и эмоции других, тем сложнее вырваться из одиночества
тут так же
Тред (Артём Зиннатулин)
@itunderhood Экзистенциализм - это гуманизм, вообще-то.
согласен, экзистенциализм приводит к антинатализму
непониманию как можно рождать новых людей, если нельзя гарантировать их счастье
рождение ребенка — эгоизм наряду с убийством
когда этот ребенок не сможет получить ответа на вопрос "зачем я существую" twitter.com/BlackPoodle2/s…
не спрашивают:
- "малой, кстати, хочешь ли ты родиться?"
- "малой, к каким родителям хочешь попасть?"
- "малой, а в какой стране и какой эпохе хочешь?"
"а кстати всё равно наверн будешь несчастлив, я завожу шоб себя порадовать, гормоны там, смысл жизни, да и скучно было"
многие тут родители, у меня нет цели вас задеть
я буквально не знаю шо делать с этими вопросами
личные выводы пока такие: ок, смысла нет, можно там изучать интересное, инженерить, побольше делать шо нравится, поменьше шо не нравится, физически земля буквально рай
только вот мы социальными конструктами, юрисдикциями, гoc-вами делаем из рая ад
Poccия — большая когнитивная тюрьма, периодически становящаяся реальной для независимых людей, за слова, наши родители сделали ее такой.
туда же едет и Европа, США, Австралия, восток
Тред (Артём Зиннатулин)
@itunderhood Иными словами, "зачем жить плохо, если можно жить хорошо".
тип того, другое дело, шо город решает проблему экономической мобильности
глупо брать однушку в центре cocквы за $250k и интровертить дома,
не пользуюясь инфраструктурой, культурными, социальными и экономическими и возможностями
за эти деньги можно отличный дом сделать twitter.com/mr_felixoid/st…
пойду книжку с кофе почитаю, позалипайте пока на HousePorn
мои предпочтения: одноэтажные метров на 150, видно горы, все сезоны, панорамные стекла, не супер дорогой, но и не икеевский интерьер без наборов однообразной ерунды
reddit.com/r/Houseporn/to…
@itunderhood 1. Никто не обязан и более того не способен ДАТЬ кому-то ответ о смысле жизни, каждый его находит сам. 2. Рождение - это альтруизм в такой де степени, как эгоизм. Если тебе не зашла жизнь, то ты всегда можешь от нее отказаться.
согласен, его правда может в принципе не быть
отличный выбор, спасибо шо поставили перед ним 👍
хотя бы вину не навязывали тогда, мол, а шо другие подумают twitter.com/NotCuteCat/sta…
@itunderhood @abstract_artem @artem_zin @igrekde О, привет. Если ты опять пишешь про комьпютеры, то расскажи, что случилось с lyft прокетами мобильной инфры? Уже два доклада посмотрел, ссылки на github 404 (napt, buildcache).
точно, это же твитор про компьютеры
Lyft проекты мобильной инфры это наверное про вот этот мой доклад youtu.be/Wd91Y8sRs2k
где я рассказываю какой нормальная система сборки могла бы быть, и шо мы имеем в реальности: Ant, Maven, Gradle, Buck, Bazel twitter.com/snpefk/status/…
обещал выложить buildcache — не сложилось, менеджмент не давал мне достаточно времени над ним работать, было много других проектов
NAPT — к @TagakovVladimir
в свое время делал Mainframer — штука для ремоут билдов github.com/buildfoundatio…
так или иначе еще несколько наработок по билдам есть тут: github.com/buildfoundation
некоторые делал я, к другим прикладывал руку немного
в 2018 писал «Fundamental Design Issues of Gradle Build System»
сильно повлияла на их внутренние планы
друг оттуда позвонил встревоженный, сказал ты шо с нами не согласовал сначала екарный бабай, у нас тут планерки весь день
artemzin.com/blog/fundament…
с CEO в норм отношениях 🙃
Тред (Артём Зиннатулин)
Очень страшно от того, что многие из нас никогда бы не родились, если бы наши родители задавались такими вопросами twitter.com/itunderhood/st…
согласен, надо бы эти вопросы запретить, мыслепреступление.
работа занимает лучшее время дня, 5 дней в неделю, ~240 в год, с ~20 до ~60ти лет
когда появляется время чуть подумать, сложно найти ориентиры и идеалы которые могут оправдать такое существование
а жизнь одна twitter.com/brslvkrpshkn/s…
@itunderhood Разве Вы занимаетесь не любимым делом? Если бы не было работы как явления - проводили бы дни иначе?
в ванне полежу, предлагаю посмотреть пока
«коллапс моей личности»
youtu.be/5pkrlZGFzF0
комментарии там интересные, а многие после видео писали и лично
моряк дальнего плавания душу изливал, не все с айти twitter.com/BlackPoodle2/s…
@itunderhood pic.twitter.com/0hqIjrKhiA
Вторник
вылетаю в Петербург
на регистрации дали место у окна, я спросил есть ли у прохода
ответили шо выбор места вообще-то платная услуга, я печально вздохнул и побрёл на досмотр
а при посадке ручкой переписали место на проход
совпадение или сжалились?
@itunderhood Ты хочешь для себя решить вопрос «я родитель или чайлдфри» или дать общий ответ всему Миру? Второе точно не требуется. А если первое, то уж извини решай сам. И лучше где-нибудь не здесь
мне выдвинули тезис про экзистенциализм и гуманизм, я дополнил его своим пониманием
как и вы сейчас дополняете меня
при этом зачем-то говоря «уж извини, решай сам», что очевидно, я лишь делюсь мыслями для таких решений
возможно лучше где-нибудь и не здесь twitter.com/ip_suvorov/sta…
человек из IT на этой неделе - чисто Коул из True Detective. Он там слово в слово говорил про грех отцовства. да и похож! годно, мне нравится pic.twitter.com/ZiKuuhWl0r twitter.com/itunderhood/st…
стоит посмотреть этот ваш тру детектив наверн
в диско элизиум я уже поиграл, танцевать и пить тоже люблю twitter.com/dbg_nsk/status…
@itunderhood А почему ты решил, что если задать эти вопросы «малому» он сможет на них ответить?
я тот малой, не могу на них ответить до сих пор, шо делать, доктор? twitter.com/aarexer/status…
@itunderhood А иногда счастье одного человека - это несчастье другого. Поэтому твой посыл: > непониманию как можно рождать новых людей, если нельзя гарантировать их счастье Наверное довольно бессмысленно.
со многими мыслями которые Александр нареплаил я согласен
гуманно ли добавлять в мир новое сознание которое возможно будет страдать потому што просто захотелось?
мой посыл — это эгоизм
сложно посмотреть маме в глаза и сказать: «мам, я тебя люблю, но не очень рад, что родился» twitter.com/aarexer/status…
предположим, што поставленные вопросы бессмысленны, а поэтому и задаваться ими бессмысленно в принципе и как родитель/ребёнок
это не отрицает возможной трагедии и ужаса нового сознания которое может попытаться на них ответить, а аксиоматичные аргументы его не убедят
считаю што стоит этот эгоизм признать и от ребёнка не скрывать если спросит
прикладывать максимальные неинвазивные усилия по обеспечению его счастья и развития
не ждать ничего в ответ несмотря на вложенное время и деньги,
тк он изначально не мог ни согласиться, ни отказаться.
у меня например с мамой последние лет 5 сложно:
я бы и рад уделять ей больше внимания, но только если она согласится, што я этого делать не должен.
я часто пропадаю на недели или месяцы без ответа — глубокая депрессия, мало рассказываю про жизнь, она очень обижается..
уверен, тут меня как и некоторые знакомые назовут неблагодарным
имеете право, она ведь хочет только лучшего
Тред (Артём Зиннатулин)
@itunderhood Не отрицает(ровно как и не гарантирует), но если ты повлиять на это не можешь и это бессмысленно - это все равно, что ранку расчесывать. И возможно верный выход - просто стараться сделать лучше, дать образование человеку, научить его к себе прислушиваться. И все?
во многом согласен
есть короткий рассказ «У меня нет рта, но я должен кричать»
для некоторых жизнь примерно такая вот ментальная трагедия
искренне надеюсь шо после смерти ничего нет, иначе это тоталитаризм хуже коммунизма twitter.com/aarexer/status…
это я чего на жизнь жаловался,
потому шо меня в бизнес класс давно не пересаживали!
и съездить в город успел за кофе и в банк (неудачно) между пересадками
@itunderhood Это понятно, а что вы можете сказать про SOLID?
препод, сволочь, валит
две недели назад прошёл онлайн архитектурное собеседование в Тинькоф
@vvsevolodovich задал спроектировать бэкенд аналога твитора сразу на миллионы активных пользователей
youtu.be/uZlOpmJLtL4 twitter.com/avveroll/statu…
верните чувака с плоской землей плз, эти заходы в философию - новый уровень twitter.com/itunderhood/st…
кстати, говорил ли я вам шо Юрий Лоза думает шо земля плоская?
уважаемый, рукопожатый человек, на геофаке учился!
youtu.be/QOHWHPud1ow twitter.com/nmishustin/sta…
в реплаях проснулось много людей
считающих психологические и экзистенциальные кризисы инфантильностью, 5 лет назад я бы сам был в их числе
отлично, работаем дальше
думаю сегодня про кремниевую долину и запад vs снг пописать
застрял на самолёте правда, задерживают вылет
Пишет человек, как я понимаю, 27 лет, то есть первый «экзистенциальный кризис» у него произошёл в 22. Есть такой французский фильм, из числа тех, которые показывали в СССР, с Пьером Ришаром. Называется «Игрушка». Там вот про такой экзистенциальный кризис как раз. twitter.com/itunderhood/st…
нет, не в 22, в 25 где-то, да и что за эйджизм?
уверен есть много людей моложе, лучше нас с вами понявших жизнь
я посмотрю ваш фильм, а вы посмотрите мой «фильм»
youtu.be/5pkrlZGFzF0
потом скажите мне в лицо, что я инфантильный, я улыбнусь вам в ответ twitter.com/megadr0id/stat…
@itunderhood Чтоооо айтишечка ускоряет??? О.о
айтишечка вполне может ускорять инфантилизацию личности
высокие зарплаты, тепличные условия в офисах, высокий спрос на специалистов, удалёнка
может это имелось в виду
с другой стороны дедлайны, переработки, но это много где есть twitter.com/lusy_vestenra/…
@itunderhood >высокие зарплаты Как же вы заебали со своей манией IT-величия $3-5K месячных это не "высокая зарплата" Хватит на еду не из говяжьих анусов и шмот, ну гаджеты обновлять почаще А мечтам про порше и дом с бассейном и летать по всему миру придётся при таком раскладе сходить нахуй
меня тут поправляют, получается, не ускоряет инфантилизацию
всем безусловную базовую козулю!
сверху и зарплату можно
как показывает практика кремниевой долины, повысь зп до $10к в месяц после налогов и будешь за жизнь в этом месте отдавать $5к
удалёнка спасибо за всё, легенда twitter.com/irraelia/statu…
@dkeysil @itunderhood Как будто это меняет суть дела. Человек пишет это тем айтишникам, больше половины которых и 3-5К не зарабатывают, многие и со своей сотыгой деревянных радуются что наконец-то вошли в клуб "высокозарплатных", ведь по сравнению со "средним классом" это ведь успех лол
я кстати за высокие зп и время на жизнь
планирую перераспределять значительную часть прибыли компании на зп
4 рабочих дня со старта, хотел меньше, но не смог свести экономику
но мы ещё не доделали и первый продукт, может ничего и не выйдет :/ twitter.com/irraelia/statu…
@itunderhood t.me/clinicalpsycho… буквально сегодня утром об этом читала.
анализ здорового человека twitter.com/plnnie/status/…
Лол представьте неиронично иметь проблему «не знаю зачем живу», конечно не знаешь ты жучара, НПС без души. Представьте «бояться несчастья». Последним версиям големов решили даже в минимальных количествах тестостерон не колоть, в венах чистая соя. twitter.com/itunderhood/st…
у тестостероновых мужичиев такие цели, совершенные идеалы и блестящие стремления, ослепнешь!
за тестостероном правда стоит следить, много на шо влияет.
но вы не слушайте соевую (ненавижу к слову сою) жучару, нпс без души (души нет) twitter.com/ypg0x/status/1…
@BlackPoodle2 @itunderhood Вы путаете. Экзистенциализм отравляет. Миф о Сизифе попытка оправдать абсурд.
образованный человек!
по теме ещё есть «Man in Search of Meaning» от психотерапевта Карла Франкла
он попал в немецкий концлагерь и нашёл в этом смысл, многим там помог
позже основал направление психотерапии по поиску смысла — Логотерапию twitter.com/ATavgen/status…
@Anton_551 @itunderhood Я только с виду придурковатый, иногда я могу и за умное что-то затереть!
всех выведем на чистую воду
а то Каучук только смехуечки айтишечные выдаёт, за шо и ценим
но под ними оказывается то культурный человек! twitter.com/aarexer/status…
4 процента за 10 дней потеряла на стоянке аэропорта pic.twitter.com/6ydisMyIBx
песла потеряла 8 процентов на стоянке на морозе до -10 за 6 дней.. twitter.com/abstract_artem…
@itunderhood Гарантировать счастье легко, достаточно добавить это условие в конституцию 🙈🧐
"Life, Liberty and the pursuit of Happiness" twitter.com/vgermaniu/stat…
@ClickHouseSRE @itunderhood А я вот в полу клике от отписки. Два года назад прочитал про видео трансляции через сеть в рилтайме для разных платформ, и это было интересно. А сейчас то юные hr вещают свои убеждения, то ранние цветы надувают щеки. Этого я уже столько насмотрелся в других местах. Скучно.
могу про системы сборки задвинуть, Gradle, Bazel
это то над чем я работал последние годы, да девопс всякий twitter.com/ip_suvorov/sta…
@itunderhood Пиши что тебе збсь, а не кому-то хочется. Ты же у микрофона.
можно, но не сегодня
сегодня я вернулся с поездки и провожу вечер с девкой
никакое бесоебие на 10к человек этого не лучше
особенно про айти twitter.com/aarexer/status…
Среда
@itunderhood А ты случайно не летел из Пулково на белавиа в Минск? Вылет в 10:30 должен был быть, но просидели в самолете до вылета 2 часа. На ряду втором показалось, что был ты )
itunderhood узнают-с, давно пора
2 часа сидели — воды не предложили , а раньше:
курить можно было — сигары давали
лили коньяк 7 летний, заканчивался — 15 летний открывали
между креслами по 2 фута было, а кресло с кровать
парашюты домой давали
пилоты руку жали twitter.com/vicria_p/statu…
у нас с (бывшим) коллегой из штатов есть традиция, когда видим SHA256 от null
пишем друг другу
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
обычно это значит шо где-то пролетел null или наоборот не обработан как special-case
программист, помни — e3b0c4!
иду к психотерапевту
не буду пока говорить шо за моей жизнью следят 10 тысяч айтишников
ещё увезут к остальным таким в Яндeкc
меня ждёт мучительная смерть
но сейчас я на качелях в 12 дня в середине недели
а ты в кресле и думаешь как бы успеть на обед и ебучий митинг после
сходи погулять и за кофе, скажи шо сегодня не можешь
@QuantValerian @aarexer @itunderhood Да мне ещё давно господин Брагилевский рассказывал про него. Отличный парень, говорит
Брагилевский кстати оказалось в жизни не только калькой с чужих твитов разговаривает
шо конечно разочаровывает
но человек неплохой, может даже хороший twitter.com/Anton_551/stat…
@itunderhood Сигареты, кофе — за что ты себя так не любишь?
я сложный биоробот
когнитивно поведенческая терапия помогла выявить базовые вещи которые мне нравятся/не
и научила их смаковать, не позволяя кому-то нарушить этот процесс, потихоньку вытащив с эмоционального дна
чашка крепкого капучино, сигаретка twitter.com/MojoIvan/statu…
прогуляться под музыку и ещё пара вещей — мой тулкит (база) по приведению психоэмоционального состояние ближе к норме
плохой день, новая обстановка/город, и прочая жиза — есть некие действия шо гарантированно докинут не взрывную дозу дофамина
@itunderhood Ах вот за что я недолюбливаю КПТ, они слишком повёрнуты на своём дофамине 😀
КПТ не разбирает нейростимуляторы
это делают психиатры
из методик шо я пробовал связка кпт + экзистенциальная психотерапия + психиатр пока лучшая twitter.com/MojoIvan/statu…
худшая методика имхо: гештальт
там психолог как гадалка ждёт пока скажешь о себе ключевики:
не было отца, младший брат в семье, етц
плохо шо помогает
хорошо шо ненадолго
типа будто старший брат счастливее тебя или чел с отцом, ложная дихотомия
@itunderhood Я правильно понимаю что это звучит так: «я, как тело, сам себя разрушаю, полагаясь на внешнюю логику экзистенциализма, принимаю, что это часть моей жизни в получении удовольствий и восстановлении некоторого состояния, которое я называю «нормальным», и продолжаю так жить»?
к саморазрушению не стремлюсь, поделать шото интересное, попробовать разное, без насилия над другими
в остальном похоже, да
если найдёте смысл в происходящем — маякните twitter.com/MojoIvan/statu…
@LipDC @itunderhood А какое развитие подразумевает бомбардировка тела химическими реактивами, которые вызывают стресс? Толерантность к естественному стрессу? Ситуация, где проснуться полным кортизола, но не быть бодрым — это туда же, к толерантности Другое дело, когда ты накидываешь 5кг на гантели
из пищи я так понимаю надо есть максимально нейтральную, главное белковал-углеродно-жировой баланс? 🙃
прогулка с музыкой/аудиокнигой — аудионaркотики?
если бы я гнался за стимуляторами — валялся бы под мостом и вeществами в сан франциско
как видите, это не так twitter.com/MojoIvan/statu…
захотелось написать про билд системы чутка
нормальных за 10 лет не встречал, плотно работал с Gradle, Buck, Bazel
не оч плотно: Make, Maven, Ant, Cargo, Go build
было бы круто иметь в билд системе:
статически типизированный современный яп для билд файлов и плагинов вроде Kotlin
параллельную конфигурацию модулей
кеширование конфигурации
параллельное выполнение билд графа
локальный билд кеш между проектами
распределенный ремоут билд кеш
трейсинг и профайлинг конфигурации и билд графа
строгое версионирование и верификация зависимостей
легковесная контейнерезация окружения выполнения
JSON/etc вывод для интеграции с IDE и другим тулингом
мониторинг файловой системы
распределенное ремоутное выполнение билда на кластере машин с контейнерезацией окружения выполнения
поддержка зависимостей как исходники и как пребилд
наверняка шото забыл, разберу по пунктам как это работает в существующих системах
яп конфигурирования и плагинов:
Gradle: Groovy мрак, гадаешь типы, интерпретация не оч быстрая, добавили Kotlin, стало получше
но Gradle разрешает сайд эффекты в билд скриптах(!)
то есть в конфигурационном файле или плагине буквально можно делать любой файловый или сетевой IO
это безумие
ломает повторяемость конфигурации проекта: два раза запускаешь — результат может зависеть от внешних файторов, секьюрити риск
Bazel: яп конфигурации и плагинов
вводная такая, Bazel не супер известная, но довольно крутая билд система от Google
внутри известна как Blaze, начиналась ещё в середине 2000х, где-то в 2015 стала оупен сорсной
у них свой яп конфигурации и плагинов (rules) — Starlark
Starlark синтаксически копирует Python, но имеет свою стандартную библиотеку без IO и интерпретатор, который жестко ограничивает сайд эффекты и не позволяет хранить глобальное состояние в памяти
docs.bazel.build/versions/main/…
к слову, его можно использовать и без Bazel
из-за этих ограничений он репродюсибл и выполняется параллельно между модулями
Bazel позволяет IO только через свою библиотеку и контроллирует все input/outputы, шо делает конфигурацию повторяемой и кешируемой
из минусов — динамическая — гадаешь типы, но повторяемая типизация
на Starlark же пишутся плагины (rules), вот тут они имеют право запускать внешние программы и соответственно нарушать повторяемость
Bazel старается бить за это по рукам, используя sandboxing для выполнения билд экшенов
docs.bazel.build/versions/main/…
из прикольного, rule в Bazel может создать Persistent Worker — процесс который оборачивает какую-то штуку в демона, удобно для интеграции JVM/etc тулов в билд которые для перформанса лучше держать горячими, чем запускать на каждый чих
пример реализации github.com/buildfoundatio…
единственное шо меня бесит в Starlark — динамическая типизация, оч сложно читать и писать хоть немного сложный код
вызываешь функцию и идешь читать сорцы надеясь шо поймешь возвращаемый тип, а она там вызывает десяток других, компилятора нет
пример github.com/bazelbuild/rul…
Buck: яп конфигурации
вводная такая:
челы из гугла пришли в фейсбук и такие: а как жить без Blaze
сделали свой идейный клон и выложили в оупен сорс быстрее чем гугл выложил Bazel(!)
но, яп у них сначала был именно Python, потом интегрировали Starlark
плагинов нельзя
Makefile: яп конфигурации
ну он свой, простой и лимитированный
пишешь таргеты и можешь ссылаться на них
типа
compile:
javac -jar A.java
jar: compile
jar -cf A.jar A.class
run: jar
java -jar A.jar
make run
есть супер базовые переменные, и всё…
на Make ничего особо не напишешь, но использовал и много где вижу как верхнеуровый конфиг для запуска других тулов и билд систем
db_test:
./prepare-test-env.sh
./gradlew test :a
./shutdown-test-env.sh (тут прикол шо если упадет пред, то это не выполнится, не надо так)
Maven: яп конфигурации и плагинов
конфигурация на XML то есть не яп, а разметки, запаришься писать, но строгая схема помогает, билд нельзя программировать
программировать ток через плагины на любом JVM языке, плагинам можно все сайдэффекты
Четверг
Maven сильно заточен на сборку Java проектов и их публикацию в виде собсно Maven зависимостей
в принципе артефактом не обязан быть .jar, а языком Java, но это подразумевается
поэтому в отличие от более универсальных Gradle и Bazel вне JVM мира не используется
Maven формат стал однако ☝️ стандартом публикаций библиотек в JVM мире
Maven Central от Sonatype основной JVM репозиторий, с ним работают все JVM билд системы: Gradle, Bazel, Buck, Sbt и тп
JCenter от Bintray был альтернативой, но недавно закрыли
GitHub еще
Maven Central это «Замок» Кафки в мире оупен сорса
шоб опубликовать там библиотеку надо зарегаться в их джире
создать таску с описанием
подождать неск дней(!) пока согласуют именования и выдадут креды
публикация полуручная, автоматизируется с проверками на таймаутах
яп конфигурации Cargo
TOML, это чуть лучше YAML, но все ещё больно, ну и программировать поведение нельзя, это язык разметки
плагины на расте, заточена на раст
было грустно наблюдать как новый яп тратит много ресурсов на очередную билд систему
если бы раст делали в 2021 я бы топил за Bazel, к слову есть github.com/bazelbuild/rul…
но тогда действительно универсальных и хороших вариантов было немного, хотя могли взять Gradle
для системных лоу левел чуваков использовать JVM тулы это конечно оффенс, но есть ведь CLion!
да и пишут многие растоводы и плюсовики на Visual Studio Code, а там вообще Electron
меня оффенсит не сам JVM или JS, а их inheritant перформанс, GC паузы и потребление памяти
@newinitman @itunderhood Псст, парень, у нас есть всякое😉
тут это, оказывается есть анти айтиандерхуд
при соприкосновении с которым мы аннигилируемся
ты выходит не безразличный инфантил? twitter.com/antiitunderhoo…
я смотрю, и за пунктуацией в твиторе следишь, похвально!
параллельная конфигурация модулей
есть в Bazel и Buck
в Gradle её пока нет тк каждый модуль может изменить глобальное состояние Gradle конфигурации
я предложил им режим изоляции конфигурации модулей, сейчас это экспериментальная фича
gradle.github.io/configuration-…
для понимания масштаба проблемы: когда в Lyft проекте было 1k модулей, однопоточная Gradle конфигурация занимала 30 секунд
на любой чих приходилось ждать полминуты прежде чем начнется полезная работа билд системы
Buck справлялся за 1.5 секунды
сейчас там около 2.5к модулей
кеширование конфигурации
критически важно для хорошего экспириенса
Buck и Bazel умеют кешировать конфигурацию, это важно для многомодульных проектов
судя по всему Cargo и Go Build это тоже умеют тк зависимости там из исходников и оверхеда на запуск билд команд не испытываю
но ключевое отличие Bazel в данном случае в том, шо он кеширует конфигурацию сгенерированную от результата выполнения кода пользователя
а другие кешируют результат парсинга языка разметки
(Buck я перестану упоминать потому что на фоне Bazel в 2021 он бесполезен)
это фундаментально разные подходы, яп позволяет очень гибко настроить билд, в отличие от языка разметки
функциональная чистота Starlark, отсутствие IO == повторяемость выполнения
→ позволяют Bazel получить бенефиты обоих миров: гибкость и перформанс
это оч круто
я предложил Gradle вариант оптимистичного кеширования
когда мы надеемся на отсутствие сайд эффектов в юзерском коде build.gradle и плагинах
сейчас это экспериментальная фича
docs.gradle.org/nightly/usergu…
фундаментально, однако, это не полноценное решение
тк Gradle не блокирует сайд эффекты, вы можете сделать конфигурацию в зависимости от внешних факторов типа system time, env vars, файлов, сети
и налететь на баги при повторном запуске на кеше
но и эту проблему можно решить!
предлагал инженерам из Gradle использовать Java SecurityManager для ограничения доступа к сайд эффектам, но SM удаляют из JVM
альтернативно, можно подкидывать в classpath плагинов и юзер кода кастомную Java stdlib без IO функций
пока Gradle вроде ничего не делает в эту сторону
более кардинальный вариант который я бы хотел видеть и в Gradle и в Bazel
взять Kotlin как яп конфигурации и интерпретировать его в изолированном от IO окружении, как Bazel это делает со Starlark
получим строгую статическую типизацию, компиляцию с кешированием и изоляцию
@jin_ @bazelbuild I.e. - Swap Kotlin and Java stdlib with shrinked versions without IO functions - Configure SecirityManager to prevent IO - Add compiler plugin to only allow certain function arg and return types - Pretty much it - Can start by spitting Starlark, later a proper integration
предлагал это решение мейнтейнерам Bazel с которыми я тогда общался
попросили написать большой техспек, у меня из рук всё уже сыпалось к тому моменту — не сделал
Starlark хоть и крутой, но без статической типизации и гарантий в compile-time неудобный :(
twitter.com/artem_zin/stat…
параллельное выполнение билд графа aka
в 2021м это само-собой разумеещееся и есть во всех более менее живых билд системах: Bazel, Gradle, Maven, Cargo, Go Build, Sbt и тд
локальный билд кеш между проектами
поясню: бывает один и тот же код на одной машине компилируется в разных проектах, например, если внешние зависимости собираются из исходников
поддержка этого есть Gradle и Bazel, остальные хранят кеш на каждый проект
чтобы это работало корректно, билд система должна в ключ для кеша класть ещё и опции компиляции которые влияют на результат
один и тот же исходник можно скомпилировать например под разные архитектуры CPU и получить невзаимозаменяемые бинарники
оч большая проблема
конкретно в Bazel она сейчас решается в лоб, так что host OS учитывается в билд ключе
получаем тупые ситуации в духе платформонезависимый JVM код сбилженный на Linux (например на CI) имеет другой кеш ключ по сравнению с macOS
и разработчики на маке не могут достучаться до кеша
в Lyft у нас был форк Bazel где мы исключали host OS из ключа для кеша
крайне неприятная особенность, надеюсь скоро пофиксят
в Gradle наоборот host OS и target OS не учитывается, но через build variants кешируется на разных таргетах корректно(?)
весело в общем
распределенный ремоут билд кеш
подходим к моему личному интересному
я плотно работал над этой штукой для Gradle, Buck и Bazel
идея простая: CI и разработчики постоянно билдят один и тот же код (кусочками: task, action, etc)
зачем это повторять на каждой машине?
вместо этого можно иметь сетевой распределенный кеш в который билд система пишет и из которого читает
ключем будет хеш от инпутов build action, а значением его бинарный output
простая, очень эффективная идея — экономит кучу CPU time, ускоряя и CI и локальные билды
для гугла это была одна из ключевых причин разработки Bazel
чтобы десятки тысяч разработчиков и CI билдов переиспользовали результаты компиляции друг друга
а не тратили ресурсы на компиляцию одного и того же из раза в раз
кешируются разные экшены: прогоны тестов, трансформации
конечно, иногда нужно оставить какой-то экшн, например, деплой как сайд эффект, но и Bazel и Gradle по умолчанию закешируют
оба предоставляют апи для исключения task/action из кеширования
но рекомендуют переосмыслить задачу, разбить на более мелкие и кешировать по максимуму
@kotlin Made bunch of backend services in Kotlin, the most used one is internal distributed buildcache service (Buck, Bazel, Gradle cache) Serves up to 30k requests per second with p99 latency of ~ 1ms pic.twitter.com/Wgr9VoJjxT
распределенный ремоут билд кеш это то, что мы сейчас в Pushtorefresh делаем как первый продукт
на примере Lуft — в день моя поделка пропускала через себя неск TB трафика, c пиками в десятки тысяч запросов в секунду
большая команда, много билдов
twitter.com/artem_zin/stat…
экономически удаленный кеш это крайне целесообразная штука тк сохраняет человеко и cpu часы
надеюсь, сможем стабильно продавать и окупаться
делаем большой упор на производительность: min latency, max throughput
на этой задаче можно собаку съесть, разрабатывать in-house дорого
естественно есть оупен сорс реализации
на небольших нагрузках они работают, можно и S3 использовать если по деньгам, перформансу и лимитам ок
Grаdle предоставляет это как часть их Enterprise решения, но оно оч дорогое
норм облачного я пока не видел, есть шанс быть первыми
планирую запустить в двух режимах:
free с лимитами для оупен сорс проектов
paid для коммерческих клиентов, выбираешь сколько нужно места, регион, рейт лимиты
→ ускорение билдов!
self-hosted может позже, сложно упаковать в удобный для распределенного деплоя и обновлений
как мы оптимизируем latency и throughput на бекенде:
- только NVMe диски
- non-blocking IO (io_uring) оч рад что нашел человека который по этому тоже загоняется
- альфа на Kotlin JVM, бета на Rust -> уберем GC паузы, будем профилировать конечно
- аккуратная работа с БД
трейсинг и профайлинг конфигурации и билд графа
во многих билд системах хорошо если время в логах есть
а вот Bazel и Gradle молодцы
у Bazel мега крутой трейсинг в формате Chrome Trace
у Gradle есть Build Scan и gradle-profiler
тк оба на JVM можно цеплять JVM профайлеры
тулкит для профайлинга билда это критический инструмент для средних-больших проектов
у меня коллега 8 месяцев потратил на свое решение, чтобы анализировать проблемные места
без данных это гадание на кофейной гуще, легко потратить время на оптимизацию того, что не так важно
оптимизации для инфраструктурных команды build eng и devops — большИй кусок работы после введения системы в эксплуатацию
дорогущий Grаdle Enterprise в этом плане комплексно решает проблему тк централизованно собирает статистику
для других систем надо велосипедить
удивлен шо JеtBrains до сих пор не предоставили какой-то аналог Google Analytics для разработчиков
могут очень много данных из IntelliJ собирать и классифицировать как по билдам так и по работе с кодом
мы делали кастомную аналитику для тулинга, это больно
периодически задумываюсь может стоит как второй коммерческий проект Pushtorefresh сделать
но раз за разом прихожу к осознанию
шо аналитика уровня Google Analytics и Я Метрики оч сложная задача по хранению и анализу огромного кол-ва данных
есть другие low hanging fruits
строгое версионирование и верификация зависимостей
меня как-то раскритиковали Go-шники, за мой наезд на то что у них зависимости тянутся как гит репозитории просто с мастер ветки
и есть КОНВЕНЦИЯ шо не надо ломать совместимость и пожалуйста не внедряйте бэкдоры
треш
с тех пор воды утекло, почти все билд системы позволяют четко указать версии зависимостей
генерируют dependencies-lock файл, в котором их version solver вычисляет какую версию конкретной зависимости нужно использовать
проверка подписи, шобы не подсунули фейк
и хорошо
без фиксированных версий зависимостей я не знаю как спать по ночам
когда любой следующий билд может получить более новую версию какой-то библиотеки
и ваш продукт уйдет в прод с неизвестными багами, а еще хуже с какими-нибудь бекдорами или уязвимостями
фиксируйтесь!
то же самое относится к удалению зависимостей из централизованных репозиториев
известный случай в JS комьюнити — удаление библиотеки left-pad из NPM Registry
чел снес 17 строчек кода и на несколько дней поставил тысячи JS команд в состояние — у нас не работает билд
безумие
с тех пор большинство подобных репозиториев приняли политику
шо библиотеку с реальным использованиями нельзя удалить, кроме случаев когда там вредоносный код или шото около того
также решается self-hosted репозиторием артефактов типа Artifactory от JFrog, который хранит копии
легковесная контейнерезация окружения выполнения
для разных build action/task нужно разное окружение: какие-то SDK, утилиты определенных версий в PATH и тп
условно говоря, это то что дает Docker: повторяемое окружение для программы
afaik это нет ни в одной из билд систем
и это задача разработчиков или билд инженеров поддерживать локальное и CI окружение в нужном состоянии для успешного билда
задача паршивая, часто это macOS/Windows у разработчиков, Linux на CI
Docker спасибо за всё легенда
хочется на action иметь возможность указать image
это оч больно мейнтейнить в больших командах
я писал тулы и скрипты чисто для этой проблемы, шобы при вызове билда у разработчика быстро проверить все ли пакеты нужных версий есть или доставить
все это версионировалось с проектом в VCS
Sneak peek into combination of bleeding (literally) edge crazy shit Me and the Boys (@TagakovVladimir @bentotbox @alexjlockwood) have been doing to the @lyft Android monorepi build and CI in last few months PR build time with 40 CI Jobs New: 5 minutes Old: 40 minutes pic.twitter.com/KPAKARlyeY
на CI естественно контнейнеры
в Lуft я перед уходом сделал CI на k8s с разными версионированными образами на разные задачи и динамическим шедулингом и автоскейлингом
он стал летать и потреблять 10x меньше денег в месяц, но менеджмент не особо оценил :/
twitter.com/artem_zin/stat…
делал на основе BuildKite CI и вот этого плагина для шедулинга на k8s
вдоль и поперек пришлось переписать налетая на проблемы, все мои наработки сейчас доступны для всех
имхо это как должны работать современные CI системы
github.com/EmbarkStudios/…
@itunderhood Вы думаете, что сделать кастомную версию котлина, с кастомным рантаймом, переписать под него базеловкий рантайм, обновить документацию и переучить пользователей, вместо чего-то типа аннотаций типов - стоит того? Речь все же о коде для сборки, а не коде вообще.
ну смотрите, вроде как:
котлин менять не надо, компилятор менять не надо, надо ограничить в IO JVM на которой его запускаем и стандартную библиотеку
план был такой
если бы я себе представлял это как вы описали — конечно это слишком муторно twitter.com/mekarthedev/st…
JSON/etc вывод для интеграции с IDE и другим тулингом
шо это и зачем: некий набор команд для интроспекции проекта
типа build-system project-info --output json
шобы другой тулинг, например, IDE могла их вызывать и на основе этих данных построить свою модель проекта и тп
в Bazel это сделано лучше всего
там есть и команды query и возможность выполнить код для интроспекции (aspect)
так Bazel IntelliJ плагин синхронизирует проектную модель с IntelliJ
в Gradle это делается путем внезапно сокет соединения с демоном или плагинами
в остальных системах часто приходится парсить текстовый аутпут или вообще повторять их парсинг билд файлов
в Bazel же можно делать ЗАПРОСЫ о проекте, буквально почти SQL: пересечения, исключения и тп, гениально
на масштабах гугла и яндекса это очень полезно в монорепозиториях
на основе Bazel query можно делать оч прикольные вещи
например на CI кверим все таргеты с нужными атрибутами, бьем их на куски и динамически шедулим шарды на CI кластер
собсно я такой шардинг и делал, к распределенному выполнению еще вернусь
в других системах это сложно
мониторинг файловой системы и NON-Blocking IO
современная билд система должна хукаться в механизмы ОС по мониторингу изменений файлов
это нужно, шобы при запуске билда она быстро понимала что в проекте поменялось и отсекала проверку всех файлов на изменения
неблокирующая работа с файлами и сокетами нужна для эффективной утилизации CPU, минимизации сисколлов из билд системы в ядро и тп
io_uring, epoll, kqueue и шо там на шиндоус
Bazel тут ок, Gradle so so, у остальных где как
распределенное ремоутное выполнение билда на кластере машин с контейнерезацией окружения выполнения
подбираемся к самому прикольному и сложному
зачем полагаться на слабый комп разработчика или покупать им $$ машины
если можно выполнять билд на распределенном кластере машин
в 2016 в Juno меня бесили медленные билды на 13 макбуке
но менять на 15шку я не хотел да и не особо они быстрее
родиласть простейшая идея:
копируем файлы на мощный сервер
по ssh выполняем билд команду
копируем файлы обратно
так появился github.com/buildfoundatio…
я пробовал разные варианты синхронизации файлов между сервером и локальной машиной:
NFS и похожие штуки, scp, rsync
rsync своей инкрементальностью и простотой рвал всё и вся, за секунды тягая диффы на тысячи файлов
мне легко выделили стоимость одного макбука на железо сервера
и все 10 андроид разработчиков быстро пересели на Mainframer, ускорив сборку в несколько раз
бонусом стала возможность работы в офисе на крыше или кухне, тк ноут не разряжался за час
я балдел, один сервер тянул 10 человек без проблем
многие компании до сих пор используют
бывший коллега, мы никогда и не общались, написал как-то в ЖЖ критику этой моей поделки 🙃
я с ним согласен, Mainframer простой как две копейки, и это замечательно
там конечн есть и config, localignore, remoteignore файлы и параллельность, но да
theiced.livejournal.com/499970.html
ему безразлична система сборки, яп и тп
нужно просто рабочее окружение на удаленной машине и можно запускать билд удаленно
пример использования выглядит так:
mainframer ./gradlew test
какие то ребята написали IntelliJ плагин, и другие варианты более плотной интеграции
в самих системах сборки есть наработки по удаленному выполнению
state of the art сейчас это Bazel Remote Execution:
каждый билд action передает свои input файлы в кластер, там он шедулится, выполняется, и возвращается клиенту, все это параллельно + ремоут кеш
какое-то время гугл предоставлял облачный сервис для этого на базе Google Cloud Platform, но потом свернули как нерентабельный
внутри гугла это естественно работает и десятки тысяч их разработчиков билдят ремоутно
есть оупен сорс реализации, но задача сложная и кластерная
Gradle пока предоставляет только распределенное выполнение тестов
но не билда, это будет позже
есть наработки и в других билд системах, например, distcpp для плюсов
в идеале вы покупаете это как любой другой облачный сервис
прописываете в конфиге билда настройки для соединения
и получаете перформанс кластера на вашем ноутбуке
Bazel наиболее близкая к этому система
CI в таком варианте тоже может быть тонким клиентом этого кластера
но повторюсь, эффективный менеджмент контейнеров в кластере, шедулинг, сетевые задержки и производительность реально сложные проблемы
короче говоря, это сложно сделать и продать за деньги не сильно больше аренды виртуалок у всяких AWS
гугл решил не продавать
в общем с большего пока всё шо я хотел сказать про современные билд системы
вроде довольно систематизированно, материала тут на несколько докладов
распространите среди жителей жека, особенно если они из JetBrains наконец делают JetBrains Build Tool хыы
ну шо, как вам мегатред про билд системы? (это опрос)
область работы интересная, но неблагодарная
пользователи-разработчики та ещё аудитория
продуктовые компании не понимают как инвестировать в это свои ресурсы, платить за билд тулинг не хотят (я тоже)
🤔
25.0%
ну такое🤔
75.0%
крутозахотелось написать про билд системы чутка нормальных за 10 лет не встречал, плотно работал с Gradle, Buck, Bazel не оч плотно: Make, Maven, Ant, Cargo, Go build
линк на тред
twitter.com/itunderhood/st…
@itunderhood Распространил!
Half-Life 3 confirmed! twitter.com/igrekde/status…
Пятница
@itunderhood Круто пиши ещё А в чем профит иметь проект в котором 100500 модулей (речь про Gradle проект в Lyft который ты упоминал), это монстр монолит такой или кто?
это был Android монорепо, 1.2M строк кода, 2k+ модулей, Kotlin, Java, ~70 разработчиков
неск приложений: для пассажиров, водителей и всякие сервисные в одном репозитории с кучей общего кода, фичи в отдельных модулях
как там говорят? структура проекта отражает структуру компании twitter.com/GoodforGod/sta…
я не думаю, шо такое кол-во кода оправдано для такого продукта
но думаю шо такое кол-во модулей оправдано для такого кол-ва кода
поверх public/private в яп мы получаем изоляцию кода через зависимости
в Bazel есть концепт VISIBILITY модулей — кому-что можно использовать, удобно
не говоря про бенефиты паралельной, инкрементальной* сборки разных кусков кода
в андроиде еще хватает своих приколов вроде обработки ресурсов — это тоже лучше паралелить и изолировать
к такому сетапу приходят многие крупные продукты: Avito, Grab, Uber, FB, Square, Twitter, и тп
инкрементальная компиляция
совершенно забыл, это оч сложная тема
в некоторых яп это частично умеет компилятор — кормим предыдущий и новый стейт, он сам диффит
например, Kotlin
в других — компилятор простой и билд система если хочет делает дифф и кормит ему
— Java
в Bazel инкрементальную компиляцию считают внимание ОПАСНОСТЬЮ
тк сложно гарантировать корректность диффа, стейта компилятора и повторяемость сборки
поэтому все известные интеграции компиляторов там неикнрементальны: Java, Kotlin, Rust, C++, TypeScript
поэтому иметь модуль с большим количеством кода в Bazel плохо
— он будет полностью перекомпилироваться на малейших изменениях
рекомендуется дробить проект на большое кол-во модулей
в Gradle оч крутая инкрементальная компиляция Java и Kotlin
но, в Bazel есть концепция Persistent Workers — демоны для тулов
через них некоторые рулы реализуют stateful компиляцию
вспомнил шо у моих iOS коллег были большие перформас проблемы с компиляцией Swift
и они работали над поддержкой инкрементальности в rules_swift
Тред (Артём Зиннатулин)
WE'VE JUST REMOVED GRADLE FROM LYFT ANDROID REPO (1700+ MODULES, ~70 ENGINEERS), COMMITTED BUILD FILES THAT ARE COMPATIBLE WITH BUCK AND BAZEL (NOT COMPLETELY YET) ME DRUNK ME HOPE DONT NEED TO REVERT SEEYA ALL LOVE YALL pic.twitter.com/KhLeVROiSP
в 2019 я выпилил Gradle из проекта и перевел его на микс Buck и Bazel на одних и тех же BUILD файлах
делал максимально гладко для разработчиков
в нашем кастомном IJ плагине была поддержку подсказок для работы с BUILD файлами
кастомное создание нового модуля через IJ и CLI тул twitter.com/artem_zin/stat…
темы которые мне интересно затронуть: - карьера, частые смены работы - переезд в и уезд из кремниевой долины - политкорректность в IT - Оупен Сорс - IT в СНГ vs IT на Западе (Европа, США) - подкасты, ютюбы, конференции - философия, культура, этика, эстетика, экзистенциализм
так, шо там про IT в СНГ vs на Западе, субъективно:
в СНГ инженеры глубже понимают и интересуются технологиями
на Западе инженеры лучше в продуктовой разработке
конференции, митапы, ютюб, подкасты хорошо это показывают
у нас хардкор и маты, там amazing, awesome twitter.com/itunderhood/st…
в долине я искал хоть сколько-то компетентных людей в рабочих областях и цеплялся за них как мог
в СНГ менеджмент просил больше всё таки продуктовое мышление включать
@itunderhood Пояснишь за подкасты?
нет человека 🌹 душнее 🤙 и чсвшнее 🤗, чем ведущий ✌️ подкаста 😽
за примерами далеко ходить не надо:
- Radio-T
- Мы обречены
- AndroidDevPodcast
- Podlodka
- The Context
- Разбор полетов
разве шо DevZenовцы не напрягали twitter.com/alex_andrero/s…
@itunderhood Пояснишь за ютуб?
единственный ☝️, кто 🦉может 🤔 потягаться 🤝 с душнотой 👩✈️ и чсвшностью 🤠 подкастера 🎙
— ютюбер 🎥
за примерами далеко ходить не надо:
- АйТиБорода
- Мы обречены
- AndroidDevPodcast
- Podlodka
- абстрактный мужик
- Разбор полетов twitter.com/iamitbeard/sta…
в каждой шутке есть доля шутки!
я был ведущим нескольких и гостем многих подкастов, знаю, о чём говорю!
Воскресенье
темы которые мне интересно затронуть: - карьера, частые смены работы - переезд в и уезд из кремниевой долины - политкорректность в IT - Оупен Сорс - IT в СНГ vs IT на Западе (Европа, США) - подкасты, ютюбы, конференции - философия, культура, этика, эстетика, экзистенциализм
про политкорректность и проекция толерантости на западе (ессно включая айти)
— сожрет классический либерализм во всех сферах
быстро деградирует качество культурных артефактов: книги, фильмы, журналисты выдают эмоции за факты
примеров много, из общей и личной практики twitter.com/itunderhood/st…
под проекцией толерантности я имею в виду
шо прогрессивные привелигированные белые в штатах
придумывают как майнорити группы обидятся на шото
и применяют санкции несмотря на отсутствие жалоб от самих групп
master/main, whitelist/blacklist | allow/ignore list
в итоге — массовый культурный марксизм (война это мир и прочие подмены понятий), цензура, и самое страшное — полиция мысли
cancel culture, когда можно попробовать закенселить черного комика или политика за расизм к черным? шо
лучший скетч на эту тему youtube.com/watch?v=Ev373c…
в айтишечку на западе оно уже пришло, скажешь шото логичное, но против прогрессивной повестки
— крест на карьере
у меня много high skilled друзей разного происхождения на западе кто в приватных беседах согласен, но продолжают молча кушать всё это ради денег, карьеры
чел, были знакомы по Android конференциям работал в Pinterest
христианин, я с ним не согласен по куче пунктов
заметил шо компания цензурит консервативные группы юзеров (имеют право), но в правилах ни слова
спрашивал вопросы — уволили, не мог найти работу, пошёл к журналистам
ютюб вот скрыл количество дизлайков
шобы защитить левые медиа и криэйторов под эгидой защиты маленьких каналов от хейт атак
по твитору видно, отсутствие дизлайков — бустинг одинаковых мнений
вы меня дизлайкнуть не можете, поэтому я считай прав во всём, реплаи могу выключить
поэтому я сейчас поеду в кофейню и как положено маленькому криэйтору
смонтирую видео на ютюб исключительно для того, шобы вы на него зашли и влепили мне дизлайк
без шуток
я сделял
дизлайкайте!
youtube.com/watch?v=7oYnZh…
поеду делами позанимаюсь
пока моя маленькая программа написанная на расте, запущенная в Kubernetes кластере потому шо я же инфраструктурный,
показывает вам дизлайки на этом видео
кто ставит лайки? вы все за это ответити
Тред (Артём Зиннатулин)
@itunderhood Очередной долбоеб ведёт айти андерхуд? Бедный, либерализм и политкорректность его пугают :(((
аргументировано!
я как-то делал подробный разбор про Цензуру и Cancel Culture в Айти и Медиа,
есть шо возразить хотя бы на моём низком уровне — прошу
поретвичу вас без проблем :)
youtube.com/watch?v=WPnjdr… twitter.com/Sergey____K/st…
разница в том, шо левые, шо правые (в меньшей степени) меня забанят при возможности
а я и такие как я дадим обоим площадку высказаться
мы не одинаковые
@Sergey____K @itunderhood Среди айтишников таких много
нельзя заставить уважать
можно принудить бояться
не бойтесь
🙃 twitter.com/senecarus/stat…
@itunderhood Изи аргумент - мы оба белые мужики, которым много из опыта определенных групп не понять, поэтому иногда лучше заткнуть ебло
пошли аргументы о неизменяемых признаках,
я СлавянX!
крестьянство не рабство, нам не понять, рабства чёрных над чёрными не было
я был полностью уничтожен как дешевка и засем затыкаю ебало twitter.com/sergey____k/st…
@itunderhood В детсве били много, что-ли? Раз привыкаешь.
недостаточно, язык подвешен был
ударили бы меня за мыслепреступление при встрече? twitter.com/Senecarus/stat…
@itunderhood Мне когда-то казалось, что США - это типа страна свободы. Потом я начал интересоваться их событиями и политикой (насколько это можно из-за океана) и офигел с того, что там не "та же проблема решена лушче", а вообще другой взгляд на действительность.
сша это две страны
демократы и республиканцы с абсолютно разными взглядами на свободы
есть либертарианцы и классические либералы, их меньшинство
Линкольн удержал федерацию при гражданской войне
но если граждане пошли убивать друг друга, стоило ли их оставлять в одном гос-ве? twitter.com/olegchir/statu…
поехал на концерт Антохи MC, буду иногда заходить ретвитить ваши мнения
прикольный малоизвестный чел с необычной музыкой вне жанров и ритмом
во youtu.be/wEF2EbErGn4
@politoHQ @itunderhood Я так понимаю, пункты с 2 по 6 описывают некую нехорошую левую этику – ок, допустим. Но простите, я не понимаю, почему вы институт репутации называете левой этикой только потому, что сторонники ЛЭ им пользуются. Меня еще почему-то в сторонники этой вашей ЛЭ записали.
институт репутации и цензура это разные вещи
критиковать, вступая в диалог
отличается от подавлять, не давая высказаться
частная цензура ок, я просто высказываю мнение
, хотите — баньте или отказывайте в работе, всё в ваших руках twitter.com/mekarthedev/st…
фактам похер на ваши чувства
но гораздо стрёмнее, шо чувствам похер на факты
@itunderhood Конечно разные. Ведь частная дискриминация (в т.ч. цензура) – это инструмент института репутации. Если у владельца площадки вы имеете плохую репутацию – он вас к себе не пускает – идите на другие. Если не сильно плохую – пускает и ведет диалог.
всё так, но есть shadow ban во всех соцсетях
зачем эта квази мера? наверное шобы не бугуртили, а думали шо их не поддерживают
наверное потому шо боятся бугурта
и популяризации альтернативных площадок twitter.com/mekarthedev/st…
@akrescina @itunderhood Надо заткнуться и слушать, а не вонять "аааа кенсел калча"
поэтому и убрали дизлайки с ютюба
заткнитесь и слушайте
новое шоу HBO про плохого белого санту
реклама Gillette про токсичную маскулинность белых цисгендеров
вы же просто хотите заткнуть и заставить бояться
а не диалога
какой тут институт репутации twitter.com/sergey____k/st…
темы которые мне интересно затронуть: - карьера, частые смены работы - переезд в и уезд из кремниевой долины - политкорректность в IT - Оупен Сорс - IT в СНГ vs IT на Западе (Европа, США) - подкасты, ютюбы, конференции - философия, культура, этика, эстетика, экзистенциализм
не про всё поговорил, и ничего страшного, меньше тредов читать
а то эти коллективные аккаунты забивают ленту на раз два
своими кривыми мнениями которые авторы почему то считают очень важными, дизлайков то нет twitter.com/itunderhood/st…
@itunderhood > токсичную маскулинность белых цисгендеров Этот тред лишь подтверждение, что такая проблема есть
один посмел высказаться не по повесточке — проблема
проблема то есть, цензура, shadow banning, и virtue signaling (показание превосходства) не решение
🙃 twitter.com/sergey____k/st…
@itunderhood Второе, тут у нас русская аудитория. Для нас эти ваши BLM и Cancel Culture - это тема специальной олимпиады, а не реальная проблема. Так что нахер ты сюда тащишь проблемы белых альтрайт-реднеков непонятно.
ойвей, политкорректные социал-демократические настроения уже в западной европе и уверенно идут в восточную
но у России как всегда особый путь:
будет настолько плохо, насколько это возможно было представить
и ровно же настолько, насколько было невозможно twitter.com/unetwarm/statu…
корочи, я отлично провёл время на концерте антохи
пока господа тут цивильно обменивались мнениями
пойду обратно в свой твитор @abstract_artem
не забывайте критически думать, и как выйтиизайти
помните, нельзя заставить уважать
с вами был Артём Зиннатуллин
✌️