Обновить
126
8.2
Яна@Ioanna

Flow в Android: https://stepik.org/a/250941

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

Управление потоком в Kotlin Flow

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.7K

Поколение большого пальца – вот как нас называли. Какие глубокомысленные переписки мы ухитрялись вести на кнопочных телефонах, набирая текст SMS большим пальцем асинхронно с конспектированием лекций…

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

Естественно, в Kotlin Flow, где данные текут непрерывным потоком и легко провоцируют избыточные реакции, эта проблема стоит особенно остро. Например, если мы построим на Flow систему автодополнений, то увидим что-то такое:

Читать далее

Рынок эйчара

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели30K

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

- Меня зовут N. Вы откликались на вакансию xxx?

Читать далее

Тренажер французских числительных на Jetpack Compose

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели6.5K

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

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

Читать далее

Ныряем в холодные потоки Kotlin Flow

Время на прочтение5 мин
Охват и читатели3.1K

Лето — лучшее время для сплава. Поэтому, если вы пока не в отпуске, давайте устроим короткий сплав по асинхронным потокам данных в Kotlin.

Читать далее

Как ChatGPT удалил в нашем чате 555 спам-сообщений с точностью 98,38%

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.7K

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

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

Код на Python, скрины и цифры

Весеннее приложение для Android

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели987

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

Читать далее

Офисы большого города

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели1.5K

Жил-был типичный фрилансер и цифровой кочевник. Он привык встраивать работу в жизнь, не привязываясь ни к какой локации.

Работа всегда была при нем – в отелях, поездах, аэропортах, на ступенях собора святого Петра в Женеве и у трапа самолета в Ницце.

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

И в конце концов его разобрал интерес: что там за печеньки, на которые люди меняют свою свободу?

Дисклеймер: в статье описан собирательный образ опенспейса. Любые совпадения с реальными IT-компаниями случайны.

Читать далее

Корутины Kotlin: быстрый старт

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели2.4K

Мы привыкли учиться от простого к сложному, от аксиом к теоремам, от базовых понятий — к сложным концепциям, от «Hello, world!» — к многомодульным приложениям. Но библиотеке Kotlin Coroutines в этом смысле не повезло. И документация, и немногочисленные (особенно на русском языке) учебные материалы с первых страниц оглушают читателя потоком понятий, которые объясняются друг через друга. Приблизительно так: Job — это часть контекста, а контекст — это контейнер, содержащий Job. Раскрутить этот клубок бывает непросто.

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

Читать далее

Ключевание стоковых изображений с помощью Batch API от OpenAI

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели1.4K

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

С ключеванием неплохо справляется ChatGPT. Но пересылать ему картинки по отдельности, а потом копировать атрибуты вручную – слишком долго. Давайте автоматизируем этот процесс.

Читать далее

Интеграция Telegram-бота с ЮKassa

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели10K

Вроде бы есть у ЮКассы неплохая документация о настройке платежей через ТГ-бота, есть в интернете и несколько статей на эту тему, но все-таки на практике сталкиваешься со множеством неочевидных нюансов…

Опишу по шагам процесс подключения платежей для Python-бота на aiogram 3, при условии, что у его владельца уже оформлена самозанятость.

Читать далее

Мечта почемучки с GPT-4o и Telegram

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели8.3K

Вам никогда не хотелось узнать, что растет у вас под ногами? Мне – всегда! Но, увы, растения подписаны только в Ботаническом саду.

Раньше мне приходилось использовать интернет-поисковики, Google Lens, ботанические приложения и, наконец, бумажные определители.

Когда появился ChatGPT, я написала Telegram-бота, который с его помощью определяет растения. И не только растения...

Читать далее

Тестирование UI в Compose Multiplatform

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели4K

Собираясь писать UI-тесты для приложения на Compose Multiplatform, я столкнулась с дефицитом туториалов и документации по этой теме. Из полезного были только пара статей (https://habr.com/ru/articles/674112/) и выступлений на недавних конференциях, а примеры в основном сводились к щелчку по кнопке и проверке результата. Пришлось писать почти наугад, запуская код и изучая результат. Хочу поделиться с Хабром получившимися наработками.

Читать далее

Простейший полнотекстовый поиск на Python с поддержкой морфологии

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели12K

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

В первой версии MVP я частично решила эту проблему обычным поиском по подстроке (\b{term}, где \b – граница слова), что позволило найти вхождения отдельных слов без учета морфологии или с некоторыми внешними флексиями (например, -s, -ed, -ing). Фактически это поиск подстроки с джокером на конце. Но для многословных выражений и неправильных глаголов, составляющих весомую долю моего словаря, этот способ не работал.

После пары безуспешных попыток установить Elasticsearch я, как типичный изобретатель велосипеда и вечного двигателя, решила писать свой код.

Изобретение велосипеда на Python и pandas

Изучить словарь «Властелина Колец» при помощи кривой Эббингауза

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели6.7K

Все русские фанаты Толкиена знают, какая беда творится с переводами его великого романа (далее – ВК) на язык Пушкина и Достоевского. Поясню вкратце. Через советскую цензуру в 1982 году удалось протащить только первый том, дальше дело заглохло. Чтобы узнать, дошел ли Фродо до Роковой горы, десяток дилетантов независимо друг от друга перевели все остальное, кто как понял. Когда культура толкиенизма в России была уже сформирована, вышел, наконец, и полный профессиональный перевод. Но запал переводчика к тому времени уже иссяк, так что и этот труд вышел довольно неоднозначным: тюремный жаргон, ругательства, ежестраничные отсылки к советским реалиям…

Оригинал же производит на нашего читателя двоякое впечатление. С одной стороны, великолепная стилистическая работа гениального филолога, в руках которого жесткий английский язык гнется, как пластилин ("On he led them, into the mouth of darkness, and still on under the deep clouded night"). С другой - обилие идиом, фразовых глаголов, игры слов и вообще таких выражений, какие ни в одном словаре не сыщешь.

Поэтому я решила написать небольшое приложение, которое поможет освоить все это великолепие при помощи кривой Эббингауза.

Много кода на Python и Java

Почему аспирантура — зло

Время на прочтение5 мин
Охват и читатели105K

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

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

Читать далее

Опыт разработки программы-тренажера для проведения практических работ студентов

Время на прочтение4 мин
Охват и читатели16K
Столкнувшись с необходимостью проверить шесть десятков студенческих работ (6 практических работ * 10 студентов), я поняла, что этот процесс должен быть автоматизирован. Не говоря уже о сложности проверки рукописных решений, надо как-то решать проблему списывания. Еще в мою собственную бытность студенткой мне довелось сдавать практики по одной из дисциплин на компьютере со специально разработанной контрольно-обучающей программой-тренажером (под DOS). Сейчас захотелось повторить этот опыт.
Читать дальше →

Информация

В рейтинге
816-я
Откуда
Россия
Дата рождения
Зарегистрирована
Активность

Специализация

Бэкенд разработчик, Разработчик мобильных приложений
Java
C#
ASP.NET MVC
Python
SQL
ООП
PHP
C++
Kotlin
Разработка под Android