Наивное программирование
14 subscribers
9 photos
1 file
16 links
как жить, когда ты маленький храбрый тостер
Download Telegram
Ребенка я воспринимаю сейчас в основном как нейросеть. Я ее, конечно, люблю-целую-обожаю, но в целом, если честно, мне гораздо интереснее смотреть, как она учится и комбинирует данные.

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

Теперь, как понимаете, наклейки у нас не приклеены только на котов - потому что те бегают быстро.

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

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

Остальное, что увидел и осознал, - все твое. Поэтому я просто в шоке, когда существо, которое родилось 1,5 года назад, вдруг приходит к каким-то логическим умозаключениям. Для меня по-прежнему чудо, что она уже понимает все, что я говорю. Эта нейросеть жрет в себя все, что не приколочено (в буквальном и фигуральном смысле), потом делает выводы и действует на их основании. Как, сука, как? Вот бы научиться помнить все свои детские мысли - хоть можно было бы понять принцип действия.
Flutter - это фреймворк на Dart для написания гибридных приложений (те, что с единой кодовой базой для Андроида и iOS). Очень шустрый, с кучей плагинов для работы с телефонным железом, короче, в разы лучше четыреждыблядского Ionic, с которым я работала последние пару лет. Артём сейчас проводит мне краткий курс введения, и у меня реально через час-полтора усиленного кодинга выключаются мозги. Я прямо слышу эту заставку Windows - ту-ру-ру-рум! - и внезапно адски хочу спать. Таким образом, конечно, неплохо поправила сбитый режим дня (вчера пошла спать в 11 вечера!), но самой инопланетности Флаттера это не отменяет. Всё, сука, виджет, еще хуже, чем с JS, где всё - объект. BLoC паттерн программирования, который я еще там использую (тоже в первый раз) меня даже меньше напрягает, чем логика и синтаксис Флаттера. В веб-программировании как: вот элемент, хочешь его разместить на странице - создай его, дальше задавай ему паддинг, бордер-хуердер, все такое. А тут - создай виджет Padding, у которого будет ребенок - этот самый элемент и т. д. Понятно, что это просто подход и к нему нужно привыкнуть, но глаз все равно дергается.

А еще очень бесит, что практически невозможно найти курсы для продвинутых. Не говорю о бесплатных - за хороший контент однозначно надо платить, - но практически нереально отыскать курс, где с пользователем не будут сюсюкать в трех отдельных видео, как установить Флаттер под Винду, Мак и Линукс, а дадут опорные точки для изучения без лишней воды. Если сравнивать это с естественными языками, то, допустим, я, человек с родным русским, не жду, что другой человек с родным русским будет преподавать мне белорусский, начиная с обучения кириллице. Он объяснит отличие алфавитов и пойдет дальше. Эх, мечты...
Свой макбук я купила в 2015 г. Конфигурация тогда была одной из топовых: 16 гигов оперативы, проц i7, SSD 250 Gb, 15 дюймов экран. Он и сейчас очень хорошо тянет, у меня, как правило, открыто дофига вкладок Хрома, PhpStorm, XCode, Android Studio и еще симулятор айфона, и он разве что слегка задумывается.

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

Вчера я впервые за 5 лет переустановила систему на макбуке. Полчаса на поднятие и развертку. Пару часов на нужные программы и инструменты (интернет не очень тянул). 140 гигов уже занято - эх, ладно, хотя бы не 240, как было.

На мой взгляд, MacOS была и остается самой удобной операционкой для разработчиков. У нее есть одно очень важное качество, которого нет в Винде или Линуксе - она просто, сука, работает, без сбоев и перерывов. Она не лезет с советами, не переспрашивает тебя 10 раз, у нее есть функционал Линукса и симпатичные GUI там, где они нужны. Никогда раньше не понимала макоёбов, а теперь стала одним из них и не стесняюсь этого. Потому что после Винды ты чувствуешь, будто всю жизнь ходил в ботинках на пару размеров меньше, а тут наконец купил подходящую тебе обувь, и тебе так комфортно, что душа поет.
Будете смеяться - у меня снова новая работа.

Ну потому что в том стартапчике закончились деньги. Что поделать, не взлетело, к тому же, кризис лишил его очередных инвестиций.

Теперь я работаю в компании Netotech (Нижний город Хайфы). Карма моя подпорчена - они платформу для азартных игр пилят. Мегабайты старого и дурно пахнущего кода на чистом PHP-JS-HTML плюс еще один более новый проект (Lumen + VueJS).

Но условия неплохи. Выдали мне огромный свеженький iMac, всякие фрукты-печеньки-соки прямо на стойке в опен-спейсе, карточка на еду (Сибус), кресло, опять же, удобное. Отмечаться утром-вечером не надо. (Старею, начинаю ценить такие мелочи…)

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

