Pull to refresh
6
0
Анатолий @ShadyRover

Android

Send message

Fastlane для Android разработчиков

Level of difficultyMedium
Reading time9 min
Views1K

Рост команды требует большего вовлечения в процессы и договорённости, которые, в свою очередь, требуют автоматизации и инспекции. Можно взять bash‑скрипты и закрыть ими эту потребность, но насколько это будет удобно? Тут нужен инструмент, который упростит разработку и будет поддерживать команду в будущем. Сегодня расскажу про один из таких инструментов — Fastlane — и его возможности.

Статья будет полезна для ознакомления с Fastlane, тем, кто ищет решения для разработки автоматизации или рассматривает альтернативные решения по автоматизации сборок и процессов внутри компании. Для наглядности все примеры запускаются локально, это же решение можно перенести на CI/CD (Gitlab, Jenkins, Github Actions и тп).

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments0

Установка Shadowsocks с обходом блокировок на Keenetic

Reading time8 min
Views72K

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

Читать далее
Total votes 24: ↑22 and ↓2+20
Comments34

«Мягкое внедрение», или Как работать с сопротивлением при внедрении изменений

Level of difficultyEasy
Reading time17 min
Views6.1K
image

Вы когда-нибудь видели аттракцион «Пьяный велосипед»? Принцип этого аттракциона — это управление наоборот. То есть, когда ты поворачиваешь руль налево - колесо поворачивается направо. 99% людей, которые впервые садятся на этот велосипед, не могут проехать и двух метров.

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

Итак, сопротивление - это когда подчиненная структура, либо вообще не реагирует на посылаемые в нее управленческие сигналы (задачи, приказы,…), либо реагирует с внесенными от себя правками, либо реагирует с серьезным опозданием.


3 вида сопротивления


1. Подчиненная структура не реагирует на ваше распоряжение


То есть, ваш приказ или поручение не исполняются вообще. Это редко имеет вид прямого саботажа и отказа от выполнения. Сотрудники же не совсем дураки, чтобы прямо «идти на танки». Конечно нет. Зачастую это происходит в более тонкой и замаскированной форме. Например, все соглашаются, что задание нужно выполнить и при этом, никто его не выполняет. На ваш вопрос «Почему?», появляется десяток аргументов и причин, по которым выполнение было нереальным. Все это проводится так, чтобы максимально показать себя «мучениками» и «заложниками ситуации». То есть, невиновными.
Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments7

Когнитивные искажения, о которых стоит помнить

Reading time15 min
Views77K

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

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

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

Читать далее
Total votes 95: ↑87 and ↓8+79
Comments36

Удалённая сборка Android проектов на сервере прямо из Android Studio

Reading time42 min
Views6K

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

Бывает довольно обидно, когда в работу поступает задача, решение которой очевидно, фикс проблемы делается за пару минут, но чтобы проверить что всё исправлено нужно переключать ветки, пересобирать проект, потом переключаться обратно и пересобирать исходную ветку. Это может занимать очень много времени. Или бывает так, что находясь “в потоке” нужно что-то быстро проверить, но увидеть вступили ли изменения в силу можно только пересобрав и перезапустив проект, а если что-то пойдёт не по плану, или по каким-то причинам кэш сборки не отработает и проект будет собираться почти "на холодную"? Подобные, казалось бы, мелочи могут занимать огромное количество времени в течение дня, отвлекают, мешают сосредоточиться и продуктивно использовать рабочее время. Особенно много времени тратится если рабочий компьютер далеко не самый производительный, или если вы пользуетесь ноутбуком, не ориентированным на выполнение тяжёлых сборок. 

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

Интересующихся приглашаю под кат.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments6

Наш опыт, как не надо растить тимлидов (не делайте как мы)

Reading time11 min
Views31K


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

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

В общем, мы решили в этих условиях обучать своих тимлидов. Сейчас расскажу, что из этого получилось.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments13

HSLuv — удобное цветовое пространство для разработчиков

Reading time5 min
Views6.6K
Меня, как разработчика, работа с цветами порой утомляет, но существуют проекты, упрощающие эту деятельность. HSLuv — это один из таких проектов, и в рамках этой статьи я постараюсь объяснить, что это и как это может помочь разработчикам.

Проблема традиционных цветовых пространств


Традиционно в IT используются RGB или HSL.

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

RGB


Для примера возьмем равномерные ступенчатые градиенты RGB цветов.

  • градиент красного — это цвета #000, #100, #200, #FEE, #FFFи т.д.;
  • градиент зеленого — это цвета #000, #010, #020и т.д.;
  • градиент синего — это цвета #000, #001, #002и т.д.;
  • градиент желтого — это цвета #000, #110, #220и т.д.;
  • градиент голубого — это цвета #000, #011, #022и т.д.;
  • градиент пурпурного — это цвета #000, #101, #202и т.д.


Мы можем увидеть несколько вещей:

  • Яркость цветов увеличивается неравномерно: чем оттенок ближе к белому цвету, тем изменение яркости меньше;
  • Яркость разных цветов различается: синий намного темнее остальных;
  • Насыщенность также неравномерна: синий и красный выглядят «ненасыщенными» в правой части градиента.

Хорошо, RGB — это способ визуализации пикселей, да и разрабатывалась эта модель не для удобного «управления» значениями.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments6

Мой опыт собеседования в Amazon

Reading time6 min
Views62K

О чём эта статья

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

Это история о моем опыте собеседования в Амазоне, почему мне в целом не понравилось по сравнению с другими FAANG. Так же тут будут ответы на “а что конкретно спрашивали на интервью, какие были задачки, что на систем дизайне было”, потому что мне не дали подписать NDA, все с пруфами, скринами и прочее.

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

Начало, предложение от Amazon

В один прекрасный день 6 сентября, мне пришел такой сообщение в Линкедин.

Читать далее
Total votes 93: ↑90 and ↓3+87
Comments177

Detekt — пишем свои правила

Reading time6 min
Views6.5K

Мы в «Ситимобил», используем статический анализатор кода Detekt. Это инструмент, который при запуске проходит по проекту и показывает допущенные в коде code smell.
Сегодня мы расскажем, как написать свое правило и помочь команде соблюдать уникальные для проекта договоренности написания кода.

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments0

Как я добился обещанного гигабита, использовав Mikrotik + мозг

Reading time5 min
Views176K

100 мегабит в секунду от предыдущего провайдера начал сильно замедлять рабочий процесс, поэтому я начал искать провайдера с нормальной скоростью. В моем доме, из быстрых был только МГТС, на чем я и остановился. Провели интернет быстро, два дня между заявкой и кабелем в квартире, оставили большую бухту оптики, за что спасибо…
Читать дальше →
Total votes 87: ↑85 and ↓2+83
Comments108

Распознавание номеров. Практическое пособие. Часть 1

Reading time6 min
Views101K
Пример распознавания номерных знаков

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

И в один прекрасный день МВД Украины открыло доступ к реестру транспортных средств. Теперь по номерному знаку стало возможным проверять некоторую информацию про автомобиль (марку, модель, год выпуска, цвет и т.д. )! Скучная рутина линейного программирования померкла перед новой свехзадачей — считывать номера по всей базе фото и валидировать эти данные с теми, что указывал пользователь. Сами знаете как это бывает «глаза загорелись» — вызов принят, все остальные задачи на время стали скучны и монотонны… Мы принялись за работу и получили неплохие результаты, чем, собственно и решили поделиться с сообществом.
Для справки: на сайт AUTO.RIA.com, в день добавляется около 100 000 фото.
Датасаентисты давно уже знают и умеют решать подобные задачи, поэтому мы с dimabendera написали эту статью именно для программистов. Если вы не боитесь словосочетания «сверточные сети» и умеете писать «Hello World» на питоне — милости просим под кат…
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments58

15 базовых советов по Git для эффективной работы каждый день

Reading time5 min
Views60K

Привет, меня зовут Сергеев Сергей aka gurugray. Сейчас я «Mentor FrontEnd Community» в компании ManyChat. Вы могли видеть мои лекции по релизному циклу и регламенту работ с системами контроля версий в Школе Разработки Интерфейсов Яндекса (ШРИ).


Меня часто спрашивают какие life-hacks или best-practices я использую при работе с Git'ом и репозиториями проекта.


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


Читать дальше →
Total votes 72: ↑68 and ↓4+64
Comments63

Реверс API по его android приложению

Reading time3 min
Views9.8K

Зачем


У меня есть pet-project, приложение для учета финансов.


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


Но


  • Банков несколько и они ничего не знают друг про друга. В итоге
    • Нет единой аналитики
    • Перевод денег из одного банка в другой будет считаться как списание с одной стороны и зачисление с другой. Эта особенность портит аналитику.
  • Возможность работать с данными позволяет строить любую аналитику и прогнозы в отличие от ui банка
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments32

Сравнение алгоритмов сортировки обменами

Reading time12 min
Views6.4K

В данной статье рассматриваются различные варианты сортировки обменами, а также даётся описание простого графического приложения (processing.js) с примерами сортировок.

Пузырьковая сортировка


Простейший вариант: перебирать массив от первого элемента к последнему, меняя местами (если потребуется) соседние элементы.

→ Проверить можно здесь

Читать дальше →
Total votes 22: ↑14 and ↓8+6
Comments7

Кейсы удачных (и не очень) экспериментов «Яндекс.Навигатора»

Reading time6 min
Views4.9K
Продуктовая команда «Яндекс.Навигатора» поделилась, какие проводит эксперименты, как организована работа внутри, как монетизирует продукт и какие подходы использует в предиктивной аналитике.

Total votes 8: ↑7 and ↓1+6
Comments12

HBO, cпасибо что напомнил… «Чернобыльская аптечка» беларуского фармацевта

Reading time20 min
Views123K
Что бы ни сказали — не станем спорить
Что бы ни дарили — не станем верить

Егор Летов «Как листовка»

Думаю не стоит лишний раз говорить о нашумевшем сериале Чернобыль и эффективности такого «сериального» воздействия на массы. Особенно на массы, проживающие на территориях, показанных в фильме. Выход каждой новой серии сопровождается всплеском публикаций в FB. В каждой из которых горечь, страх, боль. Что в такой ситуации я могу сделать ("кто виноват и что делать?")? Могу только описать свой взгляд на терапию лучевых поражений. Спасибо родненькой кафедре химии высоких энергий и проф. Шадыро О.И., которые пестовали в своих лабораториях нас, непутевых фармацевтов-радиохимиков. Надеюсь своей статьей честь этой, легендарной некогда, кафедры я не опорочу.

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

В общем, спасибо, сценаристы HBO, за то, что всколыхнули Память. Мой посильный вклад — под катом. Рейтинг доступных (и не очень) антидотов, способных сработать при радиационном выбросе. В закладки — класть строго ВСЕМ! И прочитал сам — перекинь другу.

Читать дальше →
Total votes 227: ↑210 and ↓17+193
Comments272

OutOfMemory и использование векторных изображений в Android Studio

Reading time4 min
Views5.8K
Привет, Хабр! В данной статье, ориентированной на новичков, я бы хотел дать несколько советов по оптимизации использования приложением памяти устройства, дабы постоянно не получать OutOfMemory, а также рассмотреть использование векторных изображений в текущей актуальной версии Android Studio (3.4), так как большинство русскоязычных ресурсов по этой теме (последняя статья на Хабре про векторные изображения датируется 2015 годом) устарели, что нередко вводит начинающих разработчиков в заблуждение. Итак, приступим.
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments10

Android Tips and Tricks

Reading time13 min
Views47K
В данном материале можно будет увидеть различные инструменты и подсказки, которые здорово облегчают жизнь Android разработчикам. Большая часть собрана напрямую от знакомых разработчиков и содержит вещи, которые должен знать каждый. Дополнения и расширения приветствуются, и если вы знаете о каком-то крутом механизме, который не был упомянут в статье, не поленитесь перейти в оригинал и открыть pull request.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments18

Вы не сможете решить эту задачу на собеседовании

Reading time5 min
Views130K
Привет, Habr. Хочу поделиться с вами одной интересной задачей, которую многие из нас получали на собеседовании, но, вероятно, даже и не догадывались о том, что решаем ее неправильно.

Прежде всего — немного истории. Работая на должностях тимлида и техлида мне порой приходилось проводить собеседования, соответственно нужно подготовить несколько теоретических вопросов, ну и пару несложных задач, на решение которых не должно было бы уйти больше 2х-3х минут. Если с теорией все просто — мой любимый вопрос это: «чему равен typeof null?», по ответу сразу можно понять, кто сидит перед тобой, джун — просто правильно ответит, а претендент на сеньера, еще и объяснит почему. То с практикой — сложнее. Я долго не мог придумать нормальное задание, не изъезженное, типа fizz-buzz, а что-нибудь свое. Поэтому я на собеседованиях давал задания, которые сам проходил, устраиваясь на текущую работу. О первом из них и пойдет речь.
Читать дальше →
Total votes 164: ↑126 and ↓38+88
Comments419

Dagger 2. Subcomponents. Best practice

Reading time9 min
Views38K
На хабре уже было несколько хороших статей по установке и работе с Dagger 2:


Я же хочу поделиться своим опытом использования Dagger 2 на реальных проектах с реальными кейсами. Раскрыть читателю мощь и удобство как самого Dagger’а, так и такого его аспекта, как Subcomponent.

Перед тем, как пройти под кат, следует ознакомиться с вышеуказанными статьями.
Кого заинтересовал, you are welcome!
image
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments11
1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity