Как стать автором
Обновить
15
0
Алексей Суринов @mussgrinn

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

Отправить сообщение

Почему 98% текстов на ваших сайтах не работают. Вообще. И как это починить

Время на прочтение7 мин
Количество просмотров284K

Вот так люди видят вашу страницу

Привет!
Проблема вот в чём. Если зайти на практически любой сайт интернет-магазина или компании с услугами, вы встретите контент. Точнее — отвратительные тексты, которые писали, кажется, маркетологи, воспитанные сеошниками.

Разумеется, можно не делать, как они. Если работать по-умному, то вы поможете и читателям по жизни, и себе в продажах.

По моим примерным подсчётам (усреднение с ряда позиций), конверсии для нас выглядят так:
  • Только название и картинка — около 1,5%.
  • С описанием от производителя — чуть более 2%.
  • С описанием человека, который держал это в руках и знает правила — около 6%.

Ниже — рассказ про то, как мы доводили время на сайте от 3 минут сначала до 6:40, а потом до 20:48. Да-да, двадцати минут сорока восьми секунд для среднего посетителя. Честного среднего, с учётом отказов и по полной выборке.
Читать дальше →
Всего голосов 294: ↑282 и ↓12+270
Комментарии121

TDD for Responsive Design. Или как автоматизировать тестирование отображения сайта для разных устройств с помощью Galen Framework

Время на прочтение11 мин
Количество просмотров19K
Трудно одним заголовком сформулировать, чем же является Galen Framework. Все началось с того, что у меня возникла потребность тестировать сайты в различных браузерах и проверять: не поехала ли разметка, например, в том же Internet Explore или Chrome. Затем возникла мода на Responsive Web-Design, и пришлось вручную менять ширину браузера и проверять, как отображаются сайты. И, хотя все это время были WebDriver и Selenium Grid под рукой, так и не получалось нормально тестировать верстку сайта в Java коде. Одна из идей была: делать скриншоты в разных браузерах в Selenium Grid и затем собирать их все в один большой отчет, по которому один из тестировщиков обязан пробежаться глазами и, в случае обнаружения несоответствий, рапортовать о дефекте. К сожалению, вся эта затея долго не продержалась. Тестировщикам стало лень листать огромный отчет и сравнивать скриншоты, и они все равно пропускали мелкие дефекты. А затем пошли требования внедрения во всех сайтах Responsive Design. И вот тут появился Galen Framework. Решение оказалось простым: проверять размер и расположение элементов относительно друг друга. Для этого понадобился специальный язык Galen Specs, который было бы легко читать и понимать.



Если коротко, Galen Framework — это специальный язык и инструмент для тестирования отображения сайта в браузере. Он позволяет тестировать адаптивный дизайн, а также проводить кросс-браузерное тестирование сайта.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии8

А что Вы думаете о StarlingJS?

Время на прочтение2 мин
Количество просмотров12K
Наш друг Алекс Винкс распетрушил демку StarlingJS, поправил баги, допилил, портировал свою флеш-демку и выложил исходники:


Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии13

Управленческие инструменты: 5 вопросов для прояснения целей или для чего нужен BMW X5?

Время на прочтение7 мин
Количество просмотров113K
Давным давно в одной из компаний, лидере мирового производства микропроцессоров, меня однажды поразила менеджерская напасть. Решил, знаете ли, заняться развитием сотрудников. (Периодически, такое с менеджерами случается, да.)

Подхожу к своему сотруднику — назовем его Серега:

— Серега, — говорю, — ты в какую сторону вообще хочешь развиваться: в техническую или в менеджерскую?

— Сань, ну голова варит уже не очень, возраст… (Серега старше меня на 3 года) Поэтому, наверное, в менеджерскую.


Ну, в менеджерскую — так в менеджерскую. Я ж на тот момент был менеджер опытный, уже 4 года опыта! Энергии много, желания помочь людям — через край!

Короче, Серега стал моим заместителем, начал посещать всякие тренинги. Взял в управление какой-то мощный студенческий проект, там ребята что-то делали.

А кончилось все тем, что пришлось нам с Серегой расставаться. Как так получилось, где Серега в итоге реализовал себя, и какой правильный управленческий инструмент я мог бы тогда применить — об этом сегодня и поговорим.

