4 мар. 2012 г.

Принцип 80 / 20. Надо смотреть на 20.

Наткнулся на неожиданную трактовку принципа Парето ("80% эффекта получается в результате 20% действий").  В бизнесе это правило часто применяется в виде: «80% продаж приходится на 20% клиентов». В веб-дизайне и юзабилити это правило работает не менее эффективно. К примеру, значительно улучшить отдачу сайта можно определив 20% пользователей, заказчиков, действий, продуктов или процессов которые дают 80% прибыли и обратив на них особое внимание при разработке.

О том как выделить 20% пользователей - персонажи в UX я уже писал здесь.

4 февр. 2012 г.

Email marketing

Получил недавно вот такое письмо:

Какое-то оно слезливое и американское
Заголовок: "Это значит пока? CNET скучает по тебе"
Сообщение: "Нам не хватает тебя - пожалуйста, вернись. Нам нравилось когда ты клацал по нашим ссылкам, мы хотим тебя вернуть..."

Вот такой вот неоднозначный email-маркетинг. Интересно какова будет реакция у наших людей: "За мной следят???" или "Как мило)". 
Может стоить подумать над такой рассылкой в магазине для девочек, где продаются няшечки которые они всегда хотят купить, но каждый раз себе отказывают. Но для суровых программистов деловых людей - это слишком.

И ссылка под кнопкой "Visit CNET":
http://ct.cnet-ssa.cnet.com/clicks?t=1118867205-ed31ab9d9b9eafb14942b72081444744-bf&brand=CNET-SSA&s=5

Ясно, что статистику собирают, поддомен cnet-ssa - это, вероятно, email marketing tool. Вот только решение out of the box или custom solution в гугле не нашел.

List of useful front-end libraries, frameworks and developer tools


List of useful front-end libraries, frameworks and developer tools

Custom elements:
Frameworks:
Tools:

1 февр. 2012 г.

Google Docs as file hosting for blog (Blogger)

You can use your Google Docs as file hosting for your purposes - blog, file exchange etc.

1. Press upload. 
2. Press "Share" on uploaded file


3. Press "Change..." on "Sharing settings" dialog:

4. ... to "anyone with the link" or "public on the web":
5. Copy the link:
6. Profit.

Windrose chart tool for comparative analysis on java

I'm calling windrose chart following graphic:


This chart is good for data visualization where rows are parametes and colums are comperative objects.

In my case I'm comparing sets of websites by parameters such as "facility of registration", "good emphasis" etc with marks from 1 to 10.

For this purposes I've wrote java tool that draws windrose chart from config file where params and sites are setup.

<?xml version="1.0" encoding="UTF-8"?>
<windrose>
 <params maxValue="10">
  <group name="tech" color="0x40529C">
   <param color="0x40529C">Navigation</param>
   <param color="0x40529C">Registration</param>
   <param color="0x40529C">Shopping cart</param>
   <param color="0x40529C">Help in choosing</param>
  </group>
  <group name="entertainment" color="0xE01B6A">
   <param>Easily scannable pages</param>
   <param>Button “Buy” and Сontacts</param>
   <param>Good emphasis</param>
   <param>Social bookmarks</param>
  </group>
 </params>
 <items>
  <item name="beauty.com" color="0xFA1414">
   <value>7</value>
   <value>4</value>
   <value>6</value>
   <value>6</value>
   <value>7</value>
   <value>3</value>
   <value>7</value>
   <value>3</value>
  </item>
  <item name="spalook.com" color="0xCE20D4">
   <value>2</value>
   <value>3</value>
   <value>7</value>
   <value>5</value>
   <value>10</value>
   <value>8</value>
   <value>10</value>
   <value>3</value>
  </item>
  <item name="cosmeticsfairy.co.uk" color="0x20ADD4">
   <value>9</value>
   <value>8</value>
   <value>9</value>
   <value>5</value>
   <value>10</value>
   <value>7</value>
   <value>10</value>
   <value>1</value>
  </item>
  <item name="sallybeauty.com" color="0x72C47D">
   <value>8</value>
   <value>7</value>
   <value>9</value>
   <value>4</value>
   <value>5</value>
   <value>5</value>
   <value>6</value>
   <value>3</value>
  </item>
  <item name="ulta.com" color="0xFF8438">
   <value>10</value>
   <value>4</value>
   <value>8</value>
   <value>9</value>
   <value>10</value>
   <value>10</value>
   <value>10</value>
   <value>10</value>
  </item>
 </items>
</windrose>

Params can be grouped and highlighted with a color <group color="0x40529C" name="tech"> each object <item color="0xFF8438" name="ulta.com"> can be configured with color and name.

To run example execute jar, where test.xml - config file:

$java -jar windrose.jar test.xml

download windrose.zip

If you are looking for source - feel free to contact me.

29 янв. 2012 г.

Тупая накрутка посещений

Я тут втихаря начал вести блог неизвестно зачем. Не хочу напрягать друзей и знакомых, по этому не ставлю ссылки в соц сетях и т.д. По крайней мере пока не наберется штук 30-40 постов ну и пока сам не определюсь надо ли мне это). Когда-то прочитал - "нет ничего более тупого чем заброшенные корпоративные блоги)".

