Pull to refresh
0
0
Евгений @EMolchanov

User

Send message

Почему стать VPN провайдером не так просто?

Reading time5 min
Views50K
Всем привет.

Недавно я опубликовал статью о том, как я закрыл свой VPN сервис и выложил его в опенсорс.
После этого достаточно много людей мне написали, интересуясь более подробно о причинах закрытия и подводных камнях такого бизнеса.
В результате, я заметил, что в процессе общения рассказываю всем примерно одно и тоже, и решил написать эту статью.
Далее я расскажу некоторые интересные кейсы о ведении VPN бизнеса.
Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments37

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

Reading time6 min
Views49K


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

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

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

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

Node v0.12.0

Reading time2 min
Views13K
6 февраля вышла новая версия Node.js v0.12. Это был длительный и трудный процесс, не без потерь для NodeJS, в результате которого от основной ветки отделился io.js, но, тем не менее, список нововведений довольно внушительный. Давайте поглядим.

Streams 3


Как обещают разработчики, реализация потоков теперь работает так, как это и ожидается. Причем самое главное, что старые API, введенные в v0.10, не поменялись.

Добавлен механизм cork/uncork для приложений, которые несколько раз синхронно пишут в поток. .cork() включает буферизацию для всех записей в поток, .uncork() же сбрасывает весь буфер.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments21

Визуализация CSS файлов

Reading time3 min
Views15K
Некоторое время назад мне стало интересно посмотреть, как выглядит CSS код нашего проекта, и как он менялся в течение целого года. Так на свет появился проект node-specificity. Что он делает? Он позволяет получить ответы на следующие вопросы:

  1. Как много селекторов в коде? Как их количество изменялось со временем?
  2. Каковы максимальное и среднее значения специфичности селекторов? Какова медиана? Как они изменялись со временем?
  3. Как выглядит распределение специфичности селекторов? Как оно изменялось со временем?
  4. В скольких селекторах используется !important директива? Как их количество изменялось со временем?


Хорошо, почему это вообще важно? Может быть и нет, пока вы не работаете c кодом, состоящим из десятков тысяч строк, который сложно поддерживать, или вы довольно много экспериментируете. Ну и, конечно, если это не важно, то, по крайней мере, это должно показаться интересным.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments13

Дайджест новостей игровой индустрии: ноябрь

Reading time5 min
Views20K
Все больше игровых релизов, все меньше свободного времени. Начало декабря — самое время оторваться от прохождения очередного ААА-шедевра и почитать, что интересного произошло в игровой индустрии за ноябрь.


Подробнее под катом
Total votes 23: ↑21 and ↓2+19
Comments3

Как мы измеряем скорость загрузки Яндекс.Почты

Reading time7 min
Views26K
Если ваш сайт медленно грузится, вы рискуете тем, что люди не оценят ни то, какой он красивый, ни то, какой он удобный. Никому не понравится, когда все тормозит. Мы регулярно добавляем в Яндекс.Почту новую функциональность, иногда — исправляем ошибки, а это значит, у нас постоянно появляются новый код и новая логика. Все это напрямую влияет на скорость работы интерфейса.



Яндекс.Почту каждый день открывают миллионы человек из разных точек земного шара. И ни у кого она не должна тормозить, поэтому без различных измерений наша работа не обходится. В этом посте мы с alexeimoisseev и kurau решили рассказать о том, какие метрики у нас есть и какие задачи они решают. Возможно, это пригодится и вам.
Читать дальше →
Total votes 52: ↑45 and ↓7+38
Comments21

Лицензия для вашего open-source проекта

Reading time98 min
Views185K
В этой статье я хочу немного поговорить об авторском праве и свободных лицензиях на ПО. Текст является результатом самостоятельного выбора лицензий и их применения к своим проектам.

Статья будет полезна тем, кто хочет:

— в общих чертах понять, что такое авторское право (но лучше обратиться к юристу);
— подобрать свободную лицензию для своего проекта;
— разобраться, что нужно писать в шапке файла исходного кода.
Читать дальше →
Total votes 136: ↑132 and ↓4+128
Comments117

О Meteor подробно: почему это будущее веб-разработки

Reading time4 min
Views22K

Что такое Meteor?


Это не очередной javascript фреймворк. Ставить его в один ряд с derby, sails, angular или backbone некорректно. Meteor — это платформа для создания модульных высокоинтерактивных клиент-серверных приложений. Пусть это звучит слегка напыщенно и напоминает маркетинговый булщит слоган, но зато по сути очень точно отражает миссию и текущее состояние Meteor. Буквально несколько дней назад Meteor API выпустил первую стабильную версию (1.0).

