Bite the Byte – Telegram
Bite the Byte
3.08K subscribers
24 photos
2 videos
276 links
Соловйов здорової людини!

🌐solovyov.net

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

Без реклами
Download Telegram
Я дуже люблю всякі цікаві лінгвістичні факти і тільки що згадав один дуже прикольний. В англійскій мові є декілька шарів лексики. Найпростіший приклад - це те, що корову вони називають cow - це з древньо-германського kwon (корова). А яловичину називають beef, це від давньо-французського buef (корова). Це сталося через захват норманами Англії в 11 сторіччі, через що всі пани, які їли м'ясо, розмовляли французською, а всі селяни, які цих тваринок ростили - англійською.

Або ж line/order, теж схожа історія - просте слово і "на понтах". :) Поверх цього всього ще є лексика напряму з латини, на кшталт respect, яка з праць церковників та вчених заїхала, і відчувається ще вище рівнем за надбання з французьскої. Якщо продовжувати лінію (pun intended) line/order, з латини це sequence.

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

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

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

Це я про шо взагалі? Про контрол фріків! Мав розмову за кложу з двома різними людьми, між собою незнайомими. Вони себе, вочевидь, впізнають, але я їм обом в очі сказав те саме, що тут пишу, тож маю надію, що сильно не засмутяться. No offence plz, я дуже намагаюся ці приклади використати для викарбовування думок, а не щоб вас публічно в обличчя потикати. Тим більш навряд чи хтось вас впізнає. :)

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

В другого схоже занепокоєння: коли ти в імперативній мові пишеш якусь операцію над масивом, ти бачиш очима, що це цикл, це в тебе O(n), щось там про пам'ять розумієш. А в функціональному програмуванні (чи там в кложі зокрема) в тебе якісь map/reduce, якісь хитрі функції, нічого ти не бачиш і не відчуваєш. Мало того, що map та reduce такі самі цикли (така сама навичка, як і складність в імперативних мовах бачити), так щє й та "зрозуміла мова" - то Python, де казна-що коїться з точки зору перформансу та пам'яті. Я б куди більше переймався за наслідування класів, яке робить життя невитерпно невизначенним (недетермінованим, якщо ви наполягаєте).

І я ось думаю, що це за спори/питання? Ну вони ж зовсім не про мінуси кложи, ні про суть різниці між функціональними та імперативними мовами... Вони про якісь зрозумілі проблеми, за які можна вчепитися? Ну типу я можу придумати, що це може бути проблемою, то напевно це проблема?

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

Подивився відео про те, що значить при зйомці відео 10-bit 4:2:2 і трішечки приголомшений.

10 біт трішки відрізняється від того, як воно в компах. Колись треба було вмикати в настройках дісплею 24 біти, то це у відео-термінах 8-бітний колір, по 256 значень на кожен з ргб. А 10 біт у термінах вінди то 30-бітний, по 1024 значення на кожен з компонентів, тобто 1 мільярд відтінків. Ну це все просто.

А то 4:2:0 (як звичайно) і 4:2:2 (як в модних камерах) це було для мене сюрпризом. Значить так:

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

Тобто при нормальних умовах, в нас відео 8 біт 4:2:0, і це значить що колір є тільки в двох з восьми пікселей.

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

А ось і відео: https://youtu.be/prlQCQHLz8o

Капець.
Як родилася мала у квітні, я почав іноді дивитися ютуб — коли її прикачуєш поспати, читати важкувато буває. :) І один з каналів, який нормально зайшов, це "ім. Т. Г. Шевченка", де брати Капранови розповідають про історію України. Один брат, насправді, інший за кадром тусується. Доволі цікаво розповідають, насправді, але є один момент, який мене непокоїть.

Вони парять тему, що козаки і русини (русини як жителі української частини Київської Русі) — це два різних народи. По-перше, воно у відео трішки за вуха притягнуто, по-друге, суперечить всьому, що тільки можна знайти на поверхні, по-третє, виходить, що Хмельниччина - це загарбницька війна козаків за території Речі Посполитої, на якій жили русини? Weird shit.

Але я якось подивувався і вирішив, що то "художник так бачить", буває, хоча відоси їх став дивитися з меншим бажанням і трішки більш критично... Аж тут згадав, що в них є "Мальована історія України", а мені щось хочеться бумажне почитати. Знайшов її на vsiknygy, а там є перші кілька сторінок.

Хто мене знає особисто, зрозуміє, що пропустити печатне слово мені важко. :) З мобільним якось простіше стало, а раніше я написи на банках у туалеті читав декілька разів підряд, бо шо робити, ггг. Тож я їх прочитав і тут — https://vsiknygy.com.ua/upload/iblock/ff1/ff1cfd0b464e835b265014ef2a698b39.jpg — наприкінці сторінки "легендарна "Велесова книга". 🤦

