Задать вопрос
  • Не срабатывает preg_match_all?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    '#.*'.$value.'.*#is'

    Кстати $value у меня образуется следующим способом - $value = 'выбор?.*'.

    А почему должно найтись что-то ещё? Вы захватили всё от начала и до конца строки.
    Это-то единственное совпадение регулярка уступила и то не по своей воле, а ради хоть одного совпадения всего выражения.
    Ответ написан
  • Есть ли аналоги функции to_char в PostgreSQL?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    lpad?
    Не очень понятно, что именно функция делает.
    В любом случае, можно написать свою реализацию.
    Ответ написан
    Комментировать
  • Разбить обычный HDD диск: 1 блин = 1 раздел. Реально?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    1) нет, нереально. LBA является абстракцией и адресуется по усмотрению прошивки диска.
    2) прошивка может по собственному усмотрению в любое время перемещать трансляцию внешних LBA в любое место всего ей доступного массива памяти (именно доступного прошивке, что всегда больше доступного пользователю объёма).

    Если вы ограничены местом - есть игрушки подобного плана: https://www.startech.com/HDD/Adapters/Dual-mSATA-S... Пара mSATA с чипом рейд-контроллера в формате 2,5" диска.
    Для 3,5" наверняка и под пару 2,5" устройств есть подобные.
    Ответ написан
    1 комментарий
  • Как корректно сделать запрос с оператором IN в PGSQL?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Покажите SQL, а не как вы его генерируете.
    Скорей всего IN ('123,321,456,654'), что, конечно, числом не является. Вопрос не имеет отношения к pg и имеет только к вашей библиотеки доступа, как подставить в in список значений.
    Ответ написан
    Комментировать
  • Запустить функции асинхронно с получением результата(php)?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    curl_multi или какая-нибудь обёртка поверх - сам по себе не очень удобен.
    С soap сложнее. Можно поковырять nusoap реализацию, нельзя ли вытянуть curl_exec во внешний мир.

    Можно уйти в модные микросервисы: написать для каждого поставщика транзитный микросервис, который делает запрос к его апи, перекодирует в ваш внутренний формат. Мультикурлом запросить ваши микросервисы. Поставщик, соответственно, может давать любое синхронное апи, вы всё равно сможете всех опрашивать одновременно.

    Можно порыться и именно в многопоточный код, pecl pthreads даёт такую возможность в php.
    Ответ написан
    Комментировать
  • Как указать срок действия подтверждения регистрации?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Сутки так по-английски и пишутся:
    DELETE FROM Users WHERE regdate < (NOW() - interval 1 day) AND confirmed = 0;
    Ответ написан
    2 комментария
  • Есть ли жизнь после centos или только генту?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Debian - это не про последние версии. Есть теперь уже официальные репозитории backports:, но и те отстают (или просто никто не портировал пакет) https://backports.debian.org/ Сюда приходят версии поновее, wine 1.8.2 в jessie вполне себе есть.
    Стабильный дебиан означает заморозку версий. Т.е. поставил и с приличной вероятностью ближайший апдейт не принесёт головной боли. Любимый DE останется тем же самым любимым DE, а не непойми чем и т.д.

    melkij@melkij:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Debian
    Description:	Debian GNU/Linux 8.5 (jessie)
    Release:	8.5
    Codename:	jessie
    melkij@melkij:~$ dpkg -l | grep systemd
    ii  libsystemd0:amd64                     215-17+deb8u4                        amd64        systemd utility library
    ii  libsystemd0:i386                      215-17+deb8u4                        i386         systemd utility library
    melkij@melkij:~$

    Ну, в wheezy тоже всякое невыпиливаемое libpulse0 болталось. Как я такое получил:
    Пришлось взять пару пакетов из репозитория форка дебиана - devuan
    deb http://packages.devuan.org/devuan/ jessie main
    И чуток /etc/apt/preferences.d/ чтобы ставилось только то что нужно и не ставилось то что не нужно
    Package: systemd systemd:amd64 systemd:i386
    Pin: origin
    Pin-Priority: -1
    
    Package: *
    Pin: origin packages.devuan.org
    Pin-Priority: 50
    
    Package: libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 policykit-1
    Pin: origin packages.devuan.org
    Pin-Priority: 700
    
    Package: udisks2 libudisks2-0 cgmanager libcgmanager0
    Pin: origin packages.devuan.org
    Pin-Priority: 700


    По идее, это будет работать и на тестовой версии дебиана - вот там уже пакеты посвежее. Но возможно там поттеринг прибит гвоздями ещё капитальнее.
    И ещё момент, вы говорите о gnome-terminal. Значит, вы пользуетесь gnome3? На сколько я знаю, актуальных версий уже прибито к поттерингу намертво и не спасут даже source-based дистрибьютивы.

    Если нужны свежие десктопные версии - то я бы попробовал arch.
    Ответ написан
    1 комментарий
  • Как составить запрос на выборку в Mysql?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    mysql... Опять же нет никаких средств сгенерировать табличное представление из внешних данных, кроме:
    Сделать временную таблицу
    create temporary table external_geo_ids (ext_id int(11) not null);
    insert into external_geo_ids values (1),(2),(-1);
    select /**/ 
    from external_geo_ids 
    left join geo_regions_yandex on GeoRegionId=ext_id;

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

    Или на лету джойнить подзапрос с бесконечными union all
    select /**/ 
    from (
        select 1 as ext_id
        union all
        select 2
        union all
        select -1
    ) external_geo_ids 
    left join geo_regions_yandex on GeoRegionId=ext_id;
    Ответ написан
    Комментировать
  • Возможно ли отсортировать недвижимость где владелец был один и тот же больше трёх лет подряд?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    У mysql с такими запросами печально. Ни оконных функций, ни ещё чего-нибудь полезного.

    В порядке утреннего бреда решение в лоб:
    select property_reg_num, property_owner_name_id from
        tablename y1
        join tablename y2 using(property_reg_num, property_owner_name_id)
        join tablename y3 using(property_reg_num, property_owner_name_id)
    where y2.property_record_on_year = y1.property_record_on_year + 1
    and y3.property_record_on_year = y2.property_record_on_year + 1

    С уникальным ограничением по property_reg_num & property_owner_name_id & property_record_on_year результат должен быть правильным.
    Ответ написан
    Комментировать
  • Почему у меня выводятся ???? мнесто кракозябр?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    set names - решение неверное, что даже заслужило отдельной страницы в мануале: php.net/manual/en/mysqlinfo.concepts.charset.php

    Решение правильное:
    $mysqli->set_charset('utf8');
    Ответ написан
    Комментировать
  • Как выбрать записи, которые созданы за какую то дату, если дата создания храниться в timestamp?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Выборка промежутка будет работать по индексу по этому полю, который зачастую уже есть и всё равно нужен для других запросов.

    Другие варианты возможны - явное приведение к дате ::date, штатные функции обработки датывремени date_trunc, date и любая stable хранимка. И эти способы тоже могут работать по индексу, но специально созданному функциональному индексу именно для этого выражения.
    Ответ написан
  • Include class наследование, в чем проблема?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Потому что сначала сущность объявляйте, а потом используйте. Не наоборот.
    И вообще PSR-1, #2.3
    https://github.com/php-fig/fig-standards/blob/mast...
    A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both.
    Ответ написан
    1 комментарий
  • Как попасть в среду postgres на debian?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Рутовый доступ к базе предоставляется для пользователя postgres (системный, без пароля, авторизоваться можно через sudo):
    sudo -u postgres psql
    Ответ написан
    1 комментарий
  • На какой козе подъехать к Президентской библиотке?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Смириться и не искать приключений - поставить на виртуалку какую-нибудь винду с сервелатом.

    Поискать приключений:
    заменить user-agent браузера на тот, что передаёт iPad. Дальше по обстоятельствам.

    Поискать много приключений:
    Зарыться во фронтенд, представляя серверную часть чёрным ящиком и отреверсить механизм получения интересующих данных.
    Ответ написан
    1 комментарий
  • Потянет ли блок питания эти комплектующие?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Я ту модель нашёл? Ископаемый кусок жести даже по паспорту на 10А по +12В линии? Одна только gts 450 по паспорту 106вт - т.е. почти 9 ампер. А ещё процессор полностью на +12В и чуток другой мелочёвки до кучи.
    Ответ написан
    Комментировать
  • Как достать значение из объекта?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    var_dump вам что сказал? object! Так о чём вопрос? Как обратиться к свойству объекта? Так же как всегда: php.net/manual/en/language.oop5.basic.php

    А ещё у json_decode есть полезный второй параметр.
    Ответ написан
  • Как подключить второй отключаемый источник питания?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    1. видеокарты получают до 75вт через слот PCI-E. У меня большие сомнения, что второй блок можно отключать.
    Просто два блока актив-актив сделать и то нетривиально. Есть заметная проблема - видеокарта - это исключительно +12В питание. Далеко не каждый блок питания нормально отнесётся к потреблению в десятки ампер по +12В и нулевому - по +3.3В и +5В
    2. "от кхетайских братьев". Один хороший более мощный БП может иметь более высокий КПД на низкой нагрузке. Экономически... Допустим, у БП из-за малой потребляемой мощности КПД в районе 0,7 (и даже это низкий показатель среди бюджетников). Допустим, у вашего 150вт - кпд в районе 0,85 - это очень хороший показатель на 1/3 номинальной мощности. Пересчитываем из потребления в 50вт.
    китаец слопает 59вт, 42кВт*ч за месяц
    бюджетный более мощный - 71вт, 51кВт*ч за месяц
    приличный БП кпд 0.8 62вт, 45кВт*ч
    Сколько у вас стоят 3кВт*ч? Вы уверены, что ваш китайский БП имеет КПД в 0,85? А не 0,7? Или даже не 0,6?

    Упс, отвлекли, уже всё расписали до меня.
    Ответ написан
    Комментировать
  • Почему свич недоступен через ровные промежутки времени?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    5 минут? Весьма типичное значение таймаута кеша MAC Learning. Рабочая гипотеза - отвечает на не тот порт или не тот vlan. Возможно ошибка настройки vlan'ов. Или ошибка прошивки
    Ответ написан
    1 комментарий
  • В PHP можно указать диапазон IP?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    $ip = ip2long($_SERVER['REMOTE_ADDR']);
    var_dump(ip2long('109.184.0.0') <= $ip and $ip <= ip2long('109.184.255.255'));


    inet_pton по идее тоже сравнивается корректно и с поддержкой ipv6, но надо проверять.
    Ответ написан
    Комментировать
  • Как правильно сформировать запрос к mysql?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Mysql? Неудобно.

    select /**/ from (
        select 123321 as id
        union all
        select 154874
        union all
        select 12233
    ) as targets
    where not exists (
        select 1 from tablename where tablename.id = targets.id
    );
    Ответ написан
    Комментировать