Борис опять
16.6K subscribers
1.54K photos
80 videos
35 files
1.61K links
life = curiosity + irreducible noise

Whois: https://xn--r1a.website/boris_again/3400

Лс: @btseytlin
Download Telegram
Forwarded from Generative Anton
Нашёл еще лучшие практики.

poetry (лучший из всех худших пакетных менеджеров в Python-окружении) год назад решил сделать deprecation одного из способов установить poetry в CI/CD окружении.

Помимо собственно сообщения о том, что этот способ скоро перестанет работать, они вмёржили рандомайзер(!), который с 5%(!) шансом ронял ваш CI/CD билд. Интересно, сколько человекочасов было потрачено на исследование падений таких билдов (и сколько онкол инженеров было поднято из-за этого).

Это конечно кринж и лучше так не делать никогда. Еще лучше даже не думать о возможности так сделать (но теперь вы знаете, что так можно 🌚️️️️️️)

Proofs
😁45👍1
# Catclysm: Dark Days Ahead

Многие здесь за профессиональным контентом, поэтому я редко пишу про игры. Но не спешите переключаться. Сегодня я расскажу про очень необычную игру, которая для меня входит в разряд значимых жизненных опытов, а не только развлечений. Для меня она во многих списках “самых самых”: самое большое количество контента, самый крутой реализм (часто через край), самая крутая RPG, и так далее.

Речь про open-source roguelike “Cataclysm: Dark Days Ahead.” Если одним предложением, то это чрезмерно реалистичный симулятор выживания в киберпанк постапокалипсисе с перманентной смертью и абсурдной свободой действий.

Я без преувеличения играю в нее уже десять лет (помню как будучи junior javascript разработчиком тайком играл в нее на работе, не надо так). Не постоянно конечно. Игра разрабатывается организованной группой психов open-source контрибьюторами, некоторые из которых работают над игрой каждый день последние десять лет. Раз в несколько месяцев игра изменяется, пополняется контентом, делится на форки. Я периодически возвращаюсь и залпом проглатываю все, что появилось с моего последнего визита, и, наигравшись, оставляю игру снова.

Короткой серией постов расскажу, что в этой игре такого интересного.
🔥20👍1😁1😢1
## Символы

Сразу про слона в комнате. Это игра из классических Roguelike, а значит графика выглядит так, как на первом скриншоте.

Разве не видите? Это ночной лес, вон там человек, яма, деревья, кусты. Немногие поймут, в чем же тут дело)))

Это олдовый вариант, с которого я начинал играть. Сейчас уже завезли tileset-ы, которые заменяют СиМвОлЫ на картинки. На втором скрине тот же самый ночной лес, но уже с тайлсетом.

Но я бы всем советовал прочувствовать игру в оригинале. Сначала играть так чрезвычайно тяжело. Затем мозг привыкает и распознает объекты. На последней стадии вы уже не замечаете символов, потому что мозг берет на себя рендеринг и делает его прямо в воображении.

Отсутствие нормальной графики дает игре огромное преимущество: порог для разработки контента максимально низкий. Хочешь добавить монстра? Найди неиспользованную букву на клавиатуре. Но самое главное запрограммируй его. Таким образом игра жертвует графикой в пользу геймплея и разнообразия. В результате в игре есть такие механики, которых не встретишь нигде больше. Аналогичная история с более известным представителем жанра игр для поехавших, Dwarf Fortress.
👍24🤔2😁1
## Геймплей

В Cataclysm вы создаете своего пресонажа, выбирая ему характеристики, бекграуд и прочие детали, и оказываетесь в только что пораженной апокалиптическим катаклизмом альтернативной Америке. Америка альтернативная потому, что еще до всякого катаклизма она была той еще антиутопией. Теперь почти все человечество превратилось в зомби, лавкрафтовские Mi-Go похищают выживших, триффиды Джона Уиндема борются за территорию с фунгалоидами, инопланетная слизь скрещивается с живой природой, отчего животные мутируют в монстров. Посреди этой вакхаканалии находитесь вы. И все, никакой сюжетной линии, делай что хочешь. Мир уже все равно не спасти, поэтому придется выбирать себе занятие самостоятельно. Прямо как в жизни.

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

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

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

Но как бы ты ни был хорош, как бы не готовился, всегда настает тот самый момент. Момент гордыни, когда ты решаешь пощеголять. “Я уже мастер ножевого боя, у меня тревожных кнопок хоть отбавляй, да я урою этого халка одним ножом!” И вот ты снова труп. Или это просто случайность. Кинул гранату, а шрапнель рикошетом прилетела тебе в глаз. Залез в подземелье, а гигантский червь разрушил путь обратно. Выстрелил в зомби, а это был бывший солдат-огнеметчик, и теперь вы оба горите. Взламывал компьютер в лаборатории, нажал не ту кнопку, и в тебя уже стреляют крупнокалиберные турели. В общем вы поняли: рано или поздно ты умираешь.

Эта борьба с враждебной средой очень круто разминает мозги. В каком-то смысле это головоломка, которую приятно разгадывать.
15🔥4🤔3
Одна из визитных карточек игры это машины. Вы можете собирать машины по кусочкам, любой конфигурации. Как правило все начинается с какой-то городским электрокаром, а заканчивается киллдозером с встроенной кухней, кузницей, очистителем воды, рейлганом на крыше, броней с шипами и так далее.

В недавних версиях завезли еще и вертолеты, но я пока не пробовал, потому что персонажа придется учить пилотированию
8🤔3🔥2
## Абсурдный реализм

В игре нужно:
* Вручную распихивать вещи по карманам. Не все вещи влезают в карманы. Например, лук вы не засунете даже в самое большое отделение рюкзака. Карманы могут быть внутри карманов: можно засунуть кобуру в рюкзак, а в кобуру бану с лекарствами, а в банку пилюли. Разные карманы имеют разную скорость доступа к предметам.
* Главное применение этой механики я нашел такое: можно сложить все не нужное для боя в рюкзак, чтобы перед боем его можно было быстро скинуть на землю, а потом поднять и идти дальше.
* Выбирать как носить одежду. Одежда надевается слоями. Ничто не мешает вам надеть трусы поверх дождевого плаща, но будет неудобно. Носки лучше надевать под обувь, а не поверх. Ничто не мешает надеть двое штанов. Но два шлема надеть не получится (ууу вот это косяк!).
Контроллировать диету персонажа, чтоб не разжиреть и не исхудать. Естественно еще как бы не травануться чем-нибудь. Поэтому осторожнее с мясом разных мутантов. Ничто не мешает питаться в основном человеческой плотью, если хочется.

И другое.

С одной стороным все это бесит своим микроменеджментом. С другой стороны это часть той самой интерактивности. Такие механики заставляют действовать примерно так, как ты действовал бы в жизни. Так же реализм соседствует с киберимплатнами, мутантами, потусторонними демонами, что разбавляет происходящее и не позволяет ему превратиться в дрочево.
🔥19👎3
## Лор

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

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

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

Так же прикольно, что лор создается множеством независимых людей, поэтому представляет из себя этакий шотландский ковер из множества кусочков. Это сильно выделяет его среди сфокусированных наративов обычных игр (а хорошо это или плохо решайте сами).
🔥193👍1👎1
На этом все, всем спасибо. Я все еще чувствую, что не смог передать всей сути и ощущения от этой игры. Но я попытался
🔥335👍1👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
👀10😱21
😁322
#лабораторный_журнал

Про тяжелую долю аналитика.

План по дате такой:
1. Найти самый простой и одновременно важный дата-продукт, который можно сделать. Грубо говоря наиболее полезный дешборд.
2. Придумать и построить всю архитектуру, необходимую для создания этого продукта. Но не одноразовую, а такую, будто мы такие продукты собираемся штамповать десятками.
3. Дождаться пока мы наймем дата инженера (настоящего, а не как я)
4. Вместе с ним посмотреть на архитектуру и сделать несколько итераций, пока не будет совсем хорошо.

Вот такой MVP подход к данным.

Самый сложный этап первый. Я копал-копал, ходил на встречи, получил список требований. Указано: надо сделать расчет эффективности климата и выводить его на дашборде. Как считается эффективность скажем температуры за день: доля часов, когда отклонение температуры от заданной больше чем x. Поглядел: затащить все нужные данные непросто будет. Решил удостовериться, что это точно нужная штука.

Иду выяснять: а зачем вам эта метрика? Оказывается, что по ней оценивают, будет ли недобор по массе произведенных растений или нет. Спрашиваю дальше: а как? Какая функция описывает зависимость выходной массы от этой эффективности?

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

Что делать все еще непонятно. Метрика не нужна, считать её я не хочу. А что надо считать не ясно. Скорее бы нанять аналитика, чтобы он выяснял такие вещи.
👍3812🔥1
Forwarded from AbstractDL
The Reversal Curse of LLM

Жаль, но похоже все языковые модели, независимо от размера, лажают на обобщениях фактов: A⠀is⠀B⠀→⠀B⠀is⠀A.

Авторы собрали несколько датасетов с такими логическими следствиями и проверили самые крутые модели (включая LlaMa и GPT-3). Оказалось, что обучаясь на факте "John is a son of Ann", модели не учат "Ann has a son John". А соответствующие логиты даже на капельку больше не становятся. Эта проблема есть и у GPT-4 (см. картинку).

Статья, GitHub
😢24🔥71
#работа

# Как я собеседую аналитиков

Я ML инженер, но на меня упала задача проводить технические собеседования на позицию аналитика данных. Компании требуется человек в Италии, который будет ходить по фабрике и искать как помочь людям с помощью данных. Разыскав что-то он будет доносить эту информацию до моей команды. После чего мы будем вместе придумывать откуда достать нужные данные, как их поместить в DWH и в каком виде презентовать. Мы ожидаем, что человек будет и автономно общаться с людьми, и сам делать анализ с помощью python, SQL и BI инструментов.

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

Я придумал: пусть лучше не я буду допрашивать кандидатов в чем они разбираются, а они будут объяснять это мне. Если человек хороший аналатик, то он сможет мне объяснить свою специфику так, что я пойму. Например, я не знаю тонкостей проведения A/B тестов. Но я точно пойму по рассказу кандидата, разбирается он в них достаточно, чтобы просто объяснить мне, или нет. Дополнительно это проверит навыки коммуникации, ведь на работе кандидату придется объяснять сложные вещи людям, которые понимают сильно меньше меня. Короче говоря можно задавать открытые вопросы вместо закрытых.

Существует небольшой шанс, что человек окажется отличным рассказчиком, а на деле не сможет написать “SELECT * FROM table”. Поэтому я добавил в процесс собеседования простую задачу на SQL. Для решения надо лишь сделать джоин таблицы с самой собой.

Итоговая структура собеседования такая:
1. Вступление, объяснение как будет проходить собеседование, рассказ о компании и команде.
2. Разговор про опыт кандидата. Выбираю один из его проектов и начинаю углубляться в детали. Составляю мнение об опыте и глубине знаний.
3. Кейс: представьте, что вы работаете в компании и вам нужно найти способ оценить эффективность фабрики так, чтобы можно было сравнить несколько фабрик. Явно говорю кандидату, что он может задавать любые вопросы. Что ожидаю: человек задает много вопросов, формулирует необходимость создания метрики, придумывает подходящую метрику. Понимает, что метрика должна быть нормализована, чтобы можно было сравнивать фабрики разных размеров и конфигураций. Один из правильных ответов: ROI (return on investement), но он не единственный. Составляю мнение о способностях кандидата решать задачи автономно.
4. Задача на SQL. Составляю мнение об уровне программирования и SQL.
5. Если остается время задаю дополнительный вопрос для проверки знания статистики.

Мне кажется это довольно простое собеседование. Однако мы уже отсмотрели семь кандидатов (не считая отсеянных на этапе скрининга). Метрику сформулировали только трое, причем ни один по моему мнению не задал достаточно вопросов. Задачу на SQL решили тоже двое. Пока никто не продемонстрировал знаний статистики на уровне “чтобы определить наличие статзначимой зависимости с помощью линейной регрессии применяется F-тест”.

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

UPD:
Я прикрепил ссылку не на ту SQL задачу и всех запутал.
Вот настоящая задача, которую я использую: https://leetcode.com/problems/employees-earning-more-than-their-managers/
40👍11👎2🔥2
# Помогу с поиском работы в EU/US за 50% от первой зарплаты

Запускаю второй поток, потому что первый был удачным: только один участник не смог найти работу в течение трех месяцев (и благополучно пошел на PhD).

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

Что я предлагаю:
1. Помощь с резюме и презентацией опыта работы.
2. Референсы к знакомым.
3. Пробные собеседования.
4. Регулярные office hours по субботам, куда можно придти с любыми вопросами.
5. Помощь в переговорах. Помните как мне помогло послушать умного друга, не вовлеченного в ситуацию?
6. Ощущение, что вы не одни в этом аду.

Дисклеймеры: не могу помочь совсем джунам, не могу помочь с FAANG, гарантий нет, но и потерь в случае провала нет. Могу помочь только по направлениям Machine Learning Engineer/Scientist, Data Analyst/Scientist/Engineer, Python Backend.

Платеж разбивается на два или три месяца.

Алгоритм такой:
1. Пишите мне в лс (@btseytlin), присылайте резюме, кратко опишите, что ищете.
2. Если я не могу вам помочь, то сразу об этом скажу и мы попрощаемся.
3. Созваниваемся, намечаем план работы.

При сомнениях можете попросить меня направить к ребятам с предыдущего потока за отзывами.

В прошлый поток заметил, что много рекомендаций повторяются. В этот раз постараюсь сделать из накопленных материалов методичку по поиску работы и возможно выложу её в open-source.
👍67🔥1612👎3
😁43🤔14🔥4