• С чего начать изучение Linux с нуля?

    illuminat17
    @illuminat17
    инженер-системотехник
    Здравствуйте, Vitaminka!
    Я бы Вам посоветовал предпринять следующие шаги.
    1. Установить один из хорошо поддерживаемых дистрибутивов на "компьютер под рукой" (свой домашний, второй свой домашний, виртуалка). На мой взгляд, если Вы сам не сторонник "шоковой терапии", то лучший вариант поставить на второй домашний (тестовый), а если сторонник, то сразу на главный домашний. Из дистрибутивов рекомендую в порядке убывания предпочтения для вашего случая следующий список:
    Ubuntu 16.04
    www.ubuntu.com/download/ubuntu-kylin

    Debian Jessie 8.5
    cdimage.debian.org/debian-cd/8.5.0/amd64/iso-dvd

    OpenSuse
    https://software.opensuse.org/421/en

    2. Как правильно писал Ciscoridze определите себе некую цель. Не общую, типа "хочу в совершенстве изучить Linux", а конкретную. Причём очень важно, чтобы это была действительно интересная для Вас задача и предельно конкретная. Как уже писали "установить свой Web-сервер и опубликовать его в интернете", "автоматизировать отправку СМС сообщений по критическим событиям на ПК и в сети" и т.п.

    3. Хоть нынче это становится не слишком модно, купить бумажную книгу хорошего автора и читать её постоянно. Дело в том, что помимо конкретных знаний, как решить тот или иной вопрос, которые почтит всегда можно найти в интернете, очень важно общее понимание, системное преподнесение материала, а оно возможно как раз из книги или из обучающего курса. Как хороший пример «UNIX и Linux. Руководство системного администратора» (2010) Эви Немет.
    adm-lib.ru/linux-i-drugie-unix/evi-gart-trent-ruko...

    4. Одновременно ос всем этим считаю очень полезным чтение справочника команд прямо в алфавитном порядке. Такие справочники есть в большом количестве. Много чего там будет оставаться для вас совершенно не понятным, но ровно столько же вызовет у вас немой возглас "ах вот как это просто и классно, буду знать!!!". Чтение этого справочника должно стать для Вас многопроходным процессом и со временем количество команд из группы "ничего не понимаю" начнёт существенно убывать.
    5. Очень хорошо бы найти человека, который мог бы Вам подсказывать какие-то вещи, когда у Вас совсем будет уже тупик. Кстати, выбор первого Вашего дистрибутива лучше увязать с тем, какой установлен у него. Это резко повышает эффективность помощи.
    6. Будут моменты, когда "ничего не работает, ненавижу!!! Ничего не получается!!!". Не опускайте руки, не сдавайтесь, решение найдётся. :)
    Ответ написан
    1 комментарий
  • Почему не останавливается таймер в плагине?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Сейчас у вас checkTimerId и sendTimerId существуют в единственных экземплярах - одни на все элементы, содержащиеся в наборе, на который ссылается this в trackCoords. События, по которым устанавливаются/снимаются интервалы всплывают, а элементы вложены один в другой - так что когда курсор уходит с внешнего элемента на внутренний, то сначала снимаются интервалы внешнего элемента, затем устанавливаются интервалы внутреннего элемента, затем событие mouseover, случившееся на внутреннем элементе достигает внешнего, и там опять устанавливаются интервалы, при этом идентификаторы интервалов внутреннего элемента затираются, после чего снять их уже нельзя.

    Так что, во-первых, элементы надо обрабатывать независимо:

    $.fn.trackCoords = function(options) {
      return this.each(function() {
        const $element = $(this);
        // ...
      });
    };

    Во-вторых, не надо на одних элементах обрабатывать события, которые приходят от других - останавливайте всплытие событий, или проверяйте, откуда пришло событие, сравнивая целевой элемент с тем, к которому прицеплен обработчик:

    $element.mouseover(function(e) {
      if (this !== e.target) {
        // чужое событие - не интересно, не обрабатываем
        return;
      }
     
      // ...
    });

    Кроме того, устанавливать обработчик события mousemove внутри обработчика mouseover - сомнительная затея. При каждом наведении курсора на элемент устанавливается новый обработчик, зачем это? Установите его один раз, там же, где устанавливаются обработчики mouseover/mouseout.
    Ответ написан
    1 комментарий