Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Менеджмент студенческих ML-проектов на примере Yandex Camp

Время на прочтение8 мин
Количество просмотров694

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

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

Читать далее

JEP 519: Компактные заголовки объектов — теперь официально

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров1.9K

Команда Spring АйО представляет одну немаловажную фичу Java 25: компактные заголовки объектов (Compact Object Headers). Это позволит JVM экономить память и ускоряться без вмешательства в код.

Читать далее

Введение в Jimmer ORM

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.5K

Совсем недавно статью про ORM-фреймворк Jimmer Михаила Поливахи, эксперта сообщества Spring АйО, опубликовал Baeldung.

Перед вами переработанная и дополненная версия, подготовленная специально для сообщества Spring АйО. В ней Михаил раскрывает ключевые особенности Jimmer: отсутствие JPA-наследия,  декларативные DTO и гибкий DSL и потенциальную интеграцию со Spring.

Читать далее

Синдром бессмысленного спринта

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров6.4K

Когда задачи есть, а движения — нет

Команда работает.
Задачи в трекере стоят.
Стендапы идут, код пишется, обсуждения кипят.

А результата всё нет.
Нет чувства прогресса, нет ощущения, что продукт становится ближе к релизу.
Итерации проходят одна за другой — а продукт будто топчется на месте.

Читать далее

Моки в тестировании микросервисов с кучей интеграций — кейс финтех-приложения

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.9K

Привет, Хабр! Я Святослав Волохов, QA-инженер в AGIMA. Тот, кто хоть раз тестировал сложный интеграционный сервис с десятками зависимостей и внешними API, да еще и в финтехе, знает — без грамотно выстроенной системы тестирования не обойтись.

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

Расскажу о сложностях, с которыми мы столкнулись, и об их решениях: берите на заметку, особенно если работаете над enterprise-проектами и вы — начинающий специалист.

Читать далее

Как защититься и восстановиться после атаки шифровальщика

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

Привет, Хабр! Меня зовут Женя Шмидт, я менеджер продуктов информационной безопасности в Selectel. Представьте: вы получили письмо с темой «Специальные условия для сотрудников компании» и файлом во вложении. Отправителем значится ваш работодатель.

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

Читать далее

Оценка подхода lock-free списков

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2K

Привет, Хабр. Меня зовут Роман Ескин, я один из C разработчиков проекта Greengage DB. В этой статье я расскажу, как мы реализовали и протестировали lock-free подход в рамках масштабной работы по внедрению функции удаления брошенных файлов. Приглашаю вас заглянуть во внутреннюю кухню работы нашей команды при оценке этой функциональности.

Введение

Позвольте начать с краткой исторической справки: Greengage DB был запущен в 2024 году как open-source форк Greenplum — Massively Parallel Processing (MPP) аналитической системы управления базами данных, основанной на PostgreSQL. Мы начали этот проект, чтобы поддержать open-source сообщество Greenplum, который неожиданно стал проприетарным продуктом в мае 2024 года. Мы гарантируем дальнейшее развитие Greengage DB, следуя принципам открытости и прозрачности.

Так как Greengage DB основан на PostgreSQL, он унаследовал некоторые его известные особенности и проблемы. Одна из таких проблем, особенно актуальная в распределенных средах — это проблема "брошенных файлов" (orphaned files).

Эта проблема возникает, когда таблица создается и данные загружаются в рамках активной транзакции. Если происходит критический сбой до того, как транзакция будет закоммичена или отменена (например, внезапное отключение питания или неожиданное завершение работы узла базы данных), система проходит процесс восстановления после падения (crash recovery). При этом логическая таблица откатится, но физические файлы данных, связанные с этой незакоммиченной таблицей, могут остаться в файловой системе. Со временем такие брошенные файлы могут накапливаться, занимая место и приводя к ненужному расходу ресурсов. В настоящее время их удаление происходит вручную.

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

Читать далее

Когда лень проверять порты вручную: магия Nmap

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

Привет, Хабр! В современном мире сети растут крайне быстро, устройств становится всё больше, в связи с чем растёт и количество уязвимых мест. Ручной мониторинг открытых портов, сервисов и дыр в безопасности — схоже с поиском иглы в стоге сена, когда в кармане лежит магнит.

Чем полезна автоматизация и какие проблемы она решает:
— Время — сканирование сотен IP вручную может занять часы
— Человеческий фактор — пропустить критичный порт или уязвимость очень легко
— Регулярность — безопасность требует постоянного контроля и мониторинга, а не разовых проверок

Читать далее

Как мы внедряли Service Mesh и не утонули в сложностях: реальный кейс Orion soft

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров808

Артём Еремин, системный инженер Nova Container Platform в Orion soft.

Всем привет! Недавно я выступал на мероприятии СНОВА О КУБЕРЕ и рассказывал о Service Mesh. Тема достойна и поста на Хабре, потому что Service Mesh стал распространенной фишкой, но при этом не самой простой. 

Мы в Orion soft решили внедрить ее в нашу платформу оркестрации Nova Container Platform, и по пути столкнулись с целым рядом «подводных камней»: от выбора самого решения до нюансов настройки MTLS и организации точек входа трафика в наш кластер. В этой статье я расскажу, как мы выбирали реализацию для Service Mesh, почему остановились на Istio, какие вопросы решали и что из этого получилось.

Читать далее

Expression: всё что нужно для старта

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров1.4K

Если поискать по Хабру статьи, связанные с Expression, то можно найти несколько десятков страниц статей. Однако, я решил написать еще одну. Цель с которой я решил это сделать‑ разобрать деревья выражений для разработчиков которые еще не имели с ними дела. Для тех кому это кажется магией. И самое главное, показать для чего они могут пригодиться.

Что же далее...

Книга: «Грокаем безопасность веб-приложений»

Время на прочтение2 мин
Количество просмотров5.6K

Привет, Хаброжители! Безопасность приложений — приоритетная задача для веб-разработчиков. Вы работаете над интерфейсом фронтенд-фреймворка? Разрабатываете серверную часть? В любом случае вам придется разбираться с угрозами и уязвимостями и понимать, как закрыть, дырки через которые хотят пролезть черные хакеры.

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

Читать далее

Вышла 12 версия русского опенсорс голосового помощника Ирина (900+ звезд Гитхаб)

Время на прочтение8 мин
Количество просмотров19K

Всем привет! Я уже писал про своего голосового помощника Ирину статьи на Хабре: раз, два и три; первый раз был аж 3.5 года назад.

Самое главное — опенсорс проект жив. А если опенсорс жив в течение 3.5 лет — значит, он дошел до какой‑то точки зрелости. А если у него 900 звезд на Гитхабе — значит, им кто‑то пользуется, и даже успешно :)

TL;DR> Python с простой архитектурой. Работает оффлайн, полностью локально и приватно. Можно дописывать свои скиллы через плагины. Плагинов много, есть от комьюнити. Поддержка Home Assistant. Поддержка кучи TTS. Поддержка LLM по OpenAI‑совместимому API, можно сделать онлайн или оффлайн. Есть клиент‑сервер.

Читать далее

Когда одни связи объясняют другие: QAP-корреляция и QAP-регрессия

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров405

В рамках анализа социальных сетей может понадобиться проверить гипотезу о том, объясняются ли связи одного рода (например, деловые) - связями другого рода (например, дружескими и/или родственными). Сделать это для сетевых данных (графов) можно с помощью метода QAP-корреляции и QAP-регрессии. Ниже подробнее и на примерах о том, почему это нужно делать именно так, и как это делать, например, в программе UCINet. (Спойлер: будут ссылки на реализацию методов в R и Python).

QAP-регрессия - Читать далее

Ближайшие события

Через тернии к звездам: настраиваем сетевую связность Kubernetes на физическом сервере в ЦОД

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.6K

Привет, Хабр! С вами Антон Паус. Я четыре года проработал системным инженером в российском офисе Cisco, а сейчас работаю DevOps-инженером в Cloud.ru — занимаюсь облаком собственной разработки

С 2024 года я веду проект по разработке новой архитектуры кластера виртуализации Evolution IaaS на базе Kubernetes. Раньше мы использовали связку Ansible и Docker, и это отлично работало на существующем масштабе, но с ростом клиентской нагрузки столкнулись с рядом сложностей, что в конечно итоге и сподвигло нас на обновление архитектуры. 

Проект получился довольно объемным и со множеством нюансов и сложностей, о которых я, возможно, напишу в следующих статьях. В этой же хотел остановиться на нюансах сетевого взаимодействия в кластере bare metal Kubernetes — в ходе работы возник ряд сложностей (например, с первоначальной установкой K8s на сервер с несколькими интерфейсами), о решении которых я и расскажу. 

