✙rozho)))k✙🇺🇦 @full_of_hatred Channel on Telegram

✙rozho)))k✙🇺🇦

@full_of_hatred


Про автора: www.rozhkov.me/about
Про канал: www.rozhkov.me/about-full-of-hatred

Канал про все що не ІТ: @daily_rozhok
дірект: @xrozhokx
блог: rozhkov.me

✙rozho)))k✙ (Ukrainian)

✙rozho)))k✙ є каналом, який пропонує унікальний погляд на усі теми, що не стосуються ІТ. Автор каналу ділиться своїми думками, враженнями та спостереженнями з аудиторією, надаючи нові погляди на різні аспекти життя. Якщо ви шукаєте цікаву та нестандартну інформацію, то цей канал саме для вас. Разом із ✙rozho)))k✙ ви зможете поглибити свої знання, розширити свій світогляд та підняти настрій. Приєднуйтесь до каналу за посиланням @daily_rozhok та отримуйте цікаву інформацію щодня. Також ви можете звертатися до автора напряму за допомогою @xrozhokx або відвідати його блог на сайті rozhkov.me. Долучайтесь до ✙rozho)))k✙ і починайте свою подорож у світ нових знань та вражень!

✙rozho)))k✙🇺🇦

20 Nov, 07:24


Дауншифтери

Є категорія людей які не мають бажання працювати або ефективно використовувати свої навички, натомість обмежуюсь роботою явно нижче їх потужностей можливостей.

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

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

Якщо у цивільній роботі уникати відповідальності та «підвищення» у менеджмент середньої ланки це правильна стратегія яка мінімізує ризики та максимізує прибуток, то на війні від цього залежить боєздатність.

Навіщо працювати СТО на 8к якщо можна працювати за ті ж в 8к сенйором помідором? Отож. Навіщо отримувати більше відповідальності та напрягатися, якщо гз таке ж?

P.S.: Ну гаразд, я теж принципово не хотів йти на ЗСУшні ІТ-галери, але то окрема історія.

#армія
permalink | @full_of_hatred
👇Щоденні донати💰на ЗСУ🪖
🫡@Donate1024Bot

✙rozho)))k✙🇺🇦

18 Nov, 08:35


Збір на зимові шини для підрозділу БпАК

Вітаю товариство! Зима близько і нашим залізним коням потрібні нові підкови.

4 × R16 205/55
4 × R15 265/70
4 × R16 245/70
4 × R16 225/75
2 × R17 225/70 + 2 × диски R17

Загальна вартість ~94,000₴

Банка: https://send.monobank.ua/jar/2aVg7SJEso
Приват: 4627055113374002
PayPal: [email protected]

🇺🇦Дякую всім за допомогу!🇺🇦

✙rozho)))k✙🇺🇦

15 Nov, 07:24


Agency

Є такий термін в англійській який я не знаю як нормально перекласти («суб'єктність» — шляпа). Зазвичай під цим мається на увазі здатність людини активно діяти та змінювати світ довкола себе.

Це людина якій треба більше всіх. Яка тягне проєкти та двіжухи за собою, на якій все тримається.

Зазвичай ці люди роблять щось своє, але якщо вони достатньо clueless, то можуть робити й ваше. Такі люди — на вагу золота. Бо тих, хто буде робити через підсрачники — багато, тих — хто буде робити без підсрачників — теж багато, але тих, хто буде рухатися сам та брати на себе відповідальність, щоб роздати підсрачників першим та розписати таски другим, а крім того придумувати ще й щось нове і робити це проактивно, а не чекати на команду зверху — одиниці.

Отримати в команду тіпа який буде сам шось робити — це неймовірна вдача. На цивільній роботі я був наполовину таким тіпом, бо друга половина — то ріжок-антикапіталіст який постійно ригав від необхідності працювати на дядю (та й працювати в принципі). Оцієї половини якраз і не вистачило, щоб стати VPoE або повноцінним CTO у великій конторі, а не залишитися hands-on-architect.

Будь-який бос шукає саме таку людину, але небагато таких людей зацікавлені в тому щоб за так батрачити на чуже. Зазвичай це або вже підприємці, або люди які мають солідний овнершип у своїй конторі й не рипаються.

Ну а в армії? В армії таких людей як ви розумієте небагато, і на них все й тримається.

За можливості, будьте саме такою людиною. Якій треба більше інших, яка наводить двіж, суєту, мутиться.

За можливості, тримайтеся таких людей. Отримаєте частку від успіху, а як не будете тупити то й самі підтягнетесь.

#робота
permalink | @full_of_hatred
👇Щоденні донати💰на ЗСУ🪖
🫡@Donate1024Bot

✙rozho)))k✙🇺🇦

