Рубрика «Rust»

Изображение из демо-версии игры

Изображение из демо-версии игры

14 месяцев назад я начал разрабатывать гонку под названием beaterCore. Идея была простой — с дедлайном 4 месяца сделать простую игру без пафоса. Ну, любой разработчик знает, что произошло дальше: без пафоса не вышло.

Истоки

Читать полностью »

TL;DR: Обычный MTProxy с Fake TLS маскирует протокол, но палится при активном зондировании. Telemt при попытке «пощупать» ваш прокси извне отдаёт настоящий сайт с настоящим TLS-сертификатом. Для DPI и краулеров это сайт.ru. Для вас это стабильный Telegram.

Читать полностью »

О чём статья

Эта статья посвящена тому, как я делал библиотеку локализации на Rust. Фокус будет на изменении проекта от минимального решения для себя до полноценной библиотеки.

Термины

В рамках статьи я буду использовать:

  • локализация - перевод

  • локаль - язык

  • выражение - значение(в начале работы &'static str), которое меняется в зависимости от локали

Они введены, чтобы было проще сопоставлять код и его описание.

Как появилась идея

Читать полностью »

Буквально на прошлой неделе я в очередной раз задеплоил бота в прод и тут же получил от пользователя скриншот с ошибкой. Кнопка «Подтвердить заказ» почему-то отправляла сообщение «Добро пожаловать!» вместо подтверждения. Классика.

При этом я «протестировал» бота — открыл Telegram, потыкал основные сценарии, убедился что /start работает. Но именно тот callback, который сломался, я проверять поленился. Знакомо?

Читать полностью »

В мире разработки есть негласное правило: не пишите свою криптографию. В финтехе должно быть похожее правило: не пишите свой леджер (ledger) на SQL, если планируете масштабироваться.

Меня зовут [Имя], и я хочу рассказать, как мы прошли классический путь «изобретения велосипеда», набили шишки на race condition-ах и в итоге поняли, что индустрии нужен не очередной необанк, а открытый стандарт финансового учета. Так появился проект Qazna.

В этой статье я не буду продавать вам продукт. Я покажу код, архитектурные решения и то, как мы пытаемся сделать «Linux для финансов».

Проблема: Ловушка UPDATE accounts

Читать полностью »

Привет! 👋

Знаете это чувство, когда ты просто хочешь написать код, но вместо этого полдня ковыряешь bash-скрипты? Или когда твой Makefile разрастается до таких размеров, что открывать его страшно, а редактировать — опасно для психики?

Если да — добро пожаловать в клуб.

Меня зовут Даниил, и я устал. Устал от того, что инструменты, которые должны помогать, начинают мешать. Устал гуглить "как передать аргументы в make target" и "почему в bash if не работает". И в один прекрасный момент я решил: хватит.

Я взял Rust, закрылся в комнате и написал NestЧитать полностью »

В предыдущей статье я рассказывал, как сделал производительный просмотрщик логов для VS Code с Rust и mmap. Расширение открывает файлы по 10 ГБ без лагов.

Но оставалась проблема: чтобы найти нужное, приходилось писать regex. А regex — это боль. Особенно когда искать нужно "все ошибки подключения к БД" или "таймауты в сервисе auth".

Решение: пусть AI пишет regex за меня.


Что получилось

Нажимаешь "AI", пишешь на человеческом языке — получаешь фильтр:

Запрос

Результат

"все ошибки"

ERROR

Читать полностью »

Всем привет, я новый пользователь Хабра. Нахожу тут много статей разного уровня сложности. И пришла в голову мысль опубликовать свою. Немного о себе, меня зовут Сергей Новицкий. Я .NET разработчик, у меня 3 года коммерческого опыта работы. Последнее время я изучаю язык программирования Rust. И хотел бы поделиться своими первыми утилитами.

Введение

Один из вопросов моей обыденности использования ПК, это пароли. Их сложно придумывать, можно генерировать. Есть конечно утилиты по типу pwgen, генераторы от браузеров.

Если говорить за браузеры, кредит доверия к ним у меня не высок, из-за их проприетарного происхождения.

Читать полностью »

Как это началось

Случилось так, что мне пришлось участвовать в разработке на Go. До этого с Go я был знаком шапочно, большую часть времени работая с Rust. Изучить Go оказалось не сложно, но после того, как мы приступили к разработке, обнаружились неприятные моменты. Выяснилось, что по сравнению с Rust, в Go местами не хватает гибкости языка, местами есть способы выстрелить себе в ногу.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js