Альтернатива Docker Desktop, которая работает быстрее

Альтернатива Docker Desktop, которая работает быстрее

Как сэкономить ресурсы процессора и памяти? Представляем быстрый, сверхлегкий, мощный и простой инструмент, с которым нормально работается на ноутбуке, открываются Chrome и любое другое приложение.
K8s: топология подов

K8s: топология подов

Как равномерно распределять поды по кластеру для эффективного использования его ресурсов и высокой доступности? Изучим мультиузловое/-зональное/-региональное распределение подов в его топологии.
Создание CLI в Rust для исполнения гитарных аккордов

Создание CLI в Rust для исполнения гитарных аккордов

Пошаговое руководство по созданию инструмента командной строки Rust, который выводит схему аккордов на гитарном грифе.
C++: практическое руководство по priority_queue

C++: практическое руководство по priority_queue

На примерах покажем, как создаeтся приоритизированная очередь, применяются пользовательские типы, обходятся ограничения. Рассмотрим реальный сценарий.
Производительность в Jetpack Compose: стабильность и неизменяемость

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

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

Топ-6 инструментов и фреймворков для искусственного интеллекта

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

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

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

Вся правда об использовании навигационной библиотеки Jetpack в модульных проектах

Jetpack - популярный инструмент современного разработчика. Но так ли удобна эта библиотека для модульных проектов?
10 конструкций для написания Bash-скриптов

10 конструкций для написания Bash-скриптов

Эти конструкции (10 основных и 5 дополнительных) должен освоить каждый инженер. Они помогут вам писать более элегантные, эффективные и удобные в обслуживании скрипты, предназначенные для решения реальных инженерных задач. 
Стековая и кучная память в Kotlin 

Стековая и кучная память в Kotlin 

Хотите максимально эффективно управлять памятью в Kotlin? Тогда выясните, чем различаются стековая и кучная память. Разобраться в этом непростом вопросе помогут простые аналогии и примеры кода.
Java: оператор try-with-resources

Java: оператор try-with-resources

Изучим синтаксис try-with-resources, его преимущества по сравнению с традиционными блоками try-finally и нюансы управления ресурсами. Приведем практические примеры.
Основы Android-разработки в Revolut

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

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

7 малоизвестных, но полезных библиотек Python 

Эти библиотеки отлично справятся с вашими повседневными задачами. Они помогут оживить вывод консоли, сгенерировать фиктивные данные, выполнить стилизацию в духе ASCII-арта, упростить работу с датами и изображениями, облегчить обработку NLP, спланировать время выполнения функций.  
Как создать CSV-файл с помощью C++

Как создать CSV-файл с помощью C++

На примерах разберем разные подходы, дадим рекомендации по повышению производительности. Рассмотрим реальный сценарий и типичные ошибки.
Использование LLM в реальном мире

Использование LLM в реальном мире

Как настроить большую языковую модель? Как составить промпт, чтобы получить приемлемый результат от ИИ? Как минимизировать количество токенов для снижения затрат? Предлагаем отправиться в увлекательное путешествие в мир ИИ и найти ответы на все эти вопросы.
Не заблудитесь при работе с кластерами Kafka  -  возьмите компас

Не заблудитесь при работе с кластерами Kafka  —  возьмите компас

Представляем инструмент мониторинга кластеров KafkaCompass. Рассмотрим функционал этого приложения - со слов его разработчиков.
Как преобразовать сгенерированные ИИ изображения в полигональные сетки

Как преобразовать сгенерированные ИИ изображения в полигональные сетки

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

Руководство по устранению неполадок в Kubernetes

Изучим передовые практики, инструменты, команды, методы отладки, рекомендации с примерами. Рассмотрим продвинутые методы: инструментирование трассировок, удаленную отладку.
В чем разница между ListView и RecyclerView?

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

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

Продвинутые концепции Kafka для старшего инженера-программиста

Рассмотрим важный функционал: репликацию, избыточность данных, гарантии доставки, разбиение на разделы, управление смещениями, операции контроллера, эволюцию схем. Изучим расширенное применение Kafka, политики сжатия и хранения сообщений, сценарии Kafka Streams, безопасность и соответствие требованиям, мониторинг и наблюдаемость.
25 основных вопросов для собеседования с Android-разработчиком. Часть 2

