Bite the Byte
2.7K subscribers
24 photos
1 video
246 links
Соловйов здорової людини!

🌐solovyov.net
🐦twitter.com/asolovyov
🔴youtube.com/asolovyov

Архів каналу: solovyov.net/channel

Без реклами
Download Telegram
Я ж півроку тому купив Соньку a5100 і продав свій Фуджик X-T1, тому що він не вмів видати по HDMI живу картинку — тільки те, що вже записано на картку пам'яті. Ну і ще тому що я його кілька років не чіпав. :) І Сонька за свої гроші виявилася дуже розумною покупкою, майже за гроші Logitech Brio, але з набагато кращою якістю.

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

Походив, помучився, чи воно мені взагалі треба — попередній же ж лежав без діла реально, але ну скіки ото можна страждати, і купив Fuji X-S10. До речі, виявилося, що представництво Fujifilm дає фотіки на тест-драйв на кілька днів. Я так взяв X-E4 з 23/1.4 — ніколи в житті не користувався таким світлим склом — і зрозумів, що об'єктив то воно, а форма фотіку мені потрібна від зеркалки, а не від далекоміра.

Тож X-S10, плюс в мене ще залишилися об'єктиви від X-T1, плюс я купив Viltrox 23/1.4 (тому що він 400$ замість 1000$ за фуджиковське скло, а з якістю все супер). Сказати, що то кайф — нічого не сказати. Просто тащусь від камери, та й від скла теж. Результуючі фотки просто фантастичні, керування кайф — що завгодно з кнопок та крутилок можна переназначити на інші функції, ну й взагалі і форма, і керування супер.

Живлення по USB-C, плюс швидкозйомна площадка вирішують траблу з тим, щоб його зняти або поставити секунд за 10, так що він не намертво стоїть біля компа.

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

А ще макро...
Пару тижнів тому у мене разів 5 за день поламався інтернет. І так цікаво воно відбувалося, що ребут роутера не допомагав. А ось відключення шнурку від роутеру і втикання назад допомагало: провайдер каже "порт завис". У мене було таке один раз минулого року, один раз 1 квітня (пам'ятаю, бо це прям посеред стріму відбулося), і ось 5 разів за той день.

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

І справді, пару тижнів пройшло нормально, аж у четвер знов пропадає! Ну капець, думаю, 4 роки все було нормально, а тепер що?... Якщо ще раз пропаде, то наберу їх ще раз — аж тут раптом дзвонить телефон, а звідти: "ви оформлювали заявку на гігабіт, вона ще актуальна?"

Немає худа без добра, чи що? :) Тепер я плачу на два долари більше, але маю цілий гігабіт! Тепер можна набагато швидше нічого не качати!
Встрягли у трішечки геморну технічно ситуацію, коли ми хочемо зробити нормальну адмінку до всяких маркетингових штук, які вміє сайт — на жаль, ми його різному навчили, але інтерфейсів не зробили і різні штуки вмикаються переписками та лайкою. :) Геморна вона у тому, що ми заюзали rule engine ("двигун правил" поки що мені не звучить нормально як термін) для вмикання, тож треба не тільки формат конфігурації придумати, а ще й компілятор того формату у власне правила для двигуна.

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

Ідея така — ти збираєш до купи відомі тобі:

• факти: id товару такий, постачальник такий, ціна така, властивості такі, користувач з Києва, вибрав оплату картою, вибрав доставку у відділення НП, і т.п.
• правила: доставка на кастапост безкоштовна, якщо ти чоловік з трьома дітьми у Києві і платиш карткою Андорри
• питання: чи доставка безкоштовна? чи може треба хінт для сторінки товару про те, що доставка для оплат карткою безкоштовна?

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

Я ще не дуже розумію, чи може DataScript + запроси туди були б достатньо ефективними та простішими для усвідомлення, чи ні. Але поки що вся ця конструкція виглядає так, що мені боляче за витрачені роки. :)
Судячи з реакції, вчора був занадто технічний пост, тож давайте обговоримо якісь загальнолюдські цінності. Наприклад, колдбрю! :) Беремо чисту холодну воду і каву у пропорції 1:18 — або якійсь іншій, в інтернеті купа обговорень, скільки треба. Я роблю літр води і 55 грам молотої на аеропрес кави і мені подобається результат. Тож цю суміш у банку і в холодильник, а зранку наступного дня (виходить десь годин 16 в мене) фільтруємо і є трішки менше літру дуже смачної кави, яка ще й холодна і у години нестерпної спеки наче нектар. :)

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

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

Кароч, кайфую з результату і не розумію, чому минулого літа цього не робив.
Є така штука - еластіксьорч. В мене з ним якісь love/hate 💔 відносини. Він вміє дуже прикольні штуки, але і має дві вади.

1️⃣ Він завжди, у кожному місці, хоч крапельку, але недороблений.
2️⃣ Його доки завжди написані для тих, хто вже шарить. Тобто якщо ти читаєш якусь доку вперше, то зрозуміти, що вона тобі розповідає, майже неможливо.

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

Почну з контр-прикладу: в постгресі додали можливість вибирати частину JSON'у з поля. І одразу ти можеш це використовувати у селекті, у where, у сортуванні, у агрегаціях, можеш будь-яку строку привести до JSON'у і так само воно буде працювати всюди. Це ортогональність фіч: розробникам постгресу не прийшлось окремо всюди припилювати це механізм, в них нормальні абстракції. 🎉

Натомість давайте подивимость на Elasticsearch. Скажімо, в нас є така штука, як вішлісти. Ти можеш лайкати товари і ми тобі за це потім скажемо, коли на нього впаде ціна. Але є люди, в яких цих товарів дуже багато (десятки і сотні тисяч товарів налайкали, це капець), тож ми їм хочемо дати можливість ті товари фільтрувати. Складати в кожен товар перелік користувачів, у яких він в вішлісті, трішечки нерозумно — популярні товари таки дуже популярні (в найпопулярнішого - 8,5 тисяч лайків 🤯).

Але ми беремо фільтр terms, який дозволяє сказати "хочу лише оці документи". Якби в нас були сотні товарів в одного користувача, то ми б просто їх параметрами запиту передали. Але в нас тисячі (десятки навіть)! Еластік такий: не бійся, чувак, я все шарю. 👌 Диви на доку нижче, якщо ти замість списку термів передаш спеціальну мапу, то це буде означати "хочу документи, список яких є он в тому документі". Ну типу вішліст твій будемо складати в еластік одним документом і потім на нього посилатися (ну теж не дуже ефективно звучить, але ж кращє ніж на читанні таке селектити з бази).

Наче норм, так? Проблему вирішили? Ось тільки ми ж хочемо їх видати так, щоб найсвіжіші (за часом додавання користувачем) були вгорі. А еластік видає як йому заманеться. Добре б його попрохати відсортувати, як у тому нашому документі з вішлістом. Але ж немає шансів! Тому що фільтр термс те вміє, а сортування не вміє. Той "джойн" — не ортогональна фіча. 💩

І це втомлює реально. Еластіксьорч то набор юзкейсів, якщо твого не зробили — то й працювати не буде. Хз, шо з тими вішлістами робити. 🤷
Сьодні зі Степаном пішли на картінг — на «Жагу Швидкості», авжеж, бо де ще можна нормально проїхатися. :) І раптово виявилося, що вони останні два роки вже не пускають повозити дитину на руках. :( А самому йому ще рано, треба 130 см зросту, щоб дістати до газу (кому треба той тормоз).

Тож довелося мені самому разочок проїхатися, тим більш що я там роки 3 вже не був — і перше коло за 43.3 дуже болісно про це нагадує. :)) Колись за 39 з копійками проїжджав сьогоднішню конфігурацію, а зара найкращий результат — 41.7 при тому, що крім мене на трасі тіки ще один чувак був.

Але кльово, приємна втома в пальцях, хехе. Треба ще буде сходити. ;)
Оце вже мошейнікі пішли грамотні, капець. Вчора виставив інтеловий макбук про на продаж на олхі, сьогодні в Телеграм пише мені якийсь Илья Усачёв, і каже — а можна сьогодні в Києві зустрітися купити? А ви вже його почистили? А скільки циклів перезарядки (це трохи дивно, в оголошенні ж написано)?

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

І тут він дуже хоче по телефону говорити — ну ок, і відбувається в нас така розмова:

— Ви вже повидаляли всі аккаунти?
— Так.
— Давайте тоді в наш айклауд зайдемо, щоб я перевірив все.
— Гммм, ні, в айклауд я заходити не буду.
— Але ж як я перевірю? Чому не хочете?
— Тому що ви мені потім ноут заблокуєте)) Приїжджайте дивіться своїми очима.
— Добре, я тоді подумаю, як ще перевірити, до побачення.

І повидаляв всі мессаги з телеграмівського чату. Хитре падло.
Кілька днів тому на реддіті пробігав тред "Які цукерки ви вважаєте найгіршими за всю історію", і, через переважну більшість американців в аудиторії, там доволі багато обговорювалися конкретні американськи бренди. Навіює одну думку — що коли я думаю про цукерки, для мене це види цукерок, а не компаній.

Це, авжеж, через совєцьку спадщину, тому що "ромашку" робило багато різних цукерових фабрик — і хоча в деяких були досить впізнавані бренди, але ж ті ж самі "заварні" робили прямо всюди!

Я не можу дати якусь моральну оцінку цьому, треба обсмоктати зі всіх сторон, але не можу не звернути увагу на те, що "конкретні бренди" звучить дуже схоже на "конкретні типи" з ООП, на які постійно котить бочку Річ Гіккі. :)

Тож "рачки" і "ромашки" це як структури даних, хто завгодно може їх зробити і віддати далі споживачам тих даних (чи хоче він "червоний мак", чи там масив хешмепів). А якщо ти живеш у всесвіті ООП і тобі потрібен Кіткат, то лише конкретний виробник може його зробити і незаконна копія карається законом!

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

Мораль: вчися програмувати на кложі — це дозволяє і рибку з'їсти, і на Снікерс сісти. 🤣
Україна це хайтек на мінімалках. Ми живемо у майбутньому, набагато більше, ніж більша частина білого світу, але цей хайтек будується і юзається з мінімальними костами.

Скажімо, в нас потроху головним методом платежу стає переказ з картки на картку - дуже швидкий, дуже дешевий (а часто і взагалі безкоштовний), без метаданих та підтверджень. В мене на районі навіть розкладка з овочами приймає такі перекази. Ще й сама пропонує, до речі! Я навіть бачив на свої очі, як бабуся 70+ з монобанка перекидувала гроші, «бо не треба з дрібнотою возитися». Але! Покажи будь ласка екран, що гроші пішли, бо карта - хазяїна.

В інсті шось купив, гроші сюди і будь ласка скріншот переводу. Довбаний гемор, придумати якийсь протокол, де б метадані ходили, ще б навколо візи/мастера, щоб комісію не платити — раз плюнути, тіки воля двох-трьох великих банків треба. Але ні, нащо, давайте скріншотами у месенджерах підтверджувати перекази.

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

А замість того, щоб виписувати штрафи за паркування, давайте запустимо евакуацію приватною конторою по ціні х5 від ринкової. Але ж вивезення з неасфальтованої площадки з ланцюжком замість шлагбауму обов‘язково зробимо в застосунку, з QR-кодом в кінці! Нашо він там, номера машини не вистачає?..

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

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

Хтось читає про принцип Don't Repeat Yourself, і починає робити параметрізовані функції на всі два випадки, хоча воно простіше вирішується кастомними трьома строками інлайн. Люди надивляться на переускладнені DRY'єм (пересохлі, ггг) кодові бази і потім пишуть у твітері "ні в якому разі не робіть функцію, поки хоча б три рази вона вам не знадобиться!" Впевнений, потім на цю лапшу інші люди будуть дивитися і писати "не повторюйся падлюко!" Хоча капець, це ж просто — подивись на те, що ти пишеш, і подумай, чи це має сенс бути окремою функцією? Це ж просто спосіб зробити абстрацію.

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

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

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

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

Я не знаю, куди треба відправити пропозицію на наступне оновлення мови, але моє мовля вже знає, шо воно мовля. :) І інші мовлята теж дізнаються, коли будуть балакати поверх всіх присутніх. :)
Є речі, які стають настільки звичними і настільки частиною щоденного життя, що про них перестаєш замислюватися. Наприклад, Кафка. Мова не про грефневу, авжеж.

Що воно таке? Це наче черга повідомлень, але ці повідомлення там назавжди (ну або скільки скажеш, диски ж не безкоштовні). Абстрактно вся кафка це файли зі строками повідомлень і додатково записи про те, на якому рядку кожний читач зупинився. Ментальна модель екстремально проста і через те дуже ефективна!

Що воно нам дає?

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

Коли ми її впровадили, цілий клас проблем просто щез. Не тільки технічних, а й такі штуки, як тикання друг у друга різними командами: «ви не те відправили!», «ні, це ви не так прочитали!» — вони просто не існують у світі, де інтеграції не по хттп (або схожій схемі), а через кафку.

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

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

• id, topic, message
• consumer name, topic, offset

Цього вистачить, аж поки рахунок не піде на тисячі у секунду.

Мораль така: якщо у вас є всередині хттп апі — то час замислитися. А якщо є rabbitmq чи шось схоже — час апгрейдитися. :)
Коли ти робиш публічне апі — ти підписуєшся на зворотню сумісність. Публічне — це не тільки апі для широкого загалу, це й:
• те, що ти видав мобільним аппкам — вони ж можуть роками не оновлюватись
• схема обміну між кількома сервісами
• схема бд, у якої є кілька клієнтів — а під час апгрейду сервісу вочевидь різні версії треба рахувати різними клієнтами
• бібліотека, що ти виклав на гітхабі
• та й таке інше

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

Чому? Тому що це зменшує кількість страждань у світі. Апка не перестане працювати. Сервіси не зламаються і їх не треба буде лагодити. Клієнти БД не помітять ваших змін. Краса!

Насправді, коли це внутрішня штука, то змінювати можна все, просто у кілька релізів. Хочеш перейменувати поле з uuid на id у повідомленнях сервісу А так, що сил немає? Випускаєш сервіс Б, який читає обидва поля, а потім вже сервіс А з перейменуванням. А потім ще можна закріпити релізом сервісу Б, який тільки другу назву читає.

Коли таких споживачів штук 3-5, перейменовувати поле не хочеться. І не треба. :)

Можна вчитися у Clojure: береш якийсь код на гітхабі, який 8 років не торкалися, а він працює. Фантастика!
Я не люблю стрес, не люблю незворотні дії, і не люблю повторювати одну й ту саму роботу. Вочевидь, ніхто не любить, але чомусь у кожному проекті, де я приймав участь за останні 10 років, деплой найбільше непокоїв саме мене. :) І тож моя опінія — деплой повинен бути такої складності, щоб 10 раз за день не ставали додатковим навантаженням на когось, окрім системи CI.

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

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

Що треба, щоб стало норм? Дивись чекліст! Він упорядкований, кожен крок наближує до ідеалу.

* Скрипт, який буде генерувати артефакт, який буде запускатися: архів, пакет, уберджар, докер-файл.
* CI, налаштованний так, щоб цей скрипт запускався на кожен тег гіта (ну або взагалі на кожен комміт і далі автоматично все викочувати на стейджинг).
* Сценарій деплоя без даунтайму. Забрав сервер з балансування, перезапустив процес, увів назад. Або запустив нові контейнери, перевів балансування на них, повимикав старі.
* Цей сценарій повинен запускатися з якогось зрозумілого місця, а не з ноута якогось чувака. Скажімо, з кнопки у гітлабі, з команди в слаку, щось таке.
* Ось тут вже змінюємо процес і починаємо релізити частіше. Або прям кожну фічу окремо, або кілька. Ми у середньому робимо 9 релізів на тиждень.
* Трекінг помилок на продакшені з нотіфікашками про нові — ну типу Sentry. Воно вже і так повинно було бути, але все ж нехай буде. :)
* Сценарій ролбеку — релізу якоїсь з попередніх версій. Якщо можна швидше, ніж свіжий деплой, то так і треба робити. Це для зменшення стресу, щоб не так страшно було великі зміни релізити. Тіки помилки почали лізти, пішов, стару версію викотив, і можна спокійно розбиратися.
* Опціонально: якщо ви розробляєте гілками у гіті, навчитися легко викочувати ті гілки на окремі піддомени, щоб тестувати і дивитися до мержу у мастер.

Ну й не забувайте просту істину: мізки треба вмикати все одно. Головне — не пройти чекліст 1-в-1, головне — щоб стало добре. :)
Літо — це пора року без стрімів. Бо хтось хоче погуляти, хтось до ресторану, хтось ще щось — тож ті стріми робити нікому і дивитись нікому. Але ось вже тиждень як повноцінна осінь влупила холодними гидкими дощами, тож замість погулять давайте поговоримо!

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

Поширюйте запис і занотовуйте: післязавтра, середа, 29 вересня, о 17:00 за Києвом (це взагалі норм, що о 17? Не сильно рано?). Або краще ставте нагадування: https://youtu.be/UXnTzxGhnXc
Вчора ввечері згадав, що я ж хотів спробувати порекламувати стрім у фейсбуці, щоб зрозуміти, як воно працює. Ну і може привести когось, але це не точно, бо над креативом я сильно довго не думав. :)

Значить так: пости з профіля свого рекламувати не можна. Можна або створити нову рекламу, або рекламувати пост зі сторінки (з таких що Page звуться), або івент, теж зі сторінки. Може треба було звичайну рекламу зробити, але ж це треба більш інформативну картинку, ніж мій тамбнейл для відео, тому я вирішив рекламувати івент. Зробив сторінку у Фейсбуці, запостив туди івент, нажав «просувати», сказав «ось тобі 10 баксів до 5 вечора» і воно поїхало.

Спочатку тієї кнопки не помітив, і пішов через ад менеджер щось створити і мало не зійшов з глузду. Інтерфейс там... фантастика просто. 😖 А ще воно не дало з події нічого створити, сказало що треба звичайний пост — але коли я створив іншим шляхом, то в ад менеджері все з‘явилося. Ну як заведено давно, взаємовиключні параграфи — фундація нашого буття. :) Після публікації воно ще декілька годин перевірялось, і, судячи з усього, почало працювати десь о другій ночі (я майже опівночі все робив).

Фільтрами поставив інтереси ruby, python, java, c# і devops. На пхп забив, бо там їх нереальна кількість. :) Хз, чи це разумно взагалі? Маю зара 664 перегляди і 0 взаємодій за 1.91$. Не знаю, які висновки треба з того робити. :))

Пішов глянути у твіттері на Boost Tweet, а там мінімум 50 євро. Ось тут жаба прокинулася і каже «краще мож фейсбуку десяточку докинь». :)
Нагадування - 15 хвилин і поїхали, тож не завтикайте, якщо планували :)
У нас усіх в голові минуле трішки забарвлене рожевими окулярами спогадів. По-перше, людині властиво забувати погане, по-друге, ті, в кого там (у минулому) пройшла молодість, розповідають солодкі казки (бо важко об‘єктивно оцінити реальність, тим більш коли ти колись мацав дівчат за сідниці, а зара трава пожовкла), і, по-третє, є купа доказових артефактів!

Про артефакти у вигляді автомобілів ми й поговоримо. Наприклад, беремо відносно новий Міні Купер R56 (в мене був такий, 2008-го року). В нього досить технічно просунутий двигун Прінс спільної розробки БМВ і Пежо. І від БМВ там такі круті маслозйомні кільця на поршнях, в яких отвори для відведення масла невеликі, щоб воно все було акуратно. А двигун гарячий, тому що паливо витрачається ефективно, щоб трохи менше у трубу вилітало. Що це нам дає? Те що сраний Кастрол, який БМВ рекомендує, починає підгоряти та відповідно забиває ті невеликі отвори й ось ти не встиг обернутися, а воно жере літр масла на тисячу км. 🤦‍♂️

А з іншого боку візьмемо Гольф 2, які досі є на дорогах і наймолодшому вже 30 років точно. Ну тобто звичайнісінька автівка з 80-х і норм, не те що мінік!

Чи значить це що раніше огого, а зара тююю? Італійський журнал Кваттроруте років 15 тому зробив тест-драйв нового тоді Fiat 500 Nuovo довжиною у 100 тисяч км. Їздили по всій Європі, півночі Африки, по горах і долинах, по грязюці та по асфальту. Але найцікавише у цьому тесті інше — за 50 років до того вони робили такий самий тест, але першого Фіат 500. Теж сто тисяч кілометрів. І списки виконаних робіт просто неможливо порівняти! По-перше, заміна масла у двигуні кожні 5 проти кожних 20 тисяч кілометрів. По-друге, постійне обслуговування підвіски. По-третє, величезна кількість використаних запчастин. І інструментів, які возили з собою. Я думаю, що ви здогадалися, що мова не про новий, де міняли масло/фільтри, та один раз колодки.

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

Є цікава річ: в залежності від моменту, коли людина почала роздуплятися в автомобілях, в неї різні погляди на те, що підпадає під "старі прості й надійні автівки". Зазвичай це машини, які були у продажу за 15-20 років від цього моменту. В мене все так само, тому перетин 80-90-х для мене дуже довго відчувався як баланс між простотою, надійністю та комфортом. Хоча, якщо замислитися, там такий капець був, моноінжектори, пацавата електроніка Бош тих часів... не хочеться згадувати. :)

Окрема тема — це двигуни. Я взагалі цей пост почав писати після того, як Вова написав про двигуни. Але історія ж та сама! По-перше, всі гівняні конструкції вже давно померли, і ти їх просто не побачиш ніде. По-друге, у ті часи просто не вміли добре розраховувати витривалість, і там, де прорахувалися в іншу сторону — надійність зашкалює. Зара краще рахують, хоча трабли бувають, не будемо забувати БМВшні двигуни 00-х/початку 10-х. Але ж все одно, чомусь геніальний V6 Буссо Альфа припинила виробляти у 00-х! Хоча діфірамбов йому протягом 30 років співали стіки, що самому Джузепе повинно було бути ніяково. :)

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

А те, що не треба шпринцевати підвіску кожні пару тисяч кілометрів — це просто щастя. ☺️
Пару днів тому забрав з поштомату Нової Пошти свою каву (з Kyiv City Roast, вважайте цей пост рекламним, хаха). Забрав та й забрав, ну типу почекав, поки з третього разу воно завантажило дані відправлення і приконектилося до поштомату. Я забрав свою каву, закрив поштомат, натиснув "забрав" на екрані смартфону і пішов собі додому.

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

Не знають! Сьогодні прийшла нотіфікашка "ще день і ми перенесемо ваше відправлення до найближчого відділення"! Ну що ж, переміщайте, напевно ж кур'єр роздуплиться, що це означає "вже забрав"? Але, блін, яка ж це неприємна проблема, що вони залежать від (погано працюючої) аппки і дій користувача, щоб роздуплитися, що у комірці вже пусто? Наврядчи той поштомат копійки коштує, невже при розробці ідея про датчики обсягу не приходила до голови?
Фейсбук знач вчора відпочивав, чули таке? І тіки він вимкнувся, з різних сторон почали лізти дуже конспірологічні теорії про хакерів, правительство США та криптовалюту від фейсбуку, і інший подібний бруд. Цікаво, зо я в цілому не так багато торкаюся цієї частини інтернету і воно лізло з дуже неочікуваних місць.

Але насправді це була помилка у конфигурації. CTO Cloudflare вже написав статтю про те, як це виглядало ззовні: фейсбук просто перестав себе рекламувати по BGP. Тобто перестав всім іншим розповідати, як добратися до його мережі з іншого інтернету. Ну реально просто як вимкнув телефон і приліг спати. :)

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

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

Загалом воно лежало близько 4,5 годин і почало піднімати голову після 12 ночі за Києвом. Непогане нагадування про те, що інтернет одночасно і дуже складний, і працює завдяки тому, що всі ведуть себе корректно. Такі самі відчуття, як з дорожнім рухом. :)

Дуже хочеться почитати постмортем від самого фейсбука! Тож чекаємо на нього. :)
Всі знають історію фейлу Kodak з книжок для MBA, коли чуваки першими у 70-х розробили матриці, але вирішили, що це вб'є прибуток від продажів плівки і поклали це все на шухляду, аби заробити побільше грошей. А потім прийшла революція і Кодак від того вмер.

Це все чухня! Красива казочка про бездіяльних менеджерів, в яких немає приводу робити краще, бла-бла-бла. Насправді Кодак інвестував мілліарди доларів у 90-ті у цифрове фото, камери на початку 00-х використовували матриці Кодака, і у середині 00-х Кодак займав більше 20% ринку цифрових камер у США. То де ж проблема? Проблема у тому, що Кодак разом з Фуджи становили дуополію з виробництва дуже складного продукту: кольорової плівки. На скейлі ще щось виробляли Агфа та Коніка, але вони були малесенькі порівняно з тими двома монстрами. І вони звикли до цього ринку: ти робиш щось добре і через те отримуєш прибуток.

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

Тож справжня історія тут не про Кодак, а про Fuji, які змогли. Фуджи ще у 90-х почали диверсифікацію бізнесу у компліментарні області: захисні плівки до LCD (гарно вгадали, що ринок полетить вгору), медичні прилади (оптика єтц), косметика (у плівках багато роботи з коллагеном, як й у косметиці для шкіри), і т.п. І група Фуджи у 2010 була в 1.5 рази більше, ніж у 2000-му! Ну й вони експериментували з value-added (на відміну від commodity) фотіками і на початку 10-х випустили дуже вдалий X100, з якого потім виросла кльова серія X.

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

Це насправді і вся історія, але якщо хочете більше подробиць із цифрами, осьо велика стаття: https://petapixel.com/2018/10/19/why-kodak-died-and-fujifilm-thrived-a-tale-of-two-film-companies/