Задать вопрос
  • Выбор между оперативной памятью. Двухканал или низкие тайминги?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Смотрим.

    DDR4-2400 даёт 19200мб/с, при CL17 имеет латентность 14.16 ns
    DDR4-3200 даёт 25600мб/с, при CL20 имеет латентность 12.5 ns

    Выше пропускная способность - лучше
    Ниже латентность - лучше

    Это даже не касаясь вопроса второго канала памяти, в теории дающего удвоение пропускной способности при той же латентности.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего будет очень сложно найти приложение на котором будет очевидна разница.
    Синтетические тесты памяти бомбардируют запросами все адресное пространство обычно
    и на этом показывают прирост. В реальности-же приложения работают не так и чаще всего
    кеши L1-L3 будут сильно сглаживать разницу. Вот. И частота памяти здесь просто так не умножается
    на прирост производительности. Об этом еще старик Амдал писал в своих сочинениях.

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

    Adamos
    @Adamos
    Если у вас пыховое приложение на древней версии, в нем стопудово куча дублирования кода и велосипедов там, где фреймворк предлагает готовое, отлаженное и стандартное.
    Нет смысла переписывать велосипеды на ООП только для того, чтобы потом понять, что из них нужно только вычленить (и все равно во многом переписать) бизнес-логику, а все остальное надо просто выкинуть.
    Кроме того, CRM - это куча однообразного контента и на фронте. Сразу перенести его на современный фрейм, в котором данные на бэке и фронте аккуратно синхронизируются, может опять-таки оказаться быстрее, чем мучить те велосипеды.
    Ну, а если все сделано в худшем стиле и комком - вовсе оставить копролит и переписать с нуля шаг за шагом. Именно для последующего развития и поддержки.
    Ответ написан
    1 комментарий
  • Проблема с PHP на битрикс. Что делать?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    The assert.quiet_eval ini directive and the ASSERT_QUIET_EVAL constant have also been removed, as they would no longer have any effect.
    https://www.php.net/manual/en/migration80.incompat...

    Очевидно, вы обновились на php 8, который ваша версия Битрикса не поддерживает. Нужно откатиться, обновить Битрикс и обновить php снова.

    Фиксить по одной проблеме прямо в исходниках, как вы сделали в предыдущем своём вопросе - это безумный путь, вы будете этим заниматься несколько месяцев.
    Ответ написан
    2 комментария
  • Как правильно использовать PDO если несколько php скриптов?

    Adamos
    @Adamos
    Правильная работа с БД в РНР подразумевает, что вся работа с БД собрана в классы, а из скриптов дергаются только и исключительно методы этих классов. Никакого понятия о базе скрипты иметь вообще не должны.
    Ответ написан
    Комментировать
  • Нормальная ли практика делать сайт на разных языках в поддоменах?

    delphinpro
    @delphinpro
    frontend developer
    Мультиязычность (контента) обычно реализуется двумя методами
    1. Отдельные колонки под языки в каждой таблице.
    2. Отдельные таблицы одноименных моделей под каждый язык.
    Для реализации обоих способов есть уже несколько готовых пакетов.
    https://yandex.ru/search/?text=laravel+multilangua...

    А уж какую адресацию вы сделаете, особой роли не играет. Это могут быть и поддомены (en.site.ru), и поддиректории (site.ru/en).

    Я сейчас говорю о переводах именно контента. С переводом интерфейса проблем нет, тут используется встроенные методы локализации.
    Ответ написан
  • Asus k53br BIOS урезан как расширить?

    Никак.
    Ответ написан
    Комментировать
  • Стоит ли менять термоинтерфейс?

    hint000
    @hint000
    у админа три руки
    В интернете пишут что нужно менять раз в 6-12 месяцев.
    Это миф. Развод со стороны тех, кто на этом зарабатывает. И наивность со стороны тех кто поверил и распространяет миф.
    После 5 лет вполне можно поменять, но и то не строго обязательно. Менять нужно, если заметно, что ухудшилось охлаждение. Менять нужно, если по какой-то причине снимали систему охлаждения (например, для ремонта материнской платы или для того, чтобы лучше почистить от пыли). Если температура в норме, то лучше не лезть. Потому что всегда есть шанс накосячить. Даже в сервисном центре могут накосячить (хоть и гораздо реже, чем косячат любители).
    Ответ написан
    Комментировать
  • Как массово изменить значение ID в таблице wp_posts из базы данных сайта Wordpress?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQL
    Седой и строгий
    Идентификаторы должны оставаться неизменны, в этом их суть.
    Ответ написан
    Комментировать
  • Как вызвать метод класса внутри другого метода?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вы НЕ возвращаете ответ ИЗ контроллера, вы возвращаете ответ в функцию. Так работать не будет, смотрите мой комментарий с выдержкой из доки.
    -$this->validateItems($request, $rules);
    +return $this->validateItems($request, $rules);
    Ответ написан
    Комментировать
  • Проблема с проводом для ssd. Как решить?

    @rPman
    да переходники есть.

    Потребительские ssd это скорее всего sata, это такой тонкий разъем с длинной щелью (тип мама) в виде буквы Г, а разем-штырек (папа) на диске.

    Непонятный доп. провод питания это устаревший стандарт molex 4 pin (им к примеру4 питались жесткие диски ide)

    Вот пример такого переходника

    Так же возможно использование разветвителя типа такого
    Ответ написан
    4 комментария
  • Регулярное выражение огрнаичение чисел только 4 и от 1900 до 2100?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    От 1900 до 2100:
    spoiler
    ^(19[0-9]{2}|20[0-9]{2}|2100)$
    Пример:
    let regex = /^(19[0-9]{2}|20[0-9]{2}|2100)$/;
    let test = regex.test("2000"); // возвращает true
    let test2 = regex.test("1899"); // возвращает false

    А если надо от 1990 до 2100 (в вопросе у тебя нашел как минимум три опечатки), то вот:
    spoiler
    ^(199[0-9]|20[0-9]{2}|2100)$
    Ответ написан
    Комментировать
  • Регулярное выражение огрнаичение чисел только 4 и от 1900 до 2100?

    Seasle
    @Seasle Куратор тега JavaScript
    /^199\d|20\d{2}|2100$/
    Ответ написан
    Комментировать
  • Где найти отправку письма с восстановлением пароля в дефолтной авторизации laravel?

    Frostealth
    @Frostealth
    Backend Developer
    PasswordBroker вызывает метод `sendPasswordResetNotification` у экземплара юзера.
    В модели юзера, вероятно, используется трейт CanResetPassword, который и реализует указанный метод, отправляя уведомление ResetPassword.

    Иными словами, отправка письма находится в методе `sendPasswordResetNotification()` экземпляра класса `app\Models\User`, а реализация метода определена трейтом `\Illuminate\Auth\Passwords\CanResetPassword`.
    Ответ написан
    Комментировать
  • Как используя IMAGEMAGICK получить pdf фаил с размером страницы в сантиметрах?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В первом варианте вы сказали системе, что у вас разрешение измеряется в пикселах на сантиметр, и один сантиметр - это 91 пиксел. Вполне логично, что вы получаете (27300/91)x(17400/91) = 300x191.21 сантиметра.
    Во втором варианте вы задаёте 753 пиксела на дюйм, получая (27300/753)x(17400/753) = 36.25x23.11 дюйма или 92.09x58.69 сантиметра.
    Давайте подумаем, если нам надо, чтобы 27300 пикселов укладывались ровно в 91 сантиметр, то сколько пикселов должно быть в одном сантиметре? Ба, да это же пропорция из третьего класса. 27300 / 91 = x / 1 => x = 300.
    А для 17400 точек и 59 сантиметров? 17400 / 59 = y / 1 => y = 294.91525
    Ответ написан
    Комментировать
  • Как организовать поиск в БД с 1000 таблиц?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Даю совет: базу данных, в которой "есть очень много таблиц (>10.000), в каждой от 1 до 50 строк" нужно удалять, а того, кто её проектировал, увольнять с позором.
    Ответ написан
    4 комментария
  • Как сделать что-бы в каждой ветке хранить разные файлы?

    GavriKos
    @GavriKos
    А как потом эти модули будут попадать на прод?

    Пока выглядит так, что вам больше подойдут сабмодули, чем ветки
    Ответ написан
    4 комментария
  • Завершается программа на Си из-за одной строчки кода. Что делать?

    sprintf(_playingField[16], "##################################");

    В этой строчке выход за границы массива. Массив на 16 элементов, а индексация начинается с 0. Следовательно, последний индекс равен 15.
    Ответ написан
    1 комментарий
  • Вопрос с собеседования: Есть ли в PHP нативная возможность инициализировать переменную как в функции preg_match()?

    neuotq
    @neuotq
    Прокрастинация
    Вас проверяли на знание того, как передаются переменные в функция в php. Переменные передаются всегда по значению, те передаёте переменную в функцию, туда копируется в новую переменную значение оригинальной.

    С помощью амперсанда & мы можем заставить передавать ссылку на эту же переменную в памяти. И тогда манипуляции с ней внутри функции будут равны манипуляциям вне.

    С объектами не большая путаница происходит, но только из-за того что многие не думают/забывают что хранится в переменной когда создаётся объект. При создании объекта в саму переменную помещается его идентификатор, по которому php и обращается к этому объекту.
    Ну и соответственно при передаче такой переменной в функцию, мы копируем этот идентификатор в новую переменную. Переменная уже другая, независимая от той что была, но идентификатор объекта тот же. Поэтому манипуляции с объектом в функции(обращение к свойствам/методам) отразятся на объекте с этим идентификатором. И со стороны выглядит словно переменная с объектом всегда передаётся по ссылке(словно стоит амперсанд), но это не так. Например внутри функции вы перезапишете переменную(к примеру присвоите null) то оригинальная переменная с объектом не поменяется.

    А вот есть если передать её по ссылке, те с амперсандом, то внутри функции будет переменная со ссылкой на переменную вне, и поэтому не только манипуляции с объектом, но и перетирание переменной в целом повлияет.

    class A {
        public $foo = 1;
    }
    
    //создали переменную
    //в ней хранится id объекта, сам объект где-то в памяти оптимизированно лежит
    $newObj = new A;
    
    //Вывод 1
    echo $newObj->foo;
    
    function foo($obj) {
    	//в obj скопирован id объекта
    	//тк он тот же, то меняется и оригинальный объект
    	$obj->foo = 2;
    	//локальная переменная перетёрся, больше id объекта не хранит
    	//на внешнюю не повлияло
    	$obj = null;
    	
    }
    
    foo($newObj);
    // получили 2
    echo $newObj->foo;
    
    
    function bar(&$obj) {
    	//obj ссылается на тоже место в памяти, что и внешняя переменная с id объета
    	//тк он тот же, то меняется и оригинальный объект (тут логично, тк по ссылке)
    	$obj->foo = 2;
    	//локальная переменная перетёрся, больше id объекта не хранит
    	//внешняя тоже перетрётся
    	$obj = null;
    }
    
    
    bar($newObj);
    //ошибка предупреждение, нельзя читать свойства на null
    echo $newObj->foo;


    Ну и зная всё это, вы можете написать свою простую функцию, по типа прегматча.
    function mySum($a, $b, &$result) {
    	$result = $a + $b;
    }
    //первые два параметра по значению, в третий передаём переменную
    //она тут же инициализируется (как если бы её до этого написать просто $res;)
    // и передаётся её ссылка внутрь функции
    mySum(1,2, $res);
    
    //3
    echo $res;
    Ответ написан
    Комментировать
  • Вопрос с собеседования: Есть ли в PHP нативная возможность инициализировать переменную как в функции preg_match()?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    function foo(&$out) 
    {
    	$out = 'hello!';
    }
    
    foo($hello);
    var_dump($hello);
    Ответ написан
    Комментировать