Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Облака: ожидание vs реальность
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
Nipheris

Станислав Макаров

  • 1031
    вклад
  • 1
    вопрос
  • 1145
    ответов
  • 39%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как вращать кривую Безье в функций на WinAPI?

    Nipheris
    Станислав Макаров @Nipheris Куратор тега C++
    1. Рисовать что-либо нужно в WM_PAINT. Но вы НЕ должны вызывать повторную инвалидацию в WM_PAINT, да и работать с таймером нежелательно.
    2. По срабатыванию таймера (т.е. или в WM_TIMER, или в колбэке, как вам удобно) нужно делать инвалидацию окна с помощью InvalidateRect или UpdateWindow. Вы НЕ должны рисовать в обработчике таймера.

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

    Это удобно тем, что например если окно скрыто, Винда не посылает вам WM_PAINT и вы ничего не рисуете вообще, экономя ресурсы машины.

    Если вы хотите добиться анимации, вам нужно регулярно (раз в N мс) заявлять Винде, что у вас устарело содержимое окна.
    Ответ написан 03 мар.
    Комментировать
    Нравится 1 Комментировать
  • Как добавить компоненты QT в cmake?

    Nipheris
    Станислав Макаров @Nipheris
    Вам нужен и target_link_libraries. Одного find_package недостаточно.
    Ответ написан 24 февр.
    1 комментарий
    Нравится 1 комментарий
  • Как прочитать весь http запрос вместе с телом?

    Nipheris
    Станислав Макаров @Nipheris Куратор тега C++
    async_receive:
    The receive operation may not receive all of the requested number of bytes. Consider using the async_read function if you need to ensure that the requested amount of data is received before the asynchronous operation completes.


    Но т.к. вы всё равно заранее не знаете, сколько байт вам нужно прочитать, я не вижу проблемы в поведении async_receive. Вам нужно отслеживать состояние вашего протокола (в вашем случае - HTTP) и понимать, когда нужно подождать ещё данных, а когда уже всё пришло.
    Ответ написан 02 февр.
    Комментировать
    Нравится 1 Комментировать
  • Kaк ycтановить файл .Msixbundle?

    Nipheris
    Станислав Макаров @Nipheris
    На свежих (поддерживаемых) билдах Windows 10 должен ставиться без проблем и так. Если на Windows 7 - поставьте MSIX Core. Какая у вас Винда вообще?

    А, да, если у вас билд Windows 10 ниже чем 2004, нужно ещё включить sideloading, чтобы ставить приложения не только из Стора.
    Ответ написан 21 янв.
    Комментировать
    Нравится Комментировать
  • Какой docker-compose.yml лучше для поднятия WordPress?

    Nipheris
    Станислав Макаров @Nipheris
    А вам нужно MariaDB или MySQL?
    А вам нужно отдельно мапать в контейнер веб-рут и плагины с темами?
    А вам все креды для подключения к базе нужно передавать через переменные окружения или только пароль?

    Мне кажется на эти вопросы вы должны сами отвечать, исходя из своей ситуации. Если вы не можете сами сравнить и понять разницу - зачем вы вообще польуетесь docker compose?
    Ответ написан 20 янв.
    3 комментария
    Нравится 3 комментария
  • Как заставить CMake искать библиотеку нужной разрядности через find_package?

    Nipheris
    Станислав Макаров @Nipheris
    Собирал x86 и x64, притом в один каталог не получилось.

    И не надо. Лично я считаю это извратом (несколько конфигураций в одной общей папке), заставляющим выдумывать соглашения об именах и всякие раскладки по подпапкам, которые у всех потом свои, велосипедные.

    Мне нужно каким-то образом выбирать каталог для поиска OpenCVConfig.cmake через find_package(), т.е. добавлять его в CMAKE_PREFIX_PATH видимо.

    Неплохая идея. И почему не получилось?
    Вообще по идее конфиг библиотеки (который OpenCVConfig.cmake) должен проверять разрядность и не давать подключать библиотеку с невалидной разрядностью. По идее тогда и несколько путей можно указать (не уверен, нужно проверить).
    Ответ написан 21 июл. 2020
    7 комментариев
    Нравится 1 7 комментариев
  • Как мне лучше всего оформить Union types для екшенов?

    Nipheris
    Станислав Макаров @Nipheris
    export type SaveCategoryAction = {
        type: 'SAVE_CATEGORY',
        foo: number;
        // .....
    }
    
    export type SaveProjectNameAction = {
        type: 'SAVE_PROJECT_NAME',
        bar: string;
        // .....
    }
    
    export type ResearchAction = SaveCategoryAction | SaveProjectNameAction;
    Ответ написан 07 июл. 2020
    Комментировать
    Нравится Комментировать
  • Как обрабатывать записи бд в реальном времени ASP.NET Core?

    Nipheris
    Станислав Макаров @Nipheris Куратор тега C#
    Почитайте про вебсокеты. Вам нужно будет держать коннекты со страниц в браузере на ваш сервер, и посылать обновления всем клиентам, которые "подписаны" на определённые записи при изменении этих самых записей.

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

    Ну и посмотрите ещё на SignalR, как на более комплексное решение (если уверены, что для вас это не overkill - в целях обучения может лучше голые вебсокеты).
    Ответ написан 30 июн. 2020
    6 комментариев
    Нравится 1 6 комментариев
  • Как большие компании организовывают совместную работу и контроль версий в Unreal Engine?

    Nipheris
    Станислав Макаров @Nipheris
    Git LFS?

    Не исходный же код у вас 50 гигов весит, не так ли?
    Ответ написан 29 июн. 2020
    Комментировать
    Нравится 2 Комментировать
  • Почему VS запускает первый файл из проекта?

    Nipheris
    Станислав Макаров @Nipheris
    ПКМ по проекту в Solution Explorer -> Set as StartUp Project
    Ответ написан 21 мая 2020
    Комментировать
    Нравится Комментировать
  • Как подключать библиотеки, используя MinGW?

    Nipheris
    Станислав Макаров @Nipheris Куратор тега C++
    Для начала хватит и того что Сергей Горностаев посоветовал, но вообще вам бы почитать про какую-нибудь сборочную систему, например про CMake, и про процесс подключения внешних зависимостей. Может быть даже стоит поинтересоваться Conan-ом или Vcpkg-ем.

    Вас ждёт много интересного.

    А, ну да, сначала лучше получить базовые знания о процессе сборки C/C++ программ. "Как я понял для этого нужна линковка" - вот этот момент нужно сильно улучшить. Иначе вы ещё долго будете страдать.
    Ответ написан 15 апр. 2020
    1 комментарий
    Нравится 2 1 комментарий
  • Как удалить старую версию Visual Studio, если в инсталяторе не отображается?

    Nipheris
    Станислав Макаров @Nipheris
    А что мешает запустить Visual Studio Professional 2017, как вы это уже делали, открыть Диспетчер задач, вкладку с процессами, и сделать Open File Location?
    Ответ написан 06 апр. 2020
    Комментировать
    Нравится Комментировать
  • Здравствуйте. Знает ли кто, как справиться с данной проблемой?

    Nipheris
    Станислав Макаров @Nipheris
    запустите установщик Visual Studio со следующими выбранными элементами:
    Microsoft.VisualStudio.Component.VC.Tools.x86.x64

    И что вам мешает это сделать? Workload на Desktop C++ проекты установлен?
    Ответ написан 04 апр. 2020
    1 комментарий
    Нравится 1 1 комментарий
  • Как установить libneo4j-client на Windows?

    Nipheris
    Станислав Макаров @Nipheris
    Судя по всему официально поддержка Винды ещё не созрела: https://github.com/cleishm/libneo4j-client/issues/13 . Может быть именно вы поможете её реализовать?
    Ответ написан 23 мар. 2020
    Комментировать
    Нравится 1 Комментировать
  • При запуске SFML выдает ошибку msvcp140.dll?

    Nipheris
    Станислав Макаров @Nipheris Куратор тега C++
    Начинать разбираться отсюда:
    https://docs.microsoft.com/en-us/cpp/windows/deplo...
    Ответ написан 19 мар. 2020
    1 комментарий
    Нравится 3 1 комментарий
  • Как сделать авторизацию через AD в веб-приложении?

    Nipheris
    Станислав Макаров @Nipheris
    Советую прежде чем начать писать свои велосипеды, глянуть сюда:
    https://identityserver4.readthedocs.io/en/latest/
    https://github.com/Nordes/IdentityServer4.LdapExtension

    Ну и вообще, аутентификацию можно выставить и в виде ADFS (или например через Keycloak), но чтобы вам такое советовать, нужно знать ваши масштабы и бизнес-требования.
    Ответ написан 17 мар. 2020
    1 комментарий
    Нравится 1 комментарий
  • Стоит ли углубляться в изучение git и тп?

    Nipheris
    Станислав Макаров @Nipheris
    Стоит ли изучить гит глубоко ?

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

    Большинство начинают изучать гит по всяким туториалам и "спискам команд для работы с гит на первое время", и это ОЧЕНЬ пагубно сказывается на качестве знаний. Из-за не очень логичного и прямолинейного командного интерфейса, у человека создаётся не очень хорошее впечатление о гит как об инструменте. Ну т.е. большинство судит о книге по её "обложке", машинально запоминая последовательности команд для работы, и в панике потом разгребают свою историю коммитов при малейшей ошибке в заученных командах.

    Однако нужно не команды запоминать, а понимать как что работает, и, самое главное, что ВЫ ХОТИТЕ от гита. Тогда вы будете подбирать команды под свои задачи и пожелания, а не наоборот.

    Я вот например довольно фигово знаю гитовский CLI, прямо скажу постоянно заглядываю в документацию. Но это не мешает мне заниматься довольно сложными задачами, связанными с ним (например, отвечать в данный момент за перенос истории из SVN), только потому, что я понимаю его базовую философию (которая, повторюсь, реально проще, чем кажется, ну если конечно вы не первый день видите компьютер).
    Ответ написан 17 мар. 2020
    1 комментарий
    Нравится 2 1 комментарий
  • Как перехватить I/O потоки стороннего .exe?

    Nipheris
    Станислав Макаров @Nipheris Куратор тега C++
    https://jineshkj.wordpress.com/2006/12/22/how-to-c...
    Ответ написан 17 мар. 2020
    Комментировать
    Нравится 2 Комментировать
  • Существуют ли key:value базы данных с подключением через файл, а не сеть?

    Nipheris
    Станислав Макаров @Nipheris
    RocksDB
    LevelDB
    WiredTiger
    Ответ написан более года назад
    Комментировать
    Нравится Комментировать
  • Обучение программированию, что делать если застрял?

    Nipheris
    Станислав Макаров @Nipheris
    Ну там отвлечься от темы, в слаке кастануть хелпер, с колегами перетереть? Но ответ как подсказка вас не устраивает, вам охота самим докумекать... ???

    Можно книгу почитать, заодно в речи будет меньше "в слаке кастануть хелпер".

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

    Хотите что-нибудь связанное с IT - ну почитайте что-то серьёзное, на чём, так сказать, свет стоит (это ведь не JS и PHP, не так ли?). Ну не знаю, про обработку звука или про графику что-ли. Если вы серьёзно этим занимаетесь - вам это пойдёт на пользу и уж точно никак не помешает. Ваш спринт обучения (ведь вы же наверняка изучаете это всего лишь несколько месяцев, не так ли?) нужно временно поставить на паузу.
    Ответ написан более года назад
    Комментировать
    Нравится 2 Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • Василий Банников
    • 11 ответов
    • 0 вопросов
  • vesper-bot
    Максим Гришин
    • 11 ответов
    • 0 вопросов
  • rPman
    • 10 ответов
    • 0 вопросов
  • Dr. Bacon
    • 7 ответов
    • 0 вопросов
  • DanceM
    Dance Macabre
    • 6 ответов
    • 0 вопросов
  • galaxy
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации