Дратути Антон – Telegram
Дратути Антон
4.11K subscribers
171 photos
30 videos
215 links
Мемы и личные размышления про управление, код, ml и здравый смысл.

Сейчас руковожу командой OCR in VLM в Яндексе.

Автор: @toshiknoscript
Download Telegram
✍️ Михаил Шуфутинский печатает
Please open Telegram to view this post
VIEW IN TELEGRAM
😁138🔥5🗿4👍1💩1
Ладно, Михаил как-то долго пишет, поэтому напишу я. Ко мне обратились ребята из DevCrowd с просьбой рассказать про их опросник спецов из ML. В целом часть вопросов уже мелькала в большом количестве опросов, но есть и отличия. Со слов менеджера этого проекта:

Мы решили копнуть в глубину:
— сравнить используемые инструменты
— сравнить обязанности и навыки
— сделать срез по полезные курсам, книгам и знаниям

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


Я люблю всякие опросы, поэтому почему бы и не порекомендовать еще один. Поэтому держите ссылочку на опрос и проходите!
👍51
Про старших специалистов (#пролюдей)

Постоянно обсуждаемая тема - кто есть мидл, кто есть синьор, кто есть джун и пр. Бесконечная любовь вешать ярлыки:) Я не люблю. Считаю, что рост у людей не дискретный, а перманентный, поэтому и оценивать его стоит во времени, а не в конкретной точке. В лучших традициях линкедина накидаю мои пункты, кто есть старший специалист. Мнение автора все еще мнение автора:)

Итак, старший специалист:

1. До определенного момента сомневается в своих решениях и самостоятельно ищет для них проверку (критику коллег, подтверждение в интернетиках, POC). Термин "посоветоваться" занимает почетное место в лексиконе при принятии непростых решений.
2. Умеет выходить за рамки своей специальности и поддержать диалог в бизнес-домене, на котором он занят. При этом терпеливо может объяснить суть происходящего в ядерном реакторе домохозяйке или учителю пения.
3. Не любит оценки и сроки, но умеет оценить свою работу максимально точно с учетом всех рисков. Либо декомпозирует задачу и оценивает кусками. При этом стойко держит оборону против чудо-методик современного хреноменеджмента. Но не нарушает правила игры. Старший специалист в первую очередь человек команды.
4. Умеет высоко ценить качественную работу. Свою и коллег. Писькомерку зарыл в юности, когда продул лесенку на турнике младшей сестре.
5. Понимает, что "интересная работа" это примерно на уровне статистической погрешности. Большая часть времени уходит на рутину и нужные, но при этом нифига не интересные, задачи. И видит интерес не в конкретных тасочках и кусочках кода, а в результате, который получится и в пользе, которую нанесет его решение и потраченное время.
6. Постоянно учится. Сам или не сам. Использует все доступные инструменты для обучения. Причем чем дальше, чем область изучения шире. Потому что мы живем в сложносочиненном и сложноподчиненном мире. Всегда есть внешние зависимости.
7. Менторит менее скилованных не потому, что это модно, а потому что видит в этом ценность и знает, как использовать сей процесс на свое благо. Особо продвинутые сдвигаются в сторону коучинга. И в целом отчасти альтруист, потому что стремление делать мир лучше - это не слоган с плаката с депутатом, а суть специалиста.
8. При вынесении решений сразу прикладывает к ним альтернативы и возможные риски и способы их уменьшения. И готов уступать, если его решения не были приняты. Или отступить, подготовиться лучше и зайти на второй круг.
9. Не жалуется на жизнь, а ищет выходы из сложившейся ситуации. Когда все опустили руки знает, как их поднять назад.
10. Понимает, что жизнь - она ширше, а хуманы подвержены куче искажений: ошибки планирования (недозаклад в первую очередь), задний ум сильнее, "я знал это с самого начала" (это когда ты увидел хреновый результат и по умолчанию записал все действия в хреновые), прямая связь между ошибками в работе и личностью - это он виноват, потому что рукожоп (хотя на деле куда чаще виноваты процессы и в целом неверная пищевая цепочка исполнения). Вот он это все старается лечить или избегать.
11. Принимает ошибки других и помогает найти к ним исправления, плюс сделать так, чтобы минимизировать вероятность возникновения их в будущем. Потому что знает, что ошибки младших или исправляют младшие, или повесят сами знаете на кого.
12. Понимает, что стопудово есть кто-то круче его. Есть идеи, которые круче его идей. Есть ситуации, в которых он ну вообще никак не выглядит старшим. Да еще и не все знает:) И краснеет, когда лажает:)
13. Не чмырит тех, у кого меньше опыта. Относится с уважением и эдаким отцовским спокойствием. Все мы рвали штаны на коленках и курили за углом школы.
14. Принимает необходимость что-то поменять, потому что видит ситуацию широко и глубоко. А если не видит, то перед тем, как послать всех в жопу, разбирается и трезво оценивает необходимость изменений и потенциальные выгоды с них.
15. Умеет отстоять свою точку зрения, если уверен, и не важно, кто перед ним стоит.

