Pull to refresh
36
0
Maxim Firsov @FirsofMaxim

Mobile developer

Send message

Каждый имеет право быть похожим на себя. Расстройство аутистического спектра и карьера в IT: личный опыт

Reading time15 min
Views22K

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

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

Читать далее
Total votes 139: ↑132 and ↓7+159
Comments130

Собеседование по System Design: как запроектировать и не потеряться

Level of difficultyMedium
Reading time8 min
Views14K

Привет! Меня зовут Дмитрий. Я архитектор решений в крупной российской компании, более 15 лет проектирую, пишу код и руковожу командами. Сотрудничаю с Практикумом как ревьюер курса по Java и как автор курса «Архитектура программного обеспечения» в Яндекс Практикуме.

Предположим, вы решили развлечься дизайном систем (System design), пусть даже и не добровольно, на собеседовании. Если компания поленилась поделиться рабочим контекстом, то задача может быть в формате «запроектируй Твиттер». Более кандидатоориентированная компания N может попросить «спроектируй поиск на сервисе N».

Хотя статей типа «как запилить Твиттер» довольно много, не все помогут сориентироваться на реальном собеседовании. В этой статье предлагаю покопать вглубь и составить чек-лист, некий алгоритм. Он будет чуть шире, чем принято «для Твиттера», хотя универсальным его сделать не получится. Мне эта схема помогала и помогает, хотя у каждого свои фишки и предпочтения. 

Читать далее
Total votes 17: ↑15 and ↓2+16
Comments21

Почему мы решили перейти с JUnit4 на JUnit5

Level of difficultyEasy
Reading time8 min
Views1.7K

Меня зовут Александр Чекунков, я — Android‑разработчик в СБЕРе. Занимаюсь разработкой CSI‑опросов в мобильном приложении «СберБанк Онлайн». Я несу ответственность за функциональность, которую используют бизнес‑команды для оценки удовлетворённости клиентов.

Не так давно, в нашем проекте мы приняли решение перейти с JUnit4 на JUnit5. Эта статья поможет разобраться в причинах выбора JUnit5 в качестве целевого решения для написания unit‑тестов. Я постараюсь ответить на ключевые вопросы: что делает JUnit5 предпочтительным выбором для современных проектов, и какие конкретные улучшения и нововведения он предлагает?

Читать далее
Total votes 12: ↑10 and ↓2+15
Comments4

Как веб-специалисту начать пентест API мобильного приложения и не сломать макбук

Level of difficultyMedium
Reading time11 min
Views2K

Я активный участник программ Bug Bounty и достаточно часто смотрю не только веб‑приложения, но и мобильные приложения, чтобы определить все конечные точки API сервиса и попробовать найти баг в функционале до которого не всегда просто добраться. А почему непросто? Потому что в мобильных приложениях часто встречается SSL Pinning, который не дает перехватывать трафик, а поэтому анализ API приложения становится более сложным. В этой статье я изложу:

1. Как отключить SSL Pinning и получить возможность внедряться в процессы iOS приложений.

2. Как отключить SSL Pinning и внедриться в Android приложение без наличия смартфона на одноименной ОС.

Читать далее
Total votes 8: ↑8 and ↓0+15
Comments2

Git. Скачем между ветками как древесные лягушки

Level of difficultyEasy
Reading time6 min
Views26K

Статей на тему много, но, видимо, недостаточно: время от времени слышу от коллег (последние 10 лет, в 4-х разных компаниях):

«Не могу пошарить экран с кодом, у меня другая ветка сейчас».

«Не хочу переключать ветку, придется запускать кодогенерацию, у меня сбросятся build-файлы, потом это опять пересобирать!»

«Стаскивать ветку для просмотра ПР? Это же неудобно, надо "стэшить" изменения, ветку переключать».

Читать далее
Total votes 85: ↑85 and ↓0+101
Comments71

Почему умение дебажить — один из самых важных навыков для разработчика

Level of difficultyMedium
Reading time7 min
Views7.7K

Привет! Меня зовут Абакар, и я работаю главным техлидом в Альфа-Банке. Меня часто посещает вопрос: «А какой навык всё-таки самый полезный для разработчика?». Понятное дело, что ответ на этот вопрос обязан быть комплексным, и скилл-сет разраба не должен ограничиваться одним навыком. Но умение дебажить — действительно хороший показатель уровня разработчика. Давай разберем на нескольких примерах, почему я так считаю.

Читать далее
Total votes 36: ↑35 and ↓1+39
Comments24

Как нормализовывать телефонные номера

Reading time5 min
Views9.1K

Замечали когда-нибудь, что все записывают телефонные номера по-разному? Некоторые пишут их через пробелы, другие через дефис, а кто-то использует скобки. Разные люди по-разному группируют цифры номеров в числа.

И это становится реальной проблемой, когда вам нужно сохранить телефонные номера в базе данных и затем извлекать из неё записи по ним.
Читать дальше →
Total votes 29: ↑29 and ↓0+39
Comments61

Современные способы запуска фоновой работы в Android

Level of difficultyMedium
Reading time18 min
Views4.3K

На протяжении нескольких лет каждый релиз новой версии Android вводит ограничения на существующие API и новые API для запуска работа в фоне в зависимости от её типа. Я собрал все актуальные способы запуска для Android и рассказываю когда что стоит выбирать: WorkManager, Service или что-то другое

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

Архитектура кроссплатформенного многомодульного приложения

Level of difficultyHard
Reading time11 min
Views5.8K

Хочу поделиться своим опытом создания кроссплатформенного приложения на базе kotlin-multiplatform (KMP), организации его архитектуры, настройки для работы с различными библиотеками и особенностями его работы. Статья подойдет в первую очередь разработчикам, которые уже имеют опыт с многомодульными проектами в android и начинают изучать KMP. В конце я опишу свою реализацию архитектурного паттерна MVI и его применение в проекте.

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

Как мы строили BDUI: опыт Яндекс Маркета

Reading time11 min
Views4.5K

Привет! Меня зовут Алексей Морозов. Я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Наша команда делает проекты, которые должны были улучшить скорость приложения, его качество и скорость разработки. Однако раньше такие проекты решали эти проблемы только на время, приложение снова деградировало. Всё это напоминает древнегреческий миф, в котором Сизиф толкает в гору камень, он скатывается вниз, и всё начинается по новой.

Такое положение дел нас не устраивало, поэтому было принято решение изменить подход. И мы построили BDUI (Backend Driven UI). В этой статье я расскажу о том, как это случилось, что сделали и какой в итоге получили результат. 

Читать далее
Total votes 12: ↑12 and ↓0+14
Comments11

Локальный HTTPS в dev-окружении — простая настройка

Reading time6 min
Views10K


Иногда в процессе веб-разработки требуется безопасное окружение в браузере, то есть HTTPS. Удобный способ сделать это — установить локальный УЦ и автоматизировать выдачу сертификатов на любые поддомены lcl.host и localhost. Это более функциональная и удобная альтернатива самоподписанным сертификатам.

Для установки локального УЦ есть инструменты lcl.host и mkcert, которые помогают быстро настроить и использовать HTTPS в dev-окружении.
Читать дальше →
Total votes 24: ↑18 and ↓6+17
Comments5

Как устроен рекомендательный сервис, который выдерживает 700 тысяч запросов в секунду. Доклад Яндекса

Reading time11 min
Views16K

«Баннерная крутилка» —  один из самых высоконагруженных сервисов в Яндексе. Он умеет переживать 700 тысяч RPS, а иногда и больше. Каждый раз, когда приходит запрос, крутилка должна просмотреть базу из миллиарда документов и выбрать из них самые релевантные для пользователя. При этом выдерживаются весьма жесткие временные рамки: 99% всех запросов обрабатываются менее чем за 200 миллисекунд.

Какими принципами стоит руководствоваться при построении подобных высоконагруженных систем? Как устроены стадии отбора документов? Какое участие в ранжировании принимает ML? Обо всём этом на недавнем мероприятии для разработчиков в Ереване рассказал Артём Ваншулин, руководитель разработки ранжирования в команде баннерной системы. Сегодня мы делимся с сообществом текстовой версией его доклада. Передаём ему слово.

Читать далее
Total votes 33: ↑29 and ↓4+35
Comments4

Медленное дыхание пространства и древние массивные черные дыры

Level of difficultyEasy
Reading time5 min
Views8K

Проблеме темной материи уже почти сто лет – с открытия в 1933 году Фрицем Цвикки гравитационной стабильности скоплений галактик, которые не должны быть стабильны, если судить только по видимой материи в них. Этой проблеме сначала не уделялось должного внимания, но она неотвратимо росла, расползаясь на галактические и космологические масштабы. Квантовые космологи долго пытались продать в качестве темной материи кучу неведомых зверюшек в виде элементарных частиц, но, невзирая на предоплату в виде миллиардов долларов, так и не сумели предоставить покупателю ничего реального – все зверюшки (которых обычно ласково называют ВИМПами) оказались мертворожденными. Поэтому в последние годы пошел в гору тренд о том, что темная материя состоит из черных дыр. Прекрасная идея, которая имеет главную проблему – а где взять столько дыр? Ведь практически единственный известный механизм их образования – взрыв сверхновой, сжимающий свое ядро в компактный объект в несколько масс Солнца, который и превращается в черную дыру. Но эти взрывы сверхновых можно по пальцам пересчитать – и их явно не хватает. Несколько лет назад стала раскручиваться тема первичных (primordial) черных дыр, которые должны возникнуть в результате какого-то гипотетического механизма в разгар Большого Взрыва. Если посмотреть по статьям, размещаемым в arxiv, то год назад на ключевые слова WIMP и primordial black holes (PBH) выскакивало примерно одинаковое количество статей - что уже удивительно, потому что «чернодырниками» были немногочисленные теоретики, а за «вимпистами» стояли огромные коллективы обсерваторий, где искались ВИМПы – под землей, в Антарктиде, в космосе и т.д. Если сейчас, 21 мая, посмотреть архив, то за май о ВИМПах опубликовано 4 статьи, а о PBH - 27. Разница в несколько раз! Все умные ученые должны вливаться в этот бурный поток и с упоением клепать модели образования PBS на основании гравитонов, тахионов, биткоинов, а также колебаний инфлатона и индекса Доу-Джонса.

Читать далее
Total votes 29: ↑27 and ↓2+35
Comments89

Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз

Level of difficultyMedium
Reading time4 min
Views44K

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

Читать далее
Total votes 95: ↑84 and ↓11+93
Comments57

Радиоэфир без регистрации и СМС

Level of difficultyEasy
Reading time23 min
Views34K

Пост для тех, кто любит радиосвязь, но не радиолюбитель с позывным

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

В старшем возрасте я понял, что могу позволить завалить себя радейками и время от времени покупал различные недорогие модели, которые выбирал лишь по цене и внешнему виду. Но на удивление связать серенькие радиостанции с фиолетовыми или чёрными не получалось, даже если выбрать один и тот же номер канала. Пришлось разбираться, и всё оказалось куда сложнее, чем просто выбрать переключателем номер канала и нажать кнопку PTT (Push-To-Talk). Ну и осложнилось всё задачей не получить по шапке за эфир на частотах, где не следует этого делать. Для прояснения ситуации для начинающих и создан этот пост.
Читать дальше →
Total votes 93: ↑91 and ↓2+120
Comments106

Долгая дорога к дому: как вода очищается на пути из скважины в частный коттедж

Reading time9 min
Views18K

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

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

Мы в БАРЬЕР много лет изучаем этот путь воды и стараемся его облегчить, совершенствуя собственные системы фильтрации для коттеджей. Под катом мы проследим путь воды из скважины к потребителю в частном доме на примере нашей коттеджной системы очистки, покажем состав воды из скважины до и после фильтрации, и подробно расскажем про каждый этап. 

Пройти путь воды
Total votes 29: ↑24 and ↓5+30
Comments48

Септик и автономная канализация. Часть 2. Проектирование

Level of difficultyEasy
Reading time15 min
Views10K

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

Читать далее
Total votes 20: ↑18 and ↓2+18
Comments14

Курс «PostgreSQL для начинающих»: #1 — Основы SQL

Level of difficultyEasy
Reading time13 min
Views65K

Этим постом я запускаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В программе: рассказ об основах SQL, возможностях простых и сложных SELECT, анализ производительности запросов, разбор [не]эффективного применения индексов и особенностей работы транзакций и блокировок в этой СУБД.

Курс не претендует на лавры "войти в айти", поэтому подразумевает наличие у слушателя опыта программирования или работы с другими СУБД, и, главное, желания самостоятельно изучать тему работы с PostgreSQL глубже.

Для тех, кому комфортнее смотреть и слушать, а не читать - доступна видеозапись и слайды.

Читать далее
Total votes 30: ↑29 and ↓1+33
Comments30

90+ дашбордов для OSINT и глобального мониторинга

Level of difficultyEasy
Reading time13 min
Views26K

Наблюдение за тем, какие изменения происходят на планете в масштабах стран и континентов — настоящий источник вдохновения для OSINT-аналитиков. Специалисты Бастион поделились актуальным списком интерактивных дашбордов, которые они держат в закладках, плюс я добавил парочку от себя.

Даже если вы никак не связаны с ИБ, зато часами залипали в контурные карты глобальных стратегий или восхищались глобусом в центре управления X-COM, эта подборка инструментов наверняка вам понравится.

Читать далее
Total votes 37: ↑37 and ↓0+41
Comments4
1
23 ...

Information

Rating
Does not participate
Location
Снежинск (Челябинская обл.), Челябинская обл., Россия
Date of birth
Registered
Activity