Search
Write a publication
Pull to refresh
46
0
Артур Терменжи @ara89

User

Send message

Apache Maven — основы

Reading time6 min
Views557K
После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.
Поехали!

Глубокое погружение в определение местоположения

Reading time8 min
Views24K
Этот пост является переводом топика из блога android-developers. Далее повествование ведется от Рето Майера, автора книги Professional Android 2 Application Development. Он пишет о том, как можно улучшить приложения, использующие местоположение, в смысле кэширования результатов, скорости работы и так далее.

Без разницы, ищете ли вы место, где бы поесть, или ближайшее место велосипедов Boris Bike, всегда есть задержка при получении данных местоположения от GPS и заполнении абстрактного списка результатов в вакууме. Когда вы находитесь в месте, где хотели бы получить контекстную информацию, то часто вы сталкиваетесь с отсутствием подключения к данным.

Вместо того, чтобы грозить кулаком в небо, я написал open-source приложение, которое включает в себя советы и рекомендации по сокращению времени между открытием приложения и просмотром актуальной информации о близлежащих местах, вкупе с разумным обеспечением offline режима работы. И всё это, сохраняя использование аккумулятора на возможном минимуме.
Читать дальше →

Еще немного о производительности Java

Reading time5 min
Views21K
“Есть ложь большая, есть маленькая, а есть статистика производительности Java.”

В последнее время я стал замечать обилие тестов производительности Java с удивительно невероятным разбросом результатов тестирования. Результаты отличаются с точностью до полной противоположности, в зависимости от того кто проводит тесты.

Многим понятно, что такие тесты это часть маркетинга. И те кто его заказывает, заказывают и результат. Но удивительность ситуации в том, что упрекнуть во лжи некого. Нельзя отказать в истинности тех тестов в которых Java на порядок уступает C#, ни тем тестам в которых Java превосходит С++ (не Си). Проблема в том, что такие тесты ориентированны в основном на начинающих разработчиков с целью переманить в свой стан побольше программистов и тем самым увеличить коммерческую привлекательность платформы для бизнеса. И в таких тестах намеренно упускаются сложные для понимания подробности работы динамической JIT компиляции и адаптивной оптимизации HotSpot, в которые начинающие программисты редко вдаются.

Чем это чревато? Банальным когнитивным диссонансом.
Читать дальше →

Groovy за 15 минут – краткий обзор

Reading time8 min
Views407K
Groovy — объектно-ориентированный язык программирования разработанный для платформы Java как альтернатива языку Java с возможностями Python, Ruby и Smalltalk.

Groovy использует Java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим Java кодом и библиотеками. Язык может использоваться в любом Java проекте или как скриптовый язык.

Возможности Groovy (отличающие его от Java):

— Статическая и динамическая типизация
— Встроенный синтаксис для списков, ассоциативных массивов, массивов и регулярных выражений
— Замыкания
— Перегрузка операций

[http://ru.wikipedia.org/wiki/Groovy]

Более того, почти всегда java-код — это валидный groovy-код.
Читать дальше →

И еще раз о тестах. Подход к тестированию кода в реальной жизни

Reading time9 min
Views11K
Думаю, почти каждый сталкивался с таким мнением: писать тесты сложно, все примеры написания тестов даны для простейших случаев, а в реальной жизни они не работают. У меня же за последние годы сложилось впечатление, что писать тесты — это очень просто, даже тривиально*. Автор упомянутого выше комментария далее говорит, что неплохо было бы сделать пример сложного приложения и показать, как его тестировать. Попробую именно этим и заняться.

*)Писать сами тесты — действительно элементарно. Создать инфраструктуру, позволяющую легко писать тесты — чуть сложнее.

Впериот!

Тестирование в Java. TestNG

Reading time16 min
Views240K

Наверняка все знакомы с таким понятием как test-driven development(TDD). Наряду с ним также существует такое понятие, как data-driven testing(DDT, не в обиду Шевчуку) — техника написания тестов, при которой данные для тестов хранятся отдельно от самих тестов. Они могут храниться в базе данных, файле, генерироваться во время исполнения теста. Это очень удобно, так как один и тот же функционал тестируется на различных наборах данных, при этом добавление, удаление или изменение этих данных максимально упрощено.

