Senior Software Vlogger – Telegram
Senior Software Vlogger
19.5K subscribers
495 photos
29 videos
2 files
987 links
Программирование и IT

Все ссылки и реклама https://news.1rj.ru/str/seniorsoftwarevlogger/3

Для РКН: 5035224480
Download Telegram
Ну что, босота. Первый но-коде с целыми 3-мя блоками коде 🤡
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣103🤡31👍14💊5🔥4
Forwarded from Team Lead Talks Подкаст (Дима Рожков)
This media is not supported in your browser
VIEW IN TELEGRAM
18. Чего боятся и как факапят менеджеры

Плох менеджер, который не факапил. Еще хуже тот, который не боится облажаться. В этом выпуске мы собрали и проработали возможные страхи и провалы менеджеров.

📹 https://youtu.be/GeK8fO8DsU4
🎵 https://podcasters.spotify.com/pod/show/teamleadtalks/episodes/18-e24079h
🅱️ https://boosty.to/teamleadtalks/posts/ae45912e-9bf2-41eb-962a-964a88e61a7f

@teamleadtalks_com
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥8
Как в моем UI приложении память гигабайтами текла

Лет 5 назад дело было, можно и рассказать, тем более, что весь код в опенсорсе. В те годы я работал техлидом фронтенда в компании Mesosphere. Пилил DC/OS UI. В сердце DC/OS стоял Mesos — система управления ресурсами кластера машин. Это конкурент кубернетиса, который над кубернетисом смеялся, а потом кубернетис его убил.

Все ресурсы кластера нам нужно было показывать на UI и долгое время нам хватало поллинга. Кажется, раз в 10 секунд мы дергали API, Mesos останавливал мир чтобы собрать JSON внутреннего состояния и отправлял его нам. Очевидно, что останавливать мир кластера, чтобы отрисовать UI как-то неоптимально. К слову, на больших кластерах UI просто не работал. Mesos не успевал собрать состояние до следующего вызова. Даже если увеличить время запроса. К счастью, кроме синхронного API, у Мезоса был еще поток.

Этот поток был реализован по протоколу RecordIO. По сути это не поток, а вечное соединение. Вы начинаете скачивать файл, первой пачкой прилетает текущее состояние, а потом файл не кончается, Мезос продолжает дописывать сообщения, которые нужно парсить.

У такого подхода есть свои плюсы. Это обычное соединение и оно проходит через любой злой прокси, где вебсокеты не пройдут. Поэтому я быстро разобрался с документацией протокола и написал модуль @dcos/recordio. Все отлично работало, но в длительных тестах я заметил, что у браузера дичайше течет память.

Сперва я думал, что память текла, потому что браузер не очищал буфер. Да, и почему он должен был его очищать? Файл (поток) мы же еще не скачали. Техлид команды Мезос долго не мог понять, почему я просто не могу отбросить то, что уже зачитал. Монстр Си++ не знал, что у браузера нет сырых сокетов. Так бывает, это не его среда. Почему на самом деле текла память мы узнаем дальше. Договорились, что запланируем вебсокеты, но проблема оставалась.

Почему текла память. Держим в голове, что буфер не очищается и постоянно растет. Смотрим на строку выборки очередного сообщения из буфера:

record = rest.substring(recordStartPosition, recordEndPosition);

На этом месте растоманы и сикели заорут в голос. Мне и моему менеджеру пришлось сходить в исходники JavaScript движка V8, чтобы разобраться, что substring возвращает слайс большой строки, а не копирует маленький кусочек. Буквально указатели на начало и конец слайса из большой строки. Мы прокидывали весь поток через RxJs, но по пайплайну в итоге шли не маленькие блоки, а весь буфер скопированный по числу сообщений. В итоге после пары часов работы весь буфер начинал копироваться с каждым хартбитом от Мезоса. Память текла гигабайтами.

Я написал второй пакет @dcos/copychars который должен был форсом копировать только нужный маленький кусок строки. Для этого надо было прибавить к слайсу пробел и потом этот пробел отрезать 🤡 V8 понимал, когда ты пытаешься подклеить пустую строку и не копировал исходник. Вот поэтому.

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

Семья 🫶 | YouTube | Twitter
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥91👍25💊6🌚2🤡1
А вы говорите алгоритм

Только что в закрытом чатике ютуберов произошёл конфуз. Я возразил одному из авторов @extremecode, что он спрятал второго и не показывает. На что получил замечание, что видосики авторы делают строго по очереди.

