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

🌐solovyov.net

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

Без реклами
Download Telegram
Хто б роздуплив, що коїться з ютубними коментами? Приходять пуші від ютубу, що залишили новий коментар, йдеш його повністю прочитати - а коменту-то й нема! Люди самі видаляють, чи що? Мож з 5 останніх коментарів так прийшло і зникло, якесь дивне співпадіння. Нормальні коментарі, ніяких претензій до них немає - але й них самих теж немає. :))

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

І насправді всі ці розповіді працюють дуже погано: люди, які регулярно юзають інтерактивний шел на кшталт ipython або схожих, пишуть "Прям какой-то необходимости код через РЕПЛ писать нет" (Андрій, якщо ти впізнав свою цитату, то це не до тебе конкретно претензія). Нагальної потреби нема, але й потреби у інтерактивному шелі потреби теж нема, завжди можна невелику програмку написати і все там спробувати, правда? Це питання ефективності і втрат енергії (що імхо більш важливе, ніж втрати часу) на експерименти.

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

На останок дам вам ще демо від Шона Корфілда. Може воно вас змотивує витратити часу на те, щоб спробувати. :-)
В мене є брат. Авжеж, нічого незвичайного у цьому немає, але тут є привід його згадати у пості: він собі завів телеграм-канал.

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

Але! Як то кажуть, на конфереції є сенс ходити не на тему, а на людину: ті лектори, що гарно розповідають, навіть з проходною темою будуть цікавими, і навпаки. А Сева гарно дистилює складні і неоднозначні теми, тож читайте і підписуйтеся: @uasymposium
Якось не виходить дописати жодного поста, у чернетках всі зависли доки я цей meeting heavy тиждень доживаю. :) І щось рветься з мене литдибр, то ж так йому й бути.

Прийшли холоди, а значить вже час, коли можна знов юзати свої улюблені Beyerdynamic DT770 — бо влітку в них занадто жарко. 😁 У сенсі в мене тепер є навушники для літа: відкриті Sennheiser HD599, і зимні - баєри. хд599 такі всі воздушні, з величезною сценою і деталізацією, а дт770 - вони про щільність звуку явно. Ну точно лагер вс стаут. :)

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

Виявилося, що я не один такий хочу опенврт без гемору (хахаха), і є компанія GL.Inet з Гонконгу, яка робить роутери одразу з опенврт. І у серпні за передзамовленням взяв новий — Flint, з 802.11ax, щоб гігабіт мій не пропадав же ж. :)

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

Помаявся трохи і написав у підтримку. І через тиждень переписки і моїх перевірки з іншими блоками живлення кажуть: відправте нам у Германію за наш рахунок, а ми вам новий пришлемо, бо писк не повинен бути чутним на відстані більше 5 см. :)

Оце кастомер сервіс, капець! 😲 Супер-круто. Трохи непокоїть те, що може це я занадто тендітний, але ж тплінк мій не пищить? 😃 Подивимося!
Анонси Клаудфлера за останні роки виглядають дуже цікаво — наче вони планують підрізати Амазон. Точніше не так, воно виглядало так раніше, а у цьому році вони прямо його підрізали. :)

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

Але якщо подивитися уважніше на всі інші пропозиції клаудфлера, вони всі лоу-кост і працюють на самому краєчку (on the edge - воркери, key-value сховище для них, хостинг для статичних сайтів — майже статичних, є ж воркери), зовні всіх інших провайдерів платформ. Це дуже цікаво наблюдати було, але ось прочитав гарну статтю з аналізом ситуації, і там чувак фантастичну аналогію придумав: поки амазон грає у шахи, продукуючи все потужніші фігури, клаудфлер грає у го, маленькими камінчиками захоплюючи собі територію. Окружає амазон та всіх інших.

Супер круто все роблять, дуже цікаво спостерігати.
Колапс

За останній тиждень подивилися новий реліз Суспільного, про розвал Совку, ГКЧП і таке інше. 7 серій хвилин по 40, більшою частиною інтерв'ю від різних цікавих людей, які тим чи іншим чином приймали участь у подіях — не буду їх перераховувати, дуже вже їх багато: журналісти, діаспора, чиновники тощо.

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

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

І, авжеж, я взяв і написав блог на джанзі, під назвою Byteflow. А потім написав генератор статичних сайтів - Cyrax, бо джанга занадто повільна і взагалі, нашо блогу динаміка? :) А потім ще один генератор - gostatic, бо пайтон теж занадто повільний, і чекати рендер кілька секунд, коли пишеш пост — це не наш метод.

Ну пре мене написання інструментів, що поробиш. :) Чи не більше, ніж власне написання текстів. 😁

Так от, я довго писав пости в телеграм у окремому редакторі, а потім копіював у телеграм руцями, але ж терпець уривається! 🤦‍♂️ А в Ulysses нещодавно вийшло оновлення: вони навчилися оновлювати пост у Wordpress і в Ghost. Апі вордпресу торкатися трохи неприємно, а ось у госта, думаю, подивлюся.

