• Не работает git в phpstorm, что не так?

    @sergiodev
    Я так понял, вы используете git из Windows для доступа к репозиторию, находящемуся внутри WSL.

    В таком случае, как советут тут, нужно либо вызывать линуксовый гит из-под WSL (из консоли Ubuntu), либо отключить проверку на безопасные директории через эту команду (уже из винды):

    git config --global safe.directory '*'
    Ответ написан
    1 комментарий
  • Как настроить слежение за внешней веткой Git, чтобы сделать git pull?

    @sergiodev
    git pull вытягивает изменения с удалённой ветки, связанной с локальной веткой (в гите это называется upstream). Ваша ветка test связана с origin/test, поэтому git pull без указания названия ветки будет тянуть коммиты из origin/test.

    Попробуйте так (находясь в ветке test):

    git pull origin/dev
    Ответ написан
  • Как вывести в git log пересечения коммитов двух веток?

    @sergiodev
    По идее можно это сделать так:

    git log dev/2.6 ^dev/2.5 ^dev/2.4

    ^ исключает ветку из лога, т.е. команда выше покажет коммиты, которые есть в dev/2.6 и нет в dev/2.5 и dev/2.4.


    Commit Exclusions

    ^ (caret) Notation

    To exclude commits reachable from a commit, a prefix ^ notation is used. E.g. ^r1 r2 means commits reachable from r2 but exclude the ones reachable from r1 (i.e. r1 and its ancestors).



    Больше информации тут: https://git-scm.com/docs/gitrevisions#Documentatio...
    Ответ написан
  • Как замапить очередь пользователей с помощью Hibernate?

    @sergiodev
    В Hibernate не поддерживается маппинг через Queue, но можно использовать упорядоченный List:

    https://docs.jboss.org/hibernate/orm/6.2/userguide...

    или самостоятельно реализовать нужный тип коллекции:

    https://docs.jboss.org/hibernate/orm/6.2/userguide...

    А также можно отказаться от явного маппинга через @OneToMany и просто доставать коллекцию через HQL-запрос и класть результат в Queue.
    Ответ написан
    Комментировать
  • Что такое upstream в Git?

    @sergiodev
    upstream - это буквально означает "вверх по течению". Можно представить течение изменений (коммитов) от главного репозитория в ответвившиеся репозитории (форки) в виде реки и ручейков.

    В Git upstream могут называть удалённый репозиторий (remote), от которого форкнули.

    Вне контекста Git - это основная версия кода, публикуемая его автором. Например, кто-то пишет программу и публикует новую версию на своём сайте, а разработчики Debian упаковывают её в .deb-пакеты, возможно даже с дополнительными патчами. Для них код автора программы будет upstream.
    Ответ написан
    Комментировать
  • Какую структуру репозиториев выбрать в проекте?

    @sergiodev
    Если честно, не вижу проблемы с одним репозиторием и отдельным папками внутри него для backend, web, mobile. Я так постоянно делаю в своих личных проектах. Единственной проблемой с таким подходом пока что было развёртывание приложения на сервер через git на каком-нибудь PaaS-сервисе типа Heroku, где не поддерживается сборка из подкаталога (т.е. только из корня репозиториия). Но это ограничение можно обойти через "git subtree split".
    Ответ написан
    Комментировать
  • Как преобразовать std::function в указатель на функцию?

    @sergiodev
    Как вариант можно так сделать:

    1. Запомнить указатель на объект (this) в какую-то глобальную переменную
    2. Создать обычную функции в соответствии с параметром WlanRegisterNotification и передать её туда
    3. В теле функции достать указатель на экземпляр из глобальной переменной и далее работать с ним

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

    Если вы работаете с функцией https://learn.microsoft.com/en-us/windows/win32/ap... из Windows API, то там есть параметр context как раз для передачи контекста в callback. Можно положить туда this и позже достать из контекста внутри вашей callback-функции.
    Ответ написан
    2 комментария
  • Насколько реально установить полноценную MacOS в VirtualBox под Linux x86-64?

    @sergiodev
    1) Да, это реально, есть даже скрипт на GitHub, который автоматизирует установку: https://github.com/myspaghetti/macos-virtualbox

    Я им сам пользовался однажды, система загружалась, и даже что-то работало. Но учтите, что графика будет тормозить в виртуалке. Код редактировать будет трудновато.

    Ещё как вариант можно поставить macOS на VMWare Player - у меня там работало намного шустрее, но давно было дело, возможно уже не поддерживаются более свежии версии ОС. Я ставил VMWare Unlocker, чтобы разблокировать установку гостевой macOS, т.к. из коробки эта возможность недоступна в UI.

    2) Лучше какую-нибудь не самую последнюю, обычно с ними больше всего проблем. Но это ещё и зависит от того, какая версия Xcode вам требуется. Рекомендую обратиться к этой табличке:

    https://developer.apple.com/support/xcode/

    Сейчас для разработки под iOS нужна как минимум Xcode 14, скорее всего. С более старыми версиями могут возникнуть проблемы с загрузкой в App Store.
    Ответ написан
    Комментировать
  • Что можно делать с помощью Docker?

    @sergiodev
    Docker - просто лайтовая виртуалка для Linux по сути. Он не заменит вам Windows, если вы такие софты планируете запускать.
    Ответ написан
    2 комментария
  • Почему не могу клонировать репозиторий GitLab?

    @sergiodev
    Возможные причины:

    1. Клонируется не тот репозиторий (такое бывает)
    2. Ключ ни добавлен в ssh-agent через ssh-add, ни прописан в .ssh/config, поэтому SSH-агент не может его найти
    3. SSH подгружает другой ключ от GitLab (от другого аккаунта), если у вас их несколько в папке .ssh, и у этого аккаунта соответственно нет доступа к репозиторию - в таком случае можно попробовать выполнить ssh-add -D и потом ssh-add нужного ключа (и проверить, не прописан ли другой ключ для хоста gitlab.com в ~/.ssh/config)
    Ответ написан
    3 комментария
  • Что делать при повреждении файла index?

    @sergiodev
    У меня такое было после синего экрана в винде. Некоторые файлы в папке .git (index, HEAD, и т. п.) оказались заполнены нулями. Помогло удаление HEAD (или index) и последующий checkout на нужную ветку. Но всё же рекомендую создать резервную копию перед тем, как делать такое.
    Ответ написан
    Комментировать
  • Как написать правильно приложение на с++?

    @sergiodev
    1. Пакетные менеджеры тут ни при чём. В CMake называются "пакетами" сторонние сущности, находимые при конфигурировании проекта. Это могут быть библиотеки, программы и т.п. В общем, к понятию пакета в каком-то дистрибутиве Linux или vcpkg оно не привязано.

    1) Пакетный менеджером пользоваться необязательно - достаточно установить бинарники библиотеки в одну из директорий, где CMake их сможет найти. Подробнее об этом написано в доках к find_package(). Один из таких путей указывается через CMAKE_PREFIX_PATH, например.

    2) Нет, vcpkg обычно не нужно добавлять в проект, он должен быть предустановлен на машине разработчика. Включать целиком vcpkg в репозиторий нет смысла, т.к. каждый разработчик может ставить библиотеки в различных конфигурациях под разные платформы на своё усмотрение (debug, release, windows, windows-static, x64, x86 и т.п.).

    3) Зависит от ОС. Под Windows vcpkg - лучший вариант по-моему. Под Linux и macOS есть apt (или его аналог) и homebrew, где уже есть большинство библиотек - там vcpkg не так актуален. Если не хочется париться с установкой зависимостей на каждом компьютере или нужна какая-то конкретная версия библиотеки, отсутствующая в репозитории пакетов, то можно её код просто включить в проект и скомпилировать её с тем же CMake-ом - либо как подпроект (subdirectory), либо как external project.
    Ответ написан
    Комментировать
  • Безопасен ли линукс для хранения файлов?

    @sergiodev
    Если переживаете за сохранность каких-то важных файлов, то рекомендую хранить их на отдельном от Linux разделе, или вообще на отдельном жёстком диске, возможно даже форматированном в NTFS, чтобы можно было легко получить к ним доступ на другом компьютере в случае необходимости.

    Это немного снизит риск потери файлов при переустановке системы, если, допустим, вы по ошибке форматируете весь диск вместо системного раздела. Из минусов - NTFS под LInux работает немного тормознее, чем родные файловые системы Linux (ext4, btrfs) - для обычного хранения документов и видео/музыки это не критично.

    Ну, и как уже советовали выше, нужно делать резервные копии важных файлов регулярно, ведь всякое бывает.
    Ответ написан
    Комментировать
  • Как исправить Server running at http://undefined:undefined/?

    @sergiodev
    Пропишите переменные среды APP_IP и APP_PORT в командной оболочке перед запуском сервера вместо .env (через export, если используется sh/bash и т.п., на винде по-другому).

    Node.js сама по себе не читает эти файлы, вам нужен сторонний пакет для этого (как уже упомянул szQocks в комментах).
    Ответ написан
  • Как повторно вызвать скрипт (ready()), которые подгружается динамически?

    @sergiodev
    По-моему тут три варианта:

    1. Переписать код загрузки скрипта так, чтобы при повторном нажатии на кнопку он не загружался опять
    2. Удалить проблемные блоки из документа и пересоздать их
    3. Перезагрузить страницу
    Ответ написан
  • Как запустить executable в линукс?

    @sergiodev
    Попробуйте выполнить ldd ./server-linux и посмотреть, какие библиотеки не найдены. Далее установите соответствующие пакеты из репозиториев.
    Ответ написан
    Комментировать
  • Как перевести время в moment в локальное?

    @sergiodev
    Нужно передать часовой пояс как 3-й аргумент после формата, тогда должно заработать. Согласно документации на сайте moment.js:

    var b = moment.tz("May 12th 2014 8PM", "MMM Do YYYY hA", "America/Toronto");


    Не забудьте подключить модуль moment-timezone.
    Ответ написан
    Комментировать
  • Вызвать супер:метод родительского класса до или после собственного кода?

    @sergiodev
    Нет общего правила, это зависит от цели метода и/или от контракта между родительским и дочерним классом (когда переопределяете какой-нибудь метод-callback, например).

    Обычно, если класс спроектирован для наследования, то в документации к нему прописывают, как должен вызываться его метод из подкласса (и должен ли вообще).
    Ответ написан
    Комментировать
  • Перестали приходить запросы через Postman на express?

    @sergiodev
    Скорее всего, вы не указали заголовок "Host:" в запросе, поэтому nginx не знает, какому виртуальному хосту его следует перенаправить
    Ответ написан
    Комментировать