SimdJSON
Самая быстрая многопоточная парсилка json на диком западе, парсит в бенчах со скоростью 3.4 гигабайта в секунду на Intel Skylake (3.4 GHz).
Самая быстрая многопоточная парсилка json на диком западе, парсит в бенчах со скоростью 3.4 гигабайта в секунду на Intel Skylake (3.4 GHz).
GitHub
GitHub - simdjson/simdjson: Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse…
Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks - simdjson/simdjson
💅9
Прощу прощения за мыльные скрины.
Встроенный скриншотер гнома плохо дружит с скейлингом вейланда, и эту слехка заблюреную картинку добивает сверху сжатие телеги...
Встроенный скриншотер гнома плохо дружит с скейлингом вейланда, и эту слехка заблюреную картинку добивает сверху сжатие телеги...
Самый большой ВАУ эффект от AI-шных кодогенераторов, когда не особо понимаешь что она там сгенерила, но программа работает.
Т.е. джависты балдеют от того как она генерит верстку, а я балдею от того как она пишет мне код на rust.
К чему это я? К тому что уже сейчас генерируется много кода без должного присмотра.
И дальше мы все реже будет присматривать за ней по ряду причин.
И тут перспектива становится мутной.
Если LLM учится на частично или полностью с генерированных материалах - это приводит деградации ее качества
А начиная со времени X весь новый код будет частично или полностью сгенерирован даже без должного аудита со стороны человека.
Значит ли это что LLM перестанут обучатся и весь наш код "застынет" на уровне 2023 года?
Или вклад продолжат делать принципиальные "антиаишники"?
Какие еще выходы из этой ситуации вы видите?
Т.е. джависты балдеют от того как она генерит верстку, а я балдею от того как она пишет мне код на rust.
Любая достаточно развитая технология неотличима от магии.
К чему это я? К тому что уже сейчас генерируется много кода без должного присмотра.
И дальше мы все реже будет присматривать за ней по ряду причин.
И тут перспектива становится мутной.
Если LLM учится на частично или полностью с генерированных материалах - это приводит деградации ее качества
А начиная со времени X весь новый код будет частично или полностью сгенерирован даже без должного аудита со стороны человека.
Значит ли это что LLM перестанут обучатся и весь наш код "застынет" на уровне 2023 года?
Или вклад продолжат делать принципиальные "антиаишники"?
Какие еще выходы из этой ситуации вы видите?
❤2💯1
В EA-Games сделали свой ЯП - jank
Если я правильно понял то это Closure, но с JIT и который умеет собираться в нативный бинарник.
Ждем первый игровой движок на кложе!
Если я правильно понял то это Closure, но с JIT и который умеет собираться в нативный бинарник.
Ждем первый игровой движок на кложе!
jank-lang.org
jank programming language - Clojure/LLVM/C++
jank is a Clojure dialect on LLVM with a native runtime and C++ interop.
👍2⚡1🔥1🤯1
Обычно я не анонсирую релизы vscode, но тут случай особенный.
Судя по всему на горе таки свиснул рак, и в 1.96 версии VSСode появился автоимпорт при вставке кода.
Ура товарищи. На фоне этого даже теперь бесплатный codepilot не впечатляет, чесслово.
Впрочем, вам понравится какое применение они для него нашли - в vscode обычно довольно больно настроить дебагер для вашего сетапа.
Приходятся писать launch.json, искать что туда написать, или ставить специальные плагины которые добавят новую кнопочку для запуска дебагера.
Теперь вы можете перед командой запуска вашей апки добавить copilot-debug (например
Кстати о нем, копайлот теперь можно перетаскиванием в чат добавлять контекст, и ссылаться не на файлы а на символы в проекте, и добавили "инлайн" чат прямо в документе, как в редакторе zed.
Что там интересного еще завезли:
- Красивую подсветку не покрытого тестами кода, перфекционисты оценят
- Панельки можно теперь сделать и справа и слева и разложить по ним разные вьюшки (а это оценят любители больших IDE и больших мониторов)
- Лигатуры в встроенном терминале
- Поиск по файлам в explorer переделали, теперь он не скрывает то что не совпало, а просто подсвечивает, и показывает цифрами на папках где сколько результатов было найдено
- При просмотре markdown теперь можно запускать код описанный в нем, и смотреть что выводит.
Так же было анонсировано, что скоро весь рендеринг кода переедет на gpu (webgl)
подробнее и с картинками здесь
Судя по всему на горе таки свиснул рак, и в 1.96 версии VSСode появился автоимпорт при вставке кода.
Ура товарищи. На фоне этого даже теперь бесплатный codepilot не впечатляет, чесслово.
Впрочем, вам понравится какое применение они для него нашли - в vscode обычно довольно больно настроить дебагер для вашего сетапа.
Приходятся писать launch.json, искать что туда написать, или ставить специальные плагины которые добавят новую кнопочку для запуска дебагера.
Теперь вы можете перед командой запуска вашей апки добавить copilot-debug (например
copilot-debug vitest или copilot-debug python main.py) после чего vscode спомощью аишки сам раздуплит что у вас и как в проекте лежит, сгенерит конфиг, и запустит дебагер. Круто? Офигенно! Такое применение LLM мне нравится куда больше чем встроенный по-всюду чат!Кстати о нем, копайлот теперь можно перетаскиванием в чат добавлять контекст, и ссылаться не на файлы а на символы в проекте, и добавили "инлайн" чат прямо в документе, как в редакторе zed.
Что там интересного еще завезли:
- Красивую подсветку не покрытого тестами кода, перфекционисты оценят
- Панельки можно теперь сделать и справа и слева и разложить по ним разные вьюшки (а это оценят любители больших IDE и больших мониторов)
- Лигатуры в встроенном терминале
- Поиск по файлам в explorer переделали, теперь он не скрывает то что не совпало, а просто подсвечивает, и показывает цифрами на папках где сколько результатов было найдено
- При просмотре markdown теперь можно запускать код описанный в нем, и смотреть что выводит.
Так же было анонсировано, что скоро весь рендеринг кода переедет на gpu (webgl)
подробнее и с картинками здесь
Visualstudio
November 2024 (version 1.96)
Learn what is new in the Visual Studio Code November 2024 Release (1.96)
🔥13👍3💩2❤1👀1
{MAJOR}.{MINOR}.{PATCH}Но
0.{MAJOR}.{MINOR or PATCH}А вы знали что в SemVer если major равен нулю, то все минорные изменения считаются ломающими (breaking changes)?
(как это описано в спеке, спасибо @BANOnotIT)
Я узнал об этом из статьи
Antfu, где он предлагает добавить ещё одну цифру в версионирование - EPOCH.
{EPOCH}.{MAJOR}.{MINOR}.{PATCH}В кратце идея в том, что бы можно было отличить маленькие ломающие изменения и большие крупные измерения которые очень сильно меняют апи, архитектуру и майндсет в целом
Anthony Fu
Epoch Semantic Versioning
Proposal for an extended Semantic Versioning called Epoch SemVer to provide more granular versioning information to users.
💯5
Work & Beer Balance
{MAJOR}.{MINOR}.{PATCH} Но 0.{MAJOR}.{MINOR or PATCH} А вы знали что в SemVer если major равен нулю, то все минорные изменения считаются ломающими (breaking changes)? (как это описано в спеке, спасибо @BANOnotIT) Я узнал об этом из статьи Antfu, где он…
Идея хорошая, но хотелось бы иметь что-то обратно совместимое с semver, слишком много софта даже за пределами js экосистемы полагается на то что числа будет три (включая мои bash скрипты, например), да и существование двух параллельных систем версионирования в npm создаст много головной боли.
Я бы предложил реализовать EPOCH не ломающим способом, где эпоха обозначается тысячами в мажоре. Например переход на новый EPOCH мог бы выглядеть так:
В таком виде даже уже существующие пакеты могут перейти на этот формат ничего не сломав:
Я бы предложил реализовать EPOCH не ломающим способом, где эпоха обозначается тысячами в мажоре. Например переход на новый EPOCH мог бы выглядеть так:
1001.2.3 -> 2000.0.0В таком виде даже уже существующие пакеты могут перейти на этот формат ничего не сломав:
1.2.3 -> 1001.2.3🤔3
Если вам, как мне, периодически хочется написать какую-то утилиту для которой сli не достаточно - обратите внимание на webview.
Это интересный вариант, как сделать графический интерфейс на веб технологиях и без электрона.
В наличии достаточно фреймворков которые под него заточены, а вот этот реп с табличкой в которой они сравниваются, поможет вам определится что взять.
P.S. Лично мне зашел Neutralino.js, он очень простой и компактный, хотя и немного ограничен по функционалу.
Так же интересно выглядит супер компактный wails, если вас так же как и меня смущают бинарники на сотни мегабайт
#webview
Это интересный вариант, как сделать графический интерфейс на веб технологиях и без электрона.
В наличии достаточно фреймворков которые под него заточены, а вот этот реп с табличкой в которой они сравниваются, поможет вам определится что взять.
P.S. Лично мне зашел Neutralino.js, он очень простой и компактный, хотя и немного ограничен по функционалу.
Так же интересно выглядит супер компактный wails, если вас так же как и меня смущают бинарники на сотни мегабайт
#webview
GitHub
GitHub - Elanis/web-to-desktop-framework-comparison: An objective comparison of multiple frameworks that allow us to "transform"…
An objective comparison of multiple frameworks that allow us to "transform" our web apps to desktop applications. - Elanis/web-to-desktop-framework-comparison
👍3💩2🤔1
Интересные моменты из доклада о JS движке - "Nova", который пишется как "самый интересный движок на rust" человеком из комьюнити Deno
🔸Под капотом использует парсер OXC
🔸 В нем вообще нету AST для VM.
🔸Дизайн движка - DoD (Data Oriented Design).
🔸Ориентирован на экономию места в кэше, для того чтобы сделать максимально быстрым доступ к большинству базовых вещей в js.
🔸 Исходный код структурирован так чтобы отражать EcmaScript спеку 1 в 1. В плане - папки с кодом названы так же как разделы спеки, например.
Что интересного можно узнать из доклада:
🔹в ARM архитектуре заложены специальные инструкции для работы с числами, то как с дробными, то как с целыми, в зависимости от операций, что идеально ложится на то как Number работает в js (совпадение?)
🔹v8 хранит числа попадающие в i32 прямо в стеке, вперемешку вместе с ссылками на другие типы, которые тоже представлены как числа. Значения которые являются настоящими числами а не ссылками специальным образом помечаются. JavaScriptCore поступает аналогично, но хранит в стеке f64.
Это позволяет работать с числами очень быстро, но подобный код считается небезопасным (unsafe) в парадигме rust. Кроме того это полностью ломает управление кэшами в ARM (как то связано с криптографией, но этот момент не был достаточно раскрыт).
🔹Вместо этого в Nova решили использовать Enum для хранения типа, и Vec для хранения значения, что позволило упаковать указатели, и реализовать Value (u8, u32).
В оставшиеся 7 байт впихнули самые популярные строки которые используются в js - value, length, data, т.е. они тоже хранятся в стеке и к ним очень быстрый доступ.
🔹 Вместо того чтобы наследовать все не примитивные типы от объекта, т.е. в стиле ООП, используется компонентный подход. Например массивы не наследуются от объекта, а изначально тупые и приближенные к нативному массиву, так как в основном они используются в таком виде, и только в случае если массив используется каким-то способом специфичным для js (например при попытке перебрать свойства прототипа, или добавить новое свойство, т.е. не числовой индекс и и.т.п) создается обертка в виде объекта, что замедляет "странное" использование массивов, но сильно ускоряет "обыкновенное"
🔹Окончание доклада немного скомканное, т.к. у докладчика заканчивалось время, но насколько я понял, благодаря расту им удалось сделать очень быстрый сборщик мусора, так как движок, в силу особенностей работы с памятью в расте, помечает что нужно почистить прямо в то время, как закончил работу с объектом, так что сборщику не нужно потом прыгать по памяти в поиске того что нужно почистить.
(Этот пункт я возможно понял вообще не правильно)
Больше деталей о сборщике мусора и его особенностях есть в блоге автора, там же добавляет что после его доклада многие заинтересовались и присоединились к проекту, и его так же пригласили рассказать о движке на митинге TC39
Ссылка на доклад
Ссылка на реп
🔸Под капотом использует парсер OXC
🔸 В нем вообще нету AST для VM.
🔸Дизайн движка - DoD (Data Oriented Design).
🔸Ориентирован на экономию места в кэше, для того чтобы сделать максимально быстрым доступ к большинству базовых вещей в js.
🔸 Исходный код структурирован так чтобы отражать EcmaScript спеку 1 в 1. В плане - папки с кодом названы так же как разделы спеки, например.
Что интересного можно узнать из доклада:
🔹в ARM архитектуре заложены специальные инструкции для работы с числами, то как с дробными, то как с целыми, в зависимости от операций, что идеально ложится на то как Number работает в js (совпадение?)
🔹v8 хранит числа попадающие в i32 прямо в стеке, вперемешку вместе с ссылками на другие типы, которые тоже представлены как числа. Значения которые являются настоящими числами а не ссылками специальным образом помечаются. JavaScriptCore поступает аналогично, но хранит в стеке f64.
Это позволяет работать с числами очень быстро, но подобный код считается небезопасным (unsafe) в парадигме rust. Кроме того это полностью ломает управление кэшами в ARM (как то связано с криптографией, но этот момент не был достаточно раскрыт).
🔹Вместо этого в Nova решили использовать Enum для хранения типа, и Vec для хранения значения, что позволило упаковать указатели, и реализовать Value (u8, u32).
В оставшиеся 7 байт впихнули самые популярные строки которые используются в js - value, length, data, т.е. они тоже хранятся в стеке и к ним очень быстрый доступ.
🔹 Вместо того чтобы наследовать все не примитивные типы от объекта, т.е. в стиле ООП, используется компонентный подход. Например массивы не наследуются от объекта, а изначально тупые и приближенные к нативному массиву, так как в основном они используются в таком виде, и только в случае если массив используется каким-то способом специфичным для js (например при попытке перебрать свойства прототипа, или добавить новое свойство, т.е. не числовой индекс и и.т.п) создается обертка в виде объекта, что замедляет "странное" использование массивов, но сильно ускоряет "обыкновенное"
🔹Окончание доклада немного скомканное, т.к. у докладчика заканчивалось время, но насколько я понял, благодаря расту им удалось сделать очень быстрый сборщик мусора, так как движок, в силу особенностей работы с памятью в расте, помечает что нужно почистить прямо в то время, как закончил работу с объектом, так что сборщику не нужно потом прыгать по памяти в поиске того что нужно почистить.
(Этот пункт я возможно понял вообще не правильно)
Больше деталей о сборщике мусора и его особенностях есть в блоге автора, там же добавляет что после его доклада многие заинтересовались и присоединились к проекту, и его так же пригласили рассказать о движке на митинге TC39
Ссылка на доклад
Ссылка на реп
YouTube
Aapo Alasuutari: Nova Engine for JavaScript (@ Finland Rust-lang group meetup 1/2024)
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
👍16🤯4🙏1🎄1
DOGE команда Илоны недавно получила доступ к финансовым базам данных США. Уже тогда было понятно что ничем хорошим это не закончится, но было интересно как именно они нафакапят.
Ответ не заставил себя долго ждать, в сеть утекло множество засекреченных документов, так что кого-то вероятно теперь посадят на бутылку.
https://www.huffpost.com/entry/elon-musk-doge-posts-classified-data_n_67ae646de4b0513a8d767112
Ответ не заставил себя долго ждать, в сеть утекло множество засекреченных документов, так что кого-то вероятно теперь посадят на бутылку.
https://www.huffpost.com/entry/elon-musk-doge-posts-classified-data_n_67ae646de4b0513a8d767112
HuffPost UK
Elon Musk’s DOGE Posts Classified Data On Its New Website
“People are scrambling” to see if their sensitive information has been accessed by Musk’s programmers, said one federal intelligence employee.
🤡6👎1😁1😢1🤣1
Если вы еще не подписаны на этих ребят, обязательно зацените:
🔹Фронтенд для души
Здесь разрабы не просто двигают кнопки и лутают деньги, а создают шедевры!
Канал с вдохновляющим фронтенд комьюнити, фичами, которых нет в других источниках, регулярными трендовыми идеями и книгами.
🔹 @sysadmin1 - специальный канал для сетевых и системных администраторов, а также инженеров DevOps
🔹cherkashin.dev — фронтенд разработчик в американской компании. Написал расширение Яндекс.Музыки для VS Code.
🔹 Злой полицейский - канал тимлида/разработчика/SOER’а.
Делюсь мыслями про веб, программирование, инструменты, WordPress, Joomla, Laravel, MoonShine, мотивацию, психологию, фильмы, сериалы.
🔹Kobezzza. База в программирование
Канал посвящен промышленной разработке, работе в Бигтехах, фундаментальным основам программирования, Computer Science. Автор канала Андрей Кобец , ex-Яндекс, в разработке 20 лет.
🔹@artalog - Канал автора reatom (стейт менеджер на сигнало-подобной апи, как нибудь расскажу про него подробнее). Постит годноту, и холиварные темы, не соскучитесь
🔹Фронтенд для души
Здесь разрабы не просто двигают кнопки и лутают деньги, а создают шедевры!
Канал с вдохновляющим фронтенд комьюнити, фичами, которых нет в других источниках, регулярными трендовыми идеями и книгами.
🔹 @sysadmin1 - специальный канал для сетевых и системных администраторов, а также инженеров DevOps
🔹cherkashin.dev — фронтенд разработчик в американской компании. Написал расширение Яндекс.Музыки для VS Code.
🔹 Злой полицейский - канал тимлида/разработчика/SOER’а.
Делюсь мыслями про веб, программирование, инструменты, WordPress, Joomla, Laravel, MoonShine, мотивацию, психологию, фильмы, сериалы.
🔹Kobezzza. База в программирование
Канал посвящен промышленной разработке, работе в Бигтехах, фундаментальным основам программирования, Computer Science. Автор канала Андрей Кобец , ex-Яндекс, в разработке 20 лет.
🔹@artalog - Канал автора reatom (стейт менеджер на сигнало-подобной апи, как нибудь расскажу про него подробнее). Постит годноту, и холиварные темы, не соскучитесь
Telegram
Фронтенд для души
Канал о фишках во фронтенде, хорошем настроении и многом другом, заходи)
Автор @Dragonek
Автор @Dragonek
🔥11👍3💩2🍌1
Уже сейчас AI генерирует интегральные схемы которые на практике оказались намного эффективнее того что делает опытный человек, и, что ещё более интересно - для человека они выглядят дико и непонятно, поскольку выходят за рамки принятых в индустрии норм и правил.
Как думаете, сколько месяцев или лет пройдет до того момента чтобы подобное произошло в программировании? Долго ли осталось ждать AI компиляторы кода?
Я не уверен, может зря мы ее обучаем кодить на примерах нашего кода, может надо было скормить ей исходники движка хрома? Дать ей возможность и здесь выходить за рамки принятого?
Есть над чем подумать
Как думаете, сколько месяцев или лет пройдет до того момента чтобы подобное произошло в программировании? Долго ли осталось ждать AI компиляторы кода?
Я не уверен, может зря мы ее обучаем кодить на примерах нашего кода, может надо было скормить ей исходники движка хрома? Дать ей возможность и здесь выходить за рамки принятого?
Есть над чем подумать
👍11😢5🍌4😁1🤔1
Прошла презентация framework.
Чего показали кратко:
🔹Новые материнки с процами для 13шек. Мощнее, холоднее, модели с предыдущей версией материнки подешевели (теперь от $ 740)
🔹Релизнули мини атс десктоп для аишек и игр на базе Ryzen AI MAX. Дешевле аналогичного по мощностям mac studio (4800 vs 1999). Приспособлен собираться в стойки из нескольких штук если хочется домашний кластер
🔹Релизнули 12шки, с тачскрином, аудитория - школьники и студенты, сделано с упором на доступность и неубиваемость
🔹Остальное различные косметические мелочи
Чего показали кратко:
🔹Новые материнки с процами для 13шек. Мощнее, холоднее, модели с предыдущей версией материнки подешевели (теперь от $ 740)
🔹Релизнули мини атс десктоп для аишек и игр на базе Ryzen AI MAX. Дешевле аналогичного по мощностям mac studio (4800 vs 1999). Приспособлен собираться в стойки из нескольких штук если хочется домашний кластер
🔹Релизнули 12шки, с тачскрином, аудитория - школьники и студенты, сделано с упором на доступность и неубиваемость
🔹Остальное различные косметические мелочи
👍10❤1
Forwarded from bano.dev / духовка
Мир очень жесток к проигравшим. Ничто не повышает чувство важности больше, чем поставить ногу на череп поверженного и сказать: «Я же говорил! Я был прав!»
Firefox находится на рынке браузеров в позиции проигравшего уже с десяток лет. И теперь, когда схема с продажей людей гуглу через поиск по умолчанию ломается (это 80% дохода), им нужно резко искать новые способы дохода.
Они уже полгода назад предложили решение: они будут продавать агрегированные данные людей специальным провайдерам, которые эти данные будут перепродавать рекламщикам. Те же яйца, только теперь инфраструктура перепродажи не в руках гугла.
Лиса начала переход на такую модель, добавляя новые документы. И тут твиттер и телега взорвались. Все очень возмущены: как же так, а где же белые рукавички и пушистая шерстка?
У тебя, дорогой читатель, есть возможность выбрать стратегию прохождения этого энкаунтера:
Близорукость: перейти на Waterfox, Librewolf, Zen и так далее. Забыв, что если Мозилла умрет, то рескины Firefox помрут вместе с ней.
Лицемерие: перейти на Vivaldi, Opera, и так далее. Не забыв при этом еще крикнуть: «да мозилла же данные людей продает!»
Дальнозоркость: верить в развитие Ladybird, Servo. Это рядом с позицией: «Зачем нам воздух чистить, если мы скоро на Марс полетим?»
Наивность: показательно удивляться, что компании необходимо четко выбирать слова, по которым их могут привести в суд, и что она может поменять условия контракта, если в контракте это указано.
Злорадство: сказать, что все и так было давно понятно, и вообще тебе нечего скрывать и Партия зовет на свершения!
Есть конечно еще скрытые руты прохождения:
Индифферентность:просто пройти мимо, ведь тебя это в действительности не касается.
Рьяность:сказать, что ты будешь «поддерживать хоть сатану, лишь бы он объявил войну гитлеру».
Милосердие:пойти задонатить Мозилле на ее продление ее незавидной жизни.
Firefox находится на рынке браузеров в позиции проигравшего уже с десяток лет. И теперь, когда схема с продажей людей гуглу через поиск по умолчанию ломается (это 80% дохода), им нужно резко искать новые способы дохода.
Они уже полгода назад предложили решение: они будут продавать агрегированные данные людей специальным провайдерам, которые эти данные будут перепродавать рекламщикам. Те же яйца, только теперь инфраструктура перепродажи не в руках гугла.
Лиса начала переход на такую модель, добавляя новые документы. И тут твиттер и телега взорвались. Все очень возмущены: как же так, а где же белые рукавички и пушистая шерстка?
У тебя, дорогой читатель, есть возможность выбрать стратегию прохождения этого энкаунтера:
Близорукость: перейти на Waterfox, Librewolf, Zen и так далее. Забыв, что если Мозилла умрет, то рескины Firefox помрут вместе с ней.
Лицемерие: перейти на Vivaldi, Opera, и так далее. Не забыв при этом еще крикнуть: «да мозилла же данные людей продает!»
Дальнозоркость: верить в развитие Ladybird, Servo. Это рядом с позицией: «Зачем нам воздух чистить, если мы скоро на Марс полетим?»
Наивность: показательно удивляться, что компании необходимо четко выбирать слова, по которым их могут привести в суд, и что она может поменять условия контракта, если в контракте это указано.
Злорадство: сказать, что все и так было давно понятно, и вообще тебе нечего скрывать и Партия зовет на свершения!
Есть конечно еще скрытые руты прохождения:
Индифферентность:
Рьяность:
Милосердие:
❤7👍2🤡2😢1
Стоит ли сделать пост о том как сделать очень простую devtools панель экстеншеном, которая будет показывать определенные события в виде красивого лога?
Спойлер, для этого вам понадобится написать минимум 4 файла которые будут общатся друг с другом по средством событий
inject-noscript -> content-noscript -> background-noscript -> devtools-noscript
Спойлер, для этого вам понадобится написать минимум 4 файла которые будут общатся друг с другом по средством событий
inject-noscript -> content-noscript -> background-noscript -> devtools-noscript
🔥26🍌2
Ситуация - жил был бэкэнд, который умел присылать комментарии в которых могли быть прикрепленные файлы.
А потом бэкэнд решили по дробить на микросервисы помельче, и так у нас появилось два бэкэнда - один для файлов а второй для комментариев.
А это значит что теперь нам вместе с комментарием прилетает только набор id файлов, а все метаданные (название файла например) мы должны получить доп запросом в другой сервис.
У бэкенда стал чище код, но у пользователей стал медленее фронт.
Стоило ли оно того? Есть ли решение win win? Если нет, то как убедить коллегу бэкэндера что комфорт пользователя важнее чистого кода
А потом бэкэнд решили по дробить на микросервисы помельче, и так у нас появилось два бэкэнда - один для файлов а второй для комментариев.
А это значит что теперь нам вместе с комментарием прилетает только набор id файлов, а все метаданные (название файла например) мы должны получить доп запросом в другой сервис.
У бэкенда стал чище код, но у пользователей стал медленее фронт.
Стоило ли оно того? Есть ли решение win win? Если нет, то как убедить коллегу бэкэндера что комфорт пользователя важнее чистого кода
👍7
А вы знали что в сети есть общий редис к которому у всех есть доступ на запись и чтение (но не удаление / изменение)?
keyval.org
Удобно для онлайн демок, обучения, в примерах кода, PoC, шеринга чего-то временного.
Сейчас данные хранятся вечно, но в будущем будут очищаться каждую неделю или две.
Там всего два эндпоинта для записи и для чтения, поэтому и "SDK" для него получилась всего в несколько строк
(открыть в repl)
keyval.org
Удобно для онлайн демок, обучения, в примерах кода, PoC, шеринга чего-то временного.
Сейчас данные хранятся вечно, но в будущем будут очищаться каждую неделю или две.
Там всего два эндпоинта для записи и для чтения, поэтому и "SDK" для него получилась всего в несколько строк
const key = await KeyVal.save('test');
const val = await KeyVal.get(key);
console.assert(val === 'test', 'Should return saved value');
await KeyVal.set('myKey', 'myVal');
const myVal = await KeyVal.get('myKey');
console.assert(myVal === 'myVal', 'Should return value for myKey');(открыть в repl)
keyval.org
A super simple key value database
👍13