• Желание выбирать и управлять у нас с рождения

    • Перевод
    Этот перевод 31 статьи из цикла «100 вещей, которые вы должны знать о человеках». В ней мы поговорим о невином человеческом желании управлять и иметь возможность выбора.

    Я только начала читать новую книгу Шины Ингар «Искусство выбора». И стала поклонником её работы. Она автор известного «вареньевого исследования» (я напишу о нём ниже — переводчик).

    Парадокс выбора
    В своей книге «Парадокс выбора. Почему больше значит меньше» Барри Шварц рассказал о том, как сильно мы хотим иметь множество вариантов. Парадокс состоит в том, что когда у нас слишком много выбора, то мы, как правило, не выбираем вообще. В своей книге «Нейро веб-дизайн: Что заставляет их кликать» я посвятила целую главу нашей потребности иметь выбор и, как результат, неспособности выбирать.

    Врождённое желание управлять
    Желание управлять окружающей средой живёт внутри нас, мы с ним родились. Это имеет смысл, т.к. контролируя окружение, мы скорее всего повышаем свои шансы на выживание. Прочитав рассуждения Шины о выборе, я задумалась об управлении и связи между возможностями выбирать и управлять. Желание контролировать связано с желанием иметь выбор.
    Читать дальше →
  • Даже иллюзия прогресса повышает мотивацию

    • Перевод
    Статья из цикла «100 вещей, которые вы должны знать о человеках».

    кофейная карта

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

    Карта А: на карточке 10 квадратов для штампов, и когда вы её получаете, все они пустые
    Карта Б: на карточке 12 квадратов для штампов, и когда вы получаете карточку, то два уже проштампованы.
    Вопрос. Сколько времени у вас займёт, чтобы заполнить карточку? Произойдёт это быстрее по сценарию А или Б? В конце концов, вам надо купить 10 чашек кофе в обоих случаях, чтобы получить одну бесплатно. Так если разница, какую карточку вы используете?

    По-видимому ответ — да, есть. Вы быстрее заполните карточку Б, чем А. Это называется эффект приближения к цели («goal-gradient» effect).

    Он был изучен Кларком Халлом в 1934 году на крысах. Он обнаружил, что крысы тем быстрее бегут по лабиринту с едой, чем ближе они к концу лабиринта, где находится еда (сыр).

    Эффект приближения к цели говорит, что вы ускоряете свою деятельность по мере приближения к цели. Сценарии, которые выше описал автор, были частью исследования Рена Ривеца, Олега Урминского и Юхуанг Женга. Они решили посмотреть, поведут ли себя люди как крысы :) И ответ — да, поведут.
    Читать дальше →
  • Как расширение индекса в InnoDB таблицах удивительным образом снижает производительность

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

    Рассмотрим пример.
    Читать дальше →
  • Постепенное вовлечение пользователей вместо формы регистрации

    • Перевод
    Недавно (весной этого года) Твитер перепроектировал процесс регистрации, чтобы увеличить количество новых пользователей. И хотя в новой версии в регистрацию добавилась ещё одна страница, то есть дополнительный шаг, конверсия всё равно выросла на 29%. Почему это произошло? Благодаря постепенному вовлечению.

    Постепенное вовлечение — это процесс перемещения пользователя по приложению или сайту, фактически “пробуя” его и видя все его преимущества. В обычном процессе регистрации пользователю показывают форму, которую необходимо заполнить. Здесь наоборот, регистрация или отложена на потом, или происходит в фоне, а первый опыт пользователя сфокусирован на том, чтобы показать, как использовать сервис и зачем он вообще нужен.

    Правильное постепенное вовлечение рассказывает пользователю об основной сущности сервиса путём простых взаимодействий. Если вы при этом осчастливите человека — даже лучше. Уилл Райт, создатель Sims & Spore, верит, что игры должны позволять человеку выигрывать в течении первых 5 секунд. Это хорошая философия, чтобы добиться постепенного вовлечения. На самом деле вы можете позволить людям за одно-два простых взаимодействия сделать то, в чём смысл вашего сервиса. Это наилучший вариант.

    Термин «gradual engagement» я перевожу как «постепенное вовлечение». По-моему он точно отражает суть, но вы можете указать в комментариях свой вариант.
    Читать дальше →
  • Как фотографии людей удваивают конверсию

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

    Это было подтверждено двумя независимыми экспериментами


    Я проанализировал результаты двух A/B тестирований пользователей сайта Visual Website Optimizer и пришёл к выводу, что верный способ привлечь внимание посетителей — это разместить людские фотографии на сайте.

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

    Давайте рассмотрим оба эксперимента.
    Читать дальше →
  • Агрессивные «колючие» кнопки против закруглённых

    • Перевод
    На конференции UX Australia 2009 Кит Лэнг рассказал о том, как геометрическая форма элементов интерфейса по-разному воспринимается человеком. Например, округлые прямоугольники выглядят естественно дружественно, а некоторые другие фигуры — жёстко и неприятно. Однако и им можно найти применение. Кит привёл очень интересный пример, как можно извлечь выгоду от использования агрессивных «колючих» кнопок.

    На этой картинке обе кнопки одинаково округлы и милы.

    image

    А тут кнопка удаления «зубастая».

    image

    Во втором случае дважды подумаешь перед тем как нажать на кнопку, готовую откусить тебе палец.
  • Большие таблицы и ENUM

      Продолжение статьи Большие таблицы и уникальные ключи.

      У меня снова возникла необходимость изменить структуру достаточно большой таблицы в MySQL. Изменения касались поля типа ENUM.

      Итак
      Дано. Таблица MyISAM
      В таблице есть поле типа ENUM.
      Размер — 145 миллионов записей.
      Объём на диске — 12 ГБ.
      Также в таблице есть уникальный ключ на строковое поле VARCHAR(150).
      Необходимо изменить список констант поля ENUM.

      То есть имеем поле `my_field` ENUM('A', 'B') NOT NULL. Надо поменять на ENUM('C', 'D', 'E', 'F') NOT NULL.

      Делать ALTER TABLE CHANGE COLUMN смысла нет, потому что на таких объёмах данных и с уникальным индексом это займёт вечность. Причина? MySQL при изменении структуры таблицы в большинстве случаев создаёт временную таблицу желаемой структуры, куда построчно копирует все данные. А создание уникального ключа построчно в таких объёмах занимает непомерно много времени.

      Однако в памяти у меня засело, что я где-то подобное уже встречал. Нужный мне рецепт я в итоге нашёл в книге «High Performance MySQL», где кстати отыскал и хак из моей предыдущей статьи.

      Рецепт прост — подмена файла, где хранится определение структуры таблицы .FRM.
      Читать дальше →
    • Большие таблицы и уникальные ключи

        На днях у меня появилась задача — добавить новое поле в таблицу. Казалось бы, ALTER TABLE… Не тут-то было.

        Я запустил этот запрос в вечернее время, однако утром он всё ещё выполнялся (16 часов оказалось мало :)

        Я сразу предположил, что проблема скорее всего в построении уникального индекса и огромных размерах исходной таблицы. Как известно при ALTER TABLE сервер создаёт временный файл, в который копирует необходимые данные. SHOW PROCESSLIST это подтвердил.

        Приведу более подробную постановку задачи.
        Читать дальше →
      • Datetime или timestamp

          На днях я столкнулся с тем, что многие разработчики не знают в чём отличие типов данных DATETIME и TIMESTAMP в MySQLе, а так же как хранить дату и время, если необходимо учитывать разные часовые пояса для разных пользователей веб-приложения. Поэтому хочу дать ниже разъяснения с пояснениями.

          DATETIME
          Хранит время в виде целого числа вида YYYYMMDDHHMMSS, используя для этого 8 байтов. Это время не зависит от временной зоны. Оно всегда отображается при выборке точно так же, как было сохранено, независимо от того какой часовой пояс установлен в MySQL. Даю пример:
          Читать дальше →
        • Опера отдыхает 1 января?

            Столкнулся с интересным поведением кукисов в опере в день 1 января 1997/2001/2005… годов.
            Мои действия:
            1. перевожу системную дату на 1 января 1997 года,
            2. устанавливаю в скрипте куки со временем жизни 100 секунд,
            3. вывожу document.cookie.
            Результат — куки не установлен.

            Повторяю те же действия, но устанавливаю время жизни куки в 1 сутки (86400 секунда). Результат — всё работает.

            В другие даты всё работает ожидаемо, т.е. куки устанавливается.

            Проверочный скрипт. Откройте в опере. Должен установиться куки с именем test_100sec. Теперь переведите дату и обновите страницу (можете для чистоты эксперимента почистить куки). Ваши комментарии?

            Обновл. Сначала дал неверную ссылку. Исправил.
          • Capistrano: удалённое развёртывание приложений

              В этой статье описывается пример использования инструмента Capistrano для удалённого развёртывания приложений. В качестве примера берётся приложение на PHP.

              Capistrano — это инструмент, который может выполнять задачи на удалённой машине через ssh-доступ. Он разработан на языке руби и широко применяется для публикации приложений Ruby on Rails, Однако его легко можно использовать вместе с другими языками программирования, например, PHP.

              Для более детального ознакомления и практического использования следует прочитать дополнительную документацию и попрактиковаться. Я же хочу просто продемонстрировать возможности капистрано.
              Читать дальше →
            • Dimension picker

                Этот виджет позволяет выбирать размерность таблицы так, как мы привыкли делать в текстовых редакторах. Идею взял с sites.google.com (он же на картинке).

                image
                Читать дальше →
              • Хватит изобретать велосипед

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

                  Кто-то так и не находит подходящий для его нужд фреймворк, пишет свой и клепает на нём сайты-визитки. А кто-то утверждает, что Смарти больно много весит, пытается его переписать, понимает, что не осилит, и заявляет, что это вообще лишнее.
                  Читать дальше →
                • Я «знаю» ООП

                    Приходит оно на собеседование. Задаю общие вопросы. Заходит речь о его текущей работе и обязанностях. И слышу:
                    — Я когда пришёл, там вообще был ужас. Ну я стал понемногу вводить ООП, на классы всё переписывать…
                    — А зачем? В чём приемущество ООП перед процедурным подходом?
                    — В ООП я могу группировать функции в один класс…
                    — Зачем? Пиши их в один файл. Чем классы лучше?
                    — … (у собеседника ступор)

                    Это были мысли вслух
                  • Задача про шнуры

                      Простая задачка. Иногда предлагаю на собеседовании :)

                      Есть два бикфордовых шнура. Разных. Известно одно: каждый из них полностью сгорает ровно за час. Как при помощи этих шнуров (и зажигалки :) отмерить 45 минут?

                      Дополн. Как горят шнуры не известно: может равномерно, а может и нет.

                      Оговорю ещё раз. То что шнур целиком сгорает за час, не значит что половина шнура сгорит за 30 минут.
                    • Что мне приглянулось в Ruby on Rails

                        Начну с того, что я программист на РНР с неплохим опытом. Было написано много интересного, были крупные проекты, сервисы в сферы телекоммуникаций, покрывающие почти всю Европу. Разработка и поддержка проектов велась не месяц-два, а год-полтора.

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

                        Взгляд пал на Руби он Рейлс. Была прочитана знаменитая Agile Web Development with Rails: Second Edition и написан небольшой проект. Здесь я попытаюсь перечислить те возможности этого прекрасного фреймворка, которые приглянулись мне. Если вы не планируйте писать на рейлс, то думаю вам всё-таки будет интересно познакомиться с некоторыми вкусностями, которые можно без труда портировать на другие языки (многое уже сделано для РНР, в том числе и мной).
                        Читать дальше →
                      • Фриланс — добро или зло?

                          Хочу задать вопрос хабрасообществу: полезен ли фриланс для разработчика?
                          Цель — узнать стороннее мнение о том, что перспективнее: стабильная работа в офисе или фриланс.
                          Оцениваемые параметры:
                          1. деньги,
                          2. интерес,
                          3. профессиональный рост,
                          4. удобство.

                          Моя точка зрения
                          1. Деньги можно делать и на постоянной работе в офисе с 9 до 18, и фриланся дома. Был бы программист хороший :)

                          2. Складывается мнение, что фрилансерам врядли полноценно дадут поучаствовать в большом и интересном проекте. Правда и не каждый имеет это, работая в обычном офисе.

                          3. Если человек идиот, то он может работать хоть дома, хоть в офисе, хоть на луне. В большинстве случаев останется идиотом. Но по-моему, если у человека котелок варит, то как минимум на начальном этапе работа в коллективе в офисе приведёт к гораздо большему росту его как профессионала. Слишком много я собеседовал фрилансеров с опытом «домашней» работы по 5 лет и совсем без опыта работы в компаниях, способных логически мыслить, но с большими пробелами в знаниях и недостатками навыков.

                          4. Ненавижу переться на работу к 9 утра :) Во фрилансе легче управлять своим временем, а следовательно, можно больше времени уделять семье, хобби и т.д. и т.п. Тот, кто быстро программирует, вообще может обойтись 3-4 часам работы в день и получать те же деньги.

                          А теперь хотелось бы узнать, что думают другие разработчики. Дизайнеры тоже могут подключаться :)

                          Дополн. Давайте уж и проголосуем.

                          Дополн. 2 Как показывает голосовалка, 2/3 разработчиков имеют постоянную работу, при этом половина из них фрилансит в свободное время. Оставшиеся разделились на 2 почти равные категории: тех, кто фрилансит, и тех кто, работает на НЛО :)