Как стать автором
Обновить
8
0
Денис Бабак @debugger88

Пользователь

Отправить сообщение

Новая архитектура Android-приложений — пробуем на практике

Время на прочтение9 мин
Количество просмотров43K

Всем привет. На прошедшем Google I/O нам наконец представили официальное видение компании Google на архитектуру Android-приложений, а также библиотеки для его реализации. Не прошло и десяти лет. Конечно мне сразу захотелось попробовать, что же там предлагается.

Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии14

Робомобиль на базе Arduino Mega 2560 с Bluetooth управлением и автономным движением с объездом препятствий

Время на прочтение2 мин
Количество просмотров19K
Представляю свой проект робомобиля на Arduino. На просторах интернета есть масса подобных статей, наткнувшись на одну из них решил реализовать увиденное со своими изменениями в конструкцию и функционал. Реализованы следующие возможности: управление робомобилем по Bluetooth со смартфона; автономное движение робомобиля с объездом препятствий.


Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии26

В чём различие между папками Windows и System?

Время на прочтение3 мин
Количество просмотров5.5K
(Windows была выпущена 20 ноября 1985. Сегодня ей исполняется 25. С днём рождения!)

В Windows API с самого начала есть две отдельные функции GetWindowsDirectory и GetSystemDirectory. Почему недостаточно было одной? Обе эти системные папки защищены от записи, обе входят в PATH и в список поиска DLL-библиотек. Зачем было их разделять?

Аксакалы вспомнят, что в те давние времена назначение этих папок различалось. Папка Windows была доступна для записи, и именно в ней хранились все настройки пользователя. Например, функция GetProfileInt читает из файла WIN.INI в папке Windows, и функция GetPrivateProfileInt, если не указан полный путь INI-файла, по умолчанию работает с папкой Windows.
В те давние времена не было отдельных папок с профилями пользователей; в папке Windows, по сути, хранился профиль единственного пользователя в системе.

С другой стороны, большинство системных файлов Windows хранилось в папке System, и эта папка использовалась только для чтения. Даже если не было механизма, фактически запрещавшего запись в эту папку, — сама Windows никогда в неё не писала (исключая установку и удаление приложений, и прочие операции по настройке системы).

Разделение системных файлов на две папки позволяло Windows работать в нескольких различных конфигурациях.
Читать дальше →
Всего голосов 138: ↑113 и ↓25+88
Комментарии112

Что не так с Windows Phone 7?

Время на прочтение11 мин
Количество просмотров4.2K
image

Не важно, как вы относитесь к Microsoft и ее начинаниям.
Операционная система Windows Phone 7, вышедшая около года назад, породила множество споров, дебатов, получила как массу комплиментов, так и шквал критики.
Не будем сейчас разбираться в доводах противоборствующих сторон, а просто взглянем на особенности системы глазами человека, заинтересованного в ее благополучном развитии, в преддверии выхода первого большого обновления Mango.
Много сказано о новых фичах Mango, много написано оптимистичных статей, но я хотел бы представить вам свой взгляд на систему, основываясь на собственном опыте ее использования в течении 6 месяцев.
Ну, а так как достоинства уже порядком освещены в прессе и маркетинговых материалах, то позвольте сосредоточиться исключительно на недостатках.

Пойдем по порядку.
Читать дальше →
Всего голосов 131: ↑121 и ↓10+111
Комментарии147

Загрузка PNG и JPEG картинок в Android NDK

Время на прочтение14 мин
Количество просмотров16K
Приветствую всех читателей!
В этой статье речь пойдет о том, как в Android NDK загрузить PNG и JPEG картинки из файла или из памяти, а также немного полезного кода для скармливания этих картинок OpenGL.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии10

10 причин, по которым Вы бросите свою работу в 2013 году

Время на прочтение9 мин
Количество просмотров809K
imageЭто перевод нашумевшей статьи с TechCrunch от Джеймса Альтушера — инвестора, программиста, автора статей и немного предпринимателя. Его последние книги: Я был слеп, но теперь я вижу и 40 альтернатив колледжу. Читайте его в Twitter @jaltucher.

Люди читают TechCrunch потому, что они хотят что-то создать, они не желают следовать приказам всю жизнь и хотят финансовой свободы. Давайте начистоту. Эти три пункта кажутся притягательными. Да благословит Вас Бог. Надеюсь, что когда Вы их обретете, Вы сможете сохранить их. Большинству людей (например, МНЕ), нужно просто немного покататься на американских горках, потому что мы тупые. Но некоторые люди умные.
Читать дальше →
Всего голосов 287: ↑206 и ↓81+125
Комментарии391

Места распространения Android приложений

Время на прочтение4 мин
Количество просмотров77K

