При линковке приложения с двумя статическими библиотеками, в которых определён один и тот же символ, возникает классическая и потенциально фатальная проблема — двойное определение символа. Вроде бы всё просто: multiple definition — ошибка, надо переименовать. Но не тут-то было.
Разберёмся, как устроен линковщик, почему конфликты могут не проявляться сразу, и как на проде всё может пойти не так. Ну и конечно, как эту проблему исправить, не трогая архитектуру проекта.
Читать далееВоспоминания постановщика об истоках дизайна героини и её смартгана.
Для зрителей, хорошо знакомых с творчеством Джеймса Кэмерона, далеко не секрет, что режиссёр не привык попусту растрачивать актёрский капитал, когда речь заходит о кастинге второстепенных персонажей.
Что бы вы ответили на предложение подняться к базовому лагерю Эвереста с маленькими детьми (предположим, они у вас есть)? Наверное, что это безумная идея. Но на самом деле все не так страшно — и это я говорю, основываясь на собственном опыте. Сложно? Безусловно. Но для нас это того стоило: впечатления останутся на всю жизнь.
Мы с мужем покоряли тропы Гималаев в Северной Индии, шагали по горам Таджикистана и Кыргызстана, прошли десятки километров по просторам Патагонии. И все же ничто не сравнится с тем, что мы пережили, отправившись к базовому лагерю Эвереста.
Конечно, я не буду призывать вас срочно паковать рюкзаки и повторять наш маршрут: тут все зависит от возможностей и состояния здоровья членов семьи, безопасность в любом случае всегда должна быть на первом месте. Но мне хочется поделиться историей нашего удивительного путешествия — вдруг наш опыт окажется для вас полезным.
Читать далееВ современной силовой электронике полумостовые преобразователи (half-bridge converters) занимают особое место как одна из самых универсальных и широко применяемых топологий для преобразования DC-DC и DC-AC. Сочетая простоту конструкции с высокой эффективностью, эти преобразователи позволяют преобразовывать входное напряжение в более высокое или низкое выходное напряжение. Так же данный тип преобразователя обеспечивает гальваническую развязку выхода от входа, что значительно расширяет области применения данной топологии. Так же следует добавить что транзисторы в данной топологии работают с более низкими напряжения, в отличии от пуш-пульной схемы где на каждый транзистор приходится удвоенное входное напряжение.
Читать далееПеревод статьи с небольшими правками для ESP-IDF 4.4.5.
В этом руководстве показано, как настроить soft-AP с использованием модуля Espressif и ESP-IDF. Оно охватывает процесс создания проекта, настройки Wi-Fi и обработки событий подключения с помощью event loop и логирования.
В любом Wi-Fi-приложении первым шагом является установление соединения между устройством и маршрутизатором. В терминологии Wi-Fi устройство называется станцией (STA), а маршрутизатор — точкой доступа (AP). В большинстве случаев модуль Espressif работает как станция, подключаясь к существующему маршрутизатору. Однако перед этим пользователь должен пройти процесс provisioning — то есть ввести SSID и пароль маршрутизатора.
Существует несколько способов provisioning, но наиболее распространённые — это через Bluetooth и Wi-Fi. При использовании Wi-Fi процесс обычно выглядит следующим образом:
Читать далееВ ходе недавних исследований мы выполнили комплексное тестирование производительности математической библиотеки OpenBLAS на платформе RISC‑V и выявили существенную разницу в скорости выполнения ключевой операции матричного умножения cblas_sgemm по сравнению с архитектурой x86 — производительность оказалась значительно ниже. cblas_sgemm — функция для умножения матриц, состоящих из 32-разрядных вещественных чисел. Хотелось бы обратить внимание на то, что функция матричного умножения gemm, соответствующая стандартам BLAS, используется во многих библиотеках и алгоритмах. А OpenBLAS — одна из самых популярных реализаций стандарта BLAS с оптимизацией под различные платформы.
Так на x86_64 OpenBlas получает производительность примерно 80–90% от теоретического максимума процессора. А на Risc‑v примерно 20–25%. Также была рассмотрена самостоятельно реализованная функция перемножения матриц mini‑gemm по алгоритму описанному в статье. При этом наша реализация получает производительность 30–35% от максимума. Из чего встает два вопроса: почему на RISC‑V не получили 80%, как на x86_64 и как так вышло, что наша реализация обогнала OpenBLAS.
Читать далееClaude Code — это инструмент командной строки для агентного программирования.
В этой статье от Anthropic рассматриваются советы и приемы, которые доказали свою эффективность при использовании Claude Code в различных кодовых базах, языках и средах.
Читать далееСегодня я вновь затрону полюбившуюся моим читателям тему знаковых иллюстраций в науке и напомню об одной из важнейших идей на стыке химии и физики, появившихся в XX веке. Это недостижимый (пока?) «остров стабильности» - область дальних трансурановых химических элементов, период полураспада которых значительно дольше, чем у более лёгких атомов, расположенных между ураном и «ближней отмелью» этого «острова». Гипотезу о существовании «острова стабильности» была выдвинута в середине 1960-х, а получением элементов, теоретически расположенных на этом «острове» в 2000-2010 занимались группы физиков из Дубны, Дармштадта и Ливермора. Благодаря их усилиям, удалось достроить последний полный период таблицы Менделеева, известный в настоящий момент. Он начинается с франция (Fr), открытого в 1937 году и радия (Ra), открытого в 1898 году, а заканчивается оганесоном (Og), открытым в 2002-2005 годах под руководством Юрия Цолаковича Оганесяна.
Читать далееМодель Белбина, парадокс Моравека и пирамида Минто, ресурсное планирование и классические законы разработки ПО, юз-кейсы и нескучные ретроспективы, а также много и интересно про управление рисками - всё интересное, что писали на этой неделе про управление проектами. Мы прочитали все публикации и выбрали для вас самые крутые и полезные. Читайте, сохраняйте и применяйте!
Читать далееПривет, Хабр! Сегодня я хочу рассказать о своём проекте — «Game Engine 3», программной оболочке для создания двумерных игр и приложений.
Game Engine 3 — это инструмент для создания 2D‑игр с физикой и анимацией. С открытым исходным кодом, интуитивным редактором визуального программирования на основе нодов и возможностями работы с графикой, физикой и анимацией, он подходит как для новичков, так и для профессионалов. В этой статье разберем, что делает эту оболочку уникальной.
Читать далееЯ вожу машину и живу на Дальнем Востоке России. Праворульные изделия японского автопрома доминируют в парке личного автотранспорта. Периодически возникают холивары на тему запрета праворульных авто, ввиду их повышенной аварийности при правостороннем движении. Но вот убедительных доказательств тому нет, или есть?
Читать далееВалидация и обработка ошибок — это фундаментальная задача, с которой сталкивается каждый разработчик, будь то работа с HTTP-запросами, управление очередями задач, обработка событий или асинхронная коммуникация между компонентами системы.
Почему это важно?
Выбор стратегии напрямую влияет на:
В проджект менеджменте каждый этап жизненного цикла проекта играет свою важную роль. Одним из наиболее важны, но часто недооцененных этапов на мой взгляд является пресейл. Это стадия когда компания взаимодействует с клиентом, собирает требования, предлагает решения и готовит почву для начала проекта.
Многие IT компании, пытаются сэкономить, полагаясь на обычных менеджеров по продажам (Sales менеджеров) на стадии pre-sale или не понимают необходимость отдельного сотрудника для этой роли. Это всегда не лучший подход, особенно когда проект требует точности, детализации и глубокой технической экспертизы. Сейчас мы подробно разберём, что такое pre-sale, что делает Pre-Sale менеджер, и почему для успешной реализации проекта лучше иметь отдельного Pre-Sale менеджера, а не доверять эту задачу обычному Sales менеджеру.
Читать далееВ этой статье я расскажу о том, как делал для себя умный дом, выбрав в качестве платформы Home Assistant.
Мой выбор был обоснован от части желанием не зависить от проприетарных решений, а от части меня привлекла гибкость и возможность доработки под нестандартные сценарии. Также этот проект можно расценить как просто DIY-хобби.
Основные задачи, которые нужно было решить
- Управление отоплением - установки температуры в каждом помещении, а различные общие режимы: "Комфорт", "Не дома", "Только первый этаж", "Приеду завтра".
- Управление вентиляцией - режимы "Постоянно включена", "Включена с 23 до 7".
- Управление бойлером - "Постоянно включен", "с 23 до 7", "с 23 до 20".
- Периодическая откачка воды из колодца (чтобы не застаивалась).
Читать далееВсе знают, что Microsoft давно купила OpenAI, и теперь, казалось бы, должна иметь самую продвинутую инфраструктуру для развертывания решений на основе искусственного интеллекта и современных моделей, не так ли? Тогда почему мы так мало о них слышим? Что вообще у них есть в этой сфере?
Давайте разберемся.
Читать далее«Согласен со всеми условиями» — фраза, которую пользователи читают так же внимательно, как и предупреждения об астероидах в «Звёздных войнах». А ведь именно здесь начинается путь к тёмной стороне UX.
Вы замечали, как:
• Кнопка «Продолжить без подписки» спрятана полупрозрачным шрифтом?
• Оформление заказа требует «всего три шага», но на деле превращается в квест?
• Отписаться от рассылки сложнее, чем собрать световой меч?
Это не баги. Это тёмные паттерны — дизайн-решения, манипулирующие пользователем. И да, они работают… пока не сожгут репутацию. Как остаться джедаем UX и не поддаться искушению? Давайте разбираться.
Показать темную сторону