Search
Write a publication
Pull to refresh
-3
Дмитрий Романенко @WraithOWread⁠-⁠only

User

Send message

Пагинация списков в Android с RxJava. Часть I

Reading time13 min
Views41K
Часто при разработке клиента мы сталкиваемся с задачей отображения какой-либо информации с сервера, базы данных или еще чего-нибудь в виде списка. И при прокручивании списка данные должны автоматически подгружаться и вставляться в список незаметно для пользователя. У пользователя вообще должно сложиться впечатление, что он скроллит бесконечный список.

В данной статье я бы хотел рассказать вам о том, как сделать автоподгружаемый список простейшим в реализации для разработчика и максимально эффективным и быстрым для пользователя. А также о том, как нам в этом здорово поможет RxJava с ее главной догмой — «Everything is Stream!»
Читать дальше →

Достаточно Git-а, чтобы быть (менее) опасным

Reading time23 min
Views132K
imageТы просто-напросто ненавидишь Git? Ты абсолютно счастлив с Mercurial (или, фу, с Subversion), но раз в месяц тебе приходится отважно сталкиваться с Git, потому что каждый, даже его чертова собака, теперь использует GitHub? Тебя терзают смутные подозрения, что половина всех команд Git на самом деле удалят всю твою работу навсегда, но ты не знаешь какие именно и не хочешь проводить три недели, углубляясь в документацию?

Хорошие новости! Я написал тебе этот изумительный Интернет-пост. Я надеюсь, что смогу размазать достаточно Git-а по твоему лицу, чтобы понизить вероятность сделать что-то непоправимое, а так же уменьшить твой страх что-то сломать. Этого должно быть также достаточно, чтобы сделать документацию Git немного более понятной; она крайне тщательно и глубоко проработана и очень глупо, если ты все еще не прочитал половину.

Я постараюсь излагать коротко, но также, чтобы это было потенциально полезно тем людям, кто вообще никогда не сталкивался с контролем версий, поэтому повсюду будет разбросан 101 совет. Не бойся! Я не думаю, что пользователи Mercurial понятия не имеют, что такое патч.
Но подожди! Там еще...

Рецепты под Андроид: Selectable соус для LayoutManager'a

Reading time12 min
Views8.6K
Пользователь не любит тратить время, пользователь не любит переписывать текст. Пользователь хочет копипастить. И хочет делать это даже в приложении на мобильном устройстве. И хочет, чтобы эта функция была удобной для работы пальцем на небольшом экране. Производители операционных систем по-разному реализуют эту функцию, стараясь угодить пользователям. Не отстают и разработчики приложений.



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

Как купить в интернет-магазине ветрянку, коклюш и гормон роста

Reading time5 min
Views16K
Данная статья — ремейк материала годичной давности, поэтому значительная часть текста осталась без изменений. Но есть и новости в развитии проекта LAB4U, о которых стоит поведать миру. Итак, летом 2015 года на Гиктаймсе была опубликована статья “ИТ-системы в медицине”, автор которой побывал в крупной лаборатории БИОН, работающей в b2b сегменте. Мой рассказ о том, как можно с помощью интернет-сервиса LAB4U воспользоваться услугами лаборатории БИОН с большой выгодой для себя. Мы не стали копировать конкурентов, а разработали свою бизнес-модель, в основе которой лежит принцип “минимум затрат с сохранением высокого качества результатов”.

Первая мысль — а зачем было что-то изобретать? Попробуем разобраться. Все чаще сдавая кровь в государственной или частной клинике, мы видим результаты анализов на бланке крупной лаборатории. Объясняется это просто — дорогостоящее оборудование (а хороший анализатор стоит десятки, а некоторые и сотни тысяч долларов) окупает себя только в том случае, если есть большой объем исследований.

Если проводить аналогию, то медицинское учреждение — это магазин, а лаборатория — фабрика по производству анализов. Вспомним классическую схему движения товара от производителя к потребителю:

image

Учитывая то, что стоимость обследования на основные биохимические показатели крови (а это один из наиболее востребованных комплексов анализов), в среднем, составляет около двух с половиной тысяч рублей, возникает резонный вопрос: “неужели нельзя обойтись без наценки посредника?”. Если сейчас в интернете можно купить товар напрямую у производителя и значительно дешевле, чем в магазине, то почему нельзя аналогично поступить с анализами? Оказывается, уже можно.
Читать дальше →

Обработка аннотаций в процессе компиляции

Reading time10 min
Views37K
magicМетапрограммирование — вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы (в частности, на стадии компиляции их исходного кода), либо программ, которые меняют себя во время выполнения.

Аннотации, как инструмент метапрограммирования появились вместе с релизом Java 5 в далеком 2004 году. Вместе с ними появился инструментарий Annotation Processing Tool, на смену которому пришла спецификация JSR 269 или Pluggable Annotation Processing API. Что интересно, этой спецификации без малого 10 лет, но свою популярность в Android разработке она начала обретать только сейчас.

О возможностях, которые открывает эта спецификация мы поговорим чуть позже (будет мнооого кода), а сперва, не хотите ли поговорить о компиляции Java кода?
Читать дальше →

Написание Unit-тестов. Mocking объектов

Reading time17 min
Views40K
Кому нужны модульные тесты? Не Вам — Ваш код идеален. Но все же, Вам просто нужно прочитать эту статью, которая должна больше рассказать о написании модульных тестов на Swift’е. Вдруг это Вам в дальнейшем пригодиться.

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

Модульное тестирование работает с изолированными “микрокомпонентами”. Зачастую Вам нужно «мокировать» классы – то есть обеспечить фейк функциональной реализацией, чтобы изолировать специфический микрокомпонент, таким образом, он сможет быть протестирован. В Objective-C существует несколько сторонних фреймворков, которые помогают это реализовать. Но они еще не доступны в Swift’е.

В этом руководстве Вы научитесь, писать свои собственные mock-обьекты, fakes и stub'ы, чтобы покрыть тестами давольно простое приложение, которое поможет вам запомнить дни рождения ваших друзей.
Читать дальше →

Рецепты под Android: Как вкусно приготовить LayoutManager

Reading time16 min
Views49K
Привет хабр!

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


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

После прочтения применить. 25 книг для игрового разработчика

Reading time8 min
Views120K
Предлагаю подборку всегда актуальных книг по программированию, геймдизайну и концепт-арту для новичков и бывалых бойцов геймдева. Конечно, во главе профессионального развития стоит практика, но эти книги сэкономят ваше время и позволят не выдумывать велосипед заново.


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

Заметка о калибровке датчиков положения в домашних условиях

Reading time10 min
Views24K
Для некоторых датчиков ускорения требуется дополнительная калибровка нуля после монтажа на плату. Когда я увидел несколько исходников с калибровкой датчиков ускорения, где составляющая G учитывалась просто путём вычитания из оси Z величины = 9,8 м/с2 — появилась идея написать данную заметку.


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

Git для профессионального программиста

Reading time4 min
Views50K
Привет, Хаброжители!
У нас вышла новая книга С. Чакона и Б. Страуба

image

Эта книга представляет собой обновленное руководство по использованию Git в современных условиях. С тех пор как проект Git — распределенная система управления версиями — был создан Линусом Торвальдсом, прошло много лет, и система Git превратилась в доминирующую систему контроля версий, как для коммерческих целей, так и для проектов с открытым исходным кодом. Эффективный и хорошо реализованный контроль версий необходим для любого успешного веб-проекта. Постепенно эту систему приняли на вооружение практически все сообщества разработчиков ПО с открытым исходным кодом. Появление огромного числа графических интерфейсов для всех платформ и поддержка IDE позволили внедрить Git в операционные системы семейства Windows. Второе издание книги было обновлено для Git-версии 2.0 и уделяет большое внимание GitHub.
Читать дальше →

Полёт капли воды в условиях микрогравитации на МКС

Reading time1 min
Views13K


В эти выходные сообщество «Что за магия?!» на сайте Reddit встало на уши из-за простенькой GIF-анимации. На ней показана капелька воды, которая словно маленькая планета кружит вокруг вязальной спицы в условиях микрогравитации.

Научное объяснение этого феномена действительно представляет определённый интерес.
Читать дальше →

Android Process: Я тебя породил, я тебя и …

Reading time12 min
Views40K


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

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

Android архитектура клиент-серверного приложения

Reading time13 min
Views106K
Клиент-серверные приложения являются самыми распространенными и в то же время самыми сложными в разработке. Проблемы возникают на любом этапе, от выбора средств для выполнения запросов до методов кэширования результата. Если вы хотите узнать, как можно грамотно организовать сложную архитектуру, которая обеспечит стабильную работу вашего приложения, прошу под кат.


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

Пишем документацию API при помощи RAML

Reading time10 min
Views77K
RAML

Удобство работы с любым API во многом зависит от того, как написана и оформлена его документация. Cейчас мы ведём работу по стандартизации и унификации описания всех наших API, и вопросы документирования для нас особенно актуальны.
После долгих поисков мы решили оформлять документацию в формате RAML. Так называется специализированный язык для описания REST API. О его возможностях и преимуществах мы расскажем в этой статье.
Читать дальше →

Представляем Hub 1.0 — коннектор для командных продуктов JetBrains

Reading time4 min
Views17K
Привет, Хабр!

Сегодня мы рады представить совершенно новый продукт в линейке JetBrains — Hub 1.0. Он служит единой точкой входа для наших командных продуктов: баг-трекера YouTrack, инструмента для код-ревью Upsource, а в скором времени и нашего сервера непрерывной интеграции TeamCity. Hub абсолютно бесплатен и по умолчанию поставляется с лицензией для неограниченного количества пользователей.
image

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

Deep Dream: как обучить нейронную сеть мечтать не только о собаках

Reading time5 min
Views33K
В июле всех порадовала статья про deep dream или инцепционизм от Google. В статье подробно рассказывалось и показывалось как нейронные сети рисуют картины и зачем их заставили это делать. Вот эта статья на хабре.

Теперь все, у кого настроена среда caffe, кому скучно и у кого есть свободное время могут сделать собственные фотки в стиле инцепционизм. Одна проблема — почти на всех фотках получаются собаки. Как же избавится от элементов с псами в изображениях deep dream и обучить свою нейронную сеть пользоваться другими картинками?

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

Сюжетно-ориентированные игры

Reading time8 min
Views58K
Классические компьютерные игры начались ещё, собственно, до появления компьютеров в виде интерактивных книг. Скорее всего, в детстве у вас была одна такая либо Браславского, либо вообще из цикла про Стальную Крысу Гаррисона.



Смысл очень прост: внутри подаётся сюжет, который зависит от вашего выбора. Простейшее ветвление такое: вы дошли до развилки. Если вы хотите повернуть направо, откройте страницу 11, если налево – 182. На соответствующих страницах будет продолжение истории про то, что случится после вашего выбора.

Базовый сюжет строился в виде системы узлов и переходов. За один проход вы задействовали примерно 25-35% страниц книги.



То есть техническая вариативность сводилась к тому, что вы всё равно получали 80% основного сюжета, но просто не всегда линейно и не всегда с одной и той же точки зрения. И автоматизации там не было почти никакой, кроме того, что вы листали страницы.
Читать дальше →

Стандартная модель элементарных частиц для начинающих

Reading time5 min
Views81K
«Мы задаёмся вопросом, почему группа талантливых и преданных своему делу людей готова посвятит жизнь погоне за такими малюсенькими объектами, которые даже невозможно увидеть? На самом деле, в занятиях физиков элементарных частиц проявляется человеческое любопытство и желание узнать, как устроен мир, в котором мы живём» Шон Кэрролл

Если вы всё ещё боитесь фразы квантовая механика и до сих пор не знаете, что такое стандартная модель — добро пожаловать под кат. В своей публикации я попытаюсь максимально просто и наглядно объяснить азы квантового мира, а так же физики элементарных частиц. Мы попробуем разобраться, в чём основные отличия фермионов и бозонов, почему кварки имеют такие странные названия, и наконец, почему все так хотели найти Бозон Хиггса.
Читать дальше →

Технологии ASR и TTS для прикладного программиста: теоретический минимум

Reading time27 min
Views33K

Введение


В последние несколько лет голосовые интерфейсы окружают нас все плотнее. То, что когда-то демонстрировалось только в фильмах о далеком будущем, оказалось вполне реальным. Дело дошло уже до встраивания движков для синтеза (Text To Speech — TTS) и распознавания (Automatic Speech Recognition — ASR) речи в мобильные телефоны. Более того, появились вполне доступные API для встраивания ASR и TTS в приложения.

Ныне создавать программы с голосовым интерфейсом может любой желающий (не поскупившийся заплатить за движок). Наш обзор будет посвящен именно использованию имеющихся движков (на примере Nuance) а не созданию таковых. Также будут даны общие сведения необходимые каждому программисту впервые сталкивающемуся с речевыми интерфейсами. Статья также может быть полезна руководителям проектов, пытающимся оценить целесообразность интеграции голосовых технологий в их продукты.
Итак, начнем…

Но для затравки — анекдот:
Урок русского языка в грузинской школе.
Учитель говорит: «Дети, запомните: слова сол, фасол и вермишел пишутся с мягким знаком, а слова вилька, булька, тарелька – без мягкого знака. Дети, запомните, потому что понять это невозможно!»

Раньше этот анекдот казался мне смешным. Теперь — скорее жизненным. Почему так? Сейчас постараюсь объяснить…
Читать дальше →

Information

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