Pull to refresh
0
0
Алексей Поляков @Arik0n

User

Send message

AndroidDev #1. Создаем файловый менеджер

Reading time10 min
Views71K


Android — перспективная и динамично развивающаяся операционная система. И многие программисты хотят научиться программировать приложения для OS Android, но беглый поиск структурированных материалов в сети Интернет и, в частности, Рунете, приводит их в ступор. Действительно, до сих пор существует проблема поиска обучающих статей (особенно на русском языке) по разработке приложений для этой весьма популярной операционной системы.
Ну, что ж, будем потихоньку улучшать данную ситуацию при помощи Хабра.
Сразу предупрежу, что материалы предназначены для тех, кто не имеет опыта разработки приложений для Android, но очень-очень хочет этот опыт приобрести.

Читать дальше →
Total votes 98: ↑90 and ↓8+82
Comments38

Обзор свежих материалов, октябрь 2010

Reading time5 min
Views836
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрельмай-июньиюльавгуст, сентябрь.


Читать дальше →
Total votes 97: ↑92 and ↓5+87
Comments22

Android Calendar API

Reading time5 min
Views43K

В этой статье речь пойдет об использовании недокументированного API для работы со стандартным календарем Android. Статей на русском по данной теме не нашел, да и на английском лишь несколько постов с устаревшими данными. Кто заинтересовался – под кат.
Читать дальше →
Total votes 66: ↑58 and ↓8+50
Comments50

Обзор свежих материалов, сентябрь 2010

Reading time5 min
Views819
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель, май-июнь, июль, август.



Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments22

Irisar Centena

Reading time2 min
Views2.4K

102


хабравчане, хочу вас «поздравить» с знаменательной датой 10\10\10 10:10. Как принято, на праздники с подарками. Специально для этой даты я подготовил мультицветной toolkit с динамической настройкой палитры цветов.
Использовать его можно в любом вашем (коммерческом и нет) проекте, а приемы irisar и centesimo помогут вам модернизировать его под ваш интерфейс.
Подробнее под катом.



В конец поста добавлено видео демонстрации смены цветов через kuler.adobe.com
Читать дальше →
Total votes 116: ↑99 and ↓17+82
Comments75

Qualcomm хочет расширить вашу реальность

Reading time1 min
Views847
image
Компания Qualcomm собирается популяризировать AR (augmented reality), для чего выпустила собственный SDK для Android, а так же объявила конкурс на $200 тыс. Откуда такая заинтересованность? Все просто – Qualcomm поддерживает разработку AR-приложений для мобильных телефонов, особенно кивая в сторону тех моделей, которые работают на их чипах Snapdragon. Сегодня, собственно, и вышел кит для разработчиков под Андроид. Авторы трех лучших приложений и получат те самые заявленные $200 тыс. (125/50/25). Конкурс будет проходить в январе 2011-го года, а лучшие приложения покажут на следующем Mobile World Congress.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments8

Google AI Challenge две недели спустя

Reading time10 min
Views2.1K
Как многие уже знают, недавно началось Google AI Challenge — соревнование по созданию ботов для игры Planet Wars, проводимое университетом Ватерлоо и поддерживаемое Google. Вчера подошла к концу уже вторая (из девяти) неделя с момента официального старта. Соревнование всё больше начинает напоминать гонку вооружений, и если в начале для попадания в топ 50 было достаточно бота, который в большинстве случаев просто обыгрывал примеры из стартового набора, то теперь прийдётся постараться. О том как это можно сделать, а также о новостях турнира под катом.

Читать дальше →
Total votes 79: ↑77 and ↓2+75
Comments35

Система непересекающихся множеств и её применения

Reading time10 min
Views74K
Добрый день, Хабрахабр. Это еще один пост в рамках моей программы по обогащению базы данных крупнейшего IT-ресурса информацией по алгоритмам и структурам данных. Как показывает практика, этой информации многим не хватает, а необходимость встречается в самых разнообразных сферах программистской жизни.
Я продолжаю преимущественно выбирать те алгоритмы/структуры, которые легко понимаются и для которых не требуется много кода — а вот практическое значение сложно недооценить. В прошлый раз это было декартово дерево. В этот раз — система непересекающихся множеств. Она же известна под названиями disjoint set union (DSU) или Union-Find.

