Как стать автором
Обновить
2
0

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

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

Чем опасен postDelayed

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

Часто из-за особенностей работы android системы и sdk, нам необходимо подождать, когда определённая часть системы будет сконфигурирована или произойдёт какое-то необходимое нам событие. Зачастую это является костылём, но иногда без них никак, особенно в условиях дедлайнов. Поэтому во многих проектах для этого использовался postDelayed. Под катом рассмотрим, чем же он так опасен и что с этим делать.

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

СТО как отражение философского невежества

Время на прочтение12 мин
Количество просмотров5.4K
Виктор Кулигин, Мария Корнева

Аннотация. В статье дан расширенный анализ философских категорий «явление и сущность». Выведено «ЗОЛОТОЕ ПРАВИЛО», позволяющее быстро разграничивать эти категории в научных теориях. Правило позволило проанализировать парадоксы СТО и показать ошибку Эйнштейна при формулировке теории относительности. Эйнштейн, как и большинство физиков, постоянно путал явление и сущность и, как результат, получил ошибочные (парадоксальные) выводы.

1. Введение (о «философиях»)


Физики, как хорошо известно, давно не уважают философию. Академик Ландау считал: «Где начинается философия, там кончается наука!». Обучаясь в ВУЗе «философии» мы полностью разделяли этот афоризм Ландау.

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

  • Это «измы»: идеализм, материализм, позитивизм и др.;
  • это «логии»: онтология, феноменология и т.д.

Необходимо время, чтобы во всем этом разобраться. Мы поступим проще. Очевидно, что не любая система философских направлений и знаний является научной. Отсюда вопрос: какую философскую систему следует признать «научной», а какие отнести к типичным спекулятивным или схоластическим направлениям?
Читать дальше →
Всего голосов 56: ↑0 и ↓56-56
Комментарии63

Корректирующие коды. Начало новой теории кодирования

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

Проблемы информационной безопасности требуют изучения и решения ряда теоретических и практических задач при информационном взаимодействии абонентов систем. В нашей доктрине информационной безопасности формулируется триединая задача обеспечения целостности, конфиденциальности и доступности информации. Представляемые здесь статьи посвящаются рассмотрению конкретных вопросов ее решения в рамках разных государственных систем и подсистем. Ранее автором были рассмотрены в 5 статьях вопросы обеспечения конфиденциальности сообщений средствами государственных стандартов. Общая концепция системы кодирования также приводилась мной ранее.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+6
Комментарии6

Lambda-выражения в Java

Время на прочтение6 мин
Количество просмотров92K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Java Lambda Expressions» автора www.programiz.com.

Введение


В этой статье, с помощью примеров, мы изучим lambda-выражения в Java, их использование с функциональными интерфейсами, параметризированными функциональными интерфейсами и Stream API.

Лямбда выражения были добавлены в Java 8. Их основная цель – повысить читабельность и уменьшить количество кода.

Но, прежде чем перейти к лямбдам, нам необходимо понимать функциональные интерфейсы.
Читать дальше →
Всего голосов 9: ↑2 и ↓7-2
Комментарии6

Вы уверены, что пишете объектно-ориентированный код?

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

Мы, PHP-разработчики, горды тем, что пишем на ООП-языке (можно легко здесь заменить PHP на C#, Java или другой ООП-язык). Каждая вакансия содержит требования про знание ООП. В каждом собеседовании спрашивают что-нибудь про SOLID или трех "китов" ООП. Но когда дело доходит до дела — мы получаем просто классы, наполненные процедурами. ООП проявляется редко, обычно в коде библиотек.


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

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

Редактор кода на Android: часть 1

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

Перед тем как закончить работу над своим редактором кода я много раз наступал на грабли, наверное декомпилировал десятки похожих приложений, и в данной серии статей я расскажу о том чему научился, каких ошибок можно избежать и много других интересных вещей.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+12
Комментарии16

Аллокаторы памяти

Время на прочтение20 мин
Количество просмотров96K
Всем привет! Не так давно, после очень плотного изучения аллокаторов и алгоритмов распределения памяти, а также в последующем применении их на практике мне в голову пришла идея написать статью, в которой будет максимально подробно рассказано о них. Считаю, что данная тема будет достаточно востребованной, так как в сети, особенно в русскоязычной части, на данный момент существует очень мало источников, посвященных этому вопросу.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+37
Комментарии15

«Алгебраические эффекты» человеческим языком

Время на прочтение12 мин
Количество просмотров12K
Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех.

Вы слышали об алгебраических эффектах?


Мои первые попытки выяснить, кто они такие и почему они должны меня волновать, оказались безуспешными. Я нашел несколько PDF-ов, но они еще больше меня запутали. (Я почему-то засыпаю во время чтения академических статей.)


Но мой коллега Себастьян продолжал называть их ментальной моделью некоторых вещей, которые мы делаем в React. (Себастьян работает в команде React и выдвигал немало идей, среди которых Hooks и Suspense.) В какой-то момент это стало локальным мемом в команде React, и многие наши разговоры заканчивались следующим:



Оказалось, что алгебраические эффекты — это крутая концепция, и она не так страшна, как мне вначале показалось после прочтения этих PDF-ов. Если вы просто используете React, вам не нужно ничего о них знать, но если вам, как и мне, интересно, читайте дальше.

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

В чем тайный смысл бесплатных юридических консультаций в интернете?

Время на прочтение9 мин
Количество просмотров89K
Многие пользователи интернета хотя бы раз сталкивались с так называемыми бесплатными консультациями на разных юридических порталах. В чем выгода для юрисконсультов в занятии подобной деятельностью? Являются ли такие консультации экспертными? С этим вопросом я обратился к приятелю-юристу, который поведал массу интересного.

image
Читать дальше →
Всего голосов 57: ↑49 и ↓8+41
Комментарии67

Категории вместо директорий, или Семантическая файловая система для Linux

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

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

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

ScreenLogger – улыбнитесь, вас снимает скрытая камера

Время на прочтение4 мин
Количество просмотров7.7K
Итак, приветствую. В данной статье будет разобран процесс написания программы, позволяющей в режиме реального времени отслеживать все действия происходящие на удаленном компьютере, без ведома конечного пользователя. Автор статьи предупреждает, что не несет ответственности за неправомерное использование нижеизложенных технологий и не рекомендует использовать ее в противоправных целях. Поехали!
Читать дальше →
Всего голосов 43: ↑16 и ↓27-11
Комментарии16

Работа с SurfaceView в Android

Время на прочтение5 мин
Количество просмотров99K
Здравствуйте, Хабравчане!
При работе с 2D графикой в Android отрисовку можно выполнять используя Canvas. Проще всего это сделать с помощью своего класса, унаследованного от View. Необходимо просто описать метод onDraw(), и использовать предоставленный в качестве параметра canvas для выполнения всех необходимых действий. Однако этот подход имеет свои недостатки.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии20

Unity3D tips and tricks 2

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

После невероятного успеха первой части (22 человекам понравилось и было целых 9 комментов, 3 из которых мои) — автор (я) решил написал продолжение повести о захватывающих приключениях в мире Unity3d.

Постарался подобрать свеженькие фишки.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии16

Unity3D tips and tricks

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


Было уже несколько статей подобного плана, где рассказывались разные трюки и приёмы для Unity. Что-то было совсем очевидно и только для новичков, что-то для более продвинутых товарищей. Хочу внести свою скромную лепту.
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии9

Инструкция по публикации Android-приложения в Google Play

Время на прочтение12 мин
Количество просмотров383K
Вслед за инструкцией по публикации приложения в App Store выкладываем внутренний свод правил Лайв Тайпинг по публикации приложений в Google Play, составленный отделом менеджеров при активном участии тимлида отдела Android-разработки Александра Мирко. Вне зависимости от того, насколько ты крутой и опытный проджект-менеджер, всегда есть шанс забыть что-нибудь. Эта инструкция призвана облегчить вам жизнь.

Итак, что нужно сделать PM`y в ходе публикации:

  1. Создать аккаунт в Google Play Developer Console для заказчика, если у заказчика такового нет, или предложить произвести публикацию с нашего аккаунта.
  2. Оформить privacy policy.
  3. Подготовить маркетинговые материалы (иконка, скриншоты, APK, баннер, текст, проморолик).
  4. Обеспечить сборку наличием сертификата цифровой подписи.
  5. Настроить оплату за пользование приложения.
  6. Отправить сборку в Google Play.

Все подробности — под катом.

UPD от 25.04.2017: добавлены разделы про альфа- и бета-тестирование и поэтапное внедрение, дополнены разделы «Обеспечение сборки наличием цифровой подписи» и «Технические требования к apk-файлу», сделано замечание про ASO и внесены косметические правки.


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

Шаблоны проектирования с человеческим лицом

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

image


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


Как сказано в Википедии:


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

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

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

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

Android. Автозапуск приложения при загрузке: теория и практика

Время на прочтение7 мин
Количество просмотров96K
Простой поиск на stackoverflow.com показывает, что тема получения сообщения ACTION_BOOT_COMPLETED остается актуальной и по сей день. Как видно, многие новички сталкиваются с проблемой: они не получают в своих приложениях сообщение ACTION_BOOT_COMPLETED. В этой статья я попробую резюмировать данные из официальной документации, опыт многих разработчиков из stackoverflow.com, а также свой опыт. Итак, как же победить этого «коварного врага» под названием «ACTION_BOOT_COMPLETED»?
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии7

Борьба с утечками памяти в Android. Часть 1

Время на прочтение6 мин
Количество просмотров49K
Этой статьей мы открываем цикл статей на Хабре о нашей разработке под Android.
Согласно докладу компании Crittercism от 2012 года, OutOfMemoryError — вторая по распространенности причина «крашей» мобильных приложений.
Честно говоря, и в Badoo эта ошибка была в топе всех крашей (что неудивительно при том объеме фотографий, которые просматривают наши пользователи). Борьба с OutOfMemory — занятие кропотливое. Мы взяли в руки Allocation Tracker и начали играться с приложением. Наблюдая за данными зарезервированной памяти, мы выявили несколько сценариев, при которых выделение памяти росло с подозрительной стремительностью, забывая при этом уменьшаться. Вооружившись несколькими дампами памяти после этих сценариев, мы проанализировали их в MAT (http://www.eclipse.org/mat/).
Результат был занимательный и позволил нам в течение нескольких недель снизить количество крашей в разы. Что-то было специфично для нашего кода, но также выявились типичные проблемы, присущие большинству Android приложений.
Сегодня поговорим о конкретном случае утечки памяти. О нем многие знают, но часто закрывают на это глаза (а зря).
Читать дальше →
Всего голосов 59: ↑55 и ↓4+51
Комментарии18

Сверхбыстрое распознавание речи без серверов на реальном примере

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

В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
К статье я также прилагаю все исходники программы и саму сборку под Android.

Прикручиваем Pocketsphinx к своему Андроиду
Всего голосов 185: ↑182 и ↓3+179
Комментарии87

25+ видеоуроков по Android для начинающих

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

Приветствую вас, уважаемый хабрачеловек!
Предлагаю вашему вниманию бесплатно серияю видеоуроков в котрых рассмотренно базовые понятия разработки под Android.
Читать дальше →
Всего голосов 111: ↑108 и ↓3+105
Комментарии33

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность