Обновить
@resetmeread⁠-⁠only

Скромный пастух нулей и единиц…

Отправить сообщение

Некоторые особенности VimL

Время на прочтение13 мин
Охват и читатели8.1K

В этой статье я хочу рассказать о некоторых особенностях VimL, зачастую неочевидных, которые надо знать человеку, желающему написать хорошее дополнение для Vim. Для понимания статьи требуется знание vimscript и рекомендуется наличие как минимум одного написанного дополнения. Людям, не желающим написать своё собственное дополнение статья будет, по большей части, бесполезна.
Читать дальше →

Как написать постановку на разработку, чтобы ни у кого не было вопросов

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели17K

Привет! Я лид системных аналитиков в департаменте корпоративных систем ЛАНИТ. В этой статье я расскажу, как писать качественные постановки на разработку информационной системы. 

Я часто сталкиваюсь с вопросом, как корректно передавать аналитические требования разработчикам. Я участвовала в проектах, где процесс постановки был выстроен качественно. Там я набиралась опыта и впитывала знания. Но были и проекты, где вообще никаких постановок не было — только устные договоренности и полотна текста в Jira. Недавно мне вовсе пришлось выстраивать процесс написания постановок с нуля. В этот момент я переосмыслила все предыдущие шаблоны. Теперь хочу поделиться своим видением с вами.

Читать далее

Выбор статистического метода для A/B-теста: практическое руководство

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели9K

Привет! Меня зовут Денис. Уже юолее 5 лет работаю Senior Product Analyst в крупнейших IT-компаниях России, включая Тинькофф. Разрабатывал системы аналитики с полного нуля, провёл огромное количество A/B тестов и знаю всю внутреннюю кухню больших корпораций изнутри.

Я совершил множество ошибок на своём пути – и теперь здесь, чтобы помочь именно тебе их избежать и пройти этот путь быстрее!

A/B-тесты давно стали стандартным инструментом в продуктовой и маркетинговой аналитике. Но на практике большинство ошибок происходит не на этапе запуска эксперимента, а при анализе результатов. Чаще всего причина в том, что статистический метод выбирается «по привычке», без учёта типа метрики и свойств данных.

В этой статье я собрал практическую логику выбора методов анализа A/B-тестов. Без углубления в теорию, но с пониманием, почему в одном случае работает χ², а в другом t-test может привести к неверным выводам.

Читать далее

Mem-векторы: как сохранить 1500 токенов в одном векторе и зачем это нужно

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели2.7K

Каждый, кто работал с большими языковыми моделями (LLM), знает про ограничение длины контекста: модель не может напрямую обработать текст, превышающий определённое число токенов. Это накладывает ограничения на работу с длинными документами и обширным контекстом. Но что если бы мы могли упаковать длинный текст в один-единственный вектор и скормить его модели как обычный токен? Звучит фантастично, однако свежие исследования показывают, что это возможно – такие “mem-векторы” позволяют сохранить сотни и даже полторы тысячи токенов информации в одном эмбеддинге. Это принципиально иной подход, нежели классическое сжатие данных, и он сулит интересные применения.

Mem-вектор (от “memory vector”) – это специально обученный вектор, который хранит содержание целого текста. Идея в том, что если модель умеет предсказывать текст, то можно подобрать такой вектор на входе, при котором замороженная (неизменяемая) LLM сама декодирует исходный текст. Иначе говоря, mem-вектор играет роль «семени», из которого предобученная модель порождает заложенное в нём сообщение. В этой статье разберём, как это работает, почему вообще возможно “запихнуть” роман в один вектор и какие ограничения при этом появляются. Также сравним mem-подход с классическими алгоритмами сжатия (Huffman, арифметическое кодирование, zlib и др.), обсудим последние научные работы на эту тему и возможные применения: от Retrieval-Augmented Generation (RAG) до передачи новых знаний замороженным моделям. Центральная мысль: mem-векторы – это не просто компрессия текста, а способ напрямую скормить модели смысл и знания, минуя последовательное чтение токенов.

Разбираемся далее

Manim: как создавать математические анимации в стиле 3Blue1Brown с помощью Python

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели13K

Команда Python for Devs подготовила перевод статьи о Manim — Python-инструменте для создания наглядных математических анимаций в стиле 3Blue1Brown. Разбираемся, как с помощью кода визуализировать уравнения, графики и абстрактные идеи так, чтобы они были понятны коллегам, менеджерам и студентам.

Читать далее

CQRS на практике: как проектировать системы, которые не ломаются под нагрузкой

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

Привет, Хабр! Я сегодня хочу разобрать одну из самых мощных, но часто неправильно понимаемых архитектурных концепций — CQRS. Если вы уже переросли уровень «просто писать CRUD» и задумываетесь о том, как строить системы, которые будут масштабироваться и оставаться производительными — эта статья для вас.

Читать далее

Django 6.0: эволюция фреймворка в деталях

Уровень сложностиПростой
Время на прочтение21 мин
Охват и читатели9.5K

Команда Python for Devs подготовила перевод обзора обновлений Django 6.0. В свежем релизе фреймворк усиливает совместимость между СУБД, упрощает работу с email, улучшает ORM, добавляет удобства в шаблонах и снижает риск «выгорания» первичных ключей.

Читать далее

От «обезьяньей» работы к Smart-анализу: как выполнить предобработку данных для моделей

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели10K

От «обезьяньей» работы к Smart-анализу: как правильно готовить данные для моделей.

Что такое Exploratory Data Analysis и как избежать основных ошибок при его выполнении.

Читать далее

Изящные, ненормальные и удивительные алгоритмы на C

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели17K

Доброго времени суток, господа и дамы! Иногда у некоторых людей возникает желание заняться откровенным непотребством в программировании — то, что не несет практической пользы напрямую, но помогает развлечься. И я — не исключение. В этой статье я хочу рассказать вам о лайфхаках, трюках (магических и не очень), алгоритмах на языке C!

Идея написать эту статью зародилась из моего поста, после него я написал статью «Математика, биты, магия и немного ненормального программирования на C», «Фокусы, хаки, магия и прочее ненормальное программирование на C» и «Тёмная сторона Си: трюки, хаки, магия и алгоритмы», которые раскрывали много интересных моментов.

Увидев, что многим понравилась, я решил продолжить, чтобы узнать насколько глубоко кроличья нора!

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

Всех, кто заинтересовался — прошу под кат.

Читать далее

Разработчики всё ещё путают JWT, JWKS, OAuth2 и OpenID Connect — разбираем на примерах. Часть 1

Уровень сложностиПростой
Время на прочтение27 мин
Охват и читатели17K

JWT, SSO, OAuth, OpenID Connect — названия знакомые каждому разработчику. Но стоит спросить: «Зачем в продакшене нужен JWKS?» или «Чем отличается OAuth2 от OpenID Connect?» — уверенность сразу исчезает.

В этой статье мы разберём как устроен JWT и его подпись, зачем нужны access и refresh токены, что такое JWKS и в чём отличие OAuth от OpenID Connect.

Вместо скучных стандартов и спецификаций протоколов в статье будет один наглядный образ на примере отелей и пропусков. Это позволит не только запомнить, но и прочувствовать на реальных примерах, избавиться от хаоса и путаницы в голове, когда речь заходит об аутентификации и авторизации. Цель статьи — не дать «рецепт внедрения», а дать возможность понять, как это работает внутри и «пощупать» эти темы на Go

Читать далее

Nginx для начинающих: точная настройка процессов, заголовков, SSL, keepalive и маршрутизации запросов

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели15K

Nginx часто воспринимают как «просто веб-сервер», который достаточно поставить и запустить с дефолтным конфигом. На этом этапе обычно и останавливаются: процессы работают как попало, заголовки отдаются по умолчанию, SSL настроен формально, keepalive либо не используется, либо вредит, а маршрутизация запросов со временем обрастает хаотичными location. В результате конфигурация вроде бы выполняет свою задачу, но остаётся плохо управляемой, неочевидной и далёкой от оптимальной.

Эта статья — о базовых, но часто недооценённых возможностях Nginx. Мы последовательно разберём настройку рабочих процессов, управление HTTP-заголовками, корректную конфигурацию SSL, работу keepalive-соединений и маршрутизацию запросов. Без магии и редких трюков — только то, что действительно используется в продакшене и позволяет сделать конфигурацию понятной, предсказуемой и безопасной даже для начинающего администратора.

Читать далее

Борьба с дисбалансом классов. Ансамблевые и комбинированные методы

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели5.7K

Привет, Хабр! На связи KozhinDev и ml-разработчик Приходько Александр. Это четвертая часть цикла о борьбе с дисбалансом классов. Предыдущие статьи:
- В первой статье мы рассказали про суть проблемы дисбаланса классов и стандартные методы борьбы с ним;
- Во второй статье обсуждались методы undersampling - удаление данных из распространенного класса;
- В третьей статье рассматривались методы oversampling - генерация примеров редкого класса.

В данной части мы рассмотрим комбинированные и ансамблевые методы библиотеки Imbalanced Learn.

Читать далее

Биномиальное — это не нормальное распределение

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.9K

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

С графиками и без формул

Lord of the Prints: Filament Fellowship. Путешествие в мир филаментов для FDM-печати

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели14K

Привет, Хабр! Это снова Лера из Selectel. В прошлой статье я рассказала о двух технологиях в 3D-печати. В комментариях попросили сделать разбор материалов — и вот он. Сегодня продолжим заниматься извращениями под видом технических текстов. Все сравнения и оценочные суждения — исключительно личное мнение. Экспертов в FDM, гуру печати, а также любителей активных обсуждений прошу принять приглашение на чашечку чая в комментариях, посплетничаем там вместе.

Шорткат под кат

Регулярные выражения в Python: почему ваши парсеры тормозят и как это исправить

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.5K

Регулярные выражения часто воспринимаются как write-only код: написал и забыл, потому что прочитать это невозможно. Но настоящие проблемы начинаются не с читаемости, а с производительности. Неправильный квантификатор или использование re.findall на больших данных могут парализовать работу приложения.

Читать далее

Reticulum — радиопротокол для mesh-сети. Зашифрованная пиринговая связь без интернета

Время на прочтение4 мин
Охват и читатели47K


Как мы обсуждали ранее, отключение интернета в конкретной стране или городе — не вымышленная угроза, а вполне реализуемое действие. В частности, международная ассоциация Internet Society зафиксировала в 2021 году 49 искусственно вызванных шатдаунов.

Но есть эффективные технологии, которые позволят пережить возможный шатдаун. Например, mesh-сети для радиосвязи.
Читать дальше →

Что происходит после fn main() в Rust?

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели12K

Привет!

Хочу вместе с вами разобрать, как же код на Rust превращается в готовый исполняемый файл. Мы пишем программу, например, fn main() { println!("Hello, Habr!"); }, компилируем, и на выходе получаем бинарник. Что происходит под капотом компилятора Rust в этот момент? Давайте аккуратненько заглянем внутрь этого таинственного процесса.

Читать далее

Борьба с дисбалансом классов. Oversampling

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.5K

Привет, Хабр! На связи KozhinDev и ml-разработчик Приходько Александр. Это третья статья в цикле публикаций по теме борьбы с проблемой дисбаланса классов в машинном обучении. В первой статье мы обсудили актуальность данной проблемы в машинном обучении, а также сравнили методы борьбы с ним, без внесения изменений в сами данные: изменение весов классов и порога принятия решения моделью. Во второй статье мы сравнивали undersampling-методы, которые удаляли представителей частого класса.

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

Читать далее

Функциональное тестирование Kubernetes Operators с Kubebuilder

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели701

Привет, Хабр!

Сегодня поговорим о том, как тестировать Kubernetes Operators с помощью одного замечательного фреймворка. Функциональное тестирование — это не просто «хорошо бы», это необходимость. А вот как сделать качественное тестирование без боли? Здесь и поможет фреймворк Kubebuilder — инструмент, который упрощает тестирование и разработку операторов.

Читать далее

Архитектура ИТ решений. Часть 7. Графический язык моделирования ArchiMate. 7.1. Бизнес слой

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели7K

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

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

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

ArchiMate в оригинале Architecture‑Animate) — это открытый и независимый язык моделирования архитектуры предприятия для поддержки описания, анализа и визуализации архитектуры внутри и за пределами бизнес‑процессов однозначным способом. Так же это технический стандарт от The Open Group, базирующийся на IEEE 1471. Он поддерживается различными разработчиками инструментов моделирования и консалтинговыми организациями.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность