Tuesday, April 22, 2014

Android code: Периодическое выполнение задач

Решил я сделать очередные говно классные часы под Android. Их все делают - это как визитка для старта по типу "Hello World!".

Но мы не ищем легких путей и не будем использовать стандартные виджеты типа:
AnalogClock analogClock = (AnalogClock) findViewById(R.id.analogClock);
DigitalClock digitalClock = (DigitalClock) findViewById(R.id.digitalClock);

Чтобы усложнить задачу придумал:
- часы должны быть виджетом;
- они должны отображать не рисунок, а текст времени;
- изменение цвета, прозрачности;
- изменение языка в зависимости от места положения на карте;

Все бы хорошо, но при старте виджет показывает текущее время и стоит, дальше дело не пошло. Обновления текущего времени нет. Включить это все в Thread и +Handler? И я так понимаю, что батарея и ресурсы будут работать на этот виджет. Возник вопрос о периодичном выяснении текущего времени и обновлении виджета. По-началу использовал ScheduledExecutorService - таже фигня, после первого же прерывания процесса. Ошибся...

Несколько ссылок на StackOverflow и вуаля, нашел такую фишку как AlarmManager.

Создал вот такой метод onUpdate:

Пока не добавил в Blogger возможность делать вставки с source code, оставляю картинкой.
И да, не забываем потом за собой убирать. Нужно создать некий метод onDelete() и вставить туда как пример:
 alarmManager.cancel(pendingIntent);
 pendingIntent.cancel();

Еще ньюанс:
- если Вы хотите запускать код в милисекундном диапазоне, то нужно использовать BrodcastReceiver:

public class Notifier extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    // ...
    }
}

- если в поминутном, то IntentService Вам в руки

Вобщем, продолжаю изучать...

Wednesday, January 22, 2014

Недавние события и пару размышлений на тему, постараюсь не политическую...

Захожу на dou.ua и ОМГ. Домен типа отдали, NS были направлены на douua.org и вот такое сообщение от Макса: 
Конечно это не защищает от контента и высказываний на сайте, но по крайней мере ход действий понятен и логичен - перевести бизнес за пределы страны.
На этом все о политике :) 

Мое видение, если бы у меня был контентный бизнес без оффлайн. Расшифрую: бизнес который работает только на просторах интернет и принимает онлайн платежи, например: заказы на рекламу, возможно еще онлайн сервис, консультационные онлайн услуги, юридические онлайн услуги и т.п. , придумать сервисов можно много конечно.
Что можно сделать, чтобы хоть както обезопасить, то что Ваше:
- компания для принятия платежей на территории Austria, Ireland, USA, Germany, etc. Нужно подумать что Вам удобнее, ну и где бизнесу комфортней - на эту тему много статей и анализа по налогам и по среде обитания;
- перевести домен к регистратору, например: http://www.networksolutions.com/ (или купить новый) 
- хостинг сайта как пример: aws.amazon.com, cloud.google.com 
- офис GoogleApps (почта, документы, совместная работа) 
- если нужна CRM, ERP: SalesForce, NetSuite и тп opensource типа SugarCRM;
Да, оплата будет только онлайн (кредитная карточка, PayPal сервис и тп), для некоторых клиентов - это не приемлемо, но по-крайней мере "удобно" для бизнеса.
Нужно постоянно думать о диверсификации.

Tuesday, January 21, 2014

Метрики, качество и все о нем, о коде и за его пределами...

Прочитал недавно статью Марины Мельник "Метрики кода, или Как определить внутреннее качество продукта". И мне это стало до боли знакомо. Оно и раньше было знакомо, когда приходилось работать девелопером, но что именно сейчас? Попробую описать и сравнить с тем как происходит работа сейчас.