• Аналог JQuery on() на ES6?

    abyrkov
    @abyrkov
    JavaScripter
    DOM API предоставляется браузером. Он не является неотъемлемой частью JavaScript. Как следствие, не регулируется ECMAScript'ами.
    Ваш вопрос лишен смысла.
    Ответ написан
    Комментировать
  • Как задать enable/disable для input text при помощи радиобаттона?

    gubin_niko
    @gubin_niko
    Вам нужно отслеживать изменения вообще всех этих кнопок. Внутри обработчика уже смотрите на значение выбранной кнопки $(this).val(), если 1 или 2, то поле заблокировано (prop disabled true), иначе разблокировано (prop disabled false). Если непонятно, то пришлю изменения уже. Пробуйте))

    P.S. https://jsfiddle.net/2yv0cgpf/1/
    Ответ написан
    5 комментариев
  • Быстрее ли несколько параллельных запросов одного последовательного?

    Melkij
    @Melkij
    PostgreSQL DBA
    Есть ли в распараллеливании запросов рациональное зерно?

    Есть, если треды не дерутся за одно и те же ресурсы. Например, ходят в физически разные кластеры БД.

    Получается, что один последовательный запрос, что несколько параллельных, имеют сопоставимую продолжительность.

    Или вы неверно описали наблюдаемый результат или же параллельное выполнение медленнее в 2 раза и дальше ухудшается при конкурентной нагрузке.

    На каком-то этапе параллельные запросы также выстраиваются в очередь.

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

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

    Что подтверждает диагноз. Ресурсов для параллельного выполнения нет.

    Поскольку вопрос затрагивает субд и вы не называете, что там происходит - самое очевидно - вы упёрлись в диски. Возможно даже в механические диски. Добавление новых io задач на диски ожидаемо и очень сильно замедляет весь остальной io.
    Ответ написан
    2 комментария
  • Пустой return в JS?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Пустой return в конце функции не имеет смысла. Он и так там есть, скрытый.

    Прямое указание return нужно в 3 случаях:
    1. Если вы хотите вернуть значение. В вашем случае вы должны написать return arg1 + arg2;
    2. Если вы хотите прервать выполнение функции как указал lemme .
    3. Либо вы хотите сделать первое и второе одновременно:
    function test (arg) {
        if (typeof arg === "number") {
            return +arg.toFixed(5);
        }
    
        if (typeof arg === "string") {
            return test_obj[arg];
        }
    
        return false;
    }
    Ответ написан
    Комментировать
  • Пустой return в JS?

    @lemme
    Frontend
    Логика простая, остановить выполнение функции.

    function foo(data) {
    	if (!Array.isArray(data)) {
      	return
      }
      
      // что-то делаем с массивом
    }
    Ответ написан
    Комментировать
  • Какую взять ORM для своего проекта?

    @D3lphi
    Возьмем ORM из двух популярных PHP-фреймворков. Первая будет Eloquent ("Родная" для фреймворка Laravel), а вторая - Doctrine (Одна из доступных ORM в фреймворке Symfony). Кардинальным отличием этих двух "систем" является то, что первая разработана на основе паттерна Active Record, а вторая - с использованием паттерна Data mapper. Чем же они отличаются? Приведу абстрактные примеры кода для первого и второго паттерна:

    Active Record:
    $user = new User(); // Создаем "сущность" нового пользователя.
    $user->login = 'D3lph1'; // Устанавливаем его логин равным 'D3lph1'.
    $user->password = '123456'; // Устанавливаем пароль этому пользователю.
    $user->save(); // Сохраняем пользователя.


    Все, новый пользователь создан и находится в базе данных. Теперь, Data mapper:
    $user = new User();
    $user->login = 'D3lph1'; // Устанавливаем его логин равным 'D3lph1'.
    $user->password = '123456'; // Устанавливаем пароль этому пользователю.
    
    $manager = ... // получаем объект менеджера (Например, из DI контейнера).
    $manager->persist($user); // "Скармливаем" новоиспеченного пользователя нашему менеджеру.
    // $manager->persis($user1); // Мы можем создать еще одного пользователя и уведомить менеджер об этом.
    // $manager->persis($user2); // И еще одного...
    $manager->flush(); // После выполнения этого метода данные отправятся в базу данных.


    Очевидно, первый способ куда проще. Но не все так просто. Дело в том, что паттерн Active Record нарушает принцип единственной ответственности (Single responsibility SOLID). И поэтому, в какой-то степени, может считаться антипаттерном. (Но это ни в коем случае не значит, что его не нужно использовать, для большинства проектов "хватит" за глаза). Наша сущность пользователя делает слишком много. Она не только представляет данные, но и еще работает с ними. В больших проектах это может усложнить поддержку кода. Data mapper, напротив же, разделяет представление данных в сущность (user) и работу с данными (manager, в данном примере. Также, за работу с данными отвечает репозиторий. Вы столкнетесь с ним, как только вам потребуется получить данные из БД (Doctrine)). В небольших проектах вы не заметите особой разницы. Разве что во втором случае увеличится количество классов. Так, в Eloquent вы создаете 1 модель, а в Doctrine - сущность и репозиторий.

    Все современные ORM включают в себя также, так называемые, query builder'ы. Они помогают отказаться от языка запросов, такого как SQL. Вы будете составлять запросы таким образом:
    $result = $qb
          ->select(['id', 'login'])
          ->where('id', '<>', 3)
          ->get();


    Собственно, query builder'ы помогают абстрагироваться от конкретной СУБД. То бишь, вы написали запрос 1 раз, а затем от того, какую СУБД вы используете будет зависеть выходной sql код. Генерация этого кода будет произведена абсолютно прозрачно для вас.

    Обе ORM имеют работать с отношениями. Вам нужно будет указать, как таблицы относятся друг к другу, а затем вы сможете удобно обращаться к связанным сущностям.

    Теперь конкретно. Так как вы только начинаете осваивать ORM, я бы порекомендовал начать с Eloquent. Она гораздо проще, чем Doctrine, да и более производительная, к тому же. Как освоите Eloquent, смело учитесь работать с Doctrine. Она обязательно должна быть "в копилке" ваших скиллов, так как является самой мощной в "мире" PHP.

    Успехов!
    Ответ написан
    2 комментария
  • Как удалить элемента из массива Json по ключу?

    Melkij
    @Melkij
    PostgreSQL DBA
    PHP не делает различий между списком и нумерованным списком. Массив json же ключи иметь не может. Поэтому в попытке сохранить ключи массива json_encode делает объект с числовыми ключами. Для получения json array необходимо сбросить ключи массива, например:
    $myArr["features"] = array_values($myArr["features"]);

    перед вызовом json_encode
    Ответ написан
    Комментировать
  • Почему html на mail() не работает?

    sabramovskikh
    @sabramovskikh
    $headers = "From: $from\r\nReaply-to: $from\r\nContent-Type: text/plain; charset=utf-8\r\n";

    Content-Type: text/html надо
    Ответ написан
    2 комментария
  • Существуют ли в природе реализации блокчейн на PHP от и до?

    @senefu
    Начните с блокчейн на русском языке, когда дойдет что это - попробуете на языке PHP (впрочем, зачем непонятно).
    Ответ написан
    Комментировать
  • Можно ли работать с wifi при помощи javascript?

    abyrkov
    @abyrkov
    JavaScripter
    И да, и нет. Если среда предоставляет вам такую возможность. Клиентская среда, проще говоря, JS в браузере, такой возможности, насколько мне известно, не имеют. Серверная среда(Node.js или Rhino) такую возможность имеют. Но настройка wi-fi может сильно различаться от платформы к платформе. На linux можно запустить команду iwconfig с соответствующими параметрами. На windows - не знаю.
    Ответ написан
    3 комментария
  • Почему не передает событие?

    vahe_2000
    @vahe_2000
    используйте refs

    var Player = React.createClass({
        componentDidMount: function() {
            this.refs.video.addEventListener("ended", this.onEnded, false);
        },
        onEnded: function() {
            alert("ended");
        },
        componentWillUnmount: function() {
            this.refs.video.removeEventListener("ended", this.onEnded, false);
        },
        render: function() {
            return <video ref="video" src={this.props.src} autoPlay={this.props.autoPlay} width={this.props.width} height={this.props.height} controls />;
        }
    });
    var PlayerContainer = React.createClass({
        render: function() {
            return <Player width="50%" height="50%" src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" autoPlay="" />;
        }
    });
    
    ReactDOM.render(<PlayerContainer />, document.body);
    Ответ написан
    5 комментариев
  • С какими сложностями придется столкнуться при разработке онлайн-обменника криптовалют?

    sim3x
    @sim3x
    0. Отсутствие понимания, как все работает
    1. Отсутствие опыта разработки такого рода систем
    = неправильно комитнули транзакцию, деньги ушли не тому, возмещаете из своего кармана
    = обрушили сеть, вам ненавидит сотня тысяч человек
    ...

    2. Отсутствие експертизы в ИБ
    = много денег на бирже, есть дырка, денег на бирже больше нет
    ...

    3. Юридические проблемы при регистрации бизнеса
    Правовой статус системы «Биткойн» в РФ обсуждается[13][14][15][16][17][18].
    Правовой_статус_системы_Биткойн
    // росийский новояз - уже и в вики

    Проблема с юр стороны - неустойчивость законодательства в РФ и рандомное применение права

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

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    При включённом отправляет "on" как изменить этот текст?
    <input type="checbox" value="Текст который отправляется на почту" name="checkbox_name" />


    При выключеном пустота - как добавить текст?
    <input type="hidden" name="checkbox_name" value="Текст при выключенном" />
    <input type="checbox" value="Текст который отправляется на почту, при включенном" name="checkbox_name" />
    Ответ написан
  • Cсылка перекрывается другим слоем, как реализовать?

    JaredWinter
    @JaredWinter
    Помог? - Отметь решением.
    Это на быструю руку. Просто вставьте это в ваш CSS. Возможно понадобятся !important.

    @media only screen and (max-width: 768px) {
      .mean-container .mean-bar {
        top: 77px;
      }
    
      .mean-container a.meanmenu-reveal {
        top: -44px;
      }
    
      .mean-container .mean-nav {
        margin: -4px auto 0;
      }
    }
    Ответ написан
    1 комментарий
  • Можно ли в списке проставить запятые посредством JS?

    abyrkov
    @abyrkov
    JavaScripter
    string.replace(/(.)$/mg, '$1,')
    Ответ написан
    Комментировать
  • Рассылки в мессенджерах легальны?

    @Z-r
    IANAL. TINLA.

    Хотя CAN-SPAM Act принимался еще до засилья собственнических сетей для пересылки электронных писем (какие вы назвали «мессенджерами»), и местами недвусмысленно относится к стандартной э-почте, в остальном он вполне применим и к ним. Прецеденты были, см. напр. Facebook, Inc. v. MaxBounty, Inc.

    То есть да, легальны; в том смысле, что существуют условия, при которых рекламная рассылка не нарушает норм закона.
    Ответ написан
    Комментировать
  • Почему не компилируется php в javascript-коде?

    потому что в html-документ пытаешься вставить php код
    Ответ написан
    1 комментарий
  • Книга о том как правильно должен работать программист?

    un1t
    @un1t
    Чед Фаулер "Программист фанатик"
    Джоэл Спольски "Джоэл о программировании"
    Роберт Мартин "Идеальный программист"
    Том ДеМарко, "Вальсируя с Медведями: управление рисками в проектах по разработке программного обеспечения"
    Том ДеМарко "Человеческий фактор. Успешные проекты и команды"
    Роберт Гласс "Факты и заблуждения профессионального программирования"
    Игорь Савчук "Отъявленный программист. Лайфхакинг из первых рук"
    Питер Сейбел "Кодеры за работой. Размышления о ремесле программиста"
    Хант Эндрю, Томас Дэвид "Программист прагматик"
    Ответ написан
    1 комментарий