Как стать автором
Обновить
8
0
Михаил @Kazemir

Android Developer

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

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

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

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


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


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


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


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

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

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

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

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



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

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

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

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

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

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

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




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


Вступление


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

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

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

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

Проблемы с TCP


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

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

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


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

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

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

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




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

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



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

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

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


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

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

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

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

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

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


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

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

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

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


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

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

Время на прочтение10 мин
Количество просмотров199K
Восемнадцать лет назад, 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
Всего голосов 316: ↑290 и ↓26+264
Комментарии287

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

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


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

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

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


Читать дальше →
Всего голосов 138: ↑135 и ↓3+132
Комментарии126

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

Время на прочтение1 мин
Количество просмотров31K
SpaceX продолжает работы по созданию многоразовой дешевой ракеты.

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

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


Декабрьский прыжок — для сравнения:
Читать дальше →
Всего голосов 80: ↑79 и ↓1+78
Комментарии253

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

Время на прочтение5 мин
Количество просмотров173K
Я выбирал заголовок для этого текста из двух вариантов, но потом решил объединить. Многие уже привыкли, что я пишу о Curiosity или, в крайнем случае, о каком-нибудь достижении NASA. Сегодня я отойду от традиции, и поговорим о наболевшем родном — о русском исследовательском космосе. Нет, я не о том, что воруют и ничего не летает. Наоборот, кое-что летает, даже есть чем гордиться, хоть и не так много как хотелось бы. Я о чертовски бестолковой и зачастую провальной работе отделов по связям с общественностью нашей космической науки.
image
Читать дальше →
Всего голосов 397: ↑394 и ↓3+391
Комментарии95

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

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


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

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

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

Время на прочтение13 мин
Количество просмотров54K
image
Фото из другой статьи

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

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

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

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

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

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

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


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

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

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

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

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

Время на прочтение3 мин
Количество просмотров242K
На сайте Белого дома США несколько месяцев назад открыт сервис подачи петиций. За каждую петицию открыто голосование и если оно наберет более 25 тыс. голосов, то на него должен последовать официальный ответ Администрации президента. 14 ноября 2012 года там была опубликована петиция за начало финансирования и строительства «Звезды Смерти».
Сегодня петиция получила достойный официальный ответ.
image
Читать дальше →
Всего голосов 305: ↑290 и ↓15+275
Комментарии118

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

Время на прочтение3 мин
Количество просмотров80K
*если вы в компьютерной игре про спец-агента



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

Читать дальше →
Всего голосов 163: ↑94 и ↓69+25
Комментарии39

Информация

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