Задать вопрос
  • Есть ли жизнь после centos или только генту?

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

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

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

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

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

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

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

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

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

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

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

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

    Melkij
    @Melkij
    DBA для вашего 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 для вашего 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
    );
    Ответ написан
    Комментировать
  • Как скопировать файл с USB drive linux?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Воткните в скрипт
    whoami > /tmp/udev_test
    И вставьте флешку.

    Будет видно сразу две вещи:
    - запускается ли скрипт действительно udev'ом
    - от чьего имени запускается

    Мне так помнится, что udev всегда от рута исполняет скрипты. udev рестартовать не забыли, к слову?
    Ответ написан
    Комментировать
  • Жёсткий диск 4Tb Western Digital SE (WD4000F9YZ). Уровень шума 34 дб в режиме работы и 31 в простое. Это громко для домашнего ПК?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Если вы это не сами намерили приличным шумометром (или хотя бы лаборатория, данным которой вы доверяете) - то не обращайте на эти цифры никакого внимания. Маркетинг вам любые цифры понапишет.
    Ответ написан
    Комментировать
  • Какой HDD из списка выбрать?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Без разницы. Расходники.
    Смотрите цены и срок гарантии.
    Ответ написан
    Комментировать
  • Подсчёт количества рядов: подзапрос или left join?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    select
      a.id, a.title, a.content,
      count(c.id) comments
    from
      articles a
      left join comments c on c.article_id = a.id
    group by a.id

    Зачем вам count distinct тут внезапно понадобился и где потеряли группировку?

    Вообще count под OLTP жуткая вещь с точки зрения базы - это надо прочитать каждую строчку, проверить её видимость в текущей транзакции, проверить на null и всё только ради одной циферки. Добавьте в articles колонку с числом комментариев, а за актуальностью могут следить несколько простых триггеров.
    Ответ написан
    2 комментария
  • Как организовать репликацию БД?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Т.е организовать единую точку управления этими серверами.

    Может, лучше единую точку управления и делать? ansible/salt/chef/puppet, в конфигурации понаписать инициализацию нужного состояния таблицы.

    Для реплики - минимальная гранулярность, на сколько знаю, это таблица. И только для логической репликации.
    Ответ написан
    Комментировать
  • Пойдет ли современная оперативка на старом Core i3?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    i3 уже 5 разных поколений. И они успели покрыть даже 3 вида памяти: DDR3, DDR3L, DDR4. Вряд ли ваш вопрос про DDR4. А вот на грабли совместимости DDR3 и DDR3L встать можно - они требуют разное напряжение. На сколько помню, DDR3 умеют все i3, кроме новых i3 6xxx. А вот DDR3L - вроде бы только i3-4ххх и выше. При покупке модулей надо быть внимательнее, физически модули идентичны.

    Это не касаясь вопроса частоты памяти вовсе - уже необходимо смотреть конкретную модель процессора и конкретный подвид памяти.
    По частоте - нужно вдобавок смотреть материнскую плату. Контроллер памяти в процессоре официально сильно занижен, на усмотрение вендора матплаты (не говоря о разгоне) может штатно реализовывать более высокие частоты. Дивидендов от большой частоты, правда, не много даже на топовых Core, ну да это другой разговор.
    Высокочастотные модули типично реализуют в SPD настройки, на которых модуль должен завестить везде. Для получения его номинальной частоты и CL или включаются XMP-профили автоматически или вручную выставить настройки. Поэтому если не промахнуться по типу памяти - то должна завестить.

    Но при покупке памяти - всегда смотрите на манибек. Случаются проблемы совместимости конкретно этой памяти на конкретно этой материнке с конкретно этим процессором. А в других сочетаниях уже работает =)
    Ответ написан
    Комментировать