Страницы

22 декабря 2012 г.

Липкий запуск сервисов в Android-e.


В Android API есть такой абстрактный класс как Service. Он является наследником ContextWrapper-а, который в свою очередь является наследником Context-a. При некоторых допущениях можно относиться к сервисам как к "активити без UI" (хотя это не совсем правильно в деталях). Использовать сервис рекомендуется для задач не требующих прямого вмешательства пользователя.
В документации особо акцентируется внимание на том, что Service не является ни процессом, ни ниткой. Если сервис должен делать какую-то "тяжелую" работу, то нужно самому выносить ее в отдельный thread, чтобы не получить ANR (Application Not Responding).
Если делать свой thread лениво, то можно использовать готовый класс для асинхронной работы IntentService.
Про него нужно знать следующее:

4 декабря 2012 г.

Настраиваем Github в Intellij IDEA

На сегодняшний день существует пререлиз Intellij IDEA 12. В числе многих украшательств и фишечек JetBrains расширил поддержку популярного вершн контрола Git/Github. Мне очень захотелось попробовать поработать с Git, но помня нашу неудачную с Сашей попытку настроить Github проект из Intellij IDEA, я предварительно вооружился документацией на русском языке после чего начал настраивать Git репозиторий. Здесь я расскажу как у меня это получилось и на какие грабли наступил.

25 ноября 2012 г.

Перегрузка и переопределение: памятка

Override - переопределение - когда подкласс подсовывает свою реализацию метода вместо реализации в суперклассе. При вызове метода выбирается наиболее "специфическая" реализация, то есть реализация в подклассе, если она есть, приоритетнее реализации в суперклассе. В Java выбор выполняемого метода при переопределении происходит динамически (в рантайме) и не зависит от того, каким типом объявлена ссылка на объект:
public class TestOverriding {
    
    private static class Parent {
        String getName() { return "Parent"; }
    }

    private static class Child extends Parent {
        @Override
        String getName() { return "Child"; }
    }

    public static void main(String[] args) {
        Parent child = new Child();
        // Prints "Child"
        System.out.println(child.getName()); 
    }
}

Overload - перегрузка - объявление методов (или конструкторов) с одинаковыми именами, но разными с сигнатурами. Пример - все конструкторы любого класса, если их больше одного. В Java выбор выполняемого метода при перегрузке происходит статически (во время компиляции) и не зависит от типа объекта в рантайме:
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

public class TestOverloading {

    static void classifyCollection(Collection c) {
        System.out.println("Collection");
    }

    static void classifyCollection(Set s) {
        System.out.println("Set");
    }

    public static void main(String[] args) {
        Collection c = new HashSet

31 октября 2012 г.

Анонимные (anonimous) классы и слушатели событий (listeners)

Столкнулся с довольно глупой на мой взгляд ситуацией. Нужно из заинжекченного класса сказать внешнему что что-то произошло и пора забирать данные, в моем случае координаты GPS. Я решил задачу тем что передаю классу который инжекчу ссылку на класс в который инжекчу) Но это не совсем грамотно как я понял и все же рекомендуют написать своего слушателя. Вроде и JAVA CORE а я не в теме >< Кому не понятна суть слов Dependency_Injection тык на ссылку.
Итак начнем по порядку....

9 октября 2012 г.

Горячие клавиши Eclipse

Приветствую друзья. Все же я думал что пишу тут только для себя, но вдруг за последнюю неделю пришло несколько писем с вопросами куда я пропал? Забил ли я на блог? Нет. Просто устроился на работу и приходится в ускоренном темпе разбираться с Android OS. Да да, в скором будущем ожидайте статей по Android. Ну а пока что мне приходится отказаться от IDEA и работать в FREE SOFTWARE - Eclipse.
Как понятно из заголовка ниже hotkey которые я сам до сих пор не выучил > <


18 сентября 2012 г.

Как я начинал (часть 2)

Привет, друзья.
Вы все еще хотите заниматься java программированием? У Вас еще не отпало желание писать что-то больше чем переворачивание матриц и чат-серверное приложение на java core? Тогда эта тема для Вас.
В продолжении старой темы хотелось бы вновь поблагодарить Юрия за столь не малый вклад в мое обучение ;) и запись новых паблик лекций по основным j2ee технологиям. Не буду ничего выдумывать и заниматься рерайтом, далее текст автора роликов.

14 сентября 2012 г.

vCard Splitter by Leodestroy v 1.0

Итак представляю Ваше вниманию мое первое десктопное приложение - vCard Splitter.
vCard Splitter позволяет разбить общий файл визитки на структуру один файл = одна визитка.
Не смотря на простоту GUI приложение использует много поточность и валидацию считываемых данных, что исключает ошибки в ходе работы приложения или залипание UI.
Благодаря разработке на Java vCard Splitter является кросс платформенным десктопным приложением и будет работать как под системами Windows так и *nix.
Ну и конечно же все бесплатно в мир ;) eNjOy!

1 сентября 2012 г.

Java 7 - обзор нововведений


Наткнулся на хабре на более менее подробную статью новшеств в java.Пускаем слюни.

В недавнем релизе Java появилось немало вещей, на которые стоит обратить внимание. Конечно же, все мы были огорчены переносом Project Lambda и некоторых прочих вкусняшек в JDK8, но тем не менее, и этот релиз привнёс что-то полезное в арсенал java-разработчика. Под катом можно найти более детальный обзор новшеств. По наиболее интересным из них, скорее всего, будут написаны дополнительные статьи с примерами использования.

30 августа 2012 г.

Тренды программистских вакансий на indeed.com

Пару дней назад прочитал интересную статью на dzone.com с занятными графиками, которые показывали количество вакансий для программистов.

В статье были опубликованы данные с сайтов: indeed.com и simplyhired.com
Оба сайта имеют русскоязычный интерфейс, поэтому надеюсь, что приведенные графики отображали не только данные по США (как часто бывает), а мировые тренды.
Хотя может быть это и не так. К сожалению, не нашел способа получить картинки локализованные под Россию (или Москву).
Меня в первую очередь конечно интересовала java, а также близкие или "конкурирующие" языки программирования.
Поэтому в отличие от оригинальной статье на dzone я оставил в графике от indeed.com только такие языки как:java, C++, C#, objective c (убрал Perl и Visual Basic).
Получилась такая картинка:

29 августа 2012 г.

Портфолио


Для начала хотел отойти от темы. Не уследил за просроченным  доменом  из-за завала по работе. Вчера продлил и в ближайшее время ожидайте новые статьи.

Теперь о главном. Удалил старое портфолио с работами по вебу так как считаю его не актуальным в новой Java сфере. Пока временный адрес портфолио будет тут - http://j2ee.myvnc.com/ld/. работы добавляю по мере выполнения с небольшим зазором в будущее. Там же можно их сачать. 
Еще иногда веду ветку на WXDev.ru по Java
P.S. Сервер стоит дома, поэтому если сайт будет не доступен - значит мой провайдер шалит.

16 августа 2012 г.

Паттерн Strategy (Стратегия), Policy

Продолжая тему паттернов хотелось бы рассказать о Стратегии. Этот паттерн проектирования известен также под названием Policy. Суть его состоит в том, чтобы создать несколько моделей поведения (стратегий) для одного объекта и вынести их в отдельные классы. Вот ряд преимуществ данного паттерна:

  • позволяет выбирать модель поведения объекта динамически;
  • упрощает процесс добавления новых стратегий;
  • является альтернативой наследованию;
  • избавляет от множества условий (if, case);
  • делает еще много всего.

29 мая 2012 г.

Аннотации в Java (java annotation types)

Итак как и обещал ранне в посте про поездку на проф курс в Киев рассказываю что за звери Аннотации (annotation type) которые появились в Java начиная с версии 1.5.

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



24 мая 2012 г.

Паттерн Singleton (Одиночка)

Сегодня начнем тематику паттернов проектирования. Паттерны проектирования - это описание некоторых проблем, возникающих во время объектно-ориентированного проектирования, а также способов их решения (как практических, так и теоретических). Говоря иначе - это примеры правильных подходов к решению классических задач проектирования.
Хотелось бы начать с самого распространенного паттерна - Singleton (Одиночка).

6 мая 2012 г.

IT-Centre проф курс. Part one

Приветствую друзья.
Вот собственно я и в Киеве на втором дне занятий компании IT-Centre, но об этом ниже. Билеты из-за своей лени брал в день отправления, свободных не было пришлось ехать через Днепропетровск. Благо подумал увижусь с сослуживцами, но увы все работают поэтому просто погулял под дождем по Днепропетровску и уехал в Киев.

21 апреля 2012 г.

Виды сертификации Java


Сертификат принадлежит  этому блогу ^^
http://0xc0dec.org/2010/12/11/java-certification/

Сертификация - это один из способов документального подтверждения вашего опыта в той или иной области.

Для Java существует несколько основных направлений сертификации:
От компании SUN - на знание самого языка и технологий
От компаний Oracle, IBM, RedHat - на знание конкретного стека технологий, разрабатываемых этими компаниями (например SOA Fundamentals от IBM или JBoss jBPM от RedHat)
От сторонних компаний - на знание конкретных продуктов или технологий .

И полный список этих сертификаций очень большой, но нужны-ли нам эти все сертификаты, а если нужны - с чего начать?

19 апреля 2012 г.

Java программирование, как я начинал (часть 1)

Примерно 8 месяцев назад мой друг Александр рассказал про существовании Java и посоветовал книгу "Java 2. Том 1. Основы - Хорстманн, Корнелл". прочитав ее до 4 главы я мало что понял сразу, но упертость дело не сложное и спустя 3-4 месяца в основах уже более менее можно было разобраться хоть и с трудом давалось. Но этого для простейшего тестового задания как оказалось было мало. Обычно для устройства на работу требуют знания технологий Spring и Hibernate не говоря уже про понимание, применение ООП и других технологий. Практически вся документация оказалась на английском с которым я дружу на уровне 11 классов, вот и пришлось искать выход. Нашел я ее конечно же в "IT-centre" о котором я писал в предыдущем посте.

18 апреля 2012 г.

С чистого листа на blogspot и немного про IT-Centre

Вот и настал тот самый момент когда я решился отказаться от хостинг услуг FintMax и податься в свободное плаванье под крыло google и blogspot. Макс конечно же замечательный хостер, рекомендую, работал с ним около 6 лет и всегда получал не просто ответ саппорта а личную поддержку в устранении неполадок собственных скриптов!!!
Но в итоге держать сайты стало не резонно из-за смены квалификации в сторону Java программирования и  недостатка времени домен leodestroy.ru в ближайшие несколько дней переведу на blogspot, а остальное в архив и в кладовку.
Не уверен что буду писать часто и много, но основной профиль теперь будет связан не про все на свете а как уже многие могли догадаться с уклоном к Java программированию.