Pull to refresh
0
0
Send message

Причины возникновения ANR и как этого избежать

Reading time4 min
Views32K
ANR (Application Not Responding) — ошибка, которая возникает, когда приложение не отвечает. В итоге открывается диалоговое окно, предлагающее пользователю подождать или закрыть приложение.
image alt

Условия возникновения ANR


  • Входные события (кнопки и сенсорные события) не обрабатываются в течение 5 секунд;
  • BroadcastReceiver (onRecieve()) не был обработан в течение указанного времени (foreground — 10 с, background — 60 с);
  • ContentProvider не завершен в течение 10 секунд.

Обычно основной поток блокируется.

Если вы читали мои статьи, то наверно уже привыкли к тому, что мы лезет в исходный код. Так что давайте посмотрим как выглядит ANR под капотом.

Класс AppErrors занимается обработкой не только ANR, но и других ошибок, которые могут возникнуть в приложении, включая crash. Метод handleShowAnrUi() как раз и открывает это страшное для многих разработчиков и пользователей окно, отображающее ANR.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments0

Послание будущему программисту

Reading time8 min
Views73K

Итак, вы решили стать программистом.


Возможно, вам интересно создавать что-то новое.


Возможно, вас манят большие зарплаты.


Быть может, вы просто хотите сменить сферу деятельности.


Не суть.


Важно — вы решили стать программистом.


Что же теперь делать?


КДПВ

Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments160

Самые интересные яды

Reading time23 min
Views121K

Привет, %username%!

Снова вечер, снова мне нечего делать, и я решил потратить немного времени, чтобы написать третью часть своего цикла о ядах. Надеюсь, ты читал первую и вторую часть, и тебе понравилось.

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

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

Итак, снова моя смертельная десятка! Поехали.
Читать дальше →
Total votes 233: ↑221 and ↓12+209
Comments197

Роскачество представило рейтинг проводных и беспроводных наушников, доступных в России

Reading time3 min
Views23K

Лидер рейтинга беспроводных наушников: Sony WH-1000XM2

Роскачество совместно с Международной ассамблеей организаций потребительских испытаний (ICRT) провели развернутое исследование разных моделей наушников из самых разных ценовых категорий. По итогам исследования составлен рейтинг лучших устройств, которые доступны для российских покупателей.

Всего специалисты изучили 93 пары проводных и 84 пары беспроводных наушников разных брендов (при этом профессиональные студийные модели не тестировались). Все модели проверялись по таким параметрам, как качество системы передачи звукового сигнала, прочность наушников, функциональность, качество звучания и удобство в использовании.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments56

Законопроект об «устойчивой работе» Рунета — что делать до второго чтения?

Reading time2 min
Views54K
Пост с новостью о том, что Госдума в первом чтении приняла законопроект № 608767-7 «О внесении изменений в некоторые законодательные акты Российской Федерации» (в части обеспечения безопасного и устойчивого функционирования сети «Интернет» на территории Российской Федерации) собрал свои ожидаемые сотни комментариев. Что дальше?


Политолог Екатерина Шульман объясняет (1) (2):
«Первое чтение, как мы уже многократно тут говорили, это только здрасьте. Как сказано в фильме «Мумия», смерть — это только начало.
Читать дальше →
Total votes 95: ↑84 and ↓11+73
Comments402

Руководство по Kubernetes, часть 1: приложения, микросервисы и контейнеры

Reading time16 min
Views170K
По нашей просьбе Хабр создал хаб Kubernetes и нам приятно разместить первую публикацию в нём. Подписывайтесь!

Kubernetes — это просто. Почему же банки платят мне за работу в этой сфере большие деньги, в то время как любой может освоить эту технологию буквально за несколько часов?


Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments18

Размер Java объектов

Reading time5 min
Views191K
Знаете сколько в памяти занимает строка? Каких только я не слышал ответов на этот вопрос, начиная от «не знаю» до «2 байта * количество символов в строке». А сколько тогда занимает пустая строка? А знаете сколько занимает объект класса Integer? А сколько будет занимать Ваш собственный объект класса с тремя Integer полями? Забавно, но ни один мой знакомый Java программист не смог ответить на эти вопросы… Да, большинству из нас это вообще не нужно и никто в реальных java проектах не будет об этом думать. Но это, ведь, как не знать объем двигателя машины на которой Вы ездите. Вы можете быть прекрасным водителем и даже не подозревать о том, что значат цифры 2.4 или 1.6 на вашей машине. Но я уверен, что найдется мало людей, которые не знакомы со значением этих цифр. Так почему же java программисты так мало знают об этой части своего инструмента?

Integer vs int

Все мы знаем, что в java — everything is an object. Кроме, пожалуй, примитивов и ссылок на сами объекты. Давайте рассмотрим две типичных ситуации:
//первый случай
int a = 300;
//второй случай
Integer b = 301;

В этих простых строках разница просто огромна, как для JVM так и для ООП. В первом случае, все что у нас есть — это 4-х байтная переменная, которая содержит значение из стека. Во втором случае у нас есть ссылочная переменная и сам объект, на который эта переменная ссылается. Следовательно, если в первом случае мы определено знаем, что занимаемый размер равен:
sizeOf(int)

то во втором:
sizeOf(reference) + sizeOf(Integer)

Забегая вперед скажу — во втором случае количество потребляемой памяти приблизительно в 5 раз больше и зависит от JVM. А теперь давайте разберемся, почему разница настолько огромна.

Из чего же состоит объект?

Прежде чем определять объем потребляемой памяти, следует разобраться, что же JVM хранит для каждого объекта:
  • Заголовок объекта;
  • Память для примитивных типов;
  • Память для ссылочных типов;
  • Смещение/выравнивание — по сути, это несколько неиспользуемых байт, что размещаются после данных самого объекта. Это сделано для того, чтобы адрес в памяти всегда был кратным машинному слову, для ускорения чтения из памяти + уменьшения количества бит для указателя на объект + предположительно для уменьшения фрагментации памяти. Стоит также отметить, что в java размер любого объекта кратен 8 байтам!

Читать дальше →
Total votes 118: ↑107 and ↓11+96
Comments39

Так устроен поиск заимствований в Антиплагиате

Reading time11 min
Views45K
Мы уже рассказывали вам об интересных статистиках текстов, делали обзор статей применений автокодировщиков в анализе текстов, удивляли нашими свежими алгоритмами поиска переводных заимствований и парафраза. Я решил продолжить нашу корпоративную традицию и, во-первых, начать статью с «Т», а во-вторых, рассказать:

  • как быстро найти абзац текста среди сотен миллионов статей;
  • во что превращается документ после загрузки в систему Антиплагиат, и что с этим делать дальше;
  • как формируется отчет, который почти никто не смотрит, а стоило бы;
  • как проиндексировать не все, но достаточно.


Антиплагиат в естественной среде, полетели
Total votes 29: ↑28 and ↓1+27
Comments31

Советы студентам-программистам

Reading time7 min
Views37K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Advice for programming students".

Есть много вещей, которые я хотел бы знать, когда я начал свое путешествие в качестве студента-программиста. С тех пор прошло почти 10 лет, и, к сожалению, я не могу поделиться своим опытом и знаниями с моим прошлым «я», только с моими младшими коллегами. Этот пост состоит из некоторых полезных советов, которые я хотел бы услышать, когда мне было 18 лет.
Читать дальше →
Total votes 31: ↑25 and ↓6+19
Comments38

11 важных вещей, которые нужно знать про DevOps — часть первая

Reading time9 min
Views303K

От переводчика


В 2009 года за рубежом возникло движение, которое назвало себя DevOps. На первый взгляд это разработчики с навыками сисадминов и сисадмины с навыками разработчиков. Но на самом деле это отнюдь не так. Данное подход имеет четкие цели, философию, инструменты и методы, которые только некоторые русскоязычные компании начинают использовать. Мне кажется, что данный подход у нас незаслуженно игнорируется и мне хотелось бы рассказать об 11 вещах, которые нужно знать о DevOps, в частности:
  • что такое DevOps
  • каковы его ценности
  • как он внедряется
  • кому он приносит пользу

Надеюсь, этот текст вам понравится.

Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments11

Уроки космических катастроф

Reading time17 min
Views312K

Конец января — траурное время для NASA. Их катастрофы очень «кучно» пришлись на конец января-начало февраля. За всю историю освоения космоса произошло пять космических катастроф, в них погиб двадцать один человек. И самое печальное в этих катастрофах то, что их всех могло бы и не быть. Ни одна из них не произошла из-за действия непреодолимой внешней силы, случайности или вины экипажа.
Читать дальше →
Total votes 430: ↑427 and ↓3+424
Comments121

Work and travel — глупо, бесполезно, унизительно?

Reading time8 min
Views106K
Принятие решения занимает какую-то секунду, осуществление – чуть более, у меня заняло около 48 часов. Однако осмысление сделанного – куда более сложная задача. Такой и была поездка по программе Ворк энд трэвел в штаты.
image
Принятие решения на участие в программе было и на самом деле секундным делом, поговорил с другом, который учится в Дубае, и мы решили «Почему бы и нет». Грандиозных планов на лето у меня не было. И я сразу же позвонил в фирму «Х» и отвез загранпаспорт и фотки.
Для участия в программе не нужно никаких сверхъестественных знаний английского, посещение медицинских осмотров и даже не пришлось ехать в военкомат за справкой об отсрочке. Требовалось лишь взять справку из университета, подтверждающую, что я студент, и подписать бумагу на участие в программе, которую подписали в деканате без проблем. Еще требовалось написать свое резюме, но оно составляется на основе уже готовых «рыб», так что и это не проблема.
Читать дальше →
Total votes 215: ↑186 and ↓29+157
Comments207

Security Week 32: Fortnite-Android-драма

Reading time4 min
Views3.9K
Тот ловкий момент, когда ты написал пророческий дайджест. В прошлом выпуске речь шла о рисках безопасности в Android, в частности об уязвимостях типа Man-in-the-disk, а также о неспортивном (все ради денег) поведении компании Epic Games, отказавшейся размещать игру Fortnite в магазине Google Play. 25 августа пасьянс сошелся: Google с ее магазином, Epic Games с ее бета-версией Fortnite и даже man-in-the-disk-уязвимость вступили в интимную связь, породив среднего размера скандальчик.


Изначально речь шла о том, что технически неподкованные игроки в Fortnite, не найдя Android-версию в официальном магазине Google Play Store, пойдут искать ее куда-нибудь еще и установят на смартфон что-нибудь не то. Если сейчас со смартфона зайти в аппстор и поискать там Fortnite, Google даже покажет вам специальное сообщение, как на картинке наверху, чтобы вы не ставили из магазина приложения-клоны. Но, как выяснилось, инсталлятор Fortnite сам по себе уязвим — по сценарию не то чтобы совсем ужасному, но все же.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments0

Как подготовиться к собеседованию в Google и не пройти его. Дважды

Reading time15 min
Views130K


Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В этой же статье я расскажу о трех вещах: каким образом проходил мой процесс подготовки, каким образом проходили интервью в Google и почему же на мой взгляд все не так однозначно, как может показаться.
Кому интересно, прошу под кат.
Total votes 178: ↑174 and ↓4+170
Comments457

Войти в АйТи

Reading time5 min
Views60K

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


Включаем музычку и поехали.


Читать дальше →
Total votes 107: ↑73 and ↓34+39
Comments170

О работе в Германии

Reading time12 min
Views72K
В этой статье я расскажу о том как собственно работается в Германии, какие коллеги попадаются, какие комбинации проворачивают немецкие корпорации, для грамотного распиливания бабла. Комбинаций, которым многим нашим чиновникам стоило бы поучиться.

К сожалению я никогда не работал на маленьких фирмах, поэтому будем считать, что все это относится к большим компаниям. О себе могу сказать лишь то, что я работал уже на 6-ти различных AG и прошел в Германии абсолютно все стадии эволюции: полугодовая практика на Daimler, работа Werkstudent’ом(Студенческая работа программистом), Junior, Middle, Senior.

Также, когда закончится вода, я расскажу о реальных зарплатах, ожиданиях, а также затрону тему мусора, которое льется из многих статей и видео, о работе программистом в германии. Большинство из того что вы можете увидеть и найти на youtube о работе разработчиком в Германии это рассказы людей, которые или пару лет находятся здесь, или вообще здесь никогда не были, или просто находятся в каком-то сказочном неадеквате.

А начну я с коллег которые вам будут встречаться везде — легкие русофобы.
Читать дальше →
Total votes 99: ↑65 and ↓34+31
Comments459

Этимология IT-терминов

Reading time5 min
Views19K
IT-индустрия зародилась в Америке, и мы все знаем, что термины из этой сферы пришли в русский язык из английского. Это вполне естественно, равно как и то, что английские слова подстроились под правила русского языка: to code стало «кодить», bug report начал склоняться (баг-репортами, баг-репортом и т.д.), а глагол to google, новый даже для английского языка, у нас превратился в «гуглить», «нагуглить», «погуглить» и «загуглить» (со сменой по числу, лицу и времени). Но какое отношение cookie имеет к печенькам, и почему Macintosh никак не связан с непромокаемым плащом знают немногие. А вы знакомы с этимологией IT-терминов?

image
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments55

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

Reading time8 min
Views70K

Android books


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


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


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

«Жизнь после Java 10»: какие изменения принесет Java 11

Reading time4 min
Views28K
Буквально недавно, в конце марта, вышел Java 10. Но в связи с тем, что компания Oracle внесла изменения в релизный цикл (новый релиз каждые полгода), к выходу готовится 11-я версия.

Запуск намечен на сентябрь 2018-го. Мы предлагаем взглянуть на некоторые из грядущих обновлений, о которых известно на сегодняшний день.

Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments37

Стажировка для атипичных программистов

Reading time6 min
Views11K
Стажировки для студентов есть во многих IT-компаниях (Nexign — ранее «Петер-Сервис» — не исключение). Само собой очевидно, что большинство стажёров рассчитывает на дальнейшее трудоустройство в штат. Но как представляют себе дальнейшую работу будущие IT-профи и насколько эти представления совпадают с ожиданиями компании — и современной действительностью?

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

Так как же выглядит айтишник, который нужен нам здесь и сейчас?

image
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments8

Information

Rating
Does not participate
Registered
Activity