• Как разбить 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) обьекта?

    Да, можно. Будет что-то типа:
    Этот запрос добавит поле "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 комментария
  • Как работает лямбда в данном случае?

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

    Если метод состоит из одного выражения/оператора, то можно убрать фигурные скобки и 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-м случае?

    почему первые два возвращают 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;}
    }
    Ответ написан
  • Как можно вытащить type содержайщийся внутри List в переменную и использовать для др переменной?

    @Voland69
    Можно использовать generic, например сделать extension который возвращает переменную вашего типа с дефолтным значением или инфо о типе.
    dotnetfiddle

    using System;
    using System.Collections.Generic;
    					
    public class Program
    {
    	public static void Main()
    	{
    		var list1 = new List<string>();
    		var list2 = new List<double>();
    		var list3 = new List<MyCustomType>();
    		
    		var var1 = list1.MakeDefault();
    		var var2 = list2.MakeDefault();
    		var var3 = list3.MakeDefault();
    		
    		Console.WriteLine($"{var1}");
    		Console.WriteLine($"{var2}");
    		Console.WriteLine($"{var3}");
    	}
    }
    
    public static class GenericListExtensions
    {
    	public static Tuple<T, Type> MakeDefault<T>(this List<T> list)
    	{
    		return Tuple.Create<T, Type>(default(T), typeof(T));
    	}
    }
    
    public class MyCustomType {}
    Ответ написан
    4 комментария
  • Является ли приемлимой практикой использование JSON обьектов в столбцах таблицы базы данных PostgreSQL?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Если говорить об общем подходе - JSON в БД должен использоваться только и исключительно в случае, когда вся работа с JSON ограничивается простейшим "записать в БД" - "извлечь из БД". При этом модификация в момент записи/извлечения можно не учитывать.

    Если же JSON используется более нагруженно (поиск, сравнение, частичная модификация и пр.), то в большинстве случаев от его использования следует отказываться в пользу нормализованных plain-структур. При правильном индексировании они выиграют у JSON по потреблению ресурсов сервера. Хотя, конечно, в каждом отдельном случае нужно смотреть конкретные условия - тип использования, возможности оптимизации этого процесса в конкретной (версии) СУБД и пр. Да и то, JSON тут реально может конкурировать разве что с EAV.
    Ответ написан
    2 комментария
  • Является ли приемлимой практикой использование JSON обьектов в столбцах таблицы базы данных PostgreSQL?

    ma4akk
    @ma4akk
    Использование JSON объектов в столбцах таблицы базы данных PostgreSQL является приемлимой практикой и позволяет хранить сложные структуры данных в едином формате. Это упрощает их обработку и извлечение нужных данных в запросах. Однако, также следует учитывать, что хранение больших объемов данных в формате JSON может замедлить работу базы данных и увеличить нагрузку на сервер. Поэтому рекомендуется проводить оптимизацию запросов и использовать индексы для ускорения работы с JSON данными.
    Ответ написан
    5 комментариев
  • Как отловить ошибку соединения с POSTGRESQL в node.js?

    megafax
    @megafax
    web-программист
    Хм, для начала, внести в try.. catch пробовали?
    Ответ написан
    4 комментария
  • Какой самый быстрый дистрибутив Linux для программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У нас в садике говорили так - Размах - лошадиный, удар - муравьиный.
    Посоветуйте дистрибутив Linux для программирования недавно поставил Ubuntu но лагает жуть как.

    Парень собрался быть программистом под Linux. Оказалось что Линукс лагает.
    Это просто замечательный челлендж чтобы поискать в сети информацию по тонкой диагностике Linux.

    Я считаю что это будет полезный опыт. В Linux есть интерфейс ожиданий. Надо его найти активировать и посмотрть
    где там чего ждем. Если проблема в KDE/Gnome/XFCe то как раз - настал звездный час чтобы что-то новое
    попробовать. И отписать сюда по результатам.

    Все советы по железу и драйверам - тоже сюда до кучи. Плюсую.
    Ответ написан
    Комментировать