• Как установить pg_dump на Windows?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Переустановка PostgreSQL, во время установки выбрать "Command Line Tools" (тогда установится так же pg_dump).

    pgAdmin не включает в себя pg_dump.

    UPD: проблема была в переменной окружения PATH (не указывала на место расположения на другом диске, куда был установлен PostgreSQL)?
    Ответ написан
    5 комментариев
  • Как установить pg_dump на Windows?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    При установке значит PATH не был обновлен.
    Надо найти директорию, в которую установлен postgres и попробовать запустить оттуда.
    Возможный путь C:\Program Files\PostgreSQL\%version%\bin:
    - %version% - подставляешь свою версию
    - Все бинари лежат обычно в /bin директории (pg_ctl, pg_dump, initdb и др.)

    После рекомендую обновить PATH - добавить этот путь.

    Дополнительно: в настройках pgAdmin можно прописать кастомный путь до постгреса:
    File (правый верхний угол) -> Preferences -> Paths -> Binary paths
    Возможно после этого и pgAdmin заработает
    Ответ написан
    1 комментарий
  • Где взять эмодзи для мета тегов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Где взять эмодзи для мета тегов?

    Например https://unicodeplus.com/
    Те, какие нашел, не отображаются.

    Хорошо бы показать, что нашли, а так же сообщить, где именно не отображается. Огонь отображается точно в определенных случаях, другой вопрос, что отображение эмодзи в органике не гарантировано.
    Ответ написан
    Комментировать
  • Почему отказались от оператора GoTo в высокоуровневых языках?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Поскольку goto позволяет писать очень запутанный и непонятный код. Слишком легко написать плохой код.
    Ну не могут люди в голове удерживать спагетти из кучи возможных путей исполнения. if/else, да циклы - это людям понятно. Появилась инструкция goto изначально, потому что в машинных кодах, а значит и в асемблере эта инструкция есть. Оттуда она перекочевала в языки более высокого уровня. Процессоры, наоборот, if/else вообще не умеют. Вместо это там всякие условные goto.
    В новых языках программирования goto вообще нет, а в старых его обычно запрещают использовать в правилах кодовой базы. Если кто злоупотребляет - ему дают по рукам.
    Ответ написан
  • Почему отказались от оператора GoTo в высокоуровневых языках?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Никакие комьютеры не отказались от goto.
    Кроме того, это не функция, а оператор.

    Но если писать длинный код активно используя goto, в нем будет крайне сложно разобраться.
    Поэтому в некоторых языках программирования его может и не быть. Но на архитектурном уровне и низкоуровневом ассемблере, он естественно есть.
    Ответ написан
    Комментировать
  • Существует ли микроразметка для фактов?

    pro100taa
    @pro100taa
    Больше подходит такой https://developers.google.com/search/docs/appearan...
    Ответ написан
    Комментировать
  • Как автоматически подставлять значение в value?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Начинающие очень часто делают глупости. И записывать в базе данных количество строк в ней - одна из них.
    Точно так же, как вы сейчас получаете количество через SELECT COUNT(*), это можно будет сделать в любой момент времени потом. И ничего никуда подставлять не надо.

    Плюс $table_name выглядит еще одной глупостью. Имя таблицы не должно быть динамическим.
    Ответ написан
    9 комментариев
  • Ошибка unterminated string literal?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Кавычек закрывающих нет.
    Ответ написан
    Комментировать
  • Связи в ООП, Агрегация в PHP как часто используется?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Основа всех современных фреймворков - это контейнер зависимостей. Который, создавая на лету экземпляр требующегося для обработки НТТР запроса класса, "внедряет" в него (через конструктор или через параметры методов) необходимые этому создаваемому объекту/вызываемому методу зависимости. Создавая их на лету или используя готовые.
    И, в свою очередь, создавая эти зависимости, также внедряет нужные уже им сервисы. И так по цепочке.

    Если вы посмотрите на пример реализации контроллера в Симфони например, то вы нигде не увидите что-то вроде
    public function process()
    {
        $request = new Request();
        $param = $request->get('name')
    }

    а только
    public function process(Request $request)
    {
        $param = $this->request->get('name')
    }


    Заметил, что в PHP если и используется связи между объектами(ассоциация), то только в виде композиции,

    А вот тут я реально удивился. Скорее это я бы у вас попросил "пример кода" в котором "вы заметили" композицию. Потому что в современном РНР коде её днем с огнём не найти - везде сплошная агрегация. Даже там, где по сути подошла бы и композиция. Давно ли вы видели в коде создание new Сlass внутри класса вместо использования $this->object? И если да - то мне страшно любопытно - где?

    Хотя нет, кажется я понял. Есть такие гении, которые действительно, вместо
    class User
    {
        public function __construct(Database $db)
        {
            $this->db = $db;
        }
    }

    пишут
    class User
    {
        protected $db;
        public function __construct()
        {
            $this->db = new Database();
        }
    }

    Но тут надо понимать, что это дети, которые вчера увидели редактор кода. Больше никто так не пишет.
    (Тут надо оговориться, что это не догма, и внедрение через параметры не обязательно. Вполне можно создать какой-то объект и на лету, но это случается гораздо реже, чем использование уже готового)

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

    А здесь вы вообще какую-то чушь написали. Если говорить про классы, то они вообще почти никогда не создаются кодом на лету. Классы пишет программист, и сохраняет в коде программы. Которая потом выполняется, и создает из этих классов объекты.
    А если вы имели в виду объекты, то их создаётся миллион, и все они "попадают" в другие объекты. Даже при обработке НТТР запроса
    Ответ написан
    9 комментариев
  • Почему выдает ошибка о том что индекс вышел за пределы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Видимо, потому, что массив zombies недостаточно большой.
    Ответ написан
    3 комментария
  • Как исправить ошибку NullReferenceException в Unity3D?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Где инициализация moneyText?
    Ответ написан
    1 комментарий
  • Как подключить бд к серверу в docker-compose?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Server=localhost

    Чей локалхост? У каждого контейнера он свой. Тогда какой указывать? Оптимально - по имени.
    https://docs.docker.com/compose/networking/
    Reference containers by name, not IP, whenever possible. Otherwise you’ll need to constantly update the IP address you use.

    Port=6002

    Чья туфля порт? Внутри докер-сети (Вы же указали: networks>postgres-network) контейнеры общаются по внутренним портам (рекомендуется).

    Если резюмировать, то будет примерно так (поправить местами при необходимости):

    "Postgres": "Server=localhost; Port=6002; Database=post; User ID=postgres; Password=passwd; Pooling=true"

    "Postgres": "Server=postgres_db; Port=5432; Database=post; User ID=postgres; Password=passwd; Pooling=true"

    docker-compose.yml:
    version: '3.8'
    
    networks:
      postgres-network:
        driver: bridge
    
    services:
      gchain.posts.api:
        image: gchain.posts.api
        build:
          context: .
          dockerfile: GChain.Posts.Api/Dockerfile
        ports:
          - "80:8080"
        networks:
          - postgres-network
        depends_on:
          - postgres_db
    
      postgres_db:
        container_name: postgres_post
        image: postgres:latest
        environment:
          POSTGRES_USER: ${POSTGRES_USER:-postgres}
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-passwd}
          POSTGRES_DB: post
        volumes:
          - postgres-data:/var/lib/postgresql/data
        ports:
          - "6002:5432"
        networks:
          - postgres-network
        restart: unless-stopped
    
    volumes:
      postgres-data:
    Ответ написан
    Комментировать
  • Как подключить бд к серверу в docker-compose?

    @q2digger
    никого не трогаю, починяю примус
    на этот вопрос тут наверное раз в день ктото отвечает.
    у каждого докер-контейнера СВОЙ локалхост и свой 127.0.0.1
    К базе из контейнера API обращайтесь по имени контейнера базы и по ее порту контейнера то есть
    postgres_db: 5432
    Ответ написан
    2 комментария
  • Кому отдать предпочтение iMac или Windows PC?

    @Drno
    У тебя не в железе проблема, в а прокладке между рулём и сиденьем.
    Поставь нормальную винду, поднастрой её немного.
    настрой железо
    всё будет летать.
    я хз как у тебя это может лагать, разве что там дикие перегревы или кривой биос

    Хотелось бы видеть замеры температуры для начала, при нагрузке и стресс тесте. например от OCCT или аида64
    Ответ написан
    6 комментариев
  • Сколько вообще целых и дробных чисел с неповторяющимися цифрами существует?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Давайте прикинем.
    Для дробных чисел, имеющих хоть один значащий разряд перед запятой и один после мы должны выбрать первую цифру из девяти (ноль исключаем), последнюю из восьми (исключаем уже выбранную и ноль), третью из восьми оставшихся, четвёртую из семи и т.д. Кроме того, точка может стоять в одной из n-1 позиций, где n - количество цифр.
    Получаем:
    Чисел из 10 цифр: 9 * 8 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 * 9 = 26'127'360
    Чисел из 9 цифр: 9 * 8 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 8 = 23'224'320
    Чисел из 8 цифр: 9 * 8 * 8 * 7 * 6 * 5 * 4 * 3 * 7 = 10'160'640
    ...
    Чисел из 2 цифр: 9 * 8 * 1 = 72
    Просуммировав, получим 63'130'248
    Добавим сюда числа вида 0.xxx. Поскольку ноль фиксирован, первую цифру после него мы можем выбрать из девяти, вторую из восьми оставшихся и так далее.
    Чисел из 10 цифр: 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 362'880
    Чисел из 9 цифр: 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 = 362'880
    Чисел из 8 цифр: 9 * 8 * 7 * 6 * 5 * 4 * 3 = 181'440
    ...
    Чисел из 2 цифр: 9
    Сумма 986'409
    Теперь возьмём целые числа. В первой позиции не может быть нуля, поэтому первую цифру выбираем из девяти. Вторую из девяти оставшихся, третью из восьми и т.д.
    Чисел из 10 цифр: 9 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 3'265'920
    Чисел из 9 цифр: 9 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 = 3'265'920
    Чисел из 8 цифр: 9 * 9 * 8 * 7 * 6 * 5 * 4 * 3 = 1'632'960
    ...
    Чисел из 2 цифр: 9 * 9 = 81
    Чисел из 1 цифры: 9
    Сумма 8'877'690
    Сложим всё, добавив ноль, получим 72'994'348.
    Ответ написан
    5 комментариев
  • Как правильно тестировать базу данных в .NET?

    Splo1ter
    @Splo1ter
    .NET Developer (9 years+)
    Тестировать бд не надо
    Надо тестить общую логику.
    Поднимаете контейнер с базой данных и тестируете.
    База данных существует во время всей сессии тестов.
    Потом контейнер убивается.
    Ответ написан
    3 комментария
  • Как правильно тестировать базу данных в .NET?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Решение простое - создаешь мок БД для тестов.
    1. Тест начинается - запускаешь БД и заполняешь данными необходимыми (как сказал Василий Банников можно сделать дамп с удаленными чувствительными данными)
    2. После каждого теста необходимо выполнить откат - если какие-то данные были добавлены/удалены/изменены
    3. При завершении тестирования удаляешь БД

    На мой взгляд, здесь просто много инфраструктурной работы. Полезные инструменты:
    1. Testcontainers - запускаешь БД в контейнере. Сам ей пользовался, есть много шаблонов для разных БД, чтобы с нуля не писать все. Можно также скрипт инициализации (схема, дамп) добавить - вот тебе и настройка
    2. В зависимости от фреймворка есть разные механизмы запуска кода после каждого тест-кейса. Если про xUnit, то:
      1. Тестовый класс реализует IDisposable - выполняется после каждого тест-кейса. Можно тут реализовать логику отката БД
      2. Для инициализации самого контейнера (чтобы каждый раз не запускать заново) - IClassFixture



    Также никто не отменял внешний инстанс БД использовать - просишь дба создать отдельную БД специально для тестов, просто запускать теперь параллельно не получится
    Ответ написан
    Комментировать
  • Как правильно тестировать базу данных в .NET?

    vabka
    @vabka Куратор тега .NET
    Токсичный шарпист
    Вся логика выборок, фильтров и т.д. вынесена на уровень Storage Procedure, значит не получится создать тестовую БД с тестовыми данными.

    Это ещё почему? Во время прогона тестов поднимаете полноценную СУБД, которую заполняете всеми табличками и процедурами.
    Больше вариантов нет, если хочется этот слой протестировать.
    При наличии миграций - это не должно быть сильно сложно.

    В крайнем случае можно взять дамп продовой базы, вычистив все чувствительные данные.
    Ответ написан
    2 комментария
  • Как правильно тестировать базу данных в .NET?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне не нравится сама идея тестирования базы.

    Тестируют обычно бизнес логику. Слой Services, Processors e.t.c.

    Если ваш язык программирования бизнес-логики это PL/SQL, T/SQL e.t.c. то я вам сочувствую.
    Наверное в этом и есть главная причина ваших трудностей. Эти языки неудобно тестировать
    и практики тестирования наподобие *Unit, *Property e.t.c. тестов там исторически не прижились.

    Создание тестовой БД в таком случае - да. Это компромисс. Вот и двигайте в этом направлении.
    Поднимайте все в контейнере типа docker.
    Ответ написан
    6 комментариев
  • Можно ли с нуля обучится программированию, используя только интернет и не тратив деньги?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Не только можно, но и нужно, ибо основа программирования и разработки ПО - это прежде всего самообразование. Начните вот с чего-то типа вот такого: https://roadmap.sh/
    Ответ написан
    1 комментарий