Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 45 min ago

Эволюция подходов к написанию корутин от Си до С++20. Часть 3. Использование сопрограмм при обработке событий в Linux

Mon, 12/08/2025 - 01:59

В предыдущей статье я рассматривал различные способы организации стековых корутин в языке Си. Эти сопрограммы имели чисто учебное значение так как вряд ли кто-то будет создавать генераторы последовательностей при помощи сопрограмм. Сегодня рассмотрим как писать стектовые корутины на С++ и создадим на их основе tcp сервер, обрабатывающий запросы от клиентов на основе опроса событий с использованием API мультиплексированного ввода-вывода epoll. Данная тема, на мой взгляд, является ключевой для понимания того, как функционируют современные серверные приложения, написанные при помощи таких библиотек как Boost Asio.

Читать далее

Эволюция Telegram-бота: От скрипта на коленке до асинхронной системы управления кластером (v1.13)

Mon, 12/08/2025 - 01:41

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

В этой статье я расскажу, как проект VPS Manager перерос статус «скрипта для себя» и превратился в полноценную асинхронную платформу с Web-админкой, поддержкой Docker-кластера и базой данных SQLite. Встречайте версию 1.13.0.

Читать далее

Семантический ритуал: как я извлекаю смысл из документов

Mon, 12/08/2025 - 01:19

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

далее

Искусственный интеллект без иллюзий: как не сжечь бюджет компании на хайпе (Часть 2)

Mon, 12/08/2025 - 01:17

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

Читать далее

Насколько полезны объяснения кода от SourceCraft?

Mon, 12/08/2025 - 01:00

Недавно на Хабре появилась функция "Объяснить код с SourceCraft", реакция на которую была неоднозначна из-за довольно странного решения сделать эту функцию обязательной, а не опциональной. Мусолить эту тему особо желания нет, а вот пройтись по существу хотелось бы, потому что как мы все знаем LLMки довольно хороши в коде, который уже миллион раз был выложен в открытый доступ, но вот со всякими редкими штуками есть проблемы, а еще они позвиздеть любят. В этой статье распишу как я прошёлся по сниппетам кода в двух своих статьях на хабре, попросил SourceCraft пояснить сломанные варианты этих сниппетов, и что из этого вышло. Спойлер: результат лучше, чем я предполагал, штука определённо полезная если использовать с умом.

Читать далее

Когда ТЗ перестаёт быть фикцией: практический путь к отделу системного анализа

Mon, 12/08/2025 - 00:32

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

Читать далее

Структуры данных в C++

Mon, 12/08/2025 - 00:16

Всем привет! Давно хотел собрать пост по структурам данным, которые есть в C++ и кратенько описать преимущество каждой из них.
В первой итерации статьи начнем с тех, что есть в стандартной библиотеке STL.

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

Стандартная библиотека C++ (STL) предоставляет широкий набор структур данных, каждая из них решает определённый класс задач: от линейного хранения элементов до ассоциативных структур с поиском по ключу.
В этой статье мы кратко рассмотрим основные контейнеры, их внутреннюю организацию и типичные сценарии применения.

Читать далее

Как написать код в два счёта: впрягаем Codex с GPT

Sun, 12/07/2025 - 23:45

В предыдущих статьях я показывал, как собрать вокруг GitHub Copilot полноценный рабочий процесс и как делать «снимки» проектов в JSON для ИИ. В этот раз — ещё один режим: двухшаговая разработка с GPT и Codex, где я сначала вместе с моделью оформляю нормальное ТЗ, а потом отдаю его Codex как «старшему разработчику». Без сложных агентов, с минимальным количеством действий, но с понятным результатом в коде.

Читать далее

Иллюзия 95%: гайд по самой частой элементарной ошибке в Data Science

Sun, 12/07/2025 - 22:28

Что, если я скажу тебе, что у параметра нет вероятности?

Это самая распространенная и устойчивая когнитивная ошибка в Data Science. Она встречается в курсовых, в учебниках и даже в документациях библиотек.

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

Добро пожаловать в кроличью нору частотной статистики.

Читать далее

Спасти Европу от самой себя…

