Все потоки
Поиск
Написать публикацию
Обновить
369.56

Open source *

Открытое программное обеспечение

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

Боремся с хедкрабами в исходниках Source SDK

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

GameDev тернист и неисповедим. Как и любой проект, он проходит испытания кровью и потом, сражаясь с тварями, тьмой порождёнными: барнаклы, пиявки, муравьиные львы. И это ещё не сказочка, это только смазочка. Больше всего стоит остерегаться жуков хедкрабов. Да, это те самые баги в коде. Если их вовремя не убить монтировкой, то ваша участь — стать отвратительным кадавром. Предлагаем читателю побывать в роли Гордона Фримена, погрузиться в недры Source SDK и побороться с хедкрабами. В качестве монтировки же выступит PVS-Studio.

Читать далее

Как проверить время и асинхронный код в Go

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

Команда Go for Devs подготовила перевод статьи о пакете synctest, который с Go 1.25 стал частью стандартной библиотеки. Он позволяет писать быстрые и надёжные тесты для конкурентного кода, не усложняя сам код. Теперь асинхронные операции можно проверять без долгих ожиданий и флаки-тестов.

Читать далее

Куб рабочего стола и прочие эффекты на Fedora 42: Liquid Glass от Apple отдыхает

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

Пару дней назад я поймал себя на мысли: «раньше было лучше». Но когда я попытался сформулировать причину, вывод был однозначен. Мне не хватает давно забытого чувства, когда операционная система выглядит футуристично, а эффекты рабочего стола разительно отличаются от привычных для пользователей интерфейсов Windows и macOS.

В то время как Apple с невероятным апломбом заявляет об уникальности своего Liquid Glass, я вспомнил о Compiz Fusion и Emerald, дающих широкие возможности кастомизации рабочего стола. Эта замечательная пара приложений, на мой взгляд, была незаслуженно забыта. Мне захотелось посмотреть, насколько будет хорошо смотреться современная Fedora Linux, если вернуть ей эффекты из далекого прошлого.

Читать далее

Как локально и бесплатно распознать текст лекции или совещания и делать это регулярно

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

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

Лично мне идея тотальной записи кажется избыточной. Зато куда практичнее другая задача: получить точную текстовую расшифровку лекции, доклада или публичного выступления. Чтобы потом не переслушивать часы аудио, а быстро найти нужную цитату или мысль простым поиском по тексту.

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

Сердцем решения станет OpenAI Whisper — мощная технология распознавания речи от создателей ChatGPT. Главное её преимущество — она может работать полностью автономно на вашем ПК, не отправляя никуда ваши данные. К тому же Whisper распространяется как open‑source: исходный код и модели доступны бесплатно — вы можете скачать, использовать и при необходимости даже модифицировать.

Мои скрипты выложены на GitHub.

Кто что сказал

Мультиплеер в Цивилизации 5

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

Некоторое время назад я участвовал в разработке поддержки мультиплеера для одной глобальной модификации Цивилизации 5 и сегодня хотел бы поделиться здесь некоторыми подробностями о том, как устроена сетевая игра, как всё-таки запустить ее с модами, что с ней вообще не так, и как мы это фиксили.

Читать далее

Знакомство с программным USB на CH32V003

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

Давно хотел сделать устройство с USB, но больше всего мне казалось интересным это использовать программное USB. И для микроконтроллера CH32V003 давно существует библиотека rv003usb, которая решает эти задачи. В этой статье можно было бы рассказать как делать простейшее USB-устройство на основе её, но эта библиотека заметно больше и предлагает, помимо самой библиотеки, несколько полноценных рабочих программ: загрузчик и программатор.

Изначально я думал написать статью после создания готового устройства, но пока им занимался столкнулся с тем, что информации получается много и она интересная, поэтому решил разбить это все на части. Это первая, ознакомительная. Я как всегда начал разработку с прототипов и сделал тестовые платы с USB, чтобы “прощупать почву” и про них сегодня будет разговор. Но ради интереса еще попробуем загрузчик и соберем программатор из этой же библиотеки.

Попробуем сделать свой Digispark!

Читать далее

Добавляем жестовое управление в Windows

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

Простейший способ распознавания жестов – обработка направлений: задаём набор допустимых, каждые n пикселей сдвига мыши фиксируем направление нового сегмента и сравниваем получившуюся последовательность с эталонными паттернами вида ↑ ↑ ↓ ↓ ← → ← →.

Современный – машинное обучение, конечно. Это самостоятельная категория со своими алгоритмами и правилами.

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

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

👇👆

Ваш GitHub — ваш личный бренд

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

Закодили очередную фичу для продукта, который увидят пара тысяч пользователей вашей компании? Написали скрипт, который сэкономил кучу времени, но всем плевать? Чувствуете, что ваше имя как инженера теряется где-то между Jira-тасками и код-ревью?

Да-да, что-то такое я знаю: это примерно каждый первый программист. Оу, вам много платят? Вы настоящий-пренастоящий сеньор? Извините, ни разу о вас не слышал и вряд ли услышу.

А теперь прочтите имена этих людей:
Линус Торвальдс. Ричард Столлман. Гвидо ван Россум. Брэм Моленаар. Джеймс Гослинг.

Они вам о чём-то говорят? Вы слышите их не первый раз? Ещё бы. Ведь это люди, изменившие, без сомнения, целый мир.

Что их всех объединяет? Они не стали знаменитыми, потому что удачно устроились в FAANG (ну или Съелбанк, Тындекс) и вовремя закрыли квартальный OKR. Нет. Они создали проекты с открытым исходным кодом, которые стали фундаментом всего, что мы используем сегодня. Вы бы узнали имя Линуса, если бы он просто тихо перекладывал JSON'ы для какой-нибудь корпорации? Вопрос риторический.

Погрузиться в мир Open Source!🐧🐧🐧

Как я пытался засунуть gRPC в браузер — часть первая

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

Одна из самых основных проблем в работе с gRPC - необходимость наружу вытаскивать отдельно REST API для web клиента, но, надо ли отдельно его писать, или можно как-то унифицировать и эту историю?

И вот начал я копать эту тему, и чем глубже копал, тем больше удивлялся. Оказывается, за последние почти 10 лет было целых ТРИ ЧЕТЫРЕ серьезных попытки затащить gRPC в веб. И знаете что самое смешное? Самая первая попытка, сделанная в 2015 году японкой-одиночкой (в команде с коллегами), до сих пор остается самым адекватным решением. А Google со всеми своими миллиардами и армией разработчиков так и не смог ничего нормального придумать. Но обо всем по порядку.

Ах, да, меня зовут Эдгар Сипки, я все также евангелист gRPC && OpenSource :) Кстати, мой канал, там я гораздо чаще пишу (а скоро еще и начну снимать очень много крутого контента про gRPC и Go), ну и конечно один из основателей инструмента EasyP

Ссылка на полный доклад, если хочется посмотреть - YouTube

Читать далее

Как мы нашли уязвимость в Mailcow, или немного о безопасности в open source

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

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

Но независимо от выбранного подхода нужно полагаться только на себя и самостоятельно проверять безопасность всех компонентов, которые вы внедряете в инфраструктуру. Даже если речь идет о популярном проекте с тысячами звезд на GitHub…

Привет, Хабр! Меня зовут Наташа Баранова, я специалист по анализу защищенности веб-приложений в Selectel. Сейчас расскажу, как мы нашли критическую уязвимость в одном из open source-проектов с 10 000 звезд.

Читать далее

Обзор нововведений Kubernetes 1.34: новая YAML-конфигурация и отслеживание здоровья устройств при DRA

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

Сегодня официально выпустили новую версию Kubernetes — 1.34. Собрали обзор со всеми изменениями. Среди главных нововведений — отслеживание здоровья устройств при DRA, тонкая настройка рестарта контейнеров в подах, асинхронная обработка API-вызовов, нативная доставка сертификатов X.509 в поды и новая разновидность YAML для описания конфигураций.

Читать далее

Новый релиз публичного детектора голоса Silero VAD v6

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

На Хабре уже было аж 3 статьи про развитие нашего публичного детектора голоса Silero VAD (последняя тут). А вот что стало лучше в этот раз:

Хочу узнать!

Больше не нужен рестарт: как Kubernetes позволяет менять ресурсы контейнеров «на лету»

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

Теперь ресурсы контейнеров в Kubernetes можно менять «на лету» — без перезапуска и простоев. В статье рассказываем, как работает in-place resize, где эта функция реально спасает приложения от перегрузки и какие ограничения стоит учитывать на практике.

Читать далее

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

Добавление OCR-слоя и другие преобразования PDF

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

При сканировании и сохранении в формате PDF зачастую документы сохраняются в виде графических изображений. Это неудобно, потому что делает невозможным полнотекстовый поиск по содержанию. Утилита OCRmyPDF решает эту проблему: она одной командой из консоли добавляет к PDF-документу слой OCR с распознанным текстом.

Ниже упомянуты ещё несколько полезных инструментов для парсинга PDF, в том числе для преобразования сложных математических PDF-документов в текстовый формат Markdown.

Читать далее

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

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

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

Сама по себе задача кажется очевидной: собирать события, обновлять профили, обеспечивать быстрое считывание информации. Но если заглянуть под капот, начинается настоящее инженерное приключение. Сотни тысяч событий в секунду, требование обработки в режиме exactly‑once, жёсткие ограничения по времени отклика, компромисс между скоростью и экономией ресурсов, и всё это — на фоне необходимости работать надёжно и с горизонтальным масштабированием.

Меня зовут Руслан Савченко, в Yandex Infrastructure я руковожу разработкой динамических таблиц YTsaurus — системы, в которой поведенческий таргетинг хранит данные. В этой статье я подробно разберу кейс поведенческого таргетинга с динтаблицами: почему таблицы в памяти иногда тормозят из‑за аллокатора, зачем мы внедрили xdelta, как именно устроены агрегатные колонки и что пришлось сделать, чтобы миллисекунды отклика в 99,9 перцентиле стали реальностью.

Читать далее

Как я оцифровал семейный архив

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

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

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

Читать далее

Анализ лиц с домофона: как я победил несовместимости и собрал dlib+CUDA на Ubuntu — готовый скрипт

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

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

Домофонная камера всё записывает, но вручную пересматривать часы видео бессмысленно. Мне стало интересно: можно ли разово прогнать архив записей через алгоритмы компьютерного зрения и посмотреть, как быстро GPU справится с такой задачей.

Это был чисто экспериментальный проект: не «система слежки», а тест производительности и возможностей CUDA в связке с dlib и face_recognition.

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

Проект выложен на GitHub.

CUDA

Как и почему бизнес в 2025-м переходит с Windows на Linux

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

Мир ИТ в 2025 году стоит на пороге перемен: бизнес по всему миру постепенно выбирает Linux вместо Windows. Это не всплеск, а устойчивый, стабильный тренд. Причины чаще всего — безопасность, экономия и стремление к независимости от проприетарного ПО. Сегодня разберем, почему компании делают ставку на Linux, насколько выросла его популярность, какие препятствия встречаются на пути перехода и что ждет открытую ОС в будущем.

Читать далее

Joomla исполнилось 20 лет. Поздравления с юбилеем от сообщества

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

17 августа 2025 года Joomla исполнилось 20 лет! Для мира IT-технологий это внушительный возраст. CMS проделала большой путь, выросла и стала совершеннолетней. К юбилею возникла идея сделать серию интервью (и небольшой флешмоб) с видными участниками русскоязычного сообщества Joomla: теми, кто когда-то был активным и сделал большой вклад в развитие Joomla и теми, кто делает это сейчас.

Joomla 20 лет!

Kaisen Linux официально закрыт: что теряют сисадмины и какие есть альтернативы

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

Линейка дистрибутивов Linux для профессионалов снова сужается: проект Kaisen Linux, созданный в 2019 году для системных администраторов и ИТ-специалистов, прекратил своё существование с релизом версии 3.0. Французский разработчик Кевин Шеврей объявил, что у него больше нет времени на проект из-за личных и профессиональных приоритетов. В отличие от внезапной смерти Clear Linux от Intel, Kaisen будет получать патчи безопасности ещё два года, давая пользователям время на переход. Чем был уникален этот дистрибутив, почему его закрытие важно и что делать дальше — разбираемся в статье.

Читать далее

Вклад авторов