Pull to refresh
0
0
KriMs @KriMs

Пользователь

Send message

Как удержать клиента: 5 шикарных примеров из емейл-маркетинга

Reading time7 min
Views66K
Сегодня все занимаются рассылками и делают это по одной простой причине – рассылки работают. Но какие письма вы пишете клиентам специально для того, чтобы убедить их вернуться и купить что-нибудь еще?

Никакие? Вот именно. И вы не одни такие.

Умение удержать клиента – сложная задача, и понимание того, как с помощью емейлов можно этого добиться, сразу же скажется на вашей прибыли.
Читать дальше →
Total votes 57: ↑40 and ↓17+23
Comments19

Рубин на рельсах: продакшен и деплой для чайников

Reading time13 min
Views32K
Год назад я довел свое первое рельсовое приложение до приемлемого вида. Вопрос использования готового кода в продакшене ранее меня не заинтересовал. С чего вдруг? Несложный язык, лаконичный фреймворк — уж деплой-то явно не сложнее, чем преодоление ментального тормоза после PHP.

Команда разработчиков Rails рекомендует использовать Phusion Passenger, он что-то вроде mod_php — установил, разместил файлы и полетел. На момент изучения вопроса на форумах хватало баталий о производительности решений; Passenger в них фаворитом не значился.

Совета относительно альтернативы я спросил у техдиректора сайта с миллионом уников в сутки — тот отправил меня гуглить на тему Nginx и Unicorn. Инструкция по настройке продакшена, найденная на Хабре, датировалась 2009 годом. Помимо прочего, ее просто переполняли изъяны уроков «Как нарисовать сову».

Отдельные составляющие процесса кое-где разжеваны по-английский, но монолитный tutorial на глаза так и не попался. В традициях рельсового сообщества лежит принцип, предписывающий делиться результатами и опытом решения проблем.
Делюсь
Total votes 38: ↑30 and ↓8+22
Comments81

Всё, что вы хотели знать об областях видимости в JavaScript (но боялись спросить)

Reading time8 min
Views82K
У JS есть несколько концепций, связанных с областью видимости (scope), которые не всегда ясны начинающим разработчикам (и иногда даже опытным). Эта статья посвящена тем, кто стремится погрузиться в пучину областей видимости JS, услышав такие слова, как область видимости, замыкание, “this”, область имён, область видимости функции, глобальные переменные, лексическая область видимости, приватные и публичные области… Надеюсь, по прочтению материала вы сможете ответить на следующие вопросы:

— что такое область видимости?
— что есть глобальная/локальная ОВ?
— что есть пространство имён и чем оно отличается от ОВ?
— что обозначает ключевое слово this, и как оно относится с ОВ?
— что такое функциональная и лексическая ОВ?
— что такое замыкание?
— как мне всё это понять и сотворить?
Читать дальше →
Total votes 57: ↑47 and ↓10+37
Comments38

Как накормить мозг программиста… или feed your brain

Reading time12 min
Views372K

Введение


Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)


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

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

В данной публикации мы рассмотрим, как правильно питаться для жизнеобеспечения мозга и как его разогнать ноотропами (в случае аврала необходимости).
Читать дальше →
Total votes 213: ↑163 and ↓50+113
Comments145

Как мы отучили аутсорсинг перекидываться мячом со внутренним ИТ-отделом

Reading time5 min
Views52K


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

Началась история с того, что нам понадобилась централизованная система с фермой терминалов. На тот момент у нас было порядка 10 магазинов, и каждый из них вёл свою базу, данные из которой использовались для составления совокупного отчёта в конце периода или по запросу.
Читать дальше →
Total votes 87: ↑80 and ↓7+73
Comments56

JavaScript. Вопросы на собеседовании

Reading time3 min
Views137K
Не так давно озадачился поиском работы, в связи с чем посетил n-нное количество собеседований и услышал много интересных вопросов. По сети гуляет много статей с вопросами по JS, поэтому постараюсь выбрать вопросы, которые ещё не видел. Здесь нет вопросов типа Что такое замыкание?, Наследование в JavaScript или Сделайте ajax запрос на VanillaJS. Кстати советую поискать ответы на эти вопросы, прежде чем читать статью :) Под катом вопросы типа «с подвохом». Вряд ли какой-то из них попадётся вам, но, надеюсь, статья настроит вас на «подвоховое» мышление, и напомнит некоторые скользкие места и подводные камушки javascript.
Читать дальше →
Total votes 93: ↑60 and ↓33+27
Comments158

Как нанимать наилучших сотрудников

Reading time8 min
Views62K
Есть много тонкостей в найме людей, и многие люди поумнее меня часто писали об этом. Поэтому я не буду пытаться охватить всё. Но я передам некоторые уроки, полученные мною, уроки того, как нанять наилучших людей для стартапа. В этой статье я затрону два вопроса. Критерий: что ценить в кандидатах. Процесс: как вести процесс найма, и как исправлять возможные ошибки.

Критерии


Многие скажут – нанимайте умных. Особенно это актуально для нашей индустрии. Вы прочтёте: «нанимайте самых умных, и успех у вас в кармане». Я считаю, что сам по себе интеллект слишком переоценен. Я не видел статистики, которая бы подтверждала зависимость между чистым интеллектом, измеренным любым способом (достижения в образовании, тесты интеллекта, способность решать логические задачки) и успехом компании.
Читать дальше →
Total votes 62: ↑39 and ↓23+16
Comments56

Fail2ban [incremental]: Лучше, быстрее, надежнее

Reading time9 min
Views158K
fail2ban image
Про fail2ban написано уже много, в том числе и на хабре. Эта статья немного о другом — как сделать защиту им еще надежнее и о еще пока неизвестных в широких кругах новых функциях fail2ban. Добавлю сразу — речь пойдет пока про development branch, хотя уже долго проверенный в бою.

Краткое вступление


В большинстве своем fail2ban устанавливается из дистрибутива (как правило это какая-нибудь стабильная старая версия) и настраивается по манам из интернета за несколько минут. Затем годами работает, без вмешательства админа. Нередко даже логи, за которыми вроде как следит fail2ban, не просматриваются.
Так вот, сподвигнуть на написание этого поста меня заставил случай, произошедший с одним сервером моего хорошего знакомого. Классика жанра — пришла абуза, за ней вторая и пошло поехало. Хорошо еще злоумышленник попался ленивый — логи не потер, да и повезло еще крупно, что logrotate был настроен, чтобы хранить логи месяцами.
Как дальше жить
Total votes 72: ↑71 and ↓1+70
Comments60

Почти полное руководство по написанию Ruby гемов

Reading time5 min
Views16K


Доброго времени суток, user.

Не так давно у меня возникла задача сделать прототип для одного проекта. В него входила работа с Facebook Graph API. Поковыряв некоторые гемы, я понял, что они для меня не совсем удобные или же реализуют нужный функционал уж слишком сложно. И тут в моей голове всплыла старая идея о написании своего гема. Загуглив массу запросов по этой теме, не нашел полной информации, тем более на русскоязычных ресурсах. Вот так и возникла идея этой статьи. Руководство названо «почти полным», так как тут освещены не все аспекты, а лишь те, которые минимально необходимы и желательны для начала существования продукта вашего воображения. Прошу под кат!
Читать дальше →
Total votes 27: ↑21 and ↓6+15
Comments28

Видео докладов с конференции DevConf 2014

Reading time2 min
Views23K
Этим летом в Москве проходила конференция профессиональных веб-разработчиков DevConf 2014. Мы в Badoo поддерживали конференцию, выступали с докладами и сделали видео докладов, которые были интересны нашим разработчикам. Так как спикеры были «за», то мы делимся видео с нашими подписчиками.

1. «StatsCollector, или «Мама! Он и меня посчитал!»».
Старынин Валерий, PHP разработчик отдела BI, Badoo.
Доклад о том, как мы собираем статистику для каждого пользователя, обсчитываем каждое открытие страницы (и не только!), обрабатываем 120000 событий в секунду и планируем расширяться.



Читать дальше →
Total votes 60: ↑55 and ↓5+50
Comments16

Деплой Rails-приложения с помощью Docker

Reading time6 min
Views21K

Введение


Эта запись о том, как я деплоил Ruby On Rails-приложение на сервер DigitalOcean, чтобы оно работало в отдельном Docker-контейнере. Для простоты, я собираюсь очень подробно объяснить процесс развертки Rails-приложения внутри Docker-контейнера
В этом посте:
  • Как я установил Docker на сервере
  • Dockerfile для моего Rails-приложения
  • Сборка с гемами из Gemfile
  • Сборка со скомпилированными ассетами
  • Запуск приложения в Docker
  • Переменные окружения Docker для database.yml
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments20

10 шагов планирования проекта за 25 минут

Reading time1 min
Views53K
В прошлом видео мы попросили нашего Ивана Селиховкина (selikhovkin) рассказать, что по шагам нужно делать, когда тебе достается чужой ношеный уже какое-то время идущий проект. В этот раз, как и обещали, о проектах, которые начинаются с нуля. 10 шагов, которые хорошо бы пройти в рамках планирования проекта:



Чем планирование софтверных проектов похоже на написание книги, как гуры экспертного управления планировали бы написание продолжения “Войны и мира”, и что такое метод оценки трех П — обо всем этом в новом видео.
Читать дальше →
Total votes 39: ↑33 and ↓6+27
Comments6

Fail2ban и nginx: блокируем нежелательный трафик к определенному URL

Reading time2 min
Views56K
Доброго времени суток!

Несколько дней назад на одном из своих сайтов заметил подозрительную активность, вызванную перебором паролей. Произошло это как раз тогда, когда в сеть попали файлы с несколькими миллионами почтовых ящиков и паролей к ним. После бана в iptables нескольких адресов злоумышленники начали подбирать пароли с бОльшего количества адресов и вручную банить их уже стало неудобно. Как была решена эта проблема расскажу под катом.

Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments17

Пара полезных команд, которые могут пригодиться при DDoS и не только

Reading time3 min
Views82K
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →
Total votes 105: ↑101 and ↓4+97
Comments21

Странный глюк Git, чуть не стоивший 10 часов работы

Reading time2 min
Views57K
Я провел весь вчерашний день, напряженно работая, чтобы закрыть долгую и порядком надоевшую задачу. Было достаточно поздно, когда я закомитил изменения и отправил на пуш. Гит привычно ругнулся что не может, потому что есть свежие правки. Окей, pull, push. Теперь вроде нормально, можно идти спать.

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

На следующий день я еще раз сделал деплой на тестовый сервер, но он упорно показывал старую версию. Решил свериться с логом Гита… мой коммит… ЕГО ПРОСТО НЕ БЫЛО! Его не было нигде, ни в локальной копии, ни в удаленной. Его не было даже в исходниках на диске. Файлы, оставленные открытыми в редакторе, были пусты. Единственный фактом, связывающим меня в тот момент с реальностью, был скомпилированный js-файл проекта, оставшийся после сборки исходников. Он работал именно так, как я оставил его вчера.
Читать дальше →
Total votes 80: ↑61 and ↓19+42
Comments94

Повышение конверсии: 10 способов уменьшить показатель отказов вашего сайта

Reading time7 min
Views33K
Добро пожаловать в блог компании Witget.com.

Продолжаем публиковать статьи о различных способах повысить конверсию сайта. Эта метрика часто напрямую зависит от показателя отказов. Если посетители вашего сайта, кликая на ссылку в рекламном объявлении, соцсетях или где-либо еще, переходят на сайт, но сразу же жмут на «закрыть» — у вас ясно что-то идет не так. Статья Pam Neely, написанная от первого лица, поможет разобраться, в чем же дело, и из нее вы сможете узнать несколько полезных советов, как понизить количество отказов — уходов с сайта без совершения не то что целевого действия — вообще какого-либо действия! Почему посетители уходят с вашего сайта почти сразу? И как же удержать их?
Читать о причинах отказов и способах их устранения
Total votes 38: ↑23 and ↓15+8
Comments6

Аджайл для всех: как заставить бухгалтера быть гибким

Reading time9 min
Views59K
Прозрачность, контроль, ощущение прогресса, лёгкая и неформальная передача задач — это верные спутники гибких методологий. Мы много лет работали в софтверных компаниях и привыкли к тем преимуществам, которые дарит аджайл. Когда мы начали делать Кнопку, большая часть которой — это оффлайновая работа бухгалтеров, юристов и бизнес-ассистентов, первый вопрос, которым мы задались: «Будет ли аджайл работать в бухгалтерской компании?» Сейчас мы с уверенностью ответим утвердительно, но прежде нам пришлось приложить немало усилий. Про это сегодня и расскажем.


Зачем бухкомпании быть гибкой?
Total votes 57: ↑52 and ↓5+47
Comments37

Инструменты. Как юридически оформить разрыв партнерских отношений

Reading time6 min
Views11K
Наши постоянные партнеры, юридическая фирма «Ветров и партнеры» продолжает знакомить вас с наиболее актуальными вопросами юридического аспекта iT-предпринимательства и оформления прав на интеллектуальную собственность. Новый материал от юристов из «Ветров и партнеры» посвящен вариантам правового оформления партнерских отношений, которые в случае необходимости помогут на законных основаниях вывести партнера из бизнеса.



Иногда желание привлечь партнера в бизнес очень быстро пропадает, когда начинаешь моделировать различные позитивные и негативные варианты взаимоотношений. В подобной ситуации, наверное, начинаешь обращать внимание на публикации в средствах массовой информации о том, как кто-то кого-то «кинул», на неудачный опыт своих знакомых или друзей, на попадающуюся судебную практику по этому вопросу. Но ведь маловероятно, что эмоции помогут в принятии разумного, взвешенного решения. Оно должно быть основано на всестороннем анализе имеющейся информации.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments2

Оптимизация конверсии: беспощадная критика 10 лендингов

Reading time7 min
Views33K
Landing page — безусловно важный для каждого предпринимателя инструмент продвижения продукта. Но взгляд владельца лендинга часто «замыливается», и он не замечает элементарных ошибок и недочетов своего детища, в такие моменты и необходима конструктивная критика. Поэтому мы решили поделиться материалом Amanda Durepos, где десяток лендингов подвергаются беспощадному разбору независимыми экспертами.

Нет сомнений, что действенная критика лендингов – целевых продающих страниц – это жесткие замечания, не щадящие самолюбие создателей лендинга. Но немного «боли» во благо — ради эффективности продающей страницы — со стороны экспертов по оптимизации может дать больше, чем долгие часы A/B-тестирования и маркетинговых исследований.
Читать дальше →
Total votes 23: ↑10 and ↓13-3
Comments11

Хороший, плохой и злой… кэш

Reading time3 min
Views17K


Довольно интересное видео (на английском, к сожалению), в котором девушка, на примере соцсетей, рассказывает о плюсах и минусах кэширования в web-приложениях.

Наиболее содержательными являются первые две трети ролика, которые можно суммировать следующим образом:

1) данных в соцсетях нынче много, обновляются они часто, а пользователю их нужно предоставлять быстро
2) поэтому без кэширования не обойтись
3) далее показывается, как кэширование (концептуально) работает в Twitter, Facebook и Reddit
4) но есть проблемка…
5) кэширование в каждом соцсетевом проекте отписывается вручную
6) в результате, имеем много кода, который делает практически одно и то же в каждом проекте. А много кода — это много багов и людского труда
7) и что же с этим делать?

Читать дальше →
Total votes 39: ↑25 and ↓14+11
Comments25

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity