Search
Write a publication
Pull to refresh
3
0.4

Пользователь

Send message

Почему JWT — не панацея: разбор проблем сессий и безопасности

Level of difficultyMedium
Reading time6 min
Views26K

JWT для сессий: удобство или головная боль?

JSON Web Token (JWT) приобрёл популярность как удобный способ аутентификации и передачи данных между клиентом и сервером. Его ценят за простоту, stateless-подход и гибкость. Однако большинство гайдов рассказывают только о плюсах, забывая о недостатках.

В этой статье мы разберём основные проблемы использования JWT для хранения пользовательских сессий и обсудим более надёжные альтернативы.

Читать далее

Windows 11 24H2 IoT Enterprise LTSC – что за зверь, и чем он хорош?

Level of difficultyEasy
Reading time4 min
Views149K

Месяц назад я писал статью об издании Enterprise G, созданную Microsoft для китайского правительства, в котором много лишнего отключено. Статья вызвала большой интерес, много кому нужна ОС с максимальным функционалом — при вашем желании его использовать, но с возможностью отключить всё (или почти всё) ненужное. У версии Enterprise G основной недостаток в том, что политика продукта, прописанная в цифровой лицензии, запрещает установку любых языковых пакетов, отличных от китайского и английского. То бишь, русского интерфейса легким путем не достичь. Возникает вопрос выбора другого издания.

Сразу на ум приходит версия Enterprise LTSC, как полнофункциональная с длительным циклом обслуживания и поддержки, благо для Windows 11 24H2 она утекла еще в апреле. Но, оказывается, есть и более достойный выбор, о котором мы сейчас с вами и поговорим. Речь идёт об издании IoT Enterprise LTSC. Что это такое? Чем оно лучше, чем Enterprise LTSC? А чем хуже? Как её русифицировать и как активировать? Об это сегодняшний разговор.

Чем же так отличается IoT Enterprise LTSC?

Как мы прикрутили RAG для интент-классификации, или Трудности перевода на LLM-ский

Level of difficultyMedium
Reading time13 min
Views5.6K

И не опять, а снова — про этот ваш RAG. Многие продуктовые команды сейчас пробуют приспособить его для своих задач — и мы, команда Speech&Text в компании Домклик, не избежали этой участи. Но не (только) потому, что это модно и молодёжно — попробовать RAG‑подход нас побудила необходимость решить определённые насущные проблемы. Что же это за проблемы, как мы встраивали RAG и что из этого получилось? Если интересно узнать, то милости просим в текст :-)

Читать далее

Соревнование VN1: чему я научился у прогнозистов

Level of difficultyEasy
Reading time9 min
Views1.2K

С сентября по октябрь 2024 года мне выпала честь организовать VN1 Forecasting Competition — соревнование по прогнозированию, в котором приняли участие около 250 команд и отдельных участников. Целью конкурса было предсказать объём продаж различных онлайн‑продавцов на 13 недель вперёд. Первый был разогревочным: участники могли протестировать разные модели, увидеть свои результаты и сравнить их с успехами соперников. Второй этап был решающим — участникам разрешалось подать только один окончательный прогноз, а его точность оставалась неизвестной до самого финала.

После соревнования я собрал мнения и выводы 20 сильнейших участников: мы обсудили их подходы, трудности, с которыми они столкнулись, и найденные решения. В этой статье я поделюсь основными уроками, которые вынес из этого соревнования.

Читать далее

Чеклист для tsconfig.json

Level of difficultyMedium
Reading time15 min
Views8.5K



В этой статье я расскажу о настройках TypeScript, определяемых в файле tsconfig.json, которых я использую в своих проектах.


❯ 1. Возможности, не затрагиваемые в этой статье


В этой статье описывается в основном настройка проектов, в которых все локальные модули являются ESM. Мы почти не будем говорить об импорте CommonJS.


Также мы не будем говорить о следующем:


Читать дальше →

Реальная замена Notion или просто хороший продукт? Обзор и установка NocoDB

Reading time5 min
Views17K

Notion успел стать одним из самых популярных инструментов для управления проектами. Его часто используют для организации контент-планов, календарей, Kanban-досок и не только. Однако 9 сентября 2024 года продукт ушел из России.

Компании, которые плотно работали с Notion, были вынуждены искать альтернативные решения и мигрировать свои данные. Именно тогда на слуху стали фигурировать сервисы вроде Yonote, Weeek, Teamly и другие. У каждого решения есть свои плюсы и минусы, но идеальной замены нет: все сервисы разные, со своей историей и спецификой.

Если вы до сих пор не нашли альтернативу Notion, но не оставляете попыток, посмотрите в сторону NocoDB. Это платформа с открытым исходным кодом, которая позволяет создавать базы данных и управлять ими в знакомом интерфейсе. И, как оказалось, решение отлично подходит для нетехнических команд и предоставляет альтернативный для Notion функционал. В этой статье мы познакомимся с NocoDB и посмотрим, как развернуть проект на облачном сервере.
Читать дальше →

