Эволюция монолитных систем
Как предотвратить энтропию монолитных систем, свойственную технологическим стартапам? Воспользуйтесь рекомендациями эксперта, чтобы обеспечить успех и рост компании, избежав дорогостоящих ошибок.
Автоматизация платежей со Stripe и Golang: руководство разработчика
Реализуем интегрируемый в онлайн-платформы функционал автоматической оплаты услуг, создадим сеанс оформления заказа для клиента на Go, Stripe и Gin. Разберемся, как с помощью хуков здесь устраняются основные сложности.
Android/Kotlin/Jetpack Compose: обработка push-уведомлений
Подробно обо всем: начнем с базовых настроек передачи и сохранения данных, получаемых в уведомлениях в Intents, а в итоге перейдем к данным, отображаемым в конкретном представлении Composable при нажатии на них пользователем. Сделаем акцент на извлечении токена, настройке MyFirebaseMessagingService, обработке сообщения, получаемого в закрытом/фоновом/неактивном/приоритетном приложении.
Поиск утечек памяти с помощью автоматизированных тестов
Процесс управления памятью может стать фактором, весьма затрудняющим работу в приложениях iOS. В связи с этим нужно уделять пристальное внимание размещенным в памяти object...
Покрытие кода в Rust
Покрытие кода - техника, которую должен освоить каждый тестировщик. Сегодня поговорим о ее полезных особенностях и возможностях, о которых, возможно, знают не все специалисты.
Области видимости в Android и Hilt
Определение области видимости объекта A в объекте B означает, что на протяжении всего жизненного цикла объект B всегда будет иметь один и тот же...
Новые инструменты Android 11 для обеспечения конфиденциальности и стабильности
В рамках наших постоянных усилий по созданию высококачественных приложений мы часто ищем области, куда можем инвестировать инструменты и ресурсы, которые дадут вам более ясную...
Rust: безопасный парсинг с нулевым копированием
В Rust парсинг с нулевым копированием избавляет от ошибок безопасности памяти, возникающих в других языках. Руководство по использованию такого алгоритма позволит повысить общую производительность системы.
Настраиваем автоматизированную модерацию с помощью OpenAI
Бьетесь над задачей максимизации пользовательского опыта? Воспользуйтесь инструментами, основанными на искусственном интеллекте.
Понимание и реализация смарт-указателя Arc и мьютекса на Rust
Изучим модель владения, функционал потоков области видимости, попробуем самостоятельно разобраться с типажами-маркерами Send и Sync.
Настройка компонентов и тем Material UI: современный подход
Воспользуйтесь руководством по созданию ультрамодульной библиотеки компонентов с помощью Bit и Material UI. Она обеспечит расширенный набор настраиваемых компонентов и тем с предварительным просмотром и документацией, а также многократно используемую среду разработки.
Реализация шаблона Saga на Go: практический подход
Разберем нюансы управления продолжительными транзакциями в распределенных системах, реальные сценарии применения. Проиллюстрируем примером действие компенсации в этапах транзакций, откат предыдущих транзакций.
Как читать CSV-файлы на Java с помощью Open CSV
Вкратце рассмотрим возможности по обработке CSV-файлов на языке Java, ведь этот формат файлов часто встречается в повседневной работе.
Самый быстрый способ cоздать CRUD API в Golang
Поэтапно сделаем пригодный для промышленной эксплуатации API. Менее чем в 50 строках кода реализуем его с миграциями, REST-обработчиками, функцией main, создадим простейший компонент - слой данных.
Методы wait(), notify() и notifyAll() в Java
Ознакомьтесь с ключевыми аспектами языка Java: межпотоковое взаимодействие, синхронизация, многопотоковая обработка. Особое внимание обратите на работу методов wait(), notify() и notifyAll() и рекомендуемые практики их применения.
Как создать бессерверное приложение с помощью AWS Chalice
Недавно я наткнулся на AWS Chalice и был очарован его простотой и удобством пользования.
AWS Chalice — это бессерверная платформа, которая позволяет создавать бессерверные приложения...
Как использовать GPT-3 для поиска и рекомендаций текстового контента
Общий обзор по генерации векторов GPT-3 для анализа сходства документов. Научимся вычислять косинусное сходство и на его основе определять максимально похожие документы.
5 функций CLI на Rust для оптимизации привычных инструментов
Хотите стать более продуктивным? Rust предоставит вам возможность обновить некоторые из повседневных инструментов командной строки!
C++: подробное руководство по std::accumulate
На примерах разберем нюансы этой функции, в том числе ее отличия от параллельных алгоритмов C++17. Рассмотрим реальный сценарий и типичные ошибки.
Kotlin изнутри: как работают inline-функции
Inline-функции могут как и увеличить код, так и повысить его производительность. Чтобы с выгодой использовать этот Kotlin-инструмент, необходимо понять принцип его действия, а заодно разобраться в том, зачем нужен crossinline и как работает reified.
Последовательное объединение адаптеров с помощью MergeAdapter
Пример использования: отображение верхнего и нижнего колонтитулов списка.
MergeAdapter — это новый класс, доступный в recyclerview:1.2.0-alpha02, который позволяет последовательно объединять несколько адаптеров для отображения в одном RecyclerView....
Ошибка дублированного класса в Android для Kotlin
Разберем сценарий, в котором появилась ошибка, и поэтапно ее устраним. Воспользуйтесь предлагаемым решением, чтобы быстро с ней справиться.
Как обеспечить возможность обнаружения для совместно используемых компонентов
Компоненты привносят модульность в дизайн приложений. Модульность, в свою очередь, обеспечивает возможность повторного использования, благодаря которой можно создавать приложения без необходимости каждый раз изобретать...
Ошибки в Rust: формула
Сравним философию обработки ошибок Go, Java и Rust. Рассмотрим ошибки на уровне крейта и модуля, попробуем создать иерархию ошибок. Как происходит отображение ошибок?
10 практических примеров использования функций высшего порядка при разработке Android
Функции высшего порядка могут значительно повысить качество и удобство сопровождения кода. Рассмотрим 10 полезных примеров того, как их можно использовать.
Создание бесчисленных областей предпросмотра в AWS с помощью Lambda@Edge
Целью большинства команд веб-разработки является переход к непрерывному развёртыванию, для которого одним из существенных факторов может послужить наличие у каждой ветви функции собственного URL...
Код на Python медленный? Вот 5 простых решений, чтобы быстро его ускорить
Бывший сотрудник Google, разработчик на Django и просто энтузиаст Python делится накопленным опытом оптимизации кода. При беглом взгляде рекомендации кажутся очевидными, но читайте до конца: скорее всего, вы вспомните средства работы с кодом, о которых из-за постоянного изучения чего-то нового успели забыть.
Лучшие iOS SDK инструменты за 2019 год
В 2019 году появилось множество приложений для iOS, которые однозначно стоит добавить на главный экран вашего устройства. Например, Mobike для бесстанционного проката велосипедов, Blinkist...
Функциональные и гибкие Shell скрипты
Шелл скрипты vs python/Perl
Кто вообще пишет шелл скрипты в 2019’ом? Хороший вопрос. Что же, я пишу. ¯_(ツ)_/
На это есть веские причины, они описаны здесь...
Автоматизация создания файлов для нового экрана с плагином для Android Studio
Введение
Приходилось ли вам работать над проектом со сложной архитектурой, в котором для создания нового экрана нужно добавить несколько новых файлов с определенным содержимым? Например,...
Как я создавал систему для алгоритмического трейдинга на Rust и о чем сожалею
Вы когда-нибудь ныряли в бассейне с цепными пилами на дне? Не удивляйтесь, но что-то похожее можно испытать при первом погружении в Rust. Избежать подобного экстрима поможет ознакомление с опытом человека, решившего использовать Rust без предварительной подготовки.
C++: подробно о реализации двусторонней очереди
Изучим особенности реализации deque, ее отличия от vector и разберем нюансы производительности. Проиллюстрируем примерами и реальным сценарием.
C++: практическое руководство по проверке наличия файла
Изучим различные методы проверки, проиллюстрируем примерами реального применения. Какие факторы учитываются при выборе метода и где они сбалансированы оптимально?
Проект API с точки зрения разработчика Android
Обучающее руководство по созданию API с точки зрения разработчика Android. Рассмотрим разные аспекты данного процесса: структуру проекта, архитектуру, точки входа, внедрение зависимостей и тестирование.
Как Scalene с ИИ-рекомендациями оптимизирует код Python
Изучим характеристики и принцип работы профилировщика Scalene, который помогает ускорять код и сокращать потребление памяти. Дополнительно рассмотрим преимущества его совместной работы с OpenAI.
Анализ инструментов Go для проверки уязвимостей безопасности
Уязвимости безопасности существуют в любом языке и любом коде. Одни из них пишут сами программисты, но большая часть проистекает из исходных зависимостей и даже базового Linux. Проведем полноценный обзор официальных инструментов Go для защиты кода: govulncheck, Github security dependency scan и gosec.
Корутины и управление разрешениями в Android
Из этой статьи вы узнаете, как обрабатывать разрешения среды выполнения Android, появившиеся в Android Marshmallow, с помощью корутин (сопрограмм). Такой подход позволит обрабатывать разрешения...
Основы SQL: разница между GROUP BY и PARTITION BY
Несмотря на кажущуюся простоту, SQL может таить в себе немало особенностей, о которых лучше узнать заранее. Сегодня рассмотрим основные различия между операторами GROUP BY и PARTITION BY, а также их основные сценарии использования.
PHP: принятие решений
Рассмотрим, как работают операторы принятия решений if, elseif… else и switch.
Подробнее о функциях высшего порядка
В JavaScript, функции являются “функциями первого класса”, соответственно они могут:
храниться в переменной, объекте или массиве.
передаваться как аргументы в другую функцию.
и даже...
Подписки, чеки и StoreKit в iOS 14
Из всех способов получить деньги за работу, которую вы вкладываете в разработку приложений, лучшим на сегодняшний день является подписка. В статье я надеюсь рассмотреть...
Создай и играй: код для игры “Змейка” с кнопками управления в SwiftUI
Вспомним классическую игру "Змейка" и создадим для нее код в SwiftUI. Задача сложная, но интересная.
Интеграция Google Maps в приложение Jetpack Compose
Научимся интегрировать Google Maps в приложение Jetpack Compose с помощью библиотеки Maps Compose. В связи с этим рассмотрим ряд требуемых компонуемых функций и параметров.
Выражение when в Kotlin
Рассмотрим особенности использования выражения when в Kotlin.
Базовый случай использования
На фрагменте ниже приведен базовый случай использования выражения when:
fun myFunction(valueToTest: Any) {
when...
Реализация ViewPager в Swift 5
Без всякой помощи сторонней библиотеки, опираясь на подробное пошаговое руководство, научимся создавать переключатель страниц в Swift 5. Он будет состоять из представлений со вкладками и страницами.
CHRONOS: современный мониторинг работоспособности приложений
Познакомимся с Chronos, бесплатным инструментом для отслеживания, записи и отображения метрик с привычным npm-пакетом. Вот что рассказывают разработчики Chronos о его текущих и планируемых возможностях.
Разностный алгоритм Майерса и наблюдаемые свойства в Kotlin - как их объединить, чтобы облегчить жизнь разработчика
Посмотрите на анимацию ниже. Это группа разноцветных элементов, которые при нажатии кнопки начинают перемещаться. С точки зрения разработчика, эти элементы размещаются внутри RecyclerView с...
Шаблоны проектирования распределенных систем и не только
Изучим преимущества и недостатки типовых шаблонов распределенных систем и микросервисов. Рассмотрим также не связанные с ними, но интересные концепции.
Экспериментируем с…
Пагинация — достаточно известная, но трудная в реализации функция. Поэтому я решил разработать демонстрационное приложение на основе Android Paging Library с пагинацией, основанной на пользовательских запросах...
Темная сторона однонаправленных архитектур Swift
Однонаправленные архитектуры строго предусматривают, где и как обрабатываются состояния и эффекты. Но при этом страдают так называемой “пинг-понг-проблемой”, что сопряжено с риском для удобочитаемости. Поэтому стоит разобраться с этой проблемой и поискать способы ее преодоления.
Лучшие практики для эффективного кода на Golang. Часть 2
Продолжаем обработкой паник с Recover, функциями init и defer, составными литералами, параметрами и сложностью функций, явными возвращаемыми значениями. Изучим затенение переменных, интерфейсы для абстракции, разделение библиотечных пакетов и исполняемых файлов.
6 рекомендаций по устранению типичных проблем производительности Java
Тщательно изучим проблемы производительности Java. Научимся выявлять и приоритизировать части кода с наибольшим влиянием на масштабируемость системы.
Как развернуть пакет Cython в PyPI
Для меня это оказалось довольно трудно, и я подумал, что неплохо было бы поделиться своим опытом в статье.
Структура проекта
Вот файловая структура, которую мы будем...
Как быстро найти проблемы с Python-типами через Pytype
Если вы работаете над большим проектом на Python или предпочитаете лаконичную и понятную базу кода, то Pytype станет для вас отличным помощником.
Python — это отличный язык...
Как учиться программировать с помощью ChatGPT
Как учиться писать год в 2023 году? Конечно, с помощью искусственного интеллекта! ChatGPT - всезнающий и отзывчивый онлайн-ассистент - готов помочь на каждом этапе обучения.
Роль метода Stream.map() в Java
Для многих задач в Java метод map() предоставляет гибкие и лаконичные решения. Ознакомьтесь с ними, чтобы понять, как работает этот метод и в каких случаях он может быть полезен. Применяя его в реальных сценариях, вы упростите код, повысив его читаемость и удобство при сопровождении.
8 лучших техник программирования в Kotlin
Как известно, Kotlin предлагает много эффективных функциональностей, способствующих написанию чистого, лаконичного и производительного кода. Рассмотрим самые наилучшие из них и приведем примеры.
Пишем балансировщик нагрузки на Golang
Реализуем логику распределения нагрузки с алгоритмом циклического перебора, перенаправлением запроса на бэкенды через обратный прокси-сервер, тремя повторами при сбое и обозначением бэкенда «мертвым». Как обрабатываются ситуации сбоя запроса?
Создание собственной версии UseCase в 2023 году: гибкий и функциональный подход
Гибкий и функциональный подход при создании UseCase обеспечит удобочитаемость, выразительность и модульность кодовой базы. Ознакомьтесь с его применением на примере реализации UseCase в приложении электронной коммерции.
Какие типы изображений можно создавать в Midjourney
Знакомьтесь с генератором изображений Midjourney. Эта нейросеть была создана в феврале 2022 года и уже пережила несколько апгрейдов. Рассказываем, что умеет Midjourney и как использовать этот инструмент в проектах.
Развертывание Kubernetes с пользовательским файлом index.html в поде Nginx с ConfigMap
Настроим веб-страницу index.html в поде Kubernetes с ConfigMap и веб-сервером Nginx. Убедимся в ее работоспособности, выведя сообщение в командную строку и веб-браузер.
С Kotlin приведение стало еще удобнее
Приведение — это необходимое зло в программировании. Мы обожаем его ненавидеть. В Kotlin выполнять приведение намного приятнее, чем в Java. Читайте ниже об очень известном, малопонятном...
Формирование эффективной и целостной культуры ревью кода
Погрузимся в различные ситуативные контексты ревью кода, рассмотрим их цели и содержание. На основе полученных знаний сформулируем рекомендации для авторов и рецензентов, позволяющих улучшить процесс ревью.
Уведомления о контактах
Android 11 мы делаем более ориентированным и выразительным для людей, переосмысливая то, как мы разговариваем по телефону, и создавая ОС, которая может распознавать и...
Почему ИИ не лишит работы программистов
Искусственный интеллект - мощный инструмент, который уверенно набирает популярность в современном мире. Но сможет ли он в ближайшем будущем заменить человека? Оказывается, не все так просто. Сегодня поговорим о том, почему рано списывать программистов со счетов.
UseCase: лучшие практики чистой архитектуры и красные флаги
Предлагаем подробное руководство по юзкейсам, на которых основана чистая архитектура. Корректное использование юзкейсов - с учетом красных флагов - поможет пользователям приложений достигать желаемых результатов без лишних нервов и усилий.
Работа с GitHub Actions на маркетплейсе
Поиск экшенов
Для этого есть два способа.
Непосредственно в маркетплейсе GitHub
В маркетплейсе размещается два вида инструментов для расширения основной функциональности GitHub:
Приложения.Экшены.
Для поиска экшенов в самом маркетплейсе...
Фреймворк The Composable Architecture
Combine с закрытым исходным кодом Apple скоро заменят в TCA на код async/await, сделав его фреймворком с поддержкой нескольких платформ и, возможно, с портированием на другие языки. Рассмотрим функционал, преимущества, последние разработки, применение и план освоения TCA.
Конструктор перемещения на C++
Сравним конструкторы перемещения и копирования: что быстрее? Изучим их связь и соответствующие семантики, варианты применения.
Создание снэкбара с обратным отсчетом времени в Android с помощью Jetpack Compose
Снэкбар - полезная функция в контексте современной веб-разработки. Она дает пользователю время подумать над принятием важного решения. Поговорим о том, как создать снэкбар, используя арсенал Jetpack Compose.
Обработка событий по времени в бессерверной архитектуре
Бессерверность — мир событий
Когда-то в качестве серверов все размещали непрерывно запущенные демоны, но теперь мы вступаем в бессерверную эру, когда все запускается событиями.
Это очевидно, если...
Join-операции в MySQL — инструмент оптимизации поиска данных
Предлагаем руководство по использованию join-операций в MySQL для эффективного извлечения данных. Возможность join-операций извлекать общие данные из нескольких таблиц расширяет горизонты анализа данных, позволяя получать сведения, которые было бы сложно обнаружить в отдельных таблицах.
Как вызвать из C# генерируемую на Rust библиотеку
Объединяем преимущества двух языков. Узнаем, как создать библиотеку на Rust, выполнить сборку и с помощью P/Invoke вызвать из C# ее функции.
Как усилить электронные таблицы Google возможностями ChatGPT
Предлагаем улучшить электронные таблицы Google с помощью ChatGPT и начать работать с ними по-новому: более качественно, продуктивно и творчески.
Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 1
2024-й обещает стать годом инноваций, когда ИИ и технологии объединятся, чтобы перекроить карты наших возможностей. Заглянем в ближайшее будущее нейронных сетей, векторных данных, экосистемы агентов ИИ, а также уникальных смарт-девайсов, меняющих наш образ жизни.
Как Snowflake повышает эффективность dbt-моделей на Python
Исследуйте Snowflake - новейшую облачную платформу, позволяющую сделать более эффективным dbt-моделирование на языке Python. Сравните простоту, мощность и производительность dbt-моделей Python на Snowflake с настройками, необходимыми для запуска этих моделей на других платформах.
Язык R: прокачайте свои навыки до следующего уровня
Узнайте, как анализировать и ускорить код на R. Напишите эффективный код в своем следующем проекте, следуя этим рекомендациям.
Создание динамического кластера ECS с помощью Terraform
Цель этой статьи предоставить вам наглядные примеры и инструкции по разработке динамического модуля ECS (Elastic Container Service) с помощью Terraform. При этом предполагается наличие...
Правила PRISM на языке Python
PRISM - простой, но конкурентоспособный алгоритм вывода правил методом индукции. Ознакомьтесь с его реализацией на языке Python и рассмотрите несколько практических примеров использования.
Проблема и решение: присвоение имени файлу
Проблема: стандартный изменяемый объект
Но сначала разберёмся: что такое изменяемый объект в Python? Изменяемые объекты — это такие объекты, которые можно поменять. Список, множество и словарь — всё это...
Сложные вопросы на собеседовании для тех, кто 7 лет работал с Java. Часть 2
Увеличьте свои шансы на успех, впечатлив потенциальных работодателей знаниями и навыками. Разберем некоторые вопросы с подробными объяснениями и примерами.
Диспетчеризация методов в Swift
Разберем особенности диспетчеризации методов и отличия статической от динамической: в какие случаях применяется одна, а в каких - другая? На интересном примере посмотрим, как оптимизировать ее производительность в компиляторе.
От отправителя к получателю: подход Rust к локальной передаче файлов
Это руководство не только прольет свет на технические тонкости использования Rust для локального обмена файлами, но и позволит получить практические навыки. В процессе работы над Rust-проектом для локальной передачи файлов вы узнаете, как запрограммировать сервер и клиента, выполнить сериализацию данных, указать тип устройства, а также опробовать программу на нескольких устройствах.
Ответы на распространенные вопросы о подписании приложений в Google Play
Приложения для Android имеют криптографическую подпись разработчика. С ее помощью менеджер пакетов на устройстве пользователя может проверить, что каждое обновление приложения происходит из одного...
Плохие модели машинного обучения? Но их можно откалибровать
Для правильного расчета вероятностей оракул не нужен. В чем разница между хорошими калибровкой и производительностью, и когда одна предпочтительнее другой?
Как создать и развернуть бота для Twitter при помощи Python, Tweepy и PythonAnywhere
Среда разработки
Для создания бота потребуется настроить нашу среду разработки и установить необходимые библиотеки и инструменты.Что нам понадобится:
Python 3virtualenv — среда разработкиRequests library — библиотека для удобной работы с...
Типы функций и функции высшего порядка на Go
Рассмотрим объекты первого класса, их влияние на производительность. Изучим варианты использования с примерами: обратные вызовы, анонимные функции, замыкания, композиция функций, обработка ошибок, тестирование.
Обучение Inception в Google распознаванию пользовательских изображений
Ищете краткое руководство по обучению классификатора пользовательских изображений? С помощью Inception API от Google Brain с этой задачей можно справиться быстрее, чем выпить чашку...
Основные методы оптимизации базы данных SQL
При разработке приложений часто возникают проблемы с индексированием данных, структурированием SQL-запросов, проектированием схем и т.д. Это руководство позволит значительно повысить эффективность БД: запросы и операции станут намного экономичнее и быстрее.
Объекты данных в Kotlin
Рассмотрим новый функционал Kotlin, который улучшает строковое представление object. Он особенно актуален, когда имеются иерархии запечатанных классов с другими классами данных, которые нужно занести в журнал или распечатать для отладки или аналитики.
Альтернатива Java 8: что умеет VAVR
Обзор на крайне полезную Java-библиотеку: вкратце рассмотрим примеры ее функциональных возможностей и сравним с тем, что предоставляет Java 8 по умолчанию.
Шаблон Sidecar-контейнера с Kubernetes и Go
Рассмотрим шаблон Sidecar, создадим две службы Go и выполним контейнеризацию, а затем развернем на Kubernetes. Отправим HTTP-запрос и отследим его перенаправление из Sidecar-контейнера в основной.
Что нового в системной трассировке Android Studio
В Android Studio 4.0 мы пересмотрели UI профилировщика (Profiler), чтобы обеспечить более интуитивно понятный рабочий процесс записи работы ЦПУ. Мы продолжали вносить улучшения, основываясь...
Создание CLI в Rust для исполнения гитарных аккордов
Пошаговое руководство по созданию инструмента командной строки Rust, который выводит схему аккордов на гитарном грифе.
20 основных вопросов для собеседования по Android
Без этих 20 вопросов не обходится ни одно собеседование по Android-разработке. Попробуйте ответить на них самостоятельно, заглядывая в готовые ответы лишь в случае затруднения.
Топ-6 инструментов и фреймворков для искусственного интеллекта
Инженеру искусственного интеллекта требуется множество навыков. Один из них - знание инструментов и фреймворков, используемых в области ИИ. Предлагаем ознакомиться с самыми популярными и значимыми из них.
K8s: топология подов
Как равномерно распределять поды по кластеру для эффективного использования его ресурсов и высокой доступности? Изучим мультиузловое/-зональное/-региональное распределение подов в его топологии.
Почему стоит использовать GoFr для разработки Golang-бэкенда?
Разрабатываете микросервисы? Тогда вам обязательно нужно освоить GoFr. С этим фреймворком ваша работа станет намного проще и эффективней. Как надежный эксперт, он будет руководить каждым вашим шагом, обеспечив исключительную производительность.
Альтернатива Docker Desktop, которая работает быстрее
Как сэкономить ресурсы процессора и памяти? Представляем быстрый, сверхлегкий, мощный и простой инструмент, с которым нормально работается на ноутбуке, открываются Chrome и любое другое приложение.
6 шагов для старта в машинном обучении в 2025 году
Все, что вам нужно для изучения машинного обучения в 2025 году, - ноутбук и дорожная карта, которую вы должны выполнить. Помимо 5 очевидных шагов - изучения Python, математики, машинного обучения, глубокого обучения, разработки проектов - вас ждет бонусный лайфхак, который и поможет найти желанную работу.
Как составить Data Science портфолио? Часть 2
Предыдущие части: Часть 1
Портфолио — итеративно
У Фавио Васкеса есть отличная статья на тему того, как он получил работу в сфере Data Science. Как вы уже поняли, в своей статье он...
Сканер документов на основе технологии машинного зрения
В последнее время, когда я работал с OpenCV, мне пришла в голову идея написать фреймворк для преобразования изображений. Такое приложение будет полезно каждый день...
Структуры данных и алгоритмы: стек
Стек - это абстрактный тип данных, который обычно используется в большинстве языков программирования. Хорошие примеры для объяснения понятия стека - колода карт или стопка тарелок. Разберем основные операции, проводимые со стеком.
Что такое Recover в Golang?
Разберем случаи применения recover, проиллюстрируем примерами. Напишем универсальную функцию для обработки всех неперехваченных паник и ошибок времени выполнения, сбора трассировок стека для них.
Пошаговое руководство по обучению модели на Vertex AI от Google Cloud
Предыстория и личный интерес
Не так давно компания Google предоставила во всеобщее пользование свою облачную платформу для машинного обучения — Vertex AI. Моей радости просто нет...








































































































