Изначально идея была грубее: взять логовую строку, посчитать энтропию у подозрительных кусков и скрывать всё, что похоже на случайный секрет.PII здесь — это personally identifiable information, то есть персонально идентифицируемая информация: email, телефон, адрес, паспортные данные, номера карт, токены доступа и другие значения, которые не должны свободно гулять по логам.На бумаге звучало неплохо. Многие токены, ключи и сессионные строки действительно выглядят как шум:x9VdQp2Mz_La77kPq0 sk_liv…
Когда говорят «генератор миграций», обычно в голове сразу появляется что-то вроде:CREATE TABLE users ( id BIGSERIAL PRIMARY KEY, email TEXT NOT NULL );Но настоящий генератор миграций начинается не с CREATE TABLE. Он начинается с менее эффектного, но гораздо более важного вопроса:Как вообще представить текущую схему базы в коде?Пока у нас нет ответа на этот вопрос, мы не можем нормально сделать почти ничего:сгенерировать начальную миграцию для уже существующей базы;сравнить ожидаемую схе…
В конце цикла я прогнал скрипт по своим логам и увидел число, в которое сам не сразу поверил. За 25 дней, с 24 апреля по 19 мая, я сжёг 17,4 миллиарда токенов. Один человек, 344 сессии, 75 587 ответов ассистента, 176 695 строк транскриптов. Посчитайте это по тарифам API, и выходит 39 651 доллар. Около 3,17 миллиона рублей. Примерно 1586 долларов в день. Почти всё это Opus, самая дорогая модель на рынке.А теперь то, ради чего вы дочитаете. Я не заплатил по API ни цента. Всё это работало на флэт-…
В прошлой статье про ГИГАХРУЩ мы показали игру как живой weird-проект: браузерный survival horror / ARPG без движка, ассетов и спокойной жизни.С тех пор проект уже стал заметен в локальном инди-комьюнити: в него играют, о нем спорят, его архитектурные решения стали отдельной темой. Поэтому этот текст не питч и не просьба оценить демку. Это инженерный разбор проекта, который уже обрастает сообществом: где данные, где системы, где рендер, что хранится постоянно, что материализуется, почему мы не …
Как выкатить собственный движок JavaScriptВведениеБольшинство разработчиков, имеющих дело с JavaScript — кто на фронтенде, кто на бэкенде — очень слабо себе представляют, что именно происходит под капотом, когда выполняется их код. Я сейчас имею в виду не основы работы с переменными или функциями, а более глубокий процесс интерпретации и выполнения кода.Когда вы пишете на JavaScript, код проходит через множество этапов: лексический анализ, парсинг, преобразование в абстрактное синтаксическое де…
Баннер с запросом согласия на cookie есть почти на каждом сайте. Но часто он существует «для галочки» — данные в аналитику улетают сразу при загрузке страницы, независимо от того, что выбрал пользователь. И если раньше это была просто недоработка, то с 1 сентября прошлого года в 152-ФЗ (Федеральный закон «О персональных данных») был внесен ряд изменений, в том числе, появились новые требования к оформлению согласия на обработку персональных данных. Во-первых, оно должно быть получено в я…
Привет, Хабр!Какие варианты?Когда речь заходит о десктопных приложениях на веб‑технологиях, большинство разработчиков сразу вспоминают Electron. VS Code, Discord, Slack, Postman — все это работает именно на нем.Но за последние несколько лет появилось множество альтернатив, которые обещают меньший расход памяти, лучшую производительность и более простой доступ к системным ресурсам.В рамках небольшого R&D я решил сравнить три современных решения: ElectroBun NeutralinoJS Wails Tauri я в этот…
Привет всем уважаемые читатели.Около года назад я решил сделать универсальное open-source решение для визуализации списков. В первых версиях я отрабатывал технологию виртуализации с различными параметрами, было много исследований, вопросов. Сегодня же состоялся релиз X.12.X версии, которая работает под управлением Angular 14-22. Хочу рассказать на что способен инструмент (ng-virtual-list), какие задачи решает и проведу краткий обзор с демонстрацией примеров.Все приведенные ниже примеры содержат…
Фронтенд-разработка давно перестала быть просто «вёрсткой сайтов». Сегодня это сложная экосистема: фреймворки, state-менеджмент, TypeScript, оптимизация производительности, работа с API и постоянный поток новых инструментов. Но за всей этой технологической гонкой часто теряется главное: что на самом деле нужно знать начинающему разработчику, где проходит грань между джуном и сеньором, и почему умение проходить собеседования — такой же навык, как и писать код. Я, Александр, автор телеграм-канала…