• Почему скачет dock-панель между внешним экраном и экраном ноутбука?

    @iMaximus
    Запустите Системные настройки, выберите пульт Mission Control и снимите галочку "Мониторы с разными пространствами".

    После этого Dock всегда должен располагаться на экране который считает главным. Выбрать главный можно в настройках > Мониторы > Расположение.
    Ответ написан
    2 комментария
  • Как заставить WebStorm автоматически заворачивать длинные строки?

    miminari13
    @miminari13
    view - active editor - use soft wraps
    это для вебшторма, но думаю в phpstorm тоже самое
    Ответ написан
    3 комментария
  • Лучшие книги для изучения JavaScript в области разработки интерфейсов (Frontend)?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Для чего составлять такую подборку? Вы просто перечислили практически все книги на русском по JS. При чем однотипные.
    Большинство из них описывают одно и тоже. Я прочитал почти все из этого списка. По опыту могу сказать, что читать всю подборку не нужно.
    Посоветовал бы прочитать книгу Ильи Кантора и книгу "Javascript для профессиональных веб-разработчиков", автор Николас Закас вроде.(Вместо второй можно прочитать Фленагана. Подробное руководство., но Заказ мне больше нравится, по моему мнению гораздо лучше объясняются многие вещи). Две эти книги, достаточно объемные и информативные, всю основу прекрасно преподносят.
    Также посоветовал бы книгу по оптимизации производительности, автор также Николас Закас и любую книгу по регулярным выражениям, но это уже после некоторой практики. А также книгу "Веб-приложения на JavaScript". Сам ее только вот начну читать, но по содержанию и отзывам достаточно хорошая.

    Достаточно будет чтобы довольно хорошо освоиться в языке.
    Не нужно читать однотипные книги. С 3 по 6 включительно пункты не стоит читать. Только зря потратите время.

    ООП объясняется в первых двух книгах которые я упомянул. Также книга про паттерны - largescalejs.ru/.

    Но главное не просто читать а повторять все примеры и выполнять все задания, попутно придумывания задания для себя самому. Чем больше практики, тем лучше будет откладываться информация в голове и будет намного лучшее понимание что да как.
    Я читать некоторые книги по несколько раз, потому что не сильно парился сначала о практике, просто читал, выполнял некоторые задания, по ходу было понятно, но через главу, уже все забывалось... Поэтому практикуйте, практикуйте и еще раз практикуйте.
    Удачи в обучении!
    Ответ написан
    Комментировать
  • Какие задачи решает реактивное программирование?

    @lega
    wikipedia говорит - в общем распространение изменений, как в формулах exсel таблиц

    Excel - наверно самый показательный пример, когда вы меняете одну ячейку, то все зависимые ячейки пересчитываются (сами), зависимые ячейки от зависимых тоже пересчитываются и т.д. Т.е. получается такой поток/разлив информации. Для реализации исходная ячейка должна обладать списком всех зависимых ячеек (первого уровня/напрямую зависимых).

    Если реализовывать такую таблицу в императивном стиле то после изменения одной ячейки нужно обходить все остальные ячейки и делать их пересчет (т.к. конечная ячейка сама тянет данные от которых зависит), после этого нужно делать ещё проход и ещё т.к. если более поздние ячейки изменяют более ранние ячейки, то ячейки зависимые от более ранних будут не актуальны. Вообщем это большая нагрузка и все будет тормозить в отличие от "точенного" изменения в реактивном стиле.
    Ответ написан
    Комментировать
  • Какие задачи решает реактивное программирование?

    @Hydro
    C#/.NET Developer
    Надеюсь, что правильно понял Ваш вопрос.

    Пример

    Храню в БД фото с марса в формате HD, делаю запрос на 100 фотографии, задача - показать 100 фоток последовательно на экране.

    Стандартный поход: делаю запрос к базе на 100 фотографии, жду 2 секунды, получаю массив из 100 фотографии,
    итератором бегаю по коллекции и показываю картинки на экране
    псевдокод:

    pics = GetPicsFromDatabase();
    foreach(var pic in pics)
      ShowPic(pic)


    Реактивный подход: делаю запрос к базе на 100 фотографии и обработчику запроса задаю коллбек, обрабатывающий следующий элемент коллекции

    псевдокод:
    // somecode
    GetPicsFromDatabaseReactive(NextPictureHandler);
    // somecode
    NextPictureHandler(Image pic)
    {
      ShowPic(pic)
    }

    В первом случае мы сами явно вытягивали следующий элемент списка (pull), а во втором случае - источник данных сам вкидывал нам следующий элемент, когда он был готов (push).
    В первом случае мы ждем, пока сформируется источник данных (как правило занимаем тред) и после этого сами ручками просматриваем результат, во втором случае источник данных сам нас уведомит, когда будет готов.

    Что это нам дает?
    Асинхронность - в UI например это дает отзывчивость)
    Масштабируемость - источник данных (коллекция картинок) и приемник (наш псевдкод, показывающий картинки) не связаны, отсутствие связи дает нам возможность подключить хоть 10 обработчиков картинок (пример один в черно-белом выводит, другой сепию накладывает и т.п.)
    Отказоустойчивость достигается тем, что если сдох первый обработчик, например в его треде вылетел эксепшн, который повалил тред (прошу прощения за грубый пример), то действие выполнится резервным обработчиком (мы же их можем навешивать хоть 10, правда?)
    Ответ написан
    3 комментария
  • React или Angular 2, ваши прогнозы?

    Почему люди продолжают сравнивать Angular с React'ом, это же разные вещи, "реакт" есть смысл сравнивать лишь с рендером "ангуляра", потому как "ангуляр" это fullstack фреймворк, а "реакт" библиотека для отрисовки. Это как сравнивать Tesla Model S с двигателем TSI, что как минимум странно.
    Ответ написан
    3 комментария
  • Как определить свой уровень программирования?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Эти уровни - абстракция, причем зависящая от компании. Пройдите несколько собеседований и спросите, что думает о вас интервьюер.

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

    Мидл - знания уже подкреплены опытом, может (в отличии от юниора) предсказывать последствия тех, или иных решений. Может решать задачи по проектированию модуля, или его части. Получив новое задание - может скомпоновать из уже существующих решений свое и реализовать его.

    Синьйор - понимает не только то зачем использовать ту, или иную технологию, а еще и как она работает, например почему при HL форин ключи сожрут io hdd. Может спроектировать и вести средний по размерам проект. Получив новое задание он уже знает как его решить кучей способов, выбор заключается только в правильности интеграции решения.

    -----------------

    Многое зависит от интервьюера.
    У меня был случай, собеседование на php senior developer: поговорили про HL оптимизации, архитектурные предложения для решения неких задач, способы оптимизации и т.д., а потом:
    - перейдем к практике: что произойдет в таком коде:
    $a = 5 + '5abc' + 'abc5';
    - произойдет следующее: я посмотрю blame скрипта и поговорю с автором этой строчки, что бы узнать, что такого хренового в жизни может произойти, что бы он позволил себе это написать.
    - ну, тут вопрос на приведение типов
    - 10, но вы в своей практике с подобным сталкивались?
    - нет
    - вот и я не сталкивался...
    Ответ написан
    1 комментарий
  • Как правильно написать BASH файл?

    microphone
    @microphone
    Сломалось - читай логи!
    cat <<EOF > bash.sh
    #!/bin/bash      
    # Путь может быть другим -> whereis bash
    case "$#" in
    0)
    # На входе ноль параметров, выполним ссш
    ssh -i /var/www/keys/my_key.pem -f user@xx.xx.xx.xx
             ;;
    1)
    # На входе 1 параметр, выполним ссш и что-то еще 
    ssh -i /var/www/keys/my_key.pem -f user@xx.xx.xx.xx
    cd /var/www/
    git fetch
    git reset --hard origin/$1
    bash my_bash.sh
             ;;
            *)
    # На входе хрен пойми что - дай подсказаньку
                    echo "Usage:  \"bash ./bash.sh my_branch\" OR \" bash ./bash.sh \" ";
            ;;
    esac
    EOF
    Ответ написан
    Комментировать
  • Как правильно написать BASH файл?

    gbg
    @gbg
    Любые ответы на любые вопросы
    1. Натурально, скопировать это дело в файл с расширением .sh
    2. Дописать в начало строку #!/bin/bash
    3. Параметры командной строки подставляются вместо $1, $2, $3 и так далее.
    4. Дать скрипту право на исполнение.
    Ответ написан
    Комментировать
  • Как правильно написать BASH файл?

    jlekapb
    @jlekapb
    .do
    запускать как-то так: sh ./bash.sh my_branch

    #!/bin/bash
    
    ssh -i /var/www/keys/my_key.pem -f user@xx.xx.xx.xx
    cd /var/www/
    git fetch
    git reset --hard origin/$1
    bash my_bash.sh
    Ответ написан
    2 комментария
  • Как в Sublime Text 2 выделить переменную PHP вместе с знаком "$"?

    @skylion4ik
    Preferences -> Settings - User
    меняем / добавляем параметр "word_separators" на "./\\()\"'-:,.;<>~!@#%^&*|+=[]{}`~?"
    Ответ написан
    Комментировать