11 Nov, 07:24


Звіт по збору на РЕБ для РУБпАК

На банку було зібрано 78,311.19₴
Зі збору на наземку було додано 8,585.10
На PayPal зібралось 60$
Всього зібрано: 86,896.29₴ та 60$

Витрати:
-83,591.27₴ для переказу 2,144.25$
60$ переказав з того що було на PayPal
215.75$ переказав мій колега Віктор Данилюк
Всього витрачено 2,300.00$

Залишок: 3,305.02₴ піде у наступні збори.

🙆‍♂️РЕБ уже у бійців та буде прикривати їх дупи від підступних кацапських фпв-шок.

Дякую всім за допомогу!

🫶Особлива подяка моїм колегам — Саші Грабу та Віктору Данилюку, які постійно та потужно підтримують збори💰

✙rozho)))k✙🇺🇦

08 Nov, 07:24


Local-first dev environments

Найбільше мене харить коли код проєкту неможливо запустити локально.

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

Коли для підйому адмінки проєкту над яким ти працюєщ тобі пропонують докер композ на більше рядків ніж сорци кожного мікросервісу, з яких він складається.

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

Коли на старті проєкту лід видає тобі вагон кредів та інструкцій де отримати ще вагон кредів щоб потім захардкодити їх в дотенв-файлі.

Коли тобі пропонується піднімати на ноуті, прости Г-ди, кубернетіс🤮

∈)☼(∋. Очко.

Найцікавіше, що для спрощення розробки міленіали придумали мейнфрейми з тонкими клієнтами — ваш код запуститься на потужному кластері десь в клауді, а ви зі свого IDE будете давати команди. Дуже круто, дякую. Один з найабсурдніших стартапів минулих років це Mightyapp — «Mighty makes Google Chrome faster & use 10x less memory. Mighty speeds up Chrome on your laptop by streaming it from a more powerful computer in the cloud—that makes your browser & other apps run significantly faster.» Просто вдумайтесь, браузер(!) в клауді(!!!)! Ідея звісно не полетіла і фаундер запівотився (хоча це не назвеш півотом) в AI-генерацію логотипів та дизайнів.

Зважаючи на те, що лептопи та десктопи розробників зараз набагато потужніші ніж ті крихти vCPU які нам відсипає гіпервізор за вказівкою Безоса, склалась просто ганебна ситуація. І ми самі себе в неї загнали.

E2E тести які проганяються по ночам тому що «тест suite займає 2 години» забивають ще один цвях у труну продуктивності. Як щодо того, що запустити їх локально? Ой, не можна? А як мені тоді продебажити тест що падає?

Проєкт має збиратися та запускатися локально без усіх цих хоботів. Цикл read-evaluate-print має бути настільки коротким, наскільки це можливо.

Зовнішні залежності мають бути мінімізовані. Звісно за роки роботи працьовиті міленіали навигадували різних стабів для хмарних сервісів типу DynamoDB Local. Але менше ж з ним — відсутня залежність ліпша за стаб.

Хотів би вам дати пораду сьогодні подивитися на свій стек та викинути щось, але я знаю що ви з більшим задоволенням додасте ще один мікросервіс та ще одну клаудну шляпу від амазону. Тому насолоджуйтесь роздуванням complexity. Ми, інженери кодери, це любимо.

Без порад.

#робота
permalink | @full_of_hatred
👇Щоденні донати💰на ЗСУ🪖
🫡@Donate1024Bot

✙rozho)))k✙🇺🇦

06 Nov, 07:24


Звіт по зборах на станцію керування TORO Partyphone та 4 радіостанції HIMERA та 2 щогли для екіпажу РУБпАК

Дякую всім небайдужим хто допоміг зібрати кошти!

📺На наземну станцію

Було зібрано 165,171.95₴
Зі збору на рації та щогли додано 236.54₴
Зі збору на плати підриву (один з моїх попередніх) додано 1,866.61₴

Всього зібрано: 167,275.10₴

Витрачено:

Наземна станція: -155,000.00₴
Комісія за платіж: -190.00₴
Тестер РЕБ від фірми gedz.tech: -3,500.00₴

Всього витрачено: -158,690.00₴

Залишок: 8,585.10₴ був переказаний у збір на РЕБ

Станція обійшлась нам на 10,000.00₴ дешевше, тому що у виробника в наявності не було пультів Radiomaster Boxer. Ми маємо запасні TX16, тому то було некритичним.
Станцію вже протестували, незабаром вона поїде робити справи 😎 Крута розробка, все як заводське, на відміну від звичних хлипких та так сяк зліплених на 3д-принтері кріплень та елементів монтажу. Особливо мене радує кейс, бо все FPV обладнання дуже крихке, і погнути або пошкодити антени та кабелі дуже просто.

Тестер РЕБ ще чекаємо, обіцяли відправити в середині листопада.

📻На 4 рації та 2 щогли

Було зібрано 44,816.54₴

Витрачено:
2 щогли «Плечі Атласа» висотою 10.5 м за кеш: -28,500.00₴
4 радіостанції HIMERA G1: -16,000.00₴
Комісія за платіж: -80.00₴

Всього витрачено: -44,580.00₴

Залишок: 236.54₴ переказав на збір на наземку.

🫡Щогли та радєйки теж уже передані бійцям, можете бачити їх на фото.

🇺🇦Дякую всім хто вірить у Сили Оборони та долучився до збору! Без вашої підтримки було б набагато складніше.🇺🇦

💪💰окрема подяка за потужні донати Віктору Данилюку, Ігору Бондаренко, Віталію Ратушному, Роману Бойчуку, Михайлу Глібі, Антону Страчкову. Дякуємо вам!

🫶ще одна окрема подяка моїй подрузі Лайті з БФ «Котики по-київськи» за допомогу з оплатою послуг НП, так, доставка наземки обійшлась б нам у 960.00₴. Лайті дуже багато допомагає нам з оплатою коштовних посилок🫶

😬І нарешті особлива подяка дорогому брату Георгію Кавецькому та підписникам його каналу @sampleName32 за поширення збору. Швидкого вам відновлення, пане!

✙rozho)))k✙🇺🇦

04 Nov, 07:24


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

В далекому 2010 році, коли долар був по 8, я працював на ентерпрайзному проєкті разом з консультантами з компанії Thoughtworks. Тієї, звідки Мартін Фаулер, тієї, що публікує Technology Radar, за яким, ви, ймовірно стежите.

На нашому проєкті не було тестів, тому що в компанії на той час не було культури тестування. Власне, мінусів у такому підході я не бачу, але то вже інша історія.

Консультанти звісно відразу ж прийнялись виправдовувати свій рейт у 3000$ за день роботи та заявили що для успіху проєкту неодмінно потрібно мати високе покриття тестами.

Наш код у 90% випадків виглядав приблизно так:

class Action {
public void doThing(Context context) {
ResultOne resultOne = ServiceOne.getInstance().doThing(context);
ResultTwo resultTwo = ServiceTwo.getInstance().doThing(context, resultOne);
context.setResult(resultTwo);
}
}


Типова імперативно-процідурна ентерпрайзна локшина, де всі та все ходять у бази та зовнішні інтеграції.

Звісно, з коробки такий код не є тестабельним, через статичні методи. Тому спочатку консультанти винесли сервіслукап в окремі методи, а згодом ми зробили там вже нормальний DI.

Але, оскільки більшість коду ходила кудись назовні, то потрібно було писати моки та стаби (різницю питають у вас на співбесідах), а самі тести зводилися до того що ми перевіряли що мок викликається з необхідним параметром, та виглядали десь отак:

class ActionTest {
@Test
public void testDoThing() {
ServiceOne mockServiceOne = mock(ServiceOne.class);
ServiceTwo mockServiceTwo = mock(ServiceTwo.class);
Action action = new Action(mockServiceOne, mockServiceTwo);
Context context = mock(Context.class);
ResultOne mockResultOne = mock(ResultOne.class);
ResultTwo mockResultTwo = mock(ResultTwo.class);
when(mockServiceOne).doThing(eq(context)).thenReturn(mockResultOne);
when(mockServiceTwo).doThing(eq(context), eq(mockResultOne)).thenReturn(mockResultTwo);

action.doThing(context);
verify(mockServiceOne).doThing(context);
verify(mockResultTwo).doThing(context, mockResultTwo);
verify(context).setResult(mockResultTwo);
}
}


