React input автофокус с помощью ref
Представьте ситуацию, когда вам нужно поставить фокус в инпут. Для input’а, который есть на странице в момент загрузки — никаких проблем, в документации указано как использовать ref. Остается только вызвать метод .focus()
Но если элемента на странице нет, например, по клику на «Логин» появляется модальное окно, и в нем нужно установить фокус в input…
читать далее
Webpack source map для удобной отладки
Сегодня на операционном столе сайт с интерфейсом администратора. Причина заболевания: переезд с gulp на webpack.
Первая проблема: удобный source map.
Поехали 😉
Глобальный .gitignore
Собственно, все указано в заголовке. Вам остается только создать новый .gitignore или указать на существующий.
git config --global core.excludesfile ~/.gitignore
Получить список всех слушателей jQuery объекта
Пост буквально одной строкой! Проблема — производительность.
Почему? Часто навешиваете обработчик и забываете его снять? Работаете в команде, и не можете гарантировать, что кто-нибудь не навесил случайно на $(window).on(‘resize’,..) кучу тяжелых функций?
Посмотрите список всех обработчиков
jQuery._data( window, "events" );
P.S. и да, не забывайте давать своим событиям «namespace», например так:
$(window).on('resize.playstop', myFunction) //потом легко снять $(window).off('resize.playstop')
P.P.S подсмотрел кусочек про _data на StackOverflow.
Boilerplate: Angular.js + JADE + Gulp
Изначально я долго и усердно настраивал browserify+angular.js, и был близок к победе, но что-то пошло не так (а именно inject кастомных директив) и я решил немного повременить. Поэтому связка будет немного иной и в консоли придется выполнить на одну команду больше. Так или иначе, этот пост в первую очередь для моего друга-бэкэндера и здесь будет сделан упор на автосборку проекта с помощью таск-менеджера Gulp.
Lexa-007, You’re welcome 😉
читать далее
Кастомизируем angular-strap datepicker
Это не пост, скорее заметка, чтобы не забыть.
Речь идет про http://mgcrea.github.io/angular-strap/##datepickers
читать далее
Комфортная работа по sshfs в OS X и Ubuntu
Данный пост будет рассчитан на пользователей OS X, но справедливости ради, скажу, что в Ubuntu все еще удобнее, поэтому не составит труда поставить sshfs через apt-get install, а сам ssh — есть «из коробки» в обеих системах.
Установить sshfs в OS X можно с помощью brew. Как установить brew — здесь
читать далее
Улучшаем читаемость git diff для сжатых js файлов (binary git diff)
Когда вы жмете js код, и попутно заменяете другие файлы, при попытке посмотреть git diff, вывод данной команды будет засорен большими кусками сжатого кода, так как это обычно одна строка и достаточно длинная, гит думает что ее заменили (и правильно!) и хочет, чтобы вы видели это. Но давайте, научим гит говорить нам, что изменился лишь размер файла, так как вывод изменений сжатых файлов нам абсолютно не интересен.
читать далее
Ньюанс base64 decode image для сохранения на диск
Всеми любимый canvas имеет классный метод .toDataUrl(), который возвращает base64 закодированный текст. Но, внимание, с припиской вначале: data:image/png;base64, как раз в этом вся и проблема. При сохранении такой последовательности, ваше изображение получается испорченным. Все дело в том, что само изображение это ровно то, что идет после этого. Поэтому берите на вооружение вот такую регулярочку:
imgData.replace(/^data:image\/png;base64,/,'');
Мягкий рестарт сервиса на примере nginx
Есть разные варианты как можно рестартануть какой-то сервис, например service name restart, но сегодня я столкнулся с задачкой, когда команды service установлено не было, а nginx надо было рестартануть. Заодно расскажу о полезной команде поиска конфига.
читать далее