Premature Optimization
Ця цитата мене дратує вже десятиріччями, бо її використовують як “виняток підтверджує правило” — не розуміючи оригінальної думки. Повна цитата (по лінку — повна стаття) звучить так:
Small efficiencies, comprendo, amigos? Питання не про перформанс, а про мікро-оптимізації, бо вони дуже пов’язують код, зроблять тобі big hairy mess. Вся ідея в тому, що потурбуйся спочатку про алгоритм, про архітектуру, щоб вона була вдала — а потім будеш займатися оптимізаціями.
Тобто дядько Кнут, до якого посилаються всі люди, яким впадляк очехлитися, як не писати код з N+1, буквально прямо казав — спочатку зроби нормальний алгоритм. О(1) зроби замість О(N), будь ласка, так?
Хороший приклад (кльово шо співробітники не україномовні 🤣): в Метабейзі вирішили зробити зберігання вибраних фільтрів на дешборді для кожного користувача окремо. Технічну доку про це написав фронтендщик, якому очевидно впадляк було щось робити, і він спланував, що зберігання повинно відбуватися під час виконання запиту карточки.
Але на 1 дешборді може бути з 20 карточок, і кожна з них зберігає фільтри. Ще краще, що чувак, який на бекенді це зробив, зробив цикл зі зберігання кожного фільтра. В тебе 10 фільтрів? Вітаю, це 10 запитів в базу.
І ладно б нормально написать було довше, аніж оцю херню зробить, так ні ж, взагалі ні. 1 додатковий новий дуже простий API vs ковиряння у дуже стрьомному місці… Я навіть не знаю, що з цього швидше було б зробити. Так само і N+1, зробити без зайвої сотні запитів при написанні коду — коштує рівно стільки ж часу, але от при пошуку і виправленні в залежності від того які шмарклі піднакопичилися може з’їсти пару днів.
Кайф, що дізнався я (ну й всі інші) про це, бо великі кастомери почали попадати в deadlock’и. Ми, авжеж, зробимо postmortem, і я там теж збираюся виступити з промовою, що адекватна архітектура і увага до перформансу — це взагалі не передчасна оптимізація.
Але і вам шось захотілося розповісти, бо для того щоб шльопати говнокод вже є О1 та Клавдій, а хороший програміст одразу думає про наслідки.
Ця цитата мене дратує вже десятиріччями, бо її використовують як “виняток підтверджує правило” — не розуміючи оригінальної думки. Повна цитата (по лінку — повна стаття) звучить так:
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
Small efficiencies, comprendo, amigos? Питання не про перформанс, а про мікро-оптимізації, бо вони дуже пов’язують код, зроблять тобі big hairy mess. Вся ідея в тому, що потурбуйся спочатку про алгоритм, про архітектуру, щоб вона була вдала — а потім будеш займатися оптимізаціями.
Тобто дядько Кнут, до якого посилаються всі люди, яким впадляк очехлитися, як не писати код з N+1, буквально прямо казав — спочатку зроби нормальний алгоритм. О(1) зроби замість О(N), будь ласка, так?
Хороший приклад (кльово шо співробітники не україномовні 🤣): в Метабейзі вирішили зробити зберігання вибраних фільтрів на дешборді для кожного користувача окремо. Технічну доку про це написав фронтендщик, якому очевидно впадляк було щось робити, і він спланував, що зберігання повинно відбуватися під час виконання запиту карточки.
Але на 1 дешборді може бути з 20 карточок, і кожна з них зберігає фільтри. Ще краще, що чувак, який на бекенді це зробив, зробив цикл зі зберігання кожного фільтра. В тебе 10 фільтрів? Вітаю, це 10 запитів в базу.
І ладно б нормально написать було довше, аніж оцю херню зробить, так ні ж, взагалі ні. 1 додатковий новий дуже простий API vs ковиряння у дуже стрьомному місці… Я навіть не знаю, що з цього швидше було б зробити. Так само і N+1, зробити без зайвої сотні запитів при написанні коду — коштує рівно стільки ж часу, але от при пошуку і виправленні в залежності від того які шмарклі піднакопичилися може з’їсти пару днів.
Кайф, що дізнався я (ну й всі інші) про це, бо великі кастомери почали попадати в deadlock’и. Ми, авжеж, зробимо postmortem, і я там теж збираюся виступити з промовою, що адекватна архітектура і увага до перформансу — це взагалі не передчасна оптимізація.
Але і вам шось захотілося розповісти, бо для того щоб шльопати говнокод вже є О1 та Клавдій, а хороший програміст одразу думає про наслідки.
❤63👍36🔥5💯2😁1
Дірява телега
Телеграм ламають як дурний. Приходить тобі лінка від когось з контактів “проголосуй за мою донечку” чи ще якась лабудень, клацаєш — і в тебе крадуть аккаунт. Викидають всі твої сесії, і навіть якщо ти логінишся з підтвердженням телефону — телеграм вважає, що сессія нова і не дає викинути взломщиків. А вони через секунду-другу, схоже, в циклі перевіряють, які є сесії, і викидають тебе. Дочекатися поки твоя сессія “подорослішає” не виходить.
А через кілька днів, напевно коли вони всім твоїм контактам відправлять спаму, вони забивають на цей акаунт, то можна залогінитися, дочекатися “дорослішання” і викинуть їх сесію.
Фантастичний юзкейс, правда? Телеграм, очевидно, робить з цим абсолютно нічого — сапорта ніякого нема, зробити нічого не можливо, твій акаунт не твій і взагалі йди в дупу. Встановлення пароля, я так розумію, допомагає від цього, але хто з людей, які клацають на раптову “проголосуй” його встановив?.. Хоча я оце думаю, що я б на якийсь bitly без передперегляду і з описом “блін, заціни шо постгрес творить” і сам би натиснув без проблем 🤣
Що в цій всій історії цікаво — це власне як вони акаунт крадуть? Я не розумію, яким чином натиснення на посилання дозволяє забрати акаунт в телеграмі? Ну це якось тупо, що це взагалі можливо? Візьміть може та й закрийте цю діру?
Ладно б це було щось супер-нове, так ні ж, кілька місяців вже відбувається. Пане Павєл, ну що за бардак у вас тут? 🙄
Телеграм ламають як дурний. Приходить тобі лінка від когось з контактів “проголосуй за мою донечку” чи ще якась лабудень, клацаєш — і в тебе крадуть аккаунт. Викидають всі твої сесії, і навіть якщо ти логінишся з підтвердженням телефону — телеграм вважає, що сессія нова і не дає викинути взломщиків. А вони через секунду-другу, схоже, в циклі перевіряють, які є сесії, і викидають тебе. Дочекатися поки твоя сессія “подорослішає” не виходить.
А через кілька днів, напевно коли вони всім твоїм контактам відправлять спаму, вони забивають на цей акаунт, то можна залогінитися, дочекатися “дорослішання” і викинуть їх сесію.
Фантастичний юзкейс, правда? Телеграм, очевидно, робить з цим абсолютно нічого — сапорта ніякого нема, зробити нічого не можливо, твій акаунт не твій і взагалі йди в дупу. Встановлення пароля, я так розумію, допомагає від цього, але хто з людей, які клацають на раптову “проголосуй” його встановив?.. Хоча я оце думаю, що я б на якийсь bitly без передперегляду і з описом “блін, заціни шо постгрес творить” і сам би натиснув без проблем 🤣
Що в цій всій історії цікаво — це власне як вони акаунт крадуть? Я не розумію, яким чином натиснення на посилання дозволяє забрати акаунт в телеграмі? Ну це якось тупо, що це взагалі можливо? Візьміть може та й закрийте цю діру?
Ладно б це було щось супер-нове, так ні ж, кілька місяців вже відбувається. Пане Павєл, ну що за бардак у вас тут? 🙄
💯53😁17🤯5❤1👍1
Вчора прогулювався по вулиці і натрапив на випуск “Опівночних Балачок” про Golang Madness, про те, як в Го погано. Я люблю пнути Го як і будь-який інший свідомий не-луддит (вибачте, панове гограмісти, ви самі обрали своє життя), але… претензії якось такі поверхневі, що я образився за мову.
Чесне слово,
Короч, більшість претензій рівня “в пайтоні індентація впливає на виконання” або “в ліспах скобка перед назвою функції”, дуже поверхнево. Соромно, пацани! І трохи смішно за переживання, що масив — обмеженої довжини. А як інакше, якщо ти хоч бути ефективною не-високорівневою мовою програмування?
Ладно, за згадку про абсолютно тупий підхід до форматування дат — не соромно. Я пам’ятаю в мене був іспанський сором за цю херню ще коли я перший раз з кимось Го обговорював в 2010 році, і нікуди воно не поділося. Замість використати сішну
От спосіб хендлити помилки нікуди не дівся і він досі абсолютно кончаний. Погано в ньому і те, що
Але є більша проблема, а саме — неструктурована конкаренсі. Коли ти відкриваєш новий проєкт, в якому насобачили каналів і обробки цих каналів, а канали передають кудись невідомо куди (найкращий варіант — канал каналів), то знайти, хто тобі прислав ці дані — іноді дуже важко. Авжеж, можна тримати себе в руках і не передавати канали занадто глибоко (або робити очевидним, що ти робиш), але хто це себе в руках буде тримати?
Короч, те що конкаренсі в Го дуже легко робиться — це плюс, на відміну від інших мов — змушує всіх навчитися цим користуватися. Те, як воно зроблене, і те, що нічого ніхто не змінює і не покращує — це мінус. Ви можете спитати, а де краще? В Джаві краще, авжеж, всі ці ThreadPoolExecutor’и — це і є структурна конкаренсі. Писать не дуже зручно, трохи багатословно, але для того і придумали Кложу, щоб JVM було приємніше користуватися.
Висновки які взагалі? Го — прекрасна мова для написання невеликих програм, де не треба особливої бізнес-логіки, бо вона губиться за всіма
Чесне слово,
fmt
- погане скорочення? Ви взагалі C бачили? Чи очікуєте від старих сішників (буквально старих, наймолодшому із лідів проєкта — Робу Пайку — на момент релізу було 55 років), що вони почнуть давати назви на кшталт SingletonBuilderFactory та beginGeneratingDeviceOrientationNotifications? Чи може ти просто любиш Пайтон, який прям “золота середина”, за .format()
, що не помічаєш import sys
? 😁Короч, більшість претензій рівня “в пайтоні індентація впливає на виконання” або “в ліспах скобка перед назвою функції”, дуже поверхнево. Соромно, пацани! І трохи смішно за переживання, що масив — обмеженої довжини. А як інакше, якщо ти хоч бути ефективною не-високорівневою мовою програмування?
Ладно, за згадку про абсолютно тупий підхід до форматування дат — не соромно. Я пам’ятаю в мене був іспанський сором за цю херню ще коли я перший раз з кимось Го обговорював в 2010 році, і нікуди воно не поділося. Замість використати сішну
%d.%m.%y
або джавну dd.MM.yy
, вони вигадали нову неймовірну схему із використанням реальної дати як приклада (Jan 1 03:04:05 2006 GMT+7
). Про це можна сказати дві речі: по-перше, використання реальних даних як мови для опису даних - відстій. Помилися в тих даних і напиши там 2024 — і не помітиш, і всюди буде 2024. По-друге, це теж поверхнева проблема, тому що strftime є як ліба і все, забудь про свої проблеми.От спосіб хендлити помилки нікуди не дівся і він досі абсолютно кончаний. Погано в ньому і те, що
if err ≠ nil
захламляє код, і те, що він абсолютно неструктурний: errors.New(string)
приймає рядок, який потім шо, як в коді визначити, яка це саме помилка? Так, ти сам собі можеш організувати структурні помилки, але в бібліотеках, які ти використовуєш, їх не буде, бо це не системна тема, і знач треба шо, в рядок дивитися? Як гограмісти вирішують як хендлити помилку — я не знаю. В джаві є різні типи в помилок, в кложі кожна помилка — несе структуровані дані, всі інструменти для роботи з цим є. Го? такоє…Але є більша проблема, а саме — неструктурована конкаренсі. Коли ти відкриваєш новий проєкт, в якому насобачили каналів і обробки цих каналів, а канали передають кудись невідомо куди (найкращий варіант — канал каналів), то знайти, хто тобі прислав ці дані — іноді дуже важко. Авжеж, можна тримати себе в руках і не передавати канали занадто глибоко (або робити очевидним, що ти робиш), але хто це себе в руках буде тримати?
Короч, те що конкаренсі в Го дуже легко робиться — це плюс, на відміну від інших мов — змушує всіх навчитися цим користуватися. Те, як воно зроблене, і те, що нічого ніхто не змінює і не покращує — це мінус. Ви можете спитати, а де краще? В Джаві краще, авжеж, всі ці ThreadPoolExecutor’и — це і є структурна конкаренсі. Писать не дуже зручно, трохи багатословно, але для того і придумали Кложу, щоб JVM було приємніше користуватися.
Висновки які взагалі? Го — прекрасна мова для написання невеликих програм, де не треба особливої бізнес-логіки, бо вона губиться за всіма
if err
'ами: консольні утіліти там, якісь невеличкі мікросервіси тощо. А для серйозної роботи є Clojure. ☝️🔥29😁11🤝8👍5💯5❤4
Я шось думав над інтро і якась фігня виходить, тому просто йдіть дивіться новий 1-2-3 Techno, із Сергієм Ковалем. Інтро, як ми познайомилися 22 роки тому, є всередині, не буду повторюватися. 😁
По назві відео і позавчорашньому посту може здатися, що це заплановано, але ні, це неймовірний збіг обставин. Або просто консистентність у підходах. 🤣
По назві відео і позавчорашньому посту може здатися, що це заплановано, але ні, це неймовірний збіг обставин. Або просто консистентність у підходах. 🤣
YouTube
Python — погана мова програмування, а Go — ще гірша | Обговорюємо та обираємо технології
📌 Детальніше про курс Algorithms in Practice — https://www.csosvita.com/courses/algorithms-in-practice
📌 Детальніше про курс Performance Engineering — https://www.csosvita.com/courses/performance-engineering
У новому випуску подкасту 1-2-3 Techno поговорили…
📌 Детальніше про курс Performance Engineering — https://www.csosvita.com/courses/performance-engineering
У новому випуску подкасту 1-2-3 Techno поговорили…
🔥40😁6❤2👍1
Монобанк релізнув (тільки у новому інтерфейсі, правда) маркетплейс. Поки що дуже рудіментарний — три магазини, мало товарів, не дуже кльовий пошук, каталогу поки що нема, але вже рапортують більше 20к замовлень (це я так інтерполюю, ггг). Що заважало стільки замовлень людям приносити напряму до того самого Moyo? Напевно, відсутність Живчика. 😁
Цікаво, що зовнішньо виглядає абсолютно по тому самому рецепту, що й маркетплейс у Приваті — наче і зрозуміло, але якось і різноманіття хочеться, придумайте щось нове? 😁
Я наразі бачу дві серйозні різниці — Монобанк значно менше захаращений фічами відносно Привата і тому “Маркет” буквально легше побачити, плюс — він (Монобанк) банально модний. Не варто, авжеж, недооцінювати дистрибуцію, і на модності самого Монобанку якась аудиторія скоріш за все складеться і в їх маркетплейса. Але треба щось цікаве робити, бо ринок-то не пустий. 😁
Цікаво, що зовнішньо виглядає абсолютно по тому самому рецепту, що й маркетплейс у Приваті — наче і зрозуміло, але якось і різноманіття хочеться, придумайте щось нове? 😁
Я наразі бачу дві серйозні різниці — Монобанк значно менше захаращений фічами відносно Привата і тому “Маркет” буквально легше побачити, плюс — він (Монобанк) банально модний. Не варто, авжеж, недооцінювати дистрибуцію, і на модності самого Монобанку якась аудиторія скоріш за все складеться і в їх маркетплейса. Але треба щось цікаве робити, бо ринок-то не пустий. 😁
👍36😁3💯3❤2🤯2
Панове, ви шось сидите на своїх 5 точках рівно, а Метабейз несамовито наймає. Ми чергу резюме бекендщиків вже привели в нормальний стан, а у фронтендщиків майже, тому будь ласка, якщо ви шукаєте роботу, або думали шукати — велкам. Воно складне — що співбесіда непроста, що код теж буде челленджити (не стільки завдяки легасі, скільки через доменну область), але ж це й треба, вірно?
Для бекенду досвід на кложі не вимагається, але очевидно треба мати хоча б бажання, бо бекенд весь повністю на кложі. Для фронтенду, я думаю, досвід із Реактом потрібен, бо це простіше вимагати.
Одразу попереджаю, якщо ви пару років як почали програмувати і нема як продемонструвати, шо результати розривають, то шансів не дуже багато, нажаль. І загалом співбесіди нетривіальні, хоча й фанові — через це середній вік розробників в Метабейзі помітно за 30 років. 😁 Це я не відпугнути намагаюся, а заманити, насправді. 🤣
Комунікація більше орієнтована на писемний стиль, аніж на зустрічі, ментально переїжджати в часову зону США не треба, зустрічей в тиждень у програміста зазвичай мало, продакти дуже круті і дуже технічні. І весь продукт - open source! Велкам. :)
Для бекенду досвід на кложі не вимагається, але очевидно треба мати хоча б бажання, бо бекенд весь повністю на кложі. Для фронтенду, я думаю, досвід із Реактом потрібен, бо це простіше вимагати.
Одразу попереджаю, якщо ви пару років як почали програмувати і нема як продемонструвати, шо результати розривають, то шансів не дуже багато, нажаль. І загалом співбесіди нетривіальні, хоча й фанові — через це середній вік розробників в Метабейзі помітно за 30 років. 😁 Це я не відпугнути намагаюся, а заманити, насправді. 🤣
Комунікація більше орієнтована на писемний стиль, аніж на зустрічі, ментально переїжджати в часову зону США не треба, зустрічей в тиждень у програміста зазвичай мало, продакти дуже круті і дуже технічні. І весь продукт - open source! Велкам. :)
🔥60❤7👍3🤯3
Подивився тут фантастичну абсолютно демку, де пан Альберт демонструє, які неймовірні можливості можна мати з інтерактивним оточенням розробника. Він у кінці відео каже, що в нього жодних оригінальних ідей в демці нема (ну, може окрім їх комбінування), але це взагалі неважливо: для мене більшість з них була новою і доволі свіжою, а їх комбінація — це взагалі.
Нажаль, що воно — просто демка, але яка ж красива!
Нажаль, що воно — просто демка, але яка ж красива!
YouTube
Run, Build and Grow Small Systems Without Leaving Your Text Editor | LIVE 2024
Clojure, but more alive.
A REPL, but it's connected to all your nodes at the same time (1:n)
See the value of any expression on any node – in your code
Query macro expression rewrites itself to show the data inline
Declarative deployment:…
A REPL, but it's connected to all your nodes at the same time (1:n)
See the value of any expression on any node – in your code
Query macro expression rewrites itself to show the data inline
Declarative deployment:…
🔥35👍4
Новини світового єкомерсу! 😁 За останні пару років з’явився і виріс маркетплейс Temu, який ну прям дико дешевий. Дешевий він кількома способами: по-перше, вони відправляють з Китаю до США (США цікаве як ринок, на який вони в першу чергу намагаються зайти) так, щоб попасти до 800$, які ще не оподатковуються. По-друге, вони щімлять мерчантів, так, щоб ціни були обов’язково нижчі, аніж на такий самий товар на Аліекспресі (хз нашо мерчантам на це погоджуватися, це ж новий гравець, чому ви їм допомагаєте?… не певен). По-третє, Wired каже, що на кожному замовленні в середньому Temu втрачає 30$ — якісь абсолютно безумні гроші.
Очевидно, що історія схожа з підходом китайський автовиробників: вкидуємо дикі гроші, аби зайти на ринок і знищити місцеву конкуренцію, а потім ці гроші повернуться. Імхо, з цим треба щось робити, бо це тупо рейдерство, але цікаво інше!
Чуваки знаходять одного продавця на Амазоні і на Тему, замовляють і там, і там: на Амазоні виходить 90$, а на Тему — 16$. Амазонівська посилка приїжджає на наступний день і нею можна користуватися, а з Тему приїжджає за три тижні і її можна повернути на Амазон — бо товар-то один і той самий. Double strike по китайських інвестиціях! 🤣
Очевидно, що історія схожа з підходом китайський автовиробників: вкидуємо дикі гроші, аби зайти на ринок і знищити місцеву конкуренцію, а потім ці гроші повернуться. Імхо, з цим треба щось робити, бо це тупо рейдерство, але цікаво інше!
Чуваки знаходять одного продавця на Амазоні і на Тему, замовляють і там, і там: на Амазоні виходить 90$, а на Тему — 16$. Амазонівська посилка приїжджає на наступний день і нею можна користуватися, а з Тему приїжджає за три тижні і її можна повернути на Амазон — бо товар-то один і той самий. Double strike по китайських інвестиціях! 🤣
🤯83😁59👍9
А давайте за газлайтерів поговоримо? 😁
Минулого тижня Монобанк присилає нотіфікашечку, де каже “ой, а в нас тепер є Visa, можеш перевипустити картку на неї, це ж так прикольно буде!” Подумав, що може Віза бюджет на маркетинг їм якийсь дуже кльовий дала?.. Ну да ладно, мені воно не тре, я тіки півроку тому перевипустив свою картку, навіть номер залишив той самий — і все одно ж наївся гемору з оновленням даних всюди.
Кілька днів по тому нова нотифікашка “ну перевипусти на Візу, а то ми на Мастер не зможемо нараховувати кешбек!” Ого, думаю, це трохи інша ситуація. Я з кешбеком більше не граюся, бо впадло, але в середньому ситуація ж напевно не така, і виглядає трошки серйозніше, аніж просто гроші на рекламу. Ну поверх зображення картки з’явився напис “Перевипустити”, уф, оце жесть, прям дуже пушать.
А в понеділок друг пише: “прикинь, натиснув на той напис почитать, що за умови тощо, а воно сходу перевипустило картку, без підтверджень, без нічого”. Розумію, робили в паніці, але ж а якщо людина десь посеред ніхера і ви її тіки шо лишили пластику і грошей просто миттєво? Ну молодці! Пообговорювали ще, і там в якомусь місці вони пояснюють, що мастери не тільки перестануть отримувати кешбек з 25 листопада, а й взагалі перестануть працювати з 1 січня. Вау, це щось прям серйозно відбувається!
Але людина хоч натиснула цю кнопку своїми руками, може й недостатньо свідомо, але якесь виправдання є. А тут я у вівторок тикаю на кнопочку донейту у Donate1024 (рекомендую, доречі), відкривається апка Монобанку із сторінкою “благаю тебе, перевипусти картку на Візу!” Ну а шо я, зайнята дуже людина (от тільки зараз добрався пост написать), потім якось займуся, і тикаю на хрестик закриття того скріна. З’являється екран переказу грошів на донейт, я їх відправляю, виходжу на головний екран і бачу своїми очами напис ПЕРЕВИПУЩЕНА.
Сказать що я здивувався - це нічо не сказать. Я думаю, що може навіть кілька нецензурних слов використав вголос. 😁
Нашо я стіки написав: панове Монобанк, газлайтінг — це відстій. Якщо ви поругалися з мастером наглухо, не треба мені продавати Візу, я розумію, бувають складні ситуації, скажіть мені про це чесно. Щось типу “вибачте будь ласка, у нас жопа, ми потребуємо вашого розуміння і підтримки, але мастер здохне через півтора місяці, перевипустіть картку за цей час, щоб ми могли продовжувати працювати”. Або що там насправді всередині. Мені це буде коштувати якоїсь незручності, але у всіх бувають пройоби і я не збираюся вас через це покинути чи ще щось — але я дуже не люблю, коли мене обманюють.
Ви так багато правильних рішень приймали. Будь ласка, не треба в наші відносити приносити булщіт. А ще давайте потроху виправляйте новий інтерфейс. 😁
Минулого тижня Монобанк присилає нотіфікашечку, де каже “ой, а в нас тепер є Visa, можеш перевипустити картку на неї, це ж так прикольно буде!” Подумав, що може Віза бюджет на маркетинг їм якийсь дуже кльовий дала?.. Ну да ладно, мені воно не тре, я тіки півроку тому перевипустив свою картку, навіть номер залишив той самий — і все одно ж наївся гемору з оновленням даних всюди.
Кілька днів по тому нова нотифікашка “ну перевипусти на Візу, а то ми на Мастер не зможемо нараховувати кешбек!” Ого, думаю, це трохи інша ситуація. Я з кешбеком більше не граюся, бо впадло, але в середньому ситуація ж напевно не така, і виглядає трошки серйозніше, аніж просто гроші на рекламу. Ну поверх зображення картки з’явився напис “Перевипустити”, уф, оце жесть, прям дуже пушать.
А в понеділок друг пише: “прикинь, натиснув на той напис почитать, що за умови тощо, а воно сходу перевипустило картку, без підтверджень, без нічого”. Розумію, робили в паніці, але ж а якщо людина десь посеред ніхера і ви її тіки шо лишили пластику і грошей просто миттєво? Ну молодці! Пообговорювали ще, і там в якомусь місці вони пояснюють, що мастери не тільки перестануть отримувати кешбек з 25 листопада, а й взагалі перестануть працювати з 1 січня. Вау, це щось прям серйозно відбувається!
Але людина хоч натиснула цю кнопку своїми руками, може й недостатньо свідомо, але якесь виправдання є. А тут я у вівторок тикаю на кнопочку донейту у Donate1024 (рекомендую, доречі), відкривається апка Монобанку із сторінкою “благаю тебе, перевипусти картку на Візу!” Ну а шо я, зайнята дуже людина (от тільки зараз добрався пост написать), потім якось займуся, і тикаю на хрестик закриття того скріна. З’являється екран переказу грошів на донейт, я їх відправляю, виходжу на головний екран і бачу своїми очами напис ПЕРЕВИПУЩЕНА.
Сказать що я здивувався - це нічо не сказать. Я думаю, що може навіть кілька нецензурних слов використав вголос. 😁
Нашо я стіки написав: панове Монобанк, газлайтінг — це відстій. Якщо ви поругалися з мастером наглухо, не треба мені продавати Візу, я розумію, бувають складні ситуації, скажіть мені про це чесно. Щось типу “вибачте будь ласка, у нас жопа, ми потребуємо вашого розуміння і підтримки, але мастер здохне через півтора місяці, перевипустіть картку за цей час, щоб ми могли продовжувати працювати”. Або що там насправді всередині. Мені це буде коштувати якоїсь незручності, але у всіх бувають пройоби і я не збираюся вас через це покинути чи ще щось — але я дуже не люблю, коли мене обманюють.
Ви так багато правильних рішень приймали. Будь ласка, не треба в наші відносити приносити булщіт. А ще давайте потроху виправляйте новий інтерфейс. 😁
👍96💯27❤2
Там вже третій день Advent of Code йде, і цього разу peer pressure защімив мене: кілька людей в метабейзі прям чекали його, то я теж вирішив — вперше — його порішать.
Але ж Кложею то нецікаво, правда? Тре щось цікаве спробувать! То я вирішив зробить ще один підхід до Окамла. Я вже пробував пару разів, але останній раз це було років 10 тому, мож час прийшов. 😁
Так от, у мене був майже “блядські скобочки”-момент: просто не можу передати, як в мене з його stdlib’а жопа згоріла. 🤣 Навіть замість
Псіханув і пішов зробив на кложі — купа задоволення. 🤣 Просто втупу наявність хорошої стандартної бібліотеки — вона як секретна зброя. Не знаю, чи Clojure — це endgame для мене, все одно хочеться якось повзаємодіяти з H&M (Хіндлі та Мілнером, авжеж), але оця історія, де треба працювати, аби прочитати файл або об’єднати масив в рядочок (не хочу навіть починать про те що там ще постійно linked list’и в різних апі лізуть — в нас 70-ті на дворі чи шо?)… Ця історія не для мене, я зацікавлений в результаті, а не в процесі. :)
Тим не менш, перші три дні AoC такі прикольні, я прям думаю, може спробувать пострімити зраночку рішення на кложі на твічі якомусь? 😁 Стрьомно, авжеж, я не дуже шарю, наскільки воно складне далі буде, але якщо обмежити часом — скажімо, з 9 до 10 ранку — комусь цікаво? 😁
Але ж Кложею то нецікаво, правда? Тре щось цікаве спробувать! То я вирішив зробить ще один підхід до Окамла. Я вже пробував пару разів, але останній раз це було років 10 тому, мож час прийшов. 😁
Так от, у мене був майже “блядські скобочки”-момент: просто не можу передати, як в мене з його stdlib’а жопа згоріла. 🤣 Навіть замість
String.join
приходиться писати код. Ладно, думаю, так не піде, там же ж якісь замінники є. Пішов почитав, таки да, є Base від Jane Street — але він олдскульний, і свіжіший/більш сумісний із стдлібом Containers. Окей, поставив, повписував наче де треба (dune-project
, bin/dune
)… поїхали? Авжеж, зараз, білд став не півсекунди, а секунд десять, але найгірше — це те що мерлін (штука яка робить підсвітку помилок і автокомпліт) ругається на “Corrupted compiled interface”.Псіханув і пішов зробив на кложі — купа задоволення. 🤣 Просто втупу наявність хорошої стандартної бібліотеки — вона як секретна зброя. Не знаю, чи Clojure — це endgame для мене, все одно хочеться якось повзаємодіяти з H&M (Хіндлі та Мілнером, авжеж), але оця історія, де треба працювати, аби прочитати файл або об’єднати масив в рядочок (не хочу навіть починать про те що там ще постійно linked list’и в різних апі лізуть — в нас 70-ті на дворі чи шо?)… Ця історія не для мене, я зацікавлений в результаті, а не в процесі. :)
Тим не менш, перші три дні AoC такі прикольні, я прям думаю, може спробувать пострімити зраночку рішення на кложі на твічі якомусь? 😁 Стрьомно, авжеж, я не дуже шарю, наскільки воно складне далі буде, але якщо обмежити часом — скажімо, з 9 до 10 ранку — комусь цікаво? 😁
👍71❤13💯7
Завтра субота, а знаєте, що це значить? Що замість Advent of Code ми з Олексієм Орєшко ввечері (о 20:00 за Києвом) зробимо стрім про AI і поточний стан речей у нашому світі. Якщо хтось пам’ятає, майже два роки тому рівно про це вже розмовляли, але змінилося достатньо багато всього — тож є сенс повторити.
Кароч, готуйте вільний вечір на завтра, от шо. :-) А також share/RT, як кажуть у твіттері.
Кароч, готуйте вільний вечір на завтра, от шо. :-) А також share/RT, як кажуть у твіттері.
YouTube
Що там з AI в 2024?
Два роки тому ми з Олексієм Орєшко — AI-інженером з Google — робили стрім про AI та LLM, які тоді тільки з'явилися. Час оновити, так би мовити, контекст в наших головах! :-)
Попередня серія: https://www.youtube.com/watch?v=P66ktl4ScxA
Олексій: https://…
Попередня серія: https://www.youtube.com/watch?v=P66ktl4ScxA
Олексій: https://…
🔥41👍17❤3
Forwarded from ILLYA
This media is not supported in your browser
VIEW IN TELEGRAM
ну точно як я більшість часу 😁😁😁
😁118💯27❤4
Я закругляю свій забіг по Advent of Code, але всі відео залишилися на ютубі (окрім першого на твічі, яке загинуло від твічових гнусних налаштувань), і я їх всі зібрав у плейліст. Окрім того, два шматка я вирізав окремо: в одному я пояснюю, як ми порішали другу частину 17 дня — та що про інтерпретацію кода, дуже цікава задача, прям раджу подивитися. А в іншому експромтом трохи розповідаю про свій сетап Emacs’а — але я частини передивлявся, поки вирізав, і воно нажаль доволі сумбурне. :-)
Доречі, якщо вам цікаво ще щось почитати на тему, пан Сергій у своєму каналі Сіпласпластик намагався вирішити кожну задачу новою мовою, ледве не на кожну задачу окрему. :-)
P.S. Робити нормальні тамбнейли ніяких сил нема. 😁
Доречі, якщо вам цікаво ще щось почитати на тему, пан Сергій у своєму каналі Сіпласпластик намагався вирішити кожну задачу новою мовою, ледве не на кожну задачу окрему. :-)
P.S. Робити нормальні тамбнейли ніяких сил нема. 😁
🔥51👍11❤4😁1
Я не знаю, чи Моксі сам придумував UX для Сигналу, чи там поруч був якийсь бог дизайну, але це такий трешаковий софт, шо нема сил. У мене там є чат один, і сьогодні в ньому сталася активність, під сотню повідомлень. Я, авжеж, відкриваю десктопну апку, бо який сенс в телефон тупити.
А вона мені й каже людським голосом: тре переприєднатися до телефона! 🙄 А після переприєднання — через считання qr-коду, і якусь вакханалію віконечок на телефоні, які хочуть то пін-код, то фейс-айді, але не встигають нічо і їх перекриває шось наступне — каже “все, є, тіки історії в тебе не буде”.
Неймовірно сек’юрно. Якщо всі повідомлення, які мені приходять, не розшифровувать, а одразу редирект із мережевого трафіка на
Мені авжеж ліньки топтать клаву на телефоні — бо синхронізувати історію схоже що взагалі нема як — і тому я якось в’яло відповів на одне повідомлення і все. Але там була пара повідомлень із цікавими посиланнями. Знаєте як я їх переправив на комп? Скопіював і відправив у Телеграм, у Збережене. 🤦♂️
Отак Тікток завойовує світ. Бо автори хороших речей не хочуть їх робити приємними. Здорова їжа не може буть смачною і все таке.
Хоча може буть смачною. Ніхто не заважає Сигналу прислать на телефон повідомлення і сказать “хочеш поділитися історією з новим інстансом?” Або не показать 10 віконечок під час додавання нового інстансу. Але ні, сенс Сигналу не в тому, щоб буть зручним, а в тому, щоби стояти в позі.
А вона мені й каже людським голосом: тре переприєднатися до телефона! 🙄 А після переприєднання — через считання qr-коду, і якусь вакханалію віконечок на телефоні, які хочуть то пін-код, то фейс-айді, але не встигають нічо і їх перекриває шось наступне — каже “все, є, тіки історії в тебе не буде”.
Неймовірно сек’юрно. Якщо всі повідомлення, які мені приходять, не розшифровувать, а одразу редирект із мережевого трафіка на
/dev/null
поставити — то буде ще секурніше, ніхто ніколи нічого не дізнається.Мені авжеж ліньки топтать клаву на телефоні — бо синхронізувати історію схоже що взагалі нема як — і тому я якось в’яло відповів на одне повідомлення і все. Але там була пара повідомлень із цікавими посиланнями. Знаєте як я їх переправив на комп? Скопіював і відправив у Телеграм, у Збережене. 🤦♂️
Отак Тікток завойовує світ. Бо автори хороших речей не хочуть їх робити приємними. Здорова їжа не може буть смачною і все таке.
Хоча може буть смачною. Ніхто не заважає Сигналу прислать на телефон повідомлення і сказать “хочеш поділитися історією з новим інстансом?” Або не показать 10 віконечок під час додавання нового інстансу. Але ні, сенс Сигналу не в тому, щоб буть зручним, а в тому, щоби стояти в позі.
🤯19👍16💯13😁6❤1🤝1
Знаєте які новини? Нові бети Сигналу зможуть синхронізувати історію повідомлень з телефона! Неймовірно, всього лише тиждень з того поста пройшов, дуже оперативно, молодці. 😁
На що б ще поскаржитися? Якого біса Москва досі не згоріла к чортям собачим, я цього не розумію!
Discuss. 😁
На що б ще поскаржитися? Якого біса Москва досі не згоріла к чортям собачим, я цього не розумію!
Discuss. 😁
❤47😁38🔥25👍2
Нам треба про це поговорити: українські програмісти не вміють проходити співбесіди. В середньому, авжеж, виключення бувають — але загалом ви, панове, занадто розслаблені.
Ринок розробки в Україні ріс шо дурний — і в людях, і в грошах — так багато років поспіль, що вже більшість людей вважає цю ситуацію нормальною. І від співбесід очікує шось типу “ось моє резюме — а шо складно було на попередньому місці? — ой старався дуже! — ви прийняті!” Відповідно, вважає лайв-кодінг червоним прапорцем.
Але ж це тупня! Знаєте, хто хороший програміст? Той, хто добре програмує! Вміння поговорити за верхньорівневі речі це, авжеж, добре, але доки тобі заважає швидкість написання коду — хороший програміст не ти. 😁 Це, доречі, ще помітно зараз буде вилазити, у епоху ллмів: вони генерують код, який провтикує у нюансах. І час на виправлення у людини, яка бачить код наскрізь і може швидко руками виправити, значно менший, аніж воювання із запитом до ЛЛМа, щоб він знайшов сам в себе баг.
Більше того, лайв-кодінг на співбесіді кльовий ще тим, що він показує, що з тобою буде, коли помре прод: чи ти попливеш від стресу, чи мобілізуєшся?..
Коли мені прийшов інвайт від Метабейза, де написано було “лайв-кодінг”, знаєте, що я зробив? Пішов і витратив години 4 на літкод, просто щоби натренувати пальці. І інтро-задачу (яку ті з вас, хто подавався в Метабейз, бачили) зробив за 7 хвилин.
Так що хочеш бути хорошим програмістом — точи свої скіли, а не жалійся, що рекурсія то складно. 😁
Ринок розробки в Україні ріс шо дурний — і в людях, і в грошах — так багато років поспіль, що вже більшість людей вважає цю ситуацію нормальною. І від співбесід очікує шось типу “ось моє резюме — а шо складно було на попередньому місці? — ой старався дуже! — ви прийняті!” Відповідно, вважає лайв-кодінг червоним прапорцем.
Але ж це тупня! Знаєте, хто хороший програміст? Той, хто добре програмує! Вміння поговорити за верхньорівневі речі це, авжеж, добре, але доки тобі заважає швидкість написання коду — хороший програміст не ти. 😁 Це, доречі, ще помітно зараз буде вилазити, у епоху ллмів: вони генерують код, який провтикує у нюансах. І час на виправлення у людини, яка бачить код наскрізь і може швидко руками виправити, значно менший, аніж воювання із запитом до ЛЛМа, щоб він знайшов сам в себе баг.
Більше того, лайв-кодінг на співбесіді кльовий ще тим, що він показує, що з тобою буде, коли помре прод: чи ти попливеш від стресу, чи мобілізуєшся?..
Коли мені прийшов інвайт від Метабейза, де написано було “лайв-кодінг”, знаєте, що я зробив? Пішов і витратив години 4 на літкод, просто щоби натренувати пальці. І інтро-задачу (яку ті з вас, хто подавався в Метабейз, бачили) зробив за 7 хвилин.
Так що хочеш бути хорошим програмістом — точи свої скіли, а не жалійся, що рекурсія то складно. 😁
💯110👍38🔥14😁11❤5
Прочитав тут у Вікіпедії, що переклад російською «Кінця Вічності», який я читав у дитинстві — дуже поредагований, щоби прибрати інтимні сцени — звісна річ, тре берегти від цього розуми радянських громадян!
Ці знання мене змотивували і я швиденько запхав собі на телефон оригінал. 😁 Чесно кажучи, розчарований: сцени нічим не краще, аніж у мене в пам’яті, але! Ендрю — головний герой — використовує диктофон із 55 сторіччя. І от це передбачення — чим диктофон з майбутнього краще диктофонів із 50-х (коли книга була написана) — якось ну дуже показовим вийшло.
Диктофон цей вміє записувати на три дорожки по 20 мільйонів слов. Це, уявімо, дуже високоякісний звук, по мегабайту-два на хвилину, то це 200-300 гб на доріжку (якщо брати ~140 слов на хвилину). Найбільша SD-картка зараз — 8 терабайт, але навіть цікавіше про 3 дорожки: очевидно уявлення пана Айзека грає в обмеженнях механічних апаратів, де множення сутностей дається дорого.
Тобто нескінчена кількість файлів в голову не прийшла. :) Зате якість запису неймовірна: можна окремо почути, що кажуть різні люди. Цього в нашому житті і близько немає, якщо тіки не роздати кожному по мікрофону. :)
Де твоя фантазія грає — обмеження фізики заважають, а де реально інновації відбуваються — то обмеження свідомості. :)
Ці знання мене змотивували і я швиденько запхав собі на телефон оригінал. 😁 Чесно кажучи, розчарований: сцени нічим не краще, аніж у мене в пам’яті, але! Ендрю — головний герой — використовує диктофон із 55 сторіччя. І от це передбачення — чим диктофон з майбутнього краще диктофонів із 50-х (коли книга була написана) — якось ну дуже показовим вийшло.
Диктофон цей вміє записувати на три дорожки по 20 мільйонів слов. Це, уявімо, дуже високоякісний звук, по мегабайту-два на хвилину, то це 200-300 гб на доріжку (якщо брати ~140 слов на хвилину). Найбільша SD-картка зараз — 8 терабайт, але навіть цікавіше про 3 дорожки: очевидно уявлення пана Айзека грає в обмеженнях механічних апаратів, де множення сутностей дається дорого.
Тобто нескінчена кількість файлів в голову не прийшла. :) Зате якість запису неймовірна: можна окремо почути, що кажуть різні люди. Цього в нашому житті і близько немає, якщо тіки не роздати кожному по мікрофону. :)
Де твоя фантазія грає — обмеження фізики заважають, а де реально інновації відбуваються — то обмеження свідомості. :)
👍37💯6❤4😁1
Якось думав, що з часом завдяки тому, що в машинах все більше і більше софта, вони повинні ставати все більш схожими: не так вже й складно в дешевих моделях повторювать софтварні фічі дорогих машин, правда? Типу фізичні матеріали авжеж не заміниш, але стеження за полосою може працювати однаково що в машині за 80к, що в машині за 15к. Тим більше що весь інфотеймент заміняє Карплей з айфоном.
Але довелося мені посидіти за кермом новесенького Citroën C4, і шось він мені відкрив очі (база для порівняння: XC60 2017-го року). Скажімо, в ньому є стеження за полосою — тільки верещить воно не в момент, коли наїжджаєш на розмітку, а коли просто починаєш наближатися до неї, за півметра рілі. 😁 І пищить прям неприємно!
Зате адаптивний круїз вміє підрулювати. Тільки він на деяких різких поворотах відмовляється це робити і тоді ти повинен швидко очехлитися і повернути сам. 🤣 Трошки налякав мене, чесно кажучи.
І багато ще таких дрібниць, авжеж (треба було одразу писать, а то зараз в голові тільки думка “та все таке”) — правда, wireless Carplay хапає швидко і достатньо надійно. Це, авжеж, я не згадую фізичну зручність машини, тут мене нове покоління навіть відносно попередніх С4 засмутило.
Так от про шо це я. Так, бренди у мас-маркеті мають змогу найняти більше спеціалістів, аніж дорожчі і менші компанії. Але, схоже, смак в них розвивати не вдається. 🤷♂️
Але довелося мені посидіти за кермом новесенького Citroën C4, і шось він мені відкрив очі (база для порівняння: XC60 2017-го року). Скажімо, в ньому є стеження за полосою — тільки верещить воно не в момент, коли наїжджаєш на розмітку, а коли просто починаєш наближатися до неї, за півметра рілі. 😁 І пищить прям неприємно!
Зате адаптивний круїз вміє підрулювати. Тільки він на деяких різких поворотах відмовляється це робити і тоді ти повинен швидко очехлитися і повернути сам. 🤣 Трошки налякав мене, чесно кажучи.
І багато ще таких дрібниць, авжеж (треба було одразу писать, а то зараз в голові тільки думка “та все таке”) — правда, wireless Carplay хапає швидко і достатньо надійно. Це, авжеж, я не згадую фізичну зручність машини, тут мене нове покоління навіть відносно попередніх С4 засмутило.
Так от про шо це я. Так, бренди у мас-маркеті мають змогу найняти більше спеціалістів, аніж дорожчі і менші компанії. Але, схоже, смак в них розвивати не вдається. 🤷♂️
🤯13💯10😁9🤝2❤1
Київстар купляє Уклон за 155 млн доларів (97% уклона лиш, але нашо це крохоборство 😁). Це, мені здається, більш цікава покупка, аніж Хелсі — враховуючи, що Уклон вже працює в Узбекістані, то здається що його можна розповсюджувати у всі інші країни присутності Veon’а. Короч, раз все одно КСу гроші нема куди дівати, то здається хорошим ходом.
Цікаво, як воно фінансово виглядає. Вони кажуть що загалом сталося 100 млн поїздок за 2024 рік, а стаття за 2022 рік згадує про 2 млн за місяць. Якщо це екстраполювати до 24 млн за 2022 рік, виходить що вони двічі подвоїлися кожного року. Дуже круто для таких масштабів! Якщо пошукати в інтернеті, то поїздки коштують від 160 до 400 грн (disclaimer: я заюзав діпсьорч Грока, ліньки самому шукать, але якщо є кращі дані, то давайте), вони з цього забирають відсотків 20, враховуючи бонуси, то давайте уявімо щось типу в середньому 50 центів доходу з 1 поїздки.
Тоді ціна здається не дуже високою: компанія росте 2х, має непогані доходи, але мультиплікатор 3х? З іншого боку, вони ж купу грошей вливають в маркетинг (бонуси, власне) і якщо я дико промазав, і доход з поїздки 20 центів — тоді мультиплікатор 10х і це прям огого. 😁
От думаю десь між цими двома крайностями знаходиться реальність. 😁 Якщо хтось захоче розповісти інсайт (без зовнішніх посилань), обіцяю не публікувати. 😁
Цікаво, як воно фінансово виглядає. Вони кажуть що загалом сталося 100 млн поїздок за 2024 рік, а стаття за 2022 рік згадує про 2 млн за місяць. Якщо це екстраполювати до 24 млн за 2022 рік, виходить що вони двічі подвоїлися кожного року. Дуже круто для таких масштабів! Якщо пошукати в інтернеті, то поїздки коштують від 160 до 400 грн (disclaimer: я заюзав діпсьорч Грока, ліньки самому шукать, але якщо є кращі дані, то давайте), вони з цього забирають відсотків 20, враховуючи бонуси, то давайте уявімо щось типу в середньому 50 центів доходу з 1 поїздки.
Тоді ціна здається не дуже високою: компанія росте 2х, має непогані доходи, але мультиплікатор 3х? З іншого боку, вони ж купу грошей вливають в маркетинг (бонуси, власне) і якщо я дико промазав, і доход з поїздки 20 центів — тоді мультиплікатор 10х і це прям огого. 😁
От думаю десь між цими двома крайностями знаходиться реальність. 😁 Якщо хтось захоче розповісти інсайт (без зовнішніх посилань), обіцяю не публікувати. 😁
1👍32🔥6❤3😁3🤯1