Артём считает, что я зажралась (особенно в кризис, когда в стране на 8 млн человек целый миллион безработных).

Ну а я просто считаю, что достойна большего.
Новая работа оказалась тухлой.

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

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

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

В-третьих, я просто вошла в ритм. Знаете, как это бывает - начинаешь херачить, и, пока не останавливаешься, вроде все в порядке (а потом останавливаешься и ложишься немножечко умереть). Ужасно грустно, что от свободного времени остались одни ошметки, но такой период, что поделать. И это пройдет, утешаю я маленькую девочку внутри.

И немного интересного. Полезла в Вики выяснить, почему MySQL именно My, и случайно узнала, почему MariaDB именно Maria. Мю и Мария - дочери Микаэля Видениуса, создателя этих технологий (а в честь сына Макса названа MaxDB).
Хотели перевести мою маму на другого интернет-провайдера (Хот -> Селлком СуперФайбер). Сначала месяца 3 ждали, пока дом в принципе подключат к Селлкому. Потом ждали, пока придет техник. Пришел техник, сказал - а я не могу тут провести провод, надо второй свитч с другой стороны здания. Снова ждали установки свитча. Потом снова ждали техника. В конце концов пришел арабский паренек, сказал - а второй свитч не установили, там просто пустая коробка, но я сейчас проброшу через крышу провод и все подключу (8-этажный дом, на минуточку, свитчи внизу, мама на 7 этаже). Иншалла, провод наконец-то в квартире. Еще немного переговоров с техподдержкой, и у мамы наконец есть 200 Мб скорости.

Почему нас с таким уровнем раздолбайства еще не захватила Сирия, Иордан или Египет? Видимо, у них раздолбаев еще больше.
Слева коробка Хота, справа - Селлкома
Нормальные девушки, когда желают чего-то нового, меняют стрижку. А Женечка меняет работу.

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

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

Так вот - сейчас мне приходится работать с Similarweb API. Это, кто не знает, штука, которая собирает много-много статистики про сайты: количество посетителей, реферралы, длительность визитов и т. д. Очень много данных, неплохие бабки за доступ к API и... никакой, сука, стандартизации в реквестах, которые надо отправлять, и ответах, которые от API приходят. Мне придется в будущем использовать как минимум 25 функций из 80+, которые там есть. Ручками это все писать - увольте, я сдохну от скуки на второй функции. Ок, документация для Postman в JSON-формате - скачала, положила, распарсила алгоритмом, чтобы автоматически сформировать API для PHP (искала существующий - не нашла приличного). Пробежалась по созданным классам - бля, вот тут по-другому параметр передается (почему?.. ладно, похуй, пляшем). Переписала алгоритм. Проверила - ок, вроде норм отсылает. А вот что приходит - это, друзья мои, пиздец. Параметры названы по-разному, где-то даже не собраны в один объект, а просто брошены в кучу - ебитесь, дорогие девелоперы, как хотите. Если бы вы знали, сколько стоит доступ хотя бы на достаточно низком ценовом уровне, какой у моей компании сейчас - а я знаю, - вы бы поняли, почему я так злюсь.

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

Короче, полное несоответствие цены и качества, и это невероятно бесит.
Ага, прикрутила комментарии к каналу. Теперь можно туда писать (но не в предыдущем посте, поскольку он еще без этого).
Сейчас я отложила проект на Ларавеле (PHP) и переключилась на другой проект, который был сделан, переделан и должен быть сделан еще раз с нуля на другой технологии. Честь долбиться с ним выпала мне, как главной салаге, и всю предыдущую неделю я изучала новые для меня AdonisJS, NuxtJS и MongoDB. Должна сказать, что с трудом дожила до выходных, голова лопалась, но я таки шмог.

Для меня "изучать" значит завести новый чистый проект и, сверяясь с документацией, пытаться делать нужное. Создать юзера? Господи, благослови того человека, который 3 дня назад написал адаптер для Mонго под Адонис, сама бы я заебалась. Залогинить юзера? Что-то сложновато, попросила помощи Артёма (он за эту неделю сэкономил мне еще как минимум неделю мучений там, где я застревала). Потом фронтэнд - норм, пошло потихоньку. Потом снова бэкенд - и так сегодня я уже вполне бодро написала middleware, сконфигурировала плагинов, все такое, освоилась, короче. Впрочем, завтра мне предстоит начать систему разрешений, которая должна быть злоебуче сложной, и я прямо собираюсь с силами, чтобы влезть в это дерьмо и выйти победителем, упорядочив его полностью.

