Добрый день! Сегодня я хочу обсудить с вами весьма противоречивую для меня операционную систему — macOS. Вокруг неё ходит немало легенд, слухов и мифов, которые я постараюсь сегодня развеять. Усаживайтесь поудобнее — статья будет интересна как опытным маководам, так и тем, кто никогда не видел эту операционную систему вживую.
User
Диалог — часть навигации или нет?
Как в вашей навигации устроена работа с диалогами? В статье я делаю обзор на то что такое Диалог в Material Design на Android. Когда это считается компонент, а когда это визуальный стиль и почему не надо помещать в навигацию то, что хочется открыть чтобы потом с этим...
Расширенная шпаргалка по корутинам Kotlin
Предположим, что вы уже какое-то время работаете с Kotlin-корутинами и знакомы с базовыми концепциями, такими как приостанавливаемые (suspend
) функции и билдер launch
. Однако по мере усложнения проектов вы всё чаще сталкиваетесь с необходимостью искать решения для более продвинутых задач и обращаетесь к поисковым системам или искусственному интеллекту за помощью.
Эта шпаргалка создана как удобный справочник для сложных сценариев работы с корутинами и содержит ключевые идеи, накопленные мной за всё время работы.
Дообучение модели GPT-2 (RUS) для генерации описаний заведений на основании названия, рубрики и оценки
В данной работе представлен процесс дообучения модели генерации текста на основе архитектуры GPT-2. Целью работы является демонстрация возможностей применения дообученной модели для генерации текстов, соответствующих определённым наименованиям заведений, рубрикам и оценкам, выставленных пользователями. Используя предварительно подготовленный датасет, который включал названия заведений, отношение к определённым рубрикам и рейтинг, мы обучили модель на генерацию описательных текстов, которые могли бы отражать характер и уровень заведений в зависимости от их оценочной характеристики.
Кто стоит за убийством Google Search?
Это история о том, как умер Google Search, и о причастных к его смерти людях.
Начинается она 5 февраля 2019 года, когда Бен Гомес, глава Google Search, столкнулся с проблемой. Джерри Дишлер, на тот момент вице-президент и главный управляющий Google Ads, вместе с Шивой Венкатараманом, тогда вице-президентом по разработке систем Google Search и Ads, объявили «код жёлтый» в отношении доходности Google Search. Причиной такого шага стало, цитирую: «Стабильно низкие ежедневные показатели», а также вероятность того, что к концу квартала доходность этого сегмента окажется в значительном упадке.
Новый подход к безопасному управлению состояниями в Kotlin-приложениях
Вот уже несколько лет я занимаюсь разработкой высокопроизводительных, полностью асинхронных, реактивных, мультиплатформенных приложений. За это время я успел наткнуться на несколько довольно тонких и трудно отлаживаемых проблем с управлением состояниями.
В этой статье я хотел бы поделиться с вами своим опытом, который поможет вам сэкономить множество часов и нервных клеток, и предложить новый подход к управлению состояниями, который лично я никогда раньше не встречал и который навсегда избавит вас от этих проблем.
Звукосниматели P-90 с Aliexpress — фейковые или нет?
Привет, Хабр! Мне в очередной раз захотелось экономно проапгрейдить одну из моих электрогитар. На свой страх и риск был заказан комплект из двух дешёвых звукоснимателей.
Было это приобретение опрометчивым или нет, мы сейчас увидим и услышим. Я расскажу, по каким признакам можно отличить настоящие звукосниматели P-90 от подделок, которые ими не являются. В этом начинании весьма пригодится компас.
Создание уведомлений на языке Kotlin
Как создать всплывающие уведомления в мобильном приложения, привязанные ко времени? Читаю документацию и разбираю код.
Физика датчиков электрогитары на примере конструктора из Поднебесной
Привет, Хабр! Сегодня мы увидим и услышим достоинства и недостатки недорогого набора для самостоятельной сборки электрогитары от фирмы IRIN. Этот конструктор можно заказать в любую страну СНГ через Aliexpress или Temu без каких-либо ограничений и заморочек. Зато имеются серьёзные проблемы с качеством компонентов и трудностями в их подгонке, но всё это можно преодолеть.
Гитару я буду собирать не простую, а кастомную. Установка третьего звукоснимателя и особая схема коммутации превратит её в Nashville Telecaster — инструмент «два в одном», сочетающий звучания и телекастера, и стратокастера.
Чтобы понять, как это работает, нам придётся открыть для себя тайны магнитной полярности, фазировки и расположения датчиков относительно струн и между собой.
Как жить и работать при нарушениях внимания?
▍ Предисловие. Флейта хулуси
Щёлк — я обнаруживаю себя за просмотром ролика на YouTube, в котором музыкант рассказывает, как ухаживать за флейтой из сушёной тыквы. Как я оказался здесь?! Зачем? На мгновение я пугаюсь того, что не могу вспомнить, каким образом попал на этот ролик. Я ведь не планировал узнавать про эти флейты и вообще сел работать. Холодок пробегает по коже.
Пытаюсь размотать предысторию, пройти путь своих блужданий обратно. Листаю историю браузера и вижу, что это уже третий по счёту ролик, а до этого я был на вкладке с «Авито». И тут понимаю, как это произошло. Я сел работать и на мгновение решил заглянуть на сайт по продаже вещей, посмотреть, есть ли сообщения, и там залип на странице с предложенными товарами, среди которых была эта самая флейта. Мне стало интересно, я полез сначала на Википедию, потом на YouTube. Ну нужно же послушать, как она звучит… Вот небольшой пример того, как живётся людям с неустойчивым вниманием.
▍ Дисклеймер
Я ожидаю справедливого негодования от тех, кого раздражает использование психологических проблем для оправдания нытья, бездействия и как аргумента для просьбы о снисхождении к себе. Давайте сразу проведём чёткую границу между теми, кто ведёт себя инфантильно, сваливая ответственность на психологические расстройства. Таких людей я не одобряю и их незрелое поведение порицаю. По другую сторону этой черты будут те, кому осознание своих проблем помогает стать более адаптивными, спокойными и обрести опору в понимании происходящего с ними.
Архитектура кроссплатформенного многомодульного приложения
Хочу поделиться своим опытом создания кроссплатформенного приложения на базе kotlin-multiplatform (KMP), организации его архитектуры, настройки для работы с различными библиотеками и особенностями его работы. Статья подойдет в первую очередь разработчикам, которые уже имеют опыт с многомодульными проектами в android и начинают изучать KMP. В конце я опишу свою реализацию архитектурного паттерна MVI и его применение в проекте.
Просто об архитектуре в Android
В нашем скромном мире разработки Android есть общепринятый подход к проектированию приложений - Clean Architecture, который рекомендуется Google. Несмотря на множество статей, посвященных этому стандарту, вопросы и споры вокруг того, как "правильно готовить" Clean Architecture, остаются актуальными.
Меня зовут Артем, я Android developer BSL. В данной статье я рассмотрю один из возможных путей - простота и гармоничность на основе Clean Architecture. Важно понимать, что это всего лишь один из вариантов, который основан на моем личном видении. В мире разнообразных подходов не существует идеала, и, возможно, именно в этом заключается привлекательность процесса разработки - в бесконечных спорах и поиске оптимального решения.
Улучшаем автокомплит в смешанных Java-Kotlin проектах
Недавно я наткнулся на статью, где описывается, как можно убрать мешающие варианты из автокомплита в Android Studio. Но тот способ касается только классов — с методами у меня так же не получилось, и тогда мне пришла идея.
Композим иконки. Улучшаем семантику и скорость отрисовки
Привет! Меня зовут Алексей, я работаю Android-разработчиком в Облаке Mail. Наша команда отвечает за возвращаемость пользователей в сервис. Чтобы сделать использование Облака приятным и удобным, мы проводим редизайн приложения, переписывая старый пользовательский интерфейс на Jetpack Compose по новым макетам. Для упрощения создания новых экранов мы разрабатываем UI Kit с готовыми Composable-компонентами.
Во время работы над новыми экранами мне часто приходилось использовать множество различных иконок, разбросанных по всему проекту. Это навело на мысль: было бы здорово собрать все иконки в UI Kit в единственном экземпляре и использовать их только оттуда — по аналогии с тем, как это делают дизайнеры в Figma. И тогда я вспомнил об одной особенности Jetpack Compose.
Сложности масштабирования Kotlin Multiplatform
Когда нативные мобильные команды изучают KMP, им довольно просто начать.
Основные трудности возникают, когда они пытаются масштабироваться.
Чтобы получить максимум пользы от KMP как для вашей команды так и для успеха самой платформы KMP, нужно облегчить этот путь.
В этой статье рассмотрим основные сложности и способы их решения.
Когда ваше приложение умирает – жизненный цикл activity в Android для QA
Если вы не знаете, что такое don’t keep activities, и не понимаете, что может произойти с приложением, когда вы его сворачиваете или когда меняете тему системы на тёмную, то можете считать, что ваше приложение не протестировано!
Что происходит под капотом вашего android приложения, зачем это знать тестировщику, какие критические сценарии можно и нужно проверять основываясь на жизненном цикле activity, и как это убережёт вас от краша на проде.
Кастомная тема Jetpack Compose
Уверен, что каждый, кто использовал цветовые схемы в Android приложениях для раскраски интерфейса, хоть раз задавался вопросом "А как можно поменять скучные цвета primary, secondary, tertiary и др. на свои?" В этой статье речь пойдет как раз про использование своей цветовой схемы для работы с приложением.
Compose Desktop ShadowJar
По состоянию на 12 августа 2024 года нет хорошего туториала/документации по Compose Desktop ShadowJar.
Существующие руководства помогут настроить ComposeMultiplatform для распространения нативных таргетов.
Но что, если вы хотите использовать ShadowJar, чтобы каждый пользователь мог запустить ваше приложение через .jar
?
Дисклеймер: Это руководство предоставит информацию о некоторых частных случаях, но в зависимости от вашего проекта шаги могут отличаться.
Эта статья, вероятно, не предоставит полного охвата вашего частного случая. Более того, не каждый пользователь сможет запустить созданный .jar файл. Например, пользователь с Java 8 не сможет запустить .jar файл, который был построен с использованием более поздней версии Java. Но это не относится напрямую к статье.
Использование алгоритма бинарного поиска для нахождения квадратного корня числа на Java
Наткнулась на leetcode на задачку с нахождением квадратного корня из неотрицального числа.
Кажется, что для решения такой задачки отлично подходит бинарный поиск, который по итогу даст нам логарифмическую временную сложность.
Итак, условие задачи здесь: https://leetcode.com/problems/sqrtx/description/
Но прежде чем приступить к решению, пройдемся по теории, что такое бинарный поиск и как его использовать.
Бинарный поиск - это поисковый алгоритм, который позволяет найти элемент в отсортированном массиве с логарифмической сложностью. Массив делится пополам, искомый элемент сравнивается с серединой массива, если искомый элемент больше, то поиск переходит в правую часть массива, и наоборот. После каждого перехода в правую или левую часть будет происходить сравнение серединного элемента с искомым до тех пор, пока он не будет найден.
Акцентирую внимание еще раз: массив должен быть отсортирован по возрастанию.
Если массив не отсортирован, то сортировка потребует минимум O(log n * n) временной сложности, что нужно учитывать.
Поэтому, если массив небольшой и неупорядоченный, то, скорее всего, лучше будет линейный поиск со сложностью O(n).
Итак, теперь вернемся к нашей задачке. Нужно найти квадратный корень из неотрицательного числа, где само число может быть любым от 0 до 231 - 1. Если корень из числа извлекается с остатком, например, корень из 8 это 2.82842…, то нужно округлить в меньшую сторону до целого, т.е. в данном случае до 2.
Начнем, по порядку, ограничив краевые случаи. Так, если х = 0, то можно сразу вернуть 0.
Вселенная без Большого взрыва
Тема обсуждения
Телескоп JWST показал, что сверхдальние галактики имеют особенности, требующие более длительной эволюции, чем их возраст в теории Большого взрыва. Снимки галактики GN-z11 показали наличие массивной чёрной дыры в её центре, которая не могла набрать свою массу за время, прошедшее с Большого взрыва [1]. Встречаются сообщения о наличии в спектрах удалённых галактик линий тяжёлых элементов, которые не могли успеть образоваться из водорода в цепочке термоядерных реакций и т.д.
В рамках стандартной модели объяснений этому найти не удаётся. Попробуем поискать объяснение за этими рамками.
Начнём издалека – существуют ли тахионы?
Возможность существования тахионов – гипотетических частиц, движущихся в вакууме со скоростью v, большей скорости света с, – сама по себе не противоречит специальной теории относительности (СТО), запрещающей лишь переходы "светового барьера". Но вопрос об их свойствах, включая их исключительную необнаружимость, остаётся открытым, несмотря на множество публикаций по этой теме.
В 1993 г. в УФЖ появилась статья [2], в которой проблема сверхсветовых перемещений была рассмотрена в особом ракурсе. Точнее, в том ракурсе, в котором она и должна была бы рассматриваться при последовательном применении СТО. Поскольку результаты рассмотрения нам потребуются в дальнейшем, придётся ход этого рассмотрения вкратце воспроизвести здесь, чтобы эти результаты не вызывали естественного недоверия.
Под последовательным применением СТО будем понимать всего лишь экстраполяцию на сверхсветовую область v > c постулата о равноправии всех инерциальных систем, в частности, в смысле описания любых физических явлений в трёхмерном пространстве и с одномерным временем и инвариантности интервала. В евклидовом пространстве-времени Минковского пространственные координаты выражаются действительными числами, временная – мнимыми: такие координаты часто удобнее, чем координаты псевдоевклидового пространства-времени.
Information
- Rating
- Does not participate
- Registered
- Activity