Size: a a a

2020 December 18
FEDOR BORSHEV
Сегодня в 19:00 выступаю на митапе tver.io, сделаю обзор инструментов, которые нужны программистам, чтобы получать от работы настоящее удовольствие.

Приходите — https://www.youtube.com/watch?v=m9ZnwjOubls
источник
2020 December 21
FEDOR BORSHEV
Плато продуктивности

Обычно уровень работоспособности выглядит так: ∿∿∿∿. Подъёмы чередуются со спадами. На подъёме хорошо заниматься творчеством, на спаде — рутиной: закрывать долги, отвечать на письма, общаться с коллегами. Если на спаде сделать творческую работу, ее скорее всего придётся переделывать — вы проснетесь утром и поймёте, что результат никуда не годен.

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

Работа с некачественным кодом сильно выматывает — вместо фокуса на цели приходится разбираться, о чем же думал «тот парень» (и тот, кто его подгонял). В таком режиме волна продуктивности превращается в болото:
∿∿—\____. Хочется уволиться и пойти работать машинистом метро.

Нормальная загрузка программиста похожа на плато: ——————. На плато нет всплесков вроде срочных задач и эмоциональных подъёмов. Но нет и болота с унылым разгребанием долгов. Программист на большом проекте — это марафонец.
источник
2020 December 23
FEDOR BORSHEV
Стрим в эту субботу

Что-то давно я не стримил лайвкодинг. В эту субботу будем исправляться. Марьяна придумала классную фичу для нашей школы: мы хотим дать возможность покупать курс «Самому не проще» в подарок на новый год. Типа платишь денег и оставляешь почту друга, а ему упадёт письмо в новогоднюю ночь.

Запилить эту фичу займёт больше, чем пара часов, так что мы сначала померили спрос: разместили внизу сайта упоминание о подарке, а тем, кто заинтересовался — честно объяснили, что фича пока не готова. Количество оставленных почт и уверенность Марьяны убедили меня, что фичу надо делать.

Будет опять Django, Тильда и pytest. Приходите в субботу в 14:00 — https://youtu.be/fzaZz5mH1yA. И поковыряйте код на гитхабе до стрима, чтобы было интереснее.

Если до этого не смотрели мои стримы, почитайте что это такое.
источник
2020 December 25
FEDOR BORSHEV
Никогда не презентуй по почте

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

Чтобы не наращивать конфликт, достаточно просто говорить. Тупое правило: если видишь в сообщении от коллеги хоть небольшой намек на эмоции — немедленно прекращай общение и назначай встречу. Если сам написал эмоциональное сообщение — стирай скорее.

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

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

Подробнее, почему нельзя показывать важные вещи по почте, рассказывает Андрей Дьяков в записи старого студийного семинара. Посмотрите обязательно, если интересуетесь клиентскими отношениями.
источник
2020 December 26
FEDOR BORSHEV
Начинаем стрим через 15 минут!

https://youtu.be/fzaZz5mH1yA
источник
2020 December 28
FEDOR BORSHEV
Курс «Самому не проще» в подарок

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

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

До нового года так же действует промо-код на скидку 15% — DELEJAN, потом скидок не будет.
источник
2020 December 30
FEDOR BORSHEV
12 факторов: не писать логи в файлы

В «12 факторах» написано: «логи — это поток событий». Сейчас объясню чуть проще.

Если джуниору поставить задачу записывать какие-то события в лог, скорее всего, его код будет выглядеть как-то так:

with open('logs/events.log') as fp:
fp.writeln('Event has happened')

То есть он просто возьмёт и запишет все события в файл. Такая простая и глупая операция сразу сделает ваше предложение жутко неудобным для всех, кто его обслуживает.

1. Никто не будет знать, пока не прочитает код, что logs/events.log — это артефакт, который надо хранить. Если запустить ваше приложение внутри докер-контейнера, то все ваши логи будут жить не больше, чем время жизни контейнера с приложением.
2. Приложение нельзя будет нормально запустить в нескольких экземплярах. Если у вас работают 5 копий (5 контейнеров или 5 серверов), то никто и никогда не скажет, на каком именно сервере лежит logs/events.log, придётся отсматривать все 5.
3. Файлы с логами нужно ротировать, чтобы не заканчивалось место. А если вы пишете по 100 событий в секунду — ротировать быстро.

Все эти проблемы решают централизованные системы логгинга — graphana loki, papertrail или даже datadog. Когда вы их подключаете, ваше приложение пишет логи не в файл, а через сокет на центральный сервер. Архивация и ротация у вас теперь на одной машине. А самое главное — поиск: любое средство хранения логов даёт вам поиск, который работает гораздо удобнее, чем grep.
источник
2021 January 07
FEDOR BORSHEV
Лайвкодинг 9 января в 14:00

На следующей неделе запускается курс «Самому не проще». Мы решили его оформить в виде имейл-курса: на почту всех, кто его купил, будут падать письма с уроками.

На прошлых курсах мы слали письма через postmark: верстали вручную каждый шаблон и рассылали. Сейчас так сделать нельзя — письма сложные, да и хочется сохранить возможность подписаться на курс уже после запуска. Так что решили сделать на базе mailchimp.

Технически мы к этому не готовы — наша существующая интеграция написана на коленке, так что на выходных будем делать её заново. Детальный план расписан в таске.

Стрим будет эту субботу, 9 января, в 14:00 — https://youtu.be/95zJaqwn1L8.
источник
2021 January 08
FEDOR BORSHEV
Новогодний эпизод подкаста

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

Единственное, что мне нравится в подкасте — это разговор с Антоном Давыдовым. Антон — классный архитектор, опытный разработчик и вообще core-контрибьютер важных opensource-штук — Hanami и dry-rb (из которого вырос прекрасный dry-python). От разговора с ним у меня ощущение, что болтаешь в баре с чуваком, который разделяет твои профессиональные чувства и ценности, но не настолько близко, чтобы вам было совсем не о чем говорить. Круто же!

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

Слушайте на Soundcloud и Apple Podcasts. И напишите в комментах, что думаете — я жутко переживаю и мне очень важно ваше мнение.
источник
2021 January 09
FEDOR BORSHEV
Начинаем через 15 минут — https://youtu.be/95zJaqwn1L8
источник
2021 January 11
FEDOR BORSHEV
Утренние ритуалы — 1: медитация

Как вы и проголосовали, начинаю рассказывать про свои утренние ритуалы. Самый главный утренний ритуал у меня — медитация. С перерывами я медитирую уже около трёх лет. На медитацию я трачу от 5 до 20 минут в день — в зависимости от настроения и свободного времени.

Медитация для меня — не эзотерика, не «уроки спокойствия», а простая тренировка сознания: когда я достаточно долго по утрам практикуюсь в остановке внутреннего диалога, я гораздо лучше контролирую себя в течение дня: вовремя поймаю себя, когда устал и переработал, не съем или не напишу лишнего.

Вторая вещь, которые дают мне медитации, — осознанность: с ними я больше радуюсь простым вещам вроде приятных запахов и вкусов, лучше воспринимаю музыку, получаю больше приятных ощущений в спортзале. Более сложные радости вроде тёплых слов или хороших цифр KPI тоже заходят лучше.

Для медитаций я использую Headspace. Знаю, что есть уже более популярные приложения вроде Calm или даже какие-то медитации на русском, но я сильно привык к голосу Энди, его основателя и главного диктора.
источник
2021 January 13
FEDOR BORSHEV
В прошлый вторник ушло первое письмо курса «Самому не проще». Рассказываем о психологических причинах не-делегирования. Мой любимый кусок — о том, почему не делегируют шизоиды: удивительно было почитать советы профессионального психолога, которые один-к-одному повторяли мои собственные изобретения для себя самого.

Следующие два письма более хардовые: о том, как и кому поручать задачи и как затем контролировать результат. Ещё не поздно успеть, до субботы действует промокод LASTCALL-DELEGATE на 10% скидки.
источник
2021 January 14
FEDOR BORSHEV
Зафиксирую навеки, чем отличается продакт-менеджер от проджект-менеджера.

В разных компаниях по-разному называют одних и тех же людей. Просишь порекомендовать продактов, а тебе дают человека, который владел продуктом в какой-нибудь крупной компании, классно менеджерит программистов и умеет собирать бизнес-требования, но понятия не имеет, чем LTV отличается от ARPU/ARPPU, и не разбирается в статистике.

Так вот, классификация простая: продакт-менеджер решает, что именно должна сделать разработка, чтобы бизнес заработал денег. А проджект — делает так, чтобы это случилось.

Ставьте плюсики, если согласны.
источник
2021 January 15
FEDOR BORSHEV
Фундаментальная ошибка атрибуции

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

К примеру, если коллега на работе зло хлопает дверью, мы внутри подумаем: «Вот несдержанный козёл!» А если сами хлопнем дверью, выходя с горячей встречи, то свалим всё на эту встречу: «меня разозлили».

