Search
Write a publication
Pull to refresh
2
0
Константин @ConstOrVar

Разработчик мобильных приложений

Send message

Paging3 в стиле Compose: секретный DSL, о котором молчат все Android-разработчики

Level of difficultyMedium
Reading time11 min
Views2.8K

В статье описан путь преобразования предложенного экспертами Google способа отображения страничных данных с использованием библиотеки Paging3 и Compose от развесистого сборника if'ов и when'ов, вероломно нарушающего все границы архитектурных слоев, до чистого, лаконичного и затягивающего в себя DSL.

Погрузиться в магию

ChatGPT: как искать уязвимости? Набор исследователя

Reading time4 min
Views4.2K

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

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

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

Оценка риска этой статьи от ChatGPT: 80-90. Тема чувствительная, с высоким риском для злоупотреблений и манипуляций.

Читать далее

Эмулируем iPhone в QEMU

Level of difficultyMedium
Reading time12 min
Views4.6K

Мы начали наше исследование по эмуляции iOS с изучения уже существующих опенсорсных решений. Ранее мы уже успешно запускали alephsecurity/xnu-qemu-arm64, но нас беспокоило то, что проект имеет статус read-only.

Затем мы попробовали TrungNguyen1909/qemu-t8030 и обнаружили в нём довольно много интересных фич:

возможность восстановления iOS (при помощи второго QEMU-«компаньона» для подключения по USB)

запуск iOS 14
самую свежую версию QEMU
удобную wiki о запуске эмулятора

Благодаря этому проекту мы быстро получили доступ к оболочке и ssh, изменив System/Library/xpc/launchd.plist, что стало отличной отправной точкой.

Читать далее

Как доказывали теорему о четырех красках. Часть 1

Level of difficultyEasy
Reading time11 min
Views5.7K

Всем привет!

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

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

Мне стало интересно разобраться, как именно доказывал эту теорему Кемпе, какой контрпример нашел Хивуд и как в итоге устроено компьютерное доказательство Аппеля и Хакена.

Я не нашел достаточно подробного изложения на русском языке, поэтому взял книгу Робина Уилсона «Four Color Suffice», узнал из нее все, что мне было интересно, и кратко пересказал это для вас. Большинство иллюстраций в статье взято из этой книги.

Приятного чтения!

Читать далее

Как улучшить концентрацию внимания с помощью рекомендаций от СДВГ

Level of difficultyEasy
Reading time4 min
Views2.6K

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

Читать далее

Java Digest #24

Level of difficultyEasy
Reading time9 min
Views3.1K

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске рассказываем о новых JEPs в OpenJDK, которые вошли в статус Candidate. Спойлер Applet API — RIP. В этом месяце вышли сразу IntelliJ IDEA 2025.1 и OpenIDE — эта битва будет легендарной! 

Мы добавили краткий обзор JavaOne’25. И, как обычно, собрали полезные статьи: как избавиться от Flaky-тестов с помощью JMina, как ZGC аллоцирует память в хипе. Сделали подборку материалов о паттернах и методологиях разработки и разбавили размышлениями о том, как писать хороший код и оставаться профессионалом. 

Читать свежий выпуск

Edge-to-edge в Android: опыт внедрения и рекомендации по тестированию

Level of difficultyMedium
Reading time9 min
Views9K

Всем привет! Мы – Саша Королёв и Юля Трусова, инженеры в Design System Авито. Наша команда работает над качеством интерфейсов: актуальностью, предсказуемостью, доступностью. В этой статье рассказываем про наш опыт внедрения edge-to-edge в мобильном приложении Avito для Android.

Материал будет особенно вам интересен, если ваше приложение не использовало режим edge-to-edge, но ввиду последних требований от Google по переходу на target SDK 35, появилась в этом необходимость. Ведь данное обновление применяет режим по умолчанию без возможности его отключить. Из статьи вы узнаете, с какими сложностями столкнулись мы как участники большого проекта при интеграции данного режима в масштабный проект с не одной сотней экранов.

Читать далее

Как довести фичу до продакшена без боли: пошаговый гайд от команды RuStore. Часть 1

Level of difficultyMedium
Reading time11 min
Views1.8K

Полтора года назад мы в RuStore собрали новую команду, чтобы с нуля разработать собственное платёжное решение. Тогда всё началось с одной фичи. Казалось бы, «просто запилить», чего тут сложного. Но на деле это обернулось целым кварталом разработки, бесконечными доделками и болью на финальном этапе интеграции. Тогда мы столкнулись с типичным набором проблем — от отсутствия документации и слабой декомпозиции до невозможности предсказать сроки. Да, в конечном итоге всё как-то заработало, но по ощущениям исключительно на энтузиазме.

Читать далее

Как простая глюкоза отравляет организм, делая нас толстыми и тревожными: плюс 7 способов остановить это навсегда

Level of difficultyMedium
Reading time11 min
Views16K

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

Материал проверен эндокринологом, доктором Анастасией Белошистой. Вот теперь точно погнали.

Представьте на секунду, что ваш организм – это космический корабль

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

Читать далее

Чистый код — красивая архитектура. А работает ли это?

Level of difficultyEasy
Reading time12 min
Views20K

Вы пишете код не для компилятора — он съест любую абракадабру, если синтаксис верен. Вы пишете для людей, для того парня из соседнего отдела, который будет разбирать ваш код через полгода. Для себя, когда забудете, о чём думали в момент написания. Для тимлида, у которого нет времени расшифровывать ваши «фичи», замаскированные под техдолг. 

Грязный код — это про непонятные переменные, запутанные модули и решения «на скорую руку». Вас ждёт после такого потеря во времени и в лучшем случае косые взгляды коллег. К сожалению, непонятный код часто пишут не только из-за спешки, но и из-за неопытности и чрезмерного энтузиазма тех, кто хочет всё переделать.

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

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

Давайте разберём, как превратить кошмар в конфетку — детали внутри.
Читать дальше →

Компьютерные сети «под капотом»: детальный разбор по уровням OSI и TCP/IP

Level of difficultyMedium
Reading time36 min
Views20K

На собеседованиях часто задают знаменитый вопрос, узнаваемость которому по большей части дал facebook*: «Что происходит после того, как вы вводите URL сайта в адресную строку браузера и нажимаете Enter?». Несмотря на кажущуюся простоту, этот вопрос покрывает широкий спектр тем – DNS, TCP/IP, HTTP, и даже работу браузера. Разработчики разных уровней иногда теряются в деталях ответа. Понимание этого процесса важно для инженеров – оно показывает, как взаимодействуют между собой различные сетевые протоколы и уровни. Ниже мы шаг за шагом рассмотрим, как данные проходят через каждый слой сетевого стека, и проиллюстрируем это примерами.

Читать далее

Ты решаешь LeetCode неправильно. Как пройти любое собеседование в BigTech?

Level of difficultyEasy
Reading time6 min
Views50K

Привет! Я ex. Разработчик из VK, сейчас принял оффер от Ozon'a, и за последний месяц я прошел собеседования в 4х бигтех компаниях: Ozon, Avito, Wildberries и T-Bank и везде дошел до финалов/офферов. Пообщавшись во многих группах, посвященных Go-разработке, я понял, что много умных ребят готовясь к собесам не имеют четкой системы подготовки, и из-за этого заваливают технические собесы в компании. Не претендуя на истину в последней инстанции, предлагаю свою методику подготовки к собесам, которая помогла мне и моим знакомым подготовиться к техническим собесам во все популярные ру-бигтехи.

Читать далее

Балансировка нагрузки серверов: уходим от Round Robin

Level of difficultyMedium
Reading time7 min
Views5.4K

Финансы, ритейл, соцсети, облака – везде свои тараканы, но требования схожи: чтобы летало и не падало. Балансировка нагрузки – это как фундамент для небоскреба. Криво зальешь – все рухнет. И вот тут стандартный Round Robin, при всей его простоте, часто оказывается тем самым кривым фундаментом.

Читать далее

TIG сварка в домашней мастерской. Первые шаги

Level of difficultyMedium
Reading time6 min
Views20K

Сварка неплавящимся вольфрамовым электродом в среде аргона, она же «аргоновая», она же TIG давно обживает любительские мастерские и гаражи — оборудование и расходные части стали дешевле и доступней, притом что возможности этого вида сварки воистину впечатляют — высококачественное соединение всех ходовых чёрных и цветных металлов, в том числе и их тонких листов. Никуда не деться и от доброго половника дёгтя — TIG сварка слывёт очень сложной для освоения; её компоненты, аргон, присадочные прутки, недешевы; процесс весьма требовательный к чистоте и точности подгонки деталей. Возня и сложности, однако, нас уже давно не пугают, попробуем же взять в руки горелку и наложить свои первые корявые швы — за мной мой читатель, и только за мной, и пусть устыдятся нерешительные и малодушные!
Читать дальше →

Путешествие туда и обратно за безопасным ELF-парсером

Level of difficultyMedium
Reading time12 min
Views2.1K

Жил-был в норе под землей… разработчик группы разработки защитных решений безопасной платформы. Привет! Я Максим Жуков, занимаюсь безопасностью различных аспектов KasperskyOS. Расскажу про один из них, ELF-парсер.

Эта история не про то, как мы в «Лаборатории Касперского» сделали парсер с нуля. А про то, как я отправился в долгое исследовательское путешествие в поисках способа сделать наш существующий парсер безопаснее, что узнал о разных инструментах в пути и какую неожиданную помощь получил от Темного Владыки Мелькора.

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

Читать далее

Распределённые транзакции в микросервисах: от SAGA до Two‑Phase Commit

Reading time29 min
Views14K

Переход от монолита к микросервисной архитектуре приносит гибкость и масштабируемость, но и создает новые сложности. Одна из ключевых проблем –согласованность данных и транзакции. В монолите обычно можно обернуть несколько операций одной ACID-транзакцией: либо все операции выполняются успешно, либо при ошибке происходит полный откат. В мире микросервисов такой прямолинейный подход не работает. Каждый сервис автономен, у каждого своя база данных, и общаются они через сеть. Как результат, гарантировать атомарность и целостность процессов, охватывающих несколько сервисов, непросто. Возникает риск частичных обновлений: одна часть системы изменилась, а другая – нет, что приводит к неконсистентным (несогласованным) состояниям данных.

Чтобы решить эту проблему, разработаны специальные паттерны и протоколы управления распределёнными транзакциями. В этой статье детально рассмотрим ограничения классических ACID-транзакций в распределённой архитектуре, а также два подхода к распределённым транзакциям – сага (SAGA) и двухфазный коммит (2PC). Разберём мотивацию, принципы работы, преимущества и недостатки каждого, сравним их по критериям. Кроме того, обсудим альтернативные подходы, такие как TCC (Try-Confirm-Cancel), паттерн Outbox, а также кратко упомянем eventual consistency, транзакционные сообщения, инструменты вроде Atomikos и др. В завершение – практические рекомендации, как выбрать подходящий способ обеспечения согласованности в ваших микросервисах.

Читать далее

Нулевой байт как помощник в исследованиях уязвимостей сайтов

Level of difficultyMedium
Reading time5 min
Views3.4K

Это статья пентестера 0xold, который 8 месяцев занимался поиском уязвимостей для bug bounty и решил поделиться своим опытом и наблюдениями. В статье рассказывается о нескольких уязвимостях, которые были обнаружены с помощью инъекции нулевого байта. В целях конфиденциальности все проверяемые сайты будут обозначаться в статье как company.com.

Читать далее

Хороший, плохой, злой тимлид. Как говорить команде правду и выжить

Level of difficultyEasy
Reading time14 min
Views21K

Привет, Хабр! Меня зовут Лера, я технический писатель в Авито. Делюсь с вами разбором полезной книги — «Радикальная прямота» Ким Скотт.

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

В статье разбираемся, в чём суть философии радикальной прямоты, какие ошибки совершают руководители и как построить культуру искренней обратной связи в команде.

Читать далее

Путь воина: как стать Tech Lead и не сойти с ума

Level of difficultyEasy
Reading time8 min
Views2.9K

Вы думали, что путь от Senior Developer до Tech Lead — это всего лишь прибавка к зарплате и новый пункт в резюме? Увы. Техлид - это не только про разработку, но и про управление командой в штормовые времена, сохранение продукта в моменты кризиса, а еще про самодисциплину и менеджмент.

От вас будет зависеть не только качество кода, но и весь проект.

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

Читать далее

Как мы ввязались в подход «Архитектура через способности» и довели её от абстракции до чего-то осязаемого

Level of difficultyHard
Reading time17 min
Views2.8K

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

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

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

Нужно было что-то менять на кардинально новое. Мы начали искать подход, который помог бы объединить отдельные инициативы в единую осмысленную систему. И здесь наше внимание привлёк подход Capabilities-Based Planning (CBP), про который мы узнали из TOGAF.

Так родилась простая, но, как оказалось, рабочая идея: «А давайте подойдём к нашей работе как к развитию бизнес-функции. Через capabilities»

Читать далее

Information

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