Pull to refresh
33
0
Тимофей Яценко @thekip

User

Send message

Как не стать спамером со своей уютной рассылочкой

Reading time1 min
Views67K
image
Пользователь когда-то подписался на рассылку, но уже забыл когда, и главное зачем. Теперь ежедневно к нему падает спам, а по собственному опыту он знает, для того чтобы отписаться нужно зайти по ссылке свой профиль, найти и снять там какую-то галку а главное, помнить свой логин и пароль на давно забытом им сайте.
Его действия? «В спам!»

А по другую сторону баррикад находитесь Вы с вашей уютненькой подписочкой, полезной информацией и очень удобной системой отписки, о которой пользователь так никогда и не узнает.

И вот, с десяток таких «отписок» и гугл будет удобно отсортировывать ваши рассылки в папочку Спам (584), у ВСЕХ ваших подписчиков.

Однако многие из нас уже успели заметить: некоторые письма в Gmail при попытке отметить их «В спам!» САМИ предлагают отписаться от рассылки в один клик.

Эта фича была введена google более года назад, но лишь единицы рассылок научились ей пользоваться. И не удивительно. В рекомендациях по осуществлению массовых рассылок, лишь косвенно упоминается о том, что Вам нужно сделать.
А сделать нужно не многое.
Читать дальше →
Total votes 238: ↑230 and ↓8+222
Comments60

Почтовая кухня #1: DNS

Reading time3 min
Views66K
Думаю, многим будет интересно наконец-то узнать, как работает почта. В нескольких статьях я попытаюсь максимально простым языком расписать все основные вопросы, связанные с работой электронной почты вообще и нужными настройками — в частности.

Часть 1 - DNS.
Total votes 97: ↑93 and ↓4+89
Comments76

Job-реклама

Reading time1 min
Views8.9K
Для IT-компаний стало доброй традицией жаловаться на то, что хороших разработчиков невозможно найти и уж точно сложно заманить. В связи с этим хочу спросить у вас, как вы ищете работу и на что обращаете внимание при выборе компании?
Total votes 40: ↑23 and ↓17+6
Comments22

Разработка web API

Reading time9 min
Views287K

Интро


Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.

В тексте попадаются комментарии переводчика, они выделены курсивом.

Собираем API-интерфейсы, которые понравятся другим разработчикам


Понятные URL для вызовов API

Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.

Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
/dogs для работы со списком собак
/dogs/12345 для работы с отдельной собакой
Дальше
Total votes 235: ↑224 and ↓11+213
Comments128

Yii, непрерывная интеграция — как не сломать все

Reading time7 min
Views32K
Мы часто экспериментируем с архитектурой, кодом, производительностью. Постоянно добавляем новый функционал. Мы постепенно обвязываем Yii своей “архитектурной” прослойкой — шардинг, работа с временно недоступными данными, разнообразные кеши и многое другое. Да, плод нашей работы, когда он будет заврешен, пойдет в Open Source.

Задача применяемой у нас Непрерывной Интеграции (Continuous Integration, CI) — не тестирование. Задача CI — обезопасится от разрушительных изменений в следствие рефакторинга, добавления нового функционала, изменений архитектуры. Также мы защищаемся от “плохого кода”, часто повторяющихся багов, “кривых” merge.

Для своего CI мы используем Jenkins под Debian. Время на развертку CI я затратил 12 часов — до полностью рабочего состояния. На поддержку CI я не трачу ни минуты в день — я не пишу тесты на каждую мелочь, не практикую TDD. Тем не менее, CI работает и спасает нас от глупых ошибок.

“Давайте будем внимательней”/”Давайте не делать ошибок” — взывал я к разработчикам, но это помогало лишь временно и то не на все 100%. Людям свойственно ошибаться, забывать, совершать оплошности. Нет, я не изобрел “серебряную пулю” для web-проектов и даже маленьку пульку для Yii — я придумал как стабилизировать свое приложение. Ваше приложение отличается от моего и мои методы у Вас могут не работать, да и не должны — я же делал их не для Вашего приложения, если мои методы работаю у Вас — примите это как чудо или как везение. Зато идея такого CI будет работать везде. Всего лишь идея.

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

Обзор благотворительных проектов в рунете

Reading time5 min
Views38K
imageКак обычно проходит ваш день? Будильник, дорога в офис или к рабочему месту фрилансера. Рутинные обязанности и новые проекты, задачи, заказы. Перерывы на покурить, пообедать, попить, поболтать в скайпе и вконтакте. Вечер, дорога домой, магазин, ужин или кино, пивная или телевизор, жена, дети, «как прошёл день?». Компьютер или планшет, те же вконтакте, одноклассники, жежешечка. Свежая серия очередного сериала, спать. Так живёт большинство, и я в том числе. В нашей жизни есть место лишь работе, семье и развлечениям. Мы ищем развлечений, они помогают нам не думать, расслабиться, отвлечься. Цивилизация эгоизма. «Ведь ты этого достоин». «Побалуй себя». «И пусть весь мир подождёт». Не знаю, как у вас, а у меня всё чаще возникает ощущение бесполезности, бессмысленности проживаемой жизни. Нет, конечно, смысл жизни находит каждый: забота о родителях, жёны-мужья, дети, самореализация, стать начальником, эмигрировать… Но человек суть животное социальное. Именно благодаря взаимосвязям, которые мы строим и поддерживаем с другими людьми, человеческое сообщество способно на всё то, на что оно способно. Как всевозможные мерзости, так и величайшие свершения и достижения. И умение объединять усилия ради благого дела, ради помощи, является важнейшим нашим преимуществом. Ведь никто из нас не застрахован от несчастий (тьфу-тьфу-тьфу!). Можно полагаться лишь на себя и на свою семью, но ежедневно множество людей сталкиваются с такими испытаниями и лишениями, с которыми не могут справиться самостоятельно. К чему я всё это веду? К тому, что есть немало людей среди нас, которые находят время, силы, средства на то, чтобы не только получить что-то от этой жизни, но и дать другим. Я про благотворительность. У каждого при этом слове возникают свои ассоциации, но сегодня я хочу рассказать не о благотворительности как таковой, а о благотворительных проектах в Рунете.
Читать дальше →
Total votes 56: ↑46 and ↓10+36
Comments19

Общая психология: usability

Reading time11 min
Views20K

То есть как — психология?


Некоторые наши специализированные компании, предоставляющие услуги на рынке юзабилити, уже много лет укомплектованы дипломированными психологами (чаще всего, выпускниками кафедр инженерной или общей психологии). Действительно, уже более полувека русскоязычная психология исследует процесс взаимодействия человека и техники (первая наша книга по теме) и, в частности, интерфейсы между оператором и техническим устройством. Конечно, терминология эта носит сугубо эргономический характер, однако это не затрудняет перенос знаний в IT-среду (например, Дмитрий Сатин, основатель UsabilityLab, является выпускником самой эргономической кафедры факультета психологии МГУ).
Психологическое знание в России популяризируется слабо, хотя само по себе может быть очень полезным для разработки программных продуктов. Я попытаюсь коротко изложить некоторые базовые принципы проектирования — как их видно изнутри классических психологических (преимущественно, когнитивных) работ. Я уверен, что буфер, которым является юзабилити, IT-индустрии не нужен: психологические знания можно научиться применять напрямую.
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments14

Резюме программистов. Часть 2 (хорошие)

Reading time3 min
Views283K
Я сполна получил п***й за первый пост. Самое время писать продолжение! Итак, чего же мне надо от резюме разработчика?

Все ниже в порядке приоритета.

Код


Я хочу видеть код, которым вы гордитесь. Я хочу знать, как вы называете переменные, как декомпозируете систему, как проверяете входные условия и насколько любите все усложнять. Очень желательно, если будет описание проблемы, иначе понимание кода и решения затруднено.
Читать дальше →
Total votes 201: ↑135 and ↓66+69
Comments341

Скринкаст по Node.JS

Reading time2 min
Views11K
Всем привет!

Если вы — разработчик, то вам наверняка известно: большинство полезной документации и скринкастов делается на английском.

Конечно, даже на английском много всего устаревшего, приходится порыться, но на русском — всё гораздо хуже. Многого просто нет.

Хотелось бы поменять эту ситуацию, с вашей помощью, хотя бы в плане Node.JS. Если проект будет успешен, то, возможно, и не только.



Читать дальше →
Total votes 81: ↑70 and ↓11+59
Comments23

Как на самом деле работает mod_rewrite. Пособие для продолжающих

Reading time17 min
Views277K
image
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.

В статье изложен механизм работы mod_rewrite. Понимание принципов его работы позволяет четко осознавать действие каждой директивы и ясно представлять себе, что происходит в тот или иной момент внутри mod_rewrite при обработке директив.

Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

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

Почему так происходит?
Читать дальше →
Total votes 208: ↑203 and ↓5+198
Comments25

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity