Тренды

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

Фреймворк Google Wire: автоматическое внедрение зависимостей в Go

Фреймворк Google Wire: автоматическое внедрение зависимостей в Go

Познакомимся с концепцией внедрения зависимостей и поработаем с фреймворком Google Wire, облегчающим определение и настройку зависимостей. Вперед, навстречу гибким и удобным в сопровождении приложениям Go!
Curry

Бесконечное каррирование в JavaScript

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

Плюсы и минусы программирования на Java

Не так много технологий могут похвастаться тем, что они актуальны уже более 20 лет. Однако в этом году Java заняла пятое место в списке...
Ошибка дублированного класса в Android для Kotlin

Ошибка дублированного класса в Android для Kotlin

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

Основы многопоточности

Вкратце знакомимся с понятием и принципами работы многопоточности, а также наглядно убеждаемся в преимуществах ее применения.
Visual Studio Code

Проекты на Python с помощью Visual Studio Code

Зачем использовать виртуальные среды в науке о данных? Управление зависимостями играет важную роль для разработчиков пакетов и ПО. Но как насчет специалистов по науке о...
В чем разница между ListView и RecyclerView?

В чем разница между ListView и RecyclerView?

Как Android-разработчик, вы наверняка стоите перед выбором: RecyclerView или ListView? Настало время выяснить, когда стоит использовать каждый из этих виджетов. Правильный выбор позволит вам обеспечить идеальный пользовательский опыт.
Python

Получаем данные Open Street Map в Python

Случалось ли вам работать над проектом, где были необходимы картографические данные определенной местности? Например, сколько шоссе пересекают город или сколько ресторанов расположено в заданной...
Как сделать анимированную кнопку загрузки с Jetpack Compose

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

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

Улучшение визуализации данных с помощью двухосевых диаграмм в Python

Хотите анализировать и представлять данные в удобном для чтения виде? Библиотека Plotly поможет улучшить визуализацию данных с использованием двухосевых диаграмм.
Netlas - полноценный инструмент интернет-разведки

Netlas — полноценный инструмент интернет-разведки

Ищете эффективные средства управление рисками информационной безопасности? С Netlas - инструментом интернет-разведки - потребуется всего несколько минут, чтобы создать область видимости любого целевого объекта и досконально исследовать ее.
Спецификатор constexpr в C++: зачем он нужен и как работает

Спецификатор constexpr в C++: зачем он нужен и как работает

Разберемся, что такое спецификатор constexpr и чем он отличается от const, а также рассмотрим особенности вычислений на этапе компиляции. Эти знания помогут избежать многих ошибок при программировании на C++.
Графовое моделирование данных на Java

Графовое моделирование данных на Java

Моделирование данных  —  это жизненно важная часть разработки ПО, а выбор подходящих структур данных или баз данных  —  основа успеха приложения или сервиса.  В этой...
Python

Встроенная база данных Python

Если вы разработчик программного обеспечения, то, скорее всего, вы знакомы с невероятно легкой базой данных SQLite или даже уже использовали ее. Она содержит практически...
Реализуем функцию управления взглядом с помощью SwiftUI, ARKit и SceneKit

Реализуем функцию управления взглядом с помощью SwiftUI, ARKit и SceneKit

Предлагаем изучить опыт создания на SwiftUI hands-free приложения с применением ARKit и SceneKit. Для лучшего понимания возвращаемых значений будет использован также фреймворк SwiftUI Charts.
Java Script

10 отличных JavaScript библиотек на 2020 год

JavaScript  —  язык интернета. Вы можете запускать его в браузере или на сервере, а можете использовать для мобильных приложений. Хотя он и хорош сам по...
Java-библиотеки, которые повысят вашу производительность

Java-библиотеки, которые повысят вашу производительность

Время - деньги, так что повышая эффективность труда - вы экономите одно и помогаете преумножить второе. Расскажем о нескольких полезных библиотеках, с помощью которых вы сможете избавиться от шаблонного кода и сосредоточиться на разработке бизнес-логики.
Jetpack Compose Canvas: 10 практических примеров

Jetpack Compose Canvas: 10 практических примеров

Разрабатываете пользовательское представление, игру или визуализацию данных? API Canvas обеспечит вам необходимые гибкость и контроль. Ознакомьтесь с его возможностями по созданию пользовательских рисунков.
Python

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

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

Как объединить несколько CSV файлов через 8 строчек кода

Зачем это нужно? Копипаст вручную — это, может, и не самый плохой вариант для небольшого количества файлов. Но представьте, что вам нужно объединить 100+ файлов… готовы ли вы сделать...
Ключевые вопросы для собеседования по Spring Boot в 2023 году. Часть 1

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

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

Моделирование лесных пожаров

Моделирование природных явлений - процесс непростой, но увлекательный. Он позволяет выявить закономерности, на которые затем можно ориентироваться в условиях реального мира. Сегодня поговорим о том, как создать модель лесных пожаров с помощью numpy и matplotlib и какие при этом факторы стоит учитывать. 
Как определить содержимое ZIP-файла без скачивания

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

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

Формирование эффективной и целостной культуры ревью кода

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

Создание и отслеживание первого рабочего потока Github Actions

Github Actions  —  это собственное решение Github для CI/CD (непрерывной интеграции и непрерывного развёртывания ПО). Оно стало доступно сообществу разработчиков с момента запуска Github...
Как усилить электронные таблицы Google возможностями ChatGPT

Как усилить электронные таблицы Google возможностями ChatGPT

Предлагаем улучшить электронные таблицы Google с помощью ChatGPT и начать работать с ними по-новому: более качественно, продуктивно и творчески.
Jupyter

Как легко оптимизировать Jupyter Notebook. Часть 2

Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче Часть 1, Часть 2 Магические команды (Magic) Magic — это отличные команды, упрощающие нашу жизнь при решении определенных...
8 полезных приемов программирования на C++

8 полезных приемов программирования на C++

1. Как включить все стандартные библиотеки одной командой Чтобы разом включить в проект все стандартные библиотеки, используйте #include <bits/stdc++.h>. Это особенно полезно в условиях дефицита времени...
Python

Полезные хитрости на Python от А до Я

Python — это один из самых популярных и востребованных языков программирования в мире. И на то есть множество причин: · прост в изучении; · мега-универсальный; · огромное разнообразие модулей...
Spring Data - сила доменных событий

Spring Data — сила доменных событий

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

Использование инверсии зависимостей в Go

Что такое инверсия зависимостей? Её идея заключается в том, что высокоуровневая логика не должна зависеть от низкоуровневых реализаций. Бизнес-логике в приложении не должно быть дела...
Python

Проверка типов в Python

Почему мы используем проверку типов? Помощь типов внесла существенные изменения в систему нашей разработки платформы Tiqets. Среди очевидных преимуществ:  Понижение когнитивной нагрузки при работе с кодом. Типы...
Android

Под капотом модификатора suspend

Корутины Kotlin предоставили Android разработчикам модификатор suspend. Изучив его, вы поймете, почему функция suspend не возвращает ничего до тех пор, пока не будет завершена...
Kotlin

Kotlin Android Extensions: полное руководство

Если у вас уже есть опыт разработки приложений для Android, вероятно, вы уже устали использовать findViewById, чтобы восстанавливать view. Или, может быть, вы уже сдались...
Чистая архитектура с MVVM

Чистая архитектура с MVVM

Для лучшего понимания чистой архитектуры давайте создадим примерный проект. Это приложение, на первой странице которого показывается список персонажей из мультсериала «Рик и Морти» с...
Реализация GitHub Action в контейнере Docker

Реализация GitHub Action в контейнере Docker

В предыдущей статье я подробно рассказала о сути GitHub Actions, архитектуре этого инструмента, о реализации потока событий через GitHub и создании собственного экшена с...
Angular и Wiz: вместе лучше

Angular и Wiz: вместе лучше

В Google решили объединить Angular и Wiz. Как ожидается, это приведет к улучшению обоих веб-фреймворков: Angular извлечет выгоду из производительности Wiz, а Wiz будет полезен опыт Angular-разработчиков. Рассказываем подробности.
Как написать на Java функцию, подобную sizeof в C

Как написать на Java функцию, подобную sizeof в C

В качестве упражнения реализуем функцию sizeOf() на Java, чтобы без проблем получать размеры разных типов данных, как в C.
Как PyPy ускоряет Python до уровня C?

Как PyPy ускоряет Python до уровня C?

Обзор PyPy, быстрого интерпретатора Python: улучшение производительности программы без изменения кода!
C

Игра на C# меньше 8 Кб

Как уменьшить размер исполняемого файла C#? Как человеку, выросшему во времена дискет и 56 Кбит модемов, мне всегда нравились небольшие программы. Я мог поместить много небольших...
Как создать NFT-маркетплейс с полным стеком

Как создать NFT-маркетплейс с полным стеком

Предлагаем подробное руководство по созданию полнофункционального NFT-маркетплейса. В реализации используются Polygon, Next.js, Tailwind, Solidity, Hardhat, Ethers.js и IPFS.
Как работают обобщения в Kotlin

Как работают обобщения в Kotlin

Краткое руководство по обобщениям в Kotlin: преимущества, принцип действия и значимость в создании оптимального кода.
Навигация во Flutter с использованием AutoRoute

Навигация во Flutter с использованием AutoRoute

Как настроить библиотеку пакетов AutoRoute? Как назвать страницы маршрута? Как управлять стеком и полностью очищать его, чтобы возвращаться на первую экранную страницу? Предлагаем краткое руководство по навигации во Flutter - оно даст ответы на эти и многие другие вопросы.
Что такое бессерверная платформа?

Что такое бессерверная платформа?

Понятие о бессерверной платформе Бессерверная платформа помогает разрабатывать и развёртывать функции AWS Lambda вместе с необходимыми им инфраструктурными ресурсами AWS. Фактически это интерфейс командной строки,...
Обновления в Android 11: Scoped Storage и другие улучшения конфиденциальности

Обновления в Android 11: Scoped Storage и другие улучшения конфиденциальности

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

Кросс-компиляция программ Rust для запуска на маршрутизаторе

Вы никогда не задумывались о том, чтобы запустить на домашнем роутере какой-нибудь пакет Ubuntu? Для этого можно было бы использовать контейнеры LXC. Всё это...
Язык С: классы памяти

Язык С: классы памяти

Классы памяти определяют область видимости и время жизни переменных и/или функций в программе, написанной на языке С. Они предшествуют типу, который модифицируют. В языке С различают четыре класса памяти. Рассмотрим их в данной статье.
Откажитесь от SQLite в пользу DuckDB

Откажитесь от SQLite в пользу DuckDB

Все еще пользуетесь SQLite? Пришло время забыть об этой библиотеке, поскольку теперь у нас есть DuckDB! Узнайте, что представляет собой DuckDB, почему и когда стоит использовать эту систему, а также о том, как интегрировать DuckDB в Python.
8 инструментов для предпринимателей, похожих на ChatGPT

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

ChatGPT - не единственный на рынке инструмент искусственного интеллекта. Рассмотрим 8 альтернатив, которые также могут пригодиться.
Язык R: прокачайте свои навыки до следующего уровня

Язык R: прокачайте свои навыки до следующего уровня

Узнайте, как анализировать и ускорить код на R. Напишите эффективный код в своем следующем проекте, следуя этим рекомендациям.
Компилируем меньше с SOLID

Компилируем меньше с SOLID

Привет всем Android-разработчикам! Давайте разберем принципы SOLID, вернее, один из них.  Недавно я углубился в SOLID и нашел один скрытый потенциал. Теперь хочу рассказать про...
Кастомизируем дефолтную заставку во Flutter

