Pull to refresh
1
0
Send message

Самые нужные плагины для Grunt

Reading time6 min
Views49K


Доброго времени суток, всем! Кто-то умный, не помню в какой статье именно на Хабре, буквально недавно размышлял о процессе разработки с явным призывом автоматизировать все, что только можно автоматизировать. И лучше один раз потратить время на автоматизацию, чтобы потом экономить его на протяжении всего проекта.

У веб-разработчиков есть прекрасный инструмент для автоматизации массы задач, который называется Grunt. И моя страсть к таксономии заставила себя собрать огромную коллекцию почти из 100 ценных плагинов для этого сборщика. Думаю многие кто уже использует Grunt найдут для себя что-то нужное, а кто нет, глядя на возможности, получит хорошую мотивацию установить его и понять как эта штука работает.

А еще я выложил подборку на GitHub, чтобы каждый мог пополнить коллекцию.

Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments43

Как жить с Docker, или почему лучше с ним, чем без него?

Reading time5 min
Views77K


Эта статья предназначена для тех, кто уже знает про Docker, знает для чего он. А вот что делать с этим дальше не знает. Статья носит рекомендательный характер и не посягает на звание «лучшая практика».

Итак, возможно вы прошли docker tutorial, докер кажется простым и полезным, но вы пока не знаете, как он может вам помочь с вашими проектами.

Обычно с деплоем возникает три проблемы:
  1. Как мне доставить код на сервера?
  2. Как мне запустить код на серверах?
  3. Как мне обеспечить одинаковость окружения, в котором запускается и работает мой код?


Как с этим поможет Docker под катом.
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments41

Уменьшаем количество ошибок с помощью чек-листа Code Review

Reading time3 min
Views31K
В нашей статье об эффективных ревью кода мы рекомендовали использовать чеклист. Чеклисты (контрольные списки) — это великая вещь в ревью: они гарантируют, что ревью действительно прошло через вашу команду. Также они способствуют выявлению и решению общих трудностей.

Исследование, проведенное Software Engineering Institute, показывает, что программисты делают 15-20 распространенных ошибок. Добавив такие ошибки в чеклист, вы можете быть уверены, что заметите их в момент появления и поможете от них избавиться надолго.

Чтобы вам было от чего отталкиваться, вот вам список типичных пунктов:
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments13

Как программисты ищут квартиры

Reading time8 min
Views106K
image

На самом деле все происходит не так...

Один мой знакомый попросил меня написать эту статью. В статье пойдет рассказ о его похождениях, которые могут (могли) быть неправильно восприняты администрацией определенных интернет-ресурсов. И те, в свою очередь, могут (могли) пожаловаться на моего знакомого куда следует. Поэтому пишу статью с его слов я. А он уехал. В Гондурас. Насовсем.

Проблема


Пару лет назад (наконец-то!) наступил в моей жизни момент, когда мне нужно можно было купить квартиру. Оставалось ее найти. Дело осложнялось тем, что были у меня свои взгляды на то, какой должна быть моя идеальная квартира. А именно — она должна была быть НА последнем этаже. Ну чтобы никто по мозгу не ходил. Ну и плевать на всех удобнее.
Читать дальше →
Total votes 125: ↑99 and ↓26+73
Comments96

Еще один менеджер плагинов для Vim

Reading time2 min
Views20K
Для Vim существует несколько менеджеров плагинов. Я хочу рассказать еще об одном.

Введение


На Хабре уже были обзоры менеджеров плагинов: раз, два. Рассмотрим еще один: VIM-PLUG. Данный менеджер обладает рядом интересных возможностей:
  • Простота установки (код плагина содержится в единственном файле)
  • Быстрые установка и обновление плагинов (если Vim собран с опцией +ruby)
  • Поддержка ветвей и тегов
  • Постобработка

В статье автор рассказывает о причинах, побудивших его написать еще один плагин. А в это статье приводит сравнение производительности плагинов.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments19

Странности в работе Яндекс.Метро: разбор полётов и апдейт приложения

Reading time4 min
Views97K
На прошлой неделе на Хабре был популярный пост о странностях в поведении приложения Яндекс.Метро под Андроид. Мы очень серьёзно относимся к вопросам приватности наших пользователей и корректности поведения наших программ и по итогам поста провели внутреннее расследование.

Его результатом стал не только подробный рассказ о происходившем, который можно прочитать ниже, но и обновление Яндекс.Метро для Android, в котором мы исправили ошибки, приводившие к описанному поведению. Сейчас оно раскатывается в сторе. Напомним, что приложение в фоновом режиме могло отправлять данные на сервера Яндекса. Мы в изначальном посте сразу же ответили, что это баг и такое поведение не было заложено в Метро.

За прошедшее время мы нашли причины, которые привели к подобной ситуации, и сейчас проверяем все наши приложения на предмет таких ошибок.

Мы хотим извиниться перед всеми, кого затронула эта проблема, сказать спасибо автору оригинального поста merced2001, а также всем пользователям, которые помогали выяснять подробности и задавали хорошие вопросы. В самом начале — очень краткие ответы на те, которые были явно заданы в том посте.
Читать дальше →
Total votes 145: ↑124 and ↓21+103
Comments101

Git game или в поисках Линуса Торвальдса

Reading time1 min
Views43K


Наткнулся сегодня на этот замечательный проект. Из файла README.md репозитория проекта:

Это игра для терминала, цель которой проверить ваш уровень знаний Git. Каждый уровень в игре — задание, которое необходимо выполнить в репозитории. После выполнения текущего задания вы получите следующее задание. Всего есть 10 уровней, которые возрастают по сложности!

Поехали!


Склонируйте репозиторий с помощью команды:
$ git clone https://github.com/hgarc014/git-game.git

Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments39

Ограничение количества попыток ввода пароля в веб-форме авторизации при помощи Nginx или HAProxy на примере WordPress

Reading time3 min
Views17K
Рассмотрим на примере WordPress способ усиления безопасности при помощи ограничения количества HTTP-запросов к форме ввода пароля. Это позволит оградить опубликованный блог от брутфорса (поиска и взлома пароля путем перебора всех теоретически возможных вариантов из определенного набора символов или подбора по словарю распространенных паролей). Данный способ, в принципе, можно использовать и для защиты других веб-приложений.

Задача может быть реализована в Nginx с помощью модуля ngx_http_limit_req_module [1], выступающем в роли фронт-энда к Apache или веб-сервера FastCGI, или же с помощью HAProxy [2, 3], выступающем в роли балансировщика нагрузки перед веб-серверами.

В обоих случаях алгоритм работы следующий. При аутентификации браузер обращается по адресу, содержащему в себе подстроку "/wp-login.php". Необходимо отследить ее и ограничить количество запросов с одного IP не затрагивая обращения по всем остальным адресам. Параметры блокировки необходимо подобрать таким образом, чтобы не создавать неудобств обычным пользователями. Особенно внимательно следует настраивать блокировки в том случае, когда формой авторизации пользуется большое количество пользователей с одного IP-адреса.
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments30

Как взломать двухфакторную аутентификацию Яндекса

Reading time2 min
Views103K
Наконец-то Яндекс запилил двухфакторную аутентификацию. Я не ждал подвоха, но, похоже, зря.

Как работает двухфакторная аутентификация Яндекса?

В браузере отображается QR-код, юзер сканирует его специальным приложением, браузер сразу это чувствует и авторизует пользователя.

QR-код расшифровывается в ссылку вот такого вида:

yandex.ru/promo/2fa?track_id=38e701d0bb5abaf50d381c3f95e0f341a8

Внутри всего этого веб-страничка с QR-кодом постоянно опрашивает сервер в ожидании авторизации:
POST /auth/magic/status/ HTTP/1.1
Host: passport.yandex.ru

track_id=38e701d0bb5abaf50d381c3f95e0f341a8

Как только пользователь отсканирует приложением Яндекса QR-код, следующий такой запрос отдаст браузеру куку.

В чем здесь проблема?
Читать дальше →
Total votes 207: ↑174 and ↓33+141
Comments75

Изоморфный БЭМ

Reading time7 min
Views14K
Когда появился node.js, многие web-разработчики стали задумываться о возможности использовать один и тот же код как на клиенте, так и на сервере. Сейчас существует несколько фреймворков, ставящих подход «пишем код один раз, используем везде» во главу угла, время от времени появляются новые. Вот и я не смог пройти мимо, пишу подобный микро-фреймворк — bnsf. Он предназначен для тех, кто предпочитает создавать front-end своих приложений по БЭМ-методологии, пользуясь соответствующим набором технологий и инструментов.

Давайте попробуем начать писать front-end для простого одностраничного web-приложения, используя bnsf. Чтобы не отвлекаться на создание back-end части, будем использовать в качестве back-end'a API vk.com. Наше приложение будет состоять всего из двух страниц, главной — с формой поиска пользователей по идентификатору — и вторичной, на ней будем выводить информацию о выбранном пользователе.
Читать дальше →
Total votes 25: ↑19 and ↓6+13
Comments31

Яндекс убил сервис Подписки

Reading time1 min
Views34K


Сегодня Яндекс убил сервис Яндекс.Подписки. Несмотря на то, что о нём гордо писали во время закрытия Google Reader, мол — мы остаёмся, теперь сервис убит и всех насильно перетащили в Яндекс.Новости.

Можно скачать архив подписок, который там был. Но там в xml-файле только адреса rss-лент.
Самое ужасное, что они потеряли все непрочитанные статьи. Я вот, например, некоторые записи в ленте держал непрочитанными, чтобы позже к ним вернуться, когда будет время.

API, пока что, работает, через него ещё можно спасти непрочитанное. Сдаётся мне, что его тоже убьют.

Пост-предупреждение. Если кто-то напишет какую-то тулзу, которая вытащит нормальный архив через API — было бы очень круто.

Пост в Блоге Яндекс.Почты с анонсом.

UPDATE: с 31 марта закрыт и API сервиса.
Total votes 64: ↑52 and ↓12+40
Comments96

Google Chrome в Крыму всё

Reading time1 min
Views41K
Сегодня вечером для всех жителей Крыма заблокирована возможность обновляться/скачивать новую версию браузера Google Chrome. При попытке обновления браузера система выдает ошибку:
Установка не была выполнена из-за ограничения доступа в этой стране.
.



Напомню, что ранее был уже полностью заблокирован сервис Google Play. Конечно, при желании это все обходится, с помощью тех же proxy/vpn, но тенденция налицо.

Судьба бесплатных сервисов, на мой взгляд, тоже под вопросом, принципиальной разницы между экспортом ПО и онлайн сервиса в США нет.

Кстати, в Крыму позиции Google были выше, чем у Яндекса, теперь ситуация будет меняться.

А Крым будет превращаться в регион софтовых корсаров.

P.S. Теперь беспокоюсь и за Firefox.
Total votes 122: ↑76 and ↓46+30
Comments22

ReactJS для глупых людей

Reading time5 min
Views486K
Пытаясь разобраться с библиотекой от Facebook ReactJS и продвигаемой той же компанией архитектурой «Flux», наткнулся на просторах интернета на две занимательные статьи: «ReactJS For Stupid People» и «Flux For Stupid People». Решил поделиться с хабравчанами переводом первой (а чуть позже и второй) статьи. Итак, поехали.

ReactJS для глупых людей


TL;DR В течении долгого времени я пытался понять, что такое React и как он вписывается в структуру приложения. Это статья, которой мне в свое время не хватало.

Что такое React?


Чем отличается React от Angular, Ember, Backbone и других? Как управлять данными? Как взаимодействовать с сервером? Что, черт возьми, такое JSX? Что такое «component»?

СТОП.

Остановитесь прямо сейчас.

React — это ТОЛЬКО УРОВЕНЬ ПРЕДСТАВЛЕНИЯ.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments17

PayPal заблокировал счета жителей Крыма

Reading time1 min
Views28K
image
Получил сейчас письмо:
Ваш счет PayPal ограничен

Здравствуйте, %username%!

Информируем Вас о том, что, к нашему глубочайшему сожалению, Ваш счет PayPal ограничен. Являясь глобальной компанией, предоставляющей финансовые услуги, мы делаем все возможное для того, чтобы соответствовать законодательству по всему миру. В то же время, мы должны постоянно предоставлять своим клиентам высокий уровень сервиса. Это было очень непростое для нас решение, но, к сожалению, в настоящее время мы не можем предоставлять свои услуги клиентам в Крыму.

Так как на остатке Вашего счета нет денежных средств, ничего предпринимать сейчас не нужно.
Читать дальше →
Total votes 68: ↑63 and ↓5+58
Comments126

Google AdSense присоединился к санкциям в Крыму

Reading time1 min
Views54K
Google AdSense заблокировал работу аккаунтов зарегистрированных в Крыму. Вот такое письмо сегодня пришло на почту:

Здравствуйте,
Ваш аккаунт Google AdSense (CID: ********) расположен в Крыму, издатели из этого региона больше не могут сотрудничать с AdSense в связи с санкциями, которые недавно вступили в силу. По этой причине, Ваш аккаунт будет закрыт. К сожалению, Вы не сможете войти в свой аккаунт и мы не сможем перечислить невыплаченные средства с Вашего аккаунта.
Спасибо за участие в программе AdSense.
С уважением,
Команда Google AdSense

Читать дальше →
Total votes 90: ↑70 and ↓20+50
Comments158

One ring to rule them all или аутентификация через TeddyID

Reading time6 min
Views5.8K

Недавно меня попросили высказать свое мнение по поводу нового сервиса, который обещает решить все проблемы пользователей-склеротиков, увеличить пушистость меха и значительно снизить риски связанные с кражей пароля. Основная концепция системы заключается в избавлении пользователя от необходимости помнить свой пароль для аутентификации и параллельно увеличить безопасность за счет двухфакторной аутентификации. Также сервис предлагает «полуторафакторную аутентификацию», которая представляет из себя вариант LastPass. Заинтересовавшись, я решил рассмотреть все плюсы и минусы такого подхода с точки зрения пользователя-гика. Сразу оговорюсь, что я не являюсь экспертом в области информационной безопасности, поэтому прошу простить заранее возможные неточности.
Осторожно тыкаем медвежонка палочкой
Total votes 11: ↑6 and ↓5+1
Comments18

Как начать работу в Kaggle: руководство для новичков в Data Science

Reading time4 min
Views145K
Доброго времени суток, уважаемые хабровчане! Сегодня я хотел бы поговорить о том, как не имея особого опыта в машинном обучении, можно попробовать свои силы в соревнованиях, проводимых Kaggle.

image

Как вам уже, наверное, известно, Kaggle – это платформа для исследователей разных уровней, где они могут опробовать свои модели анализа данных на серьезных и актуальных задачах. Суть такого ресурса – не только в возможности получить неплохой денежный приз в случае, если именно ваша модель окажется лучшей, но и в том (а, это, пожалуй, гораздо важнее), чтобы набраться опыта и стать специалистом в области анализа данных и машинного обучения. Ведь самый важный вопрос, зачастую стоящий перед такого рода специалистами – где найти реальные задачи? Здесь их достаточно.

Мы попробуем поучаствовать в обучающем соревновании, не предусматривающем каких-либо поощрений, кроме опыта.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments11

WebSocket RPC или как написать живое WEB приложение для браузера

Reading time4 min
Views63K


В статье речь пойдет о технологии WebSocket. Точнее не о самой технологии, а о том, как ее можно использовать. Я давно слежу за ней. Еще когда в 2011 году один мой коллега прислал мне ссылку на стандарт, пробежав глазами, я как-то расстроился. Выглядело настолько круто, и я думал, что в момент, когда это появится в популярных браузерах, я уже буду планировать, на что потратить свою пенсию. Но все оказалось не так, и как гласит caniuse.com WebSocket не поддерживается только в Opera Mini (надо бы провести голосование, как давно кто-либо видел Opera Mini).

Кто трогал WebSocketы руками, тот наверняка знает, что работать с API тяжело. В Javascript API достаточно низкоуровневый (принять сообщение — отправить сообщение), и придется разрабатывать алгоритм, как этими сообщениями обмениваться. Поэтому и была предпринята попытка упростить работу с вебсокетами.

Так и появился WSRPC. Для нетерпеливых вот простое демо.
Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments64

10 «фишек» Lenovo Vibe UI 2.0 и немного инсайда

Reading time6 min
Views89K
Утверждение про «сколько людей, столько и мнений» в полной мере можно применить к системным оболочкам, которые сегодня выпускают для операционной системы Android все крупнейшие производители смартфонов. Мы совершенно точно уверены, что у каждой из них есть и сильные, и слабые стороны, в том числе и у нашей Lenovo Vibe UI 2.0. Именно о ней и предлагаем сегодня поговорить. Мы расскажем про достоинства оболочки и поделимся парочкой эксклюзивов, а вас попросим указать на недостатки или посоветовать нам, как улучшить Vibe UI. Торжественно обещаем, что без внимания отзывы не останутся.
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments28

Information

Rating
Does not participate
Registered
Activity