Тренды

Все что касается разработки: образовательные статьи, тренды, технологии, языки, фреймворки и многое другое!

Комбинации команд Unix/Linux, которые должен знать каждый разработчик

Комбинации команд Unix/Linux, которые должен знать каждый разработчик

Экономьте свое время, используя комбинации команд в терминале и скриптах. Они полезны во многих ситуациях, в том числе при повторном выполнении команд, мгновенном переходе в только что созданный каталог и определении статуса долго выполняемой команды.
Ключевые PHP-операторы

Ключевые PHP-операторы

Чтобы использовать язык PHP по максимуму, нужно уметь обращаться с его основными операторами. О них сегодня и поговорим.
Как определить содержимое ZIP-файла без скачивания

Как определить содержимое ZIP-файла без скачивания

Расскажем, как определить содержимое ZIP-файла и при этом обойтись без его скачивания! Для этого нам понадобятся всего 52 строки кода и немного полезных знаний!
Создание собственной симуляции активной материи на Python

Создание собственной симуляции активной материи на Python

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

Не самые очевидные советы по написанию DTO на Java

Как облегчить себе жизнь при работе с Data Transfer Object: создаем неизменяемые DTO, избегаем нулевых значений и упрощаем инициализацию, руководствуясь книгой "Java: эффективное программирование".
Python

Элегантное ООП в Python

Разбираемся с магическими методами в Python, облегчающими жизнь с ООП. Вам понравится! Что за магические методы?  Магические методы  —  это специальные методы в python, обрамленные двумя...
Управление средами Python на профессиональном уровне

Управление средами Python на профессиональном уровне

Все еще используете virtualenv? Попробуйте новый инструмент - virtualenvwrapper. Хотя virtualenv отлично управляет средами, virtualenvwrapper является его рекомендуемым дополнением. Сходство его команд с командами Linux облегчает запоминание операций.
Вопросы для собеседования iOS - Swift. Часть 1

Вопросы для собеседования iOS — Swift. Часть 1

Рассмотрим самый важный и частый вопрос - шаблон делегирования. А также проверки времени выполнения, соответствие NSObject классу Swift, протоколы.
Когда и зачем использовать оператор := в Python

Когда и зачем использовать оператор := в Python

Совсем недавно Python 3.8 представил оператор присвоения с двоеточием :=, аналогичный оператору присвоения =. Использование этого оператора позволяет ускорить и сократить код. Эта нотация берёт своё...
Rust: безопасный парсинг с нулевым копированием

Rust: безопасный парсинг с нулевым копированием

В Rust парсинг с нулевым копированием избавляет от ошибок безопасности памяти, возникающих в других языках. Руководство по использованию такого алгоритма позволит повысить общую производительность системы.
Golang

Интерфейсы в Go для повышения тестируемости кода

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

Извлечение текста из PDF-файлов с помощью Python: исчерпывающее руководство

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

Что нового в системной трассировке Android Studio

В Android Studio 4.0 мы пересмотрели UI профилировщика (Profiler), чтобы обеспечить более интуитивно понятный рабочий процесс записи работы ЦПУ. Мы продолжали вносить улучшения, основываясь...
Как сделать интеллектуальное приложение вопросов и ответов базы знаний с GPT-3 и Ruby

Как сделать интеллектуальное приложение вопросов и ответов базы знаний с GPT-3 и Ruby

Подготовим базу знаний с двумя скриптами для GPT-3 вопросов и обучим модель ответам по содержимому сайта. Поэтапно создадим ИИ вопросов и ответов, разберем отладку ответов и два способа доработки модели.
Малоизвестный пакет Go, который пригодится при выполнении SQL-миграций

Малоизвестный пакет Go, который пригодится при выполнении SQL-миграций

Пакет embed, который появился в Go 1.16, предоставляет возможность встраивать файлы и каталоги в бинарные файлы Go. Предлагаем узнать, как этот пакет используется для встраивания файлов миграции SQL в бинарный файл.
Как я создавал систему для алгоритмического трейдинга на Rust и о чем сожалею

Как я создавал систему для алгоритмического трейдинга на Rust и о чем сожалею

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

7 советов по улучшению анализа данных в Python

#1: Pandas Profiling Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report(): С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет...
Python

3 секретных оружия в арсенале Python