Вот такое вот пятничное слегка запоздалое получилось. Старшего отличает мудрость - жизненная и профессиональная.
50🔥20👍8💯31🤝1
zmv

Иногда возникает простая и одновременно сложная задачка: переименовать пачку файлов с использованием регулярок. Можно сделать через bash, можно быстро на python скрипт накатать. А для тех, кто использует zsh есть простая альтернатива: zmv.

Чтобы заработало, достаточно в .zshrc положить:

autoload zmv


Дальше можно пользоваться:

zmv [OPTIONS] oldpattern newpattern


Например:

zmv '(*).lis' '$1.txt'


Чтобы не переместить файлики с ошибкой, можно сначала попробовать в режиме дебага, добавив флаг -n:

zmv -n '(*).lis' '$1.txt'


Аналогичная функциональность есть и для cp и ln в командах zcp и zln.

А как бы сделали вы?
👍135🔥5
Задаченька

Что выведет данный код 🤔? Почему это так?


struct Lol {
const int kek;
};

void test() {
Lol *cheburek = new Lol{1};
const int a = cheburek->kek;
Lol *cheburek1 = new (cheburek) Lol{2};
const int b = cheburek1->kek;
const int c = cheburek->kek;

std::cout << a << ' ' << b << ' ' << c << std::endl;
}


P.S. Не гуглите и не пользуйтесь чатботами. Подумайте сами!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯53🤩2
Про задаченьку выше

Давайте разбираться с решением к задаче выше. В комментариях можете почитать более полные рассуждения, мы там всё обсудили 😊. Мой ответ изначально было такой: там будет UB, и нужно использовать std::launder. Но в действительности сейчас (С++20+) — там будет 1 2 2.

Такой ответ был исходя из того, что до 2019 года в стандарте прописывалось (т.е. до C++20), что в случае, когда на куске памяти, куда ссылается указатель объекта, создается новый объект, то все ссылки и указатели старого объекта начинают ссылаться на новый объект, КРОМЕ случаев, когда, например, объект содержит в себе константные члены. Ссылка тык.

Начиная с C++20 все буллеты в этом пункте убрали, таким образом ослабили требования на типы данных. Мотивация была в том, что всякие контейнеры, которые используют placement new было ограничены в использовании и было сложно использовать такие контейнеры для определенных типов данных, потому что по стандарту это было бы UB.

Самая задача была навеяна одним из примеров статьи на хабре про std::launder. Интересная статья, советую прочитать, ещё раз вспомнить про механизмы девиртуализации в том числе 😍.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥2
Forwarded from Programmer memes
С++ на татарском. Теперь вы видели всё!

8️⃣ Programmer memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯14👍51😍1
😁51🤣11👍4🫡1
Yandex CV reading club

Мы с коллегами из Яндекса запустили канал с разбором статей из области компьютерного зрения. Присоединяйтесь, будет интересно!

Подписаться сюда: @timeforcv
🔥11👍4
This media is not supported in your browser
VIEW IN TELEGRAM
AGI-думеры после очередного релиза какой-нибудь LLMки
51😁28👍6🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Я с вами, товарищи!
😁29🐳4🤡1
Использование LLMок в быту

Я бы тут хотел завести дискуссию. Каким образом вы используете LLMки? Какие повседневные задачи вы решаете с их помощью?

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

Другой пример: мне однажды нужно было написать multipart запрос на плюсах, пообщавшись о том, чо эт вообще за зверь, написал. Но при этом сам код, который выдавал LLMка — ну реально был ужасен, там нужно было всё фиксить, реально. Ну и странно, на теории она Лев Толстой, а на деле... 👨‍🦳

И вот сколько я не пытаюсь, почему то на питончике всё работает хорошо, а на плюсах — ну вообще такое. Помните недавний пост про задачку? Так вот я спросил chatgpt, она мне дала правильный ответ. Ну я решил уточнить, что там константный член и понёсся бред 😊. Грустненько.

Мб надо для чего-то еще использовать? Или мб мне просто не везёт 🤨? Поделитесь, пожалуйста!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5
VLM в Нейро

Сегодня у нас большое обновление в Поиске. В том числе, команда VLM тоже приняла в нём участие!

Написали с коллегами пост на хабр про то, как мы затаскивали VLM в Нейро (писал про релиз здесь). В этот раз мы немного раскрыли подробности про то, как работает Нейро, где и зачем потребовалась там мультимодальность. Припорошили немножечко теорией про VLM.

Больше ни слова в посте, приятного прочтения поста!
13🔥10👍7
Про книги

