Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (8)
  • Где искать адекватных верстальщиков?

    @lemix85
    Нанимайте на почасовую, правильно организуйте учёт времени, чтобы следить за выполнением спокойно, беречь свои нервы и нервы разраба: раздробить задачи на мелкие и внятные (для технаря), фиксировать и обсуждать их в todo-менеджере, контролировать время в time-менеджере, например toggl.com. Если видите, что выходит дорого или плохо (или оба), расплачиваетесь по часам и выбираете нового разраба.
    Ответ написан
    5 комментариев
  • Какие есть терминальные сервера под линукс?

    @lemix85
    Не думаю, что RDP вам вообще стоит рассматривать, ибо каждое подключение будет поражать новый сеанс, а предыдущий, даже при простом обрыве связи будет убиваться.

    Vnc вам в помощь. А чтобы вам не тратить время и не искать - берите turbovnc (как сервер, так и клиент), всё летает, а альтернатив и нет по сути у turbovnc, остальные тормозят. Держу на нём несколько виртуальных рабочих мест, даже с мобильного интернета да ещё и поверх vpn на не очень шустром роутере, подключение отличное, взаимодействие с рабочим столом без тормозов.

    Если нужна графика то turbovnc прекрасно работает с virtualgl. Но на практике для браузера и т.п (если не работаете с полноценными 3d приложениями), хватает и mesa за глаза.
    Ответ написан
    1 комментарий
  • Простым языком о замыканиях?

    @lemix85
    Я бы сказал так. Например, когда в теле функции используется переменная объявленная в вышестоящей функции, то переменная будет удерживаться до тех пор пока не отработает внутренняя функция - т.е. внутрення функция замкнёт на себя переменную.
    Например (setTimeout иллюстрирует любую асинхронную операцию):

    function func1() {
        var myVar1 = 100;
        setTimeout(function() {
             console.log(myVar);
        }, 1000); 
    }
    func1();


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

    Использовать можно, например, для создания колбэков с сохранением контекста:

    /// Некорректный вариант, выведет 3 3 3
    for(var i = 0; i < 3; i++) {
        setTimeout(function() { console.log(i) }, 1000); // Потому что на момент вызова колбэка цикл уже отработает и значение i будет максимальным
    }


    /// Выведет 0 1 2 т.к. текущее значение переменной i для каждой итерации передано аргументом в функцию в которой его замкнула другая функция
    for(var i = 0; i < 3; i++) {
        var cb = (function(value) { 
            return function() { console.log(value) };
        })(i);
        setTimeout(cb , 1000);
    }


    Последний код делает то, что сегодня уже можно сделать с помощью bind (но в моё время bind'а не было):
    for(var i = 0; i < 3; i++) {
        setTimeout(function() { console.log(this); }.bind(i) , 1000);
    }
    Ответ написан
    1 комментарий
  • Как сделать что бы toggle не закрывал блок, если кликнуть внутри него?

    @lemix85
    Возможно, остановить всплытие события, но не понятно если не видеть ваш html-код

    $('#block').click(function(ev) {
         ev.stopPropagation();
    });
    $("#icon").click(function() {
        $('#block').fadeToggle(350);
    });
    Ответ написан
    5 комментариев