В какой-то момент разработчику андроид приложений становится тесно в рамках одного магазина Google Play. И тогда он начинает задумываться о том, как бы еще донести до пользователей свои приложения. Оказывается, достаточно много вариантов это сделать.

Перечислю те, которые попробовал сам. Сразу оговорюсь, что приложения у меня бесплатны, с рекламой внутри. С публикацией платных приложений разберусь, когда появятся достойные.
Читать далее
Всего голосов 72: ↑69 и ↓3+66
Комментарии37

Маленькая хитрость для отображения большого объёма данных в ListView

Время на прочтение4 мин
Количество просмотров41K


В этой статье я хочу поделиться недавно найденным решением, позволяющем отображать, а главное легко скролить большие объёмы данных в стандартном ListView.

Проблема


Стандартный механизм отображения списков из базы данных в Android выглядит примерно так:
  • Activity содержит ListView
  • ListView обращается к экземпляру CursorAdapter
  • CursorAdapter получает данные из объекта, реализующего интерфейс Cursor
  • Cursor получен либо из ContentProvider, либо сразу из SQLiteDatabase


Всё работает нормально ровно да тех пор, пока количество строк в Cursor сравнительно небольшое. Но если в нём 50 тысяч, 100 тысяч и более строк (хотя дело не только в количестве строк, но об этом чуть позже), время от времени список будет притормаживать. Особенно это заметно при «быстрой прокрутке», если у ListView установлено в true свойство fastScrollEnabled.
Читать дальше →
Всего голосов 49: ↑46 и ↓3+43
Комментарии26

Как накосячить с типографией: подборка работающих способов

Время на прочтение7 мин
Количество просмотров119K

Тут наверняка есть косяки, просто мы ещё не открыли коробку

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

Поначалу может показаться, что типографии — это специальные ловушки для тех, кто не умеет правильно формулировать задание, читать договор и проверять тираж. Позже, через несколько сорванных сроков и битых тиражей, приходит понимание каких-то основ.
Читать дальше →
Всего голосов 158: ↑155 и ↓3+152
Комментарии104

Изменение размера виджета в Android 4.1 Jelly Bean

Время на прочтение3 мин
Количество просмотров16K
Как стало известно — в новой версии Android Jelly Bean (API v16) появилась возможность изменения размера виджета, да не просто изменения, а автоматического, который теперь подстраивается под свободное место на экране.
Функция удобная и полезная, но в официальной документации про это почти ничего нету, что довольно странно.

Так как я разрабатываю несколько виджетов, то решил добавить данный функционал.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии10

Искусственный разум, интеллект, жизнь… Долго ли их еще ждать?

Время на прочтение7 мин
Количество просмотров2K
Боюсь, что уже дождались. По крайней мере, искусственную жизнь — так точно дождались, и даже более того. А как Вам экспансия жизни со скоростью 6 планет в час — впечатляет? Хотите узнать больше — читайте дальше.
Читать дальше →
Всего голосов 56: ↑13 и ↓43-30
Комментарии110

ObjectDB — система управления базами данных для Java приложений

Время на прочтение4 мин
Количество просмотров3.7K
ObjectDB является объектно-ориентированной, написанной на Java СУБД, которая при всех своих впечатляющих тестах на скорость и используемая (как следует из рекламы на официальном сайте) такими организациями как HP и Novell малознакома для многих программистов (Сам я об этой базе узнал буквально месяц назад, и использовал ее только один раз в рамках учебного проекта, да и мой препод узнал о ней как раз из моего проекта). За продолжением прошу под кат.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии12

Организация архитектуры взаимодействия Activity и Service

Время на прочтение7 мин
Количество просмотров34K
Приветствую!

Сегодня я решил поведать Вам мой способ организации activity-service interaction в Android приложениях. Мотивирован топик тем, что достаточно часто можно встретить приложения, в которых, скажем, поход на сервер организовывается внутри активити в AsyncTask. При этом часто встречается верная мысль, что это надо делать в сервисах, но нигде в оф. документации нет ни слова об организации правильной архитектуры двустороннего взаимодействия между ними.

Поэтому я методом проб и ошибок пришел к архитектуре, лично для меня покрывающей все необходимые вопросы.

Об этом методе я буду рассказывать далее.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии37

Советы по правильной настройке телевизора

Время на прочтение6 мин
Количество просмотров911K
Для начала, что есть «правильная настройка». Если вы хотя бы раз были в магазине электроники, то наверняка замечали, что все выставленные телевизоры показывают по-разному. С чем это связано? Какой из них лучше? Давайте разберемся.