Но я был уверен, что смотрю все видосики канала.

Пошел проверять, и что вы думаете? Ютуб мне подкидывает строго через одно видео и я постоянно попадаю только на одного из авторов (того душного). Как такое может быть? Алго учитывает голос или стиль?

Интересно, что это именно один и тот же канал. Чистота эксперимента прямо на высоте.
🔥88🤣46🤡28👍9💊9👎3
This media is not supported in your browser
VIEW IN TELEGRAM
Двери нашей семьи всегда открыты!

1️⃣ На первом уровне я включаю возможность постить (гачи)гифки на этом канале.
2️⃣ На втором уровне — архив закрытых стримов
3️⃣ На третьем — стримы в прямом эфире и теплый чатик

👉 Youtube Membership
👉 Boosty

Ты не отворачиваешься от семьи, даже если они отвернулись.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡53🤣36🌚4👍3🔥3
Либерализация чата!

1. Теперь есть allow list с людьми, кто может ссылки на телеги публиковать. Одно время в телеге был спам порно каналов пришлось добавить. 😏

2. Разрешение публиковать все типы контента для семьи. Если кто-то другой попробудет запостить картинку, то бот ее удалит и ограничит отправление картинок на будущее 🥸

Не исключаю, что 2 я зафакапил и все смогут временнно публиковать гачи гифки, но это я уже завтра поправлю.

UPD. Igor спасибо за тест!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🤡122
Михаил спрашивает

Спустя короткое время (3-6 мес) у меня пропадает интерес к работе, как следствие падает КПД, что сказывается на результатах и приводит к увольнению. В этом мой случай наверно уникален, тк вряд-ли кого-то столько раз увольняли после успешного интервью.

В общем вопрос — как поддерживать интерес к работе? (если задачки кажутся тупыми/рутинными, о которых нечего сказать на следующем и интервью: Crud-ы в основном и др. банальности). Ps: для себя пока нашёл решение — слушать подксты твои и других фоном во время рутиной работы (появляется огонёк, от того что что-то новенькое в мозг таки поступает). Я люблю учиться и развиваться так-то…

Радость можно получать не только от новизны. Радость можно так же получать и от стабильности. Тот факт, что ты сделал знакомый круд и все тесты сразу прошли — в этом есть свой кайф. Это как ходить в одну и ту же кафешку и заказывать один и тот же Фо Бо каждый обед. А потом перестать к ним ходить, потому что они перестали Фо делать. (Реально, какая южно азиатская кафешка может перестать делать Фо?!)

Но я отвлёкся.

В своей книге «Поток» Михай Чиксентмихай пишет, что состояние потока, а с ним и радость можно получать от любой деятельности. Михай приводит в пример токаря, который соревновался сам с собой на скорость. Как быстро он может выточить типовую деталь. Он специально вырабатывал идеальную последовательность действий, чтобы побить свой собственный рекорд. Школа Системного Мышления продолжая эту мысль учит, что поток это не магия вдохновения. В поток можно научиться входить. Нужно уметь удерживать внимание на деятельности и постоянно улучшать то, что ты делаешь. Конечно, при этом желательно, чтобы задачи тоже постепенно усложнялись.

Расскажу историю своего друга Саши (@hackflow): однажды в спринт ему прилетела задача сделать загрузку файла для Python Django. Казалось бы очень стандартная задача. Саша решил сделать ее для себя интересной. Выявил полезные абстракции и все чистенько с тестами запрограммировал. Возможно переинженерил, но получил удовольствие и закрыл задачу. Времени особо больше тоже не потратил.

Конечно можно скипануть поиск радости в стабильном и найти работу в R&D, где постоянно нужно будет делать что-то новое. Сделать это не просто, но такие работы есть.

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

В комментарии пасхалка от Copilot. Даже две.

Спасибо, что присылаете #вопросы

ОБНОВА: В твитторе подсказывают, что это может быть ADHD, но я стараюсь избегать диагнозов.

Семья 🫶 | YouTube | Twitter
👍59🌚1🤣1
Статистика по-немецки

Куда бы вы хотели пойти работать? Спросили у немцев 🥹

Не нужны нам ваши заморские корпорации (ну почти). У нас свои автоконерны простаивают. Штабильношть.