Если развернуть кластер Kubernetes на железе — в ваших обозримых планах, надеюсь, мои изыскания будут полезны. А еще в статье довольно много сетевки, так что приготовьтесь!

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

Где посоревноваться в скорости печати текста и кода?

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров700

— Зарубиться и выяснить, кто в офисе печатает быстрее?
— Легко!
— Но везде ли удобно?
— Нет, но сейчас разберёмся...

Читать далее

От хаоса к порядку: жизненный цикл бага

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров710

Каждый баг в проекте проходит определенный жизненный цикл — от момента обнаружения до полного устранения. В новой статье мы подробно рассматриваем ключевые этапы этого процесса, уделяя особое внимание рабочим статусам багов в системе JIRA, таким как «Open», «Blocked», «Closed» и «Rejected».

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

Читать далее

Angie 1.10: разбор фич, планы на 1.11

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

Следуя устоявшемуся квартальному ритму выпуска значимых релизов, мы выпустили стабильные версии Angie и Angie PRO 1.10 — форка nginx, развиваемого в основном бывшими ключевыми разработчиками оригинального проекта.

Как и в прошлый раз, расскажем подробнее о нововведениях, приводя примеры. Вы узнаете, в чём ключевая фишка нового релиза (картинка под заголовком намекает); также слегка приоткроем завесу тайны над тем, что у нас припасено на будущее.

А пока — краткий список нововведений, которые будут разобраны ниже:

— автоматическое проксирование и балансировка веб-сервисов в Docker-контейнерах (или Podman);
— автоматическое получение TLS-сертификатов для потокового модуля (stream);
— прием соединений Multipath TCP (MPTCP);
— контроль перегрузки CUBIC в QUIC-соединениях;
— привязка сессий с внешним хранилищем в модуле stream;
— новые режимы привязки сессий при проксировании HTTP-запросов;
— режим постоянного перехода на резервную группу в модуле stream.

Читать далее

Ошибки Java по ГОСТу: обзор и примеры

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

Ошибки в Java по ГОСТу? Да, в этой статье мы вам расскажем, что это за ГОСТ, какие категории ошибок в нём существуют, какие из них относятся к Java, и даже покажем примеры из реальных проектов.

Читать далее

Гайд по использованию Spring GraphQL

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

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

Меня зовут Дмитрий, и я бэкенд-разработчик в SENSE с 10-летним опытом. За это время я успел поработать с финтех-проектами, автоматизировал обработку заказов для интернет-магазинов, но GraphQL долгое время оставался для меня загадочной технологией — я просто не сталкивался с ним в работе. А когда он мне понадобился, то обнаружил, что толковых материалов по Spring-реализации GraphQL очень мало. Поэтому, я решил не только разобраться самостоятельно в теме, но и написать гайд для тех, кто, как и я, только начинает погружаться в эту тему. 

Разбираться будем постепенно: в первой статье покажу, как создать проект с GraphQL с нуля. Поехали!

Читать далее

Что нового на Kapi.bar за год: фичи, правки и немного философии

Время на прочтение7 мин
Количество просмотров1.8K

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

Kapi.bar появился как независимая платформа. Без бюджета, без офисов, без KPI. Мы просто хотели сделать альтернативу известному ресурсу, которой будет не просто приятно пользоваться, а где ты можешь напрямую влиять на то, какой контент становится популярным, а какой нет. Вы наверное помните, что последней каплей, переполнившей чашу нашего терпения стало полное уничтожение честной рейтинговой системы на том ресурсе, где мы все ранее зависали и за этот год оказалось, что нас таких — не один и не два, нас целое сообщество. И это невероятно вдохновляет!

За этот год в Kapi.bar многое поменялось. Мы добавили десятки фич, вычистили не один баг (правда ранее сами‑же их и допустили, но кто не ошибается), наконец начали разбираться с SEO, провели тихую, но упорную работу над повышением стабильности системы. И, что немаловажно — начали глубоко размышлять над философией Капибары и формулировать, кто мы вообще такие, для чего всё это и почему эта история — не только про код.

Эта статья — не рекламный релиз и не набор bullet‑поинтов из changelog. Мы просто хотим рассказать, что произошло за год. Что стало лучше, что сломалось и было починено. И да, немного про поисковики тоже будет — с ними, как оказалось, тоже можно подружиться.

Читать далее