25 основных вопросов для собеседования с Android-разработчиком. Часть 2

Техническое собеседование - важная часть найма разработчика Android-приложения. Продолжаем рассматривать частые вопросы на собеседованиях по Android-разработке.
Стратегии Async/Await и MainActor

Стратегии Async/Await и MainActor

Разберемся, где и как обновлять основной поток. Изучим код SIL, генерируемый разными механизмами, их эффективность, размер кода и связанные с этим последствия. Какой подход проще, эффективнее, где меньше кода и побочных эффектов?
Тестирование уровня данных в Android Room с помощью Rxjava, LiveData и сопрограмм Kotlin

Тестирование уровня данных в Android Room с помощью Rxjava, LiveData и сопрограмм Kotlin

В чем смысл начинать тестирование с уровня данных? Выбор архитектуры, будь то MVVM, MVP, MVC или MV, по минимуму затрагивает уровень данных. Во время архитектурных миграций...
Как тестировать приложения Gofr?

Как тестировать приложения Gofr?

Разработка через тестирование. Как применяется этот подход? Напишем тесты для уровня хранения и обработчика.
Pandas: взгляд изнутри

Pandas: взгляд изнутри

Рассмотрим структуру данных Pandas: массивы, блоки, BlockManager. Познакомимся с понятием консолидированного датафрейма.
Приложение React Native с поддержкой Apple Watch и виджетов

Приложение React Native с поддержкой Apple Watch и виджетов

Хотите достичь новых горизонтов в разработке на React Native? Сегодня поговорим о том, как интегрировать приложение Apple watchOS с приложением на React Native, а также создадим виджет, который можно установить в циферблате часов в качестве дополнительной функции.
Android

Повторное использование UI в Android - 5 главных ошибок

За последние пару месяцев у меня была возможность пересмотреть кое-какие реальные интерфейсы Groupon с целью вывести качество таких интерфейсов на новый уровень. Мы начали...
Принципы SOLID на Go

Принципы SOLID на Go

Изучим эффективное применение пяти принципов сквозь призму системы платежей. Проиллюстрируем примерами хорошего и плохого кода.
Автоматическое масштабирование CI с помощью Kraken CI

Автоматическое масштабирование CI с помощью Kraken CI

Kraken CI — это современная локальная система CI/CD с открытым исходным кодом, которая обладает высокой масштабируемостью и ориентирована на тестирование. Kraken CI имеет лицензию Apache 2.0....
Краткое руководство по строкам и регулярным выражениям в R

Краткое руководство по строкам и регулярным выражениям в R

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

Как последовательно писать аналитические SQL-запросы за 8 шагов

Сразу никогда не бывает очевидно, как перейти от простого SQL-запроса к сложному, особенно если запрос содержит сложные вычисления. Одна из «опасностей» SQL заключается в том, что можно создать исполнимый запрос, но вернуть неверные данные. Например, легко увеличить значение вычисляемого поля, объединив его с несколькими строками. Автор материала показывает, как строить SQL последовательно, чтобы сократить количество ошибок.
Тренды в сфере графического дизайна в 2024 году

Тренды в сфере графического дизайна в 2024 году

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

Новости об Android

Обновления для Android 11 Мы все еще находимся на стадии предварительного обзора для разработчиков Android 11. Developer Preview 4 Превью-релиз был выпущен пару недель назад. О Developer Preview 4...
Быстрое перенаправление в приложение с AutoVerify

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

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

Как создать локальное средство генерации кода с open source моделями и библиотекой Guidance от...

Научимся писать подсказки для генерации кода. «Вручную» воссоздадим строку документации для большой языковой модели в VSCode.
Расшифровка собеседования разработчика в Cisco 2024: Java, Spring Boot, Hibernate

Расшифровка собеседования разработчика в Cisco 2024: Java, Spring Boot, Hibernate

Разберем полную запись технической части для продвинутых. Все это актуальные вопросы и ответы для желающих работать в Cisco Systems.
Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз

Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз

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

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

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

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

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

5 реальных способов достичь сбалансированности трудовой жизни

Вы руководитель инженерного отдела, желающий достичь баланса между работой и отдыхом? Следуйте этим 5 практическим советам, основанным не на стереотипах, а на реальном опыте. Они помогут привести команду к успеху без ущерба для здоровья.
C++: практическое руководство по инициализированию вектора размером

C++: практическое руководство по инициализированию вектора размером

Изучим способы инициализации  -  от простых до самых сложных вроде пользовательских типов и многомерных структур. Разберем их нюансы и типичные ошибки, проиллюстрируем примерами и поможем выбрать оптимальный способ.
Программирование на Java. Глубокое погружение в ключевой функционал Java 21

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

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

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

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

Как работает внедрение зависимостей в Angular

Предлагаем изучить механику внедрения зависимостей в Angular. Узнайте, как определить зависимость, как ее импортировать и как Angular разрешает конфликты зависимостей.
Совместное использование кода в приложениях React и React Native

Совместное использование кода в приложениях React и React Native

Хотите существенно сократить свои усилия и улучшить пользовательский опыт? Воспользуйтесь руководством по совместному использованию в веб- и мобильных приложениях общих элементов кода и дизайна в качестве зависимостей.
Встроенная поддержка контейнеров для .NET 7  -  контейнеризация приложений .NET без Dockerfile

Встроенная поддержка контейнеров для .NET 7  —  контейнеризация приложений .NET без Dockerfile

Рассмотрим стандартный подход Dockerfile для приложений .NET 6 и функционал нового SDK-пакета с настройками и параметрами для целей локальной разработки. Сделаем рабочий процесс GitHub Action для создания приложения, сборки образа Docker и отправки на DockerHub.
SQL в браузере  -  веб-оболочка DuckDB для анализа локальных данных

SQL в браузере  —  веб-оболочка DuckDB для анализа локальных данных

Как анализировать данные намного проще и полнофункциональнее, чем в Excel? Сделаем локальный файл доступным для SQL-операций с DuckDB, преобразуем в реальную таблицу, доберемся до файлов на GitHub и S3.
Android 14: обновления в области конфиденциальности и безопасности

Android 14: обновления в области конфиденциальности и безопасности

Узнайте о новых функциях Android 14, чтобы обновить свои приложения в соответствии с ними. Это поможет обеспечить безопасность приложений и соблюдение конфиденциальности пользователей.
Как автоанализ кода с помощью ИИ повышает безопасность приложений

Как автоанализ кода с помощью ИИ повышает безопасность приложений

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

Развертывание Cloud Functions в GCP с помощью Terraform

Как это: создавать инфраструктуру и управлять ей через конфигурационные файлы? Напишем и запустим простую Cloud Function, подробно разберем конфигурационные файлы среды развертывания со всеми объявлениями и определениями и узнаем, как применять изменения к реальной инфраструктуре.
Как перевести код R в Python с помощью ChatGPT

Как перевести код R в Python с помощью ChatGPT

Научимся переводить код с языка программирования R на Python и наоборот. Для этой цели воспользуемся возможностями ChatGPT и на примерах рассмотрим принцип действия.
Вопросы на собеседованиях для опытных профессионалов Java в 2024 году

Вопросы на собеседованиях для опытных профессионалов Java в 2024 году

Рассмотрим применение интерфейсов в разных целях и сценариях. Поопределяем временную сложность, изучим практическое назначение агрегации, композиции и наследования, утечку кода и другие проблемы Java.
Освоение различных видов линий в Jetpack Compose с помощью PathEffect

Освоение различных видов линий в Jetpack Compose с помощью PathEffect

Устали от однообразных линий в Jetpack Compose? Вы не одиноки! Сегодня поговорим о том, как создавать различные стили линий и фигур в рамках Jetpack Compose и использовать их на практике.
Освоение широковещательных приемников в Android

Освоение широковещательных приемников в Android

Широковещательные приемники - важный компонент разработки Android. Чтобы использовать их потенциал правильно, узнайте об их основных функциях и областях применения. 
Android

Поддержка новых форм-факторов с помощью новой библиотеки Jetpack WindowManager

WindowManager — это недавнее дополнение к Android Jetpack, которое призвано помочь разработчикам приложений поддерживать новые форм-факторы устройств и обеспечить общее API для различных функций Window Manager...
Почему гейм-дизайнеру нужно программирование

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

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

Как участие в открытых проектах помогает найти работу?

Мечтаете о карьере разработчика ПО, но не знаете, как выгодно выделиться на фоне конкурентов? Узнайте о преимуществах участия в таких мероприятиях, как Hacktoberfest, и внесении вклада в такие открытые проекты, как Taipy, Composio, CopilotKit и ToolJet. 
10 советов по созданию чистого кода для мобильной разработки на Kotlin в 2024 году

10 советов по созданию чистого кода для мобильной разработки на Kotlin в 2024 году

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

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

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

Модульные тесты на Golang: от стандартного Testing до Testify

Напишем тесты для проверки работы функций. Посмотрим, как совершенствуются тестовые сценарии с Testify.
Реализация подсказок с помощью Modifier в Jetpack Compose

Реализация подсказок с помощью Modifier в Jetpack Compose

Занимаетесь проектированием интуитивно понятных интерфейсов? Тогда вам не обойтись без подсказок, особенно необходимых при обновлении приложения. Предлагаем упрощенную версию реализации подсказок с использованием Modifier — компонента библиотеки Jetpack Compose.
Реализация цифрового конверта в iOS

Реализация цифрового конверта в iOS

Добро пожаловать в увлекательный мир криптографии! Познакомимся с технологией гибридного шифрования и научимся безопасно передавать конфиденциальные данные через REST API в Swift.
История путешествий вместе с Plotly Express

История путешествий вместе с Plotly Express

Составим интерактивную карту путешествий с Python, pandas и Plotly Express. Процесс настолько же увлекательный, как и сами путешествия!
Класс данных в Kotlin

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

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

Зачем нужен AutoGPT

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

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

Изучим безблокировочную архитектуру Nginx. Из каких компонентов она состоит и почему этот событийный подход быстрее?
Топ-10 типичных ошибок при реализации паттерна MVVM в Android 

Топ-10 типичных ошибок при реализации паттерна MVVM в Android 

Вы наверняка совершали эти ошибки при реализации паттерна Model-View-ViewModel в Android. Предлагаем на практических примерах разобраться в их причинах и рассмотреть способы их исправления. Это позволит значительно повысить сопровождаемость, тестируемость и общее качество Android-приложений. 
Загрузочные представления в SwiftUI

Загрузочные представления в SwiftUI

Загрузочные представления являются одним из типичных компонентов приложения, и в этой статье вы научитесь грамотно их создавать и использовать с возможностью кастомизации.
Удаление последнего символа строки на C++: методы и их применение

Удаление последнего символа строки на C++: методы и их применение

Сравним эффективность pop_back(), resize(), erase() и substr(), разберем их нюансы, проиллюстрируем примерами. Рассмотрим реальный сценарий и типичные ошибки, поможем выбрать оптимальный метод
Ознакомление с Work Manager в Android

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

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

Подробно о технологии «Издатель-подписчик» Redis

Подробно изучим эту модель и даже доберемся до уровня блоков памяти. Раскроем делали реализации и нюансы, сценарии применения.
10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году

10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году

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

Какую архитектуру выбрать  —  с единой или множеством Activity?

Обе архитектуры - как с единой, так и со множеством Activity - находят свое место в Android-разработке. Изучаем плюсы и минусы каждого подхода, а также их случаи использования.
Как вернуть контроль над состоянием данных с RemoteResult

Как вернуть контроль над состоянием данных с RemoteResult

Построим на основе Result универсальный способ обозначать состояния ресурса, чтобы из представлений SwiftUI реагировать на его изменения. Рассмотрим реальное применение этого перечисления и адаптируем его для архитектуры TCA.
Как создать пользовательскую поисковую панель SwiftUI с LazyVStack

Как создать пользовательскую поисковую панель SwiftUI с LazyVStack 

Решаем практическую задачу по созданию инструмента для выбора кода страны - реализуем пользовательскую поисковую панель LazyVStack, содержащую данные с разделами и их индексами.
5 крутых приемов, которые улучшат работу на R

5 крутых приемов, которые улучшат работу на R

R  —  отличный язык, который используется для обработки данных и работы с ними. Рассмотрим пять крутых приемов работы на R, которые просто необходимо знать....
Создание анимированной пузырьковой диаграммы Ханса Рослинга на языке R

Создание анимированной пузырьковой диаграммы Ханса Рослинга на языке R

Статистические выкладки выглядят привлекательней при добавлении анимации. Сегодня мы убедимся в этом, воссоздав пузырьковую диаграмму Рослинга средствами языка R.
Как создать компонент Toast в SwiftUI

Как создать компонент Toast в SwiftUI

Расскажем, как, не напрягаясь, создать интересный компонент Toast в SwiftUI. Присоединяйтесь - скучно не будет!
Вопросы для собеседования iOS - Swift. Часть 1

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

Рассмотрим самый важный и частый вопрос - шаблон делегирования. А также проверки времени выполнения, соответствие NSObject классу Swift, протоколы.
Что такое закрепление сертификата в Android

Что такое закрепление сертификата в Android

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

Разветвление на различные очереди SQS с помощью фильтрации сообщений SNS

SNS и SQS  —  сервисы AWS, которые часто находят применение в событийно-управляемой архитектуре. Сочетание этих сервисов дает возможность отправлять сообщения по разным каналам. Часто...
Реализация gRPC и PostgreSQL на GO

Реализация gRPC и PostgreSQL на GO

Пошагово создадим масштабируемое серверное приложение: подключим модульные тесты, контейнеризируем приложение и задействуем Envoy как прокси-службу взаимодействия. В итоге спроектируем, выполним оценку, запустим и протестируем его.
Реактивное программирование с Combine

Реактивное программирование с Combine

Увидим фреймворк в действии, шаг за шагом пройдя процесс настройки конвейера связываемых в цепочку операторов обработки значений, выдаваемых издателями для подписчиков. Подробно разберем пример и попробуем реализовать в проекте.
Изучаем Rust. Потоковая передача tar-архива

Изучаем Rust. Потоковая передача tar-архива

Сделаем подробную реализацию асинхронного потока с нетривиальным конечным автоматом, проверим в консоли создание tar-архива, полностью распознаваемого в API среды выполнения Docker. Выполним идеальную интеграцию результата в процесс загрузки файлов.
Эволюция кортежей в C#

Эволюция кортежей в C#

Углубимся в изучение кортежей в C#. Посмотрим, как они совершенствовались от версии к версии и обрастали новыми эффективными возможностями.
Мой первый опыт работы с языком Gleam 

Мой первый опыт работы с языком Gleam 

Gleam - надежный инструмент в мире функционального программирования. Проведем объективное исследование возможностей этого языка и выделим его сильные стороны.
Важные вопросы для собеседования по корутинам для опытных разработчиков Android

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

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

Модульное тестирование для долговечного кода

Как вместо постоянной отладки сфокусироваться на создании функционала? Написать тесты! Дадим рекомендации по написанию эффективных модульных тестов.
Модульное тестирование с помощью JUnit в Android

Модульное тестирование с помощью JUnit в Android

Тестирование  —  неотъемлемая часть полноценной разработки программного обеспечения. Сегодня рассмотрим фреймворк JUnit, а также функции и правила, которые помогут провести тесты Android-продукта на достойном уровне.
Новичкам на заметку: реализация шаблона Singleton в Ruby

Новичкам на заметку: реализация шаблона Singleton в Ruby

Обучающее руководство по шаблону проектирования Singleton в Ruby: дадим определение, рассмотрим примеры, расскажем о преимуществах и недостатках.
C++: подробное руководство по разыменованию указателя

C++: подробное руководство по разыменованию указателя

Разберем нюансы и ошибки разыменования. Проиллюстрируем примерами и реальным сценарием. Сравним эффективность прямого доступа к массиву и разыменования указателя.
Плохого кода не существует!

Плохого кода не существует!

Немного размышлений на тему плохого кода, приправленных перчинкой юмора.
15 бизнес-идей агентов на основе ИИ в 2025 году

15 бизнес-идей агентов на основе ИИ в 2025 году

Агенты на базе ИИ открывают невероятные возможности перед предпринимателями. Они помогают достичь успехов в самых различных бизнес-сферах - будь то автоматизация поддержки клиентов, оптимизация продаж или разработка инновационных SaaS-решений. Не упустите и вы свой шанс извлечь выгоду с помощью ИИ в 2025 году!
Рекомендации по Go: выделение памяти с new

Рекомендации по Go: выделение памяти с new

Разберем нюансы функции new на примерах. Для каких целей и типов она используется, как ею упрощается инициализация?
Байт-код JVM: манипулирование и инструментация

Байт-код JVM: манипулирование и инструментация

Манипулирование байт-кодом JVM и его инструментация  -  техники, позволяющие максимально оптимизировать Java-приложения и входящие в арсенал каждого продвинутого разработчика. Узнайте о широких возможностях этих техник, сложностях их применения и лучших практиках.
Как использовать управляемые Gradle устройства с собственными девайсами

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

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

Я бросил изучать Python и стал лучшим разработчиком

Хотите попасть в 1 % лучших Python-разработчиков? Возможно, вам нужно просто перестать стремиться объять необъятное и сосредоточиться на главном? А может, вместо поиска последних трендов в области Python, стоит перейти к решению реальных задач?  
17 полезных скриптов автоматизации на Python. Часть 1

17 полезных скриптов автоматизации на Python. Часть 1

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

Внедрение зависимостей для создания элегантных горизонтальных архитектур

Как не попасть в ловушку вертикальных архитектур? Рассмотрим преимущества горизонтальной структуры с внедрением зависимостей и построим такую.
12 проверенных способов оформления продакшн-кода на Python

12 проверенных способов оформления продакшн-кода на Python

Возьмите на заметку 12 способов оформления продакшн-кода, повышающих его удобочитаемость и производительность. Они выручат вас во многих случаях, включая распаковку кортежа, списковое выражение, объединение строк, создание цепочки методов, индексирование вложенных словарей. 
Наш первый миллиард строк в DuckDB

Наш первый миллиард строк в DuckDB

Как одной машиной заменяется целый кластер? Расскажем об особенностях DuckDB, решаемых задачах и приобретенном с ее помощью опыте в реальном проекте обработки 450 Гб.
Зачем усложнять разработку с AWS Lambda?

Зачем усложнять разработку с AWS Lambda?

Время подискутировать! Автор рассматривает наметившуюся тенденцию усложнять бессерверную разработку с помощью AWS Lambda и высказывается за сохранение простоты и модульности данного сервиса.
Python

Python — идеальный инструмент для любой проблемы

Размышления о моей первой программе на Python. Размышления это всегда помогающее (а иногда и развлекающее) занятие. Из ностальгических соображений, конечно, если можно испытывать ностальгию по...
Забудьте про сохранение изображений на Android в JPEG/PNG: HEIF и AVIF сэкономят до 50 % места

Забудьте про сохранение изображений на Android в JPEG/PNG: HEIF и AVIF сэкономят до 50...

Хотите, чтобы ваше Android-приложение стало легче, быстрее и современнее? Откажитесь от старых форматов JPEG/PNG и переходите на HEIF и AVIF, чтобы сохранять те же изображения, только размером в 2 раза меньше и без потери качества. Они обеспечат вам молниеносную загрузку изображений и разгрузку памяти на 50 %.
Kotlin: изолированные классы и интерфейс

Kotlin: изолированные классы и интерфейс

Хотите писать Kotlin-код, который компилятор проверяет за вас? Все дело в грамотном использовании изолированных классов и интерфейсов. Узнайте, как выбирать между ними для создания идеальной — гибкой, удобочитаемой и типобезопасной — архитектуры.