Я не очень часто читаю книги и очень хочу начать читать регулярно. Во времена, когда я хоть с какой-то переодичностью читал книги, наибольшее влияние на меня оказала книга Д.С. Лихачева "Письма о добром и прекрасном". Т.к. я читал достаточно давно, то полное содержимое уже как-то забылось, но какие-то вещи отложились у меня на подкорке 😍. Да бы было что вспомнить, загуглил цитаты (хотя, надо бы перечитать). После прочтения большого списка, выделил для себя следующие три:

Стремиться к высокой цели низкими средствами нельзя. Надо быть одинаково честным как в большом, так и в малом.


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


Когда вы только учитесь ездить на велосипеде, когда думаете, куда повернуть, вы затрачиваете множество усилий. А когда научились и не думаете – вы почти неутомимы. И вот мой совет: научитесь не задумываясь, сразу находить правильные решения. Жить будет легко.


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

А какая книга на вас оказала наибольшее влияние? Она может быть абсолютно любая. Пишите в комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍10💊2🐳1
Полгода переосознания процессов

Я уже почти как полгода лид команды распознавания текста в VLM. Собрали команду с нуля, настроили какие-то процессы: что-то уже успели улучшить, что-то пересобрать. Если хочется к нам в команду (на стажировку или в штат) — можете всегда написать мне в личку пообщаться про это 😀. Описание вакансии здесь.

За эти полгода я очень часто приходил к осознанию "ааааа, так вот оно зачем нужно было", когда думал о каких-то практиках руководителей, которые я наблюдал в разных командах. Мне действительно тогда казалось, что "я всё понимаю", а вот мои руководители "нифига не понимают, им бы поучиться ещё". Тут мне прям стыдно, смею вас заверить👨‍🦳.

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

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

Честно ответив себе на эти вопросы (их может быть, кстати, значительно больше), вы можете неожиданно поменять своё впечатление от назначенных встреч.

Также у меня стало значительно меньше технических задач. И это немного выматывает, иногда вызывает ложные впечателения о том, что я делаю какую-то никому ненужную ерунду😔. Это точно не так. Но об этом в одном из будущих постов, если будет интересно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍315🔥4
Лишняя операция?

Давайте попробуем для типа int на C++ реализовать функцию swap (переставляет значения переменных между собой) самую примитивную:

void swap1(int &a, int &b) {
int t = a;
a = b;
b = t;
}


Тогда дизассемблированный код для -O2 оптимизации в clang 19.1.0 покажет:

swap1(int&, int&):
mov eax, dword ptr [rdi]
mov ecx, dword ptr [rsi]
mov dword ptr [rdi], ecx
mov dword ptr [rsi], eax
ret


Что равносильно следующему коду:

void swap2(int &a, int &b) {
int t1 = a;
int t2 = b;
a = t2;
b = t1;
}


Хьюстон, у нас проблемы 👨‍🦳? Целая лишняя операция затесалась! Давайте обсудим в комментарии ваши мысли, насколько это плохо.

UPD: Куда же без ссылки на godbolt.
UPD 2: навеяно твиттерским постом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Запомним эту мудрость навсегда! (из комментов)
Forwarded from Stanislav Kirillov [UTC +5]
Не нужно экономить инструкции и регистры за компилятор, нужно смотреть на latency & througput инструкций. Например, "оптимизация" с вычитанием просто все замедлит - нужно будет засылать регистры в alu и 1) ждать пока у alu будет свободный порт 2) ждать сам результат вычитания
👍9
ML Party в Белграде

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

Буду рассказывать про то, как делать OCR в VLM: немного поговорим про саму задачу, а также обсудим нюансы, о которых стоит знать, прежде чем идти в эту дремучую чащу. Должно быть интересно, приходите или подключайтесь. Жду от вас лучи поддержки 😍!

Ссылка на регистрацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥28👏53👍2
Ну поехали!

Итак, сегодня выступление на ML Party. План такой (время мск):
🤓 20:00 — Илья Ирхин расскажет про рекламу ресторанов в еде;
🤓 20:30 — Дима Солодуха выступит с докладом про то, как они учат Алису откликаться без имени;
🤓 21:15 — Собсна Я, расскажу про то, как делать OCR в VLM;
🤓 21:45 — Петя Вытовтов посвятит нас в то, как начать прогнозировать миллиметры осадков

Все доклады очень классные! Приходите послушать всех!

Ну и лучи поддержки! Буду вас ждать! В презе будут мемы, некоторые нужно будет поискать 😀

Ссылочка на трансляцию: https://www.youtube.com/live/xXjFWOmj6o8
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26
Forwarded from C++95
#offtop #essay

Löcherdämmerung (Гибель лохов) ⚰️

Решил написать небольшой обзор на современное общество 😉 Это не про C++, но тоже имеет отношение к делу. Уверен, что получилось достаточно злободневно

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

Читайте, может быть будет интересно 🧐
https://telegra.ph/L%C3%B6cherd%C3%A4mmerung-Gibel-lohov-10-20
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡17🔥14🥱8👍21🤔1🤮1