Pull to refresh
8
0
Михаил @Kazemir

Android Developer

Send message

Трансформация кода в Android

Reading time12 min
Views5K

Вместо вступления


Всё началось с того, что мне захотелось изучить тонкости настройки Gradle, понять его возможности в Android разработке (да и вообще). Начал с жизненного цикла и книги, постепенно писал простые таски, попробовал создать свой первый Gradle плагин (в buildSrc) и тут понеслось.


Решив сделать что-то, приближенное к реальному миру Android разработки, написал плагин, который парсит layout xml файлы разметки и создает по ним Java объект со ссылками на вьюхи. Затем побаловался с трансформацией манифеста приложения (того требовала реальная задача на рабочем проекте), так как после трансформации манифест занимал порядка 5к строк, а работать в IDE с таким xml файлом довольно тяжело.


Так я разобрался как генерировать код и ресурсы для Android проекта, но со временем захотелось чего-то большего. Появилась мысль, что было бы круто трансформировать AST (Abstract Syntax Tree) в compile time как это делает Groovy из-под коробки. Такое метапрограммирование открывает много возможностей, была бы фантазия.


Дабы теория не была просто теорией, я решил подкреплять изучение темы созданием чего-то полезного для Android разработки. Первое, что пришло на ум — сохранение состояния при пересоздании системных компонентов. Грубо говоря, сохранение переменных в Bundle максимально простым способом с минимальным бойлерплейтом.

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments1

Архитектура Android приложений

Reading time8 min
Views76K

Наше путешествие от стандартных Activity и AsyncTask'ов к современной MVP архитектуре с применением RxJava.



Код проекта должен быть разделён на независимые модули, работающие друг с другом как хорошо смазанный механизм — фото Честера Альвареза.

Экосистема средств разработки под Android развивается очень быстро. Каждую неделю кто-то создаёт новые инструменты, обновляет существующие библиотеки, пишет новые статьи, или выступает с докладами. Если вы уедете в отпуск на месяц, то к моменту вашего возвращения уже будет опубликована свежая версия Support Library и/или Google Play Services.

Я занимаюсь разработкой Android-приложений в компании ribot в течение последних трёх лет, и всё это время и архитектура наших приложений, и используемые нами технологии, постоянно развивались и улучшались. Эта статья проведёт вас путём, пройденным нами, показав вынесенные нами уроки, совершенные нами ошибки, и рассуждения, которые привели ко всем этим архитектурным изменениям.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments13

Сетевое программирование для разработчиков игр. Часть 4: Надежность, упорядочивание и избежание перегрузок поверх UDP

Reading time13 min
Views24K
От переводчика: У меня возникла необходимость разобраться с работой UDP-сокетов в неблокирующем режиме в java и создать свой собственный класс для работы с сетевыми соединениями на их основе. К сожалению, толковой русскоязычной документации на эту тему я не нашёл. Зато наткнулся на несколько попыток на хабре осветить тему создания надёжного соединения поверх UDP. В том числе и перевод нескольких статей Гленна Фидлера, сделанный пользователем bvasilyev. И хотя статьи рассматривают создание подобного подключения для применения его в играх (не совсем то, что мне необходимо), а также языком реализации является не java, а c++, они стали для меня отправной точкой. К сожалению bvasilyev около года назад прервал перевод данного цикла, а самое интересное осталось на языке оригинала. Поэтому я решил перевести четвёртую статью цикла и переписать реализацию виртуального соединения из третей статьи цикла на java (чуть позже выложу). Ну а для того, чтоб данной статьёй мог воспользоваться кто-либо, кроме меня, выкладываю её здесь. Профессиональным переводом, к сожалению, никогда не занимался, всегда изучал англоязычную документацию. Но в данном случае, из-за многочисленного употребления некоторых слов в совершенно различных значениях, а также в роли наименования всевозможных определений, неоднократно — в пределах одного предложения, счёл более целесообразным осуществить перевод, а после уже работать с текстом на привычном для себя языке. Поправки и аргументированные предложения приветствуются.

Первая статья
Вторая статья
Третья статья

(напомню: переведены bvasilyev)




Надежность, упорядочивание и избежание перегрузок поверх UDP


Вступление


Привет, меня зовут Гленн Фидлер и я приветствую вас в своей четвёртой статье из цикла “Сетевое программирование для разработчиков игр”.

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

Теперь мы будем добавлять надёжность, упорядоченность и предотвращение перегрузок к нашему виртуальному UDP соединению.

Это, безусловно, самая сложная часть низкоуровневой сетевой работы в играх, так что эта статья будет весьма насыщенной, поэтому пристегнулись и поехали!