Как установить Ubuntu на отдельном диске с dual boot Windows

Level of difficultyMedium
Reading time3 min
Views68K

Всех приветствую. В свое время намучался с установкой Убунты в дуал буте с Виндой, переустановкой Винды в такой схемы, переустановкой Убунты и т.д. Недавно снова столкнулся с задачей установки Убунты в дуал буте с Виндой, решил написать краткий гайд, т.к. информация в интернете, кажется, в основном на английском языке или устаревшая. Итак, что для этого потребуется:

Установить

Одна React-задача, демонстрирующая ключевые навыки на собеседовании

Level of difficultyEasy
Reading time7 min
Views31K

Как всего одна небольшая React-задача помогает глубже понять уровень кандидата на собеседовании? Разбираем нюансы работы с хуками, асинхронностью, состоянием гонки и сайд-эффектами. На первый взгляд задача кажется простой - всего лишь компонент, загружающий данные по username. Но в процессе решения выявляются ключевые моменты: правильно ли кандидат управляет состоянием, учитывает ли смену пропсов, обрабатывает ошибки и предотвращает race conditions. Этот вопрос помогает не просто проверить знания, а увидеть, как кандидат рассуждает и принимает технические решения.

Читать далее

Сборник советов, как упростить работу с YAML-файлами

Level of difficultyEasy
Reading time5 min
Views23K

YAML (.yml) — популярный язык для конфигурационных файлов, широко используемый DevOps в подходе «Инфраструктура как Код» (IaC). Несмотря на то, что работать с ним бывает проще, чем с тем же JSON (особенно в контексте взаимодействия с большими объемами данных), иногда использовать его бывает трудно. В этой статье мы рассмотрим несколько советов, которые помогут упростить процесс создания и редактирования yml-файлов.

Читать далее

Компилятор WebAssembly, который помещается в один твит

Level of difficultyMedium
Reading time11 min
Views12K

▍ Введение


Наш первый «компилятор WebAssembly в твите» имел длину 269 байт; с тех пор мы смогли снизить её всего до 192 байтов.

В результате мы получили компилятор, получающий арифметическое выражение, записанное в обратной польской нотации, и компилирующий его в валидный модуль WebAssembly. Этот модуль экспортирует одну функцию, которая возвращает результат исходного арифметического выражения. Компилятор выглядит так:

let c=(b,l)=>WebAssembly.instantiate(new Int8Array(
[,97,115,109,1,,,,1,5,1,96,,1,127,3,2,1,,7,4,1,,,,10,
l=(b=b.split` `.flatMap(t=>t>-1?[65,t]:107+'-*/'.indexOf(t)))
.length+4,1,l-2,,...b,11]))

А вот пример его использования:

(await c('11 11 1 - + 4 * 2 /')).instance.exports['']()

Но это не просто хитрый трюк — если вы начнёте разбираться, как работает этот код, то на удивление много узнаете о WebAssembly! В этом посте мы объясним, как это всё работает, пошагово деобфусцируя код.
Читать дальше →

Эстетика игр за доллар. История и философия сайта itch.io

Reading time8 min
Views15K

Главная страница сайта itch.io.

Каждый год происходит более двадцати тысяч игровых релизов. Тем не менее складывается ощущение, что все они довольно-таки однообразны: шутер от первого лица, игра про зомби, survival horror, шутер про зомби с элементами хоррора, RPG, RPG, RPG… На слуху в основном игры от крупных издателей, на разработку и маркетинг которых тратятся огромные деньги. Но в этой статье я предлагаю взглянуть на бунтарей от мира геймдева и дистрибуции игр, которые решили пойти против системы. И, кажется, у них неплохо получается.
Читать дальше →

Памятка по XSD и XML

Level of difficultyEasy
Reading time11 min
Views18K

Самое главное стоит понимать, что XSD (XML Schema Definition) – это схема, то есть описание данных взаимодействия. Схемы бывают разные, например, наша XSD, которую обычно используют для описания структур в формате XML, или JSON-schema - для описания структур в формате JSON. Использование схем в контрактах API сейчас уже является стандартом де-факто, так как это удобно.

Основные объекты, из которых состоит XSD-схема:
- Элементы;
- Типы;
- Индикаторы порядка.

Читать далее

«База» по метрикам в Prometheus

Level of difficultyMedium
Reading time12 min
Views18K

Привет, Хабр! Меня зовут Глеб Типсин, я являюсь ведущим разработчиком продукта «Системы персонализации и геймификации» в SM Lab.

В этой статье мы разберём, как устроены метрики в Prometheus, как происходит их сбор, а также что с ними можно делать. Кроме того, обсудим подходы в мониторинге, архитектуру Prometheus и её ограничения.

Материал подойдёт тем, кто только знакомится с мониторингом и хочет освоить «базу», а также тем, кто уже работает с Prometheus, но хочет "освежить" свои знания и узнать что-то новое.

