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

Разработка

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

Линус Торвальдс жёстко разнёс регистронезависимые ФС

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

Линус Торвальдс сегодня в привычной для себя прямой и резкой манере высказался о файловых системах с поддержкой case folding (регистронезависимых файлов и папок).

Поводом послужила проблема с поддержкой case folding в Bcachefs, обнаруженная на этой неделе и уже имеющая фикс для Linux 6.15. Линус написал огромное сообщение в рассылке разработчиков Linux (LKML), изложив своё мнение о реализации case folding.

Стоит отметить, что проблема с case folding в Bcachefs — не первая для Linux: ранее уже возникали баги, связанные с обработкой эмодзи и других специальных символов Unicode.

Читать далее

Новости

Гибкий поиск в Spring Data Elasticsearch: Превращаем «првт мр» в «Привет, мир!»

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

Всем привет! Меня зовут Артемий Иванов, и это моя первая статья на Хабре. В ней я хочу поделиться опытом, который получил, работая над задачей кастомизации поиска.

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

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

Читать далее

О том как я писал компилятор C на Python

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

Сегодня вы узнаете как же было хорошо что названия этой статьи было не "Как сделать компилятор C на Python" ведь когда я делал его то я не знал как сделать компилятор C на Python.

Читать далее

Обобщенный алгоритм Дейкстры

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

Хочу поделиться знанием, которое не является секретом, в каких-то курсах по алгоритмам оно наверняка дается, но нагуглить его совсем не просто. Поэтому пусть будет.

Алгоритм Дейкстры можно обобщить на произовльную функцию длины пути, если только она удовлетворяет трем условиям:

Монотонность. При добавлении ребра к пути, его длина не уменьшается.

Консистентность. При добавлении одинакового ребра к путям одинаковой длины, получившиеся новые пути имеют одинаковую длину.

Оптимальность префикса. Если к двум путям приписать одинаковое ребро, то кратчайший путь останется кратчайшим.

Под катом я привожу доказательство корректности обобщенного алгоритма и показываю, как его применить в задаче на литкоде: Trapping rain water II.

Читать далее

Определение bpm (beats per minute) в браузере

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

Когда-то я занимался спортивными парными танцами. Часто на тренировках была необходимость узнать темп (или скорость, если немного подушнить насчёт терминов) играющего трека, который измеряется в «ударах в минуту» (beats per minute, bpm)

Спортсмены используют для этого разные сайты/приложения, где нужно пальцем «протапать» ритм. Я и сам таким пользовался, но однажды я задался вопросом — смогу ли я сделать браузерный сервис, который сможет определять bpm из записанного через микрофон аудио

Эта статья как раз о том, как я его сделал

Я не буду вдаваться в тонкости реализации непосредственно UI: у меня уже был на момент начала разработки пет-проект на React, и сервис я решил делать на базе него.

Читать далее

Интеграция Kafka с Manticore Search: пошаговое руководство по обработке данных в реальном времени

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

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

При импорте данных в Manticore вы можете гибко их обрабатывать:

Читать далее

Рекомендации по сбору и приоритизации требований для бизнес-аналитика

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

— Голдстейн. 

— Да, мистер Старк. 

— Дай мощный бит, под который я буду бить лучшего друга, писать эту статью. 

©Железный человек

Привет, Хабр! Меня зовут Дмитрий Сушков, последние 5 лет работаю железным человеком бизнес-аналитиком. Сегодня поговорим про одну из самых важных задач бизнес-аналитика (BA) — сбор и приоритизацию требований. Эта область довольно мутная, ибо редко бывает единый правильный подход. На каждом проекте есть свои «острые углы»: как договориться с заказчиком, прояснить его реальные потребности, оформить требования так, чтобы их поняли все участники, и при этом успеть всё в срок. Это как разжигать костёр в ливень, в открытом поле, пробовали?) И не стоит. 

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

Эта статья будет полезна:

Читать далее

Endless Fun Machine: бесконечный генератор смешных картинок

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

Может ли ИИ шутить? Я провел эксперимент, чтобы ответить на этот вопрос.

В этой статье я расскажу, как я научил ИИ генерировать смешные картинки с нуля.

Читать далее

Оптимальная настройка Postgres Pro в один клик с pgpro_tune

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

Представьте знакомую ситуацию: утро понедельника, задачи сыпятся одна за другой. Перед вами задача срочно развернуть новый сервис на базе Postgres Pro. Или, возможно, в эти выходные вы обновили железо своего сервера базы данных, увеличили количество CPU и объём RAM. Расскажем, как быстро привести СУБД в состояние, оптимально подходящее новому оборудованию и текущим нагрузкам.

Читать далее

Ох уж эти скрытные ботнеты

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

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

IP-адреса, с которых происходят попытки использовать мой сервер для отправки спама

IP-адреса, с которых совершаются попытки подобрать имя пользователя/пароль для авторизации на моём почтовом сервере и рассылки спама
Читать дальше →

Процессоры ARM: смешиваем NEON с SVE — и забава, и польза

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

Большинство мобильных устройств используют 64‑битные ARM‑процессоры. Однако они все заметнее и на серверах. Их число неуклонно растет, и все больше компаний, включая таких гигантов, как Amazon и Microsoft, также переходят на 64‑битные ARM.

У этих процессоров есть специальные инструкции — ARM NEON. Они обеспечивают параллелизм, известный как SIMD — Single Instruction, Multiple Data, то есть «Инструкция одна, данных множество». Например, можно сравнить шестнадцать одних значений с шестнадцатью других с помощью всего одной такой инструкции.

Некоторые из самых последних процессоров ARM также поддерживают еще более продвинутый набор команд — SVE, Scalable Vector Extension, или «Масштабируемое векторное расширение». Прогресс не останавливается — и вот уже появились спецификации SVE 2 и SVE 2.1.
Читать дальше →

Нужен ли играм фотореализм?

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

Сегодня фотореалистичную графику пытаются воплощать даже небольшие инди-команды. Unreal Engine 5 предоставил для этого все необходимые инструменты: от огромной библиотеки высококачественных ассетов до генераторов готовых персонажей и даже локаций. С другой стороны, индустрия знает немало примеров игр со стилизованной картинкой из прошлого и позапрошлого десятилетий, которые отлично выглядят до сих пор.

Так стоит ли продолжать гонку за фотореализмом? Или сегодня она скорее продолжается по инерции?

Читать далее

Как мы упростили обновление СУБД Pangolin: показываю бэкенд решения

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

Привет, Хабр! Меня зовут Николай Литковец, я инженер-разработчик в СберТехе, развиваю СУБД Pangolin — это реляционная СУБД, целевая в Сбере и не только. До недавнего времени у нас было два типа обновлений СУБД — минорное и мажорное. Минорное обновление — быстро и сравнительно просто, мажорное — долго, муторно, со значительными затратами ресурсов сервера. Мы стали думать, можем ли мы где-то обойтись без перехода на мажорные версии? Нашли сценарий, где это было возможным и через время у нас появилось минорно-мажорное обновление, которое теперь экономит нам силы и время. В этой статье расскажу про создание инструмента, который позволил нам устроить эту реформу, как мы его делали и обходили риски и что нам это дало.

Читать далее

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

Защита подводных интернет-кабелей: новый вызов или старая песня?

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

17 и 18 ноября 2024 года в Балтийском море случился неприятный инцидент: были повреждены два телекоммуникационных кабеля. Один BCS East-West Interlink, соединяющий Литву и Швецию, и C-Lion1 — между Финляндией и Германией. Это вызвало серьезные проблемы с доступом к интернету для некоторых пользователей.  Работоспособность одного кабеля оперативно устранили, буквально через 10 дней, и проблема с доступом разрешилась. Но остался открытым вопрос: что это было? Диверсия или случайное повреждение? Политики поспешили обвинить в этом Россию и Китай — особенно с учетом того, что маршрут судна Yi Peng 3 как раз проходил в этом районе.  И это далеко не единичный случай. Например, в январе 2025 года тот же кабель C-Lion1 повредило якобы уже судно, перевозившее нефть. Давайте посмотрим, насколько это серьезная угроза и как защищают подводные кабели в целом. 

Читать далее

Тень уязвимости: fake exploit как зеркало реальных техник

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

Я пишу о том, как создала fake exploit за 7k $ - фейковая уязвимость, которая не наносит вреда, но выглядит как реальный эксплойт. Это не просто пранк, а образовательный инструмент, позволяющий понять структуру эксплойтов, изучить уязвимости и их демонстрацию. Рассматриваются out-of-bounds write, JIT spray, а также показывается, как можно создавать видимость опасных действий, не причиняя реального ущерба. 

Читать далее O_0 ...

С чего стоит начать защиту кластера Kubernetes. Какие индикаторы помогут обнаружить злоумышленника

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

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

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

Читать далее

Реализация концепции Сотрудник-Трудоустройство-Назначение на должность в IDM Midpoint part 2

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

Продолжаем реализацию концепции Сотрудник-Трудоустройство-Назначение на должность в IDM Midpoint. В первой части мы настроили носители информации и пути её перетекания из профиля сотрудника в трудоустройства и назначения из кадрового источника. Теперь будем делать тоже самое с ролями. Нам потребуется еще две концепции Forward роли и nickNmae как роль.

Читать далее

Offline First в мобильных приложениях. CRUD на стороне клиента

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

Привет, Хабр! Это Ахмед Шериев, сооснователь стартапа VoxOps, а сегодня — еще и гостевой автор блога Friflex. Это вторая статья про мой опыт разработки офлайн-приложений — первая была про кэширование.

Если пользователи в офлайне должны менять данные, а потом синхронизировать изменения с сервером, есть два основных подхода. Первый — синхронизировать сами данные. Второй — синхронизировать команды или события.

Читать далее

Поверхности второго порядка: гиперболоиды и параболоиды, которые держат небо

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

Привет, меня зовут Диана, я математик, а еще пишу для хабраблога МТС. В прошлый раз я рассказывала про кривые второго порядка. Сегодня хочу продолжить и обобщить тему, перейдя в 3D.

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

Читать далее

Поиск в поиске: проверка Elasticsearch

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

Один из самых больших проектов на Java в Open Source. Elasticsearch используется во многих крупных организациях, таких как GitHub, Альфа-Банк, Тинькофф, Netflix и Amazon. Шесть лет назад мы уже проверяли проект, но интересно, какие новые ошибки появились за столь долгое время?

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