Сейчас, когда утилита say понравилась многим, а я получил массу вопросов и предложений пришло время придать этой массе некоторое ускорение, сформировав сильные вопросы в детальное теническое описание проекта. На днях утилита была добавлена в AUR, что и подколкнуло меня всё же расписать как всё устроено под капотом.Для начала уточню: say, это инструмент для видеозвонков, работающий напрямую в окне терминала. Отдельный GUI не требуется: видеопоток рендерится прямо в терминале в текстовом виде (см…
Эту статью я написал по следам работы над шаблоном микросервиса на Go — для коллег, которые переходят на Go после Ruby.Такие проекты для меня - это способ немного выдохнуть и спокойно порефлексировать: чего именно не хватало в реальной работе, какие инструменты хотелось иметь под рукой, какие решения приходилось принимать в последний момент. Заодно появляется шанс изучить новые подходы и переосмыслить старые.Цель этого шаблона была простой: дать человеку возможность сразу писать бизнес-логику, …
«Жизнь требует движения» (Аристотель) Привет Хабр! Это моя первая статья тут, я надеюсь пол��чилось читабельно и интересно :-) Как и следует из названия, в этой статье мы рассмотрим небольшой проект логера, написанный мною на языке golang. За основу взят встроенный и знакомый многим пакет log/slog.Почему Мульти-логер? Все просто, как и следует из названия, пакет содержит функционал записи логов в несколько хранилищ одновременно. Что нужно для подключения нового хранилища? Для подключения снача…
Пишем свой бинарный протокол передачи данных на NodeJSВведениеРазработка эффективных и безопасных приложений требует не только хорошо продуманного API, но и правильного выбора протокола передачи данных. Веб-приложения обычно используют текстовые форматы, такие как JSON или XML, но для высокопроизводительных систем, требующих минимальной задержки и небольшого объема передачи данных, может быть выгодно использовать бинарные протоколы.В этой статье мы рассмотрим, как разработать собственный бинарн…
🍀 A cross-platform instant messaging desktop application with exceptional performance built on Rust + Vue3, compatible with Windows, macOS, Linux, Android, and iOS(一款基于Rust+Vue3极致性能的跨平台即时通讯桌面应用,兼容Windows、MacOS、Linux、Android、IOS) 一款基于Tauri、Vite 7、Vue 3 和 TypeScript 构建的即时通讯系统 🔗 快速链接 💻 官网:HuLaSpark | …
Common User Passwords Profiler (CUPP)CUPP - Common User Passwords Profiler About The most common form of authentication is the combination of a username and a password or passphrase. If both match values stored within a locally stored table, the user is authenticated for a connection. Password strength is a measure of the difficulty involved in guessing or breaking the password through cryptographic techniques or library-based automated testing of alternate values. A weak password might be …
Уязвимость нулевого дня в популярном сервисе для самостоятельного хостинга Git-репозиториев Gogs позволяет злоумышленникам удаленно выполнять произвольный код, что привело к взлому сотен серверов по всему миру.
Декабрь — самое время порадовать себя, друзей или коллег чем-то новым. Мерч «Хакера» отлично подойдет для подарка и хорошо смотрится как на конференциях, так и в обычной жизни. В коллекции «Хакера» тебя ждут 12 уникальных дизайнов футболок и четыре модели бейсболок. Собери свой сет!
Нет кода быстрее, чем код написанный на ассемблереВ этой части (первая тут) мы поговорим о структуре Go-программы с использованием ассемблера, о хитростях макросов. Будем писать дальше нашу ассемблерную функцию.Структура Go-программы с поддержкой ассемблераВсегда пишем ускоряемую функцию на чистом GoЯ понимаю ваше желание написать сразу сверхбыструю функцию на ассемблере. Но...Правилом хорошего тона будет всегда иметь версию нужной нам функции на чистом Go. Это позволит нашей программе быть ско…