Задать вопрос
  • Python, django... поможете разобрать кашу в голове?

    @teslor
    Начните с этого курса. Там же есть список хороших книжек.
    Еще есть хороший справочник Марка Лутца: "Python. Карманный справочник, 5-е издание". Коротко и по существу.
    Многие для начинающих также рекомендуют книгу "A Byte of Python" (есть на русском), но мне она не очень понравилась, слишком поверхностно.
    Ответ написан
    Комментировать
  • Разрешено ли использовать скайп на Upwork?

    @teslor
    Для общения с клиентом можно использовать что угодно, в т.ч. Skype, это вы уже договариваетесь в личной переписке.
    Однако важная информация, связанная с работой, всегда должна быть во внутренней переписке (в частности, все ТЗ, отчеты по работе и т.п.), иначе в случае каких-то проблем с клиентом сложно будет что-то доказать.
    Ответ написан
    6 комментариев
  • Как создать в цикле у объекта около ста свойства?

    @teslor
    Чтобы создать свойство, достаточно просто присвоить в него какое-нибудь значение:
    var obj = {}, prop_count = 100;
    for (var i = 0; i < prop_count; i += 1) obj['property' + i] = 0;
    Ответ написан
    Комментировать
  • Возможно ли при работе с Backbone использовать LoDash вместе Underscore?

    @teslor
    Как написано на оф. сайте Backbone "Mimics of the Underscore and jQuery APIs, such as Lo-Dash and Zepto, will also tend to work, with varying degrees of compatibility.", т. е. 100% совместимость не гарантируется, но на практике вряд ли будут какие-то проблемы. Я сам использую Backbone + LoDash.
    Ответ написан
    Комментировать
  • Указать количество вызовов функции?

    @teslor
    Если у вас в коде много мест, где нужно вызывать какую-то функцию несколько раз подряд, тогда оптимальнее всего будет написать декоратор.
    Если не нужно передавать контекст и аргументы (как в вашем случае), то наиболее простой вариант:

    // Декоратор
    function chain(func) {
        return function(t) {
            while(t--) func();
        }
    }
    
    // Создаем новую функцию, которая будет вызывать anim заданное количество раз.
    // Можно не создавать новую функцию, а перезаписать существующую: anim = chain(anim)
    anim_new = chain(anim); 
    
     // anim выполнится 10 раз
    anim_new(10);
    Ответ написан
    Комментировать
  • Как собрать все данные с пошаговой формы и отобразить результат в конце?

    @teslor
    Рациональнее всего хранить промежуточные/временные данные на стороне клиента в sessionStorage.
    Ответ написан
    Комментировать
  • Почему после удаления элементов не изменяется длина массива?

    @teslor
    Ваш код не совсем корректен. Оператор delete не предназначен для работы с массивами, т.к. не обновляет длину. То же касается и присвоения arr[4] = 'four'. Такое присвоение используется только если 4-й элемент уже есть и его нужно изменить.
    Для удаления/добавления элементов нужно использовать только методы, специально предназначенные для массивов: push/pop, shift/unshift, splice. Только в этом случае длина будет правильной.
    Т.е. для определения длины вполне можно использовать свойство length (оно для этого и предназначено), но нужно использовать методы массива для добавления/удаления элементов.
    Например:
    var arr = ["test", "two", 3];
    console.log(arr.length); // 3
    arr.shift(0);
    console.log(arr.length); // 2
    arr.push('four');
    console.log(arr.length); // 3
    arr.splice(0, 3);
    console.log(arr.length); // 0
    Ответ написан
    Комментировать
  • Как масштабировать inline svg?

    @teslor
    Высота по умолчанию вылезает, т.к. у вас не задана явно ни высота, ни viewBox.
    Для большинства браузеров можно указать, например, <svg viewBox="0 0 1 1" class="box-icon">
    В этом случае высота будет определяться автоматически и иконка будет вписываться в размеры в зависимости от ширины.
    Но в IE высота по-прежнему будет 150px, там нужно явно задать высоту, или использовать хаки/другие способы.
    Есть неплохая статья про адаптивный SVG (на английском).
    Ответ написан
    Комментировать
  • Почему вызывается valuOf, ведь по идее это строковое преобразование?

    @teslor
    В математических выражениях происходит численное преобразование. Т.е. сначала объект foo будет преобразован в число, а затем, когда уже число 2 складывается со строкой, оно будет преобразовано в строку.
    Ответ написан
    Комментировать
  • Выделение сложных фигур на странице?

    @teslor
    Если не нужна поддержка древних браузеров, то лучший способ - векторизировать фигуру и разместить в SVG-элементе, на который уже можно навесить любые обработчики.
    Ответ написан
    Комментировать
  • Чем/как лучше анимировать svg?

    @teslor
    В идеале лучше использовать JS.
    CSS-анимации могут глючить (особенно в IE), но в принципе для элементов интерфейса вполне можно использовать, только проверьте, что в нужных браузерах работает как надо.
    SMIL-анимация не поддерживается IE и не будет, ее сейчас вообще нет смысла использовать. От Microsoft кстати есть неплохое руководство про SVG-анимацию.
    Ответ написан
    Комментировать
  • Как избежать двойного клика?

    @teslor
    Двойной клик обычно может происходить по следующим причинам:
    1) Задан обработчик на одно и то же событие у самого элемента и у элемента-контейнера, в котором он находится. В этом случае поможет метод event.stopPropagation(), который предотвращает всплытие события.
    2) Дополнительно срабатывает встроенный обработчик браузера (в частности, при клике по ссылке браузер попытается по ней перейти). Чтобы запретить браузеру делать какие-то действия по умолчанию, используйте метод event.preventDefault(). Этот метод часто используется совместно с предыдущим.
    3) Пользователь слишком быстро делает подряд 2 клика. В этом случае нужно вызывать обработчик не ранее чем через определенное время после последнего срабатывания (debounce)
    Ответ написан
    Комментировать
  • Каким путем пойти в плане изучения js фреймворков?

    @teslor
    1) Глубоко изучить JavaScript, включая фичи ES2015-2016.
    2) Разобраться в MVC-архитектуре и ее разновидностях (Understanding Model-View-Controller)
    3) Изучить Backbone. Сейчас он уже не так популярен, но его изучение даст хорошее понимание как все работает, т.к. многое надо руками писать, как вы правильно заметили. Дополнительно можете посмотреть Marionette.
    4) Изучить React/Redux. Дополнительно - React Native.
    5) Node.js, Express/Koa
    Ответ написан
    1 комментарий
  • Что надо знать, что бы начать работу с D3 Visualisation js?

    @teslor
    В принципе для начала работы с библиотекой сильно глубоких знаний JS не требуется. Желательно также знать хотя бы основы работы с SVG-элементами.
    Рекомендую книгу D3.js in Action, все довольно хорошо описано, начиная с основ.
    Ответ написан
    1 комментарий
  • Что посоветуете почитать по node.js?

    @teslor
    Можете посмотреть этот скринкаст - https://learn.javascript.ru/nodejs-screencast
    Но для того, чтобы приступать, вы действительно должны хорошо знать JavaScript (т.к. Node.js это среда исполнения JavaScript со своим API) и как правило во всех обучающих материалах предполагается, что вы его знаете достаточно хорошо. И английский вам все же стоит изучить, т.к. многие переводные книги на русском на момент выхода уже устаревшие.
    Ответ написан
    4 комментария
  • Что значит node.js разработчик?

    @teslor
    Node.js это не веб-сервер и не CMS, это просто среда исполнения JavaScript, где можно сделать что угодно (в т.ч. написать свой веб-сервер, фреймворк и т.д.). Чтобы называться разработчиком Node.js нужно разбираться в тонкостях асинхронного JS, знать большую часть встроенных функций Node.js, уметь работать с основными модулями и создавать свои.
    В контексте фронтенд-разработки обычно хотят лишь, чтобы человек умел его установить и настроить сборщик. Это не разработчик Node.js.
    Ответ написан
    1 комментарий
  • Почему когда svg уменьшаешь она блюрится?

    @teslor
    При изменении размеров изображения может стать невозможно разместить его пиксель в пиксель. Браузер использует для таких случаев антиалиасинг, что проявляется в размытии границ. Можно попробовать задать для SVG свойство shape-rendering: crispEdges, которое выключает антиалиасинг. Или перерисовать иконку чтобы она нормально выглядела хотя бы при каких-то стандартных размерах.
    Ответ написан
    3 комментария
  • Удаленная работа/фриланс во frontend'е без опыта работы в офисе. Реально ли?

    @teslor
    Зависит от того, насколько вам это нравится и как быстро будет идти обучение. 6-8 месяцев обучения, если заниматься только этим - немалый срок, и вполне можно выучить необходимый минимум на среднем уровне.
    Параллельно с другой работой (особенно если она отнимает много времени) что-то выучить на нормальном уровне вряд ли получится. Без полного погружения и практики, вы будете быстро забывать, что выучили.
    На постоянную удаленную работу будет без опыта устроиться сложно, нужно хотя бы портфолио из нескольких работ.
    На фриланс вполне реально, но сначала придется браться за дешевые заказы, за которые тоже большая конкуренция.
    Что касается платных курсов, то, думаю, они могут много дать, но только при условии, что преподаватели хорошие специалисты-практики и сами разбираются в том, что преподают.
    Ответ написан
    Комментировать