PS. На 9 месте Министерство Иностранных Дел. Шах и мат айтишка.
🌚27🤣17🤡7👍2💊2🔥1
Таки я бота запорол и он удаляет пост из чата, поэтому комментировать типа нельзя. Я думал это только с пересылкой рекламы так получилось, а оказывается нет. Со всеми постами. Вечером починю. Го комментировать: https://news.1rj.ru/str/+VKGSgXPS_IqgFcJP
🤡29🤣4
А вы думали, что я комменты под рекламой специально отключил, да? 😏

Бот видит пост-картинку и удаляет. Потому что, внимание, мои аккаунты не в списке доступа!

Смейтесь смейтесь над стареньким 👵
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡80🤣23💊9🌚2
Сакральное программирование

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

По факту это совсем не так. Программист — это просто навык. И он никак не коррелирует с какими-то другими особенностями человека. Нет какой-то обязательной необходимой культуры. Т.е. конечно есть стиль кода, документации и тд. Но я не об этом.

Я вот раньше запаривался, даже настраивал свою платформу для раскатывания своих проектов. Гитхаб экшоны настраивал. Думал все правильно надо делать. Чтобы у репки обязательно readme был. По факту это вообще не нужно. Большинство личных (а то и продакшон) проектов может легко работать с лаптопа. Просто на screen вешаешь их и все.

Но вы можете не знать, что такое screen! Это такая программа для *nix, которая по сути мультиплексер терминала. Зашел ты, например, по ssh на сервер, запустил долгое дело, а сеть лагнула. Терминал отвалился и дело пропало. Но это ты. Я когда на сервер захожу, то первым делом запускаю screen, оно создает виртуальный терминал, который не умрет даже если я выключу питание у своего компа. Запускаю на скрине дело, отсоединяюсь от скрина ctrl+a d и выхожу с сервера. А оно продолжает работать! Потом можно подсоединиться обратно, написать screen -ls получить список всех сессий и подключиться к нужной через screen -r.

Так же и на лаптопе. Запустил телеграм бота на скрине и он молотит. Подключился, логи глянул, отключился. Зачем деплоить? Зачем гитхаб экшоны? Ты инженер или где? Время то не бесконечное.

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

Семья 🫶 | YouTube | Twitter
🔥106🤡26👍14💊11🤣4🌚1
Вот так и со статической типизацией. Компилятор не тупой, он сам выведет типы, дружище. Не надо на каждый пук расчехлять тайпскрипт или го. Просто пишешь код. Он работает. Машина сама нужные типы вывела, прожевала и выкинула. Тебя реально парит, что у твоего кода, который тебе нужно запустить 2 раза не прописаны типы?

Вот потому я и не люблю эти ваши го. Описать структуры! Описать все, что я хочу положить в хеш через енум! Лолшто? Мне больше делать то не фиг. Вот джаваскрипт все сам понимает и просто делает как надо. Не спрашивает, что я хочу положить в мап. Просто кладет. Джаваскрипт — это язык братишка.

Да, лажает иногда из-за этого. Ну так ты же инженер. Ты разве будешь своего братишку интерпрайз духотой нагружать? Нет. Вот и джаваскрипт не нагружай. Для этого есть го.

Семья 🫶 | YouTube | Twitter
🤣78🤡41👍17🔥9👎1🌚1💊1
Ехал object через Object, видит Object undefined. Undefined is not a function NaNNaNNaNNaNNaNNaNNaNNaNNaN.
🤣240🔥16💊12🌚8🤡7👍1
Соер, похоже, подписчиков измеряет в Мебибайтах. Как на флешке пишут мильён байт, а на самом деле там три мегабайта.

PS. Давайте добьем дедуле 10к, а то разволнуется.

https://news.1rj.ru/str/softwareengineervlog/1660
🤣37🤡26👍6
Короткие вопросы

1️⃣ Скажи честно, тебя кто-то из команды ExtremCode покусал? Или ты всё это время был одним из тайных авторов?

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

2️⃣ Можно ли отвязать все привязки с аккаунта пупг Мобайл?

Можно.

3️⃣ Как твои успехи как инди-предпринимателя? Ты не забросил эту затею?

Смотря что считать предпринимательством. Мой канал — это, очевидно, бизнес. Вот как раз получаетя найти менеджера по рекламе и монтёра. Можно теперь развернуться. Да, я больше сейчас вкладываю в @teamleadtalks_com и планирую перевести его на английский. Еще у меня есть курс по собесам. Скоро стартуем 3 поток. Так же планирую написать книгу.