Официальную информацию можете почитать на портале www.meteor.com, а я же хочу рассказать об особо горячо любимых мной фичах.
Что же хорошего предлагает Meteor?
Total votes 50: ↑22 and ↓28-6
Comments73

Умей говорить «нет» и умей говорить «да»

Reading time7 min
Views272K

Умей говорить «нет»


Старший разработчик Валера работает в роли тимлида на большом и важном проекте для большого и важного заказчика. За окном шумит жаркое лето, по пыльным улицам бегут по своим делам прохожие, голуби крутят пируэты в необъятном казахстанском небе. Жизнь прекрасна – пилотный запуск намечен на конец ноября, команда набрала хороший темп и идет по графику. И тут Валера боковым зрением замечает, как на иконке Скайпа появилась желтая точка – кто-то о нем вспомнил и написал сообщение. Это руководитель проекта: «Зайди ко мне…»
Читать дальше →
Total votes 193: ↑183 and ↓10+173
Comments34

Пишем тестопригодный javascript

Reading time7 min
Views13K
[Прим. перев.]: предлагаю вашему вниманию перевод статьи Бена Черри, в прошлом разработчика Twitter. В этой статье он приводит несколько советов по написанию javascript кода, пригодного для тестирования.

Культура разработки в Twitter требует написания тестов. У меня не было опыта тестирования Javascript до работы в Twitter, поэтому мне пришлось многому научиться. В частности, некоторые шаблоны программирования, которые я привык применять, о которых я писал и призывал к их использованию, оказались непригодными для тестирования. Поэтому я подумал, что стоит поделиться некоторыми наиболее важными принципами, которые я разработал для написания тестопригодного Javascript кода. Примеры, которые я привожу, основаны на QUnit, но могут быть применены к любому фреймворку для тестирования Javascript'а.

Избегайте синглтонов


Один из моих наиболее популярных постов был о том, как использовать javascript шаблон «Модуль» для создания синглтонов в вашем приложении. Этот подход может быть простым и полезным, но он создает проблемы для тестирования по одной простой причине: синглтон загрязняет состояние объекта между тестами. Вместо синглтона в виде модуля, следует создавать его как конструируемый объект и присваивать его экземпляру глобального уровня во время инициализации вашего приложения.
Читать дальше →
Total votes 30: ↑22 and ↓8+14
Comments17

Несколько интересностей и полезностей для веб-разработчика #24

Reading time5 min
Views59K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webhook


image

Webhook — это платформа для создания сайтов. Важно не путать со статическими генераторами, потому что это именно «CMS builder». Проект успешно завершил кампанию на Kickstarter 14 мая этого года, где смог собрать сумму в два раза большую, чем было необходимо. А буквально недавно состоялся релиз первой версии продукта. Webhook построен с использованием NodeJS, Grunt и Firebase для реалтайма, работает на Windows, Linux и Mac, внутри целая система виджетов со множеством вариаций на выходе, «Django-like templating» с помощью Swig JS, кроссплатформенная админ панель и еще целый ряд плюсов.
Читать дальше →
Total votes 101: ↑90 and ↓11+79
Comments27

История создания синематика «Несокрушимые». Часть первая

Reading time2 min
Views16K
Привет, Хабр! Сегодня у нас есть немного свежезапеченного CG, и мы хотим рассказать тебе о разработке синематика «Несокрушимые» для стратегии «Спарта: Война империй». В первой части статьи о создании этого видео, руководитель Plarium Cinematics Team Вячеслав Лисовский расскажет о работе над анимацией и VFX.


Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments13

Еще одна история про домашний сервер, или операция «silence»

Reading time14 min
Views53K
Добрый день, хабраюзеры!

imageНаверняка каждый разработчик, рано или поздно, сталкивается с проблемой тестового окружения. Не очень удобно держать ПК включенным 24х7, да еще и заваливать его софтом для экспериментов под завязку. С другой стороны найти хостинг по собственному вкусу, да еще и не дорогой — тоже задача не из легких. Что же делать? Выход есть — развернуть песочницу дома. Как я убедился, об этом детальнее ниже, это не дорого, это удобно и очень увлекательно.
Подробности
Total votes 50: ↑36 and ↓14+22
Comments52

Несколько интересностей и полезностей для веб-разработчика #16

Reading time5 min
Views31K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

PourOver


image
Библиотека для реально быстрой фильтрации и сортировки огромных коллекций, где речь идет о сотне тысяч элементов. PourOver построен на идеально простых запросах, которые могут произвольно формироваться друг с другом. Вы сможете объединять, скрещивать и разделять запросы. PourOver будет помнить как были построены ваши запросы и по-умному обновлять их, если появятся новые элементы или будут изменены старые. Работает на IE7+, Firefox 4+, Safari 5+, Opera 9+, Chrome 1+.

Стоит также заметить, что это проект от New York Times, на корпоративном Гитхабе которого есть еще популярный backbone.stickit плагин для датабиндинга и Tamper — serialization protocol for categorical data. В последнее время гики из западных СМИ прямо раскочегарились — вот недавно я писал про классные проекты от The Guardian и Financial Times.

Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments9

Почему после обнаружения Heartbleed мы не предлагаем пользователям Почты Mail.Ru менять пароли

Reading time2 min
Views58K
Короткий ответ на вопрос, озвученный в заголовке: потому, что этого не требуется. Heartbleed, одна из самых критичных уязвимостей в истории OpenSSL, не ударила по нашим пользователям. Чуть более подробный ответ – под катом.

Читать дальше →
Total votes 157: ↑105 and ↓52+53
Comments74

Использование PhpStorm для разработки под WordPress

Reading time4 min
Views44K
Несколько недель назад в PhpStorm 8 (доступной в рамках программы раннего доступа / Early Access Program) была добавлена поддержка популярной CMS WordPress. Свежий билд PhpStorm 8 EAP можно загрузить бесплатно прямо сейчас, так что все описанное в данном обучающем материале уже можно попробовать, а мы в свою очередь будем благодарны обратной связи в нашем багтрекере.

Исчерпывающую информацию о поддержке WordPress в PhpStorm можно найти в англоязычном материале WordPress Development using PhpStorm. В этом посте мы расскажем о самых важных функциях, включенных в поддержку WordPress в PhpStorm.

На данный момент поддержка включает:
  • интеграцию PhpStorm с WordPress для существующих проектов и новых плагинов;
  • настройку рабочей среды для разработки под WordPress;
  • настройку стандартов оформления кода WordPress и следование им;
  • поддержку хуков (включая автодополнение для параметров регистрирующих функций; навигацию от функций, регистрирующих хуки, к вызовам хуков; и другие функции);
  • поиск документации на WordPress.org прямо из редактора;
  • интеграцию с инструментами командной строки WordPress WP-CLI.

Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments16

Установка node.js на VPS

Reading time2 min
Views21K
В этой статье я расскажу, какие проблемы прийдется решить, чтобы получить VPS с реально работающим node.js сервисом. Это все элементарные вещи, но, может быть, кому-нибудь еще пригодится.

Установка node


Проблема: в репозитории может не оказаться пакета для нужной версии node. Как вариант, у вас может быть два проекта, требующих разные версии node.
Решение: на девелоперских машинах в таких случаях используют nvm. На боевом сервере его тоже можно запросто использовать, просто прийдется написать специальный скрипт для запуска своего сервера.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments10

Анимация SVG-элемента path

Reading time5 min
Views123K
Думаю многие видели обзоры игровых консолей нового поколения от Polygon (Vox Media). Это те, где консоли отрисовывались в стиле blueprint'ов:

PlayStation 4

Обзоры выглядели круто, довольно необычно и ново. О том как реализована основная фишка обзоров — SVG анимация, как сделать нечто подобное самому, и какие ещё «секретные» возможности скрывает старый добрый SVG в плане анимации элемента path — можно узнать под катом.
Читать дальше →
Total votes 64: ↑62 and ↓2+60
Comments15

От Backbone.js к Marionette.js

Reading time6 min
Views63K
Привет, Хабр.

В этой статье пойдет речь о том, из чего состоит Marionette.js, и о возможности не писать свой велосипед.

Статья рассчитана в первую очередь на работавших с Backbone.js и/или Marionette.js.
Для вновь знакомящихся будет полезна первая, обзорная, часть и ссылки в конце статьи.
Так из чего же состоит Marionette.js
Total votes 17: ↑15 and ↓2+13
Comments11

Сортировка при помощи HTML5 Drag'n'Drop API

Reading time5 min
Views36K
Sortable.js — минималистичная библиотека для современных браузеров и touch-устройств, не требующая jQuery.

Как вы уже догадались из названия, библиотека предназначена для сортировки элементов при помощи drag’n’drop. Стандартным решением в таких случаях является jQuery UI/Sortable, а это ни много, ни мало 64 кб + 10 кб. Итого 75 кб gzipped в проекте, где jQuery не используется совсем. Относительно недавно на Хабре уже была статья о том, как реализовать похожий функционал, но опять же на jQuery, да и touch-устройства в предлагаемом решении не поддерживаются.

Читать дальше →
Total votes 59: ↑54 and ↓5+49
Comments44
1

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Registered
Activity