✙rozho)))k✙🇺🇦

@full_of_hatred


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

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

✙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


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

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


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

✙rozho)))k✙🇺🇦

16 Oct, 06:24


R&D на війні

Коли я йшов до війська то мав план — зробити біля підрозділу R&D відділ який буде розробляти, впроваджувати та масштабувати технічні рішення.

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

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

Здавалося, що зсередини можна робити все значно ефективніше.

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

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

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

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

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

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

✙rozho)))k✙🇺🇦

14 Oct, 06:24


Збір на станцію керування TORO Partyphone для екапіжу РУБпАК

Пані та панове! Моїм друзям — екіпажу ударних безпілотників для ефективної роботи потрібна якісна та надійна станція керування.

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

Якісна наземка це стабільний зв'язок, зручне транспортування та уражені цілі💥

Комплектація яка нам цікава вартує 165000₴🥵
Можна було б взяти ще один бус, але бус завдяки вам вже є.

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

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

P.S.: я отримав статус волонтера від монобанку, тому зарахування на банку не будуть враховуватися у ваш ліміт витрат.

✙rozho)))k✙🇺🇦

04 Sep, 06:24


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

Пан Дмитро задонатив 204,005.84₴
Дозібрано на каналі та через @donate1024bot 151,851.45₴

Всього зібрано: 355,857.29₴

Витрати:
Транзакція передплати: -205,000.00₴
Транзакція післяплати: -151,000.00₴
Повернення тисячі грн, бо я провтикав і заплатив більше: 1,000.00₴

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

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

💰Гроші за бус я переказував на банку волонтерів які їх приганяють. Випадково кинув на тисячу грн більше, бо забув що перша транзакція була не 204 а 205 тисяч, то мені їх повернули.

🥲Бус чекав поки панове аеророзвідники повернуться з задачі, а потім став на СТО😅, бо шось трохи не так заводиться як треба. Але то вже проблеми які вирішуються власним коштом. Чергове нагадування що навіть якщо заплатиш нормальні гроші, то стан не обов'язково буде ідеальним😕 і кожен корч потім треба ше доводити до кондиції.

🛠Ще туди треба встановити сидіння, я покатався по розборках, але нічого толкового не знайшов, будемо шукати ще. Хто може посприяти в пошуку сидіння-трійки на T5 — буду вдячний.

🤝Дякую пану Дмитру за потужний (no pun inteded) донат! Дякую всім хто долучився до збору!🇺🇦

P.S.: Зі звітом забарився аж на місяць бо все хотів зробити класні фотки з літачками та валізами для них, але то одне то інше то третє🫨

✙rozho)))k✙🇺🇦

02 Sep, 06:24


Відвідав DOU Day Picnic

Цієї суботи DOU провів на території Unit City нетворвкінг-івент DOU Day Picnic. Там була запланована велика програма: стендап, дискусії, стенди мілтек-компаній, військових бригад, фондів та компаній, фудкорт та різноманітні розваги.

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

Але за кілька днів до проведення обставини таки склались і я знову попросився. На жаль, місця на ту дискусію вже не було, але мене покликали на іншу😅. Поки я домовлявся, то прийшло повідомлення що відбій, ніяких вихідних, 🪖час їхати на війну, довелося знову перепрошувати й казати що шанси попасти на подію невисокі.

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

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

На вході зустрів пана Климова, але той не мав часу, тому тільки привіталися, всередині вже побачив Бабіча з Бабічатами та перекинувся з ним кількома словами. Пройшовся біля 3д-принтерної суєти Романа Лютикова. Мене впізнали двоє підписників, пану Данилу привіт. Решту часу провів у розмові з біздевом компанії Himera, чиїми радейками ми користуємося, та й побіг у справах.

Ввечері приїхав вже на свій виступ. Я складав компанію серйозному дядьку з 95 ОДШБр та двом поважним панам, наскільки я зрозумів, головним по розробці ІТ-продуктів в МО.

