Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
ну а теперь кратко и по делу..
в общем, из всех наработок и всего того что было (вплоть до советов по созданию бинарного транспортного протокола) сделал минимальный прототип и SDK к нему..
там приложил как серверную, так и example страницу.
реализация позволяет создать децентрализованную оверлей сеть с relay-серверами.
акцент, в отличии от упомянутого Nostr заключается на минимализме, браузерной совместимости и постоянного наращивания функциональности.
на данный момент этот прототип имеет (фактически) relay, который принимает ws соединения от клиентов и других relay-серверов, аутентификация по ed25519 (рукопожатие с challenge-response), хранит в памяти список известных серверов (в памяти) и позволяет им обмениваться.
маршруты сообщений — если получатель сидит на той же "трубе" (relay), то доставляет напрямую. если же нет, то даёт известным ему серверам широковещательный сигнал чтобы узнать в какой "трубе" сидит получатель. и таким образом передаёт ему сообщение.
имеются несколько типов соединений, таких как HANDSHAKE (установка соединения), DATA (обычные данные), SIGNED_DATA (подписанные данные), ENCRYPTED_DATA (данные со сквозным шифрованием (E2EE) (через X25519 + AES-GCM) и служебные NODE_INFO для запроса\ответа списка серверов, их добавления и поиск клиента.
SDK же в свою очередь умеет генерировать и хранить пары ключей (ed25519 для идентификация и подписи) и X25519 (для обмена ключами Диффи‑Хеллмана).
умеет подключаться к relay-серверу и находить handshake, отправлять обычные\подписанные сообщения и со сквозным шифрованием с указанием типа (plaintext, JSON и файл).
также может получать сообщения и эмитить события.
имеет возможность добавлять\удалять\выбирать списком серверов, а также автоматический discovery (при получении от сервера списка других серверов — добавляет их себе).
ну и на последок особенности, такие как:
- двойная криптография
- поиск клиента
- отсутствие постоянного хранения
- самодискавери
- фреймы фиксированной длины
- временные вызовы
в общем, из всех наработок и всего того что было (вплоть до советов по созданию бинарного транспортного протокола) сделал минимальный прототип и SDK к нему..
там приложил как серверную, так и example страницу.
реализация позволяет создать децентрализованную оверлей сеть с relay-серверами.
акцент, в отличии от упомянутого Nostr заключается на минимализме, браузерной совместимости и постоянного наращивания функциональности.
на данный момент этот прототип имеет (фактически) relay, который принимает ws соединения от клиентов и других relay-серверов, аутентификация по ed25519 (рукопожатие с challenge-response), хранит в памяти список известных серверов (в памяти) и позволяет им обмениваться.
маршруты сообщений — если получатель сидит на той же "трубе" (relay), то доставляет напрямую. если же нет, то даёт известным ему серверам широковещательный сигнал чтобы узнать в какой "трубе" сидит получатель. и таким образом передаёт ему сообщение.
имеются несколько типов соединений, таких как HANDSHAKE (установка соединения), DATA (обычные данные), SIGNED_DATA (подписанные данные), ENCRYPTED_DATA (данные со сквозным шифрованием (E2EE) (через X25519 + AES-GCM) и служебные NODE_INFO для запроса\ответа списка серверов, их добавления и поиск клиента.
SDK же в свою очередь умеет генерировать и хранить пары ключей (ed25519 для идентификация и подписи) и X25519 (для обмена ключами Диффи‑Хеллмана).
умеет подключаться к relay-серверу и находить handshake, отправлять обычные\подписанные сообщения и со сквозным шифрованием с указанием типа (plaintext, JSON и файл).
также может получать сообщения и эмитить события.
имеет возможность добавлять\удалять\выбирать списком серверов, а также автоматический discovery (при получении от сервера списка других серверов — добавляет их себе).
ну и на последок особенности, такие как:
- двойная криптография
- поиск клиента
- отсутствие постоянного хранения
- самодискавери
- фреймы фиксированной длины
- временные вызовы
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Так то уже на готовом прототипе можно поднять небольшой веб-сервис и использовать минимальный SDK чтобы начать пользоваться..
Но из моментов, я вынужден сесть и работать над расширением, ибо модель преимущественно ориентирована на web решения..
У metamask подглядел кстати
https://bsky.app/profile/kaurcev.dev/post/3mfa3yr7bnc2s
Но из моментов, я вынужден сесть и работать над расширением, ибо модель преимущественно ориентирована на web решения..
У metamask подглядел кстати
https://bsky.app/profile/kaurcev.dev/post/3mfa3yr7bnc2s
Bluesky Social
kaurcev (@kaurcev.dev)
Так то уже на готовом прототипе можно поднять небольшой веб-сервис и использовать минимальный SDK чтобы начать пользоваться..
Но из моментов, я вынужден сесть и работать над расширением, ибо модель преимущественно ориентирована на web решения..
У metamask…
Но из моментов, я вынужден сесть и работать над расширением, ибо модель преимущественно ориентирована на web решения..
У metamask…
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
ОГО
А я один нашел у легендарной личности (Дуглас Крокфорд) вот такую аву?
https://github.com/douglascrockford
p.s. Дуглас Крокфорд (Douglas Crockford) — известный американский программист, эксперт по JavaScript, создатель формата обмена данными JSON и автор книг, включая «JavaScript: The Good Parts». Он сыграл ключевую роль в популяризации и развитии JavaScript, разработал инструменты JSLint и JSMin, а также работал в Yahoo! и PayPal.
А я один нашел у легендарной личности (Дуглас Крокфорд) вот такую аву?
https://github.com/douglascrockford
p.s. Дуглас Крокфорд (Douglas Crockford) — известный американский программист, эксперт по JavaScript, создатель формата обмена данными JSON и автор книг, включая «JavaScript: The Good Parts». Он сыграл ключевую роль в популяризации и развитии JavaScript, разработал инструменты JSLint и JSMin, а также работал в Yahoo! и PayPal.
Forwarded from TypicalFolder // kadev CA (kaurcev)
еще один неочевидный вброс:
закинул темплейт монорепозитория React+NodeJS(Express)
там же сразу команды под автоматическое развертывание, общий билд (из реакта и бекенда делает билд для прода) и всё в том духе
крч, всё тут:
https://github.com/kaurcev/template-mono-repository
закинул темплейт монорепозитория React+NodeJS(Express)
там же сразу команды под автоматическое развертывание, общий билд (из реакта и бекенда делает билд для прода) и всё в том духе
крч, всё тут:
https://github.com/kaurcev/template-mono-repository
GitHub
GitHub - kaurcev/template-mono-repository: Шаблон для управления бэкендом (Node.js) и фронтендом (React) в одном репозитории с…
Шаблон для управления бэкендом (Node.js) и фронтендом (React) в одном репозитории с поддержкой: Параллельного запуска в режиме разработки, сборки production-версии и публикации проекта через локал...
Forwarded from TypicalFolder // kadev CA (᠌ ᠌ ᠌᠌ ᠌ ᠌ ᠌ ᠌ ᠌)
так, ну шо вы
я залил npm💻 пакет для того чтобы при разработке веб-клиента на React можно было внедрить виджет для приёма платежа
установка простая:
и после как пример можно не париться с формой и внедрить компонент💻 как есть:
само собой, версия 1.0.1, так что обновлять буду после ещё, так как есть моменты, в которых я бы хотел видеть более широкие возможности
реализация предоставлена на📱 , и может использоваться как в React на JavaScript, так и на TypeScript
кто интересуется веб-разработкой и шарит за npm, то вот ссылочка на💻 :
https://www.npmjs.com/package/yoomoney-widget
я залил npm
установка простая:
npm install yoomoney-widget
и после как пример можно не париться с формой и внедрить компонент
<Yoomoney
receiver="0000000000000000"
label="Пополнение счета"
successURL="https://kaurcev.dev/success"
defaultSum={100}
minSum={50}
/>
само собой, версия 1.0.1, так что обновлять буду после ещё, так как есть моменты, в которых я бы хотел видеть более широкие возможности
реализация предоставлена на
кто интересуется веб-разработкой и шарит за npm, то вот ссылочка на
https://www.npmjs.com/package/yoomoney-widget
Please open Telegram to view this post
VIEW IN TELEGRAM
TypicalFolder // kadev CA
так, ну шо вы я залил npm 💻 пакет для того чтобы при разработке веб-клиента на React можно было внедрить виджет для приёма платежа установка простая: npm install yoomoney-widget и после как пример можно не париться с формой и внедрить компонент 💻 как есть:…
kaurcev/yoomoney-widget
Stars: 1
Forks: 0
Language: TypeScript
Updated: 10/25/2025
React компонент для формы оплаты через YooMoney со встроенными шрифтами Factor IO.
Open repository
Stars: 1
Forks: 0
Language: TypeScript
Updated: 10/25/2025
React компонент для формы оплаты через YooMoney со встроенными шрифтами Factor IO.
Open repository
GitHub
GitHub - kaurcev/yoomoney-widget: [RU] React компонент для формы оплаты через YooMoney со встроенными шрифтами Factor IO.
[RU] React компонент для формы оплаты через YooMoney со встроенными шрифтами Factor IO. - kaurcev/yoomoney-widget
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Для тех кто в очередной раз вкинет предложение о создании мессенджера — будет полезной эта статья
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Максим_Федянин_—_Подход_WebFirst_WebView_в_разработке_мобильных.pdf
2.7 MB
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Делюсь полезной ссылкой: https://www.apponfly.com
Это сервис для аренды виртуального сервера (VPS) с почасовой оплатой, но особенно удобен он для кратковременных задач — например, можно арендовать сессию всего на 20 минут (бесплатно)
Я использую его, чтобы:
· проверить работу своих веб-ресурсов с IP Чехии;
· скачать файлы (например, Vosk) через браузер на сервере, а затем забрать их через онлайн файловый менеджер (file-transfer), если прямая загрузка на мой компьютер недоступна из-за региональных или сетевых ограничений..
Пользуйтесь
Это сервис для аренды виртуального сервера (VPS) с почасовой оплатой, но особенно удобен он для кратковременных задач — например, можно арендовать сессию всего на 20 минут (бесплатно)
Я использую его, чтобы:
· проверить работу своих веб-ресурсов с IP Чехии;
· скачать файлы (например, Vosk) через браузер на сервере, а затем забрать их через онлайн файловый менеджер (file-transfer), если прямая загрузка на мой компьютер недоступна из-за региональных или сетевых ограничений..
Пользуйтесь
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
Всё-таки работать на бюджетную организацию в современных реалиях - идея плохая
ещё меня забавляет, как работает бюрократия в рамках цифровизации.
там готовы трястись над отдельными пунктами 152-ФЗ о персональных данных — мол, если вы используете open source решения, то на проверках будут проблемы. и ещё импортозамещение приплетут для убедительности. просто потому, что "надо же" — формально отчитаться, галочку поставить
но при этом тот же самый 152-ФЗ, где чёрным по белому написано: "обеспечивать безопасность данных любыми возможными способами" — шутка. как будто этого пункта не существует
а теперь факт, который все и так знают: госучреждения ползут за рынком еле-еле. современные решения и актуальный инструментарий внедряются в цифровизацию со скрипом и дикими тормозами. в итоге всё упирается в тот же legacy, с кучей техдолгов, с попытками переползти со стека, который уже давно снят с поддержки, на что-то, что хотя бы плюс-минус похоже на современные критерии.
и вот меня и забавляет: там, где реально нужно безопасность данных обеспечивать (а legacy — это реальная дыра), — тишина. а там, где можно попридираться к open source ради галочки — сразу бегут и трясут бумажками.
там готовы трястись над отдельными пунктами 152-ФЗ о персональных данных — мол, если вы используете open source решения, то на проверках будут проблемы. и ещё импортозамещение приплетут для убедительности. просто потому, что "надо же" — формально отчитаться, галочку поставить
но при этом тот же самый 152-ФЗ, где чёрным по белому написано: "обеспечивать безопасность данных любыми возможными способами" — шутка. как будто этого пункта не существует
а теперь факт, который все и так знают: госучреждения ползут за рынком еле-еле. современные решения и актуальный инструментарий внедряются в цифровизацию со скрипом и дикими тормозами. в итоге всё упирается в тот же legacy, с кучей техдолгов, с попытками переползти со стека, который уже давно снят с поддержки, на что-то, что хотя бы плюс-минус похоже на современные критерии.
и вот меня и забавляет: там, где реально нужно безопасность данных обеспечивать (а legacy — это реальная дыра), — тишина. а там, где можно попридираться к open source ради галочки — сразу бегут и трясут бумажками.
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
ещё меня забавляет, как работает бюрократия в рамках цифровизации. там готовы трястись над отдельными пунктами 152-ФЗ о персональных данных — мол, если вы используете open source решения, то на проверках будут проблемы. и ещё импортозамещение приплетут для…
раскидаю долги и пойду восвоясе, ибо рынок и без моего участия останется перенасыщенным, а я в состоянии паузы развития никуда уже не пролезу с выработанными проблемами в виде синдрома самозванца и выученной беспомощностью.
а в ином случае я становлюсь тем кого не понимаю и осуждаю. такие дела, народ, такой вот диссонанс разработчика что стремился быть инженером, а не смешным винтиком с часа до часу
а в ином случае я становлюсь тем кого не понимаю и осуждаю. такие дела, народ, такой вот диссонанс разработчика что стремился быть инженером, а не смешным винтиком с часа до часу
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
а сегодня у нас миграция проекта kadev на свой выделенный сервер. а так как я хочу реализовать всё не в простом формате, проект будет видоизменен, то есть — создан по новой.
вот так вот мы быстренько разворачиваем базовую конфигурацию докера, в котором собирается наше web приложение на React.
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
разворачиваем базовую конфигурацию докера
кстати, обратите внимание на то что стоит в портах.
а именно:
127.0.0.1:3000 обозначает тот что порт будет слушаться на localhost.
так как в дальнейшем на хосте будет nginx (в котором будет у нас указание доменных имен и SSL сертификаты), он будет проксировать куда надо.
то есть, сам домен в DNS указывает на хост, а на хосте его встречает балансировщик и будет указывать внутри какой порт дать на прослушивание.
там же будет базовые настройки по ограничению запросов (запросов в секунду) и ограничения по GeoIP для обеспечения штатной безопасности.
небольшие намеки на best practice для разворачивания веб-приложений
а именно:
ports:
- "127.0.0.1:3000:3000"
127.0.0.1:3000 обозначает тот что порт будет слушаться на localhost.
так как в дальнейшем на хосте будет nginx (в котором будет у нас указание доменных имен и SSL сертификаты), он будет проксировать куда надо.
то есть, сам домен в DNS указывает на хост, а на хосте его встречает балансировщик и будет указывать внутри какой порт дать на прослушивание.
там же будет базовые настройки по ограничению запросов (запросов в секунду) и ограничения по GeoIP для обеспечения штатной безопасности.
небольшие намеки на best practice для разворачивания веб-приложений
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
кстати, обратите внимание на то что стоит в портах. а именно: ports: - "127.0.0.1:3000:3000" 127.0.0.1:3000 обозначает тот что порт будет слушаться на localhost. так как в дальнейшем на хосте будет nginx (в котором будет у нас указание доменных…
пишем тут ради просветления, так что упомяну что не стоит забывать в переменных окружения устанавливать такие значения:
так как у меня всё строится на экосистеме node (ибо пакетный менеджер npm оч богат), эти переменные критично важны.
указывая NODE_ENV=production вы даете библиотекам понять то что код будет запускаться не у разработчика в режиме разработки, а уже для пользователей. Лишние проверки и подробные сведения об ошибках будут отключены и веб-приложение в таком случае становится легче и быстрее
а вот GENERATE_SOURCEMAP=false — очень важная штука. с виду, React билдит бандл (тот самый файлик из мешанины JavaScript кода), который так просто не разберешь. но и тут вот подводный камень для незнающего — React билдит карту исходного кода. оно, в общем, позволяет восстановить исходный код, который можно будет просмотреть в браузере. указывая false вы отключаете генерацию исходного кода и любопытные глазки не увидят вашу красоту по ту сторону =)
и, само собой, понимаете что если не надо генерировать карту исходного кода — значит не надо тратить время. ну в общем, примерно в 2 раза быстрее сбилдите web app и он будет меньше весить.
вот такие базовые первые шаги для обеспечения оптимизации и защиты кода от копирования☕️
NODE_ENV=production
GENERATE_SOURCEMAP=false
так как у меня всё строится на экосистеме node (ибо пакетный менеджер npm оч богат), эти переменные критично важны.
указывая NODE_ENV=production вы даете библиотекам понять то что код будет запускаться не у разработчика в режиме разработки, а уже для пользователей. Лишние проверки и подробные сведения об ошибках будут отключены и веб-приложение в таком случае становится легче и быстрее
а вот GENERATE_SOURCEMAP=false — очень важная штука. с виду, React билдит бандл (тот самый файлик из мешанины JavaScript кода), который так просто не разберешь. но и тут вот подводный камень для незнающего — React билдит карту исходного кода. оно, в общем, позволяет восстановить исходный код, который можно будет просмотреть в браузере. указывая false вы отключаете генерацию исходного кода и любопытные глазки не увидят вашу красоту по ту сторону =)
и, само собой, понимаете что если не надо генерировать карту исходного кода — значит не надо тратить время. ну в общем, примерно в 2 раза быстрее сбилдите web app и он будет меньше весить.
вот такие базовые первые шаги для обеспечения оптимизации и защиты кода от копирования
Please open Telegram to view this post
VIEW IN TELEGRAM