Я уже пишу на Python более 5 лет. Примечательно, что при этом мой арсенал инструментов с течением времени не увеличивался, а наоборот уменьшался. Многие...
Автоматизация скриншот-тестирования предварительных просмотров Compose с использованием отражения

Автоматизация скриншот-тестирования предварительных просмотров Compose с использованием отражения

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

Как использовать управляемые Gradle устройства с собственными девайсами

Реализуем абстракцию Device с устройствами и эмуляторами. Используем собственную ферму устройств для удаленного запуска тестов и распараллеливания выполнения на нескольких устройствах.
Python

Овладей Python, создавая реальные приложения. Часть 7

Приложение для сбора данных с Flask и PostgerSQL Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4, Часть 5 и Часть 6 Работа с базой данных и запросами пугает некоторых (а...
Python

Как создать Telegram бота с помощью Python

Представьте, что у вас есть бот в мессенджере, который присылает вам случайно выбранную картинку с собачкой, когда вам захочется. Звучит здорово, да? Давайте сделаем...
3 приема для определения функций в Python

3 приема для определения функций в Python

Пополним копилку знаний по Python полезными приемами для определения функций. Разберем применение аргументов по умолчанию, подсказок типов, конструкции *args и **kwargs.
Покрытие кода в Rust

Покрытие кода в Rust

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

Почему большинство программистов выбирают Python

Python - второй (после JavaScript) по распространенности язык программирования, который используют 15,7 млн человек. Рассказываем, с чем связана его популярность и как понять, подходит ли он именно вам.
Производительность в Jetpack Compose: стабильность и неизменяемость

Производительность в Jetpack Compose: стабильность и неизменяемость

Jetpack Compose  -  мощный набор инструментов для создания современных мобильных приложений. Рассмотрим особенности его работы с пропускаемыми и перезапускаемыми функциями, а также фактор стабильности и его роль в рекомпозиции.
Фреймворк The Composable Architecture

Фреймворк The Composable Architecture

Combine с закрытым исходным кодом Apple скоро заменят в TCA на код async/await, сделав его фреймворком с поддержкой нескольких платформ и, возможно, с портированием на другие языки. Рассмотрим функционал, преимущества, последние разработки, применение и план освоения TCA.
Основы безопасного программирования

Основы безопасного программирования

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

Взгляд в будущее: перспективы развития и влияния ИИ на изобразительное искусство и повседневную жизнь 

Сначала погрузимся в историю изобразительного искусства, а потом вернемся в современную эпоху, которую автор статьи называет Ренессансом искусственного интеллекта. Откроем горизонты будущего и спрогнозируем основные тенденции развития ИИ в искусстве и его влияние на повседневную жизнь.
Понимание шаблонов проектирования: шаблон "Строитель"

Понимание шаблонов проектирования: шаблон “Строитель”

Опытный разработчик должен иметь в своем арсенале различные устоявшиеся инструменты проектирования. Сегодня рассмотрим полезный шаблон "Строитель".
Python

Python: публикация ваших пакетов в PyPi

Примечание: исходный код можно найти на GitHub. Если вы работаете с Python, то, вероятно, знаете о пакетах, которые можно загрузить и импортировать в свои проекты...
Все о ключевых словах static и final

Все о ключевых словах static и final

Разберемся, как объявлять классы, методы и переменные с использованием ключевых слов static и final, а также узнаем, для каких случаев целесообразно их применять.
Язык С: структура программы

Язык С: структура программы

Прежде чем изучать основные строительные блоки языка C, рассмотрим в самых общих чертах структуру программы, чтобы использовать ее в качестве отправной точки в последующих главах.
Настройка Detekt с помощью каталога версий и convention-плагина

Настройка Detekt с помощью каталога версий и convention-плагина

Не упустите возможность поднять свою Android-разработку на новый уровень. Эти знания и инструменты помогут повысить качество кода и сделать Android-приложение надежным и поддерживаемым.
Класс данных в Kotlin

Класс данных в Kotlin

Что такое «класс данных» и чем он отличается от обычного класса? Какие проблемы решаются в Kotlin с помощью классов данных? Рассмотрим классы данных и разберемся, почему их используют вместо обычных классов.
Как скрывают секретные ключи и пароли в Python

Как скрывают секретные ключи и пароли в Python

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

LOESS в Rust

Пришло время перенести LOESS-код из Python на Rust? Предлагаем описание процесса переноса с оптимальными решениями при переписывании кода. Вы будете впечатлены возросшей производительностью переписанного кода!
Обработка событий по времени в бессерверной архитектуре

Обработка событий по времени в бессерверной архитектуре

Бессерверность  —  мир событий Когда-то в качестве серверов все размещали непрерывно запущенные демоны, но теперь мы вступаем в бессерверную эру, когда все запускается событиями. Это очевидно, если...
Как создать свой Twitter или управляемое данными приложение с Golang и Kafka

Как создать свой Twitter или управляемое данными приложение с Golang и Kafka

Сделаем легко масштабируемую систему с ML-алгоритмами для определения предпочтений пользователей. Заполним временну́ю шкалу, создадим тему, заведем задачу для получения и сохранения твитов из темы, проанализируем их с помощью тегирования.
8 инструментов для предпринимателей, похожих на ChatGPT

8 инструментов для предпринимателей, похожих на ChatGPT

ChatGPT - не единственный на рынке инструмент искусственного интеллекта. Рассмотрим 8 альтернатив, которые также могут пригодиться.
Python

Автоматизация работы с Python

Введение Работу по вводу данных можно разделить на следующие категории: Извлечение данных из таблиц (Excel, Google Sheets) и перемещение их в другое место (веб-страница или другая...
4 совета по работе с потоками и мьютексами в C++

4 совета по работе с потоками и мьютексами в C++

C++ представляет собой отличный язык программирования, который принято ассоциировать с высокой производительностью, а также доступным управлением памятью и указателями. Тем не менее в нем...
5 причин грядущего господства Go в мире программирования

5 причин грядущего господства Go в мире программирования

Еще пару лет назад Go считался языком с ограниченными возможностями. Однако сегодня у него есть как минимум 5 причин стать номером один в веб-разработке.
OOP

Хитрости объектно-ориентированного программирования. Часть 6 SLAP для функций

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.  Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4 и Часть 5. Элементарные функции Должен признать: очень долгое...
Создание общей библиотеки Linux

Создание общей библиотеки Linux

Краткая вводная инструкция по написанию общей библиотеки Linux на C++. Разберемся, что такое библиотека, и поэтапно ее создадим.
12 декораторов Python, которые улучшают код

12 декораторов Python, которые улучшают код

Хотите выполнять больше задач с меньшим количеством кода без ущерба для качества? Декораторы Python помогут сделать код чище, использовать его многократно и облегчить его сопровождение.
Пора отказаться от “@Input” и “@Output” в Angular

Пора отказаться от “@Input” и “@Output” в Angular

Ознакомьтесь с реализацией входов модели - новшества, введенного в Angular 17.3 для упрощения двунаправленной привязки данных. Отказ от традиционных декораторов @Input() и @Output() и принятие директивы @model позволит улучшить читаемость, сопровождаемость и общую реактивность Angular-приложений.
3 лайфхака по работе с музыкальным ИИ в условиях нехватки данных 

3 лайфхака по работе с музыкальным ИИ в условиях нехватки данных 

Нехватка данных - не повод сдерживать ваш энтузиазм! Практические советы эксперта в области музыкального ИИ помогут создать надежную модель даже с небольшим набором данных. Она позволит решать любые задачи - будь то определение тональности, обнаружение помех, распознавание инструментов или сравнение музыкальных фрагментов.
Подписки, чеки и StoreKit в iOS 14

Подписки, чеки и StoreKit в iOS 14

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

Что такое Flutter и зачем его изучать?

Сегодня доступно множество инструментов для мобильной разработки. Одним из них является Flutter, который в последнее время стал довольно популярным. Рассказываем, в чем секрет успеха Flutter и почему стоит обратить на него внимание.
Middleware Django: пользовательское ПО промежуточного слоя

Middleware Django: пользовательское ПО промежуточного слоя

Что такое middleware, как создать пользовательский Django middleware и как проверить стандартные? Всё, что нужно знать о связующем ПО.
Реализация односвязного списка в Golang

Реализация односвязного списка в Golang

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

4 новых продукта GitHub, которые изменят код

Совсем недавно GitHub провел свое первое виртуальное мероприятие — GitHub Satellite. Тысячи людей подключились к прямой трансляции, которая весь день радовала публику интересными докладами, сгенерированной музыкой...
Jetpack DataStore: улучшенная система хранения данных

Jetpack DataStore: улучшенная система хранения данных

Что такое DataStore На протяжении многих лет разработчики Android хранили небольшие фрагменты конфиденциальных пользовательских данных с помощью общих настроек (shared preferences). Этот подход имеет следующие...
Магия совместимости XML и Jetpack Compose

Магия совместимости XML и Jetpack Compose

Статья подскажет, как перевести проект с представлений XML на Jetpack Compose и воспользоваться всеми его преимуществами.
DataScience

Алгоритм Гровера - квантовые вычисления

Задача Предположим, у нас есть крупная база данных из N элементов. Мы хотим найти один из элементов, например p, по ID, скажем w. Используя классические...
Как использовать Laravel Sail с бэкендом Docker Desktop на WSL 2

Как использовать Laravel Sail с бэкендом Docker Desktop на WSL 2

Каждому разработчику рано или поздно приходится иметь дело с Docker и контейнерами. Посмотрим, как происходит установка Docker Desktop на Windows 10, как она интегрируется...
Язык C: введение и настройка среды

Язык C: введение и настройка среды

Операционная система UNIX, компилятор C и практически все прикладные программы UNIX были написаны на языке С. Он является наиболее широко практикуемым компьютерным языком.
Быстрое перенаправление в приложение с AutoVerify

Быстрое перенаправление в приложение с AutoVerify

Сайты с множественной переадресацией и поддержкой диплинков Представьте, что у вас есть сайт, к примеру, https://www.yoursite.com. Когда пользователь кликает по ссылке http://www.yoursite.com, где нет s...
Создай и играй: код для игры "Змейка" с кнопками управления в SwiftUI

Создай и играй: код для игры “Змейка” с кнопками управления в SwiftUI

Вспомним классическую игру "Змейка" и создадим для нее код в SwiftUI. Задача сложная, но интересная.
Создание среды AWS Boto3 на Python с Docker Compose

Создание среды AWS Boto3 на Python с Docker Compose

Развернем всего из одного файла среду Boto3 с изолированными контейнерами разработки и продакшена. Рассмотрим типичные команды Dockerfile для сборки образов, организуем и автоматизируем ее с помощью Docker Compose.
Функциональные возможности систем типов Julia и Rust

Функциональные возможности систем типов Julia и Rust

Я твёрдо убеждён, и многие со мной в этом согласятся, что прекрасным началом разработки программы является выявление подходящих представлений реальной проблемы, которую мы пытаемся...
Постквантовая криптография на Python, C и Linux

Постквантовая криптография на Python, C и Linux

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

Паттерны проектирования генеративного ИИ: полное руководство

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

Функциональное программирование  -  будущее компьютерной науки?

Функциональное программирование (ФП) существует уже на протяжении последних шести десятилетий, и на данный момент не прекращает попыток преодолеть повсеместное доминирование объектно-ориентированного программирования (ООП). В...
Golang

Go: стратегия встраивания и ограничение

ℹ️ В статье используется Go 1.13. Процесс встраивания состоит в замене вызова функции на тело этой функции. И хотя такая оптимизация увеличивает размер двоичного кода,...
OOP

Хитрости объектно-ориентированного программирования. Часть 2: Закон Деметры

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.  Предыдущие части: Часть 1   Единственный закон в программировании — это отсутствие законов. А закон Деметры — это, скорее, рекомендации, а...
Go & RabbitMQ

Рабочая очередь в Go с RabbitMQ

Мы создадим систему рабочих очередей, в которой будут появляться новые задания. Обработчики (workers) будут следить за очередью и выполнять работу по мере поступления. Система...
Kotlin

Как и для чего использовать нативную библиотеку сериализации Kotlin

Вывод из статьи В конце статьи вы узнаете, почему команда Kotlin создала новую библиотеку сериализации, несмотря на наличие многих продвинутых решений, таких как Moshi и Gson....
Clean Architecture в Android для начинающих

Clean Architecture в Android для начинающих

Даже до того, как я начал специализироваться на Android, меня, как разработчика, всегда восхищал хорошо структурированный, чистый и понятный в целом код. “Задача архитектуры программного...
Python

Овладей Python, создавая реальные приложения. Часть 2

Предыдущие части: Часть 1   Первая часть цикла получила множество положительных отзывов, которые мотивировали меня закончить цикл как можно скорее. Сделаю всё, что смогу. В первой...
Улучшение воспроизведения видео с помощью ExoPlayer

Улучшение воспроизведения видео с помощью ExoPlayer

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

Clean Architecture с Kotlin

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

Как сделать анимированную кнопку загрузки с Jetpack Compose

Задействуем широкий функционал библиотеки на Android для более привлекательного приложения с меньшим кодом, мощными инструментами и интуитивно понятными API на Kotlin.
Python

Пять отличных Python-библиотек для data science

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

Магия Pry для отладки кода Ruby

Начну с ситуации, знакомой каждому программисту: вы приступаете к выполнению кода и вдруг к вашему полному недоумению получаете сообщение об ошибке, или еще хуже — код...
Как я создал 2D-игру с помощью Ebiten за 40 минут

Как я создал 2D-игру с помощью Ebiten за 40 минут

Хотите создать видеоигру менее чем за час? Следуйте руководству по максимально упрощенной разработке 2D-игры с использованием языка Go и библиотеки Ebiten и возможностью развертывания на Windows, macOS и Linux. 
Программирование на Java. Глубокое погружение в ключевой функционал Java 21

Программирование на Java. Глубокое погружение в ключевой функционал Java 21

Разберем новый LTS-выпуск: детализацию, проверку типов, решаемые с помощью записей проблемы, запечатанные классы/интерфейсы и подробнее  -  сопоставление с образцом. Чем обусловлены актуальность и популярность, каковы факторы значимости Java?
Python

Вы умеете говорить на Python?

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

Хитрости на Python

Болтовня ничего не стоит. Покажите мне код. Эти приемы на Python весьма незаурядны и крайне полезны. Обмен значениями Создание одной строки из всех элементов списка Поиск самого частого значения...
Python

Обработка аргументов в Python с помощью argparse

Если вы хотите разрабатывать ПО на Python, то умение использовать argparse в своих скриптах будет крайне полезным. Если же вы специалист по данным, то,...
Заменят ли потоки данных циклы в Java?

Заменят ли потоки данных циклы в Java?

Затронем такую тему, как потоки данных в Java. Сравним их показатели производительности с циклами, а также выявим преимущества и ограничения в применении.
python

Как создавать анимированные графы в Python

Matplotlib и Seaborn — вполне приличные Python-библиотеки для создания превосходных графиков. Но такие графики получаются статичными, и крайне трудно подобрать для них красивое представление данных или...
Как освоить API-интерфейсы Metal с UIView и SwiftUI

Как освоить API-интерфейсы Metal с UIView и SwiftUI

Раскроем возможности программирования графических процессоров с Metal для создания сложной 3D-графики, обработки изображений и других задач. Предоставим фрагменты кода и рекомендации для применения Metal в собственном приложении iOS или macOS.
Jupyter

Интерактивные отчеты в Jupyter Notebook

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

Регулярные выражения для извлечения информации о расходах из текстового файла

Паттерны регулярных выражений (ReGex) выглядят как какая-то ерунда и все же являются мощным инструментом для извлечения информации из текста. Куча, казалось бы, случайных знаков...
5 навыков работы в Python на прокачку

5 навыков работы в Python на прокачку

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

10 полезных советов по повышению производительности при работе с VS Code

Visual Studio Code - не просто текстовый редактор. Это мощный инструмент, который значительно повышает производительность и оптимизирует рабочий процесс. Воспользуйтесь этими советами по работе с ним.
Секреты в Android. Часть 2

Секреты в Android. Часть 2

В этой части рассмотрим процесс получения секретов из удаленного хранилища (сервера) с помощью сервисов Firebase Remote Config, API Play Integrity и Firebase App Check. Такой подход значительно повысит безопасность приложений, и злоумышленникам будет сложнее получить секреты. 
Ключевые вопросы для собеседования по Spring Boot в 2023 году. Часть 1

Ключевые вопросы для собеседования по Spring Boot в 2023 году. Часть 1

Хотите получить должность Java-разработчика или повысить свой профессиональный уровень? Ознакомьтесь с актуальными ответами на 50 ключевых вопросов по микросервисам Spring Boot для собеседования с кандидатами на должность Java-программиста или инженера ПО.
Python

Инструменты для создания виртуального окружения в Python

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

Основы Android-разработки в Revolut

Хотите заглянуть за кулисы онлайн-банка Revolut? Сотрудники компании рассказали о том, как устроены ее команды и рабочие процессы.
Выбор лучшего фреймворка для создания мобильного приложения

Выбор лучшего фреймворка для создания мобильного приложения

Для создания мобильных приложений есть множество фреймворков. Но выбрать нужно лишь один. Совсем недавно каждый разработчик занимался разработкой мобильных приложений, используя Software Development Kit (SDK),...
ScyllaDB в K8S: как справляться с интенсивными рабочими нагрузками на спотовых экземплярах без простоев

ScyllaDB в K8S: как справляться с интенсивными рабочими нагрузками на спотовых экземплярах без простоев

Почему Scylla предпочтительнее, чем Cassandra и Mongo? Создадим высокодоступный оператор Scylla для кластера, настроим дашборды Grafana, оповещения, средства мониторинга, резервное копирование с VolumeSnapshots и расширение тома.
LangChain + Streamlit + LlaMA: установка диалогового бота с ИИ на локальный компьютер

LangChain + Streamlit + LlaMA: установка диалогового бота с ИИ на локальный компьютер

Предлагаем пошаговое руководство по созданию с нуля личного помощника с ИИ. В руководстве используются большая языковая модель LLaMA 7b и Langchain - библиотека с открытым исходным кодом, специально разработанная для бесшовной интеграции с LLM.
Развертывание Kubernetes с пользовательским файлом index.html в поде Nginx с ConfigMap

Развертывание Kubernetes с пользовательским файлом index.html в поде Nginx с ConfigMap

Настроим веб-страницу index.html в поде Kubernetes с ConfigMap и веб-сервером Nginx. Убедимся в ее работоспособности, выведя сообщение в командную строку и веб-браузер.
iOS

Лучшие iOS SDK инструменты за 2019 год

В 2019 году появилось множество приложений для iOS, которые однозначно стоит добавить на главный экран вашего устройства. Например, Mobike для бесстанционного проката велосипедов, Blinkist...
Python

Виртуальные Окружения в Python

В процессе работы над проектом мне потребовалось проверить, работает ли пакет Flask с установленным у меня Python. При запуске команды для установки Flask я...
Руководство по наиболее востребованным базовым командам SQL

Руководство по наиболее востребованным базовым командам SQL

Изучим основные команды и операторы - базовые строительные блоки MySQL, применяемые в запросах к базе данных, а иногда и самостоятельно. Сохраните себе в закладках эту шпаргалку по SQL.
Android

Новое в Android 11

Оцените превью для обновлений некоторых уже существующих функций, а также доступных нововведений, таких как IME animation control. Синхронизированные анимации IME Идея заключается в том, что IME (редактор...
Программирование на квантовых компьютерах: какой язык учить?

Программирование на квантовых компьютерах: какой язык учить?

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

Хотите стать счастливым и продуктивным программистом? Используйте эти 5 методов из Психологии!

1. Войдите в состояние потока Во всемирно известной книге “Поток: Психология оптимального переживания” психолог Михай Чиксентмихайи раскрывает секрет того, как добиться максимальной производительности. Суть заключается...
4 принципа качественного рефакторинга функций

4 принципа качественного рефакторинга функций

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

3 худших совета по осваиванию науки о данных

К сожалению, существенная часть информации либо не соответствует действительности, либо просто недоступна для начинающих. При наличии достаточного опыта можно легко распознать и проигнорировать ее, однако новичку практически невозможно отделить зерна от плевел, что в итоге приводит к потере времени и разочарованию.
Rust: выполнение HTTP-запросов и обработка ответов с помощью reqwest

Rust: выполнение HTTP-запросов и обработка ответов с помощью reqwest

Изучим запросы GET и POST, отображение HTTP-ответа на предопределенную структуру и нюансы обработки различных кодов состояния HTTP. Весь код  -  в репозитории GitHub.