Проблемы с TCP


Те из вас, кто знаком с TCP, знают, что он уже имеет свою внутреннюю концепцию соединений, с надёжной и упорядоченной системой передачи пакетов и предотвращением перегрузок, так зачем же мы пишем свою собственную мини версию TCP на основе UDP?
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments5

Построение Android приложений шаг за шагом, часть первая

Reading time8 min
Views146K


В этой статье мы поговорим о проектировании архитектуры и создании мобильного приложения на основе паттерна MVP с использованием RxJava и Retrofit. Тема получилась довольно большой, поэтому подаваться будет отдельными порциями: в первой мы проектируем и создаем приложение, во второй занимаемся DI с помощью Dagger 2 и пишем тесты unit тесты, в третьей дописываем интеграционные и функциональные тесты, а также размышляем о TDD в реалиях Android разработки.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments48

Краткий курс компьютерной графики, аддендум: ambient occlusion

Reading time6 min
Views24K

Official translation (with a bit of polishing) is available here.




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

Модель освещения Фонга — классический пример локального выбора:



Финальная интенсивность складывается из трёх слагаемых: окружающее освещение, постоянное значение для всех точек сцены. Диффузное освещение и блики зависят от вектора нормали к данной точке и направления света, но не зависят от геометрии остальной части сцены. Давайте подумаем, а почему, собственно, окружающее освещение было выбрано постоянным для всей сцены?
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments7

Инновационный браслет MYO от Thalmic Labs

Reading time1 min
Views194K


Сегодня на выставке Mobile World Congress в Барселоне компания Thalmic Labs представила свою новую разработку — браслет для руки, с помощью которого можно управлять различными электронными устройствами. После просмотра видео кажется, что мы уже попали в будущее, а Leap устарел еще до появления в продаже…
Читать дальше →
Total votes 150: ↑142 and ↓8+134
Comments142

Не лей мне соль в реактор или не-импульсные ядерные ракетные двигатели

Reading time8 min
Views169K

Идея бросать за корму атомные бомбы в проекте «Орион» оказалась слишком брутальной, но объемы энергии, которые дает реакция ядерного расщепления, не говоря уже о синтезе, крайне привлекательны для космонавтики. Поэтому было создано множество не-импульсных систем, избавленных от проблем с хранением сотен ядерных бомб на борту и циклопических амортизаторов. О них сегодня мы и поговорим.
Читать дальше →
Total votes 128: ↑127 and ↓1+126
Comments34

Опубликованы технические спецификации проекта Hyperloop

Reading time2 min
Views199K


Сегодня изобретатель и предприниматель Элон Маск, владелец компаний Tesla Motors и SpaceX, наконец-то опубликовал «альфа-версию» дизайна загадочного транспортного средства Hyperloop, которое планируется запустить сначала между Сан-Франциско и Лос-Анджелесом, далее — везде.

Ранее сообщалось, что Hyperloop планируется как общественный транспорт для большого количества пассажиров, капсулы будут двигаться со средней скоростью около 1000 км/ч, и система не будет требовать внешних источников энергии, кроме той, которой сама себя обеспечит.
Читать дальше →
Total votes 169: ↑164 and ↓5+159
Comments413

В 2014 году ожидается бум 3D-печати: истекают патенты на технологию лазерного спекания

Reading time2 min
Views125K


В феврале 2014 года истекает срок действия патентов на ключевую технологию выборочного лазерного спекания (selective laser sintering, SLS), которая изобретена в 80-е годы и сейчас используется в промышленных 3D-принтерах. Существование этих патентов существенно ограничивает конкуренцию на рынке и не даёт возможности наладить массовый выпуск дешёвых 3D-принтеров такого типа.
Читать дальше →
Total votes 88: ↑77 and ↓11+66
Comments84

Ко дню рождения Мастдайки

Reading time10 min
Views198K
Восемнадцать лет назад, 24 августа 1995 года, вышел официальный релиз Windows 95. По этому поводу мы с юзером maksimiks заморочились и подготовили большой, полный ностальгии пост, посвящённый имениннице (я предпочитаю считать, что Windows 95 женского пола из-за её капризности, своенравия, теплоты, удобства и любви к украшениям).



Конечно, рассказать что-то абсолютно неизвестное о этой системе практически невозможно. Хотя…
Вот, например, можете ли вы сказать, с каким максимальным объёмом памяти сможет заработать Windows 95? 128Mb? Нет! 512Mb? Нет! 1024Mb? И снова нет!
На случай, если кто-то захочет поломать себе голову загадкой, ответ (не обязательно правильный) скрыт под спойлером:
Спойлер
Несмотря на то, что Win95 не должна поддерживать более 512Mb, она будет запускаться и работать на больших объёмах.
image
Мне удалось запустить её на виртуальной машине с 944 мегабайтами ОЗУ, и это удивительно. Win95 использует страничную адресацию памяти, и каталог страниц, экономии ради, может адресовать только те самые 512Mb.
Ещё удивительнее то, что уже на 945 мегабайтах винда запускаться отказывается. Причину я так и не смог понять — если у вас есть какие-то варианты — предлагайте в комментарии.

UPD: наиболее вероятный вариант такого поведения изложен здесь.

Известно ли уважаемой публике, что изначально проект Chicago собирались выпустить в конце 94 года, и назвать Windows 94? Более того — существовала превью-сборка «чикаги» именно под названием Windows 94; я самолично держал этот диск в руках и даже производил с него установку. Эх, знал бы я тогда, что через пару десятков лет такой диск станет диким раритетом — не потерял бы его, похвалился бы сейчас со всеми пруфами…
Впрочем, у нас есть что показать и рассказать и без этого. Оригинальная упаковка Windows 95, которой мы, в честь именин, устроили фотосессию:
Windows 95 barely legal
Total votes 316: ↑290 and ↓26+264
Comments287

Графеновый фотосенсор в 1000 раз чувствительнее к свету, чем КМОП и ПЗС

Reading time2 min
Views131K


Группа учёных под руководством доцента Ван Цицзе (Wang Qijie) из Наньянского технологического университета (Сингапур) заявила о разработке фотодетектора на основе графена. Он по всем параметрам превосходит нынешние КМОП- и ПЗС-сенсоры, примерно в 1000 раз более чувствителен к свету, чем созданные ранее экспериментальные графеновые фотодетекторы, потребляет в 10 раз меньше энергии и в 5 раз дешевле, чем современные КМОП-матрицы.
Читать дальше →
Total votes 128: ↑112 and ↓16+96
Comments190

Curiosity рассказал о радиации в космосе

Reading time3 min
Views175K
Curiosity имеет на борту прибор RAD для определения интенсивности радиоактивного облучения. В ходе своего полета к Марсу Curiosity производил замеры радиационного фона, а сегодня об этих результатах рассказали ученые, которые работают с NASA. Поскольку марсоход летел в капсуле, а датчик радиации располагался внутри, то эти замеры практически соответствуют тому радиационному фону, который будет присутствовать в пилотируемом космическом корабле.


Читать дальше →
Total votes 138: ↑135 and ↓3+132
Comments126

Новый прыжок Grasshopper (Кузнечика) SpaceX

Reading time1 min
Views31K
SpaceX продолжает работы по созданию многоразовой дешевой ракеты.

Маск:… если человечество хочет стать мульти-планетарным, фундаментальный прорыв, который должен произойти в ракетной отрасли — это быстрые и полностью многоразовые ракеты. Пока их нет, космический транспорт останется на два порядка дороже, чем он должен быть… Представьте, что вам необходим новый самолет на каждый рейс. Очень немногие люди будут летать при этом… Стоимость топлива на Falcon 9 составляет лишь около 0,3 процента от общей цены. Так, если транспортное средство стоит $ 60 млн, топливо, может быть, пару сотен тысяч долларов.

В декабре 2012 года Grasshopper (Кузнечик) подпрыгнул на 40 метров. А теперь — еще выше.
Завораживающее зрелище от близкой съемки работы двигателя, зависания такой махины в воздухе и филигранной посадки на место старта.


Декабрьский прыжок — для сравнения:
Читать дальше →
Total votes 80: ↑79 and ↓1+78
Comments253

Солнечные затмения с расстояния 36 тыс. км или почему мы об их космосе знаем больше чем о нашем

Reading time5 min
Views173K
Я выбирал заголовок для этого текста из двух вариантов, но потом решил объединить. Многие уже привыкли, что я пишу о Curiosity или, в крайнем случае, о каком-нибудь достижении NASA. Сегодня я отойду от традиции, и поговорим о наболевшем родном — о русском исследовательском космосе. Нет, я не о том, что воруют и ничего не летает. Наоборот, кое-что летает, даже есть чем гордиться, хоть и не так много как хотелось бы. Я о чертовски бестолковой и зачастую провальной работе отделов по связям с общественностью нашей космической науки.
image
Читать дальше →
Total votes 397: ↑394 and ↓3+391
Comments95

Тёплый ламповый телефон

Reading time4 min
Views113K


После просмотра первой “Матрицы” все загорелись мобильниками типа слайдер, а вот мне захотелось кошерный карболитовый дисковый телефон. Поглядев на ебее конские цены на подобные аппараты, плюс не менее конские цены на доставку в деревню Москва, то я глянул в сторону молотка, и, о чудо, моему взору предстал сей прекрасный аппарат, всего за 400 рублей (~10 €).

Но интересно же не только получить вещь, но почистить её, починить, настроить и за одно поглядеть, как же она устроена. Так вот и приступим к вскрытию сего ретропациента.
Читать дальше →
Total votes 127: ↑92 and ↓35+57
Comments92

Элон Маск. Миссия на Марс

Reading time13 min
Views54K
image
Фото из другой статьи

Когда человек говорит вам, что некогда он планировал разбить огород на Марсе, вы усомнитесь в его психическом здоровье. Но если этот же человек с тех пор запустил несколько ракет, которые действительно способны достичь Марса, отправив их на орбиту в стиле Бонда с крошечного острова в Тихом океане, вам стоит найти другой диагноз. В том-то и дело в экстремальном предпринимательстве: очень тонка грань между безумием и гениальностью, и вам нужно немного и того, и другого, чтобы действительно изменить мир.

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

Я никогда не встречал предпринимателя, который соответствовал бы этой модели больше, чем Элон Маск. Все предприниматели, которыми я больше всего восхищаюсь — Маск, Джефф Безос, Рид Хастингс, Джек Дорси, Сергей Брин и Ларри Пейдж, Билл Гейтс, Стив Джобс и другие, стремились не только построить большую компанию, но и взяться за решение действительно значимых проблем. Но даже в классе людей, меняющих мир, Маск выделяется. После успешной продажи созданных им интернет-компаний, в том числе PayPal, южноафриканский уроженец мог просто выйти на пенсию, чтобы наслаждаться своим богатством. Вместо этого он решает изменить самые сложноуправляемые отрасли в мире. В 41 он заново изобретает автомобиль с Tesla и строит завод электромобилей в Детройте. (Wired представлял это предприятие в обсуждении 18.10) Он преобразует энергетику с SolarCity — стартапом, который сдает солнечные энергетические системы в аренду домовладельцам.

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

Неудивительно, что для фильма Железный Человек Маск послужил прообразом персонажа Тони Старк, которого играет Роберт Дауни-младший: Это материал достойный супергероя. Я встретился с ним на фабрике Tesla во Фремонте, Калифорния, чтобы обсудить, как более дешевые и (рано или поздно) многоразовые ракеты смогут когда-нибудь доставить человека на Марс.
Читать дальше →
Total votes 101: ↑95 and ↓6+89
Comments70

Cуперкомпьютер за 1 млрд евро: симуляция мозга человека

Reading time3 min
Views225K


Еврокомиссия одобрила финансирование самого крупного и амбициозного проекта по симуляции человеческого мозга. Проект Human Brain Project объединит усилия европейских учёных на 2013-2023 гг и предварительно оценивается в 1,19 млрд евро.
Читать дальше →
Total votes 138: ↑128 and ↓10+118
Comments240

Термоядерная энергетика: надежда человечества?

Reading time10 min
Views327K
В детстве я любил читать журнал «Наука и Жизнь», в деревне лежала подшивка начиная с 60-х годов. Там часто рассказывали про термоядерный синтез в радостном ключе — вот уже почти, и оно будет! Многие страны, чтобы успеть на раздачу бесплатной энергии строили у себя Токамаки (и настроили их суммарно 300 штук по всему миру).

Годы шли… Сейчас 2013-й год, а человечество до сих пор получает бОльшую часть энергии от сжигания угля, как в 19-м веке. Почему так получилось, что мешает создать термоядерный реактор, и чего нам ждать в будущем — под катом.
Читать дальше →
Total votes 277: ↑273 and ↓4+269
Comments317

Звезда Смерти не нужна когда есть Curiosity

Reading time3 min
Views242K
На сайте Белого дома США несколько месяцев назад открыт сервис подачи петиций. За каждую петицию открыто голосование и если оно наберет более 25 тыс. голосов, то на него должен последовать официальный ответ Администрации президента. 14 ноября 2012 года там была опубликована петиция за начало финансирования и строительства «Звезды Смерти».
Сегодня петиция получила достойный официальный ответ.
image
Читать дальше →
Total votes 305: ↑290 and ↓15+275
Comments118

Psion 5mx vs iPhone 5 в повседневном использовании*

Reading time3 min
Views80K
*если вы в компьютерной игре про спец-агента



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

Читать дальше →
Total votes 163: ↑94 and ↓69+25
Comments39

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity