Як зробити, щоб http://localhost:8080 було видно в інтернет

🎄Всіх з Різдвом!🎄 Типові задачі веброзробника: протестувати oauth («логін через гугл»), протестувати вебхук (різні інтеграції), швидко, без деплою на тестовий енв, показати комусь як сервіс працює «на вашій машині». Розумні люди придумали для цього тунелі. Ви підключаєтесь до машини в інтернеті та створюєте тунель. Машина відкриває 443 порт та проксує всі запити на ваш комп'ютер. Та ж машина в інтернеті може подбати про доменне...

Купив новий смартфон

У виборі техніки я максимально консервативний. «Працює — не чіпай». Я не страждаю ADHD тому телефони та екрани не розбиваю, не топлю та не ламаю. З 2003 року, коли отримав перший телефон, я міняв їх тільки з причини застарівання. Приблизно 1 раз на 4-5 років. Перший смартфон я купив у 2013. Це був Jiayu G4S, на той момент «конкурент флагманам». Він служив мені вірою і правдою, але...

wtf is corepack?

Я регулярно оновлюю всі залежності всіх проєктів на найновіші. Оскільки в мене в основному Rails та Java то це тривіальні процедури: оновити версію рубі на найновішу що вийшла, а потім зробити bundle update. Жодна з версій залежностей в мене не залочена, тому я постійно живу на всьому останньому. В Java трішки складніше, там версії лочаться, тому треба піти й перевірити що зараз останнє, бо автокомпліт IntelliJ...

Страхи збуваються

Телеграм-бот @Donate1024Bot щоранку розсилає всім підписникам новий збір. Щоб уникнути випадкового подвійного спрацювання, цикл розсилки схований всередину select for update. Коли робив інтеграцію з Bluesky, то додав код, який також публікує збір у Bluesky. Звичайно, я не перевіряв E2E виклик, і просто скопіпастив рядок з реплу. Виглядало це якось так: Lock.find_by(key: "daily_post").with_lock do random_post = Post.random_post...

Bluesky

Прийнявши факт що для розробки нативних апок я недостатньо розумний, вирішив зробити щось простіше. Послухав черговий епізод подкасту Startups are hard Макса Іщенко, де той схвально відгукується про відкритість Bluesky. Мені ще давно дали туди інвайт, але я не заходив. Вирішив подивитися. Bluesky — це твітер на відкритому протоколі, без алгоритмів та сумнівних власників. Зараз він потроху відвойовує аудиторію в тих місцях, де твітер заблокували, або серед...

Захотів зробити апку для скрінкастів

Коли я ще працював на теплій програмістській роботі, то мав потребу записувати короткі відео для користувачів та клієнтів. Дуже проста функція — екран + кружечок з вебкамери + мікрофон. Розумні люди для цього зробили Loom [https://www.loom.com/] та йому подібні, професіонали користуються OBS [https://obsproject.com/]. Але Loom не має апки для лінукса і працює лише як аддон у браузері. Я побачив тут opportunity та подумав — а...

Супераппи

Неймовірно дратує що кожна маленька апка на телефоні прагне заполонити собою все і стати всім. Акції, кешбеки, програми лояльності, ачівки, геймифікація, челенджі, завдання, та ще бо-зна що. Альо, додаток Київстар, мені від тебе треба тільки статистику по витратах та можливість заплатити, мені не треба пхати «завдання» та «винагороди». Ти просто труба для передачі трафіку! Уклон, я просто хочу доїхати з одного місця в до іншого. Мені...

Реклама в уклоні

Замовив оце вчора таксі, і на екрані очікування з неймовірним подивом побачив рекламний блок. WTF??? Я плачу гроші уклону, не маленькі гроші, а мені за мої ж гроші показують рекламу? Вперше я це спостерігав у вайбері, де навіть якщо я б поклав гроші на рахунок, то мені все одно буде показуватись рекламний блок + промо від «бізнесів». Вайбером я (в тому числі через це) користуватися перестав, але...

Дауншифтери

Є категорія людей які не мають бажання працювати або ефективно використовувати свої навички, натомість обмежуюсь роботою явно нижче їх потужностей можливостей. Я знаю як мінімум чотирьох програмістів, троє з яких принципово хотіли в піхотний двіж (і один з яких вийшов живим з дуже ризикованої операції про яку ше кіно знімуть), а четвертий — займається сумнівною паперовою роботою. Я б дуже хотів бачити їх у більш хай-тековій суєті,...

Agency

Є такий термін в англійській який я не знаю як нормально перекласти («суб'єктність» — шляпа). Зазвичай під цим мається на увазі здатність людини активно діяти та змінювати світ довкола себе. Це людина якій треба більше всіх. Яка тягне проєкти та двіжухи за собою, на якій все тримається. Зазвичай ці люди роблять щось своє, але якщо вони достатньо clueless [https://www.rozhkov.me/loyalty-and-comfort-zone/], то можуть...

Local-first dev environments

Найбільше мене харить коли код проєкту неможливо запустити локально. Коли є мільйон залежностей, кафки-хуяфки, редіси-хуєдіси, бридка трійця S3/SQS/SNS, мерзенний OAuth 2.0 та інша шляпа яка не запускається або складно запускається на вашому комп'ютері. Коли для підйому адмінки проєкту над яким ти працюєщ тобі пропонують докер композ на більше рядків ніж сорци кожного мікросервісу, з яких він складається. Коли їхав мікросервіс через...

100% coverage тести, які нічого не тестують

В далекому 2010 році, коли долар був по 8, я працював на ентерпрайзному проєкті разом з консультантами з компанії Thoughtworks. Тієї, звідки Мартін Фаулер, тієї, що публікує Technology Radar [https://www.thoughtworks.com/radar], за яким, ви, ймовірно стежите. На нашому проєкті не було тестів, тому що в компанії на той час не було культури тестування. Власне, мінусів у такому підході я не бачу, але то...

Best practices та центри компетенцій в армії

Коли працював в ентерпрайзі в кінці бородатих нульових то застав розвиток так званих «центрів компетенцій» та впровадження продукту Confluence (не плутати з Confluent!). За гучними словами ховалась корпоративна вікіпедія та обов'язок розробити курс+тренінги по продукту, овнером якого я був. Найпопулярнішою звісно були матеріали та тренінги від джентльменів з System Performance. Кілометрові гайди по переписуванню ораклових запитів та тюнингу гарбедж колектора розходились як гарячі...

Про розформування ІТ-галер

В армії у будь-який момент часу ви повинні вміти пояснити [https://www.rozhkov.me/be-solution-not-a-problem/] командуванню чим ви займаєтесь та якого результату досягли. Інакше є ризик що заняття вам придумають за вас, і воно не обов'язково вам сподобається. Я не знаю справжніх подробиць нещодавніх подій з розформуванням т.зв. «ІТ-галер в ЗСУ» (хоча сама назва вже натякає), тому можу лише робити припущення. А припущення...

Армійські cost та revenue центри

Завжди наголошував що айтівцю-вонабі-кабанчику потрібно знаходитися якомога ближче до клієнта [https://www.rozhkov.me/spongers/]. Бути тим, хто генерує прибутки, а не витрачає. Хендс-он-солюшен-архітектор, який вміє сам запрограмувати демку та продати її клієнту — без одного звільнення🐗, а девопс, ім'я якого CEO згадує лише коли до нього доходить ескалація інциденту на продакшені — це cost centre, який першим піде під ніж скорочень. В будь-якій армії головна...

R&D на війні

Коли я йшов до війська то мав план — зробити біля підрозділу R&D відділ який буде розробляти, впроваджувати та масштабувати технічні рішення. Мені здавалося, що армії не вистачає технічно компетентних людей які могли б адекватно оцінювати нові та існуючі продукти, модернізувати їх, розробляти свої. Головна перепона для цивільного спеціаліста або команди — це ускладнений доступ до тестування своїх рішень (як на полігонах, так і в бойових...