Условие


Поставим перед собой следующую задачу. Пускай мы оперируем элементами N видов (для простоты, здесь и далее — числами от 0 до N-1). Некоторые группы чисел объединены в множества. Также мы можем добавить в структуру новый элемент, он тем самым образует множество размера 1 из самого себя. И наконец, периодически некоторые два множества нам потребуется сливать в одно.

Формализируем задачу: создать быструю структуру, которая поддерживает следующие операции:

MakeSet(X) — внести в структуру новый элемент X, создать для него множество размера 1 из самого себя.
Find(X) — возвратить идентификатор множества, которому принадлежит элемент X. В качестве идентификатора мы будем выбирать один элемент из этого множества — представителя множества. Гарантируется, что для одного и того же множества представитель будет возвращаться один и тот же, иначе невозможно будет работать со структурой: не будет корректной даже проверка принадлежности двух элементов одному множеству if (Find(X) == Find(Y)).
Unite(X, Y) — объединить два множества, в которых лежат элементы X и Y, в одно новое.

На рисунке я продемонстрирую работу такой гипотетической структуры.


Как такое сделать и зачем оно нужно
Total votes 114: ↑109 and ↓5+104
Comments29

Обзор свежих материалов, август 2010

Reading time4 min
Views593
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель, май-июнь, июль.


Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments4

«Оживление» пользовательского интерфейса

Reading time12 min
Views32K
image

Приложение не отвечает?!


Многие из тех, кто программирует WPF-приложения, наверное тысячи раз писали конструкцию вида:
{Binding Items}

Если получение элементов коллекции Items выполняется в основном потоке приложения и занимает некоторое время — мы получаем «мертвый» пользовательский интерфейс. Приложение некоторое время не будет отрисовывать изменения состояния и реагировать на пользовательский ввод.
Читать дальше →
Total votes 104: ↑97 and ↓7+90
Comments10

Обзор свежих материалов, июль 2010

Reading time4 min
Views861
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Предыдущие материалы: апрель, май-июнь.



Читать дальше →
Total votes 81: ↑76 and ↓5+71
Comments10

Сравнение алгоритмов поиска маршрутов в StarCraft и StarCraft 2

Reading time4 min
Views16K
Те кто играли в бета-версию Starcraft 2 наверняка заметили, как изменился алгоритм поиска путей движения юнитов. Многое из сказанного в статье основано на личных оценках. Я не программировал ни BroodWar, ни StarCraft 2 и некоторые выводы будут основаны на моих догадках. Также не верьте на 100% моим словам, постарайтесь сделать собственные заключения. В статье будут как факты, так и домыслы.

Перевод статьи The Mechanics of Starcraft 2 Pathfinding

Читать дальше →
Total votes 195: ↑176 and ↓19+157
Comments110

По-новому

Reading time1 min
Views795
Вы скорее всего не являетесь целостным существом, если мы говорим о мыслительном процессе. У Вас есть логичные вещи в жизни? А креативные? А эмоциональные? Уверен что всё есть. А есть ли что-то креативное и логичное одновременно? Немного, правда? А что-то, где полно эмоций, креативности и конструктивизма? Сложно сказать.

Сейчас.
Читать дальше →
Total votes 104: ↑60 and ↓44+16
Comments37

Знакомимся с DynamicObject

Reading time7 min
Views15K
Каждый раз, когда у вас появляется новая интересная фича в языке, всегда появляются люди которые начинают выжимать из фичи максимум. DynamicObject – это как раз такая фича, которая кажется простой и понятной, но в шаловливых ручках становится более опасной затеей.
Читать дальше →
Total votes 82: ↑64 and ↓18+46
Comments35

Расширение возможностей Unity

Reading time7 min
Views9K
В этом посте я покажу пример того, как можно расширить стандартные возможности IoC-контейнера Unity. Покажу как создается объект в Unity «изнутри». Расскажу про Unity Extensions, Strategies & Policies.

Допустим в нашем приложении есть компонент Persistence, который отвечает за сохранении объектов. Он описывается интерфейсом IPersistence и имеет реализации — FilePersistence, DbPersistence, WsPersistence, InMemoryPersistence.

