• Как называется такая практика и является ли она приемлемой?

    @Vitsliputsli
    Последний коммит в ветке сегодня, завтра уже может и не быть таковым.
    Merge коммиты не "затирает" - пишите команды, которые используете.
    Ответ написан
    2 комментария
  • Как вынести поддомен в отдельную зону и управлять ею с помощью другого менеджера DNS?

    @mureevms
    В принципе все просто
    - Создать зону api.company.com на втором DNS сервере
    - На первом DNS cоздать NS записи для этого домена, в качестве хоста указать api, в качестве значения NS сервера второго хостера
    Должно выглядеть примерно так
    $ dig company.com NS
    ...
    ;; ANSWER SECTION:
    company.com.		900	IN	NS	dns2.yandex.net.
    company.com.		900	IN	NS	dns1.yandex.net.
    ...
    
    $ dig api.company.com NS
    ...
    ;; ANSWER SECTION:
    api.company.com.	3600	IN	NS	ns1.dns.npdc.ru.
    api.company.com.	3600	IN	NS	ns2.dns.npdc.ru.
    ...
    Ответ написан
    1 комментарий
  • Как venv ищет библиотеки?

    @igor6130
    Также можете для удобства работать через PyCharm, чтобы не беспокоиться о создании виртуальных окружений. IDE сделает это за вас.
    Ответ написан
    Комментировать
  • Можно ли упростить выражение sql, чтобы избежать такой вложенности?

    iMedved2009
    @iMedved2009
    Не люблю людей
    with t as(SELECT table_name, column_name, data_type, ROW_NUMBER() OVER (PARTITION BY table_name ORDER BY column_name) as num
      FROM information_schema.columns
      WHERE table_schema = 'public')
    select json_agg(json_build_object(num, json_build_object(column_name, data_type))) from t group by table_name;
    Ответ написан
    2 комментария
  • С чего начать изучение ML, AI и т. д. чтобы успеть к сроку?

    @dmshar
    А тему курсовой работы мы должны угадать?
    А что такое "чуть больше" чем азы Python - т.е. до операторов цикла и условных операторов вы уже дошли?
    А учитесь вы на математическом факультете московского университета, или на танцевально-астрономическом факультете мухосранского мелиоративного колледжа?
    А по какому предмету курсовая должна угадать система искусственного интеллекта, которую мы подключим, что-бы понять, чего-же тут хотел сказать интеллект естественный?
    Впрочем изучить ИИ "до 10-ых чисел мая" - это, конечно, лучше и реальнее, чем "профессионал по ИИ за 7 дней".

    Но если вы решили эту информацию засекретить, то вот вам универсальный список:

    https://ru.stackoverflow.com/questions/Книги-и-уче...
    и
    https://www.cyberforum.ru/ai/thread2010374.html
    Ответ написан
    Комментировать
  • Как разбить json файл на несколько файлов по 5000 символов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://pypi.org/project/json-stream/

    Ваша задача следующая.
    Определить заголовок и хвост вашего JSON
    Определить данные которые повторяются
    проходясь в цикле добавлять данные в буфер
    после склеить голову тело и хвост и записать в файл и сбросить буфер
    если цикл не закончен то повторить

    Вот пример

    {
      "names": [
        { "name": "1" },
        {"name": 2 }
      ]
    }


    {
      "names": [
        { "name": "1" }
      ]
    }


    {
      "names": [
        {"name": 2 }
      ]
    }
    Ответ написан
    Комментировать
  • Для чего изучать линукс?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В рамках импорто-замещения РФ скоро откажется от Windows.
    Тогда специалисты по Linux будут восстребованы везде.

    Вот главный мотиватор. Хочешь иметь работу завтра - изучай Линуха сегодня.
    Ответ написан
    4 комментария
  • Для чего изучать линукс?

    @rPman
    Так уж повелось, что основное (большее) количество разработчиков работают в среде linux или средах разработки и библиотек, изначально разрабатываемых для работы в linux

    Т.е. когда ты видишь модули npm, пакетный менеджер python pip, compose от php и прочее прочее, везде изначально разработчики ориентируются на окружение linux.

    Само собой, разработчики люди порядочные, и понимают что особенно новички, начинают свое знакомство с миром программирования там где привыкли
    в windows
    это потому что майкрософт стала планетарным монополистом и удерживает свое положение рыночными методами - т.е. подкупом и угрозами, например к разработчикам железа, или попиранием стандартов, навязыванием и запутыванием и кучей других максимально мерзких способов, внешне даже выглядящих порядочными - вот например wsl, я считаю, - один из таких инструментов подгадить всему linux сообществу

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

    В linux же выглядит так (решили основные проблемы за тебя) заметно чаще (почти всегда) и часто трудности вылезают при ну очень необычных ситуациях (например попытка водрузить компоненту на не поддерживаемые/старые/новые версии ос или аппаратные платформы).

    Linux - это отраслевой стандарт. Не linux сервера могут быть только там где тебя поставили в такие условия намеренно (вендорлок) или по скудоумию. Отсюда не изучать его - глупо и не эффективно.

    p.s. на десктопах linux-у плохо именно из-за того что производители железа намеренно (им за это заплатили или чтобы не наказали) тормозят развитие (плюс конечно деньги, зачем тратить ресурсы на поддержку в нескольких средах, когда хватит только одной windows)

    p.p.s. да у linux тоже куча проблем, поддерживать все его многообразие иногда настоящий ад
    Ответ написан
    Комментировать
  • Если нарушитель может записать команду в поле таблицы SQL, означает ли это что он всегда сможет ее выполнить?

    @Jack444
    Чтобы от SQL инъекции защитится в строчных полях достаточно заменить одиночные ковычки на две одиночные ковычки.
    Например тебе в поле вписали DELETE * from Table1
    Не обработано это полетит в базу как 'DELETE * from Table1' код не выполнится.
    Но если отправить так Moskow'; DELETE * from Table1;
    То сначала выполнится insert а после delete, в лучшем случае вылетит ошибка.
    Но если принудительно одну ковычку реплейсить на две одиночные ковычки то этот весь запрос как строка запишется и нечего не произойдет
    Ответ написан
    8 комментариев
  • Существуют ли миграции баз данных, связанные с изменением полей json(b) обьекта?

    vabka
    @vabka
    Токсичный шарпист
    Да, можно. Будет что-то типа:
    Этот запрос добавит поле "phones" в те строки, где его ещё нет, но при этом есть поле "phone". Значением будет массив из единственного значения, которое хранится в поле "phone"
    UPDATE data_table
    SET 
      jsonb_column = jsonb_set(jsonb_column, '{phones}', jsonb_build_array(jsonb_column->'phone'))
    WHERE
      (NOT (jsonb_column ? 'phones')) AND (jsonb_column ? 'phone')
    Ответ написан
    Комментировать
  • Как победить проблему с правами laravel / docker?

    добавить в группу appпользователя www-data

    в fpmDockerfile:

    USER root
    RUN addgroup -g 1000 app && addgroup www-data app
    RUN adduser -u 1000 -s /bin/sh -D -G app app
    USER www-data
    Ответ написан
    Комментировать
  • Стоит ли доверять этому ресурсу в изучении React?

    JamesHatfield
    @JamesHatfield
    Front-end developer
    Прошел 40 уроков React "путь самурая". Очень доступно автор доносит материал, разжевывает и раскладывает по полочкам. Плюс автор курса сам по себе очень позитивный чувак и заряжает этой энергией. Но на документацию забивать не стоит. Документация + этот курс - идеальное сочетание как по мне!!
    Ответ написан
    Комментировать
  • Почему env GOPATH больше не имеет значения?

    Раньше все зависимости лежали в GOPATH, но это было неудобно тем, что не было никакого управления этими зависимостями. Нельзя было зафиксировать их конкретные версии и нельзя было для разных проектов сделать разные зависимости, потому что все было в одной центральной папке.
    Потом в го ввели систему модулей:
    https://go.dev/blog/using-go-modules
    https://habr.com/ru/company/otus/blog/503918/

    Теперь в корневой папке каждого проекта есть файл go.mod, который перечисляет зависимости этого проекта и их конкретные версии. Поэтому необходимость в GOPATH отпала, теперь Go при сборке использует модули, указанные в go.mod и не ходит в GOPATH вообще, это намного удобнее.
    Ответ написан
    4 комментария
  • Используется ли пагинация в SQL запросах?

    Melkij
    @Melkij
    PostgreSQL DBA
    Хотите сделать пагинацию правильно - не используйте offset, а передавайте сведения сортировки последнего показанного поста.
    https://use-the-index-luke.com/sql/partial-results...
    https://use-the-index-luke.com/no-offset

    Наверняка видели, когда переходите на следующую страницу (например, лента постов отсортированная по времени публикации), вы вдруг видите те же самые записи что только что видели - просто потому что пока вы читали предыдущую страницу кто-то опубликовал новые посты и offset вас честно сдвинул.
    Ответ написан
    1 комментарий
  • Используется ли пагинация в SQL запросах?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да какой пользователь 10000 тыщ записей способен прочитать??
    Сделай поисковые атрибуты по Name там... еще где то.
    И показывай первые 100 штук.
    Ответ написан
    1 комментарий
  • Какие SCA и Code Quality анализаторы для своего проекта посоветуете?

    @vitaly_il1
    DevOps Consulting
    Добавлю к ответу Василий Банников
    - да, SonarCloud на мой взгляд самый удобный
    - я недавно познакомился с https://www.jit.io/. Очень интересный сервис - агрегатор open source security tools. Обещают добавлять новые tools. Не только static code scanning и не только код. Мне очень понравилось - https://www.linkedin.com/posts/vkarasik_devsecops-...
    Ответ написан
    2 комментария
  • Какие SCA и Code Quality анализаторы для своего проекта посоветуете?

    vabka
    @vabka Куратор тега Веб-разработка
    Токсичный шарпист
    тест coverage

    Такой отчёт может CI/CD система выдавать, но для этого тестовый фреймворк должен ей эту информацию сообщий.
    Это не статический анализ.
    В случая голанга для этого используется go tool cover
    Если используется гитлаб, то вот инструкция по настройке:
    https://docs.gitlab.com/ee/ci/testing/test_coverag...
    code smells и code security issues

    Это точно умеет Sonarqube даже в бесплатной версии.
    Можно ещё в ci добавить какой-нибудь dependabot или его подобие, который будет смотреть за устаревшими библиотеками. + npm audit
    Ответ написан
    2 комментария
  • Как работает лямбда в данном случае?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Здесь это просто удобный способ записи метода.
    Это не то же самое, что и стрелочка для делегатов.

    Если метод состоит из одного выражения/оператора, то можно убрать фигурные скобки и return, и заменить их на стрелку.
    Ответ написан
    2 комментария
  • Docker + Wireguard. В чём причина ssl timeout?

    slo_nik
    @slo_nik Автор вопроса
    Как подсказал ValdikSS проблема была в значении mtu.

    На локальном docker + wireguard
    Значение для wireguard оставляем без изменений - mtu 1420

    На сервере увеличиваем значение mtu для wireguard до 1500

    UPD.

    Второй вариант решения проблемы.

    На сервере ничего не меняем в настройках wireguard, значение mtu оставляем по умолчанию - 1420.

    На локальном:

    В корень проекта добавляем файл docker-compose.override.yml, в файле пишем

    version: "3"
    networks:
      default:
         driver: bridge
         driver_opts:
            com.docker.network.driver.mtu: 1420


    В директории /etc/docker создаём файл daemon.json, в файле прописываем значение mtu равным значению mtu для wireguard.

    {
       "mtu": 1420
    }


    В завершении выполняем команду

    systemctl restart docker

    Файл docker-compose.override.yml убирает первую ошибку "SSL connection timeout".
    Файл daemon.yml убирает вторую ошибку, зависание при загрузке пакетов.
    Ответ написан
    6 комментариев
  • Почему следующая программа возвращает правильное значение типа только в 3-м случае?

    vabka
    @vabka Куратор тега .NET
    Токсичный шарпист
    почему первые два возвращают System.Object и как это можно исправить?

    Потому-что dynamic под капотом - это на самом деле Object и куча рефлексии.
    List<dynamic> - это на самом деле List<object> (можешь загнать в sharplab и убедиться в этом)

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

    Например, если нельзя трогать ClientViewModelNew и ClientViewModelOld, то можно попробовать так:
    public interface IClientViewModel {
      public string EXa { get; set; }
    }
    
    public class ClientViewModelNewWrapper: IClientViewModel {
      private readonly ClientViewModelNew _internal;
      public ClientViewModelNewWrapper(ClientViewModelNew obj) => _internal = obj;
      public string EXa { get => _internal.EXa; set => _internal.EXa = value;}
    }
    
    public class ClientViewModelOldWrapper: IClientViewModel {
      private readonly ClientViewModelOld _internal;
      public ClientViewModelNewWrapper(ClientViewModelOld obj) => _internal = obj;
      public string EXa { get => _internal.EXa; set => _internal.EXa = value;}
    }
    Ответ написан