Так вот, посматриваю на статистику - цифры небольшие поэтому запутаться трудно) А в источниках трафика куча какой-то хрени, причем постоянно одно и той же под разными сокращенными ссылками через ow.ly и т.д. даже через redirect в LinkeIn (http://www.linkedin.com/redirect?url=www.ow.ly/XXX).  

Ну и LinkedIn - это же святое, вдруг хантят) Перехожу - опять на знакомый говносайт.

В общем, ребята написали скрипт который заходит на малопопулярные или вновь созданные в blogger блоги с нужным referer, а владельцы этих блогов переходят из-за интереса...

И сколько так можно накрутить? 1k 5k 10k?

Вызов диспетчера задач в Windows7 не используя мышку и ctrl+alt+del

Я привык за долгое время пользования Windows закрывать подвисшие или ненужные задачи с помощью "Task Manager" который я вызывал через ctrl+alt+del. Но в Windows7 когда нажимаешь привычную комбинацию теперь выбрасывает на отдельный экран с которого можно сменить учетную запись и т.д... В общем, так зло с привыкшими пользователями поступать нельзя. Bad UX.

В очередной раз получив этот экран мне пришлось тянуться за мышкой и это меня окончательно разозлило, тем самым, сподвигло поискать как можно вызвать "Task Manager" руками.

Task Manager можно запустить набрав 'task manager' в "Поиске программ и файлов" ("Search programs and files") в панеле "Пуск" ("Start") и запустив "View running processes with Task Manager". Очень круто, что это можно сделать без участия мышки.

Р.S. Да, особые маньяки могут забайндить hotkey для открытия диспетчера задач.

Контроль отправленный смс для Android

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

Мысли
В Android можно написать программу которой делегируется отправка смс. Программа может дублировать отправленные смс на web-сервер.
Отличием от сервиса рассылок в том, что клиент получает смс не с "короткого номера", а от работника компании которого знает лично (фитнес-тренера, личного консультанта).

Идея
Сервис учета отправленных смс с мобильного устройства (Android, возможно jailbraked Iphone, какие-то другие платформы где можно переопределить назначенную программу для отправки текстовых сообщений). Возможна реализация определенной логики - отправка на определенные номера ВСЕГДА проходит через web-сервис.

Кому это надо
  • Фитнесс клубам, где тренера тесно работают с клиентами;
  • Возможно интернет-магазинам и прочим e-commerce структурам; 
Недостатки 
  • Необходимость корпоративного телефона (Android);
  • Работник компании может отправить смс в обход системы;
  • Небольшой мизерный спрос на услуг такого рода.

23 янв. 2012 г.

Replace newline with <br/> in DB

To replace \n with html <br/> in DB (e.g. add WYSIWYG such as tinyMCE to web site that is already in production)

update tbl_name set tbl_field = REPLACE(tbl_field, '\n\r', '<br/>');
update tbl_name set tbl_field = REPLACE(tbl_field, '\n', '<br/>');
update tbl_name set tbl_field = REPLACE(tbl_field, '\r', '<br/>');

11 янв. 2012 г.

Signing Android apps

After reading android developer official guide Signing Your Applications I was a little bit confused what exactly I have to do for signing app.
Basically process of signing apps includes five steps:
  1. Create your keystore;
  2. Prepare app for signing (removing logs, increment version etc);
  3. Export app as unsigned apk;
  4. Sign apk;
  5. Run zipalign tool.
There are three ways:
  1. Do it manually from command line;
  2. Use ANT script;
  3. Do it with the help of wizard in Eclipse.
Eclipse wizard will do 3-5 steps automatically.
So the fastest way to sign apk is to:
  1. Create your keystore;
  2. Prepare app for signing (removing logs, increment version etc);
  3. Export signed apk with Eclipse.
Create keystore
$ keytool -genkey -v -keystore APPNAME.key -alias APPNAME -keyalg RSA -keysize 2048 -validity 10000
Check if JAVA_HOME is set or find keytool executable file in bin folder of Java.


Show keystore info
$ keytool -list -v -keystore afit.key

Export signed apk with Eclipse
Right click on project > Android Tools > Export Signed Application Package... > and follow wizards instructions.

8 янв. 2012 г.

Пример важности этапа написания сценариев при проектировании UX

Небольшой пример о том как влияет UX на интерфейс и программирование (в мелочах).

Задача: Разработать прототип интернет магазина обуви (Угги).

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

Процесс:
 -- Где-то в середине проектирование UX (опущенно все, что не входит в данный пример). -- 
Персонажи:
  • девушка, которая следит за модой; 
  • девушка, которая по долгу службы носит спокойные цвета одежды; 
  • молодая мама; 
  • молодой человек, который покупает Угги девушке. 
В целом – аудитория продвинутая, присутствует в соц. сетях, легко и с удовольствием обменивается ссылками с друзьями. Но боится оплачивать через интернет. Для оплаты часто обращается к парню\мужу.

Что это значит:
На основании такого описания: "Пользователь боится оплачивать через интернет. Для оплаты часто обращается к парню\мужу" - следует довольно не очевидные требования к функциональности: при копировании ссылки на продукт, в ней должны учитываться выбранный цвет, размер и другие выбранные параметры. Это нужно на случай, если кто-то будет покупать товар онлайн вместо девушки-персонажа (например, не было денег на карточке, и пользователь попросила своего мужа купить сапожки), чтобы ему не нужно было ничего заново выбирать, а достаточно бы было просто нажать кнопку «Купить».