Как стать автором
Обновить
41
0

оператор ЭВМ

Отправить сообщение

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

Я прокомментирую часть про CMake.

cmake_minimum_required(VERSION 3.10)

Если это новый проект, то лучше конечно ограничить более новой версией, например 3.22 (идёт из коробки в Ubuntu 22.04, хотя уже есть 24.04, где в стандартных пакетах 3.28).

set(EXECUTABLE_OUTPUT_DIRECTORY ...
set(LIBRARY_OUTPUT_DIRECTORY ...

Обычно у проекта есть процедура установки, и там все какие надо пути уже прописаны по умолчанию. И хотя у вас там далее есть install(), но он несколько недоделанный.

file(GLOB_RECURSE ...

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

add_library(libnumerixpp SHARED ...

Не нужно хардкодить тип библиотеки, это контролируется с BUILD_SHARED_LIBS. Если только это у вас не header-only библиотека, которой нужно указать INTERFACE.

Помимо этого, вы заявляете SHARED и поддержку Windows, однако я не вижу у вас __declspec(dllexport), и в комментариях тоже уже указали, что пары .dll/.lib у вас на выходе не будет.

set_target_properties(libnumerixpp PROPERTIES OUTPUT_NAME "numerixpp")

Редко когда требуется манипулировать финальным именем бинарника. И кстати добавлять lib в имя таргета не рекомендуется (ни сзади, ни спереди).

├── include
│ └── libnumerixpp
│ ├── core
│ │ └── common.hpp
│ ├── libnumerixpp.hpp

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

target_include_directories(libnumerixpp
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)

Вот тут почти всё хорошо, только вместо include лучше было бы ${CMAKE_INSTALL_INCLUDEDIR}, хотя это конечно то же самое.

set_target_properties(libnumerixpp ...
target_include_directories(libnumerixpp ...
install(TARGETS libnumerixpp ...

Раз у вас имя таргета совпадает с именем проекта, то наверное лучше использовать ${PROJECT_NAME} ну или отдельную переменную, а не копировать везде одну и ту же строку.

install(DIRECTORY include/
DESTINATION include
)

Так конечно тоже работает, но лучше было бы устанавливать публичные заголовочные файлы через PUBLIC_HEADER свойство таргета и одноимённый параметр команды install().

Кроме того, почему я назвал вашу процедуру установки недоделанной: у вас тут отсутствует создание конфига/пакета для CMake, который облегчил бы другим проектам процесс использования вашей библиотеки.

cmake ..
make
sudo make install

Вообще, обычно вот так делают:

$ cmake .. # -G Ninja -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build . --target install # --config Release # если генератор мультиконфиговый

Или если надо собрать пакет для дальнейшего распространения, а не поставить его в систему, то добавить ещё -DCMAKE_INSTALL_PREFIX="../install" в первую строку конфигурации.

для облегчения этой задачи напишем простой bash-скрипт

Из четырёх строк стало сто :)

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

У меня к одному Яндекс аккаунту привязан нероссийский номер телефона, и с ним начать пользоваться сервисом не удаётся - на последнем шаге с галками принятия условий кнопка не становится активной (даже если обе галки поставить). На другом аккаунте, где привязан российский номер телефона, всё прошло нормально, подключил плагин к Home Assistant, данные приходят.

Какое досадное ограничение с территориальностью номера телефона.

Насколько я знаю, только бинарные сборки с установщиками. Официальные репозитории с исходниками всё так же должны быть доступны.

Видимо, это про установщик самой Макоси на 10+ гигабайт, который, судя по всему, распространялся вместе с этим образом. Она же не святым духом оказывалась внутри контейнера. Собственно, тут же и ответ на вопрос, будет ли работать "без них".

Минус не ставил. Если бы ставил, то поставил бы за емоджи :)

А Вы уже посмотрели фильм “Powering the AI Revolution”?

Ссылку, сестра, дайте ссылку!

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

плейер
аудиоплейер

А компийлируется ли под Андройд. Один войн спрашивает.

Он, судя по всему, тоже на 100 баллов сдал.

У ушлых веб-сайтов новости в RSS обрезаны зачастую первым абзацем

Я в ленте своего блога так сделал специально, потому что у меня в статьях часто много картинок, и я не хочу, чтобы RSS-клиенты пользователей грузили все эти мегабайты. Я думал, все остальные так делают по этой же причине - RSS-лента это "оповещалка" о новом контенте (опционально с коротким описание / первым абзацем), а не "доставлятор" всего этого контента целиком.

Стабильно каждый раз находится вот такой же изумлённый гражданин. Они ещё обычно отмечаются под любыми новостями про IRC, RSS и другие сверхдревние технологии, которым больше пары лет.

С распространением iOS приложений через App Center хорошо как раз то, что это можно делать без App Store / TestFlight. К тому же, в App Center есть группы доступа, то есть какие-то приложения могут быть доступны всем, а какие-то - только определённым группам. И всем этим можно управлять через REST API.

И теперь, значит, это всё закрывают и взамен для iOS предлагают как раз таки деревянный App Store / TestFlight. Не говоря уже о том, что для остальных платформ подразумевается содержать зоопарк способов распространения вместо одного App Center. Ну это отличные новости.

Касательно iOS, понятно, что для публикации приложений для "массового" пользователя App Store это единственный вариант, но например у нас помимо прочего есть необходимость распространять демо и некоторые специфические приложения внутри компании для не очень большой аудитории, куда входят люди и с личными устройствами (то есть без корпоративного профиля / MDM), и для нас App Center был удобным способом это делать.

А теперь, значит, придётся всё это воспроизвести самостоятельно (хостинг приложений, страницы с описанием, аутентификацию, группы доступа, API для автоматизации и прочее).

P.S. Интересно, это они решили, что пристрелить App Center будет проще, чем реализовать полноценную поддержку их собственной Azure Active Directory, о которой их просят уже почти пять лет как?

Вот только что было всё то же самое (и более подробно). Она и та статья была не особо чтобы и нужна (ну кроме рекламы), к 2024-то году, а эта записка так уж и вообще.

https://vk.com/video...

Apple теперь публикует свои ролики в VK Видео? Вот это сильно сервис вырос.

который уже во всю утёк

Во что утёк?

Ну, если вы так говорите, то, видимо, действительно он "жив" лишь по этим причинам.

Да, знают, как раз недавно истекла прошлая, вот продлили сразу на Sublime Text и Sublime Merge, а то до этого по отдельности покупали, а за оба сразу скидка.

1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Норвегия
Зарегистрирован
Активность

Специализация

Software Developer, Backend Developer
Middle
C#
C++
Python