В предыдущей статье я рассмотрел возможности JUnit-а. Там примерами такого рода подхода могут служить запускалки Parameterized и Theories, в обоих случаях один тест-класс может содержать только один такой параметризированный тест(в случае Parameterized несколько, но все они будут использовать одни и те же данные).

В этой статье я заострю внимание на тестовом фреймворке TestNG. Многие уже слышали это название, и перейдя на него, вряд ли желают вернуться к JUnit-у(хотя это только предположение).
Читать дальше →

Custom View, скроллинг и жесты в Android на примере простого вьювера картинок

Reading time10 min
Views51K
В статье описываются детали реализации простого вьювера картинок и показываются некоторые тонкости имплементации скроллинга и обработки жестов.
Читать дальше →

Рецепт универсального слушателя (listener)

Reading time6 min
Views52K
Я часто и много работаю со Swing и, как следствие — очень часто приходится создавать
слушателей самых различных видов и форм. Однако некоторые виды встречаются чаще других,
и ниже я приведу свой рецепт автоматизации их создания.
Возможно, предложенный мной подход не оригинален, но в литературе я его не встречал.
UPD: спасибо pyatigil за ссылку на статью, в которой описывается аналогичный подход, но немного в другом стиле.
Читать дальше →

Это должен знать каждый

Reading time3 min
Views83K
Спрос на Android-разработчиков весьма велик сейчас. Я решил подготовить список того, что нужно знать каждому разработчику под эту платформу. Это не только то, что вас могут спросить на собседовании, а весь спектр знаний, который скорее всего пригодится в работе. Бонусом идет пара интерсных вопросов про платформу.
Читать дальше →

Подсчет объектов на бинарном изображении. Часть 2

Reading time6 min
Views9.9K

Аннотация


image Эта статья написана в продолжении первой части статьи про работу с бинарными изображениями, в которой рассказывается как подсчитывать объекты. Однако от одного подсчета толку мало, часто хочется узнать некоторые геометрические параметры распознаваемых объектов. Кажется, что тут считать — узнал количество восьмерок — площадь равна 19, посчитал количество семерок — площадь равна 7 (см. картинку в Аннотации).
Делая так, мы будем вынуждены использовать дополнительный проход по изображению, желательно этого избегать — в пользу повышения эффективности реализации. Как и было запланировано, в этом топике рассказывается о подсчете геометрических характеристик объектов без дополнительного прохода.
А так же: фактор формы и розы Гвидо-Гранди и чем отличается квадрат от прямоугольника, а он от звезды.
Читать дальше →

Пишем игру для Android c помощью AndEngine. Часть 1

Reading time4 min
Views55K
Всем привет.
Сегодня я расскажу вам как с помощью AndEngine написать небольшую игру. Стаья получилась довольно большая и, чтобы не утомлять читателя, пока мы остановимся на первой ее части. Все что нужно от читателя — это знание java, ООП и умение обращаться с Eclipse и Android SDK. Забегая вперед, у нас получится что то похожее на Mirrors Maze либо Laser Logic.
Вторая часть статьи.
Третья часть статьи.
Читать дальше →

Что такое Ogre 3D и как его едят

Reading time4 min
Views28K
Ogre 3D – это кросс-платформенное SDK для создания графических приложений. Она имеет довольно обширные возможности, такие как полная поддержка OpenGL и Direct3D, полная совместимость с платформами Windows, Linux, Mac OS X и iOS, поддержка широкого выбора файловых форматов, продвинутая система частиц, программирования GPU и всех шейдерных языков высокого уровня и многое другое.

Если стало интересно, то прошу под кат.
Читать дальше →

Визуальная демонстрация алгоритмов машинного обучения

Reading time1 min
Views14K


Кандидат наук из Федеральной политехнической школы Лозанны Басилио Норис создал замечательную программу, которая великолепно подходит для демонстрации некоторых задач, которые решают алгоритмы машинного обучения (классификация, кластеризация, регрессия — различными методами). В одной программе собраны библиотеки, алгоритмы и фрагменты кода, которые удалось найти. В отличие от Matlab, здесь GUI работает быстро в интерактивном режиме, поэтому получается очень красиво.