Кастомизируем дефолтную заставку во Flutter

Во Flutter невозможно переопределить экран заставки, который задан по умолчанию, а значит любой виджет-заставка, созданный внутри Flutter, будет отображаться только после дефолтной заставки. Пока...
Python

Руководство по использованию регулярных выражений Python

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

Тестирование сервиса ASP.NET Core с помощью xUnit

Вступление и предварительные условия Эта статья относится к серии, в которой мы создаём “ходячий скелет” (walking skeleton) приложения с помощью ASP.NET Core и Angular, а...
Конвейер данных в реальном времени с Kafka и ClickHouse

Конвейер данных в реальном времени с Kafka и ClickHouse

Рассмотрим нюансы при запуске обработки на Python. Создадим скрипт для выдачи сообщений, настроим ClickHouse для их получения и обработки. Поэкспериментируем с представлением в реальном времени и удалением данных.
Программируем с ChatGPT: 10 советов

Программируем с ChatGPT: 10 советов

Хотите извлечь максимальную пользу из ChatGPT? Эти советы помогут ускорить работу, внедрив в нее ChatGPT, но при этом не допустить критических ошибок.
Преобразование речи в текст с помощью ИИ на Python: пошаговый гайд

Преобразование речи в текст с помощью ИИ на Python: пошаговый гайд

Давно мечтали о виртуальном собеседнике на базе искусственного интеллекта? Представляем подробное руководство по созданию такой модели с помощью языка Python.
Почему стоит использовать Pathlib в качестве альтернативы модуля OS

Почему стоит использовать Pathlib в качестве альтернативы модуля OS

Применять модуль OS при работе с Python не совсем удобно. Сегодня расскажем о преимуществах библиотеки Pathlib, которая может стать достойной заменой этого компонента.
Ознакомление с Work Manager в Android

Ознакомление с Work Manager в Android

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

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

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

Зачем нужен AutoGPT

AutoGPT - очередное пополнение в семействе алгоритмов GPT (Generative Pre-trained Transformers), позволяющих на основе алгоритмов ИИ создавать текст, изображения и видео. А что же еще может делать AutoGPT?
Разработка макроса Rust для автоматического написания шаблонного кода SQL

Разработка макроса Rust для автоматического написания шаблонного кода SQL

Макросы облегчают жизнь разработчикам, позволяя автоматизировать некоторые процессы. Сегодня поговорим о возможностях метапрограммирования в Rust.
Shared Components

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

Компоненты привносят модульность в дизайн приложений. Модульность, в свою очередь, обеспечивает возможность повторного использования, благодаря которой можно создавать приложения без необходимости каждый раз изобретать...
Шаблон "запрос-ответ" в RabbitMQ: подход на основе EventListener в Node.js

Шаблон «запрос-ответ» в RabbitMQ: подход на основе EventListener в Node.js

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

Почему стоит использовать GoFr для разработки Golang-бэкенда?

Разрабатываете микросервисы? Тогда вам обязательно нужно освоить GoFr. С этим фреймворком ваша работа станет намного проще и эффективней. Как надежный эксперт, он будет руководить каждым вашим шагом, обеспечив исключительную производительность.
Jupyter

Как легко оптимизировать Jupyter Notebook. Часть 1

Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче Самое классное в технологиях— это множество людей, которые усердно трудятся для улучшения нашей...
Python

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

Делаем анализ тональности высказываний в Twitter за 3 минуты Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4 В этой части мы создадим скрипт Python, который при помощи Twitter поможет...
5 крутых функций Chrome DevTools, о которых не знают большинство разработчиков

5 крутых функций Chrome DevTools, о которых не знают большинство разработчиков

Среди множества интересных функций Chrome DevTools есть несколько по-настоящему крутых, но малоизвестных. Каждая из этих возможностей позволит делать на пару-тройку кликов меньше. Так почему бы не узнать о них прямо сейчас?
Go: точечная вставка значения в структуру