Я думаю, вы согласитесь, что телевизор должен не просто показывать какую-то картинку, но и вносить как можно меньше искажений в исходный контент. Сам контент всегда создается с оглядкой на стандарты и рекомендации индустрии, и главная цель любого телевизора — донести до вас именно то изображение, которое вам хотели показать. Тут важно всё: и оттенок кожи у актера, и цвет неба на закате, и какие детали изображения должны быть видны, а какие спрятаны. Существуют международные стандарты, описывающие каким должно быть изображение на экране вашего телевизора. Все вы, наверняка, встречали аббревиатуры PAL, NTSC, или HDTV, вот за этими буквами и скрываются свойства видеосигнала и различные параметры изображения. С приходом HDTV в нашу жизнь, большая часть стандартов сразу же устарела, и, фактически, наиболее актуальным сейчас является стандарт REC709, который используется в телевидении высокой четкости (HD) и в Blu-Ray видео.
Читать дальше →
Всего голосов 184: ↑171 и ↓13+158
Комментарии127

Об ИИ в интеллектуальных играх

Время на прочтение7 мин
Количество просмотров33K
Не так давно я увлёкся игрой в сёги. К сожалению, эта чудесная игра практически не известна в России, поэтому пока я не научил играть друзей, мне приходилось играть с программой. Конечно, мне было интересно, как эта программа работает.
Ниже представлен небольшой рассказ о компьютерных алгоритмах, используемых в интеллектуальных играх.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии71

Android UI thread

Время на прочтение4 мин
Количество просмотров69K
Большая часть кода Android приложения работает в контексте компонент, таких как Activity, Service, ContentProvider или BroadcastReceiver. Рассмотрим, как в системе Android организованно взаимодействие этих компонент с потоками.
Читать дальше →
Всего голосов 36: ↑30 и ↓6+24
Комментарии16

Полупроводниковая электроника

Время на прочтение30 мин
Количество просмотров373K


Полупроводниковая электроника существенно изменила мир. Многие вещи, которые долгое время не сходили со страниц произведений фантастов стали возможны. Чтобы знать, как работают и чем уникальны полупроводниковые приборы, необходимо понимание различных физических процессов, протекающих внутри.



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





Иллюстраций: 34, символов: 51 609.



Читать дальше →
Всего голосов 488: ↑479 и ↓9+470
Комментарии152

Связь на Марсе

Время на прочтение27 мин
Количество просмотров13K


​12 апреля отмечается международный день полёта человека в космос. Более полувека прошло с того момента, когда Человечество сделало первый шаг в его освоение. Череда блестящих технических и научных побед сделала нас ближе к звёздам. Жажда открытий тянет постигать новые таинственные миры. Марс, красная «звезда» на небосводе, с древних времён притягивал к себе внимание людей. Невообразимо похожий на Землю, но всё-таки чужой мир до сих пор не покидает сознание многих исследователей. Вероятно в скором времени мы можем стать свидетелями тому, как на Марсе станут появляться небольшие исследовательские колонии людей. Инженерам предстоит столкнуться с многими проблемами. На Хабре присутствует большое количество специалистов разных областей, каждый обладает широким кругозором и определёнными знаниями. Предлагаю воспользоваться коллективным разумом и в этой статье поразмышлять о том, как бы выглядела связь на Марсе, если бы там существовали колонии людей.



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



Иллюстраций: 21, символов: 45 081.



Читать дальше →
Всего голосов 190: ↑179 и ↓11+168
Комментарии93

Python vs Ruby

Время на прочтение5 мин
Количество просмотров137K
Данная флеймообразующая статья призвана собрать в одном месте актуальную информацию по преимуществам Python над Ruby и Ruby над Python. Основываясь на собственном многолетнем опыте использования обоих языков, я постарался ограничить сравнение языками как таковыми и их стандартными библиотеками — сравнение web фреймворков, сред разработки и доступных библиотек не включены в статью, так как здесь и без меня немало копий сломано.
Читать дальше →
Всего голосов 201: ↑163 и ↓38+125
Комментарии349

Android SDK: боремся с ограничением размера памяти для картинок

Время на прочтение5 мин
Количество просмотров16K
В графическом приложении для рисования используется SurfaceView и пара Bitmap размером с экран (например, я хочу изобразить плавное листание страниц книги).

На многих устройствах с большим разрешением экрана приложение падает c ошибкой
AndroidRuntime: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

Проблема в том, что память для Bitmap, а также для SurfaceView резервируется из общей кучи процесса. Лимит размера кучи — невелик, как правило немногим больше 10Мб. И задается этот лимит при сборке системы.

Попытки улучшить ситуацию урезанием формата пикселя с 32 бит до 16 не слишком помогают. Проблема просто вылезает позже — например, при открытии окна поверх SurfaceView (видимо, при этом создается еще один Bitmap размером с экран).

Ограничение размера графических буферов программы в 3-4 экрана — это до обидного мало! Попробуем исправить такую несправедливость.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии26

Информация

В рейтинге
Не участвует
Откуда
Николаевская обл., Украина
Дата рождения
Зарегистрирован
Активность