Звісно що для такого питання як «ІТ системи в армії» години часу не вистачить. Встигнув тільки 5хв постендапити про нюанси Дельти, та й все. Хто був присутній — тішусь думкою що трохи вас розвеселив.

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

Виступ швиденько закінчився, я трішки поспілкувався з джентльменами з МО, які очікувано виявилися дуже приємними та зацікавленими людьми. Потім ще мав розмови з рандомами та й по тому.

🦆Вимкнули світло, і поки роздупляли генератор то, я так розумію, Байдак проводив якийсь аукціон. Але на жаль мені вже був час йти, тому ні афтерпаті, ні фото з Максом Іщенко я не зробив. Та й грошей на аукціон вже давно немає🥲

👍Дуже достойна подія, чудова організація. Я радий що ДОУ пішли в бік реальних подій. Сподіваюсь, що таких заходів буде більше і вони ставатимуть кращими.

❤️Дякую ДОУ за організацію й класний подаруночок, та чудовим Марії Дубініній та Віці Осиповій за запрошення❤️

#події #війна
permalink | @full_of_hatred
👇Щоденні донати💰на ЗСУ🪖
🫡@Donate1024Bot

✙rozho)))k✙🇺🇦

21 Aug, 06:24


Обісрався з Wi-Fi роутером

Рік тому коли геть втомився від мікротіку, звернувся до громади за порадою який роутер брати. Люди звісно радили все підряд, у кого що стоїть. Але ж я багатий айтівець! Тому вирішив гуляти на всі гроші, по-багатому та обрав кубик Amplifi HD з двома антенками за 8500₴(!). Приніс додому увімкнув і отримав 100 мегабіт замість тисячі. Я думав то тимчасова поломка, але насправді весь час роутер постійно скидав аплінк на провайдера до 100. Допомагали тільки ребути. На форумах я знайшов людей з такими ж проблемами, але рішення не було. Офіційного сервісу в Україні здається теж немає.

Коли почалися відключення світла, то я спробував зробити ДБЖ на мінімалках. Роутер живиться через Type-C, тому без перехідників працював від повербанка. Я купив повербанк де була заявлена наскрізна зарядка, та під'єднав його.

Через день такого з'єднання роутер помер. Миготів і не хотів вмикатися. Так сяк з 20-го разу перетикання роз'єма він таки оживав, але як тільки вимикали світло то все починалося знову.

Терпець урвався, тому я знову взявся до вибору роутера. Почитав відгуки там, сям, подивився OLX, бо я беру тільки вживане залізо, та й зупинився на TP-Link Archer AX23. Знайшов такий за 1600₴, написав, поїхав, забрав, приїхав, увімкнув, налаштував.

Все запрацювало відразу (логічно), роутер без проблем вхопив гігабіт, і не збивав до 100, ніяких дурнуватих налаштувань «апаратного NAT» робити не довелось, а швидкість виявилась в півтора-два рази вищою ніж на оврепрайcнутому шматку лайна від Ubiquiti.

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

Ну а я змарнував сім тисяч гривень та час на перезавантаження роутера, щоб той нормально взяв гігабіт (з якого міг витиснути лише третину). Ганьба мені, респект громаді.

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

✙rozho)))k✙🇺🇦

19 Aug, 06:24


Куди рекрутуватись у 2024

Вітаю панове військовозобов'язані!

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

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

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

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

Вам потрібен підрозділ з мотивованих та підготовлених людей. Як відомо, з мотивацією та підготовкою у звичайних мобілізованих є певні проблеми, тому нас цікавлять підрозділи де 1) проводять який-не-який відбір та 2) якісно готують.

В ЗСУ/НГУ з тих бригад про які мені відомо це звісно 3 ОШБр та 12 БрСпП «Азов».

Але служити можна не тільки в ЗСУ. Крім цього у нас воюють спецслужби: СБУ та ГУР. У спецслужбах ретельніший відбір, краще забезпечення, вища зарплатня та очевидно спеціальні завдання, а не просто багатомісячне утримання ділянки фронту. Зараз людині з вулиці набагато простіше потрапити у ці структури, тому не втрачайте можливості!

