Как стать автором
Обновить

Как стать автором

ТОП 60 лучших инструментов для разработки ПО в 2025

Время на прочтение14 мин

Разработка ускоряется — ИИ меняет подходы, появляется больше новых инструментов, а старые получают новую жизнь. В статье приведена подборка из 60+ актуальных инструментов для разработки программного обеспечения, лучшее из старого и нового, чтобы быть на шаг впереди.

Читать далее
Всего голосов 10: ↑1 и ↓9-8
Комментарии2

Передача пароля по интернету: что безопаснее — хэширование или TLS?

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

В этой статье мы рассмотрим, какие методы передачи пароля через интернет наиболее безопасны. Хэширование паролей или протокол TLS — что выбрать для защиты данных? Разберемся, как работают эти технологии и какие риски скрываются за каждой из них.

Читать полностью
Всего голосов 9: ↑5 и ↓4+3
Комментарии19

Создание калькулятора в Minecraft

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

Как компьютер складывает числа? Я постараюсь ответить на этот вопрос. Покажу схемы калькулятора. Расскажу о внутреннем устройстве. А также, перенесу схемы в Minecraft

Читать далее
Всего голосов 9: ↑9 и ↓0+10
Комментарии9

CI/CD для чайников — разберитесь, и начните наконец-то автоматизировать рутину в разработке. Часть1. Введение

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

Всем привет. Наверняка каждый, кто так или иначе связан с IT сферой, слышал модную аббревиатуру CI/CD. Везде мы слышим про необходимость ее использования, преимущества автоматизации процессов и т.д.

В вакансиях все чаще требуется опыт работы с одним из инструментов в этой инфраструктуре – Jenkins, Travis, AWS, Gitlab CI/CD.

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

Первые шаги

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

В целом, это будет актуально для любого стека.
Чаще всего я использую для хранения кодовой базы и групповой работе над проектами Gitlab. Очень кстати, что эта площадка предоставляет инструментарий CI/CD.

Я пытался пару лет подступиться к этому вопросу. Стильно, модно, молодежно. Да, дает кучу преимуществ. Но все попытки переварить официальную документацию, заканчивались неудачей. А видео уроки или материалы в общем доступе – чаще всего давали рецепт автоматизации какого-то конкретного кейса, который либо частично, либо полностью отличался от моего приложения.

Мне не хватало именно взгляда на основные шаги – что, зачем и как мы делаем. А уже потом реализации практических задач.

CI – continuous integration

Что же скрывается за термином "непрерывной интеграция". Когда мы работаем над созданием программного продукта – в одиночку, или в рамках команды, мы стараемся добавить в наш проект, несколько строк кода. Новый функционал, исправление или доработки. Суть не особо важна. В конечно счете – либо появляется новый код, либо появляются изменения в старом. И нам нужно убедиться, что эти новые изменения, не содержат ошибок, которые могут вызвать проблемы или неработоспособность приложения. ⛔️

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии0

Про плоскостопие

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

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

Прочитать невроятно нудную статью
Всего голосов 24: ↑23 и ↓1+28
Комментарии24

Разбираем паттерны конкурентности

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

Параллельность - выполнение задач в один момент времени на разных логических ядрах.
Конкурентность - выполнение задач последовательно, но со сменой контекста на другую задачу в ожидание завершения иной задачи. У пользователя может возникнуть иллюзия многозадачности даже в однопроцессорной системе, поскольку смена контекста происходит быстро (микросекунды).

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

Как ускорить Varnish Cache и исключить его зависания

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0+11
Комментарии4

Настройка PostgreSQL на VPS для доступа из Docker контейнера

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии9

Ускоряем каталог интернет-магазина с помощью Elasticsearch

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

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

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

Требования, которые команда сформулировала к новому каталогу:

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии11

Все в кучу PM, SM, PO, PdM — как путаница ролей разрушает процессы

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

В последние 1-1,5 месяца я просматриваю вакансии, оставляю отклики, посещаю собеседования (да, я решил найти новое дело) и заметил неприятную закономерность — примерно 7 из 10 вакансий с названием “Менеджер проекта в … сфере” по факту ищут SM или универсального солдата с функциями SM + PO + PdM. В одном случае нужен человек, который будет настраивать автоматизацию в Jira и писать JQL-запросы — по сути, Scrum Master с технической прожаркой. В другом — Product Owner уже есть, бэклог он ведёт сам, внешние коммуникации на нём, а от кандидата хотят фасилитации и контроля спринтов. Вакансия — PM, реальность — совсем другое. В итоге обе стороны теряют по паре часов на собеседование, не получая ничего, кроме вежливого «мы подумаем».

Почему же важно чётко разграничивать роли менеджеров проектов, скрам-мастеров, владельцев продукта и менеджеров продукта? Как смешение этих ролей бьёт по команде и проекту? И что делать, чтобы навести порядок? Давайте разбираться на инженерном уровне — без воды, но с иронией. Куда ж без неё, когда и в резюме у кандидатов честно написано «Scrum Master / Product Manager, 5 лет опыта».