Що там нам Вікіпедія каже: "літературний фальсифікат, створений в XIX або більш імовірно XX столітті." Це дуже відома липа і я не можу збагнути, як таке можно парити? То вони і для відео такі самі джерела беруть? :(

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

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

Тож я вирішив, що треба робити те, що більше подобається людям: розмовляти, хєхє. Українською!

Тож ввечері у наступний четвер спробую це зробити, на дуже гарячу тему "Чому ж все-таки Clojure". :) Заодно може й відповім на ті питання, на які тиждень тому скаржився: https://youtu.be/ggjQnfC2Xts

План такий: ви заздалегідь задаєте питання (чи голосуєте) ось тут — https://app.sli.do/event/bkgq9myy

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

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

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

А потім один з айосників — sancta simplicitas — використав у інтерфейсі системний перемикач. Типу вимкнено — чоловік, увімкнув — жінка.

Полагодити полагодили, а досі трішки соромно)
😁1
На HN сьогодні новина: оцінка Zapier зараз 5 мільярдів доларів. Якщо хтось не чув цієї назви, то це платформа для автоматизації, типу «коли на цей ємейл прийде аттач, збережи його у дропбокс і додай нагадування у календар оплатити всі рахунки в дропбоксі».

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

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

Тож я пішов почитати коменти і один попався дуже прикольний, у відповідь на «я навіть оцінити такі суми не можу»:

— Я дивлюся на мільярд як на (дуже приблизно) половину круїзного лайнеру, або як на половину казіно на Стріпі у Лас-Вегасі. Тож Zapier це як казіно з пришвартованним лайнером.

Дуже візуально, прям можна усвідомити. 🤣
Кілька років тому я подивився офігезний доклад Гіла Тене (це CTO Azul Systems, виробника кастомного і крутого JVM) про затримку — latency — зі StrangeLoop. Ця розповідь трішечки відкрила мені очі на те, що дуже велика кількість показників, які ми дивимось на роботі, це ті ж самі лаги з кваки. :) І коли тебе бісить те, що через нестабільний пінг ти з рельси не можеш попасти в жодну скакучу ціль, то це те ж саме відчуття, коли ти висиш на лінії в колл-центрі, або чекаєш, коли ж там вже посилочка приїде.

І одна частина цієї розповіді була про те, що на перший погляд здається, що 50 перцентиль затримки - це те, що відчувають 50% твоїх клієнтів, а 95 перцентиль - це те, що відчувають (негативно) 5% твоїх клієнтів. Але це зовсім не так! Якщо в нас поганий 95 перцентиль, то це значить, що з кожних ста запитів до сервера 5 будуть поганими. І якщо сесія клієнта складається з 20 запитів до сервера, то статистично всі клієнти відчують повільний сервіс.

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

Тригернуло мене це написати сьогоднішне обговорення. Виявився інтересний факт: швидкість привезення наших (Касти) товарів людям не впливає на їхню лояльність до нас. Тобто чи це день-в-день, чи 5 днів - у всіх цих груп лояльність практично однакова. Але чому?! Здавалося б, коли ми тобі привозимо день-в-день, ти повинен бути щасливий и постійно в нас замовляти, так?

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

Отак чувак, який займається розробкою віртуальної машини з дуже низькими затримками, допомагає нам розібратися у поведінці нормальних покупців. :) Якщо комусь недостатньо подробиць, то ось сама його розповідь: https://www.youtube.com/watch?v=lJ8ydIuPFeU
🔥2👍1
В деяких банкоматах Аваля є NFC, куди можна прикладати картку, замість того, щоб сувати її всередину. Ці панельки я вже давно бачив, однак минулого року вони запрацювали.

І тіки що був біля банкомату і до мене дішла проста істина: спробував телефон туди тицьнути і так і є, воно працює! :)

Ото вже прогрес, тепер можна ті картки взагалі не носити, кайф!

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

Ну тож маємо апку на React Native, написану людьми, які вже не працюють в нас. Вона ще з півроку тому точно на якомусь з телефонів працювала, але зараз щось немає і apk теж кудись загубилася. Погана новина - вона типу не збирається. Всі зайняті так, що немає слів, тож я трішки пороздвигав зустрічі і зайнявся тим сам. Засетапив середу для розробки, скомпілював в емулятор, воно запускається, показує сплеш і відбувається одразу дві цікаві речі: мій ноут починає ревіти кулерами як той морж, а апка через дві хвилини крешиться, так і не показавши нічого, окрім сплеша.

Ну ок, дістав я справжній Андроїд, хоч ноут не реве. Але в adb logcat все пусто, ніякі дебагери не коннектяться, щось там якихось тулз познаходив і одна каже "я так не вмію, це надто старий реакт". Дивлюся — так і є, з 2018 ніяких апдейтів, 0.58. Добре, думаю, давай я тебе на останній хлам оновлю, підуть якись помилки компіляції, якось воно буде.

Так і сталося, і я навіть був готовий, що в мене буде пригорати, але це можна йобу датися, насправді. Мало того, що в самого React Native такий churn коду та апі. Це я через три релізи реакти стрибнув і воно оре що те не те і то не так. Так щє й змінилися всі плагіни для Babel'я. А без нього ніяк. React Native - на Flow, треба компіляти. Половина бібліотек на тайпскрипті некомпільовані і ти повинен компіляти сам. Але й вся апка написана з синтаксисом, який якби ще не стандартний для жс-двигуна всередині реакту. Тобто щє якийсь плагін.

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

А потім починається, кожна ліба не вміє новий реакт, тож оновлюй і їх. І кожна ліба — це найспеціальніша у світі квітка, яка вважає, що окрім неї нічого не буває. Тож вони одне й те саме то перейменують, то переміщають між різними модулями, а в мене один хєр undefined is not a function, can't access variable of undefined. Хто тут андефайнед, підійміть руки?! Як тебе скотиняко знайти серед модуля на кілька сотень рядків?!!

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

Але ж не повинно так бути, якого біса воно таке все крихке? В мене тепер чітке відчуття, що ми зі своїм фронтом на ClojureScript'і як в якомусь інкубаторі сидимо...

А як в вас життя, нічого за останній час не нападало? :)
Вчора з Ромою Лютіковим та Єгором Львівським у рамках конфи React Fwdays обговорювали, чи потрібен реакт, і як бути з тим, що він усюди (посилання не даю, бо воно за пейволом). А ще за тиждень до того мали схожу розмову у Клабхаузі.

І по питанням і коментарям що там, що там, мені стало зрозуміло, що одного поста і вересневого виступу недостатньо, щоб пояснити, що ми робимо з Кастою, і чому це насправді не повна маячня. :)

Тож у наступний четвер, 1 квітня, о 19 годині за Києвом, приходьте послухати, чому ми викидуємо React, та що буде замість нього (спойлер: TwinSpark, але ви напевно і так це знали). УВАГА: все це зовсім не жарт!

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

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

Посилання на відео: https://www.youtube.com/watch?v=uNF7QmFiQaw
Вирішив якось що мені для мікрофона вкрай потрібен жовтий кабель — це я ще Worker Bee користвувався, тож дуже підходило за кольором. А все шо є в магазах та всяких промах виключно сумних кольорів.

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

І ось приходить нотіфікашка, що кабель їде, а паралельно в месенджер олх з 15 фоток подібного змісту, і з вимірами ємності, etc...

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

Осьо він, якщо вдруг знадобиться (не реклама, я просто вражений максимально): https://instagram.com/goodcable
Знаєте шо? Не дивлячись на таке западло зі сторони погоди, я все одно зроблю стрім, бо точність — це ввічливість, стабільність — це культурність, фідошніки сабжів не міняють... це мене кудись понесло. Просто вибір вечора чогось складний для мене, не дивлячись на карантін, тож плюйте у те вікно і приходьте о сьомій послухати і потім прийняти участь у срачі^Wдискусії.

Ось тут: https://www.youtube.com/watch?v=uNF7QmFiQaw
Те, що у програмуванні все на соплях тримається — звично всім, хоча й дратує трішки. Люди, буває, собі програми на Хаскелі пишуть, щоб гарантувати, що воно працює, типизація там, все інше — а потім воно виходить у реальний світ, йому приходять реальні дані, і всі гарантії розвалюються, тому що хтось той JSON збирає в 1С і забуває екранувати лапки у строках.

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

Але увесь цей стрімінговий сетап, особливо якщо використовувати опенсорсні/безкоштовні рішення, типу OBS та obs.ninja, Streamlabs, і таке інше, воно взагалі дуже складне, незрозуміле і ламається так хитро, що в мене опускаються руки. Ну тобто вчора в Роми, якого я підключив через ніндзю, дублювався звук мікрофона із затримкою (тобто відлуння). Чому - хоч вбийте, я не знаю. Взагалі те, як я ловив його звук - це смішно, і я навіть не хочу писати сюди подробиці, тому що йшов він зовсім не разом з відео (ррррррр). Хочеться якогось рішення простіше. :))

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

Хух, наче пару випустив, можна піти підкинути кілька разів малу, чи ще щось продуктивне зробити. 😁