Задать вопрос
  • Как работать с булевыми методами?

    devellopah
    @devellopah
    d - это NodeList (список узлов), не имеющий метода hasAttribute()

    попробуй так (es5 версия)
    var tags = ['div', 'span', 'ul', 'li', 'p', 'script', 'h1', 'h2'];
    var forEach = Array.prototype.forEach
    
    tags.map(function(tag) {
      var list = document.querySelectorAll(tag);
    
      forEach.call(list, function(el) {
        el.className && console.log(el.className)
      })
    })
    Ответ написан
    2 комментария
  • Как вы управляете своими серверами?

    SSH доступы хранятся в файле ~/.ssh/config – там прописаны ip, username и пр. Например:
    Host vs1
            HostName  123.123.122.122
            User root
            Port 35693
    Host vs2
            HostName  123.123.125.125
            User root
            Port 39674


    Алиасы эти стараюсь давать сообразно проекту / назначению машины. И подключение выглядит просто: ssh vs1

    Но при большем числе коробок в парке надо будет искать какое-то более «умное» решение – чтобы быстро определять, у какого провайдера какая коробка, какой конфиг, тариф, не прозевать оплату, оптимизировать стоимость, оптом управлять сразу несколькими коробками.

    Надо будет разобраться с Ansible.
    Ответ написан
    2 комментария
  • Каким образом можно изменить стандартный запрос на сохранение к базе в Laravel?

    abler98
    @abler98
    Software Engineer
    В модель:
    protected $primaryKey = 'mac';
    public $incrementing = false;


    И как можно так говнокодить на laravel?

    Примерно так можно сделать:
    Networkcard::where('mac', $request->get('mac'))->update($request->all());
    return redirect()->back(); // Думаю это подойдёт

    В модели определить $fillable (поля для быстрого обновление)
    Ответ написан
    6 комментариев
  • Как исправить ошибку js для OPERA?

    У стрелочных функций нет поддержки в Opera.

    Используйте Babel. Дело не в jQuery.
    Ответ написан
    Комментировать
  • PHP: Почему Class not found если use в другом файле?

    dubr
    @dubr
    пыхарь
    Почитайте доку для разнообразия.
    Неймспейсы и директивы use работают на уровне файлов. То есть use связывает полное имя с кратким/алиасом только в том файле, где его написали.
    Ответ написан
    Комментировать
  • Как правильно составить регулярное выражение?

    dubr
    @dubr
    пыхарь
    * влияет на предыдущий символ. Ваша регулярка ищет символы: "n" (1 шт), "i" (1 шт), "c" (0 и более шт).

    Зачем вам тут вообще регулярка - не понимаю, по ощущениям скорее всего надо делать как-то иначе =) Если таки хочется получить регуляркой часть после nic (если я правильно понял ход мысли), то как-то так:

    <?php
    preg_match("~^nic(.+)$~", "nic0000-0000-0000", $matches);


    В $matches будет
    array (
      0 => 'nic0000-0000-0000',
      1 => '0000-0000-0000',
    )


    А, ну вот GTRxShock воспроизвел примерно то же самое, пока я писал =) Его вариант ловит цифры и дефис после nic в любом месте строки. Мой - все, что после nic, если строка начинается с nic. Какой лучше - хз, надо смотреть на ваши строки =)
    Ответ написан
    5 комментариев
  • Что означает модификатор default() в Laravel - Migrations?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    непонятное для новичка описание.

    в гугл транслейт забанили

    default - стандартное
    value - значение

    если в запросе вообще не указывать этот столбец то будет проставлено сатндартное значение.
    $column2->default('nothing to do here');

    insert into table (`column1`) values ('value1'); // column2 = nothing to do here
    Ответ написан
    6 комментариев
  • Node.js(как вариант для хранения временных данных)?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    В БД (или быстрый кэш, типа Redis). Причин несколько:
    • Ваше приложение может упасть. Игрокам не понравится, если у них вдруг пропадут карты. БД тоже падают, но вероятность этого гораздо меньше (у них больше разработчиков и тестеров).
    • Массивы в памяти не масштабируются. Положим, пару десятков одновременных партий в памяти держать можно, но когда счет пойдет на тысячи, это будет жрать RAM, плюс тормоза на GC. А БД можно вынести на отдельный сервер и даже на отдельный кластер.


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

    У меня дискретной математики не было, но решал бы так. Есть утверждения:
    Л: Пс Бд
    П: Лс Бд
    Б: Лс Пе

    Найдём пару утверждений из которых один оба раза сорвал, другой оба раза сказал правду. Поскольку утверждения Л-П связаны через Бд, а П-Б через Лс, остаётся пара Л-Б – кто-то из них оба раза правда, другой оба раза ложь.

    Ложное утверждение обозначу с воскл. знаком (логическое НЕ) – например, !Лс.

    Итак, один раз соврал и один сказал правду, выходит, Пончик: П: !Лс Бд

    Чтобы Лс было ложным, надо так же сделать ложными утверждения Б. Значит, Б оба раза соврал, а Л оба раза сказал правду:
    Л: Пс Бд
    П: !Лс Бд
    Б: !Лс !Пе

    Итого, точно знаем: Пс и Бд. Остаётся Ле.
    Ленчик – ель; Пончик – сосна; Батончик – дуб.

    upd. Таблица истинности так составляется?
    Л П Б  Пс Бд  Лс Бд  Лс Пе
    0 1 2  0  0   1  1   0  1  конфликт Бд и Лс
    0 2 1  0  0   0  1   1  1  конфликт Бд и Лс  
    1 0 2  1  1   0  0   0  1  конфликт Бд
    2 0 1  0  1   0  0   1  1  конфликт Бд и Лс
    1 2 0  1  1   0  1   0  0  ОК
    2 1 0  0  1   1  1   0  0  конфликт Лс

    Переменные три: истинность утверждений каждого персонажа. Три возможных состояния: 0 – оба раза соврал, 1 – оба раза правда, 2 – соврал-правда. Дальше раскрываем их значение по каждому из утверждений (0 ложь, 1 истина). Во всех вариантах, кроме одного возникают логические конфликты.
    Ответ написан
    Комментировать
  • Можно ли вернуть деньги, списанные регистратором доменных имен?

    Скорее всего оспорить покупку с 1and1 не получится – у них юристы, мелкий текст и формально они окажутся правы. Попробуйте через Сбербанк оспорить платёж по карточке – сходите в отделение.

    Возможно, с вас сразу сняли за 5 лет обслуживания домена: $0.99 за первый год и по $15 за 4 следующих. Вы сноски смотрели? Например, на главной у них привлекательные цены на домены:
    c7f0300fa57643d7ad734546f5810c34.png
    Но рядом мелкие цифры, а внизу страницы неприметная ссылка, раскрывающая блок с разъяснениями:
    bbc43530860242a6b75ac839dfae06e2.png
    "Payable in advance" (оплачивается вперёд) вполне может означать, что вперёд аж за 5 лет оплачивается сразу.

    Ещё ниже про 1–6 пишут:
    f778ba32ed6244f0a7428d47595df3e2.png – вы же российской карточкой платили, значит, на вас, вне "US territories", этот оффер не распространяется. Первичный платёж в $1 – просто проверка работоспособности карточки.

    В их правлах (Terms & Conditions, T&C) про возврат денег значится, что по доменам они ничего не возвращают: 5e7e14b8fb8c4ddfb33abb251d8febb4.png

    Так что, либо через Сбербанк отменяйте транзакции без подтверждения, либо, увы, «наслаждайтесь» доменами.
    Ответ написан
    Комментировать
  • Как декодировать JS []?

    @vshvydky
    В конце вашего кода есть () признак выполнения, меняем ее на toString() и получаем функцию как текст
    "function anonymous() {
    $(document).ready(function() {
      $('i').hide();
    })
    
    $(window).load(function() {
      $('i').show();
    
      var twitterPos = $('#twitter').position();
      var githubPos = $('#github').position();
      var stackPos = $('#stack').position();
      var linkedinPos = $('#linkedin').position();
      var codePos = $('#code').position();
      var plusPos = $('#plus').position();
      var mailPos = $('#mail').position();
      var imgPos = $('.me').position();
      
      $('i').css({
        position: 'absolute',
        zIndex: '1',
        top: imgPos.top + 100,
        left: '47%'
      });
      
      setTimeout(function() {
        $('#twitter').animate({
          top: twitterPos.top + 10,
          left: twitterPos.left - 10
        }, 500);
      }, 250);
      
      setTimeout(function() {
        $('#twitter').animate({
          top: twitterPos.top,
          left: twitterPos.left
        }, 250);
        
        $('#github').animate({
          top: githubPos.top + 10,
          left: githubPos.left - 6
        }, 500);
      }, 500);
      
      setTimeout(function() {
        $('#github').animate({
          top: githubPos.top,
          left: githubPos.left
        }, 250);
        
        $('#stack').animate({
          top: stackPos.top + 10,
          left: stackPos.left - 3
        }, 500);
      }, 750);
      
      setTimeout(function() {
        $('#stack').animate({
          top: stackPos.top,
          left: stackPos.left
        }, 250);
        
        $('#linkedin').animate({
          top: linkedinPos.top + 10,
          left: linkedinPos.left
        }, 500);
      }, 1000);
      
      setTimeout(function() {
        $('#linkedin').animate({
          top: linkedinPos.top,
          left: linkedinPos.left
        }, 250);
        
        $('#code').animate({
          top: codePos.top + 10,
          left: codePos.left + 3
        }, 500);
      }, 1250);
      
      setTimeout(function() {
        $('#code').animate({
          top: codePos.top,
          left: codePos.left
        }, 250);
        
        $('#plus').animate({
          top: plusPos.top + 10,
          left: plusPos.left + 6
        }, 500);
      }, 1500);
      
      setTimeout(function() {
        $('#plus').animate({
          top: plusPos.top,
          left: plusPos.left
        }, 250);
        
        $('#mail').animate({
          top: mailPos.top + 10,
          left: mailPos.left + 10
        }, 500);
      }, 1750);
      
      setTimeout(function() {
        $('#mail').animate({
          top: mailPos.top,
          left: mailPos.left
        }, 250);
      }, 2000);
      
    })
    }"
    Ответ написан
    1 комментарий
  • Как удалить\закомиттить только нужный коммит?

    muhammad_97
    @muhammad_97
    PHP-разработчик
    git rebase -i HEAD~N

    - где N - количество мусорных коммитов. Нужно будет выполнить squash. Для этого на первой строке пишем p (pick up), а на остальных s (squash).

    После того, как исправите ситуацию в локальном репозитории сделайте принудительный пуш:

    git push -f
    Ответ написан
    2 комментария
  • Какой диапазон ip у поисковика Yandex?

    BuriK666
    @BuriK666
    Компьютерный псих
    https://yandex.ru/support/webmaster/robot-workings...
    IP-адресов, с которых «приходят» роботы Яндекса, тоже много, и они часто меняются. Поэтому мы не разглашаем их список и не рекомендуем использовать фильтрацию на их основе.
    Ответ написан
    Комментировать
  • Как это реализовано в Laravel?

    @D3lphi
    Это называется рефлексия. Пример:
    $class = new \ReflectionClass('Название класса');  // Создаем объект для рефлексии класса
    $method = $class->getMethod('Имя метода');   // Получаем метод по имени
    $params = $method->getParameters();   // Получаем массив с параметрами
    $paramName = $params[0]->getName();   // Берем первый элемент массива, он имеет тип ReflectionParameter, и получаем его имя.

    Можно сразу создать объект для рефлексии метода "напрямую":
    $method = new \ReflectionMethod('Класс', 'Имя метода');
    // Далее, аналогично

    С помощью рефлексии можно не только получать имена параметров, но и их типы, значения по умолчанию. Можно получать даже док-блоки для методов/свойств и тд. С помощью рефлексии, например, работает doctrine orm. Он использует аннотации (как один из вариантов конфигурации) для описания сущностей.
    Ответ написан
    Комментировать
  • Правильно ли я выгрузил комментарии на сайт?

    Stalker_RED
    @Stalker_RED
    1. Преждевременная оптимизация - зло.
    2. Денормализация БД - тоже зло, но можно попытаться его "правильно готовить".

    У вас получилось этакое кеширование в БД. Я бы писал готовый html-блок или json в файл или в memcache, потому что для базы эта информация - мусор. Причем такого рода мусор может в будущем выйти боком, при каких-то сложных операциях с таблицей постов.
    Ответ написан
    1 комментарий
  • Как найти максимальный id в ассоциативном массиве?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    let maxId = Math.max(...array.map(i => i.id));
    Ответ написан
    Комментировать
  • Кто знает, что за распиновка на этом вентиляторе?

    a_volkov1987
    @a_volkov1987
    Инженер-схемотехник
    Да все как обычно: два пина на питание, один пин - детектор частоты вращения. Если стоит задача просто запустить - подаете только питание. Если стоит задача определить, вращается ли кулер и задавать точную скорость вращения - надо "слушать" третий пин и задавать напряжение питания в зависимости от частоты, с которой приходят импульсы от этого пина.
    1 GND (Black)
    2 +5V (Red)
    3 Sense (Yellow): spin sensor
    Ответ написан
    4 комментария
  • Как присвоить значение переменной по умолчанию, если она равна null?

    @Camaro67
    Помог? - жми "Отметить решением"
    // Начиная с версии PHP 7
    $name = $name ?? 'anonimous';
    
    // До PHP 7
    $name = $name === null ? 'anonimous' : $name;
    // или более предпочтительный вариант
    // т.к. идет проверка объявлена переменная или нет
    $name = isset( $name ) ? $name : 'anonimous';


    // Самое простое, это что-то вроде
    if($a == null) $a = 'default';
    // Но это не очень красиво.

    Вы ошибаетесь, здесь переменной $a значение default будет присвоено далеко не только если она null, но и если false, 0, [] и т.д.

    В данном случаи можно упростить до
    $a = $a ?: 'default';
    Ответ написан
    Комментировать