Таких тестів ми писали сотні. Цілі спринти були присвячені ретельному моканню. Каверадж відразу полетів у небеса.

Але, як ми можете здогадатися, ці тести нічого не тестували, а просто викривленим чином дублювали вже написану програму, та радикально ускладнювали рефакторинг.

Згодом, я зустрічав такі «тести» в інших компаніях на інших проєктах.

Формально каверадж є, а по факту ні.

Писали такі тести? Згодні з тим що вони марні чи вважаєте що все правильно нам консультанти сказали? Діліться у коментах👇

#робота
permalink | @full_of_hatred
👇Щоденні донати💰на ЗСУ🪖
🫡@Donate1024Bot

✙rozho)))k✙🇺🇦

28 Oct, 07:24


Вітаю пані та панове.

🇺🇦Дякую всім хто задонатив на збір на FPV-наземку. Зібрали всю суму, кошти вже сплачені. У виробника в наявності зараз немає пульта, тому вартість на 10000 менше.

А тим часом маємо ще потреби: РЕБ на нижній діапазон, щоб прикрити дупи від ворожих FPV та рації з щоглами, щоб далеко і потужно летіти.

РЕБ — 2300$, радєйки з щоглами — 44500₴. І там і там вже трохи зібрано.

Choose your fighter👇

🙆‍♂️РЕБ: https://send.monobank.ua/jar/QMu8qvgAe

📻Радєйки + щогли: https://send.monobank.ua/jar/5LZU8FT9XV

✙rozho)))k✙🇺🇦

25 Oct, 06:24


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

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

Найпопулярнішою звісно були матеріали та тренінги від джентльменів з System Performance. Кілометрові гайди по переписуванню ораклових запитів та тюнингу гарбедж колектора розходились як гарячі пиріжки та втримували хиткий продукт від того, щоб він не впав під власною вагою остаточно.

Зараз мене надзвичайно дивує та засмучує відсутність адекватної системи передачі знань та впровадження рішень які працюють у війську.

Робота з системами, які, фактично з'явилися посеред війни, кожним підрозділом вивчається заново, заново набиваються ґулі, заново розробляються велосипеди.

Чому командування не візьме, те що добре працює, наприклад, умовний ОПУБАС пана Мадяра, і не впровадить його практики на все військо? Я знаю про деяку конкуренцію, та, якщо це можна назвати «заздрість» між різними підрозділами та структурами, маю деякі думки щодо причин цього, але так і не можу зрозуміти що заважає взяти й розкатати рішення якщо не на всі збройні сили, то хоча б на підрозділи, які не мають цих самих сильних центрів компетенцій та проходять весь шлях з нуля.

Чому «Небесний русоріз» влаштовує пан Стерненко, а не проводиться системна робота зі знищення розвід крил по всьому фронту? Зробили ж мобільні вогневі групи які досить успішно справляються з шахедами, значить можемо?

Так само з іншими складниками  — чому не беруть бригаду яка показує результат, та не переносять її досвід на інші?

Зараз багато тримається на горизонтальних зв'язках, якщо знати потрібних людей, то можна напроситися на навчання, так, але це має бути системна робота.

Туди ж і проблема переведень. Якби це питання урегулювали то хороші частини швидко б отримали більше людського ресурсу, і масштабування відбулося само собою, органічно.

Питання є, відповідей немає, час плине, а ми й далі знову й знову робимо від 0 до 1.

#армія
permalink | @full_of_hatred
👇Щоденні донати💰на ЗСУ🪖
🫡@Donate1024Bot

✙rozho)))k✙🇺🇦

23 Oct, 06:24


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

В армії у будь-який момент часу ви повинні вміти пояснити командуванню чим ви займаєтесь та якого результату досягли.

Інакше є ризик що заняття вам придумають за вас, і воно не обов'язково вам сподобається.

Я не знаю справжніх подробиць нещодавніх подій з розформуванням т.зв. «ІТ-галер в ЗСУ» (хоча сама назва вже натякає), тому можу лише робити припущення.

А припущення моє таке, що серед вищого командування не було «чемпіона» який постійно б доносив важливість роботи цієї галери, та досягнуті завдяки діяльності підрозділу результати.

Наприклад, як цільова аудиторія армійських ІТ систем я можу абсолютно точно сказати що Дельта є критично, повторююсь критично важливим продуктом, без якого робота багатьох підрозділів хоч і не встане, але надзвичайно сильно ускладниться.

Чи знають про це великі начальники? Мені невідомо. Але коли б я був розробником якоїсь такої системи, то приділив би багато уваги тому, щоб зробити свого боса щасливим. А вийшло так що хтось побачив оппортуніті укомплектувати кілька стрілецьких батів.

Звісно в ідеальному світі всім нам хотілося б, щоб командування було б зацікавлене в розвитку ІТ, тримало руку на пульсі розробки, та всіляко сприяло б впровадженню усіх цих продуктів.

Але маємо те що маємо. Чи займались ці галери дійсно потрібною роботою, чи це була міцна команда рубістів з Дніпра, що видумували самі собі завдання? Чи давали ці команди результати, чи робили авторизацію користувача впродовж десяти спрінтів, а щокварталу переписували все на новому джаваскріпт фреймворку?

Мені то все невідомо. Сподіваюсь що спеціалісти продовжать роботу за фахом, а продукти будуть робити дедалі суттєвіший внесок в перемогу.

#армія
permalink | @full_of_hatred
👇Щоденні донати💰на ЗСУ🪖
🫡@Donate1024Bot

✙rozho)))k✙🇺🇦

21 Oct, 07:02


Продовжую збір на наземну станцію для FPV.

💰Залишилось 40 тисяч грн

Банка: https://send.monobank.ua/jar/57b4fs7ARj
Приват: 4627055113374002
PayPal: [email protected]

🇺🇦

✙rozho)))k✙🇺🇦

18 Oct, 06:24


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

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

В будь-якій армії головна сила це піхота. Скільки б літаків, кораблів, артилерії, та дронів у вас би не було, без піхоти це все не працює. Ми регулярно бачимо це на прикладі постійних втрат територій. Так, ворог кладе сотні життів за безіменні посадки та руїни сіл, так, техніку та людей знищують в епічних масштабах, але тактика струмка води, коли з роти солдат до крайньої хати забігає десяток і починають накопичуватися там, працює. Працює, бо в тій хаті немає нашого кулеметника, який би викосив всю погань, що пережила вогонь артилерії та FPV.

Через це ми повільно відступаємо.

І тому у генералів та високих начальників комплектація піхоти є першим пріоритетом. Бо якою б технологічною зброєю ми не володіли, територія наша поки там стоять наші люди. А коли людей нема, то ціла бригада безпілотних систем нічим не допоможе, бо усіх не вб'єш.

Серед пріоритетних підрозділів які набирають собі людей в учєбках перші — це ДШВ та морська піхота. І також безперестанно формуються нові стрілецькі батальйони (чому не доукомплектовуються існучі бригади — питання це мене теж цікавить).

За уявною логікою генерала, будь-хто, хто не в піхоті це cost centre, дармоїд, який незрозуміло чим займається, замість того, щоб утримувати хату у вщент зруйнованому селі на Донбасі. А от штурмовий взвод — це вже ніфіга собі revenue center, який може і відбити черговий м'ясний накат, і щось зайняти, і замінити зточений батальйон.

Історія з нещодавнім розформуванням ІТ-підрозділів якраз дуже проста. Хтось подивився що в штаті є ціла купа людей, які займаються незрозуміло чим і порушив питання щодо перетворення cost на revenue, та й все.

Тому я не дивуюсь випадкам коли різного штибу спеціалістів переводять в піхоту де вони швидко отримують поранення або гинуть — це цілком вкладається в армійську логіку.

Що з цим робити? Вже нічого, всі таймслоти та можливості пройобані, а нам залишається лізти в помиральну яму.

#армія
permalink | @full_of_hatred
👇Щоденні донати💰на ЗСУ🪖
🫡@Donate1024Bot

✙rozho)))k✙🇺🇦

17 Oct, 06:24


🇺🇦Військова служба за контрактом — свідомий вибір кращих!🇺🇦

Армія — не хуй!
Служи, кайфуй!


💀Нагадую — список правильних підрозділів для служби.