Задать вопрос
  • Нормально ли, что если я удалю что-то из MySQL вручную, а не через админку на сайте, то сайт будет работать некорректно?

    SwoDs
    @SwoDs
    PHP YII2
    Никто в базу лазить не должен, разве только для создания таблиц и столбцов, да и то это должно быть через миграции.

    Вам повезло что у "автора" пустая строка, а не критическая ошибка отсутствия переменной.

    В целом у вас слишком много вопросов, на большую часть нельзя дать однозначного ответа
    Ответ написан
    Комментировать
  • Почему ~ не возвращает всех соседей?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ~ применяется к элементам, имеющим того же родителя и расположенным после целевого. #I имеет того же родителя, что и #Learn, но расположен раньше, соответственно не попадает под правило #Learn:target ~ #I.
    ЕМНИП, CSS вообще не имеет селекторов для выбора предшествующего или родительского элементов.
    Ответ написан
    1 комментарий
  • Когда в БД нужно делать "По умолчанию: Null", а когда "По умолчанию: НЕТ"?

    Stalker_RED
    @Stalker_RED
    Конечно, может оказаться так, что базу проектировали невнимательно, в спешке или еще как-то криво, но чаще оказывается, что этот "беспорядок" для чего-то нужен.

    Представим, что по требованиям бизнес-логики в табличке "user" поле "дата регистрации" обязательно должно быть заполнена. Если ее нет - это ошибка. Ставим not null.

    И "email" обязательный - тоже not null.

    В этой-же таблице поле "phone" необязательное - значит придется разрешить null.
    Ответ написан
    Комментировать
  • С какой целью может быть создан подозрительный WiFi у соседей с моими SSID/Ключом?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Возможно, у соседа его собственный девайс хуже покрывал некоторые участки квартиры, чем ваш на тех же участках, и сосед таким образом создал себе бесшовное покрытие по всей квартире.
    Ответ написан
    Комментировать
  • Как применяется импликация в программировании?

    wiki смотрели?

    В языках программирования импликация используется, как правило, неявно. Например, конструкция, предполагающая истинность условия B в данном участке программы:

    if ( выражение A ) {
        if ( выражение B ) {
           сделать_что-то_полезное
        }
           else {
           <font color=Red>сбой</font>
        };
     }

    будет успешно выполняться тогда и только тогда, когда верна импликация A→B. В то же время эти условия можно спокойно написать в одной строке, объединив их оператором конъюнкции.

    if ( выражение A ) and ( выражение B ) {
        сделать_что-то_полезное
     }


    При стандартных опциях компилятора (Delphi, C++ Builder) проверка идет до тех пор, пока результат не станет очевидным, и если А ложно, то (А и В) ложно вне зависимости от В, и не нужно ставить еще один условный оператор.

    //выражение A - ложно
     if ( выражение A ) {
        //Дальше проверка не идет
        ... if ( выражение B ) {
           сделать_что-то_полезное
        } ...
     }


    В функциональных языках импликация может быть не только правилом вычислений, но и видом отношения между данными, то есть обрабатываться (в том числе и выполняться) и создаваться по ходу выполнения программы.
    Ответ написан
    8 комментариев
  • Не могу понять задание. Что имел в виду преподаватель?

    YumeReaver
    @YumeReaver
    Бургомистр
    Симметрия - это, наверное, 10|01 или 101|101.
    Ответ написан
    Комментировать
  • Как грамотно подойти к решению этой простой, но интересной задачи для начинающих?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Поскольку тут нет множества вариантов форм слов, «дешевле» обойтись без регулярных выражений.

    1. Разбить на массив слов по пробелу.
    2. Пройтись по каждому слову и если оно != "Test" И != "Deploy", сделать ему toLowerCase()
    3. Первое слово != "Test" И != "Deploy" ? вставить "Тестировать" в начале массива.


    Проверки в п.2 и 3. идентичны, поэтому можно оптимизировать их в одну.
    Примерно так
    Ответ написан
    1 комментарий
  • Где можно увидеть действия администрации по отношению к своему аккаунту?

    DevMan
    @DevMan
    Вообще-то уведомления, емнип, рассылаются, если самому их не отключить в настройках уведомлений:
    6fc-nigijthyplfks7blsqurk8a.png
    Ответ написан
    Комментировать
  • Как в реакте узнать, что компонент промонтировался?

    @khorark
    Метод ComponentDidMount срабатывает тогда, когда компонент примонтирован. Полная инфомарция по методам ЖЦ React здесь .
    Ответ написан
    Комментировать
  • Что такое mysqlnd и как его установить в PHP 7?

    slo_nik
    @slo_nik
    Добрый день
    Очень просто.
    slonik@slonik-MS-7971:~$ aptitude search mysqlnd
    v   php-mysqlnd                                            -                                                                 
    v   php-mysqlnd:i386                                       -                                                                 
    p   php-mysqlnd-ms                                         - MySQL replication and load balancing module for PHP             
    p   php-mysqlnd-ms:i386                                    - MySQL replication and load balancing module for PHP             
    v   php5.6-mysqlnd                                         -                                                                 
    v   php5.6-mysqlnd:i386                                    -                                                                 
    v   php5.6-mysqlnd-ms                                      -                                                                 
    v   php5.6-mysqlnd-ms:i386                                 -                                                                 
    v   php7.0-mysqlnd                                         -                                                                 
    v   php7.0-mysqlnd:i386                                    -                                                                 
    v   php7.1-mysqlnd                                         -                                                                 
    v   php7.1-mysqlnd:i386                                    -                                                                 
    v   php7.2-mysqlnd                                         -                                                                 
    v   php7.2-mysqlnd:i386                                    -                                                                 
    v   php7.3-mysqlnd                                         -                                                                 
    v   php7.3-mysqlnd:i386

    Пакет есть.
    Значит можно ставить
    sudo apt-get install php7.1-mysqlnd

    p.s. А по поводу первой части вопросе куча информации.
    Ответ написан
    3 комментария
  • Как вернуть 2 значения в PHP return?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Вариант 1 - Деструктуризация:
    // Возврат нескольких значений:
    function some() {
        return [23, 42];
    }
    
    // Получение
    [$a, $b] = some();
    
    \var_dump($a, $b);


    Вариант 2 - Деструктуризация с ключами:
    // Возврат нескольких значений:
    function some() {
        return ['a' => 23, 'b' => 42];
    }
    
    // Получение
    ['a' => $a, 'b' => $b] = some();
    
    \var_dump($a, $b);


    Вариант 3 - Генераторы с ключами:
    function some() {
        yield 'a' => 23;
        yield 'b' => 42;
    }
    
    foreach (some() as $key => $value) {
      echo $key . ':' . $value; // a:23 b:42
    }


    Вариант 4 - Генераторы без ключей:
    function some() {
        yield 23;
        yield 42;
    }
    
    foreach (some() as $value) {
      echo $value; // 23 42
    }


    Вариант 5 - Генераторы с возвратом:
    function some() {
        yield 23;
        return 42;
    }
    
    $value = some();
    echo $value->current(); // 23
    $value->next();
    echo $value->getReturn(); // 42


    Вариант 6 - DTO:
    class DataTransferObject
    {
        private $a;
        private $b;
    
        public function __construct($a, $b)
        {
            $this->a = $a;
            $this->b = $b;
        }
    
        public function getA()
        {
            return $this->a;
        }
    
        public function getB()
        {
            return $this->b;
        }
    }
    
    function some() {
        return new DataTransferObject(23, 42);
    }
    
    $value = some();
    echo $value->getA(); // 23
    echo $value->getB(); // 42


    И ещё куча всяких вариантов, но мне влом придумывать уже)
    Ответ написан
    4 комментария
  • Почему foo.x === undefined?

    rockon404
    @rockon404
    Frontend Developer
    Все достаточно просто, хоть и не совсем очевидно.
    Выражение:
    foo.x = foo = {n: 2};
    равносильно:
    foo.x = (foo = {n: 2});

    Мы присваиваем объекту по идентификатору foo свойство x, которое равно результату операции присваивания идентификатору foo ссылки на объект { n: 2 }.

    Чтобы в этом убедиться достаточно добавить переменную bar, присвоить ей начальное значение foo и вывести в конце:
    let foo = {};
    
    const bar = foo;
    
    foo.x = (foo = {n: 2});
    
    console.log(foo.x === undefined);  // true
    
    console.log(bar);  // { x: { n:  2 } }
    
    console.log(bar.x === foo);  // true


    Ключевые отличия операций присваивания, которые важно понимать:
    foo.x = - присваивание свойства конкретному объекту. На момент вызова в нашем примере это {}.
    foo = - присваивание значения самому идентификатору foo. Это может быть примитив, ссылка на объект или функцию. В нашем случае это объект { n: 2 }.
    Ответ написан
    Комментировать
  • Есть ли официальная документация по JavaScript?

    Stalker_RED
    @Stalker_RED
    Javascript - это одна из реализаций ECMA-262. Если вам нужно именно "официально-стандартно" - вам именно сюда.
    Обратите внимание, это девятая редакция, которая вышла в июле. В следующем году скорее всего выйдет новая редакция. Ну и в этом СТАНДАРТЕ вы не найдете всяких новых экспериментальных штук. Экспериментальные штуки обычно описаны в черновиках.

    BOM и DOM - это на самом деле не часть javascript, это API браузеров.

    В 99% случаев вам будет удобнее всего ориентироваться на MDN, там все неплохо структурировано, и поддерживается в довольно актуальном состоянии.
    Ответ написан
    1 комментарий
  • Как трансформировать object Object?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    const option = object.map(obj => Object.values(obj)[0])

    Если ожидается, что могут быть некорректные данные вместо объекта, сделайте дополнительную проверку.
    Но мне кажется, вам нужно с сортировкой по этому индексу?
    Ответ написан
    Комментировать
  • Как в js динамически рисовать предметы?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Логикой. Имеете две точки, стартовая и конечная, пока они пустые. При первом клике делаете проверку, если стартовой точки нет, то этот клик и будет стартовой точкой, значит записываем координаты клика в стартовую точку. В этот момент должно работать событие мыши mousemove, которое делает проверку, есть ли стартовая точка и нет конечной, тогда рисуем прямоугольник от стартовой точки до точки координат мыши. При повторном клике опять делается проверка, если стартовая точка есть а конечной нет, то записываем точку мыши в конечную. В этот момент условие в mousemove больше не работает, т.к. есть конечная точка, прямоугольник закрыт. Можно его нарисовать окончательно.
    У fillRect конечная точка описывается шириной и высотой, поэтому нужно ее высчитывать вот так:
    width = xEnd - xStart;
    height = yEnd - yStart;
    Ответ написан
    5 комментариев
  • Есть ли разница на что вешать обработчик для отправки формы - на саму форму: on submit или на кнопку отправки: on click?

    DimaLondon
    @DimaLondon
    Лучше вешать на форму (атрибут onsubmit), потому что форма отправляется не только кликом по кнопке, а и, к примеру, нажатием Enter при установленном фокусе в INPUT[type="text"].
    Ответ написан
    4 комментария
  • Почему автопрефиксер добавляет префикс для box-shadow?

    bootd
    @bootd Куратор тега CSS
    Гугли и ты откроешь врата знаний!
    Автопрефиксер работает на основе настройки в webpack или gulp, в которой указывается, какие версии браузеров вы поддерживаете. А can i use ему нужен для того, что бы узнать, нужно ли для указанной версии браузера указывать префикс к свойствам. Либо положите болт, ибо плохого в этом ничего нет, или просто укажите список версий браузеров, для которых не нужны префиксы.

    Отвечая на 2й вопрос, то лучше использовать плагины для галпа или webpack. Причина проста, ваша заготовка для сборки будет независимо работать от любого редактора и любой человек сможет без проблем использовать все фичи вашей сборки запуском 1й команды npm install, а редактор вы можете сменить, в котором заново будете устанавливать свои плагины.
    Ответ написан
    2 комментария
  • Можно ли верстать сайты без gulp?

    sharnirio
    @sharnirio
    Front-end developer
    На новой работе порою стала заходить чистая верстка на доработку без сборщика, было не очень (если уж честно, то совсем) удобно после пары лет работ с gulp grunt. Так что через пару таких проектов понял что нужен хотя бы необходимый минимум для таких работ, а именно:
    1) сервер для статики что б вручную не обновлять
    -установить browser-sync (https://browsersync.io/) глобально для запуска сервера, ввести в командной строке - 'npm install -g browser-sync'
    - в дальнейшем запуск сервера (вводить команду в корне проекта) осуществляется командой - ' browser-sync start --server --files "./**/*.+(css|html|js)" --directory "/" --no-notify '
    2) Препроцессоры в моем случае scss (просто переименовываю основной файл стилей скажем style.css в style.scss и работаю с последним)
    -для компиляции с scss в css можете использовать удобный для вас способ, я компилирую через командную строку, для этого использую глобально установленный ruby-sass (https://sass-lang.com/ruby-sass) команда (gem install sass) нужен установленный ruby и ставлю watcher и компиляцию файлов командой "sass --no-cache --sourcemap=none --watch style.scss:style.css --style expanded"
    3) для основных команд создать bash алиасы на быстрый вызов команды
    ps. так что можно и без gulp в принципе, но хотя бы 2 первых пункта нужно использовать в любом случае.
    Ответ написан
    Комментировать
  • Верно ли я обращаюсь к файлу по адресу?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    на скрине один "ONU-Manager" через дефис, другой через пробел
    кроме то, используйте синтаксис, который позволит вам скопировать путь из проводника
    StreamReader fr = new StreamReader(@"D:\C# Projects\ONU-Manager\ONU Manager\bin\Debug\check.txt");

    ps используйте как пример к размышлению

    using System;
    using System.IO;
    
    namespace mypath
    {
        class Program
        {
            static void Main(string[] args)
            {
                var p = Environment.CurrentDirectory;
                Console.WriteLine(p);
                Console.ReadKey();
                p += @"\..\..\App.config";
                var appcfg = File.ReadLines(p);
                foreach(var l in appcfg)
                    Console.WriteLine(l);
                Console.ReadKey();
            }
        }
    }
    Ответ написан
    2 комментария
  • Жуткий класс тега html?

    @Froggyweb
    https://modernizr.com/
    выставляет классы в зависимости от того какие технологии поддерживает твой браузер
    Ответ написан
    3 комментария