Заодно поговорим, что делать, если вы обнаружили себя и/или своих сотрудников в квадрате C в статье:

Читать дальше →
Всего голосов 133: ↑115 и ↓18+97
Комментарии56

Продающий дизайн интернет-магазина. Часть 1. Аналитика

Время на прочтение13 мин
Количество просмотров147K
Сегодня я хочу поговорить про дизайн интернет-магазина и подойти к этому вопросу основательно. В статье не будут затронуты другие аспекты связанные с интернет-магазинами, только дизайн. Эта первая часть статьи, она больше про аналитику и общие моменты, которые прорабатываются еще до интерфейсов, а вторая статья будет больше про сами интерфейсы.

Это первая статья. Всего их будет 3.

image

Читать дальше →
Всего голосов 65: ↑49 и ↓16+33
Комментарии57

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю № 83 (10 — 16 ноября 2013)

Время на прочтение6 мин
Количество просмотров34K

Читать дальше →
Всего голосов 57: ↑52 и ↓5+47
Комментарии9

Управленческие инструменты: Почему заказчики требуют дурацкие отчеты?

Время на прочтение7 мин
Количество просмотров70K
На одной из конференций произошел комичный случай. Подходит слушательница:

— Александр, есть такой вопрос: Как нам повысить уровень доверия в отношениях с заказчиком?

— А что сейчас не так с уровнем доверия?

— Ну, у нас есть команда, есть менеджер. И мы хотим, чтобы заказчик доверял команде и общался только с менеджером. А он лезет напрямую к инженерам…

— А чем это плохо? Человек сразу получает ответы на свои вопросы, быстрые коммуникации и все такое.

— Понимаете… Мы ему джуниор инженеров продаем как синьор инженеров… И нам не хотелось бы, чтобы он обнаружил этот факт.


Напомню изначальную постановку вопроса: “Как нам повысить уровень доверия в отношениях с заказчиком?”

Вот о заказчиках сегодня и поговорим. А точнее, о простом инструменте, который:
  • Поможет осознать, где находятся ваши отношения с заказчиком
  • Покажет, почему формы отчетов иногда бывают такие идиотские
  • Возможно, поможет понять причины “неадекватного” поведения заказчика


Читать дальше →
Всего голосов 62: ↑57 и ↓5+52
Комментарии38

Миссия невыполнима. Мертворожденные проекты

Время на прочтение4 мин
Количество просмотров112K
«Когда человек не знает, к какой пристани он держит путь, для него ни один ветер не будет попутным». (С) Сенека, Луций Анней



Предисловие

Как-то один из топов уважаемой компании, которая занимается продуктовой разработкой ПО, пригласил меня, как эксперта, чтобы я оценил качество нового продукта. Я внимательно просмотрел и прослушал презентацию. Видно было, что коллеги очень старались и работали по 10-12 часов, чтобы продукт выглядел на высшем уровне. После чего меня спросили: «хороший получился продукт или нет?» Я поблагодарил за представленную презентацию, но попросил ответить на свой последний вопрос: «А какие процессы, и с какой целью вы собираетесь автоматизировать с помощью этого инструмента?» Вопрос почему-то вызвал замешательство у докладчиков. После небольшой паузы, топ, который, видимо, был идеологом нового продукта, ответил: «Был бы инструмент хороший, а какие процессы с его помощь автоматизировать мы найдем!» Мне пришлось сказать, что оценить продукт я не смогу. Не зная бизнес-целей, невозможно понять степень их достижения.

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

Для иллюстрации используем проект «Экспедиция за сокровищами Флинта»
Девять пунктов концепции проекта
Всего голосов 101: ↑96 и ↓5+91
Комментарии51

Насколько большие массивы (и значения) в PHP? (Подсказка: ОЧЕНЬ БОЛЬШИЕ)

Время на прочтение7 мин
Количество просмотров30K
В этой статье я хочу исследовать расход памяти у массивов (и значений в целом) в PHP используя следующий скрипт в качестве примера, который создаёт 100 000 уникальных целочисленных элементов массива и в конце измеряет количество использованной памяти.
Читать дальше →
Всего голосов 114: ↑109 и ↓5+104
Комментарии58

Несколько интересностей и полезностей для веб-разработчика (выпуск 8)

Время на прочтение3 мин
Количество просмотров44K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Riot.js — The 1kb client-side MVP framework



Немного статистической правды:
Самый маленький среди похожих популярных фреймворков

Самый емкий код (в примере для Todo MVC приложения)

Самый быстрый из существующих

«Материнский» проект Moot тоже очень крутой и демонстрирует то, каким должен быть форум.

Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии27

Пара лайфхаков нашего интернет-магазина

Время на прочтение5 мин
Количество просмотров99K
Когда у вас есть интернет-магазин, российская сеть и производство, тяжело сохранять серьёзность. Для нас бизнес – это игра. Поэтому мы не боимся пробовать разные весёлые штуки. Про часть из них я сейчас расскажу. Ниже несколько историй, среди которых есть две полезных, которые могут немного увеличить ваши продажи.

Бесплатный криптоанализатор


Самое крутое – это когда магазин создаёт позитив, о котором хочется рассказать друзьям. Когда только-только вышла игра «Бригада», мы просто купили паяльников (по 64 рубля за штуку) и первой полусотне покупателей выдали по одному.

Происходило это так: аниматор в зале играет с покупателем в нашу пародийную игру про лихие девяностные, потом покупатель идёт с коробкой к кассе. После оплаты кассир достаёт паяльник и кладёт его в пакет к игре со словами: «Вам пригодится».


Первый покупатель с паяльником

Какой профит? Да никакого, просто классная история. Точнее, она задумывалась таковой, пока про эту тему не написало какое-то крупное сообщество про партизанскую рекламу в интернете – в этот день мы продали ещё несколько десятков коробок.
Читать дальше →
Всего голосов 274: ↑260 и ↓14+246
Комментарии126

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю № 81 (27 октября — 2 ноября 2013)

Время на прочтение6 мин
Количество просмотров45K

Читать дальше →
Всего голосов 100: ↑81 и ↓19+62
Комментарии14

Автоматическое исключение из рассылки нерабочих email адресов

Время на прочтение2 мин
Количество просмотров14K
image
Представьте, что у Вас есть веб-приложение и одной из его функций является массовая рассылка новостей Вашим пользователям.
По некоторым причинам часть email адресов пользователей нерабочие или неверно заполненные. Хорошо бы таких пользователей автоматически отписать от рассылки?
Читать дальше →
Всего голосов 33: ↑28 и ↓5+23
Комментарии11

iSCSI хранилище для небогатых

Время на прочтение8 мин
Количество просмотров109K
Доброго времени суток, уважаемое сообщество!

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

Если у вас есть подобная задача или вас просто заинтересовал заголовок, то добро пожаловать под хабракат.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии30

Слово в защиту пиксельных значений media queries

Время на прочтение8 мин
Количество просмотров36K
Я покажу тебе, глубока ли кроличья нора.Читая публикации о верстке для вэба, вы не раз натыкались на рекомендацию не использовать пикселы в media queries. Например, вот цитата из совсем недавней статьи на Хабре:

Вместо использования фиксированных размеров, лучше использовать относительные единицы для определения breakpoints. На хабре уже многократно была раскрыта тема использования относительных размеров в верстке. Вот неполный список статей: здесь, здесь, здесь. Приведу лишь самый главный довод — это позволит браузерам изменять дизайн в зависимости от уровня установленного размера зума пользователем, в результате чего пользователь увидит более приятный, более доступный для просмотра сайт.

Что, если я скажу вам, что использование пикселов в media queries не только не причиняет никакого вреда верстке, но и имеет преимущества над использованием em'ов?

Читать дальше →
Всего голосов 118: ↑114 и ↓4+110
Комментарии64

Pimple? Не… Не слышал

Время на прочтение4 мин
Количество просмотров20K
Удивительно, что на Хабре всё ещё нет статей об этом гениальном DI контейнере для PHP.
Почему гениальном? Потому, что весь код этого творения укладывается в 80 строк – маленький объект с большими возможностями.
Контейнер представляет из себя один класс, и его подключение в проект выглядит следующим образом:

require_once '/path/to/Pimple.php';

Создание контейнера так же просто:

$container = new Pimple();

Как и многие другие DI контейнеры, Pimple поддерживает два вида данных: сервисы и параметры.
Читать дальше →
Всего голосов 24: ↑17 и ↓7+10
Комментарии35

Расширение возможностей массива в PHP

Время на прочтение5 мин
Количество просмотров17K
Уровень статьи: начальный/средний

Массив в PHP — один из самых мощных типов данных. Он может работать как линейный массив (список), как ассоциативный (словарь) и как смешанный. В качестве ключа массива может использоваться либо целое число, либо строка, причем строка, если она представляет собой целое число (например, «5»), будет конвертирована в целое. Остальные типы, за исключением массивов и объектов, так же конвертируются в целое или строку — подробнее можно прочитать в документации.

Несмотря на мощные возможности базового типа array иногда хочется их расширить. Например, подобный кусок кода можно встретить, наверное, в большинстве php-проектов:

$foo = isset($array['foo']) ? $array['foo'] : null;
$bar = isset($array['bar']) ? $array['bar'] : null;


Один из способов сделать этот код короче и элегантней — использовать короткую запись тернарного оператора:

$foo = $array['foo'] ? : null;
$bar = $array['bar'] ? : null;


Но такой код выкинет PHP Notice в случе, когда ключ не определен, а я стараюсь писать максимально чистый код — на сервере разработки выставлено error_reporting = E_ALL. И именно в подобных случаях на помощь приходит ArrayObject — класс, к объектам которого можно обращаться используя синтаксис массивов и позволяющий изменять поведение используя механизм наследования.

Рассмотрим несколько примеров изменения поведения.

Читать дальше →
Всего голосов 34: ↑25 и ↓9+16
Комментарии30

Советы практикующего андрагога: как мы учимся

Время на прочтение7 мин
Количество просмотров44K
Люди, как известно, делятся на два типа: тех, кто читают инструкцию перед тем, как включать электроприборы, и тех, кто сначала включает, а в случае каких-то косяков начинает читать, что же он сделал не так.

Я абсолютно точно принадлежу ко второй группе. Поэтому именно так я начал создавать свой первый тренинг. На тот момент я уже 3 года работал в Intel, читал несколько внутри-корпоративных тренингов, как вдруг ощутил непреодолимое желание сделать свой тренинг.

Ведь всем известно, что корпоративные тренинги учат как жить в корпорации. Тебе вставляют в ухо шланг, через который начинают закачивать vision, mission & corporate values.

Поэтому, решил я, я сделаю свой тренинг, где расскажу всю правду-матку. И сделал. А что там делать? Берешь свой опыт, рисуешь красивые слайды, придумываешь упражнения — и вперед!

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

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

В прошлой статье [1] мы говорили о матрице осознанности и компетентности и том, как взрослые люди обучаются навыкам. Давайте теперь поговорим о модели обучения, которая дает ответ на вопрос, а как учить взрослых людей. О цикле Колба.

Поняв эту модель, вы сможете:
  • Четко понимать, почему одни тренинги и семинары оказываются полезными, а другие заходят плохо
  • Правильно обучать других людей — как в группах, так и индивидуально
  • С умным видом рассуждать на тему обучения взрослых людей, уверенно используя термин “цикл Колба”


Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии18

Удаленная работа — это не «фриланс»

Время на прочтение5 мин
Количество просмотров137K


Сегодня на глаза попался старый вопрос "Почему работодатель предпочитает нанимать веб-разработчика в офис?": habrahabr.ru/qa/22292. Вопрос был задан еще в 2012 году, но, на мой взгляд, ситуация с тех пор не сильно изменилась.

Коллеги, тут есть серьезное недопонимание, которое давно пора устранить.

Многие, как мне кажется, представляют себе фрилансера примерно так:
  • Приходит на какую-то отдельную небольшую задачу, выполняет ее и уходит.
  • Работает над несколькими мелкими проектами одновременно. Либо имеет постоянную работу, а фрилансером просто подрабатывает в оставшееся время.
  • Его не беспокоит проект в целом. Только то, за что он отвечает.
  • Огораживает себя техническими заданиями. И из-за каждой новой плюшки может возникнуть конфликт.
  • Работает когда хочет. С ним сложно связаться.

А на самом деле
Всего голосов 282: ↑265 и ↓17+248
Комментарии475

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность