Bite the Byte
2.98K subscribers
24 photos
2 videos
269 links
Соловйов здорової людини!

🌐solovyov.net

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

Без реклами
Download Telegram
Знаєте історію, як при презентації дропбокса на HN хтось написав комент “це ж тривіально зробити з FTP + curlftpfs + SVN”? Очевидно, що людині важкувато помітити проблему, коли вона в деталях на ній розуміється.

Це я, literally. Коли мій одногрупник якось показав Дропбокс на 6 курсі, я такий — Сергію, ну і нафіга це? Я ж он фактично те саме маю, осьо диви, лінка — а файл у мене на SliceHost’і лежить (хто знає той знає ггг).

Згадується ще Emacs — а за IDEA платять, мій сетап проксі — а за ngrok платять, і напевно можна багато чого ще вигадати. :)

Це я сам собі пост пишу, напевно: коли щось — тривіальне, але окрім тебе ніхто його не сетапить, то це натяк на потенційні гроші. 😁
27💯15🤯2👍1
Прочитав тут історію про те, як Макс Левчин розважався, коли був СТО PayPal’у. Історія цікава, чувак очевидно був капітальним задротом і в якийсь момент не стримався і зробив крутий солюшен, щоби нерви собі полоскотати. :)

Мене, правда, більше зацікавила не основна сюжетна лінія, де він захоплюється криптографією, і робить круті штуки (хоча й змушує трохи синдром самозванця підняти голову, мене в такому віці більше цікавила Diablo 2 😁), а оточуюче середовище. А конкретно прохідна ремарка про “automated deployment script copied shard files to their destination”. Події, нагадаю, відбуваються більше 20 років тому, а в чуваків сетап краще, ніж часто зустрічається зараз.

Ніяких тобі пхпшних “відредагую прямо на сервері”, очевидно, ха-ха. Напевно Пейпал і в США не був середньою компанією (ну не з таким СТО, ггг), але змусило трошки задуматися, що нажаль в нас не було нічого подібного, коли моя кар’єра починалася. :)
💯18🔥133😁1🤯1
Я вже якось торкався теми заміни 1С’у, а тут мене нещодавно тригернули, і в мене чухається знов за це поговорити. Те відео в двох словах: 1С це платформа для автоматизації бізнесу, яка маскується під систему бухгалтерського обліку. Так само, як SAP маскується під ERP, а Salesforce маскується під CRM. Вони всі заходять з різних сторін, результати виходять трохи різними, але тим не менш їх мета одна: стати хребтом бізнесу, щоби не бути заміненими ніколи.

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

Сховище даних

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

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

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

І, авжеж, API для забирання/додавання даних треба прям повноцінний і адекватний.

Базовий інтерфейс

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

То от здається, що якась абстракція, коли на канві можна розташувати графічки, таблички чи там інпути — корисне. В Decipad от щось таке роблять, заодно звертає на себе увагу, що в таблички замість A1/J66 є нормальні назви в колонок.

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

Інтерфейс для користувачів

При тому дати таблиці всім — не звучить як дуже безпечний і зручний механізм. Якщо ти просто продаєш каву, заповнювати табличку здається не дуже адекватним. 😁 Мені дуже подобається, що будує Retool, такий собі no/low-code генератор інтерфейсів. Чесно кажучи, мені не дуже ясно, наскільки далеко можна зайти з no-code і наскільки воно потрібно, заходити далеко — але в ідеалі якісь не дуже складні, але тим не менш функціональні інтерфейси повинні бути доступні для нормального користувача. Нормального у сенсі що Іксельні абстракції цій людині доступні. :-)

P.S. Продовження нижче.
🔥207💯4
…продовження поста про заміну 1C.

Процеси

Оце цікаве місце. Очевидно, що якісь зміни повинні вміти тригернути інші зміни, або якусь інтеграцію, абощо. Можливо, тут є сенс подумати над інтерфейсом а-ля Yahoo Pipes, або Zapier/n8n/Huginn/шо там ще є на ринку. Тобто готові шматочки, які можна комбінувати. Це те, що робить Corezoid, як я розумію, а ще в мене є знайомі в Нідерландах, які будують Stekz, і я думаю, що таких речей по світу багато.

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

Модулі

Найскладніше. Я, нажаль, не дуже розуміюся на тому, як в 1С (наприклад) інтегруються різні рішення від різних контор (підозрюю що як і всюди, за допомогою програмістів і з купою нервів).

Але от я глянув поверхнево на Odoo, опенсорсний ERP, який регулярно проскакує у статтях як заміна 1C. І чомусь мені здалося, що ядро в нього мало не просто веб-фреймворк, на якому будується купа модулів, які інтегруються чисто за рахунок того, що їх пише одна компанія. Там всередині моделі (тобто, ORM, всі діла), конкретні для цього модуля, все в кращих традиціях ООП: дуже конкретно і по ділу. Не зрозумів поки що, чи є там якісь кльові додаткові абстракції, щоби модулі під конкретно Odoo взаємодіяли краще, ніж кастомно написаний софт, але здалося, що ні. І стандартне страждання в обговореннях Odoo — в нього немає української бухгалтерії, а всі існуючі модулі зав’язані на використання стандартної.

Як це обійти — дуже цікаве питання. Можливо, дуже високорівневі абстракції спасуть ситуацію: типу оцей модуль потребує колекції документів в такому форматі, і ти йому в’юшкою і джойнами організуєш і віддаєш (тобто відривання інтерфейсу роботи з данним від власне зберігання даних). Тут в мене настрій коливається від “модулі нічого не повинні знати про зберігання” версус “модулі повинні абстрагувати зберігання, а назовні виставляти інтерфейс, який потім виглядає як таблички”. Оце друге здається складнішим для імплементації, але перспективним з точки зору збереження зворотньої сумісності. І перетинається дуже з API доступа до даних, куди цікавіше було б вміти тикатися в інтерфейси, а не прямо в сирі дані — тоді є шанси апгрейдити зберігання, не ламаючи зовнішні інтеграції.

The End

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

Авжеж, якщо просто зробити оце все згори — нічого не вийде, бо концепція це прекрасно, але вхід на ринок — значно більш важлива проблема. :)
🔥245
Чи можна вчорашні події розглядати як символ суттєвості кроків, які Україна зробила для здобуття перемоги? 🤣 Здається, що чим більше тиску буде на полі бою, тим цікавіше будуть розгортатися події на росії. Вони вже почали святкувати 24.08 в себе закриттям офісних центрів, червоної площі тощо. 😁

Тому дуже хочу подякувати всім, хто захищає нашу країну! І вітаю всіх із Днем Незалежності!
🔥11539
Я позавчора спав на невдалій подушці і потянув собі шию і шось там в лопатці (talk about privilege 🤦‍♂️). Спочатку було неприємно просто, а сьогодні о 5 ранку прокинувся, бо вже капець боляче було. І шо, коли ти о 5 прокидаєшся, то вільного часу багато, я вже і рілзи до кінця додивився, і твіттер двічі прочитав, тож чимось занятися треба — і я пішов шукать вправи, як полікувати той біль.

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

І кароч я попав на канал, де чувак пояснює, що відбувається, з відсилками на наукові статті (відео минулорічне і статті теж минулорічні!), кайф. Але самий кайф в тому, що запропоновані вправи прям критично добре вплинули на мій стан. Настільки, що хочеться кудись про це кричати, тож ось кричу вам. 😁
🔥7821😁6
У fwdays тепер є новий подкаст, зветься A&B Show (це архітектура та бекенд), і в першому випуску Єгор (ведучий подкасту власне) вирішив спростити собі вибір людини для інтерв’ю — тобто записав його зі мною. 😁

Він не дуже уважно стежив за моїми виступами (shame on you, Єгор! 🤣), і тому прийшлося розповідати більш грунтовно, ніж я очікував. Тож якщо вам цікаво, велкам подивитися першу частину (друга буде через кілька днів/тижнів/побачимо): https://www.youtube.com/watch?v=Xs6ED_v9TzY
🔥3630😁1
Там 21 Джава вийшла, якщо ви не бачили, і в ній величезна зміна — віртуальні треди тепер глобально доступні. Це прям фантастична новина, на мій погляд, тому що можна ввід/вивід та різного рода конкаренсі ефективно використовувати без асинхронного сміття типу колбеків етц. Це значить нормальні стектрейси (а не як після Netty), і ефективніше, ніж зі звичайними тредами, планування роботи, бо вони N-to-M — тобто N віртуальних тредів виконуються на M реальних, це значить в нас є і параллелізм, і рівночасність (concurrency).

Це кайф взагалі, і дуже сподіваюся, що ком’юніті і Джави, і Кложі займеться цією двіжухою і набудує різних покращень життя навколо. В принципі це можливість побудувати core.async без всієї магії всередині. Гм. 😁

Рон Преслер, лід розробки віртуальних тредів, дуже давно почав цим займатися, ще років 10 тому зробив quasar/pulsar — це власне імплементація грін-тредів як бібліотеки.

Кароч дуже зацікавлений у юз-кейсах, які ця двіжуха відкриває. 🔥

P.S. Тим часом у коментарях на HN срач за те, що для інтерполяції рядків буде синтаксис "\{var}", а не "${var}", як в інших мовах. Поверхневість колег по цеху мене іноді просто вбиває.
🔥38😁14🤯31
Макс в останньому подкасті скаржиться на якість кода Джинні (спойлер: трабла в занизькому рівні абстракцій місцями, нічого складного), “занадто мало за ним стежив”, і таке інше (послухайте сам подкаст для подробиць, там недовго).

То що хочеться сказати за цю історію. В світі багато статей, книжок і просто вільноплаваючих порад виду “найми людину і делегуй їй все”. Ну і якби це хороша порада, стратегія — це 80% складності життя, але не треба забувати, що тактика — теж 80% складності (я уявляю собі цей жарт як комплексні числа, типу це 80% в різних напрямках на площині, вибачте за хвилину задротства).

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

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

Питання: що робити, коли наняв людину для задач, яких ти сам не вмієш? Умовно кажучи, як я прийшов в Касту — Андрій (CEO Касти) не вмів програмувати, не вмів керувати розробкою, і не знав, як виправити проблеми свої, що робити в такому випадку? Імхо, щотижневі 1-1 із зануренням у проблеми, методи їх рішення, і просто навчати. Навчання потребує від того, хто навчає, більшої усвідомленності дій, і дозволить з однієї сторони виправити напрямок, якщо треба, а з іншої — відкриє слабкі моменти/балаболок/тощо.

Ми з Андрієм такого не робили, йому зі мною просто пощастило. 😁 Але ж не кожен така цукерочка. 🤣
😁5025🔥3💯1
Телеграм релізнув сторі для каналів, і зробили вони це, мені здається, максимально underwhelming. Замість того, щоб зробити з їх допомогою кращий діскавері (не знаю, показувати їх контактам підписників, чи може ще якийсь сірий паттерн, ггг), вони просто додають до кожного каналу ще один канал. Нууу м’яко кажучи не дуже зрозуміло, навіщо воно треба.

Чи може хтось вже проникся цією двіжухою і може мені пояснити сакральний зміст того що відбувається? І взагалі, забустіть мені канал, давайте я спробую якусь історію опублікувати. 😁 Треба 8 зарядів, щоби дало доступ. :)
🔥12🤝31
Продовжуючи тему Телеграма, на еПравді вийшло розслідування того, як Телеграм заробляє (спойлер: втрачає, а не заробляє). Добре покопали, коли все зведено до купи і з графічками (дякую комісії по цінним паперам США за hard data 😁), і дійсно здається, що без плодотворної співпраці з найгнуснішими людьми світу (керівництвом москалів) воно б не працювало…

Дотичним, але дуже показовим доказом є вихлоп голови комітету безпеки рф, який каже “ого, у воцапа з’явилися канали, треба його заборонити!”

Але загалом у мене якихось інсайтів нема, можна просто піти почитати статтю. І порозмірковувати на тему, що іноді у світі буває таке, що по госконтракту щось роблять добре…
😁26💯5🔥2
Це ж кайф, коли компанії релізять щось неординарне? Лаова наприклад зарелізила макро-об’єктив для того щоб знімати від 10x до 50x. В даному випадку цифра означає відношення реального розміру об’єкта до його проєкції на матриці.

Тобто звичайні макро-об’єктиви роблять 0.5x-1x, іноді 2x, а тут можна до 50x зняти. Це фактично мікроскоп — для таких зйомок часто і купляють мікроскопні об’єктиви, тільки вони ізі коштують 3-5 тищ доларів за одну штуку, а тут набір (бо це не об’єктив, а фактично конструктор об’єктивів) з 4 штук коштує півтори тисячі і підходить будь-якій системі. Кайф просто. Ось огляд, якщо цікаво.
🔥326🤯5
Metabase

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