Читать полностью
Всего голосов 7: ↑6 и ↓1+8
Комментарии4

Дистанционная фотоплетизмография: теория и практика

Уровень сложностиСложный
Время на прочтение40 мин

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

В последние годы активно развивается дистанционная фотоплетизмография, позволяющая оценить пульс на основе видеозаписи. Настоящая работа продолжает цикл статей о дистанционной фотоплетизмографии в Лаборатории искусственного интеллекта в Сбере и посвящена описанию физиологических основ и методов дистанционной фотоплетизмографии, а также предлагает сочетанное применение фильтра для устранения тренда и фильтра Чебышева 2-го типа для повышения точности измерений.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии3

Исследование уязвимостей LLM-агентов: опыт Red Teaming

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

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

Сначала об определениях. LLM Red teaming — практика тестирования больших языковых моделей (например, GPT), направленная на выявление уязвимостей, нежелательного поведения и способов их взлома (jailbreak). Суть в том, чтобы через специальные подсказки или методы обойти защитные механизмы и ограничения LLM.

Большие языковые модели (LLM) сейчас активно применяются для создания AI‑ассистентов и специализированных агентов, отвечающих на запросы и совершающих операции в различных средах (финансовые транзакции, консультирование, управление ресурсами и др.). Вместе с развитием применения растут и риски, связанные с их уязвимостями. Злоумышленники могут использовать специальные атакующие промпты (adversarial prompts), чтобы добиться от модели нежелательных или запрещённых ответов. Методическое выявление таких уязвимостей через Red Teaming позволяет понять, как можно обойти системные инструкции моделей и разработать меры защиты.

В рамках учебного курса «Безопасность ИИ» (так сложилось, что я магистрант AI Talent Hub ИТМО) я провел исследование уязвимостей LLM‑агентов в формате соревнования Red Teaming (на одной из популярных арен, по правилам арены не буду уточнять название). Цель заключалась в том, чтобы различными способами «взломать» защитные механизмы агента и заставить его выполнять нежелательные действия или раскрывать служебную информацию.

Всего в первой волне конкурса было предложено 9 сценариев атак; мне удалось успешно решить все, осуществив в общей сложности 53 успешных джейлбрейка (по разным языковым моделям) — то есть случаев обхода встроенных ограничений. Решил поделиться с Хабром опытом и подробно рассмотреть применённые техники атаки на агентов. Сами модели в рамках арены не раскрываются, но по косвенным признакам можно было понять, что там был и ChatGPT и Claude.

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии4

CodeCraft Academy: Как я создаю открытую платформу для обучения программированию

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

Привет, Хабр! Я yukk1ro, и сегодня хочу рассказать о своем проекте, который призван сделать обучение программированию более доступным и эффективным.

Читать далее
Всего голосов 3: ↑1 и ↓2+1
Комментарии3

Тестирование WebSocket+STOMP соединения через Postman

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

Всем доброго времени суток! При работе над проектом мне и команде пришлось тестировать передачу сообщений по протоколу STOMP через WebSocket соединение. Обычно для таких задач я использую Postman, который, поддерживает установление WebSocket-соединений, хоть и в beta-версии. Однако при тестировании я столкнулся с проблемой: согласно спецификации STOMP, в конце каждого фрейма должен находиться нулевой байт (NULL, 00). При этом при отправлении сообщения через Postman нулевой байт не передается корректно. В этой статье я расскажу о причинах этой проблемы и о найденным мной решении.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Электронная картина с автонастройкой яркости на C++/Qt

Время на прочтение11 мин

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

Дело в том, что я давно люблю и ценю изобразительное искусство. И также люблю изучение истории (и вообще считаю, что не программированием единым должен жить человек). И я подумал, что изучение истории и живописи можно слить в единый флакон – будет и не скучно, и полезно. Особенно полезно подрастающему школьному и дошкольному поколению. Я захотел электронную картину – чтобы выглядела как картина, а изображения бы настраивались мной, автоматически сменяясь по таймеру. Каждый день – новая картина. Каждый день – повод обсудить с сыном, как видели этот мир художники 200, 300, 500 лет назад, и вообще, а что это за разновидность палаша, аркебузы или фрегата запечатлел здесь художник. А здесь какое важное для мировой истории событие показано?

Изучив рынок электроники, я понял, что подходящего под мои требования продукта просто не найти (хотя отдаленно похожие есть, конечно). Потому я прикинул доступную мне элементную базу, расчехлил клавиатуру и принялся писать код. В итоге получилось десктоп-приложение на С++/Qt, которое я закинул на мини-ПК под Windows, а сама картина представила собой обрамленный в багет сенсорный дисплей на 18,5 дюймов с прекрасной цветопередачей. По итогу заинтересовался не только сын, но, неожиданно, и жена.

Детали под катом
Всего голосов 20: ↑20 и ↓0+23
Комментарии8

Вам бы сервер проведать

Время на прочтение13 мин

Для начинающего админа (или программиста, пошагово повторяющего по гайду известного ютубера покупку VPS на известном провайдере таких услуг) настройка Linux‑сервера может показаться чёрным колдунством или тарабарщиной в чистом виде. «Работает же.... как‑то...». А всё совсем не так просто как бы того хотелось....

В недавнем исследовании «Tunneling into the Unknown» отмечено, что из 4 000 протестированных туннелей 3 211 (80,3%) предоставляют доступ по SSH на стандартном порту 22, причём с возможностью входа под root и без элементарных ограничений.

Читать далее
Всего голосов 26: ↑24 и ↓2+22
Комментарии36

Интеграция Google Tag Manager (GTM) с Content Security Policy

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

Соответствие политикам Content Security Policy (CSP) при использовании Google Tag Manager (GTM) на сайте может быть сопряжено с рядом сложностей.

CSP блокирует загрузку внешних ресурсов, выполнение inline-скриптов и стилизации, что может вызвать сбои в работе GTM: некорректную загрузку тегов, проблемы с передачей данных или отсутствие панели отладки.

Ниже рассмотрены основные проблемы в работе GTM и возможные способы их решения.

Читать далее
Рейтинг0
Комментарии0

Пределы Формальных Систем: Теоремы Гёделя о Неполноте и Их Значение для Математики

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

Математика традиционно воспринимается как область абсолютной достоверности, где каждое корректно сформулированное утверждение либо истинно, либо ложно, и где истинность, по крайней мере в принципе, может быть установлена путем строгого логического доказательства, исходящего из набора фундаментальных аксиом. В начале XX века это представление достигло своего апогея в программе Давида Гильберта, целью которой была полная формализация математики — построение единой, непротиворечивой и полной аксиоматической системы, способной охватить все математические истины и, что немаловажно, доказать собственную непротиворечивость. Однако в 1931 году австрийский логик Курт Гёдель опубликовал работу «О формально неразрешимых предложениях Principia Mathematica и родственных систем I», которая радикально изменила ландшафт оснований математики. Его две теоремы о неполноте продемонстрировали фундаментальные ограничения формальных аксиоматических систем.

Читать далее
Всего голосов 9: ↑6 и ↓3+5
Комментарии16

Анализ факторов аттрактивности современного изобразительного искусства

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

Феномен Современного искусства с каждым днём приобретает новые, более широкие рамки и концепции. Но, их понимание и интерпретация для простого зрителя по-прежнему вызывает много вопросов.

Одними из ведущих факторов оценки искусства являются уникальность, сложность и, конечно же – стоимость.

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

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

Среди всех вариантов расчета данных мы выбрали наиболее показательные поля для оценки: регион и год создания, стиль и тема искусства, площадь, ключевые слова, а также тип материала (из которого и на котором выполнено произведение).

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

Зависимость стоимости от региона (илл.1) показывает самые дорогостоящие произведения из Центральной Америки, цена которых варьируется от 3,5 до 4,8 млн. рублей. Следом за ними - произведения стоимостью от 500 тыс. до 1.5 млн. из Южной Азии и Западно-Африканского региона.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии7

Делаем непрерывную поставку(CI/CD) в Qlik Sense

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

Привет. Расскажу, как мы решили проблему с переносом релизов из Test в Prod в Qlik Sense. Сначала немного истории. Выбор архитектуры с изолированными средами Test и Prod в Qlik Sense для нас был обусловлен следующими преимуществами:

Производственная среда высокой степени готовности, надежности за счет исключения влияния разработки, ситуации с нештатными и штатными перезагрузками системы и сервисов минимизированы. Все пользователи имеют одинаковый профиль нагрузки, использования (load pattern, usage pattern), линейная зависимость утилизации ресурсов от количества пользователей, управляемая модель планирования роста производительности и масштабируемости системы. Все пользователи, аналитики и разработчики имеют права «только чтение», вероятность ошибочных изменений объектов в системе исключена. В Prod обеспечивается подключение к источникам данных только продуктивного контура в соответствии с правилами информационной безопасности.

Среда разработки и тестирования Test, в силу решаемых задач, предусматривает менее строгие требования к доступности и надежности системы. Таким образом, не создают неудобства для основного бизнеса и допускаются ошибки при разработке, приводящие к неработоспособности системы, узлов, сервисов или деградации производительности, например, в силу разной квалификации разработчиков. Для команд внутренней разработки Компании и подрядных организаций обеспечивается возможность изолирования проектов и ресурсов на уровне групп ActiveDirectory и сетевого доступа. В Test источниками данных для Qlik являются, соответственно, КХД и другие АС в тестовом контуре. Это позволяет командам разработчиков QS и БД вести совместные разработку в соответствии с правилами сетевой связанности и информационной безопасности. Также могут решаться задачи обучения разработчиков и аналитиков на временных площадках SandBox и SelfSense.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии7