Pull to refresh
18
0.2
Егор @Tujh

C & C++ Developer

Send message

Для CMake существует стандартное расширение для работы с Doxygen

https://cmake.org/cmake/help/latest/module/FindDoxygen.html

find_package(Doxygen)
if (DOXYGEN_FOUND)
  set(DOXYGEN_GENERATE_HTML YES)
  set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/docs)
  doxygen_add_docs(doc ${CMAKE_SOURCE_DIR})
endif(DOXYGEN_FOUND)

и всё, после этого можно вызывать

cmake --build <build dir> --target doc

после чего будет создана папка docs со всей сгенерированной документацией.

Я понимаю, что это сильно учебный материал, но зачем городить

# Clone TgBot from repository, build and installgit clone https://github.com/reo7sp/tgbot-cpp.git

cd tgbot-cpp

cmake .

Когда для проектов с CMake практически стандартом является FetchContent_Declare?

Не знаю, почему редакторы не перевели заметку из блога полностью, да ещё поставили такой кликбейтный заголовок, но там написан ответ:

If users were continually paying for the app, paying for Yelp’s APIs would not be as much of an issue. And I wouldn’t feel as guilty about the app being discontinued since if the fees were charged on a monthly basis, they would just end at the same time the app ceased to exist instead of facing an expectation upon purchase of “forever access.” On the other hand, how would you charge a monthly fee for an app that people are only willing to spend less than $5 for upfront?

Другими словами оплатить доступ к Yelp's API по новым правилам было возможно только при моделе ежемесячной подписки, а не разовом платеже "менее 5 долларов".

Там не просто модем, а GPON ONT.

"equipmentModelMake": "NOKIA G-010G-A",
"equipmentName": "NOKIA G-010G-A",

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

А вы не помните ... что это, если посмотреть, просто внутренняя утилита, которую в паблик вытащили.

Что мешает рассматривать WSL ровно с той же позиции?

пример, когда в МС напрочь сломали поиск в проводнике - они его чинили полгода

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

https://vc.ru/tech/299818-fayl-ne-nayden-kak-pokolenie-z-razuchilos-polzovatsya-papkami

Довольно странный usecase, вы не находите?

Нет, потому что это мой usecase.

Особенно в сравнении с общим кол-вом пользователей вин10-11

А давайте ещё сравним сколько людей установило MSVS или VSCode по отношению к числу пользователей Win10-11, зачем M$ создали такой нишевый продукт - непонятно.

Что целевая аудитория WSL - исключительно разработчики, которым нужно поддерживать ПО на Линуксе. И это крайне маленькая аудитория.

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

Я переживаю, что вин11 практически полностью состоит из багов и недоделок.

Вы не поверите, но не соглашусь. Win11 у нескольких разработчиков в команде и на домашнем ноуте с её релиза - полёт нормальный.

Вот тут хороший комментарий на эту тему: https://habr.com/ru/news/811299/comments/#comment_26781987

Смешались в кучу кони, люди.

 Я всё правильно понял?

Нет. Корпоративный софт - он общий для всех софт, фаервол, демон вычищающий все пользовательские данные при утере ноута (к примеру) и т.д, устанавливается на ноуты всех сотрудников от разработчика, до бухгалтера и, внезапно, разработки M$. А мне, как разработчику, в частности, нужен софт, который существует только под Linux - например SDK от производителя SoC, на основе которого мы выпускаем свою продукцию.

Очень странный пример, имхо.

Перечитайте что вы написали ранее и не прыгайте в дискуссии с темы на тему.

Ваша фраза:

Большая часть того, что крутится на серверах - есть и в винде.

мой ответ:

Есть, но самый простой пример - nginx

Где я там писал про запуск nginx под WSL?

Не додумывайте за собеседниками, тем более не фонтанируйте "смешными" фантазиями пытаясь в троллиг, в который не умеете.

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

Если вы этого не понимаете - вы не целевая аудитория проекта и всё. Хотя это было понятно ещё в начале обсуждения.

Не вижу связи.

Сочувствую, расширяйте кругозор.

МС вбухала кучу денег в проект с отрицательным итогом

Это ваши деньги? Если нет - то чего вы так переживаете? Я привёл пример, что в моём случае даже альтернативы W11+WSL не существует, то есть M$ вложилась, что бы таким как я было удобно работать - спасибо ей за это.

вы готовы ради него ставить wsl вместо нативного линукса?

В некоторых ситуациях и выбора нет. Корпоративный ноут, раньше был выбор между MacBook с виртуалкой или W11 с WSL, но после перехода яблока на собственные процессоры - выбора нет, так как нужен х86-64 CPU. Установить Linux - не вариант, нет корпоративного софта под Linux, который существует только для Win/Mac.

Большая часть того, что крутится на серверах - есть и в винде.

Есть, но самый простой пример - nginx, цитата с их сайта:

Version of nginx for Windows uses the native Win32 API (not the Cygwin emulation layer). Only the select() and poll() (1.15.9) connection processing methods are currently used, so high performance and scalability should not be expected.

Ну то есть производительность этого сервера под Windows значительно ниже, а по официальной статистике nginx используется на 34% всех серверов в интернете.

винда в целом работает хуже - хотя бы из-за необходимости перезагрузок раз в месяц после установки обновлений. Поэтому все и используют линукс, где можно поставить сервер и забыть про него года на 3 - и он не сломается.

Открою страшную тайну, Linux-сервер тоже нужно обновлять и многие обновления так же требеют перезагружать сервер. А если выв забиваете на сервер на 3 года...ну что ж.

Ага. Сколько у МС корпоративных пользователей и сколько обычных? В процентном соотношении...

А в финансовом? Я вижу, что вы сильно далеки от корпоративного сегмента, но всё же, можно же загуглить

В минувшем квартале выручка Microsoft увеличилась почти на 13 % до $50,12 млрд....Облачное направление Intelligent Cloud обеспечило корпорацию $24,26 млрд выручки по итогам прошлого квартала, что соответствует 19 % прироста в годовом сравнении. К этому подразделению относится и облачная инфраструктура Azure, помимо прочего. На последнем направлении выручка выросла на 29 % ... Охватывающее Microsoft 365, LinkedIn и Dynamics подразделение Productivity and Business Processes увеличило в минувшем квартале свою выручку на 13 % до $18,59 млрд....Направление More Personal Computing увеличило свою выручку на 3 % до $13,67 млрд... К этому сегменту деятельности Microsoft относятся Windows, Xbox, Bing и Surface...Продажи лицензий на операционную систему Windows производителям ПК принесли Microsoft на 4 % больше средств, чем годом ранее. Пять кварталов подряд этот показатель был отрицательным.

Ну то есть вся выручка от персональных клиентов (включая продажи Xbox, игр к ней, выручка от поисковика Bing, продажи собственных планшетов и ноутов Surface, плюс лицензии часным пользователям, в том числе OEM) - $13,67 млрд, а прибыль от корпоративных пользователей - $18,59 млрд. Вот и сравните.

Мы получили вал пересобранных под винду приложений?

Вопрос же был - почему M$ отказалась от эмулятора Андроида, если не видите связи - не мои проблемы.

И опять-таки .Net Core пользуется полторы калеки.

Пятый по популярности язык программирования с охватом около 7% рынка, обходящий даже JavaScript. Ну ок - полторы калеки, так полторы калеки.

WSL - это большое преимущество Windows, просто оно создано не для рядовых пользователей.

Microsoft теряло и теряет огромную часть рынка серверов проигрывая как раз Linux-системам, поэтому вложиться в разработку инструмента, который позволит запускать Linux приложения на Windows-серверах, попутно завоёвывая очки у разработчиков - вполне себе хорошая ачивка. Под те же задачи они перепилили .Net стек, который сейчас можно запустить на Linux (естетсвенно только .Net Core, а не весь Framework) или в контейнерах.

Это не преимущество ОС, понимаете?

Как я описал выше - это преимущество, просто вы - не целевая аудитория. Для меня, конкретно, WSL2 была причиной перейти на W11 в нашей команде разработчиков, потому что альтернатив то нет и не было.

Потому что преимуществом пользуются все - как тем же DirectX

Скажите об этом Apple, к примеру, которые поддерживают только Metal. Получается, они ещё глупее M$.

а не полтора узких специалиста

Специалистов далеко не полтора, и именно за специалистами стоит корпоративная инфраструктура.

А что в итоге? Проект закрыт.

А может он закрылся, потому что Google пересмотрела свою политику и сейчас можно собрать игру с нативной поддержкой как Androida, так и Windows?

https://developer.android.com/games/playgames/overview

Голый линукс кому нужен?

Мне, но вот на корпоративном ноутбуке Linux не может поселиться по определённым причинам.

WSL2 под W10 есть и работает, но под W11 эта подсистема гораздо лучше интегрирована, а не приколочена гвоздями "на 120" сбоку. Поддержка сети, того же Docker-а и ещё много мелочей. Даже GUI иногда полезен, например для Meld или gitk, а в W11 GUI работает почти нативно и с нормальным ускорением на GPU, в отличие от W10.

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

Да, промежуточный, тот же Docker вот тоже промежуточный варинат между виртуалкой и реальной операционкой - однако весь мир использует. И WSL2 очень удобна в узких кругах. Почти полноценная виртуалка, только куда как шустрее и интегрирована в систему - не нужны отдельные окна VM или ssh в виртуалку (хотя под капотом оно же и есть, но очень хорошо и удобно спрятано).

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

А кто ж измучил магнитные поля чёрной дыры?

Нет, я понимаю, что гугло-транслейт и ChatGPT именно так и переводят фразу tortured magnetic fields, но неужели даже элементарной вычитки материала не было? Искривлённые, в данном случае это будет - искривлённые магнитные поля, или деформированные, закрученные в спираль...но уж точно не измученные.

Давайте я немного поясню,

  1. Можно было сразу создать не консольное приложение ("пустой проект" с вашего же скриншота), тогда не пришлось бы переключать /SUBSYSTEM:WINDOWS

  2. Да, в этом случае точкой входа была бы функция WinMain() а не main(), но вы всё равно принудительно выставляете mainCRTStartup, так что ни чего бы не изменилось.

  3. mainCRTStartup нужен был бы для кроссплатформенного приложения, которое должно начинаться именно с main(), но проект для VisualStudio - то есть, изначально не переносимый (был бы переносимый - был бы на CMake, к примеру)

  4. Копировать любые библиотеки пуками в Windows\System32 нельзя, во-первых, в современных Windows это должна быть другая папка Windows\WinSxS или Windows\WOW, не помню точно, а Windows под рукой в данный момент проверить нет. Во-вторых, это потенциально может сломать другое приложение, которое случайно "найдёт" вашу версию openal32.dll вместо нужной этому приложению. Читать что такое dll hell.

  5. Если SFML собирается как static, то где в настройках проекта переключение vc runtime на static, что бы не таскать за собой vcredist?

Из всего этого можно сделать вывод, что у вам нужно хорошенько подучить Visual Studio, тогда статьи будут корректными и без "ошибок новичка" ;)

Создаём проект консольное приложение в Visual Studio.

Для исчезновения консоли с отображения на экране после запуска проекта SFML вносим дополнительные настройки

Создаём точку входа: mainCRTStartup

копируем файл openal32.dll из папки SFML-2.6.1\bin  в папку Windows\System32

С такими инструкциями и враги не нужны

обычный ping использует дополнительный трюк для того, что бы работать от непривелигированного пользователя

https://unixetc.co.uk/2016/05/30/linux-capabilities-and-ping/

а вот в общем случае "сырые сокеты", о которых говорится в статье, требуют прав Администратора (Windows) или root (unix-like системы) в любом случае, так как позволяют не только отправлять но и читать напрямую из сетевой карты. Поэтому tcpdump, работающий по этому же принципу, требует sudo или членства в соответствующей группе.

Однако попробуем адаптировать RAII для C

То чувство, когда ожидаешь увидеть практическое применение __attrubute(( __cleanup ... и прочего, а по факту просто пишут - а давайте напишем функцию, что бы удалять поля структуры...

В статье ни чего не сказанно про фаззинг, но зато расписан манглинг, о котором ни слова ни в заголовке, ни в тексте.

Ошибка пошла с этой фразы

Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer) наподобие Rc.

А кто сказал, что поиск точно такого же решения на С++ является хорошей идеей? Основная же задача была "сделать Clone без дублирования внутренних данных", а не атомарный или нет подсчёт ссылок.

По сути человек хотел атомарный std::move (если я правильно понял), но ушел в какие-то дебри.

Information

Rating
2,695-th
Location
Eindhoven, Noord-Brabant, Нидерланды
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Scrum Master
Lead
C++
C
Embedded system
Embedded Linux
Cmake
Bash
Docker
CI/CD
Git
Python