Поискать фундаментальную ошибку атрибуции помогает, когда вы договариваетесь с кем-нибудь, кто вам кажется странным: к примеру, с клиентом или коллегой, которые не готовы обсуждать свои замечания. Не считайте их странными — всё равно в речи проскочит, и будет только хуже. Не пытайтесь надавить или сагрессивничать. Лучше просто задайте себе вопрос: «А какие внешние обстоятельства могли вызвать такое поведение? Как можно было бы на них повлиять?»
источник
2021 January 16
FEDOR BORSHEV
Отличный способ поработать в бюро

Тут Вася Половнёв выложил вакансию инженера поддержки в бюро. Это — отличный способ опылиться бюрошной культурой: вы поймёте какой должна быть коммуникация в удалённой работе, увидите настоящую личную ответственность и вообще, поработаете в компании, в которой знают, что значит «сделать» и спрашивают за результат, а не за время.

Технические подробности — на бюрошном сайте.
источник
2021 January 18
FEDOR BORSHEV
Как сэкономить время в ютубе

Я много пользуюсь ютубом — туплю в видосики, устраиваю стримы, изредка смотрю записи с конференций. За счёт огромного количества контента и мощного механизма рекомендаций ютуб легко захватывает время: посмотришь что-нибудь полезное, а тебе очень вовремя напоминают, что вышла новая серия «Сдохни или умри» или что ты посмотрел новый клип Little Big всего 18 раз.

Конечно, можно отключить автопроигрывание, настроить ограничения через ScreenTime или в приложении ютуба. Но это — иллюзия контроля: всё равно у тебя перед глазами всегда будет штука, которая управляет твоим вниманием. Рано или поздно ты сам нарушишь эти ограничения — это всего лишь вопрос времени.

Полгода назад я нашёл гораздо более интересный способ обезоружить эту адскую рекомендательную машину. Дело в том, что у каждого клиента ютуба, включая браузер или любой SmartTV, в настройках есть опция «Совсем отключить историю воспроизведения».

Без истории рекомендательная машина лишается самого главного знания — наших предпочтений. Без предпочтений она начинает показывать дефолтные рекомендации — те же, что показывает анонимным юзерам, — «Уральских пельменей», попсовые клипы и котят. Рекомендации превращаются в визуальный мусор, и вы по ним не переходите. Вот уже полгода для меня ютуб — это удобный видеохостинг, а не площадка для залипания.

Отключите историю в ютубе.
источник
2021 January 20
FEDOR BORSHEV
Утренние ритуалы — 2: рефлексия привычек

У меня есть несколько полезных ежедневных привычек, которые внедрены ещё не настолько крепко, как чистить зубы, — привычка много спать, делать зарядку, писать в дневник. Чтобы следить за этими привычками, я каждое утро после медитации анализирую свой вчерашний день: Всё ли получилось сделать? Если не получилось — почему?

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

К примеру, благодаря трекеру привычек я избавился от болей в спине — до него я никак не мог заставить себя делать прописанные доктором упражнения, хоть они и занимают 5 минут в день. Пару месяцев поделал при помощи трекера привычек — и всё, уже хочется делать самому.
источник
2021 January 21
FEDOR BORSHEV
Новый эпизод подкаста: хаос

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

Слушайте везде (18+): SoundCloud, Apple Podcasts, Яндекс.Музыка, Google Podcasts, Castbox, RSS
источник
2021 January 22
FEDOR BORSHEV
12 факторов: неизменяемые релизы

Версия приложения, которую можно запустить в проде (или стейджинге), — это релиз. Релиз — иммутабельная штука: нельзя взять и что-нибудь поменять в релизе. Если нужно что-то поменять в коде приложения, делают новый релиз.

Релизы нужны, чтобы однозначно идентифицировать версию приложения в трейсах ошибок (к примеру, см. как клёво работает Sentry с релизами), а также для того, чтобы чётко было понятно, куда откатываться в случае проблем с деплоем: если не зашёл новый релиз — просто запускаем старый.

Релизы называют либо как хеш последнего коммита (типа релиз 19e267f04), либо просто по номерам билдов, типа релиз #19374. Если приложение пакуют в докер, номер релиза обычно записывают в лейбл контейнера.
источник
2021 January 23
FEDOR BORSHEV
У меня есть старая мечта — отказаться совсем от работы с железками на проектах. Сейчас я обычно покупаю одну или несколько VPS и настраиваю Docker Swarm, но хочу, чтобы было проще — чтобы запушил в мастер, и всё само оказывалось на проде. Для этого подходят PaaS вроде Heroku, но для небольших проектов это кажется дороговато.

Сегодня потратил 40 минут на изучение нового PaaS от Digitalocean (рефка). Вроде всё умеет и стоит дешевле, чем Heroku. Минус — очень скудная документация, есть ощущение, что выкатили какое-то демо.
источник