Нижче перелік організацій, які я б розглядав. Я зібрав для вас посилання на телеграм канали та сайти, де ви зможете знайти анкети для вступу.

СБУ — телеграм канал — сайт, там є посилання на анкету для вступу в ЦСО «А»

ГУР:

загальний сайт з анкетою
Артан — телеграм канал — сайт
Братство — телеграм канал — сайт
Реванш — телеграм канал — сайт
Химера — інстаграм
Шаман — сайт
Кракен — телеграм канал
Афіна — телеграм канал
Стугна — телеграм канал

Особенное предложение для граждан рф и этнических русских:
РДК — телеграм канал — сайт

ЗСУ:

3 ОШБр — телеграм канал — сайт
108 ОМБ «Вовки Да Вінчі» — телеграм канал — сайт
92 ОШБр, батальйон БпАК «Ахілес» — телеграм канал — сайт
414 ОПУБАС — телеграм канал
Сили безпілотних систем — сайт
ССО — телеграм канал — сайт

НГУ:

12 БрСпП «Азов» — телеграм канал — сайт

---

Звичайно, найбільш жадана «спеціальність» — це піхота. Піхоти не вистачає всюди, не тільки в ЗСУ, але й спецпідрозділах. Через брак навченої та мотивованої піхоти та нездале управління на місцях, росіяни зараз досягають неабияких успіхів на Донбасі. Одними дронами, на жаль, навалу не зупинити.

Але у вас, айтівців, все ж є хороші шанси попасти в БПЛА, рер, аналітики, зв'язківці.

Втім застерігаю вас від бажання «відсидітись» на тилових посадах. Так не вийде. Навіть дроновод — досить небезпечна професія, бо працювати ви будете у радіусі роботи ворожої артилерії та FPV.

Проте якщо йти на ризик — то йти підготовленим, спорядженим, та в компанії вмотивованих побратимів під керівництвом досвіченого командира.

Думайте, пересилайте друзям, знайомим та колегам. Якщо знаєте ще хороші підрозділи — пишіть у коментарі, я додам.

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

✙rozho)))k✙🇺🇦

06 Aug, 06:24


Performance by design

В попередньому дописі я зробив маленький сервіс який скриншотить твітер.

Зазвичай все що я пишу на Java то роблю на Spring Boot, через багату та зрозумілу екосистему та відносну швидкість розробки.

Цього разу для загального розвитку взяв vert.x, який заявлений найшвидшим Java-фреймворком згідно з результатами Ultimate Web Frameworks Benchmark.

Мій проєкт складається лише з двох ендпоїнтів — /health для перевірки чи все ок та /api/screenshots власне для скриншотів, тому бойлерплейту було мінімум.

Але що мене відразу вразило, так це те що фреймворк за замовчуванням виставляє таймаути на обробку HTTP-запитів. Якщо час виконання перевищує софт-ліміт, то в лог пишеться повідомлення:

Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 2031 ms, time limit is 2000 ms

Якщо ж час обробки перевищує хард-ліміт, то ліба викидає експешн:

io.vertx.core.VertxException: Thread blocked
at java.base/java.lang.Thread.sleepNanos0(Native Method)
at java.base/java.lang.Thread.sleepNanos(Thread.java:491)
at java.base/java.lang.Thread.sleep(Thread.java:559)
at java.base/java.util.concurrent.TimeUnit.sleep(TimeUnit.java:446)
at me.rozhkov.snapshottr.App.handleScreenshotRequest(App.java:79)


При цьому код продовжує працювати, але експешн буде в логах.

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

Я завжди виступаю за sane defaults, бо в сучасному світі занадто багато опцій, варіантів, прапорців, та перемикачів, щоб конфігурувати то все кожного разу.

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

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

Уявіть проходити мільйон співбесід по алгоритмах та системному дизайну, щоб потім влаштуватися у твітер та писати неймовірно тормозний сервіс, який віддає вам твіт цілу вічність, не може відразу завантажити тред, а глибина дом-дерева може позмагатися з глибиною node_modules того недолугого фронтенду який змогли написати олімпіадники. Це абсолютна ганьба та дискредитація інженерного ремесла від тих, хто заявляє найвищі вимоги до наших вмінь. Пруф що твітер можна зробити швидким та нормальним я вже давав — це Nitter.

Пишуть що Premature Optimization is the Root of all Evil, але я з цим не погоджуюсь. Нормально роби — нормально буде, і для цього не треба витрачати надмірно багато часу та зусиль. Просто з початку задайте собі адекватні обмеження та дотримуйтесь їх.

☝️Практична порада

👉Подивіться чи підтримує ваш фреймворк схожу функціональність та увімкніть її.

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

✙rozho)))k✙🇺🇦

05 Aug, 06:24


Телеграм-бот для скриншотів твітера

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

Якось прочитав у блозі Swizec Teller пост про те як він зробив скріншотилку інстаграма на лямбді. Згадав про це і подумав — давай і собі зроблю! Впевнений що таких проєктів є ціла купа, але я хотів отримати задоволення від розробки, бо люблю робити продукти та програмувати😊.

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

ШІ швидко підказав потрібний код:

def screenshot(link)
browser = Ferrum::Browser.new({browser_options: {'no-sandbox': nil}})
begin
browser.go_to(link)
browser.network.wait_for_idle(duration: 2, timeout: 30)
path = "tmp/tweet_#{Time.now.to_i}.jpeg"
browser.screenshot(path: path, selector: 'article[data-testid="tweet"]', quality: 95, format: "jpeg")
path
rescue StandardError => e
Rails.logger.error("Error capturing screenshot: #{e.message}")
nil
ensure
browser.reset
browser.quit
end
end


За 5 хв протестив локально — все працює як треба! Заливаю, не працює. WTF?

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

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

Врешті я здався і вирішив переписати все на Java. ШІ швидко підказав потрібний код на Selenium:

driver.get(url);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
WebElement element = driver.findElement(By.cssSelector(cssSelector));
File screenshotFile = element.getScreenshotAs(OutputType.FILE);


Я нашкрябав вебсервіс який би виставив ендпоїнт до інтернету.  З минулого разу я згадав про Ulitimate Web Frameworks Benchmark, і такий думаю, давай не буду брати Spring Boot, а візьму vert.x. Сказано—зроблено—задеплоєно. Запускаю — не працює😅

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

Наступна проблема—браузер не встигає завантажити прев'ю картинки або відео, які є у твіті. На жаль, я не знайшов як це нормально вирішити, тому просто додав 5 секунд очікування після відкриття сторінки. Можливо читачки та читачі підкажуть як більш елегантно це розв'язати?

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

Потім подивився що скриншоти треба в рамку, бо телеграм їх обрізає по висоті. Додав паддінгу 50px та й вспокоївся.

Три доби — жодної помилки, пам'ять не протікає, в середньому скриншот робиться за 7 секунд. Як на мене, це дуже багато, але вище написав що не знаю як виправити таймаут.

Бот — @chat_keeper_bot. Ви можете додати собі його в будь-який чат, і він теж буде працювати.

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

✙rozho)))k✙🇺🇦

30 Jul, 06:24


Пілоти та штурмани до-GPSних часів

Одна з причин втрат дронів на фронті — це втрата пілотом орієнтації у просторі. Дрон десь летить, хоп — відвалився на хвилину зв'язок, вітер миттєво здуває апарат у довільному напрямку, зв'язок з'являється, але де ти знаходишся — вже незрозуміло. А навіть якщо й зрозуміло, то вже може не вистачити заряду повернутися.

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

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

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

У вас немає детальних супутникових знімків, лише топографічні мапи.

Дивовижно!

А як робили нічні вильоти(🤯)? А як накладались маневри при зіткненнях з винищувачами противника? А якщо попав у хмари?

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

Цікаво, як працювали штурмани-пращури? Теж такі «о, озеро в формі х*я, значить ми тут, потрібно зміститися східніше»?

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

Дивовижно!

P.S.: зрозумів чому навігаторам у фантастичних всесвітах (Дюна, WH40k) відведена така важлива роль.

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

✙rozho)))k✙🇺🇦

29 Jul, 06:24


Жалюгідний стан українського ТҐ — дрібні канали та ТҐ-верс

Дрібніші автори не змогли вийти на плато стабільності та закинули свої канали:
Стрілецький розчарувався низькою кількістю переглядів і втратив мотивацію
Всеволод Соловйов написав десяток постів та й повернувся до наукової діяльності
Психотроніки впали в чорну депресію та хіккують дома, також повністю зафейлили всі обіцянки робити топ-контент про ШІ

В навколоайтішних, але не програмістських каналах я не шарю. Читачі, підказуйте, чи є в нас круті QA, дизайнери, продакти, маркетологи, редактори, фаундери?

Ганебно що в укртґ немає нормального каналу з мемами. Вcі тягають профунктор оптікс (походу не скролять наверх де реклама вакансій яндексу та збербанку).
Я пропонував своєму товаришу зробити мемний канал, бо в нього класно виходить це в Лінкедіні, але той не захотів.

upd: ще канали про які я не знав:

🔥Кіт і Лампа — найближче до того що я маю наувазі, топ канал.
Kito San News — був СТО став військовим, хороший контент
Юра Пузіченко, він же «Пан Пузіч» подає надії! Пише регулярно.
🔥Стендап Сьогодні — топ, мінімум форвардів та ютубів, максимум власного контенту
Мамкін Архітектор — теж непогано
Євгеній Гизила — туди ж, але пише нечасто
Роздуми Спрощенця — забив на канал
Алекс про усе — постить в основному меми
igoro.pro — канал з одним постом та одним підписником. Сподіваюсь автор не заб'є!

Є ще декілька каналів, я вирішив зібрати все в одній купі та зробив каталог: https://blogigram.com. Старі підписники пам'ятають цей проєкт, з якого я колись хотів робити зручну-телеграм читалку лонгрідів, але не доробив. Шкеритись від орланів та зал у посадці — не писати код, і я звісно дуже сумую за програмуванням тому реанімував проєкт і планую потроху його розвивати поки телеграм не закриють.

Якщо ви знаєте ще якісь авторські канали, то пишіть в коменти — додам до списку.

P.S.: сам початковий список я взяв у автора каналу import __hello__. Дякую за підбірку!

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

✙rozho)))k✙🇺🇦

26 Jul, 09:24


Жалюгідний стан українського ТҐ (та ІТ)

Надзвичайно засмучений тим що у в українському навколоайті телеграм просторі немає контенту.

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

Чому так? Декілька гіпотез:

- Аудиторія телеграму рф в 10 разів більша за українську: в 10 разів більше каналів та в 10 разів більше підписників. Звісно що на таких цифрах кількість перейде в якість.

- Історично українське ІТ сфокусовано на аутсорсингу. Ця робота набагато менш цікава ніж продуктова розробка. Натомість російське ІТ завдяки великому внутрішньому ринку тримало впевнений паритет з аутсорсом, а потім народило купу успішних продуктів. Відповідно люди які створювали російські продукти прожили цікавіше життя ніж люди які тримали весло та сиділи на лавці з індусами в ентерпрайзах, а контент робиться тільки з цікавого життя і більше ні звідки.

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

- В нас багато спеціалістів, але вони пишуть все англійською та в інші місця, тому що сенсу в українсько/російськомовній аудиторії для себе не бачать.

- ТҐ не є популярним, всі пишуть на лінкедін/фейсбук/твітер

- Насправді в нас багато крутих авторів, але я про них не знаю.

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

- Соловйов продався корпорації та не має часу — фіксить численні баги метабейзу

- Осипенко підняв лям грошей і не має часу — пише промпти

- Аліменков і раніше не дуже писав, а зараз тим паче — вчить людей розробці по аджайлу на java-мікросервісах в кубернетісі

- Лучків напевне зайнятий — знайшов великий проєкт

- Іщенко щось писав, але не в тг, та дуже швидко здувся і перейшов в подкаст

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

- Миколайченко крутить поди та апгрейдить кластер на новий мережевий стек і не має часу писати

- Меньшиков мав класний канал, але давно на нього забив, а як війна почалась то взагалі нічого не писав

- Турський постить тільки анонси відосів на своєму ютубі

Канали поза категорією:

- Фрілансер по жизні — бізнес, там одні анонси відео та курсів

- Німчинський — бізнес, записує відоси, а тексту майже не пише

- Малєєв — пише часто, але в основному це реакції на новини/події, а не власні кулсторі

- Довгополий — пише активно, але в основному це реакція на якісь події, завуальовані звіти про діяльність та скарги на втому від тривалих поїздок за кордон (first world problems гггг). Я б його не відносив до категорії ІТ, але для порядку в списку є.

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

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

✙rozho)))k✙🇺🇦

22 Jul, 06:24


Продовжую збір для екіпажу аеророзвідки

upd: збір завершено, дякую всім!

🥹Вашими зусиллями вдалося зібрати 100k та користувачі @Donate1024Bot досипали ще 30-ку.

🤌Залишилося зовсім небагато: 20k

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

🙏Дякую за підтримку!

✙rozho)))k✙🇺🇦

18 Jul, 06:24


Dogfooding у вітчизняному мілтеку

Одна з великих проблем вітчизняного мілтеку — це відсутність нормального догфудинга.

Наприклад є така програма «Кропива». 99% юзкейсів Кропиви — це поділитися координатами. Для цього розробники зробили т.зв. «Тенета», якими звісно ніхто не користується, бо ненавчений.

Ви б знали як передають ті координати! Найчастіше — скидують в сігнал фотку(!) екрана планшета з Кропивою де в куточку є кори. Отримувач бере то фото, парсить кори й забиває вручну на своєму планшеті.

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

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

Інша історія — UI одного вітчизняного БПАК. То просто класичний приклад інтерфейсу який задизайнили програмісти під свої програмістські задачі. Коли б вони посиділи в полі, то зрозуміли б, наприклад, що потрібно додати на інтерфейс напругу на наземній станції та попередження про розряд. Місце є, але ця інфа схована глибоко, хоча вона дуже важлива, бо якщо пропустити цей момент, то станція залишиться без живлення, втратить зв'язок з бортом, та додасть сивини оператору.

На тому ж інтерфейсі можна додати всілякі точки інтересу, але програма не зберігає їх між перезапусками. З одного боку ну типу ок, якщо хочеш зберегти точки, то роби це через файл і така функція є. Але з іншого — ну йопт, 95% випадків літаєте з одного місця принаймні впродовж дня, по тих самим точках інтересу, чому просто не зберігати їх усі? Це дратує просто неймовірно.

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

В тому ж комплексі для управління камерою є декілька хоткеїв: подивитися вліво під 45, вправо під 45, та прямо під 45. Але немає просто «подивитися прямо» та «подивитися вниз на 90»! А ці функції дуже важливі. Зараз оператору доводиться тиснути «прямо під 45», а потім вже вручну доводити камеру вверх на 0 або вниз на 90, це просто неймовірно харить.

Якби програміст UI провів би хоч десяток бойових вильотів, то він би собі набрав беклогу на рік вперед.

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

Я вже мовчу про неконсистентність у розмірах та видах шрифтів.

Покращень звісно ніхто ніяких робити не буде, тому що це все не вважається пріоритетним.

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

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

P.P.S.: пиздіти — не мішки носити, тому написав розробникам з пропозицією допомоги, подивимося що з цього вийде.

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