Ужасно, ужасно довольна, что теперь могу добавить NodeJS, 2 фреймворка и нереляционную БД в резюме.
Не прошло и 2 недель, как я наконец поняла, каким образом сделать максимально гибкую ("разрешено все, что не запрещено") систему разрешений. Впрочем, за это время я пережила примерно три итерации "сделать - показать начальнику - получить от него фидбек - понегодовать, где мое ТЗ и почему нельзя было объяснить про все тонкости с самого начала - понять, что он и не был в курсе этих тонкостей, пока я не спросила - выдохнуть и переделать". Подозреваю, что страдания мои с разрешениями еще не закончены, но, по крайней мере, с политикой - "deny-override" - я определилась.

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

Придется переделывать эту хрень еще раз - ей-богу, покусаю начальника.
Сейчас у меня параллельно идут 2 проекта, оба на NodeJS, но с разными фреймворками: клиентская часть на NuxtJS (Vue + JavaScript), серверная - на AdonisJS (TypeScript). И я, сука, путаюсь в них! То модуль для работы с Монго (БД) установлю на клиента, то модуль для TailwindCSS - в сервер. То файл с расширением .ts создам в клиенте, то .js - в сервере. Глазик уже дергается немношк от таких оплошностей.

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

(Триггернулась на один из разговоров с "творческим" знакомым.)
Еще раз переделываю чертовы пермишны, уже через самописный модуль, в casbin вся стратегия не уместилась. Если кратко:

1) ресурс может быть полностью разрешен и полностью запрещен для каждого из действий CRUD (create-read-update-delete)
2) ресурс может быть частично разрешен и частично запрещен для каждого из действий CRUD
3) ресурс может быть дополнительно ограничен доменом, и тогда уже в рамках домена продолжают действовать первые 2 правила.

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

Current mood: обнять домен и плакать.
Вчера строю из блоков для Майки всякие домики-машинки, а она их с удовольствием разрушает. Артём смотрит и говорит: это прямо про твое взаимодействие с шефом - ты написала код, потом он приходит, говорит, мол, все не так, и ты начинаешь сначала.

В этой шутке было слишком мало шутки.
Лежу на кровати, работаю. Рядом кошачья жопа - Заза пристроилась около бедра. Вдруг комп начинает ритмично дребезжать. Уррр, перерыв, уррр, перерыв. Ну йопт, думаю, еще не хватало - жесткий диск накрывается, что ли...

Кладу руку на кошечку - и понимаю, что дребезжит не жесткий диск.
Заехали на машине к маме, чтобы кое-что забрать: она спустилась к подъезду, всех действий - буквально вот открыть дверь, кинуть пакет на заднее сиденье, закрыть дверь. Мама, конечно, не удержалась от выдачи ценных указаний. Выезжаем со двора, я с обалдевшими глазами:
- Слушай, 30 секунд времени, а она успела выдать нам данных, как... как...
- Как Apache Kafka.
- Точно!
У нас новости: Артём начал работать в yad2. Для тех, кто не в теме, - это типа Авито, барахолка, снять-сдать-продать квартиру, вот это вот все. Ходит теперь, не отлепляя ладонь от лица, говорит, такого дремучего неэффективного плохо написанного кода еще не видел. Он, мол, настолько легаси, что из него скоро динозавры зарычат.

А у меня вчера был очень непродуктивный день. Майя проснулась в 5.40, после обеда меня свалила дикая головная боль, и я выпала из жизни на пару часов - короче, вечером жалуюсь Артёму: представляешь, сегодня удалось поработать всего три часа (за это время я успела написать нехилый кусок кода и сделать пару коммитов). Он ржет и зовет меня к компу: смотри, говорит, я работал полный день, а вот результат - и показывает ровно одну измененную строчку в гите.
Залипаю в интернете, открыт Хром, куча вкладок, одна из них имеет заглавие "Elastic..." Elastic search! - радостно достраивает мозг. Сознание сонно возражает: да ну, почему ты про него читаешь, мы же в итоге не используем его в проекте, значит, таб уже можно закрыть.
Тыкаю на него. Shein.com, Elastic wide belt, профессиональная деформация, мать ее...
У меня есть детская травма - терпеть не могу одежду на вырост. Мама постоянно покупала что-то на пару размеров больше, напяливала на меня, я, не особо понимая, это носила... короче, я долго и с боем отвоевывала право надевать только то, что хорошо на мне сидит, а не просто "ну такая симпатичная кофточка, ну и что, что большая, тут подоткнуть, там подшить".

В 17 лет у меня случился выпускной из школы. Тетя Марина из Израиля (тм) прислала мне на него шикарное черное платье - которое на мне болталось, я была худой скелетиной. Заколоть лямки, сделать вид, что такой фасон, ок, как-то проехали. Даже не так уж плохо оно на фотографиях смотрится.

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

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