Дистрибутив:
MLDemos 0.3.2 for Windows (минимальные требования: XP SP3)
MLDemos 0.3.2 for Mac (минимальные требования: Snow Leopard)
MLDemos 0.1.3 for Linux 32bit (deb) (билд для: Ubuntu 10.04)

Нужна ли аспирантура?

Reading time5 min
Views93K
Этот вопрос мне задают настолько регулярно, что решил оформить это все в единый поток мыслей, чтобы в следующий раз просто прислать ссылку.

Несмотря на то, что поставленный вопрос достаточно простой, ответ на него далеко не простой. Хотя есть и простой ответ: «it depends». И это действительно так.

Статью построим в виде «описание тезиса» – «контраргументы» — «вывод».

Читать дальше →

JavaFX 2.0 beta — пишем клиентское приложение на Java. На примере меню в Mac-стиле

Reading time8 min
Views26K
imageНа прошлогодней конференции JavaOne в Сан-Франциско компания Oracle анонсировала технологию JavaFX 2.0. А несколько дней назад мир увидел Java FX 2.0 Beta. JavaFX — это естественный шаг в эволюционном развитии клиентской платформы Java. Технология обеспечивает разработчиков кросс-платформенным инструментом для создания функционально насыщенных и привлекательных приложений.
Встроенная в технологию Java, JavaFX предлагает богатый графический и медийный API с поддержкой аппаратных графических ускорителей и большой выбор новых компонент: элементов управления, графиков, мультимедиа и встроенного браузера.
Из очевидных плюсов JavaFX 2.0 — возможность создания приложений без изучения новых технологий, применение привычных средств разработки и, конечно, все традиционные плюсы Java. Для корпораций — использование технологии Java на серверной и клиентской сторонах снизит интеграционные риски.
Из минусов: к сожалению, бета версия вышла только для Windows, но к релизу состав поддерживаемых платформ расширится.

Но лучше один раз увидеть, чем 100 раз услышать.
Давайте попробуем вместе написать панель задач с кнопками в стиле Mac
Читать дальше →

Паттерны Command и Strategy с точки зрения функционального программирования

Reading time9 min
Views14K
В результате изучения функционального программирования в моей голове появились некоторые мысли, которыми я хочу с вами поделиться.
Читать дальше →

Квадрокоптер своими руками: Часть II.1

Reading time5 min
Views94K
ВНИМАНИЕ, статья устарела, но её всё еще можно использовать в ознакомительных целях
В прошлой статье я рассказал про набор деталек для построения своего квадрокоптера, а теперь настала пора поговорить о датчиках и мозгах.
Читать дальше →

Hg Init: Часть 1. Переобучение для пользователей Subversion

Reading time9 min
Views124K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

Читать дальше →

5 причин полюбить Mylyn

Reading time7 min
Views12K
Данный пост на самом деле является инициатором еще одного, который уже выходил ранее. Меня на самом удивило, что о такой интересной вещи, как Mylyn, так мало написано на хабре и мне бы хотелось немного это исправить. Под катом перевод достаточно интересной, на мой взгляд, статьи. Надеюсь на интересное обсуждение.
Читать дальше →

БД Oracle для программиста

Reading time9 min
Views97K
Нужно ли программисту прикладных приложений понимать как работает БД? Том Кайт, признанный специалист Oracle, автор знаменитой колонки asktom, в своей книге «Oracle для профессионалов. Архитектура и основные особенности.» настаивает, что это просто необходимо. Даже если в вашей команде есть грамотный администратор, знание того, как работает СУБД Oracle поможет вам лучше понимать друг друга и эффективней взаимодействовать, не говоря уже о случае, когда такого специалиста у вас нет. В данном топике я упомяну об основных вещах, понимание которых позволит грамотно работать с БД Oracle и использовать некоторые её особенности с большой отдачей для вашего приложения. Если же вы уже прочитали вышеупомянутую книгу Тома Кайта, то можете просто исползовать эту статью в качестве памятки. Одно замечание — книжку я читал давно, и тогда еще последней версией БД Oracle была 9i, курсы по администрированию я тоже проходил по девятке, так что, если в десятке и выше что-то поменялось и добавилось, то не обессудьте. Хотя я пишу о довольно фундаментальных вещах, которые вряд ли сильно поменяись.
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity