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

Android Developer

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

Выжимаем максимум из учета компьютерной техники. Часть 1

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

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

Сразу хочу предупредить, что все изложенное ниже это не вычитанный в книгах best practice, а выжимка моего, порой не всегда удачного опыта. Поэтому с благодарностью приму конструктивную критику.

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

Обратная маска

Время на прочтение7 мин
Количество просмотров139K
Существующая маска для IP адреса выросла из классового деления адресов, на заре эпохи IP:
Класс A: 8 бит для номера сети 24 бита для номера хоста
Класс B: 16 бит на сеть и 16 бит на хост
Класс C: 24 бита на сеть 8 бит на хост

Когда стало слишком расточительным делить адреса подобным образом появилась маска, представляющая собой 32-х битное (из стольких же бит состоит и IP адрес) поле из подряд идущих единиц с начала поля, и после подряд идущих нулей. Единицы определяют те биты в IP адресе которые формируют номер сети, нули те биты в адресе которые формируют номер хоста.
IP адрес, десятичное:     10.      10.       0.       1
IP адрес, двоичное: 00001010.00001010.00000000.00000001
Маска, двоичное:    11111111.11111111.11111100.00000000
Маска, десятичное:       255.     255.     252.       0

Представление маски подобным образом, вполне, соотносится с термином битовой маски, т.е. единицы и нули определяют действия над конкретными битами в исходном числе, но плохо соотносится с форматом IP адреса – номер сети всегда определяется битами вначале, номер хоста битами в конце. Поэтому представление маски в виде 32-х битного поля является избыточным. Для однозначного определения маски можно определить только количество подряд идущих единиц с начала IP адреса от 0 до 32 – префиксное обозначение, обычно записывается через дробь после IP адреса: для примера выше 10.10.0.1/22 – 22 бита номер сети и 32-22=10 бит номер хоста. Если говорит про IPv6 адрес, то там определяется только префиксная запись маски/адреса – 2001:d8:a15e::1/48
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии21

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

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

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

Тестирование в Java. JUnit

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

Сегодня все большую популярность приобретает test-driven development(TDD), техника разработки ПО, при которой сначала пишется тест на определенный функционал, а затем пишется реализация этого функционала. На практике все, конечно же, не настолько идеально, но в результате код не только написан и протестирован, но тесты как бы неявно задают требования к функционалу, а также показывают пример использования этого функционала.

Итак, техника довольно понятна, но встает вопрос, что использовать для написания этих самых тестов? В этой и других статьях я хотел бы поделиться своим опытом в использовании различных инструментов и техник для тестирования кода в Java.

Ну и начну с, пожалуй, самого известного, а потому и самого используемого фреймворка для тестирования — JUnit. Используется он в двух вариантах JUnit 3 и JUnit 4. Рассмотрю обе версии, так как в старых проектах до сих пор используется 3-я, которая поддерживает Java 1.4.

Я не претендую на автора каких-либо оригинальных идей, и возможно многим все, о чем будет рассказано в статье, знакомо. Но если вам все еще интересно, то добро пожаловать под кат.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии34

Практика написания тестов. Лекция Яндекса

Время на прочтение33 мин
Количество просмотров82K
С праздниками, друзья! Если вы не против научиться на каникулах чему-то новому, прочитайте лекцию Кирилла Борисова — разработчика систем авторизации Яндекса. Кирилл объясняет, как построить процесс тестирования Android-приложений, знакомит с современными инструментами и спецификой их использования.


— Прежде чем двинуться вперед, давайте устроим небольшой соцопрос. Кто из вас знает, что такое тесты? Кто пишет тесты? А кто знает, зачем он пишет тесты?
Всего голосов 38: ↑38 и ↓0+38
Комментарии24

Принцип Анны Карениной в программировании и ИТ

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

«Принципу Анны Карениной» посвящено немало научных публикаций и даже отдельная статья в Википедии. Применим к ИТ и программированию? А может он уже работает против вашего проекта?
Читать дальше →
Всего голосов 39: ↑32 и ↓7+25
Комментарии51

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

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

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

image

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

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

Позвоночник гика, или Матрас, на котором мы спим, не менее важен, чем кресло, в котором мы работаем

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

На Хабре тема правильного рабочего стола и кресла поднималась неоднократно. Так как нам, программистам, приходится много сидеть в течение рабочего дня, спина рано или поздно дает о себе знать, и с годами оказывается мало заботиться о ней только днем. Вы часто употребляете фразу "утром добрым не бывает?" Хватит это терпеть! Мой текст написан для вас. Матрас, на котором мы спим, не менее важен, чем кресло, в котором мы работаем.



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

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

Советы по созданию современного Android-приложения. Лекция Яндекса

Время на прочтение18 мин
Количество просмотров25K
Мы продолжаем публиковать материалы Школы мобильной разработки 2017 года. На очереди — большая лекция Android-разработчика Дмитрия Никитина из команды Яндекс.Почты. Дмитрий рассказывает, как подойти к созданию проекта с нуля, не потеряться среди множества библиотек и на что обратить внимание при выборе того или иного решения.


— Все вы как минимум пару месяцев программируете под Android. Возможно, кто-то программирует пару лет и уже от корки до корки прочитал developer.android.com. А возможно, нет. Но вы все наверняка знаете, как можно сделать многие вещи как минимум одним из способов. Но не секрет, что этих способов может быть много, у каждой команды они могут быть свои, и часто тот или иной способ выбран исключительно по историческим причинам.

Сегодня я хочу сделать небольшой обзор того, какие вообще есть альтернативы и средства разработки и на чем стоит акцентировать внимание при выборе той или иной библиотеки.
Всего голосов 47: ↑42 и ↓5+37
Комментарии0

Еще раз про IP-адреса, маски подсетей и вообще

Время на прочтение7 мин
Количество просмотров1.5M
Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
232 = 210*210*210*22 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.


Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.
Читать дальше →
Всего голосов 286: ↑261 и ↓25+236
Комментарии204

Каверзные сетевые вопросы

Время на прочтение14 мин
Количество просмотров227K
Давно была идея собрать воедино интересные вопросы, касающиеся сетей.

Объединяет их то, что все они довольно простые, но мы подчас о них не задумываемся (я во всяком случае о них не задумывался).
В общем я их собрал, подбил, нашёл ответы.
Итак, блиц опрос:

Начнём с самых низких уровней и с самых простых вопросов



В1. Почему для витой пары выбран такой странный порядок: синяя пара на 4-5, разрывая зелёную, которая на 3, 6?




Ответ
О1: Сделано это в угоду двухконтактному телефонному разъёму. Таким образом, например, в патч-панель можно вставить как телефонный кабель, так и витую пару.
Можно даже через один кабель вывести и сеть и телефонию, но я вам этого не говорил!

habrahabr.ru/post/158177.


В2. В стандарте Ethernet между кадрами всегда имеется промежуток, называемый IFG (Inter Frame Gap) длиною 12 байтов. Для чего он нужен, и почему он присутствует в современных стандартах?

Читать дальше →
Всего голосов 166: ↑153 и ↓13+140
Комментарии209

Советы по чистому коду новичкам в Java/Android

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

Теме чистого кода на одном только habrahabr посвящено тысячи статей. Никогда бы не подумал, что захочу написать свою. Но после проведения компанией курсов для желающих связать карьеру с разработкой ПО, в частности разрабатывать под Android, мое мнение поменялось.


За основу статьи взяты советы из классики “Роберт К. Мартин: Чистый код”. Отобрал из них те, которые наиболее часто встречались в виде проблем у студентов. Приведенные советы написаны с учетом моего опыта разработки коммерческих Android приложений. Поэтому не ко всем Android-проектам приведенные ниже советы подойдут, я уже не говорю про другие системы.


Советы в основном приводил с примерами кода как НЕ НУЖНО делать. Как ни странно, у большинства студентов были одни и те же ошибки. Все примеры кода были придуманы, любые совпадения с реально существующим кодом случайны.

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

Как читать техническую литературу: советы резидентов Quora, Reddit и Hacker News

Время на прочтение6 мин
Количество просмотров51K
Техническая литература бывает разная: от небольших тематических статей до серьезных справочников с подробным описанием функций и атрибутов. И каждый из этих типов решает разные задачи — развлекает, обучает, позволяет освежить какую-либо тему.

Сегодня мы расскажем, к каким источникам рекомендуют обращаться программисты, инженеры и резиденты тематических платформ (Stack Exchange, Stack Overflow и др.), если вам нужно изучить новый язык или углубить знания в какой-то отдельной области. Также приведем несколько их рекомендаций о том, как с такой литературой «работать».

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

Английские фразы, которые не стоит переводить буквально

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


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

Повседневные фразы и инструкции


Тут сразу стоит отметить, что в английском довольно много фразовых глаголов, которые очень популярны, особенно в разговорной речи. Понятное дело, что sit down, stand up или come up уже никого не удивят, но есть другие интересные случаи, и не только с фразовыми глаголами.
Читать дальше →
Всего голосов 71: ↑58 и ↓13+45
Комментарии208

10 Вещей с которыми сталкиваются начинающие Android-разработчики

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

От переводчика: постарался все изложить максимально близко к оригиналу. Перевод получился в свободной форме — думаю это лучше передаст смысл статьи. На картинках есть всплывающие подсказки. Оригинал здесь.




Я решил написать о некоторых типичных ошибках и проблемах, с которыми когда-то столкнулся сам, когда начинал разрабатывать Android-приложения три года назад, и нескольких других, с которыми сталкивались начинающие Андроид-разработчики. Итак, поехали!

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

10 приемов по созданию красивых бизнес презентаций из 2017 года

Время на прочтение6 мин
Количество просмотров380K
Встречали ужасные PowerPoint презентации с разноцветными слайдами и безвкусными картинками? Тогда вы точно должны прочитать эту статью!

ВАЖНО: здесь я пишу только про бизнес презентации для чтения — не для публичных выступлений. Это важно понять, так как техники разные в этих двух форматах. Под форматом «бизнес презентаций для чтения» я подразумеваю такие документы как коммерческие предложения, спонсорские пакеты, инвестиционные презентации проектов, презентации продуктов, которые в большинстве случаев отправляются исключительно по электронной почте.

В этой статье я расскажу о наиболее распространенных ошибках в дизайне и поделюсь своими 10 приемами по созданию поистине крутых презентаций. Почти все примеры, которые я привожу ниже, — это выдержки из реальных кейсов, которые мы реализовали.
Здесь важно отметить, что 10 приемов актуальны на 2017 год (и ближайшие месяцы 2018).

Начнем с самого важного при создании презентации:
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии48

Астигматизм — способы коррекции

Время на прочтение9 мин
Количество просмотров127K
Живете вы не печалитесь, смотрите на мир слегка прищуриваясь, и вдруг вам сообщают, что у вас астигматизм. Астигматизм – оптика глаза с неправильной фокусировкой, когда на сетчатке нет четкости из-за искажений в роговице или хрусталике глаза. Самостоятельно нельзя поставить такой диагноз – его обнаруживает офтальмолог. И возникает вопрос – что с ним делать? Надеть очки или контактные линзы, тренироваться с утра до ночи как рекомендует интернет или отдать себя в руки хирургов, чтобы «подправили» прицел?

А еще вариант – ничего не делать, продолжать жить как раньше, не болит же ничего.

Методы коррекции астигматизма

Важное правило – понять с каким отделом глаза связана эта оптическая проблема. От этого будет зависеть метод коррекции или лечения астигматизма.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии42

Английские слова, которые хочется перевести неправильно

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


Помните, как мы учили английские слова, проводя параллели в их произношении с нашим языком? Ну там, локализация — локализейшн (localisation) или объект — обджект (object). Классно, когда все так совпадает. Но есть ряд слов-предателей этого чудного принципа созвучий. Ряд слов, которые звучат или пишутся похоже, но означают другое. В лингвистике это называется “межъязыковые омонимы и паронимы” или же “ложные друзья переводчика”. Давайте соберем топ самых неожиданных несовпадений.

Accurate — точный, чёткий. Но никак не аккуратный. И даже человека так описать нельзя.
Читать дальше →
Всего голосов 46: ↑37 и ↓9+28
Комментарии203

Вложенные классы в Java

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

Добрый день, Хабровчане! Я уже довольно давно программирую на java, и нередко использую вложенные классы, но недавно наткнулся на статический вложенный класс и понял, что я о нем почти ничего не знаю. Поэтому я решил разобраться в этом, систематизировать свои знания, а заодно и поделиться этими знаниями с вами.
Читать дальше →
Всего голосов 22: ↑15 и ↓7+8
Комментарии13

Сравнение методов восстановления дыхания

Время на прочтение6 мин
Количество просмотров21K
Многие из нас помнят как тяжело на физкультуре после кросса, после длительного розыгрыша в футболе, теннисе. Дыхание частое и хочется его побыстрее восстановить. От людей мы слышим разные советы как отдышаться быстрее. Я решил облачить все эти советы в цифры и провести эксперимент, в котором сравню несколько наиболее известных методов восстановления дыхания.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии24

Информация

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