29 янв. 2012 г.

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

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



27 дек. 2011 г.

Необычные мелочи в интерфейсах


[Список дополняется]

  • Гениальное оформление заглавий-ссылок. Вместо подробнее и т.д выделяется часть заголовка для перехода. Заметил что мне это нравится после 5 лет ежедневного просмотра сайта
  • Как пользователю легче всего понять что он зашел на интернет магазин? - увидеть товары с ценником и возможностью купить;
  • В списке или плитке каких-либо элеметов можно подсвечивать однотипные элементы при наведении на один из них:

  • При нажатии на кнопку "Сделать что-то" ("Дать совет") которая перегружает страницу и показывает форму можно выводить подсказку "Начните делать что-то". Здесь не будет ошибки - т.к. пользователь хотел сделать именно это;
  • Артикулы в списке отлично смотрятся. Создается впечатление бумажного каталога, к которому пользователи привыкли и доверяют:            

8 окт. 2011 г.

JS: debug object with alertObject

Great function to debug js.
function alertObject(obj,comment) {
  var str = (comment)? comment+"\n":'{';
  for(var el in obj) {
    var value = obj[el];
    if ( typeof value == "function" ) {
      value = "[<function>]";
    }
    str += el + " : "+ value +" , ";
  }
  str +=" }"
  alert(str);
}
P.S. Was great few years ago. Now using console.log is much better. But great for a debuggin' in old browsers.