Задать вопрос
  • NativeScript самый крутой фреймворк для создания нативных приложений?

    Neikist
    @Neikist
    Бывший 1сник, теперь пишу под андроид
    Я бы скорее смотрел в двух направлениях если бы хотел кроссплатформы (и в будущем в одном из них возможно буду смотреть, флаттер):
    1) React Native. Из минусов: java script, бридж к ui компонентам (и вообще системе). В общем с точки зрения производительности могут быть проблемы. Плюс проблемы с нестандартными ui компонентами. Из плюсов: js хоть как язык и так себе, но трудно поспорить что порог входа в него низкий.
    2) flutter. Хоть еще в бете но обещают выйти в релиз в этом году, помимо кроссплатформенности есть слухи что это будет нативный фреймворк для фуксии. Код фактически компилируется, при том что дарт как язык вполне неплох, как по мне проще java и c#, но со статической типизацией при этом и компилируемый. Также есть реактивность. Архитектуру вроде заложили удачную, так что возможно получим неплохую производительность в кроссплатформенном фреймворке. Еще из плюсов - ui компоненты свои, при этом повторяют компоненты нативные для иос и андроид. Так как компоненты свои - исчезают проблемы того что на каждой версии ОС они ведут себя по разному, что в итоге дает нам очень неслабые плюшки. Из минусов: как уже сказал пока в бете. Дарт сообщество относительно небольшое. Не очень много библиотек. Пока еще реализованы не все аналоги нативных вьюшек. Также вроде есть какие то траблы с пушами.
    Ответ написан
    4 комментария
  • Какой бесплатный-полноценный-пробный ssl сертификат можно получить для тестирования сервера?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Проблем c lets`encpypt нет. Вы просто не умеете его готовить, видимо
    Ответ написан
    Комментировать
  • Vue вместо jquery на примере кинозала?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    минут пять, на коленке:

    Ответ написан
    16 комментариев
  • Нtml2canvas ест память, что делать?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Пришел момент научиться пользоваться вкладками Performance и Memory в инструментах разработчика хрома. https://developers.google.com/web/tools/chrome-dev...
    https://habr.com/company/yandex/blog/195198/
    Ответ написан
    1 комментарий
  • Смена php 5.6 на сервере на последнюю версию 7.2. как лучше сделать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Есть ненулевая вероятнось, что появятся ошибки. Лучше сначала поднять тестовый сервер, на нём всё обкатать, потом перенести на рабочий.
    Ответ написан
    1 комментарий
  • Почему когда я в PhpMyAdmin создаю UNSIGNED int, у него по умолчанию (если не указать явно) длина 10, а без UNSIGNED - 11?

    SagePtr
    @SagePtr
    Еда - это святое
    Из документации:
    MySQL supports an extension for optionally specifying the display width of integer data types in parentheses following the base keyword for the type. For example, INT(4) specifies an INT with a display width of four digits. This optional display width may be used by applications to display integer values having a width less than the width specified for the column by left-padding them with spaces. (That is, this width is present in the metadata returned with result sets. Whether it is used or not is up to the application.)

    Всё логично, в максимальном числе беззнакового типа INT (это чуть больше 4 миллиардов) - 10 символов, потому по дефолту там отводится 10 позиций. В максимальном знаковом - те же 10 + ещё 1 символ на знак (для отрицательных чисел от миллиарда и выше по абсолютной величине, минимальное - минус 2 миллиарда с небольшим), потому и получается 11, как по дефолту. Но ни на что, кроме отображения в консольном клиенте mysql, это не влияет для типа INT и его разновидностей (TINYINT, BIGINT и т.п.). Для других типов (VARCHAR к примеру) - влияет.
    Ответ написан
    Комментировать
  • Нормально ли, что если я удалю что-то из 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])

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