Go: точечная вставка значения в структуру

Подробно и с примерами рассмотрим функционал мощного и элегантного пакета dot для сложноиерархических структур. На основе тестов дадим рекомендации по его использованию.
Как защитить учетные данные с помощью переменных среды в Python

Как защитить учетные данные с помощью переменных среды в Python

Как быстро и без особых усилий скрыть учетные данные, исключив их передачу по сети небезопасным способом.
Data Science

QR-разложение матрицы

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

Что нового в Jetpack

Android Jetpack — это набор библиотек, направленных на то, чтобы помочь вам легко писать высококачественные приложения, поддерживая более старые версии Android. Спустя два года после запуска...
5 удивительных скрытых возможностей Python. Часть 1

5 удивительных скрытых возможностей Python. Часть 1

Хотите повысить уровень своих навыков написания кода? Возьмите на заметку 5 скрытых возможностей Python. Они помогут сократить время разработки, улучшить читаемость кода и повысить его эффективность.
Clean Architecture в Android для начинающих

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

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

Сможете ли вы решить эти 3 «простые» задачи на Python?

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

Знакомство с Anaconda: что это такое и как установить

Простое руководство по Anaconda и его установке на Ubuntu 16.04 (64-bit). Что такое Anaconda? Перед тем, как изучать Anaconda, рассмотрим Conda. Цитируем определение Conda с официального блога: Conda — это...
CPP

Тест рабочего цикла C++ через написание кода для декодера base85

Всем привет! Меня зовут Герман Диаго, по образованию я инженер компьютерной науки и уже долгое время увлечён разработкой разного рода ПО.  Большую часть своей карьеры...
CProgramming

Использование методов расширения в C# для элегантного и плавного кода

Методы расширения являются неотъемлемой частью современной платформы .NET и широко применяются в языке запросов LINQ, одной из лучших функциональных возможностей .NET. К сожалению, многих они отпугивают:...
Секреты в Android. Часть 1

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

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

ClickHouse: оконные функции с нуля

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

Введение в линейное программирование на Python 

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

Как реализовать древовидную сортировку в стандартной библиотеке Go

Двоичная куча Итак, двоичная куча — это:  Контейнер, предоставляющий свой максимальный элемент за время O(1), добавляющий элемент за O(log n) и удаляющий максимальный элемент за O(log n).Неполное бинарное...
Android

Изменение типа с помощью typealias

Когда определения типов отвлекают от значения вашего кода из-за нечитабельности, выразительности или просто длины, у Kotlin есть подходящая функция: typealias! Typealias позволяет давать альтернативные...
Отладка зависимостей в Gradle

Отладка зависимостей в Gradle

Узнайте, как с помощью dependencyInsight отлаживать версии транзитивных зависимостей в Android-приложении. Переопределение транзитивных версий зависимостей позволит избежать конфликта версий, ведущим к сбоям работы приложений.
Rust

Считаете, что Python лучше всех? Просто вы не имели дело с Rust

“Технологии прошлого спасут будущее от себя самого”, — так Грэйдон Хор, создатель Rust, пояснял, чего хотел достичь. Одна их ключевых черт Rust — использование технологий, хорошо знакомых академической среде,...
Swift: 7 секретов оптимизации

Swift: 7 секретов оптимизации 

Обзор 7 функциональностей Swift для создания качественного кода: ключевое слово indirect, атрибут @autoclosure, свойства Lazy и другие.
Взгляд в будущее: перспективы развития и влияния ИИ на изобразительное искусство и повседневную жизнь

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

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

Какие типы изображений можно создавать в Midjourney

Знакомьтесь с генератором изображений Midjourney. Эта нейросеть была создана в феврале 2022 года и уже пережила несколько апгрейдов. Рассказываем, что умеет Midjourney и как использовать этот инструмент в проектах.
Python

Модуль Collections в Python - Высокопроизводительный контейнер типов данных

Краткий обзор модуля Collections в Python Если реализацию сложно объяснить — идея плоха: The Zen of Python Python — достаточно мощный ЯП с поддержкой модульного программирования. Модульное программирование представляет собой процесс разделения...
Android/Kotlin/Jetpack Compose: обработка push-уведомлений

Android/Kotlin/Jetpack Compose: обработка push-уведомлений

Подробно обо всем: начнем с базовых настроек передачи и сохранения данных, получаемых в уведомлениях в Intents, а в итоге перейдем к данным, отображаемым в конкретном представлении Composable при нажатии на них пользователем. Сделаем акцент на извлечении токена, настройке MyFirebaseMessagingService, обработке сообщения, получаемого в закрытом/фоновом/неактивном/приоритетном приложении.
Генерация API-документации из docstrings на Python

Генерация API-документации из docstrings на Python

pdoc3 - профессиональная документация с LaTeX и markdown, автоматическая генерация HTML и CSS из docstrings
Python

5 достойных альтернатив спискам в Python

В Python наиболее популярным контейнером, вероятно, является list. Благодаря присущей ему гибкости список можно повсеместно использовать в проектах для хранения различных видов данных: целых...
Как с легкостью создать установщик пакетов Android

Как с легкостью создать установщик пакетов Android

Ищете простой способ создания установщика пакетов Android? Библиотека Ackpine позволит выполнить этот процесс, избавив вас от многих забот и большого объема кода.
Все, что вам нужно знать о переходе на реляционную базу данных AWS

Все, что вам нужно знать о переходе на реляционную базу данных AWS

Каждая компания располагает огромным объемом данных, которыми нужно корректно управлять. Чтобы руководство принимало взвешенные решения, оно должно быть хорошо осведомлено о принципах деятельности своей...
Выполнение AES/GCM в Android

Выполнение AES/GCM в Android

Столкнувшись с рядом проблем, связанных с выполнением шифрования и расшифровки AES в Android, я решил поделиться своим опытом. TL;DR: здесь можно найти готовое решение. Если...
Python

Взломщик captcha на Python

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

Почему гейм-дизайнеру нужно программирование

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

Контейнеризация в Python. Часть 2

Часть 1, Часть 2 Это вторая статья серии, посвящённой контейнеризации разработки в Python. В Части 1 мы уже разобрали лучшие практики контейнеризации Python-сервиса. Здесь мы...
Map-ориентированное программирование в Java

Map-ориентированное программирование в Java

Map-ориентированное программирование в Java может быть насколько удобным, настолько и беспорядочным. Предлагаем задуматься над соотношением затрат и выгод от использования Map в качестве универсального возвращаемого типа.
Мутационное тестирование: создай мутанта и прокачай тест

Мутационное тестирование: создай мутанта и прокачай тест

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

MongoDB: запрос, обновление и удаление документа 

В прошлой части руководства по MongoDB мы разобрали, как вставить документ. Теперь рассмотрим три остальных действия с документом.
Магия совместимости XML и Jetpack Compose

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

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

Почему точные модели не всегда полезны

Утверждение, которое кажется парадоксальным: точность модели - не главный признак ее эффективности! Важно также разработать продукт, оправданный с денежной точки зрения. Сегодня поговорим о том, как функции экономической полезности помогают связать МО-модели с нуждами клиентов.
Руководство по Docker. Часть 2: Docker Compose для JavaScript, Python и Redis

Руководство по Docker. Часть 2: Docker Compose для JavaScript, Python и Redis

Рассмотрим написание docker-compose.yml и запуск веб-приложения в связанных контейнерах Docker Compose на примере Node.js и Redis.
Обучение и развертывание пользовательской модели Detectron2 для обнаружения объектов в PDF-документах. Часть 1: обучение

Обучение и развертывание пользовательской модели Detectron2 для обнаружения объектов в PDF-документах. Часть 1: обучение

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