8 причин использовать Pydantic для улучшения парсинга и валидации данных
Совершенствование приложения тесно связано с усилением контроля качества данных в нем. Представляем вашему вниманию Pydantic - перспективный инструмент, о котором должен знать современный разработчик.
Секрет производительности Kafka
Kafka - это распределенная платформа потоковой передачи событий с открытым исходным кодом, обеспечивающая высокую пропускную способность. Платформа позволяет передавать большие объемы данных с минимальной задержкой - вот в чем ее секрет.
Обучение и развертывание пользовательской модели Detectron2 для обнаружения объектов в PDF-документах. Часть 1: обучение
Предлагаем руководство по созданию приложения компьютерного зрения. Ускорить процесс машинного обучения поможет библиотека нового поколения - Detectron2. В результате вы получите модель, способную "видеть" и извлекать нужную информацию из PDF-документов.
Автоматизируем создание отчета о расходах с помощью Python
Используйте Python и API Mindee для автоматизации скучных и повторяющихся задач, таких как составление отчетов о расходах. Всего несколько строк кода позволят эффективно организовать рабочий процесс и сэкономить немало времени.
Злые единицы - добрый Frink
Введение
Единица измерения — это физическое свойство, представляющее собой число, например, расстояние или время. Мы почти всегда говорим о системе единиц СИ.
У единиц могут быть...
Анализ аудиоданных с помощью глубокого обучения и Python (часть 2)
Предыдущая часть: Часть 1
Сверточные нейронные сети (CNN) схожи с обычными нейронными сетями: они состоят из нейронов с обучаемыми весами и сдвигами. Каждый нейрон получает...
Классификация текстов отзывов о фильмах с помощью Scikit-learn
Сначала мы посмотрим, как подготовить текстовые данные для подачи их в модель машинного обучения. Затем покажем, как использовать Scikit-learn для реализации модели классификатора, а...
Управление зависимостями в Python: файл pyproject.toml
Познакомимся с файлом pyproject.toml, рассмотрим его практическое применение и возможности в управлении зависимостями в проектах Python.
Феномен NFT и причины его популярности
NFT расшифровывается как non-fungible token (невзаимозаменяемые токены).
Взаимозаменяемость — это способность актива быть обмененным или замещенным аналогичными активами с одинаковой стоимостью.
Предположим, у вас есть одна...
Выполнение AES/GCM в Android
Столкнувшись с рядом проблем, связанных с выполнением шифрования и расшифровки AES в Android, я решил поделиться своим опытом.
TL;DR: здесь можно найти готовое решение. Если...
Распознаём 50 видов текста на C++ с Plywood
Посмотрим на скромный текстовый файл:
Этот файл может содержать удивительное количество различных форматов. Текст может быть закодирован как ASCII, UTF-8, UTF-16 (с прямым или обратным...
Хитрости объектно-ориентированного программирования. Часть 6 SLAP для функций
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4 и Часть 5.
Элементарные функции
Должен признать: очень долгое...
Нормальное завершение работы в Go
Go очень популярен среди разработчиков бэкенда, а его сообщество с каждым днем только растет.Лично я предпочитаю писать код на Go.
В этом кратком руководстве описывается...
Ключевое слово vararg и оператор spread в Kotlin
Что осталось за кадром?
В некоторых случаях необходимо определить функцию с переменным числом параметров; Вот пара примеров, с которыми вы, вероятно, сталкивались в Android:printf(String format, Obj......
Корутины Kotlin: как работать асинхронно в Android
Kotlin предоставляет корутины, которые помогают писать асинхронный код синхронно. Android — это однопоточная платформа, и по умолчанию все работает на основном потоке (потоке UI). Когда настает...
Null - это зло!
Не сомневаюсь, что заголовок статьи привлек ваше внимание! А теперь позвольте мне аргументировать свою точку зрения, поскольку процентов на 50%, а то и больше,...
Советы по Docker: очистка локального компьютера
Общее потребление
Docker великолепен, и в этом нет сомнений. Пару лет назад он представил новый способ сборки, доставки и запуска любых рабочих нагрузок, демократизируя использование...
Аннотации для параллелизма в Java: расцвечивание потоков
В Miro мы постоянно стараемся улучшить поддерживаемость нашего кода, применяя общепринятые практики, в том числе в вопросах многопоточности. Это не решает всех проблем, возникающих...
Понятие о виртуальных средах в Python
Введение в виртуальные среды Python с использованием VR
Нет, вам не нужны очки виртуальной реальности (VR) для чтения этой статьи. Будет достаточно внимательности и интереса...
Вся правда об использовании навигационной библиотеки Jetpack в модульных проектах
Jetpack - популярный инструмент современного разработчика. Но так ли удобна эта библиотека для модульных проектов?
Python FastAPI: OpenAPI, CRUD, PostgreSQL в Docker и внедрение зависимостей
Все шаги разработки первого приложения на FastAPI: настройка ORM SQLAlchemy, валидация схем Pydantic и менеджер пакетов Poetry.
9 советов, как выделиться среди Java-разработчиков
На протяжение десятилетий Java считается одним из самых популярных языков программирования. Все больше и больше людей желают освоить этот язык, из-за чего образуется сильная...
5 крутых функций Chrome DevTools, о которых не знают большинство разработчиков
Среди множества интересных функций Chrome DevTools есть несколько по-настоящему крутых, но малоизвестных. Каждая из этих возможностей позволит делать на пару-тройку кликов меньше. Так почему бы не узнать о них прямо сейчас?
Скрейпинг PDF с нуля на Python: библиотеки tabula-py и Pandas
Специалисту в области науки о данных приходится анализировать данные в любой форме, ведь они хранятся как в специальных SQL-базах, вроде PostgreSQL и MySQL, так...
Почему гейм-дизайнеру нужно программирование
Программисту не обязательно быть гейм-дизайнером, но каждый гейм-дизайнер должен быть программистом. Узнайте о том, почему навык написания кода жизненно важен в разработке игр и как им овладеть.
5 ключевых понятий Python и их магические методы
Введение
Когда дело касается именования функций в Python, мы вольны использовать нижние подчеркивания, наряду с буквами и числами. Символы подчеркивания между словами особой роли не...
Элегантное ООП на Python
Сила Python в его гибкости. Это один из самых простых языков для объектно-ориентированного программирования. Иногда его даже критикуют за чрезмерную гибкость. Я покажу самый...
Python — идеальный инструмент для любой проблемы
Размышления о моей первой программе на Python.
Размышления это всегда помогающее (а иногда и развлекающее) занятие. Из ностальгических соображений, конечно, если можно испытывать ностальгию по...
Лучшие практики для эффективного кода на Golang. Часть 1
Изучим рекомендации с примерами кода на Go. Рассмотрим отступы, импорт пакетов, названия переменных, длину строк, константы, обработку ошибок, глобальные переменные, структуры для сложных данных, комментарии, горутины.
Go. Прорабатываем 25 основных вопросов собеседования
Go, иначе называемый Golang, является открытым языком программирования, который похож на C, но при этом оптимизирован для более быстрой компиляции, удобной реализации конкурентности и...
Реализация структурированной конкурентности в Java и Kotlin
Направим наш пытливый ум в область изучения структурированной конкурентности, рассмотрим принципы ее реализации в Kotlin и Java, а по итогам научимся легко и безопасно запускать несколько программ.
Осваиваем реактивное программирование на Java
Асинхронный ввод/вывод уже какое-то время используется в обиходе. При этом разные языки реализуют его по-разному, но все предоставляют способ уменьшить количество потоков, давая вроде...
Строковые методы в Python
Узнайте, какие встроенные методы Python используются в строковых последовательностях
Строка — это последовательность символов. Встроенный строковый класс в Python представлен строками, использующими универсальный набор символов Unicode. Строки...
Встроенная поддержка контейнеров для .NET 7 — контейнеризация приложений .NET без Dockerfile
Рассмотрим стандартный подход Dockerfile для приложений .NET 6 и функционал нового SDK-пакета с настройками и параметрами для целей локальной разработки. Сделаем рабочий процесс GitHub Action для создания приложения, сборки образа Docker и отправки на DockerHub.
Анализ аудиоданных с помощью глубокого обучения и Python (часть 1)
Введение
Аудиоанализ - область, включающая автоматическое распознавание речи (ASR), цифровую обработку сигналов, а также классификацию, тегирование и генерацию музыки - представляет собой развивающийся поддомен приложений...
Как настроить базу данных с Firebase Firestore для Android
Начало
Загрузите стартовый проект с GitHub.
Откройте приложение в Android Studio и дайте завершитьсяGradle sync. Запустите приложение и вы увидите список покупок:
Создание проекта в Firebase Console
Первый шаг — это...
Продвинутое применение «select» в Ruby
На примерах изучим, как select комбинируется и объединяется с другими методами. Рассмотрим особенности ключевого слова next со сложными условиями.
Как работают обобщения в Kotlin
Краткое руководство по обобщениям в Kotlin: преимущества, принцип действия и значимость в создании оптимального кода.
Компилируем меньше с SOLID
Привет всем Android-разработчикам! Давайте разберем принципы SOLID, вернее, один из них.
Недавно я углубился в SOLID и нашел один скрытый потенциал. Теперь хочу рассказать про...
Встроенная база данных Python
Если вы разработчик программного обеспечения, то, скорее всего, вы знакомы с невероятно легкой базой данных SQLite или даже уже использовали ее. Она содержит практически...
Фреймворк Google Wire: автоматическое внедрение зависимостей в Go
Познакомимся с концепцией внедрения зависимостей и поработаем с фреймворком Google Wire, облегчающим определение и настройку зависимостей. Вперед, навстречу гибким и удобным в сопровождении приложениям Go!
Тренды в сфере графического дизайна в 2024 году
Подробно рассмотрим ожидаемые в 2024 году тренды в сфере графического дизайна, а также тенденции, которые будут набирать популярность в предстоящем году.
Swift: 7 секретов оптимизации
Обзор 7 функциональностей Swift для создания качественного кода: ключевое слово indirect, атрибут @autoclosure, свойства Lazy и другие.
Глубокое погружение в режим Copy-on-Write в pandas. Часть 1
Хотите разобраться в том, как новый режим Copy-on-Write (копирование при записи) изменил поведение pandas? Тогда углубимся в механизм Copy-on-Write и остановимся на некоторых фактах, которые полезно знать каждому пользователю pandas.
Зачем нужен AutoGPT
AutoGPT - очередное пополнение в семействе алгоритмов GPT (Generative Pre-trained Transformers), позволяющих на основе алгоритмов ИИ создавать текст, изображения и видео. А что же еще может делать AutoGPT?
Правила PRISM на языке Python
PRISM - простой, но конкурентоспособный алгоритм вывода правил методом индукции. Ознакомьтесь с его реализацией на языке Python и рассмотрите несколько практических примеров использования.
Расшифровка собеседования разработчика в Cisco 2024: Java, Spring Boot, Hibernate
Разберем полную запись технической части для продвинутых. Все это актуальные вопросы и ответы для желающих работать в Cisco Systems.
PEG парсеры и Python
Несколько лет назад кто-то спросил, имеет ли смысл переключать Python на парсер PEG. Или на грамматику PEG. Не помню точно. Тогда я ещё не...
Bash, Python или JavaScript: какой язык лучше для автоматизации?
Предлагаем сравнение преимуществ и недостатков Shell-сценариев на основе Bash, Python и JavaScript. Выбирайте язык программирования в соответствии с вашими потребностями.
Разработка продвинутого GUI на Python
Хотите, чтобы графические интерфейсы ваших приложений выглядели более привлекательно и улучшали взаимодействие пользователя с компьютером? Воспользуйтесь практическим руководством по разработке двух версий продвинутого GUI на Python.
Python для новичков: логические операторы, выражения присваивания и управление контекстом
Для большинства начинающих программистов Python стал отличной стартовой площадкой в мир разработок. Большинство же тех, кто уже владеет каким-либо другим языком программирования, подумывают о...
Обзор полезных инструментов для интроспекции объектов Python
Поделимся полезными советами и приемами для проверки объектов Python и получения информации о коде во время выполнения. В связи с этим рассмотрим такие инструменты интроспекции, как встроенные функции, атрибуты объектов и модуль inspect.
Почему в Python по-прежнему нужна функция map()
При наличии различных альтернатив функция map() в Python кажется излишней. Так нужна ли она в Python? Предлагаем обсудить этот вопрос вместе с Python-разработчиком.
Что нового в Python 3.10?
Разработка Python 3.10 стабилизировалась, и пришло время наконец-то протестировать все те новые функции, которые войдут в финальный выпуск.
Мы расскажем все самое интересное о том,...
Проблема и решение: присвоение имени файлу
Проблема: стандартный изменяемый объект
Но сначала разберёмся: что такое изменяемый объект в Python? Изменяемые объекты — это такие объекты, которые можно поменять. Список, множество и словарь — всё это...
Как я создавал систему для алгоритмического трейдинга на Rust и о чем сожалею
Вы когда-нибудь ныряли в бассейне с цепными пилами на дне? Не удивляйтесь, но что-то похожее можно испытать при первом погружении в Rust. Избежать подобного экстрима поможет ознакомление с опытом человека, решившего использовать Rust без предварительной подготовки.
Лучшие инструменты для разработки приложений под Android
Android предлагает разработчикам массу возможностей: это универсальная, открытая платформа, используемая миллионами пользователей по всему миру, с удивительно простой в использовании площадкой для распространения приложений....
ТОП-5 законов для каждого UX-дизайнера
Когда люди слышат слово «дизайн», они обычно думают, что это творческая работа, которая подразумевает создание красивого внешнего вида. Но UX-дизайн доказывает, что привлекательный продукт...
Spring Boot, Kafka и WebSocket для отправки сообщений в реальном времени
Мгновенный обмен сообщениями необходим в приложениях социальных сетей, инструментах совместной работы и платформах прямых трансляций. При этом значительно улучшается взаимодействие между пользователями. Рассмотрим создание приложения для чата, используя Spring Boot, Kafka и WebSocket.
Обработка файлов на C
Какие функции используются для открытия, редактирования и закрытия файлов? Рассмотрим особенности их применения с текстовыми и двоичными файлами.
Давайте синхронизировать потоки в Python
Для меня это был волшебный момент, внезапный инсайт, когда я впервые узнал о многопоточности. Меня восхитила сама возможность параллельного выполнения действий, (хотя важно заметить, что...
Топ-10 магических команд в Python, которые повысят вашу продуктивность
Python не только самый универсальный язык программирования, но и самый гибкий, когда речь заходит об интеграции новых функций. Магические команды являются одной из таких...
Аннотации Java — основы
Разберем базовые аннотации Java и научимся применять их в собственном коде для упрощения как процесса работы, так и читаемости кодовой базы.
Что такое ViewModel
Представляем ViewModel доступным языком. Рассказываем, что такое ViewModel и как эффективно использовать этот компонент в Android-приложениях.
Quarkus — горячий тренд Java-разработки
С революционным фреймворком Quarkus разработка на Java станет еще проще, быстрее и эффективнее. Оцените его ключевые особенности и преимущества по сравнению со Spring Boot.
Двусторонняя связь без интернета: Nearby Connections
Двусторонняя связь, устанавливаемая без интернета, открывает новые возможности для пользователей. К примеру, позволяет работать большой командой и обмениваться видео, файлами и текстовыми сообщениями.
Конечно, существуют...
Программируем робота E-puck в симуляторе Webots
Хотите изучить робота, но у вас нет возможности его купить? А может, вы просто не знаете с чего начать? Тогда симулятор роботов Webots вам...
Лучшая IDE для Python-разработки в 2024 году
Обзор топовых сред разработки Python-проектов поможем понять, какая из них подходит именно вам. Помимо особенностей и возможностей каждой из них, вы получите рекомендации по началу работы с PyCharm - самой популярной IDE в профессиональном Python-сообществе.
Создание чат-бота с помощью LLM и LangChain
Хотите создать диалогового чат-бота на основе собственных наборов данных? Воспользуйтесь пошаговым руководством по разработке диалогового чат-бота с оптимизированной памятью с использованием LLM и LangChain.
Кто на свете всех сильнее - Java, Go и Rust в сравнении
Мне показалось интересным провести сравнение между Java, Go и Rust. Речь идет не о бенчмарке, а о сравнении таких характеристик, как размер выходного исполняемого...
Хотите стать классным разработчиком? Работайте с UX
В свою первую стажировку я проработал продукт-менеджером и UX-дизайнером всего лишь два месяца, однако узнал о проектировании куда больше, чем за время работы разработчиком.
Технические...
Новые инструменты Android 11 для обеспечения конфиденциальности и стабильности
В рамках наших постоянных усилий по созданию высококачественных приложений мы часто ищем области, куда можем инвестировать инструменты и ресурсы, которые дадут вам более ясную...
Ошибки в Rust: формула
Сравним философию обработки ошибок Go, Java и Rust. Рассмотрим ошибки на уровне крейта и модуля, попробуем создать иерархию ошибок. Как происходит отображение ошибок?
PostgreSQL вместо Kafka: способ реализации системы очередей
Очереди - ключевой элемент в распределенных системах. Поэтому так важно организовать их обработку наиболее оптимальным образом. Здесь о своем подходе к решению этого вопроса рассказывает представитель платформы работы с данными RudderStack.
Рабочая очередь в Go с RabbitMQ
Мы создадим систему рабочих очередей, в которой будут появляться новые задания. Обработчики (workers) будут следить за очередью и выполнять работу по мере поступления. Система...
Kubernetes: установка MicroK8s на локальном компьютере за 5 минут
В чем преимущества MicroK8s перед Minikube? Запустим его, проверим состояние кластера, добавим дополнения, научимся останавливать.
OpenTelemetry и Sentry - недооцененные инструменты трассировки распределенных систем на Golang
Краткое описание 🚶
Создадим небольшой пример инструментирования приложения на Golang с его настройкой, использованием OpenTelemetry и передачей получаемых трассировок на бэкенд Sentry. Вот ссылка на него...
Удалённые вызовы процедур в Golang
Что такое удалённые вызовы процедур?
Удалённый вызов процедур (RPC) — это подпрограмма в распределённых вычислениях. Реализация RPC напоминает реализацию локальных вызовов, но обычно они не идентичны. Как...
Лучшие iOS SDK инструменты за 2019 год
В 2019 году появилось множество приложений для iOS, которые однозначно стоит добавить на главный экран вашего устройства. Например, Mobike для бесстанционного проката велосипедов, Blinkist...
Понятие об умных указателях Rust
В этой статье мы разберемся, что именно представляют собой умные указатели, откуда они берутся и как работают.
Если по-простому, умный указатель — это абстрактный тип...
Лучшие практики Python для специалистов по обработке данных
Немало уже сказано о том, что специалисты по анализу и обработке данных не пишут чистый код. И тому есть объяснение: большая часть всей предварительной...
Программирование на Java. Глубокое погружение в ключевой функционал Java 21
Разберем новый LTS-выпуск: детализацию, проверку типов, решаемые с помощью записей проблемы, запечатанные классы/интерфейсы и подробнее - сопоставление с образцом. Чем обусловлены актуальность и популярность, каковы факторы значимости Java?
Простое объяснение интерфейсов на Golang
Что общего у электророзеток с интерфейсами? Как создавать интерфейсы правильно? Попробуем понять этого непонятного зверя!
Оптимизация начальной загрузки сервера с RocksDB
Усовершенствуем процесс развертывания, перейдя от Redis к локальному хранению данных. Интегрируем RocksDB в код, сделаем схему хранения данных. Попутно решим проблему устаревших данных, преодолеем трудности работы с обновлениями Kafka, разберемся с утечкой памяти.
Как создавать и публиковать консольные приложения на Python
Подробное руководство по созданию и публикации консольных приложений на Python
Консольные приложения — это те, которые вы запускаете в терминале. Скорее всего, вы уже пытались их создать. Или,...
Логи в Python. Настройка и централизация
Введение
Встроенный в Python модуль логирования разработан для того, чтобы дать вам детальное представление о приложениях с минимальными настройками. Начинаете ли вы работу или уже...
Развертывание безопасных Java-приложений на AWS EKS с GitLab CI/CD, Maven, Trivy и SonarQube
Настроим приложение, пройдем модульное тестирование, сканирование безопасности, анализ качества кода, сборку и контейнеризацию. Упростим сложные развертывания, а инструменты и процессы интегрируем в единый автоматизированный рабочий поток.
Ключевые вопросы для собеседования по Spring Boot в 2023 году. Часть 2
Хотите получить должность Java-разработчика или повысить свой профессиональный уровень? Ознакомьтесь с актуальными ответами на 50 ключевых вопросов по микросервисам Spring Boot, которые задают во время собеседования на должность Java-программиста или инженера ПО.
3 секретных оружия в арсенале Python
Я уже пишу на Python более 5 лет. Примечательно, что при этом мой арсенал инструментов с течением времени не увеличивался, а наоборот уменьшался. Многие...
Импорт в Python: часть 2
Часть 1, Часть 2
Система импорта Python
Мы видели много преимуществ системы импорта Python и способов их использования. В этой статье мы приподнимем завесу над тем, что...
Тест рабочего цикла C++ через написание кода для декодера base85
Всем привет! Меня зовут Герман Диаго, по образованию я инженер компьютерной науки и уже долгое время увлечён разработкой разного рода ПО.
Большую часть своей карьеры...
Язык C: константы и литералы
Константы - фиксированные величины, которые не изменяются во время выполнения программы. Эти фиксированные величины также называются литералами.
Лень писать игру на Rust одному? Позовите на помощь ChatGPT
На что способен ChatGPT? Заменит ли он в итоге программистов? Разберем его возможности на примере написания игры Pong и подумаем, не пора ли искать другую работу.
Осваиваем ViewThatFits. Часть 1
Рассмотрим критерии оценки и логику представления нового адаптивного контейнера макетов. Как выбирается отображаемое представление? Разберем концепцию «идеального размера».
Поддержание документации в актуальном состоянии с помощью Bit и GitHub
Написание документации для кода (будь то небольшая библиотека или полный набор микросервисов, взаимодействие с которыми необходимо другим разработчикам) — это занятие кропотливое и утомительное.
Основная...
Кэширование Redis для максимальной производительности в Spring Boot и Java
Кэширование помогает повысить производительность приложений за счет снижения нагрузки на такие ресурсы, как базы данных и удаленные сервисы. Рассмотрим, как применять Redis в качестве кэша в приложении Spring Boot для достижения максимальной эффективности.
Создаем веб-сканер страниц с помощью Python
Рассмотрим поэтапный процесс создания веб-сканера для отслеживания изменений и последующего оповещения посредством e-mail. Работаем с Python, Beautiful Soup и Pipedream.
Как написать хороший README: краткий курс
После Hacktoberfest в проектах с открытым исходным кодом появилось много новых правок. Только за октябрь было сделало более 400 000 запросов на включение кода. Это невероятно!
Я...
NetMock: простой подход к тестированию HTTP-запросов в Java, Android и Kotlin Multiplatform
Познакомимся с библиотекой NetMock, которая упрощает имитацию запросов и ответов в тестовых средах. Рассмотрим ее преимущества и сравним с другими аналогами.
Как создать простую браузерную игру с помощью Phaser 3 и TypeScript
Большую часть своего времени я занимаюсь backend-разработкой, поэтому я не могу похвастаться большим опытом во frontend. Какое-то время назад у меня возникло желание создать...
7 советов по очистке кода React
В этой статье собраны семь практических рекомендаций, помогающих создавать чистый и поддерживаемый код React.
Балансировка нагрузки и последовательное хеширование
Рассмотрим, как работает хеширование запросов при наличии в системе двух и более серверов и как его можно усовершенствовать для балансировки нагрузки.
Как легко оптимизировать Jupyter Notebook. Часть 1
Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче
Самое классное в технологиях— это множество людей, которые усердно трудятся для улучшения нашей...
Машинное забывание: почему забывание важно для ИИ
Посмотрим правде в глаза: никому не нравится забывать. Все мы расстраиваемся, когда не можем вспомнить, где оставили ключи или как зовут коллегу, с которым...
Alteryx - достойная платформа обработки данных?
Alteryx - это больше, чем просто инструмент обработки данных. Он отлично подходит для решения задач интеграции и анализа данных, а также может похвастаться множеством средств связи с системами и базами данных.