В классическом варианте мы в начале приложения регистрируем нужную реализацию в Unity и далее, вызывая Resolve для IPersistence, всегда получаем ее.
IUnityContainer uc = new UnityContainer();

uc.RegisterType<IPersistence, FilePersistence>();
IPersistence p = uc.Resolve<IPersistence>();
p.Add(obj);


* This source code was highlighted with Source Code Highlighter.


Но что делать, если необходимая реализация может меняться в процессе работы приложения. Например она задается в конфиг-файле, или при недоступности сети надо автоматически использовать FilePersistence?
Читать дальше →
Total votes 55: ↑33 and ↓22+11
Comments11

GRASP паттерны проектирования

Reading time4 min
Views253K
Почитать описание других паттернов.

GRASP (General Responsibility Assignment Software Patterns) — шаблоны проектирования, используемые для решения общих задач по назначению обязанностей классам и объектам.

Известно девять GRAPS шаблонов, изначально описанных в книге Крейга Лармана «Применение UML и шаблонов проектирования». В отличие от привычных читателю паттернов из Банды Четырех, GRAPS паттерны не имеют выраженной структуры, четкой области применения и конкретной решаемой проблемы, а лишь представляют собой обобщенные подходы/рекомендации/принципы, используемые при проектировании дизайна системы.

Рассмотрим характеристики основных GRASP шаблонов.
Читать дальше →
Total votes 57: ↑45 and ↓12+33
Comments24

IntelliTrace или historical debugger в Visual Studio 2010

Reading time3 min
Views4.8K
Наверное, одним из самых интригующих нововведений в Visual Studio 2010 является IntelliTrace или как его представляли ранее historical debugger. И после релиза новой студии можно сложить свое мнение об этой возможности и ее практическом применении или необходимости – в общем, если быть кратким, нужно определится – зачем оно нам необходимо

Что такое IntelliTrace? Это новая фича, и соответственно новое окно при отладке, которое объединяет в себе обычную трассировку (output окно в Visual Studio), отладчик и стек вызовов. Т.е. такой себе микс уже существующих окон и соответственно возможностей – output + callstack + debugger = IntelliTrace.
Читать дальше →
Total votes 47: ↑36 and ↓11+25
Comments17

Enterprise Library 5

Reading time1 min
Views8.2K
imageЗамечательный набор инструментов от команды patterns & practices – Enterprise Library выпущен в пятой версии. Для тех, что не знает, Enterprise Library — это архитектурные блоки, которые реализуют наиболее частые задачи при разработке программного обеспечения. Примеры таких задач: кеширование, логирование, валидация данных. Наверное, самой популярной частью библиотеки является IoC-контейнер Unity.

Из названия Enterprise Library понятно, что библиотека построена самым серьезным образом и может использоваться для самых ответственных задач. Для каждого блока могут быть установлены системные счетчики производительности.

Enterprise Library — это open source проект под свободной лицензией MSPL. Исходные коды поставляются вместе с библиотекой либо их можно скачать отдельно.

Для удобного конфигурирования всех параметров каждого блока, с библиотекой поставляется удобный инструмент Enterprise Library Configuration.

Enterprise Library 5 содержит следующие блоки: Caching Block, Cryptography Block, Data Access Block, Exception Handling Block, Logging Block, Policy Injection Block, Security Block, Validation Block, Unity.

Кроме того, коммюнити-проект EntLinb Contrib содержит еще ряд дополнительных блоков и расширений.

Ссылки:
загрузить Enterprise Library 5;
страница проекта на codeplex.com;
документация к пятому релизу;
release notes к пятому релизу.
Total votes 44: ↑30 and ↓14+16
Comments12

PLINQ: распределение данных между рабочими потоками

Reading time2 min
Views2.4K
Пусть имеется некоторая последовательность элементов, которую мы хотим обработать при помощи PLINQ-запроса. При этом есть некоторое количество физических ядер CPU, готовых выполнять рабочие потоки. Как распределить элементы входной коллекции между потоками?
Читать дальше →
Total votes 34: ↑24 and ↓10+14
Comments5
12 ...
8

Information

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