Как стать автором
Обновить
8
0
Alex Kisel @ziginsider

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

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

Спасибо Хабру, и новые возможности в постах пользователей

Время на прочтение 2 мин
Количество просмотров 1.3K
Уже около года я в одиночку работаю над своим небольшим, бесплатным и открытым для всех аудио проектом TheOutloud, о котором делал несколько постов ранее. Напомню, что суть его в том, что каждый пользователь может записать любительский подкаст или озвучить статью даже на диктофон телефона и поделиться треком на портале. Я стремлюсь к тому, чтобы создать нечто похожее на Youtube, только для аудио, где пользователи могли бы делиться своими аудио, искать интересные записи и статьи, слушать новости и многое другое.

image
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 17

О чем все-таки говорит developer.android.com про RecyclerView

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

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


Начнем с самого начала. Полностью согласен, что "между жизненным циклом активности и работой RecyclerView есть нечто общее" – это "нечто" – необходимость понимать, что мы делаем и зачем. И читать документацию. А невыполнение этих двух необходимостей, как и сон разума, рождает монстров. Только вот с тем, как предлагает с этими монстрами бороться предыдущий автор, я категорически не согласен.

А почему?
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 8

Dagger 2. Часть третья. Новые грани возможного

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

Всем привет! Наконец-то подоспела третья часть цикла статей о Dagger 2!


Перед дальнейшим прочтением настоятельно рекомендую ознакомиться с первой и второй частями.


Большое спасибо за отзывы и комментарии. Я очень рад, что мои статьи действительно помогают разработчикам окунуться в мир Даггера. Именно это и придает силы творить для вас дальше.
В третьей части мы с вами рассмотрим различные интересные и немаловажные фичи библиотеки, которые могут вам очень пригодиться.


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


Есть, конечно, моменты, которые расписаны более-менее. Но вот всякие новые фичи описаны так, что мне приходилось методом проб и ошибок, залезая в сгенерированный код, самому разбираться, как оно все работает. Благо хорошие люди пишут хорошие статьи, но даже иногда они не дают четкого и ясного ответа сразу.


Итак, хватит разглагольствовать, и вперед к новым знаниям!

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

Марвин Мински «The Emotion Machine»: Глава 5 «Рефлексивное мышление, самоанализ, рефлексия»

Время на прочтение 11 мин
Количество просмотров 3.8K
Как привнести «человеческое» в технологии и как технологии помогают понять и улучшить и масштабировать «человеческое»?

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

image


§5-4. Рефлексивное Мышление


Я собирался повторить псалом, который знаю. Прежде чем я начал, моё внимание было сосредоточено на цельной картине, но как только я начал говорить и отдаляться от начала разговора и данный момент начал растягиваться в памяти. Моё действие разделилось на память, которая содержала ту часть, которую я сказал, и ожидания, которые содержали то, что я собираюсь сказать далее. Тем не менее моё внимание всё время находилось со мной в настоящем, и через него я переносил будущее, которое тут же становилось прошлым.
– Августин в Исповеди XXVIII (Confessions XXVIII)

image


Когда Джоан впервые увидела приближающуюся машину – эта ситуация полностью захватила её внимание, но после этого, когда у неё появилось время подумать, она могла вспомнить, что недавно сделала и задуматься о недавних решениях и действиях, таким образом,

Джоан рефлексивно обдумывает своё поспешное решение.

Для того чтобы она могла это сделать, Джоан должна вспомнить некоторые аспекты её прошлых мыслей, используя трюк подобный перемещению во времени, и вспомнить о чем она тогда думала. Но как она может это сделать? С точки зрения здравого смысла в этом действии нет никаких проблем: стоит попросту вспомнить эти мысли, а затем «продумать» их вновь. Но когда мы спрашиваем, как конкретно это может работать, мы понимаем, что нам необходимо определённого рода механизм, наподобие обсуждаемого в §4-8, в котором ресурсы на каждом уровне записывают то, чем занимались нижележащие уровни в конкретное время.

image

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

Как заработать свои первые 100$ в Google Play Market — мой опыт

Время на прочтение 4 мин
Количество просмотров 222K
В этой статье я расскажу, как мне удалось заработать первые 100$ на моих приложениях в Google Play Market. Какие стратегии более успешные и на что стоит обратить внимание новичку.
Читать дальше →
Всего голосов 40: ↑34 и ↓6 +28
Комментарии 52

Как я (пере)делал «рогалик» за неделю

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

Неделя с 4 по 11 марта была просто безумной.

Всё было не так плохо, как я ожидал, исходя из своего опыта 2012 года (на этот раз мне на самом деле удавалось спать по добрых 7-8 часов за ночь!), скорее всего, потому, что я стал гораздо более опытным, чем тогда, и имел в своём распоряжении гораздо больше инструментов. Желание создать что-то потрясающее заставило меня потратить более 80* часов работы на POLYBOT-7, мою игру для Seven-Day Roguelike Challenge этого года. (*Это только за неделю, сюда не включено время на подготовку перед 7DRL !)

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

Иногда этот проект был тяжеловат для меня, потому что годы «нормальной» работы над roguelike приучили меня записывать абсолютно всё, что я делаю или планирую, а также долго думать в поисках наилучшего решения. Мне пришлось преодолеть эту привычку и просто работать — не писать о работе, а делать её прямо сейчас! Мне приходилось напоминать себе об этом всю неделю.

Эта статья является подробным постмортемом, описывающим разработку POLYBOT-7. В ней рассматривается как весь процесс в целом, так и размышления, которыми я руководствовался, принимая решения.
Читать дальше →
Всего голосов 38: ↑36 и ↓2 +34
Комментарии 5

Android Support Library 28. Что нового?

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


По давней традиции вместе с новой версией Android выходит обновление Support Library. Пока библиотека вышла в стадии альфа, но список изменений уже намного интереснее, чем такой же список у Android P. Google несправедливо мало рассказал и написал об основных нововведениях главной библиотеки для Android. Приходится читать исходники и разбираться, в чем особенности новых фич и зачем они нужны. Восстановлю справедливость и расскажу, чем нас порадовал Google:

  • RecyclerView selection — выбор элементов теперь из коробки;
  • Slices — новый способ отображать контент другого приложения;
  • новые элементы дизайна: BottomAppBar, ChipGroup и другие;
  • мелкие изменения одной строкой.
Читать дальше →
Всего голосов 37: ↑37 и ↓0 +37
Комментарии 22

Юнит тесты при использовании корутин в Android приложении

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

image


Перевод статьи. Оригинал находится здесь.


В этой статье не рассматривается принцип работы корутин. Если вы не знакомы с ними, то рекомендуем прочитать введение в kotlinx git repo.


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

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

Работа с ConstraintLayout через XML-разметку

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

ConstraintLayout


Привет! Меня зовут Гавриил, я Android-лид Touch Instinct.


В марте Google выкатил релизное обновление ConstraintLayout. Презентовали его еще на прошлом Google I/O. С того момента прошел почти год, ConstraintLayout стал лучше, быстрее и оброс новыми возможностями. Например, приятно, что появилась возможность объединения элементов в цепи — это позволяет использовать ConstraintLayout вместо LinearLayout.


О всех новых и старых возможностях ConstraintLayout я и постараюсь рассказать в этой статье. Предупрежу сразу — статья будет длинная и других семи частей не будет. Про визуальный редактор ConstraintLayout в статье не будет ни слова — только XML-разметка (по старинке) и немного кода.

Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 6

Коллекции в Java: о чём многие забывают

Время на прочтение 6 мин
Количество просмотров 141K
Из опыта code-review и ответов на StackOverflow набралось немало моментов, касающихся Java Collections API, которые мне казались очевидными, но другие разработчики о них почему-то не знали или знали, но не чувствовали уверенности их применять. В этой статье я собираю в общую кучу всё, что накопилось.

Содержание:


  1. List.subList
  2. PriorityQueue
  3. EnumSet и EnumMap
  4. Set.add(E) и Set.remove(E) возвращают булево значение
  5. Map.put(K, V), Map.remove(K), List.set(idx, E), List.remove(idx) возвращают предыдущий элемент
  6. Map.keySet() и Map.values()
  7. Arrays.asList может быть ключом
  8. Collections.max
  9. LinkedList, Stack, Vector, Hashtable
Читать дальше →
Всего голосов 58: ↑57 и ↓1 +56
Комментарии 37

Как работает реляционная БД

Время на прочтение 51 мин
Количество просмотров 534K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Всего голосов 232: ↑229 и ↓3 +226
Комментарии 134

Ричард Хэмминг: Глава 28. Системная Инженерия

Время на прочтение 17 мин
Количество просмотров 25K
Первое правило системной инженерии: «Если оптимизировать компоненты, то, вероятнее всего, производительность системы будет испорчена.»

imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2146 в закладки, 339k прочтений)?

Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Давайте ее переведем, ведь мужик дело говорит.

Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

Мы уже перевели 4 главы.

Глава 28. Системная Инженерия


(За перевод спасибо Юлии Перуновской, которая откликнулась на мой призыв в «предыдущей главе».) Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru

Иносказание зачастую является более эффективным, чем прямое утверждение, поэтому позвольте мне начать с притчи. Человек смотрел, как строят собор. Он спросил у каменщика, зачем он обтачивает камни, и каменщик ответил «Я делаю камни». Он спросил у каменного резчика, что тот делает, «Я вырезаю горгулью». И так он расспрашивал каждого, и все рассказывали в деталях, чем они занимались. В конце он подошел к старой женщине, которая подметала территорию. Она сказала «Я помогаю построить собор».

Если бы в обычном кампусе вы решили опросить некоторую выборку профессоров о том, что они собираются делать в следующий академический час, то услышали бы, что они будут: «преподавать наипростейшие дроби», «показывать, как найти момент нормального распределения», «объяснять модуль упругости и его измерение» и т.д. Я сомневаюсь, что вы бы часто слышали от профессора фразу «Я собираюсь обучить студентов и подготовить их к будущей карьере».
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 3

Шпаргалки Java программиста 9: Java SE — Шпаргалка для собеседований и повторений

Время на прочтение 32 мин
Количество просмотров 135K
Данная статья в первую очередь предназначена для подготовки к собеседованиям на позицию Java разработчика (на самом деле, это шпаргалка, которую я писал для себя в течении многих лет, и повторяю при каждом новом поиске работы).

Предполагается. что вы знакомы с многими функциями из Java SE, поэтому в основном информация дается кратко. Конечно, можно использовать эту статью и просто для обучения основам Java SE платформы (но в этом случае, после чтения статьи вам скорее всего придется обратиться к другим источникам).

image

Итак, вы пытаетесь вспомнить все, что знаете перед собеседованием и не важно сколько лет опыта, без подготовки вас все равно могут поймать на том вопросе, который вы вроде бы помнили, но именно на собеседовании забыли. Это шпаргалка позволит вам освежить некоторые из ваших знаний.

Внимание: я не буду касаться вопросов по самому языку Java (вроде для чего нужно слово final или чем overriding отличается от overloading), это потребует отдельной статьи, это вопросы именно по Java SE (6-9) платформе.
Читать дальше →
Всего голосов 30: ↑28 и ↓2 +26
Комментарии 10

Несколько книг для начинающего и продолжающего разработчика под Android

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

Android books


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


Под катом небольшой обзор восьми книг. Темы следующие:


  1. RxJava
  2. Потоки в Android
  3. Разработка под Android на Java
  4. Kotlin. Обзор языка
  5. Kotlin. Практика
  6. Kotlin. Обзор языка с уклоном на Android
  7. Разработка под Android на Kotlin
  8. Rx в Kotlin
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 10

Видео Google Device Day

Время на прочтение 1 мин
Количество просмотров 3.9K
Мы рады сообщить, что опубликовали на нашем YouTube канале недавно записанные для разработчиков про разработку под устройства на основе технологий Google.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 1

Исследуем RxJava 2 для Android

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

enter image description here


Меня зовут Аркадий, я Android-разработчик в Badoo. В последнее время в нашем блоге много постов про Go, PHP, JS, QA, и я решил разбавить их темами по мобильной разработке. Как раз занимался портированием одного Android-проекта с RxJava 1 на RxJava 2 и читал всё, что можно найти на эту тему в интернете. В частности, доклад Джейка Вортона с конференции GOTO Copenhagen 2016. Мне показалось, что это достойный кандидат на перевод – думаю, многие Android-разработчики задумываются о переходе на RxJava 2, и им интересно, что изменилось по сравнению с первой версией.


Джейк сделал достаточно объёмное введение о реактивном программировании, так что знание RxJava 1 не требуется для понимания статьи. Доклад был подготовлен, когда RxJava2 ещё только готовилась к выпуску (на текущий момент уже выпущена версия 2.1.0).

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

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

Время на прочтение 10 мин
Количество просмотров 35K
magicМетапрограммирование — вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы (в частности, на стадии компиляции их исходного кода), либо программ, которые меняют себя во время выполнения.

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

О возможностях, которые открывает эта спецификация мы поговорим чуть позже (будет мнооого кода), а сперва, не хотите ли поговорить о компиляции Java кода?
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 17

Думаешь, ты знаешь Си?

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

Многие программисты утверждают, что знают С. Ну что ж, у него самый известный синтаксис, он существует уже 44 года и он не захламлен непонятными функциями. Он прост!

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

Если вы думаете что он прост — пройдите этот тест. В нем всего 5 вопросов. Каждый вопрос в принципе одинаковый: какое будет значение возврата?
Всего голосов 60: ↑44 и ↓16 +28
Комментарии 270

Информация

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