Стендап Сьогодні
Що я зробив, що я хочу зробити, і що це все значить.
Повсякденні здобутки в форматі стендапу.
Детальніше в статті
Підписатись на RSS
📢
Канал в Telegram @stendap_sogodni
🦣
@stendap_sogodni@shevtsov.me в Федиверсі
12.12.2025
До оптимізації можна підходити з різних боків
От є в тебе певне місце в застосунку, де все гальмує через запити до бази. Та ти, звісно, хочеш цю ситуацію покращити. Але як?
Мабуть, перший шлях, який спадає на думку — це оптимізувати запит. Засобами бази. Впровадити індекс чи ще щось там. Технічно, це було б гарно, втім не кожний запит піддається оптимізації в принципі — деякі ну ніяк не хочуть бути швидкими.
Тоді можна натомість поміняти базу. Знайти кращу базу, яка вміє робити такі запити ефективно. Потужний шлях, тільки дорогий та ризикований — бо не відразу зрозумієш, що нова база чимсь не влаштовує.
А може, базу залишити, а замінити апаратну основу? Ну там, додати памʼяті чи швидший диск. Може, запит стане не таким повільним. Масштабувати це з одного боку дорого, бо витрати зростають, а з іншого боку — зазвичай тут мінімальні витрати робочого часу. А він коштує на порядки більше будь-якого заліза.
Почекай, то подивімося, як той запит робиться? Раптом виявиш, що застосунок повільний, бо робить той запит без потреби кілька разів. Може, там кеш поставити — та й годі?
Головне — не поспішати зі змінами, щоб не наробити дурниць. Озирнутися ширше, спитати порад. А потім вирішувати, що робити та якою ціною.
11.12.2025
Розумне світло із HomeAssistant, Philips Hue та Shelly
Перший з кількох постів про реалізацію електрики для мого санвузла. Так, там матеріалу на маленьку книжку!
Я люблю сучасне багатомодульне освітлення. Але ненавиджу: пульти керування, застосунки, та панелі вимикачів, що нагадують кабіну літака.
Отже, коли робив дизайн власного санвузла, поставив цікаву задачу: щоб не тільки за перемиканням стінного вимикача вмикалося декілька модулів світла — стельове, LED стрічки, підсвітка шафи, а ще й щоб освітлення це відповідало порі доби. Заходиш вдень — бачиш холодне денне світло. Ввечері — тепле. Вночі — тільки підлогові стрічки LED утворюють мʼяке нічне світіння. Але все це — без людської участі, суто через один та той самий перемикач.
Отже… Почнемо зі стельового освітлення. Довго перебирав варіанти та зупинився на Philips Hue Enrave S. Насамперед це якісні LED та добротна побудова. Але також я був впевнений, що з Hue буде працювати Home Assistant, та не створить проблем. Так, в цілому, й вийшло.
Є тільки один нюанс: будь-яка лампа Hue не буде працювати з класичним вимикачем, бо її електроніка мусить бути завжди заживлена. Отже, між лампою та вимикачем буде розумна начинка. Але… якщо HomeAssistant чомусь не працює, світло повинно вмикатися й без нього. Повір моєму досвіду — не роби розумний будинок без резервного керування, бо залишишся без зручностей в найбільш незручний час.
Знайомся — реле Shelly Plus 2PM. Я вже писав про нього, але в цьому проєкті реле розкривається ширше. В нього є два виходи — як раз на ванну та туалет — але також два входи, до яких підʼєднується той самий класичний вимикач.
В цього реле вже достатньо мозків, щоб керувати виходом зі входу. Але таке нам не треба, памʼятаєш? Тому насправді в HomeAssistant сидить автоматизація, яка слухає стан входу реле та передає Philips Hue команду увімкнення чи вимкнення. А виходи реле залишаються заживленими завжди.
Та тепер останній момент — що ж робить коли HA зліг? Власне, що мене переконало в виборі реле — це те, що на ньому можна також виконувати скрипти — на JavaScript. Та я знайшов скрипт, який перевіряє доступність HA та перемикає реле в незалежний режим, коли HA немає. Це ж фантастика!
І все це, звісно, тільки початок всієї реалізації.
(PS: не припиняю вражатися, що малесеньке реле, яке влазить за вимикачем в стінну коробку, містить в собі цілий компʼютер із Wi-Fi, Bluetooth та так, навіть віртуальною машиною JavaScript!)
10.12.2025
Програмування займає весь наданий час
Ще одна тема від пана Степана.
Програмісти — цікаві працівники. (Або це програмування — цікава задача.) Під час дай їм тиждень на задачу — зроблять за тиждень. Дай місяць — зроблять за місяць. Взагалі не давай ніяких обмежень — можуть й три місяці полірувати.
Це не тому, що вони ліниві, скоріше навпаки — в кожній задачі можуть знайти ще і ще роботи. Програмісти люблять свою роботу! Та люблять гарний результат. Настільки, що просто не знають, де й зупинитися.
Програмування на результат вимагає часових рамок. Без них жодна задача з програмування не має ніякого завершеного стану. Завжди залишається недописаний тест, непокритий крайовий випадок, не повністю впорядковані класи.
Якщо робиш проєкт як хобі — з цим простіше. Бо, або тобі взагалі байдуже, що з ним станеться, або ти все ж хочеш проєкт випустити та робиш в мінімальні терміни. Виходить парадокс: те, що на роботі зайняло б ітерацію, у своєму проєкті виходить за вечір. Так, десь воно буде поламане, тестів взагалі не буде, половину ми раніше — накопіювали б зі старих проєктів, а тепер — просто навайбкодимо. Але ж результат буде!
Мені, зокрема, дуже некомфортно працювати, коли мені не ставлять жодних рамок. Ну, як, “нам потрібно якісно, а ти вже працюй, скільки потрібно”. Але ж ми не космічні кораблі запускаємо! Тому робота й розтягується на довше, ніж її варто було б робити.
09.12.2025
Вихід від інженера — його рішення
Дякую за цю тему пану Степану.
Програмні інженери бояться, що їх замінить LLM, бо LLM чудово пише код. Вони не враховують при цьому, що код має відʼємну цінність. Те, що програміст пише код, взагалі є побічним результатом, особливістю реалізації на поточний момент історії.
Справжньою цінністю, яку приносить інженер, є його рішення.
З просуванням твоєї карʼєри рішення збільшуються в розмірі. На початку ти, може, вільний в реалізації функції чи класу. Потім переходиш до більших модулів, застосунків, цілих систем. На кожному рівні дещо вже вирішено за тебе, а решта — твоя відповідальність.
Видатний інженер здатний знаходити неординарні рішення, думати поза обмеженнями, переосмислювати задачу. Не просто “писати код”. Та дійсно, рішення певного рівня цілком можна віддати на LLM та вона зробить їх не гірше. Це тільки значить, що людські рішення підносяться на вищі рівні. Та, в цілому, так і будується моя робота з LLM: я роблю рішення високого рівня та передаю їй написання коду.
Мабуть, це вимагає певної впевненості в собі та сміливості. Бо, власне, коли ти не вирішуєш сам, а звертаєшся до керівника, то тим самим окреслюєш свій рівень та свою сферу відповідальності. Звісно, за власні рішення доведеться відповідати, в цьому і є цінність твоєї посади. Знову-таки, LLM згенерує що завгодно, але відповідальною не буде ніколи. Ти її керівник.
Отже, пропоную звернути увагу на те, які рішення ти приймаєш, а де впевненість (або довіра) закінчується.
08.12.2025
Три книги, які я рекомендую до читання
Я, чесно скажу, не фанат читання загальних повчальних книжок з програмування. Спеціалізовану книгу - полюбляю. А загальну… Ну ось, знайшов три таких, які я дійсно часто згадую.
The Pragmatic Programmer - моя улюблена книга з “практики програмування”. Тут немає конкретної мови чи підходу — тільки принципи та поради. Мені, звісно, зараз багато в ній здається банально очевидним, але це тому, що я її читав. Запевняю, ця книга зробить з тебе кращого програміста.
Domain-Driven Design - ця книжка в принципі описує певний підхід до архітектури застосунків — від спілкування з замовниками до розбиття на класи. Я ніколи не користувався цим підходом. Але це й не потрібно, бо ідеї закладені в цій книжці достатньо загальні, щоб користуватися ними навколо. Зокрема ідея того, що код продукту повинен використовувати ті ж назви, що й опис його бізнес-логіки.
The War of Art - так, це не книга з програмування. Це маніфест творчої людини. Вона торкається знайомих кожному програмісту труднощів. Зокрема, головне тут — ідея “опору” (resistance) - уявної сили, що заважає нам творити. Книга напівпоетична, але має, може, найпрактичніші з порад про те, як подолати опір та творити. Я наполегливо рекомендую аудіоверсію від автора, бо він читає з великим почуттям.
А у вас є такі книги? Ну, щоб не Кнут чи Кормен-Лайзерсон-Рівест, а щось що ти дійсно читав та досі згадуєш?
05.12.2025
Соціальні танці та життя
💃🕺 Тиждень танців закінчується. З понеділка повертаємось до простих, зрозумілих речей — інфраструктури, архітектури, програмування.
Хочу закінчити по те, як соціальні танці допомагають в житті.
Часто чоловіки уникають танців через те, що це “дівчаче заняття”. Втім, як я писав, соціальні парні танці навпаки ставлять чоловіків та жінок в суворі гендерні ролі. Ти не просто є присутнім в жіночій компанії, ти ведеш, ти ставиш тон, ти керуєш. Бути лідером в танці — це первісно маскулінне проявлення.
Втім виявляється, що це не так просто! Ведення вимагає впевненості в собі. Практика лідерства в безпечному середовищі танців допомагає знайти ті ж якості у житті, зрозуміти — що це взагалі таке — вести, проявляти ініціативу, думати наперед. Я просто не знаю, де ти ще знайдеш таку практику в такому обсязі, якщо не в танцях.
Також, зазначу, що соціальні танцюристи утворюють дуже дружні спільноти. Це особливе хобі, тут немає явної конкуренції. Зате танець — це завжди робота на двох! (Окремо стоїть сальса руеда де касіно, де взагалі всі стоять в одному колі та партнери обмінюються майже після кожного руху.) Отже, партнери дійсно потрібні один одному та зацікавлені в спільному зростанні. На тренуваннях завжди доброзичлива атмосфера.
Пишу це та збираюся на наступне тренування. Де, знаю, доведеться трохи подумати, трохи напружитися, трохи навчитися, де буде весело, буде успіх, буде радість, буде зростання, буде весело. Чудові плани на пʼятницю, хіба ні?
04.12.2025
Соціальні танці та сексуальність
Певно, такої теми ніхто не очікував на моєму каналі! Втім, я гадаю це розуміння позбавить вас деяких перешкод до захоплення танцями. Особливо чоловіків.
Коли я починав займатися соціальними танцями, то в мене на той час було дві ментальні моделі.
Перша — я танцюю з дівчиною, бо в мене є намір з нею спати. Гадаю, в більшості чоловіків саме таке ставлення до танців, якщо та коли вони вже до них доходять. Десь в клубі, на дискотеці тощо. І це цілком нормальна причина танцювати!
Але як тільки ти приходиш вчитися танцю, то ця модель терпить повний розгром, бо тобі доведеться танцювати з довгою низкою дівчат, з якими спати ти не будеш. Суто обʼєктивно.
Та на такий випадок зʼявляється друга ментальна модель — цей танець позбавлений сексуального змісту, це не більше ніж вправа. Звісно, можна й так танцювати. Але тепер ми маємо інший когнітивний дисонанс: соціальні танці сповнені сексуальності. Танцювати їх “як вправу” це як їсти кашу без масла… та без солі.
З цими двома крайностями в голові танцювати просто некомфортно. Ти постійно знаходишся в стресі: це не надто близька позиція? якщо я тримаю її рукою за голий живіт, що це каже про мої наміри? і з такими думками ти ніколи не просунешся в танцях.
Ох, багато мені було потрібно часу, щоб знайти простір посередині. Безпечний простір! Бо так, танець невідʼємно сексуальний, але ця сексуальність обмежена безпечними кордонами. Насамперед танець — це танець, та не зобовʼязує ні до чого. Та завдяки наявності цих кордонів партнери можуть розслабитися та проявляти себе впевнено та без обтяжень.
Та тоді можна з задоволенням танцювати з ким завгодно скільки завгодно, послабити свої вимоги, навчитися проявляти себе та розуміти себе, та взагалі відкрити в житті новий вимір. Дякую за увагу, в мене все.
03.12.2025
Мова та запис танців
Всі тут знають, як я люблю вести нотатки — тож нічого дивного, що й танцювальні комбінації захотілося записувати. Але як? Я був здивований дізнатися, що гарного способу… практично немає!
Я наївно вирішив, що для танців існує щось схоже на музичну грамоту. Знайшов, наприклад, нотацію Бенеша та Лабанотацію. Але — на відміну від музичної партитури, ними практично ніхто не користується.
Зазвичай текстом танці записуються через вже відомі “примітиви”, наприклад - “базовий крок”, “хамерлок”, “болеро”. Що вони всі значать — треба, щоб тобі показали. Влучних описів “з нуля” я поки не бачив. І тут друга проблема — багато рухів не мають назви взагалі, а отже передаються суто на практиці.
Що веде мене до наступного висновку… танець не зберігається у письмовій формі! Ми можемо читати письменні твори тисячолітньої давнини, можемо відтворити музику Моцарта такою, якою вона була. А танці — ні! Всі танці, які ми знаємо, збереглися через передачу від вчителя до учня. І це, на мою думку, дуже особливо! Ти стаєш причетний до справжньої усної традиції.
(З появою відео ситуація змінилася, бо по відео вже можна спробувати відтворити танець, яким він був. Це не так легко, як здається — але принаймні можливо.)
А ще цікаво було помітити, що думати про танці це теж особливий режим. Я звик думати словами, але про танці думаєш… тілом? Це як… дізнатися, що в Вімі є не тільки режим команд та режим вставки, а ще й візуальний режим! Надихає!
(Ну й сумніваюся, що LLM на щось здатні в цій галузі. )
02.12.2025
Ведення та слідування в соціальних танцях
Якщо подивитися збоку на соціальний танець — мою улюблену сальсу, наприклад — то не є очевидним, що в танцюристів різні ролі. Обидва рухаються в музику, щось там роблять. Може в тебе є досвід клубних танців, там теж кожний танцює сам за себе, як хоче. Чи досвід будь-якого парного спорту, хай то бадмінтон чи бокс. Пара працює на спільний результат, але кожен має рівну частину відповідальності.
Коли приходиш перший раз на тренування з сальси чи бачати, це відчуття може підсилитися. Ось кроки хлопчиків, ось кроки дівчаток… Вивчили? Тепер стаємо в пару, робимо те ж саме.
Втім, це зовсім не так. В соціальних танцях є дві чітких, суворих ролі: ведучий та ведена, лідер та фоловер. Вони відрізняються не тільки кроками чи рухами — вони мають фундаментально різні задачі. Настільки різні, що партнери вкрай рідко міняються ролями — справа тут не в тому, щоб вивчити чужі рухи. Чоловіку властиво вести, а жінці — вестися. (Тут дисклеймер, що люди різні, та кожен сам обирає свою роль.)
Соціальний танець — це не синхронне плавання. Це завжди заклик та відповідь. Це дуже важливо зрозуміти, бо в цьому і є танець. Успіх танцю, задоволення від танцю не в тому, щоб гарно станцювати свою частину, а у звʼязку між партнерами та вдалому виконанню власної ролі в цьому асиметричному союзі.
Ведення — це, власне коли лідер власними рухами та жестами пояснює фоловеру, що далі робити.Хоча теоретично вести можна будь-якими рухами, на практиці існує певна “мова жестів”, в якої в кожного свій “словниковий запас”.
Отже, роль лідера - “вести”. З попередньої крайності (кожен танцює сам за себе) можна перестрибнути в протилежну — що ведення це керування рухами партнерки. Я хочу, щоб вона йшла — я її тягну. Хочу, щоб повернулася — кручу. І так далі. Таке ведення придушує потенціал фоловера. Натомість лідер власним веденням утворює простір, в якому може розкритися фоловер. До того ж вести — значить ще й вирішувати, що танцювати далі, створювати структуру танцю. (Ну й це наче очевидно, в той же ж час ти встигаєш танцювати за себе.)
Роль фоловера - “слідувати”. Хоча це звучить дуже просто (ну роби те, що тобі показують — та й усе), я до кінця не розумію, як партнеркам вдається! Почнемо з того, що слідувати — значить відповідати веденню лідера. Не робити рухів, які йдуть всупереч веденню. (Типова помилка початківця — починати власну партію ще до того, як відбулося ведення.) Але ж от в чому парадокс — ведення не задає всі рухи. Це ж навіть фізично неможливо! Натомість задача фоловера — наповнити створену лідером структуру власним стилем.
Ось так виходить воно все складно. Зі сторони й не зрозуміти.
01.12.2025
Танці — це Dark Souls соціальних активностей
💃🕺 Вітаю на Тижні Танців на моєму каналі! Цього року я перевідкрив для себе забуте захоплення — соціальні танці, а саме сальсу та бачату. Затягнути когось нового танцювати — приблизно так само складно, як переконати, що Dark Souls це не знущання з геймерів, а гра, яка здатна принести більше задоволення ніж будь-яка інша. Після періоду навчання, звісно. Але на цьому схожість соціальних танців з Dark Souls не закінчується.
🎲 Не вийде просто “лупасити по кнопках”. Як і Dark Souls, танці існують на взаємодії відчуттів та інтелекту. Кожний початий рух доведеться закінчувати. Темп, ритм, спостереження та влучно обрані рухи — головне. Як і в Dark Souls, тобі доведеться зазирати в майбутнє та бути готовим реагувати та ініціювати.
🎁 Куди б ти не пішов, завжди знайдеш щось цікаве. Прогресія в танці цілком залежить від тебе, та на кожному тренуванні та вечірці ти збираєш для себе нові елементи. Як і в Dark Souls, це не мета, а завжди присутній фактор відкриття та розвитку. В танцях приємно прийти в нову групу, бо навіть з одного заняття ти дізнаєшся щось нове.
♾️ Справжня Dark Souls починається у PVP. Справжні танці починаються в імпровізації. Так, танцювати заздалегідь підготовані та домовлені комбінації — так само задовольняє, як проходити знайомих босів знайомими тактиками. Але звільнись від того і в тобі прокинеться творчість.
🏋️ Як і в Dark Souls, ти є ключем до власного успіху. Немає нічого неможливого, втім немає й коротких шляхів. Тільки практика, тільки “git gud” перетворює танець зі стресового, гіпертривожного заняття новачка в безтурботний стан потоку. Та, чорт забирай, той стан потоку вартий, щоб за нього кілька разів повернутися до багаття!
🌞 Як і Dark Souls, танці — місце для веселої кооперації. Хоч перед кожним з нас стоїть власний шлях та власні випробування, ніхто не проходить його наодинці. (В соціальних танцях, на відміну від Dark Souls, буквально.) Ти можеш очікувати на доброзичливу атмосферу, підтримку та допомогу. Як і в Dark Souls, те, що тобі здається неможливим, раптом виходить завдяки вдалому партнеру.
🎳 When in doubt, roll it out. Need I say more?