І що ви думаєте? Все вийшло! Зробив штуку — xapi cms (ну, кросс-апі, зрозуміло?). Це такий безголовий cms, який реалізує частину апі Ghost’a. Воно ще дуже рудиментарне, але головне працює. Виглядає це так:

• Авторизуєшся через гітхаб
• Воно видає тобі логін/пароль для Ulysses
• Додаєш в Ulysses як Ghost
• Ну все, можеш писати та публікувати

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

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

Це інсайт, до якого ми з Севою дійшли років з 10-15 тому: робити можна дуже багато чого, але ти не знаєш навіть про існування цього і в результаті втрачаєш час. Це «невідоме невідоме», на відміну від «відомого невідомого», про яке ти можеш піти почитати. Гарний приклад останнього — їзда на велосипеді, всі про неї знають, навіть якщо не всі вміють. Але от лижі... коли я почав працювати, чому ми з друзями не їздили покататися? Просто не знали, що це так просто — узяв і поїхав!

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

Інші його роздуми теж цікаві, але він графоман, тому радити дочитати до кінця важко, я сам не можу, хахаха. :)
Лечу у Голандію (що блін з цією темою? чому я їх не називаю країну Нідерландами? якийсь брейн демейдж; добре хоч літак у Амстер, реально Голандія), прям от сьогодні. А вчора правительство нідерландське (виправив тут) прийняло рішення перенести Україну з «безпечних» до «небезпечних» країн.

Це означає, що прилетіти можна тільки, якщо ти підпадаєш у виключення, а так — ні-ні. Суууупер, думаю, дуже вдало квиток в мене на перший день цього тупняку... Але одне з виключень: повна вакцінація! Так що все норм, летимо!

Поки сидів у таксі, вирішив уважно все перечитати, і воно каже:

you must always complete a quarantine declaration form. Even if you are not required to quarantine.

Що мені, складно форму заповнити? Лец ду іт:

If you are travelling from Ukraine you are not required to self-quarantine.

Фантастика. Ніхто у цьому світі не захищений від людей, які приймають складні зміни з сьогодні на завтра. 🤦‍♂️
Дратують люди, які вважають 80 символів неважливим обмеженням через недосконалість терміналів у древності (тут маються на увазі часи 30-50 років тому).

Це ж невимовно круте обмеження! Фасілітатор покращення якості коду! І все таке. Чому, запитає допитливий читач (ггг).

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

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

Ви можете згадати мої думки про поради, тож думайте самі. У сенсі думайте про те, як краще виконувати це правило. 😬
1👍1
Нідерландська система поїздів наче зійшла зі сторінок науково-фантастичної книги. Яку ще писали років 60-70 тому, коли вірили, що людство може організуватися і побудувати логічне суспільство. :)

Бо я інакше не можу нічим пояснити працюючі трьох-хвилинні пересадки. Ти півтори години їдеш у потязі з Гронінгену, оголошують «Алміре», переходиш через платформу у потяг навпроти, та й їдеш в Амстердам. Ну або в інший час буде іншою дорогою з двома пересадками, і все одно стиковки там по 2-4 хвилин.

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

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

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

А ось я поважаю! Дуже стараюся приходити вчасно, і запізнююся тільки з поважних причин.

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

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

Хз як закінчити пост. Вважайте це нагадуванням про те, що до інших треба ставитися людяно. :)
👍1
Річ Посполита

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

А от слово "Річ" роками не міг зрозуміти. Я розумію, що разом "Річ Посполита" — це "республіка", res publica, але ніде ніколи ніхто не пояснював значення цього слова. Ну як відібрало їм, чи що. Оце навіть якийсь час думав, що це термін типу "Січ", яке незрозуміло звідки взялося — мови розвиваються іноді дуже незрозумілими путями.

Ну і шо, колись воно набридло мені, і я пішов шукати. Спочатку пішов до Гугл Транслейту і він мені каже, так res — це ж річ. Сууупер, думаю, допоміг. Клац на англійську, а воно мені - thing. 🤦‍♂️ Отак і роздуплився, що на сучасну мову річ посполитанародна штука.
Трійко рочків тому всередині сайта Касти ми зробили цікаву (для мене) річ — закешували результати збирання товару по всій базі у тій самій базі.

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

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

І все було супер, але з часом етап після доставання з дб-кешу (за нестачею гарного терміну) теж почав розростатися, типу всякі більш динамічні штуки важко закешувати надовго. Скажімо, шаблони написання імені товару — рендерінг строки, кльово б закешувати, але чекати день до того, як товари оновляться - наче дуже довго.

Так ми жили аж до минулого тижня, коли вже вкінець задовбало, що в цього апі 99 процентиль - 300 мс під навантаженням. А тепер ми прожили перший день тижня чорної п‘ятниці з 99 процентилем у 130 мс! Непогано, га?

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

> Конфіг у цьому випадку — це типу залежність для прорахунку. Скажімо, хочеш відрендерити ім'я товару — то треба шаблон, значить від нього і будемо хеш рахувати.

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

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

P.S. А ще ми у п‘ятницю півтори години паршиво працювали, але це еластік винуватий — товари себе відчували мов живі. І це зовсім інша історія. :)
Слухайте шо! Ми з fwdays записали перший подкаст, де я ведучій! ☺️ Тож історія така: вибирати технології насправді дуже важко, їх дуже багато, вони різноманітні, а оцінити плюси і мінуси потребує багато часу. Тож іноді доводиться вгадувати, а у більшості випадків взагалі просто брати щось знайоме, хоч може і неоптимальне.

Як це виглядає: звемо якусь авторитетну людину і обговорюємо з нею технології, вподобання, роздуми на тему і таке інше у пошуках бажаного, але досить міфічного Right Tool For the Job. :-)

Велкам послухати RTFJ #1 з Андрієм Листочкиним! ⚡️
Raycast

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

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

• запустити програму шорткатом
• перемістити вікно шорткатом (заміна SizeUp фактично)
• переключити розкладку клавіатури (у парі з Karabiner-Elements)

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

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

Тіки однієї речі не вистачає — вміння показувати напис великими літерами, те що Альфред по ⌘ ⏎ робить. Чи можна якийсь нормальний екстеншен написати, чи може показати симпатичний напис — це занадто складно для джаваскріпта?.. :)
‍DOU опубліковали інтерв'ю зі мною, так що можна піти подивитися, якщо цікаво. :) Причому вони зробили і текстову версію, але вона дуже скорочена, типу там більше факти, ніж роздуми. Мені здається, що послухати буде цікавіше, ніж почитати. :)

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

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

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

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

Зняв куртку, проліз туди, і пішов собі на сервер дивитися. Приєднав екран, а там скрінсейвер консольний фрі, де демон літає туди-сюди, висить. Бутнув, значить, воно завелось, і пішов собі назад. :)
Давайте трохи за результати Black Friday у Касті розповім. Значить, перший раз, коли ми пережили її у 2016 році, в нас було 2.5k RPS (запитів у секунду) в API, десь 80 тисяч товарів і мінімум серверного рендерінгу.

Цього року близько мільйона товарів, 130 відрендерених сторінок в секунду (більша частина клієнтів — це мобільні аппки, які тільки апі торкаються) і близько 6k RPS.⚡️ Це насправді прикольний результат, враховуючи, що з заліза, де це все живе, в нас реально тільки сервер Постгресу новий (минулий був 15-го року за 10к баксів, а цей 20-го року теж за 10к баксів).

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

Я дивився у співвідношення LA нод ES і навантаження на сервіс в цілому, і воно виглядало майже пов'язаним лінійно — типу подвоєння RPS подвоює навантаження на ES. Але зранку минулої п'ятниці (19 листопаду, на початку розпродажу) замість трохи підрости, LA злетів у небеса й еластіки почали гальмувати. Це означає що всі списки товарів туплять і людям важко купляти — у сенсі вони просто пішли собі займатися іншими справами. :(

Ми за годину наколупали з 5 додаткових нод еластіку, а за наступний тиждень взяли в оренду ще заліза, щоб побудувати додатковий кластер еластіку і раунд-робіном на них розкинули навантаження. Тож п'ятниця 26-го була нудною. Чого, власне, ми й прагнули. ☺️
👍1
Є така штука, як Cloudflare Workers. Це спосіб задеплоїти джаваскрипт на серверах в клаудфлерівські точках присутності. Ну типу AWS Lambda, тільки для тих, хто хоче зробити небагато і швидко. Точно кружляють навколо традиційних авсів і хочуть взяти їх в оточення. :) Але я не про те.

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

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

• Компіляція дуже довга, paste.in.ua, який ну дуже простий сервіс — вміє хттп, жсон та маркдаун, а замість БД там файли, бо драйвер к sqlite я не зміг зібрати — компілюється він кілька хвилин, на стандартному варіанті Github Actions — 8 хвилин!
• Компіляція, на жаль, змінює те, що відбувається. Грааль не може зкомпілювати все і приходиться трохи підганяти під нього поведінку. Є загалом прийнятні штуки: відсутність рефлексії, відсутність дій на верхньому рівні неймспейсів (бо вони при компіляції виконуються), але є й речі, які я не можу сформулювати. Просто реально перший раз зібрати все — це купа спроб з пошуками помилок у гуглі й експериментів. Той же самий драйвер бд я так і не зміг зібрати.
• Спало на думку, що до скомпільованого бінарника не приєднатися реплом, але у такому середовищі, як serverless cloud function worker (чи можна ще слово сюди додати? Чи я вже всі хайпові терміни заюзав? :)) — воно не дуже має сенс.

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

Типу потрібно щось таке, що вміє запускати код у сендбоксі, і при цьому тримати залежності у пам‘яті, щоб запуск того коду був швидким. Так?