4️⃣ Какой лучший способ устроиться в зарубежную компанию в нынешних реалиях и что для этого нужно?

Способ всегда один: подготовиться, найти вакансию, пройти собес. Приходи на курс, научу готовиться. Да, рыночек холодный. Зарплаты где-то уполовинились, но работу все еще прелагают.

Спасибо за #вопросы!

Семья 🫶 | YouTube | Twitter
🔥20🤡8👍7
Зашел вчера на сервачок

docker system prune -a

Total reclaimed space: 21.56GB
👍61🔥13🤡131
Ну что, хороним Typenoscript?

https://tenor.com/view/rip-coffin-black-ghana-celebrating-gif-16743302

Я когда еще говорил, что транспиляция — от лукавого. Ну комон, у каждой либы свой привкус джава (тайп)скрипта. Хочешь либу покрутить — изволь разобраться в том, как именно они ее решили собирать. Не включили соурс мапы? Ну беда, дружок. Ковыряйся палочкой к шарике сжатого кода. Хочешь прыгнуть к функции в либке, чтобы понять чо там? Ха-ха, прыгнешь на losharik.d.ts. Хочешь скопировать функцию и запустить в repl? Само собой — вычисти типы.

Ну, а что? В других языках тоже так делают (нет). Это нормальное положение вещей! (ахаха) И вообще у сеньоров все настроено один раз и работает (ух, как глубоко в отрицании).

Я рад, что в сам джаваскрипт хотят принести опциональную типизацию. Пока не привнесли — пишешь JSDoc или *.d.ts рядом кладешь, как Тимур Шемсетдинов учит. И все. Дальше твой редактор подтягивает определения типов и ты получаешь почти всю от них пользу и ни одной проблемы.

ИЛИ ВООБЩЕ НЕ ПИШЕШЬ ТИПЫ

Вот и Рич Харрис, который Svelte создал, согласен с прогрессивными ребятами, которые за отмену типов топят. Хотя, чья бы корова мычала, Рич. Компилируемое надмножество языка создал и не краснеет.

Короче, дни Тайпскрипта сочтены. Скажем ему спасибо и отправим на свалку истории. Язык-братишка снова победил, как и завещал его создатель Брендон Айк: «Всегда ставьте на Джаваскрипт».

https://www.youtube.com/watch?v=zPOHY-cZ1wE

Семья 🫶 | YouTube | Twitter
🤡60👍36💊10👎5🌚5🤣5🔥3
Преподносят как если Гугл дает пользу тебе как оратору. На самом деле гугол дает пользу твоему работодателю , что ты занят посторонними делами и не слушаешь All Hands активно 🥸
🤡87🤣17👍11💊4
Ну что, выучи джаву один раз и никогда не будешь голодать?

Любопытно, как решили проблему отсутствия Сборщика мусора в Webassembly. Просто подключили тот, который уже есть в Javanoscript. Если раньше у WASM была отдельная куча, то тут куча будет общая и сам Javanoscript будет чистить за gc языками типа Kotlin.

Причем тут заголовок? А кто его знает ваш гугол? Всю презу построили вокруг Котлина, но в пример еще и Джаву привели. Других GC языков то нет. С другой стороны на каком другом языке ты еще пишешь приложения для андроида и десктопа, если не на Си? Правильно. Наджави.

Вообще, судя по всему, гугл скоро купит этот стартап Котлин и Андрей Бреслав получит много денег, я все правильно понял? В прошлых годах они его благословили для андроида. В этом — языком всей веб платформы делают.

https://youtu.be/RcHER-3gFXI?t=615

Семья 🫶 | YouTube | Twitter
🤡27🔥9👍7🌚5💊1
Всякий раз фрустрация, когда нужно подключить OAuth2.0

Я всех ботов пишу только для себя и всё равно надо разбираться в деталях реализации очередного сервиса. Все делают немного по-разному. У всех свои интерфейсы библиотек. Всем нужно доставать этот redirect_url когда у тебя даже сайта не будет. Это сраненький бот блин!

Просто дай мне сервис токен. Не души, братишка! Реально проще пупетир настроить, чтобы он через браузер те же твиты отправлял, чем все эти приседания сделать. Где мы свернули не туда в технологиях? Хорошо хоть offline mode есть чтобы токен не обновлять каждые два часа.

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

Семья 🫶 | YouTube | Twitter
👍62🤣13💊41