Pull to refresh
-13
0

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

Send message

Внешняя видеокарта backend-разработчика, или как заставить лучшего друга перестать тупить и начать помогать (часть 2)

Level of difficultyEasy
Reading time5 min
Views11K

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

Читать далее

Ни одна реализация элементарных функций не соответствует стандарту IEEE 754

Level of difficultyMedium
Reading time9 min
Views17K

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

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

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

Я был заинтересован в дальнейшей работе по аппроксимации этих функций, поэтому приступил к исследованию того, каким образом они гарантируют корректность, и если они корректны только на 1 ULP, то где располагаются ошибки в области определения функции.

В процессе изучения я обнаружил, что ни одна из популярных математических библиотек, используемых во множестве сфер вычислений, на самом деле не выполняет корректное округление в соответствии с требованиями любой версии IEEE 754 после первой редакции 1985 года.
Читать дальше →

Простой монитор сетевых интерфейсов Linux, с помощью netlink

Reading time12 min
Views30K
Однажды, в одном из проектов, мне понадобилось организовать строгий и надежный контроль над всеми сетевыми интерфейсами, таблицами маршрутизации, а так же получать нотификации о каких-либо изменениях. Было принято стратегическое решение — не использовать старые-добрые ioctl netdevice (SIOCGIFMETRIC, SIOCSIFNAME и т.п.) или непосредственные вызовы соответствующих утилит (ifconfig, route и т.д.), а найти более современное и болле удобное решение. Оно было найдено — libnetlink. Это библиотека, предоставляющая большое количество методов для коммуникации с ядром, с помощью механизма netlink. Данная библиотека идеально подходила для моих целей, позволяя решить огромное количество задач. К сожалению, у библиотеки оказался не особо удобный и довольно сложный API, требовавший совершать множество непонятных действий. Особого веселья добавляло практически полное отсутствие документации и вообще любых материалов на эту тему.
Подумав, я решил как следует разобраться в netlink и написать свою библиотеку. В данный момент реализован весь функционал для работы с нотификацией, сетевыми интерфейсами, таблицами маршрутизации, разумеется поддерживаются IPv4 и IPv6. В достаточно скором времени данный проектик будет представлен на суд общественности :) А пока я бы хотел познакомить всех интересующихся с прекрасным миром netlink, на примере простого монитора сетевых интерфейсов.
Читать далее...

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

Level of difficultyMedium
Reading time29 min
Views15K

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

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

Читать далее

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

Reading time10 min
Views2.4K

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

Читать далее

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

Level of difficultyMedium
Reading time13 min
Views14K

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

Читать далее

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

Level of difficultyMedium
Reading time47 min
Views4.1K

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

Появление 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
Views36K

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

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

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

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

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

Level of difficultyEasy
Reading time9 min
Views11K

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

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

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

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time21 min
Views39K

Привет! Сегодня мы выложили в опенсорс 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
Views79K
Недавно на хабре была статья, в которой описывалось как можно определить, где находится точка по отношению к многоугольнику: внутри или снаружи. Подобная проблема встречается в геометрическом моделировании и в компьютерной графике достаточно часто. А так как метод, описанный в статье, был несколько не оптимален, а в комментариях был небольшой хаос, возникла мысль написать эту статью. Итак, какие алгоритмы существуют в современной компьютерной графике, чтобы определить, принадлежит ли заданная точка многоугольнику или нет.
Читать дальше →

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

Reading time5 min
Views18K

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

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

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

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

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

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

Читать далее

Ему исполнилось 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
Views7.1K

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

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

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time1 min
Views2.6K

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

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

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

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

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

С чем?

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

Reading time11 min
Views13K

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

Читать далее

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

Reading time4 min
Views29K

Источник.

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

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

Reading time7 min
Views164K


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

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

Траффик

Information

Rating
9,301-st
Registered
Activity