Читать далее

Camunda для backend-разработчика — как ей пользоваться

Level of difficultyMedium
Reading time8 min
Views18K

Я написала этот текст из желания помочь разработчикам, которым только предстоит познакомиться с Camunda. С чего начать и как не потеряться - подробно, с кодом и скринами.

Читать далее

Мой путь к быстрой и понятной архитектуре, или зачем я выбросил агрегаты из DDD?

Level of difficultyMedium
Reading time19 min
Views12K

Данная статья затрагивает некоторые аспекты при выборе подхода к проектированию предметной области для сложных корпоративных систем. В ней исследуются причины возникновения классических подходов и их анализ, для возможного улучшения. Это моя первая статья на данную тему.

В начале хочется сказать, что предложенная концепция не пытается претендовать на роль какой-то панацеи и уж тем более на роль единственно верной, она так же имеет ряд своих преимуществ и недостатков. Это скорее попытка переосмыслить опыт, который накопился у меня за несколько лет проектировании корпоративных систем. Материал изложен в виде вопросов и попыток на них ответить.

Читать далее

Просто пишите код. Часть 1

Level of difficultyEasy
Reading time4 min
Views7.7K

В последнее время я часто читаю статьи о том, как использовать микросервисы, но редко встречаю ситуации, где принятие решения об их использовании имеет правильное обоснование. В этой статье я попробую показать, как должно приниматься такое решение. Важно понимать, что решение принимается по каждому домену в отдельности, в зависимости от самого домена и от способа взаимодействия команд ответственных за домены.

Постарался создать простой чек лист для принятия решения о выделения в микросервис конкретного домена.

Читать далее

50 исследований на тему нейросетей, которые помогут вам стать ИИ-инженером от бога

Reading time9 min
Views21K

В этом дайджесте мы собрали 50 знаковых научных работ в области ИИ за последние годы. Подборка охватывает десять ключевых направлений разработки нейросетей: от промтинга и проектирования бенчмарков до файнтюнинга и компьютерного зрения. 

Материал будет полезен как для опытных ИИ-инженеров, которые хотят прокачать свои навыки разработки, так и тем, кто только начинает свое знакомство с нейросетями и находится в поисках точки входа в ту или иную тему.

Читать далее

Juniper и Cisco, как правильно собрать syslog и красиво оформить dashboard в grafana

Level of difficultyMedium
Reading time7 min
Views4.7K

В данное статье рассматривается порядок развертывания системы сбора и анализа логов с сетевых устройств производства Cisco и Juniper Networks, посредством применения «Syslog-ng», «Vector», «Loki» и «Grafana». Подробно описан процесс развертывания данных инструментов с помощью docker‑compose. Помимо этого, в статье затрагивается конфигурация сетевых устройств с использованием Ansible. Отдельное внимание отведено визуализации данных в Grafana, посредством создания dashboard.

Читать далее

Чёрные очаги в кости вокруг зубов

Reading time9 min
Views6.7K
Чаще всего причина в том, что микробы попали внутрь зуба из кариозной полости или процессе удаления нерва (лечения каналов) из-за его воспаления. Иногда это результат давней травмы, о которой уже и думать забыли.

image
На снимке врач видит примерно такую картинку: чёрное облачко вокруг корня — это и есть периодонтит

Хронический апикальный периодонтит редко кто приходит лечить специально. Чаще всего его обнаруживают случайно: стоматолог делает рентген, а там — чёрное облачко вокруг корня зуба. Вот так он и выглядит.

Кстати, это реальный повод не пропускать профилактические осмотры. Чем раньше врач заметит такую штуку, тем проще её решить, пока это не стало серьёзной проблемой.

По ОМС такой зуб скорее всего удалят, но не потому, что врачи плохие. Просто, чтобы перелечить уже пролеченные каналы и оставить зуб на месте, нужна современная техника, те же микроскопы и увеличительная техника, а в государственных клиниках это нечастая история. Поэтому, как правило, предложат удаление. Хотя есть шансы зуб сохранить. Но и в клиниках подороже далеко не каждый терапевт возьмётся за такую работу — она тонкая и сложная.

В общем, профилактика рулит. Каждую пломбу важно периодически проверять. Зубы без нервов — особенно тщательно и на рентгене. Тогда дело до обострения не дойдёт и свои зубы останутся в челюсти дольше.
Читать дальше →

Как сделать BPMN-диаграмму чуточку лучше

Level of difficultyMedium
Reading time6 min
Views9.1K

Всем привет!

Сегодня хочу затронуть холиварную тему: как сделать диаграмму BPMN немного читабельнее и как избежать логических ошибок. Мы рассмотрим несколько «проблемных» BPMN‑диаграмм, с которыми я встречался в своей практике, и узнаем, как их можно улучшить.

Читать далее

Information

Rating
3,310-th
Location
Россия
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Middle