Sun, 12/07/2025 - 22:03

В 2008 году экономики США и Европы были одинаковы. Сегодня США на 50% больше. Европа практически не выросла за полтора десятилетия.

Еще в 2000 году Европа была настоящим лидером в области технологий. Nokia… Siemens… Ericsson… SAP… Vodafone… Deutsche Telekom… и многое другое. Теперь, если их сравнивать с американскими компаниями, они просто посмешище. Особенно, когда дело доходит до инноваций. Большинство европейских предпринимателей стремятся переехать в США, чтобы запустить свой бизнеc/стартап.

Читать далее

Опыт использования нейросетей в практике врача терапевта

Sun, 12/07/2025 - 21:19

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

Читать далее

Самописный SDR для спутника RS44

Sun, 12/07/2025 - 21:02

Изучая вопрос наличия подходящего софта для проведения связей через популярный у радиолюбителей спутник RS44 (ДОСААФ-85), с удивлением обнаружил, что подходящей мне программы просто нет. SDR всяких написано уже не мало, но вот так чтоб работал дуплекс, при этом были разные диапазоны приёма и передачи, коррекция допплера, да ещё и разные виды модуляции на приём и передачу – такого не сумел найти. По этой причине пришлось написать свой минималистичный SDR, специально ориентированный на решение только одной задачи – проведения связей через RS44. По традиции, решил написать программу на Rust. За деталями работы программы и ссылкой на гитхаб прошу под кат.

Читать далее

7 кВт, четыре года и миллион штрафов

Sun, 12/07/2025 - 21:00

Реальная история подключения к сетям, майнерам и владельцам ферм к сведению)

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

В 2021 году ко мне обратился старый клиент. Задача по меркам энергетиков смешная — увеличить мощность всего на 7 кВт для коммерческого помещения.
Но была особенность: клиент — арендатор, а заявку нужно подавать от собственника. Торопиться некуда, для клиента, фактически это запас мощности для небольшого помещения. Мы сразу всё сделали правильно: оформили документы, подали заявку от владельца.

И тут началась история длиной в четыре года.

Читать далее

Радар для прослушки телефона с трёх метров

Sun, 12/07/2025 - 20:58

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

Группа исследователей Университета Пенсильвании разработала аппаратно-программный комплекс WirelessTap, который снимает звук по вибрации телефона. Это принципиально новый способ прослушки, который не использовался ранее.

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

Читать далее

Direct2D #5. Продолжение темы геометрии ID2D1Geometry и дочерние классы

Sun, 12/07/2025 - 20:44

Продолжаем рассматривать инструмент для манипуляций с геометрией в Direct2D. Просто и понятно.

Читать далее

Три способа менять один объект из нескольких потоков. Больше нет

Sun, 12/07/2025 - 20:42

Три способа менять один объект из нескольких потоков. Больше нет

Mutex, CAS, акторы, STM, CRDT, иммутабельность, MVCC, Disruptor…

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

На самом деле их ровно три. Всё остальное — реализации и комбинации.

Эта статья — попытка навести порядок в голове. После неё вы сможете:

за 5 секунд классифицировать любой подход к конкурентности;
понимать, почему Erlang выбрал акторы, а Java предлагает synchronized;
не изобретать велосипеды и не зацикливаться на «единственно правильном» решении;
проектировать многопоточный код, держа в голове простую модель.

Заодно, покажу почему ООП вообще не было изначально спроектировано под многопоток.

Читать далее

Олимпиады — всё?

Sun, 12/07/2025 - 20:13

Думаю, что среди читательской аудитории Хабра многих бывших (а возможно, и действующих) олимпиадников, поэтому решил поделиться с сообществом наблюдениями и размышлениями об актуальных проблемах олимпиадного движения в стране. Коротко о том, какое я имею отношение к олимпиадному движению и почему считаю себя в праве публично высказываться на эту тему: я сам бывший олимпиадник (призёр Всероса по информатике), 15 лет веду кружки по информатике и программированию и, в том числе, готовлю школьников к выступлению на олимпиадах, среди моих учеников призёры Всероса по информатике, ВКОШП и других олимпиад по информатике и программированию, кроме того вот уже 10-ый год подряд я участвую в подготовке и проведении школьного и муниципального этапа ВсОШ по информатике в своём регионе.

Позавчера после опубликования результатов муниципального этапа по информатике этого года мама одного из участников прислала мне сообщение: "Я хочу сказать вам спасибо за дисквалы. Потому что списывание достигло какого-то маразма. И по другим предметам вообще ничего не боятся и ничего не стесняются". Речь идёт о том, что мы дисквалифицировали большое количество участников муниципального этапа за списывание друг у друга и за использование искусственного интеллекта при решении задач. В олимпиадах по информатике всё, что делает участник, фиксируется в тестирующей системе, и мы, жюри, имеем возможность анализировать это и на основании определённых критериев делать вывод о несамостоятельности выполнения работы. В силу специфики профессии мы, информатики, во-первых, имеем технические возможности бороться со списыванием, а, во-вторых, воспринимаем сложившуюся ситуацию как некий вызов, которому интересно попытаться что-то противопоставить. Но ситуация постепенно ухудшается. Ниже статистика дисквалификаций на муниципальном этапе ВсОШ по информатике по 9-11 классам по нашему региону:

Читать далее

Как LLM-вендоры обращаются с вашими данными: подробный разбор безопасности и конфиденциальности

Sun, 12/07/2025 - 20:10

Привет, Хабр! Я Андрей Яковлев, исследователь в области информационной безопасности. Работаю с корпоративными AI‑сервисами и активно внедряю технологии искусственного интеллекта в продукты Positive Technologies.

2025 год перевернул привычные ожидания и практики, связанные с конфиденциальностью больших языковых моделей (LLM) Представьте ситуацию: вы технологическая компания, которая несколько лет использует ChatGPT для быстрого прототипирования и поддержки клиентских запросов. Раньше казалось, что раз диалог удалён — значит, данные исчезают навсегда. Но в мае 2025 года федеральный суд США в рамках искового дела The New York Times к OpenAI поставил точку в этом заблуждении — OpenAI обязали бессрочно хранить все пользовательские данные (включая удалённые через пользовательский интерфейс).

В этой статье я разберу различные LLM-ки и расскажу, как их разработчики решают проблему конфиденциальности. Предупреждаю – достанется всем :)

Исследование охватывает западных вендоров (OpenAI, Anthropic, Google AI, GitHub Copilot), российские решения (GigaChat, YandexGPT), китайскую платформу DeepSeek, а также ключевых провайдеров-агрегаторов (OpenRouter, Cursor, Windsurf). Анализ включает детальное сравнение политик для частного и корпоративного использования, документированные случаи утечек данных и их последствия, а также практические рекомендации по выбору решений в зависимости от требований к безопасности данных.

Читать далее

Open source-стратегии: кейс OpenIDE и специализированного консорциума компаний Haulmont, Axiom JDK и Группы Астра

Sun, 12/07/2025 - 20:10

Продолжаю делиться примечательными кейсами открытых проектов и разборами корпоративных open source-стратегий. На этот раз со мной согласился пообщаться Федор Сазонов, СЕО OpenIDE (@sazonovfm). Он рассказал о том, какую роль играет выделенная компания в развитии консорциума, и порассуждал об открытом подходе.

Читать далее

GUCA: эволюция на графах («Живые графы» 2.0)

Sun, 12/07/2025 - 20:05

Где проходит граница между случайностью и замыслом? Почему в наших ДНК куча мусора? Можно ли воспроизвести эволюцию в машине, и как зарождалась жизнь? Хотя и на последний вопрос ответа нет, но мы можем создать эксперимент, который позволяет моделировать механизмы эволюции с нуля. О таком эксперименте из области Artificial Life (искусственной жизни, где эволюция идёт внутри компьютера) и пойдет речь сегодня.

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

GUCA (Graph Unfolding Cellular Automata) — один из таких маленьких миров: в нём мы выращиваем “организмы” из узлов и рёбер графа.

Читать далее

Who's online

There are currently 0 users and 0 guests online.