Метабейз я останній раз використав для першої версії дешборду для ПЖ, і він прям прекрасно підійшов. Але до того ми його в Касті використовували з 2016 року (я навіть у гітхабі метабейзу знайшов свій issue 2016 року, ггг).

Це такий інтерфейс для побудови звітів з твоїх даних — взагалі починали з SQL-баз, але тепер сфокусувалися на побудові власного DSL, що дозволяє працювати з Mongo, Druid’ом, а в останній версії ще додали завантаження CSV (хз чому нема ікселя напряму, але було б кльово замість vlookup’а нормальний інтерфейс юзати, хехе).

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

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

Доречі, Метабейз наймає — бекенд на кложі, фронт на JS/React, клауд на тераформ/кубернеті, подавайтеся, якщо цікаво. :)
74🔥56🤯3
Хочу вам розповісти за “ДрукАрмію”. Це дуже крута ініціатива з 3д-друку різних невеличких конструкцій, які потім використовуються в армії і навколо. У них є лендінг з прикладами і розрахунками економії. В мене ще є розповіді про приблизно такі самі гроші, але про дрони — проте не вистачає даних, щоб тут описати.

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

Тож якщо ви про це не чули, або не задумувалися, то може це саме час. 😁 Бо кількість запитів на друк росте куди швидше кількості друкарів.
58🔥20👍3🤝1
Зимова гума

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

Є повір’я про зміну резини 15 жовтня, або там 1 листопада, чи ще колись по календарю. Це астрологія, насправді, бо який ще сенс у конкретних датах?

Інший варіант — це про “температура впала нижче +10”, або (що значно краще) “середньоденна впала нижче +7”, це вже трохи про фізику. АЄОА: літня резина значно краще справляється із дощем, аніж зимова (мова, авжеж, про типові варіанти, якщо у вас на літо Pirelli PZero Nero, то нашо ви це читаєте), особливо перегріта зимова. І тому дощик при +8 на зимовій гумі — це не найбезпечніше, чим можна займатися в Києві. 😁

Які взагалі обмеження, чому б не поставити зимову з приходом осені, наприклад? Бо склад зимової гуми, який дозволяє їй працювати одразу при мінусовій температурі, при нагріванні (від температури на вулиці або навіть від їзди) стає занадто м’яким і не тільки спилюється що дурний (за що повинно бути шкода, не росаву ж вбиваєш!), а ще й хрін що тримає. Як перевірити на власні очі? Міняєш резину зараз, 10 хвилин катаєшся по місту, а потім вивертаєш колеса на максимум в сторону і повний газ: і воно буде шліфувати дорогу шо дурне. Або, якщо в машині багато ошийників/повний чи задній привід, то можна і через тормоза. Заміряти тормозний шлях з 60 до 0 на холодній зимовій, покататися і заміряти ще раз.

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

Для того є я! 🤣 У 2012 році я записався на любительське ралі на своєму Cooper S (бачте S? це ж Sпорт! 😁), а прям перед ним бахнув мороз, і я швиденько в ніч перед змаганням змінив гуму на зимову. Листопад, сонечко, на вулиці -2, в мене нова зимова гума (і не гамно якесь, не на ланос же ж купляв, забув, правда, яка саме).

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

То яка мораль в цієї історії взагалі? Мораль в тому, що коли на вулиці сухо, літня резина працює краще, дай їй 2-3 хв нагрітися від їзди і все буде супер. Тому не треба паніки і поспіху, головне — не виїжджати літньою резиною на сніг чи ожеледицю. :)
👍42💯3🤝32🤯1
Щось я трошки волаю з того що в Go 1.22 буде рядкова тупізація (sic):

mux.HandleFunc("GET /path/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "got path\n")
})


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

От що буває, коли людям треба проблеми вирішувати, а не хрусталеві квіточки вирощувати. Чи які тут взагалі можна висновки зробити, якось я в трьох рядочках заплутався. 😁
😁18👍3
Новини! Тепер в мене є подкаст на ютубі ДОУ, зветься 1-2-3 Techno. Вийшло, здається, прикольно: обговорюємо історії з життя (технічні історії, авжеж), дуже живо і не нудно. Перший випуск — із Вірою Ткаченко, CTO MacPaw. Дивіться і діліться враженнями. :)

P.S. Хто вгадав, звідки назва, той дід. А хто ні — в того молоко на губах не обсохло. 🤣
🔥63👍2112