All streams
Search
Write a publication
Pull to refresh
-15
0

Пользователь

Send message

Как отслеживать состояние сетевых интерфейсов на Linux с помощью netlink

Level of difficultyMedium
Reading time29 min
Views16K

Всем привет! Меня зовут Тимур, в компании YADRO я разрабатываю ПО для коммутаторов KORNFELD. Однажды на работе мне потребовалось написать программу для включения прослушивания интерфейсов, которые удовлетворяют определенной конфигурации системы. Старшие коллеги сказали, что это можно сделать с помощью netlink. Я начал разбираться в этой технологии с нуля, потратил больше двух месяцев на изучение протокола, написание обработчика и хочу поделиться своим опытом. 

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

Читать далее

Новые исследования о пределах математической истины и границах математического знания

Reading time10 min
Views2.5K

О десятой проблеме Давида Гильберта и границах познаваемости истины в математике. Современные исследования.

Читать далее

Многопоточное программирование на C

Level of difficultyMedium
Reading time13 min
Views16K

Привет хабр! Новичок в написании статей, но никогда не поздно начать. Объемный гайд по функциям pthreads для людей знающих базы C/C++.

Читать далее

Использование ChatGPT o3-mini и DeepSeek при создании iOS приложения Countries “Страны Мира”

Level of difficultyMedium
Reading time47 min
Views4.2K

Что делает «животворящая» конкуренция?

Появление DeepSeek, позволило бесплатным подписчикам ChatGPT получить доступ к «рассуждающей» ChatGPT o3-mini.

Я предложила этим двум ИИ создать довольно простое на первый взгляд тестовое iOS приложение Countries, которое показывает все страны Мира по регионам (Европа, Азия, Латинская Америка и т. д.) и для каждой страны её название и флаг, a также численность населения population, размер ВВП (валового внутреннего продукта) gdp и расположение страны на карте Мира.

Использовались данные Всемирного банка (World Bank), но мы не сообщали ИИ ни сайты, ни структуры данных, всё это ИИ должен найти сам и использовать их при создании iOS приложения.

Раньше я отдавала предпочтение Clause 3.5 Sonnet при создании iOS приложений, прибегая к ChatGPT 4.o1 для решения отдельных проблем. Но появление «рассуждающих» ChatGPT o3-mini и DeepSeek изменили всё.

iOS разработка поднялась на новый уровень, и пока лидером в этой гонке для меня является ChatGPT o3-mini (даже в бесплатном варианте). Он способен вас приятно удивить.

Читать далее

Ад — это чересчур уверенные в себе разработчики, пишущие собственную криптографию

Level of difficultyMedium
Reading time7 min
Views37K

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

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

Я заметил такую тенденцию (как в примере с Session): разработчики некорректно утверждают, что не реализуют собственную криптографию, ведь они используют низкоуровневую криптографическую библиотеку.

Эта ошибка свойственна не только сомнительным приложениям, форкающим мессенджеры со сквозным шифрованием, чтобы вырезать прямую секретность (forward secrecy).
Читать дальше →

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

Level of difficultyEasy
Reading time9 min
Views12K

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

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

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

В общем ровер милый, выполнен неплохо и тут можно было бы остановиться, но в моей голове промелькнула одна мысль:

«А может сделать его управляемым?»

В этой статье я расскажу, как модифицировал игрушечного робота-доставщика Яндекса и реализовал управление им по BLE с помощью мобильного приложения на Flutter.

Читать далее

Perforator: новая система непрерывного профилирования теперь в опенсорсе

Level of difficultyMedium
Reading time21 min
Views42K

Привет! Сегодня мы выложили в опенсорс Perforator — систему непрерывного профилирования (continuous profiling), которую используем внутри Яндекса для анализа производительности большинства сервисов.

В Github-репозитории доступен исходный код системы и инфраструктура для развёртывания своей инсталляции Perforator на кластере Kubernetes. Кроме того, Perforator можно использовать на своём компьютере как более простую замену perf record: профили получаются точнее, а оверхед меньше. Исходный код доступен под лицензией MIT (и GPL для eBPF-программ) и запускается под x86-64 Linux.

При помощи Perforator и прошлых подходов к задаче профилирования мы регулярно оптимизируем самые крупные сервисы в Яндексе, например Баннерную крутилку или Поиск, на десятки процентов. Кроме того, Perforator реализует недостающий в опенсорсе компонент профилирования для простой автоматической оптимизации программ с использованием profile-guided optimization. Наши тесты показывают, что использование PGO даёт ускорение около 10% в разных сценариях.

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

Читать далее

Заговор разработчиков против корпораций: архитектура и принципы

Level of difficultyMedium
Reading time14 min
Views14K

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

— Нет никакой организации! — вопили они.

Подозреваю, что слежка велась через мой телеграм-канал.

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

Узнать тайны, о которых молчали

Методы определения принадлежности точки многоугольнику

Reading time9 min
Views80K
Недавно на хабре была статья, в которой описывалось как можно определить, где находится точка по отношению к многоугольнику: внутри или снаружи. Подобная проблема встречается в геометрическом моделировании и в компьютерной графике достаточно часто. А так как метод, описанный в статье, был несколько не оптимален, а в комментариях был небольшой хаос, возникла мысль написать эту статью. Итак, какие алгоритмы существуют в современной компьютерной графике, чтобы определить, принадлежит ли заданная точка многоугольнику или нет.
Читать дальше →

Про лайфхаки в изучении языков

Reading time5 min
Views20K

По-моему, количество статей и видео вокруг тем «как учить язык» и «как учить язык самостоятельно» стало уже запредельным на всех площадках. В комментариях без устали ломаются копья. Обсуждения эти, в общем, ни на что не влияют и продолжаться могут сколь угодно долго, потому что перепутано там примерно всё: что такое «знать язык», что такое «говорить», «воспринимать на слух» и т.д. и т.п. Попробуем пораспутывать.

В последнее время распространилась позиция (часто даже агрессивная): «Чё вы лезете со своим «правильным изучением»? Язык мне нужен для работы, а не для изучения. Доносить и понимать мысли мне достаточно. Да, иногда на уровне «моя спортзал ходить», но меня понимают! А в грамматике своей сами копайтесь!».

Ничего не имею против, но у меня вопрос. Для детей своих вас тоже устроит «моя спортзал ходить»?

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

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

«Личный опыт», истории успеха в изучении языков неэкстраполируемы в принципе, потому что там сплошные неизвестные:

полтора, если все действия точно просчита

Читать далее

Ему исполнилось 55, когда он основал самую важную компанию в мире. Удивительная история Морриса Чанга

Level of difficultyEasy
Reading time6 min
Views30K

Самые дорогие технологические компании в мире были основаны в общежитиях и гаражах очень молодыми предпринимателями. Биллу Гейтсу было 19. Стиву Джобсу — 21. Джеффу Безосу и Дженсену Хуангу — 30.

Но, возможно, самая бесценная компания в мире была основана Моррисом Чангом, когда ему было 55 лет.

Никогда еще кто-нибудь в столь зрелом возрасте не создавал бизнес, стоящий столько же, сколько Taiwan Semiconductor Manufacturing. Компания, известная просто как TSMC, производитель чипов – основных комплектующих для компьютеров, телефонов, автомобилей, систем искусственного интеллекта и многих устройств, которые стали частью нашей повседневной жизни.

Читать далее

Интегрируем команды Linux в Windows с помощью PowerShell и WSL

Reading time8 min
Views19K
Типичный вопрос разработчиков под Windows: «Почему здесь до сих пор нет <ВСТАВЬТЕ ТУТ ЛЮБИМУЮ КОМАНДУ LINUX>?». Будь то мощное пролистывание less или привычные инструменты grep или sed, разработчики под Windows хотят получить лёгкий доступ к этим командам в повседневной работе.

Подсистема Windows для Linux (WSL) сделала огромный шаг вперёд в этом отношении. Она позволяет вызывать команды Linux из Windows, проксируя их через wsl.exe (например, wsl ls). Хотя это значительное улучшение, но такой вариант страдает от ряда недостатков.
Читать дальше →

Маскирование данных от А до Я

Level of difficultyEasy
Reading time14 min
Views8.3K

Всем привет! Меня зовут Светлана Анохина, я младший бизнес-партнёр по информационной безопасности в Ozon. Несмотря на небольшой стаж, опыт работы у меня довольно разносторонний, ведь моя роль предполагает участие практически во всех аспектах безопасности (если интересно, кто такие бизнес-партнёры по ИБ, то рекомендую почитать статьи моих коллег Даши или Максима на эту тему).

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

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

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

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

За время своей работы в e-commerce-компаниях я собрала некоторый перечень подходов и инструментов защиты, которые реализую в своём направлении. Сегодня я хочу рассказать о маскировании вам, моим коллегам, которые так же, как и я, стремятся сделать данные безопасными, а жизнь пользователей — спокойной.

Читать далее

Делаем быстрый, качественный и доступный синтез на языках России — нужно ваше участие

Level of difficultyEasy
Reading time1 min
Views2.8K

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

В этом году мы делаем проект Фонда Бортника по разработке модели синтеза речи языков России и СНГ. Возможно, нас на Хабре вы знаете по статьям про синтез речи, детектор голоса или через одного популярного бота для озвучки в Телеграме (на всякий не буду ссылку прикладывать).

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

По итогу проекта планируется публикация общедоступных моделей синтеза языка под свободной лицензией (MIT). Мы бы хотели покрыть как минимум 10 популярных языков. Всего популярных языков (более 100 тысяч носителей) 30+, так что, в принципе, тут есть, где разгуляться.

Поэтому ищем людей, у которых два родных языка (русский и второй родной), которые бы помогли нам с рядом вещей:

С чем?

Text-to-speech. Анализ открытых решений синтеза речи

Reading time11 min
Views16K

Всем привет! В этой статье будут рассмотрены открытые проекты по синтезу речи с поддержкой русского языка. Под словом «открытые» будем иметь в виду, что разработчики безвозмездно предоставляют в пользование результаты своих трудов (спасибо им за это большое). Также в обзоре вы найдете краткое описание решений с примерами генерации аудио по тексту и полезными ссылками для начального погружения в задачу text-to-speech. Приятного прочтения.

Читать далее

Liberux NEXX: Linux-смартфон с 32 ГБ ОЗУ и аппаратными переключателями

Reading time4 min
Views30K

Источник.

Ну что, линуксоиды могут быть довольны. На рынке появился (точнее, скоро появится) очередной телефон на базе Linux. Причем не просто так, а с изюминкой. Liberux NEXX – это не просто смартфон, а настоящий техно-манифест. 32 ГБ оперативки, Linux под капотом и куча фишек для параноиков. Давайте разбираться, что это за телефон и кому он вообще нужен.
Читать дальше →

Сортировки выбором

Reading time7 min
Views166K


В чём идея сортировок выбором?

  1. В неотсортированном подмассиве ищется локальный максимум (минимум).
  2. Найденный максимум (минимум) меняется местами с последним (первым) элементом в подмассиве.
  3. Если в массиве остались неотсортированные подмассивы — смотри пункт 1.

Траффик

Учимся использовать Yandex SpeechKit с помощью Python за 5 минут

Reading time5 min
Views56K

Год назад для собственных нужд я написал обертку Yandex SpeechKit на Python, она получилась настолько простая и универсальная, что грех не поделиться : )

Читать далее

Небольшой обзор симулятора Arduino — Wokwi

Reading time4 min
Views72K

Можно ли преподавать программирование микроконтроллеров онлайн? В общем-то никаких сложностей нет. Но вот как преподавать, когда у ученика нету доступа к плате?

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

Читать далее

Синтаксический анализатор — модифицированный Shunting Yard

Level of difficultyMedium
Reading time3 min
Views1.4K

Алгоритм синтаксического анализа кода на основе Shunting Yard

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

Читать далее

Information

Rating
Does not participate
Registered
Activity