Пять отличных Python-библиотек для data science
Python — это лучший друг специалистов по данным, а библиотеки значительно упрощают их жизнь. Работая над NLP-проектом, я открыл для себя пять отличных Python-библиотек, которые мне...
Рекомендации по Go: выделение памяти с new
Разберем нюансы функции new на примерах. Для каких целей и типов она используется, как ею упрощается инициализация?
Идиоматический Python для новичков
Python — это язык программирования общего назначения, который широко используется в таких областях, как научные вычисления, искусственный интеллект, веб-разработки, финансовое моделирование и многих других. Одна из...
Топ-10 самых распространенных ошибок в проектах Go. Часть 2
Предыдущая часть: Часть 1, Часть 2
Инициализация среза
Иногда конечная длина среза бывает известна. Допустим, нужно преобразовать срез Foo в срез Bar, что означает, что они...
Овладей Python, создавая реальные приложения. Часть 1
Создаем интерактивный словарь
В этой серии из 10 статей мы будем использовать Python для написания 10 реальных приложений. И в процессе создания этих приложений мы...
Angular и Wiz: вместе лучше
В Google решили объединить Angular и Wiz. Как ожидается, это приведет к улучшению обоих веб-фреймворков: Angular извлечет выгоду из производительности Wiz, а Wiz будет полезен опыт Angular-разработчиков. Рассказываем подробности.
10 инструментов Python для работы с изображениями
Обзор самых популярных Python-библиотек с простым и понятным способом преобразования изображений
Введение
Наш сегодняшний мир переполнен данными, большая часть которых состоит из изображений. Однако для работы...
Ruby on Rails — пишите тесты, как профессионал
Узнаем на простых и эффективных примерах, как пишутся оптимизированные, быстрые и точные тесты. Хорошие тесты против плохих: как сокращается дублирование, поддерживается четкая структурированность, соблюдается принцип DRY.
Что такое ViewModel
Представляем ViewModel доступным языком. Рассказываем, что такое ViewModel и как эффективно использовать этот компонент в Android-приложениях.
Go: как циклы преобразуются в ассемблерную программу?
ℹ️ В статье речь идёт о Go 1.13.
Циклы в программировании — понятие мощное и довольно простое. Тем не менее возникает необходимость преобразовывать их в основные команды,...
Результаты опроса разработчиков Angular в 2023 году
Ознакомьтесь с инициативами сообщества Angular, высказанными в опросе 2023 года. Многие из них были учтены в дорожной карте Angular на 2024 год, нацеленной на улучшение опыта разработчиков и повышение производительности фреймворка.
Rust: рефакторинг для новичков
Возьмем код, написанный начинающим программистом Rust, выявим недочеты и внесем необходимые коррективы. Процесс рефакторинга сопроводим пояснениями и наглядными примерами.
C++: практическое руководство по rotate
Изучим принцип работы инструмента для перемещения элементов последовательности. Проиллюстрируем практическими сценариями вроде реализации кольцевых буферов и простых планировщиков, а также продвинутыми методами, дадим рекомендации.
Мифы Go, в которые мы верим: емкость
Узнаем правильный ответ на вопрос: «Как растет емкость среза?» В каких случаях она удваивается, а в каких нет?
Докеризируем среду разработки в VS Code
Работая над последним проектом, я столкнулся с проблемой, которая заключалась в последовательном запуске проектов в нескольких ОС. Я потратил несколько недель, пытаясь исследовать файлы...
Как отслеживать события файловой системы в Python
Прочитав эту статью, вы научитесь обнаруживать изменения в существующих файлах приложения Python. Для этого возьмем хорошо поддерживаемый модуль под названием watchdog.
Согласно официальной документации, watchdog...
Как настроить отдельные SSH-ключи для нескольких учётных записей GitLab
Перейдём сразу к делу. Допустим, у вас есть один GitLab для личных проектов и один для работы. Проблем не возникнет, пока не придётся работать...
Dynamic Feature Modules: навигация
В последнее время моя команда начала проходить испытание по модуляризации нашего приложения. Одна из первых вещей, за которые мы взялись основательно, была навигация, а...
Обнаружение объектов с помощью цветовой сегментации изображений в Python
Начинаем
Если у вас уже есть Jupyter Notebook или IDE, с помощью которых можно запускать установленные Python и OpenCV, то сразу переходите к разделу Выполнение.
Инструменты
Наш...
5 удивительных скрытых возможностей Python. Часть 1
Хотите повысить уровень своих навыков написания кода? Возьмите на заметку 5 скрытых возможностей Python. Они помогут сократить время разработки, улучшить читаемость кода и повысить его эффективность.
Долгожданные инструкции Switch-Case в Python
Python 3.10 обрел немало интересных возможностей, одна из которых привлекла мое внимание в особенности — структурное сопоставление с шаблоном, иначе говоря инструкции switch/case.
Несмотря на...
Создание расширяющих методов на C#
Рассказываем, что такое расширяющие методы и как с их помощью можно дополнять функциональность классов без их изменения.
Продвинутое применение «select» в Ruby
На примерах изучим, как select комбинируется и объединяется с другими методами. Рассмотрим особенности ключевого слова next со сложными условиями.
Представление концепций ООП с реальными сценариями
Что общего между разработчиком и архитектором, которому поручено спроектировать дом? Подробно разберем понятия ООП для применения в реальных проектах.
Как создать форму текстового фона в Jetpack Compose
Красивое оформление повышает привлекательность текста для пользователей. Сегодня расскажем, как с помощью Jetpack Compose "одеть" текст в фоновую форму.
5 впечатляющих возможностей Julia, которых не хватает в Python
Считаете Python верхом совершенства? А как насчет альтернативы - высокопроизводительного языка Julia? Некоторые из возможностей Julia явно не помешали бы старому доброму Python.
Терминал: 3 команды для продуктивности
Вот несколько важных вещей, помогающих мне быть продуктивным в течение всего рабочего дня:
Псевдонимы для команд.Команда pbcopy.Обратный поиск и другие трюки.
Псевдонимы
Псевдоним может быть одним из...
Борьба с веб-скрейперами с помощью Rust
Боты, использующие инструменты веб-скрейпинга, могут быть использованы злоумышленниками в самых неприглядных целях. Можно ли им противостоять? Да! Сегодня рассмотрим мощный инструмент для борьбы с такими непрошенными гостями, построенный на Rust.
Реализация цифрового конверта в iOS
Добро пожаловать в увлекательный мир криптографии! Познакомимся с технологией гибридного шифрования и научимся безопасно передавать конфиденциальные данные через REST API в Swift.
Ловушка для горутины
Горутина — это эффективный и легковесный механизм многопоточного выполнения, популярный среди разработчиков Go. С помощью семантики горутин программисты добиваются эффективного выполнения параллельных процессов в программе. Впрочем,...
Автоматизация скриптов на Python при помощи AWS Lightsail
В своей работе специалиста по данным я осознал, насколько необходимо автоматизировать любой и каждый аспект рабочего процесса. Когда большинство людей слышит слова “наука о...
Kotlin: изолированные классы и интерфейс
Хотите писать Kotlin-код, который компилятор проверяет за вас? Все дело в грамотном использовании изолированных классов и интерфейсов. Узнайте, как выбирать между ними для создания идеальной — гибкой, удобочитаемой и типобезопасной — архитектуры.
Lombok: хорошее и плохое применение
Lombok - популярная библиотека, облегчающая рутинную работу с классами в Java. Но даже хороший инструмент можно применять неправильно. Дадим несколько рекомендаций, как этого избежать.
Продвинутые концепции Kafka для старшего инженера-программиста
Рассмотрим важный функционал: репликацию, избыточность данных, гарантии доставки, разбиение на разделы, управление смещениями, операции контроллера, эволюцию схем. Изучим расширенное применение Kafka, политики сжатия и хранения сообщений, сценарии Kafka Streams, безопасность и соответствие требованиям, мониторинг и наблюдаемость.
10 простых сниппетов Python для веб-разработки, автоматизации и обработки данных
Используйте эти модули и сниппеты в программировании на Python - это позволит автоматизировать сложные задачи и оформлять код так, как вам нравится.
10 примеров для изучения модуля JSON в Python
Модуль json - мощный инструмент Python для работы с данными JSON. Рассмотрим 10 примеров, демонстрирующих общие задачи, которые можно выполнять с помощью этого модуля.
Прогнозирование настроений на фондовом рынке с помощью OpenAI и Python
Хотите помочь своим клиентам овладеть алгоритмическим трейдингом? Тогда вас должны заинтересовать возможности LLM в анализе акций. Предлагаем комплексную методологию по извлечению значимых сведений о рыночных тенденциях на основе настроений, выраженных в новостях.
Синхронизация данных в реальном времени между MongoDB и Elasticsearch на Golang
Сделаем мощную событийно-ориентированную службу синхронизации на Golang. Поэтапно настроим, оптимизируем производительность и протестируем.
7 советов по улучшению анализа данных в Python
#1: Pandas Profiling
Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report():
С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет...
Создание приложения на Python для систематизации фото по геолокации и дате
Накопилось множество папок с фотографиями из путешествий? Наведем в них порядок, создав приложение на Python для сортировки изображений по геолокации и дате.
Обратные вызовы Keras за 2 минуты
Что такое обратный вызов Keras?
Из документации Keras:
Обратный вызов — множество функций, применяемых на данной стадии тренировки. Вы можете использовать их, чтобы посмотреть на внутреннее состояние...
Практическое применение KSP
Kotlin Annotation Processing Tool - ценный инструмент, который позволяет автоматизировать утомительные задачи, повысить качество кода, сделать его менее подверженным ошибкам и сократить время разработки. Рассказываем на примерах, как использовать KSP.
Развертывание Kubernetes с пользовательским файлом index.html в поде Nginx с ConfigMap
Настроим веб-страницу index.html в поде Kubernetes с ConfigMap и веб-сервером Nginx. Убедимся в ее работоспособности, выведя сообщение в командную строку и веб-браузер.
Эффективная стратегия тестирования Android-проектов. Часть 2: модульное тестирование
Эта часть посвящена основным элементам модульного тестирования при подготовке Android-проектов, а также различным типам тестовых дублеров. Вы узнаете, что именно надо тестировать при Android-разработке и получите рекомендации по написанию удобных в обслуживании и эффективных тестов.
Наблюдаемость как суперспособность
Автор рассказывает о платформе отслеживания инцидентов incident.io, а ее устройстве изнутри и рекомендует, где и как разместить трассировки, чтобы облегчить жизнь разработчиков ПО.
7 способов повысить свою продуктивность в Python
Python — один из самых популярных среди языков современного поколения и наверняка останется таковым в ближайшие десять лет. Это фантастический язык программирования практически для...
Golang — это не язык для бэкенда. Это язык для SaaS
Golang часто сравнивают с другими языками для бэкенда, но у него другая специализация. Узнайте о реальном опыте перехода с Java на Go: что стало с производительностью, затратами и процессом развертывания в реальных SaaS-проектах.
Команды Go и переменные среды, которые должен знать каждый разработчик
Как загружаются, кешируются и удаляются зависимости на Go, и что здесь изменилось с появлением GOPROXY и модулей? Как избежать ошибок сборки и обеспечить ее воспроизводимость?
Как предотвратить утечки памяти в Android-приложении
В этом руководстве изложены эффективные стратегии обнаружения, предотвращения и устранения последствий утечек памяти. Вовремя выявляя и эффективно устраняя проблемы с утечками памяти, вы обеспечите оптимальную производительность и стабильность Android-приложений.
Основы Kafka для бэкенд-инженеров
Микросервисы требуют надежного обмена данными, но традиционные API не справляются с нагрузкой и сбоями. Apache Kafka решает эти проблемы, становясь "центральной нервной системой" вашей архитектуры. Изучите основы Kafka: от архитектуры и ключевых компонентов до практических примеров на Java и Spring Boot.
Тестирование сервиса ASP.NET Core с помощью xUnit
Вступление и предварительные условия
Эта статья относится к серии, в которой мы создаём “ходячий скелет” (walking skeleton) приложения с помощью ASP.NET Core и Angular, а...
6 рекомендаций по запуску современной кодовой базы Android с нуля
Шесть тем в фокусе: внедрение зависимостей, чистая архитектура, Jetpack Compose, Kotlin, конвейеры сборки, безопасность. Расскажем обо всем, что важно, дополнив фрагментами кода и пояснениями.
Как вызвать из C# генерируемую на Rust библиотеку
Объединяем преимущества двух языков. Узнаем, как создать библиотеку на Rust, выполнить сборку и с помощью P/Invoke вызвать из C# ее функции.
Spring Boot: реализация фабричного метода
Шаблон Factory упрощает создание новых объектов и помогает прятать логику, ненужную для клиента. Предлагаем рассмотреть вариант реализации шаблона фабрики для простого приложения на Spring Boot.
Лучшие инструменты для разработки приложений под Android
Android предлагает разработчикам массу возможностей: это универсальная, открытая платформа, используемая миллионами пользователей по всему миру, с удивительно простой в использовании площадкой для распространения приложений....
Apple убивает Swift
В отличие от современных языков Python, Rust и Kotlin, великий Swift оказался задушен управлением корпораций. Поразмышляем о том, как диктаторское управление убивает наследие Латтнера и можно ли считать безнадежной текущую ситуацию с языком Swift.
Как создать NFT-маркетплейс с полным стеком
Предлагаем подробное руководство по созданию полнофункционального NFT-маркетплейса. В реализации используются Polygon, Next.js, Tailwind, Solidity, Hardhat, Ethers.js и IPFS.
Как использовать ИИ и Python для распознавания речи
Создаем систему распознавания речи с использованием искусственного интеллекта (ИИ) для транскрибирования звука. Рассмотрим особенности создания такой системы на языке Python с использованием сетевой платформы AssemblyAI.
Null - это зло!
Не сомневаюсь, что заголовок статьи привлек ваше внимание! А теперь позвольте мне аргументировать свою точку зрения, поскольку процентов на 50%, а то и больше,...
Функциональное программирование Java: элегантное применение Predicate и Function
Освоим интерфейсы для валидации, фильтрации и преобразования данных. Научимся использовать Predicate и Function со спецификациями JPA, коллекциями и потоками для реальных приложений.
Знакомьтесь, компонент Navigation в Android!
Что такое компонент Navigation?
Всем известно, что навигация между экранами является одним из фундаментальных принципов в приложениях Android. Как правило, мы осуществляем ее при помощи...
C++: полное руководство по push_back
Изучим нюансы этой операции - от базового применения до продвинутых техник и реальных сценариев. Как при этом управляется память и оптимизируется производительность?
Создание пользовательских метрик Prometheus в Golang и отправка оповещений в Slack с Grafana
Создадим настраиваемые показатели Prometheus с Go, подробно разберем метрики. При наличии оповещения в Grafana отправим сообщение на канал Slack.
Обработка естественного языка в Python. Основы
Я описал инструменты и методы для новичков, имеющих только общее представление в данной теме. Если вы более опытный практик, вам нужны вторая часть о...
Начало работы с Elasticsearch
Что такое Elasticsearch?
Elasticsearch(ES) — это распространенная поисковая система с открытым исходным кодом, основанная на индексе Lucene. Написана она на языке Java и доступна для многих платформ....
Асинхронная многопоточность в Python
Вступление
В этом разделе я попытаюсь сформулировать цель своей статьи (можете пропустить его, если хотите просто узнать, как настроить асинхронную многопоточность в Python). Мне потребовалось...
Принципы SOLID в инженерии данных. Часть 3
Выясним, как с принципами SOLID сочетается функциональное программирование, каковы их достоинства и недостатки. Продемонстрируем на примерах нарушение и соблюдение этих принципов.
Как читать CSV-файлы на Java с помощью Open CSV
Вкратце рассмотрим возможности по обработке CSV-файлов на языке Java, ведь этот формат файлов часто встречается в повседневной работе.
Почему Dockerfile больше не нужен для создания контейнера в Go
Интегрируя, адаптируя и обучая новых инженеров в FlowUp, я пришел к выводу: на формирование глубокого понимания того, как работают Dockerfiles, уходит слишком много времени....
Лучшие практики для эффективного кода на Golang. Часть 1
Изучим рекомендации с примерами кода на Go. Рассмотрим отступы, импорт пакетов, названия переменных, длину строк, константы, обработку ошибок, глобальные переменные, структуры для сложных данных, комментарии, горутины.
10 практик Spring Boot, которые мгновенно повысят ваш уровень в бэкенд-разработке
Spring Boot упрощает разработку на Java. Но освоения этого фреймворка недостаточно для того, чтобы избежать хаоса в проекте. Изучите 10 лучших практик использования Spring Boot для создания масштабируемых, чистых и готовых к эксплуатации бэкенд-приложений.
Как учиться программировать с помощью ChatGPT
Как учиться писать год в 2023 году? Конечно, с помощью искусственного интеллекта! ChatGPT - всезнающий и отзывчивый онлайн-ассистент - готов помочь на каждом этапе обучения.
Как я создавал систему для алгоритмического трейдинга на Rust и о чем сожалею
Вы когда-нибудь ныряли в бассейне с цепными пилами на дне? Не удивляйтесь, но что-то похожее можно испытать при первом погружении в Rust. Избежать подобного экстрима поможет ознакомление с опытом человека, решившего использовать Rust без предварительной подготовки.
Второй шанс разработки программного обеспечения
Говорят, что ИИ сделал разработку ПО менее стабильной, менее безопасной. В этом есть доля правды, как и в том, что ИИ переосмыслил каждую нашу ошибку и каждую удачу за последние 50 лет. А что, если именно в этом и кроется второй шанс разработки ПО?
Основные методы оптимизации базы данных SQL
При разработке приложений часто возникают проблемы с индексированием данных, структурированием SQL-запросов, проектированием схем и т.д. Это руководство позволит значительно повысить эффективность БД: запросы и операции станут намного экономичнее и быстрее.
Генерация API-документации из docstrings на Python
pdoc3 - профессиональная документация с LaTeX и markdown, автоматическая генерация HTML и CSS из docstrings
Чистая архитектура с MVVM
Для лучшего понимания чистой архитектуры давайте создадим примерный проект. Это приложение, на первой странице которого показывается список персонажей из мультсериала «Рик и Морти» с...
Apache Iceberg за семь часов
Подробно разберем принцип работы, изучим внутренние механизмы Apache Iceberg, поэкспериментируем с этим файловым форматом и PySpark, PyIceberg, каталогом Nessie.
Инструменты прототипирования в 2021 году
Прототипирование является ключевой частью проектирования UI и UX. Дизайнеры могут создать прототипы как с высокой, так и с низкой точностью, в зависимости от их...
Почему стоит использовать Pathlib в качестве альтернативы модуля OS
Применять модуль OS при работе с Python не совсем удобно. Сегодня расскажем о преимуществах библиотеки Pathlib, которая может стать достойной заменой этого компонента.
Обзор инструментов для автоформатирования кода Python
Краткое руководство по установке, настройке и работе с инструментами автоформатирования кода Python перед выполнением коммита: хуки pre-commit, библиотеки black и isort.
В чем разница между ListView и RecyclerView?
Как Android-разработчик, вы наверняка стоите перед выбором: RecyclerView или ListView? Настало время выяснить, когда стоит использовать каждый из этих виджетов. Правильный выбор позволит вам обеспечить идеальный пользовательский опыт.
Глубокое погружение в режим Copy-on-Write в pandas. Часть 1
Хотите разобраться в том, как новый режим Copy-on-Write (копирование при записи) изменил поведение pandas? Тогда углубимся в механизм Copy-on-Write и остановимся на некоторых фактах, которые полезно знать каждому пользователю pandas.
Развертывание безопасных Java-приложений на AWS EKS с GitLab CI/CD, Maven, Trivy и SonarQube
Настроим приложение, пройдем модульное тестирование, сканирование безопасности, анализ качества кода, сборку и контейнеризацию. Упростим сложные развертывания, а инструменты и процессы интегрируем в единый автоматизированный рабочий поток.
Реверсинг плагина компилятора Compose: перехват фронтенда
Как плагином компилятора нарушаются правила Kotlin? Изучим архитектуру, FIR-фронтенд компилятора. Заглянем внутрь и попробуем сориентироваться: что и где перехватывается при прохождении этапов компилятора Kotlin?
C++: руководство по считыванию CSV-файлов
Изучим разные подходы: от стандартных библиотек C++ для простых файлов до реализации пользовательской логики парсинга или привлечения сторонних библиотек для сценариев посложнее. Проиллюстрируем кодом и разберем нюансы.
Как создать и развернуть бота для Twitter при помощи Python, Tweepy и PythonAnywhere
Среда разработки
Для создания бота потребуется настроить нашу среду разработки и установить необходимые библиотеки и инструменты.Что нам понадобится:
Python 3virtualenv — среда разработкиRequests library — библиотека для удобной работы с...
C++: подробное руководство по cортированным векторам
Разберем основные операции, выполняемые с сортированными векторами, и реальные сценарии. Сравним по эффективности эти векторы с несортированными.
Пишем быстрее в любой IDE
У каждого разработчика программного обеспечения есть любимая IDE. IDE предоставляют нам все необходимые инструменты, чтобы писать чистый, читаемый код быстрее и с меньшим количеством...
Не самые очевидные советы по написанию DTO на Java
Как облегчить себе жизнь при работе с Data Transfer Object: создаем неизменяемые DTO, избегаем нулевых значений и упрощаем инициализацию, руководствуясь книгой "Java: эффективное программирование".
Как создать анимированный переключатель тем в Jetpack Compose
Сколько пользователей, столько и предпочтений. Темы - не исключение. Кому-то больше нравится темное оформление, кому-то - светлое. Сегодня посмотрим, как разработать оригинальный переключатель тем с помощью Jetpack Compose.
Приемы работы в терминале Linux для повышения продуктивности
Освоим приемы, хитрости, рекомендации, сочетания клавиш в терминале Linux. С им помощью упростим повседневную рутину и облегчим выполнение многих задач.
Расширение Python с помощью C
Есть несколько способов ускорения кода Python:
В первую очередь попробуйте сократить временную сложность. Выберите более быстрый алгоритм. В большинстве случаев этого более чем достаточно.Если первый...
Понимание шаблонов проектирования: шаблон “Строитель”
Опытный разработчик должен иметь в своем арсенале различные устоявшиеся инструменты проектирования. Сегодня рассмотрим полезный шаблон "Строитель".
Mito: быстрый анализ данных на Python
Выбиваетесь из графика? Боитесь, что не уложитесь в срок? Mito сэкономит драгоценное время. Эта библиотека Python поможет провести анализ данных в считанные минуты.
Как создать Open Source библиотеку Android
Пошагово пройдем процесс проектирования. Спланируем надежную стратегию согласно жизненным циклам проекта ПО с открытым исходным кодом - от проектирования до выпуска.
Немодный способ программирования, которым я зарабатываю на жизнь уже 15 лет
Пока одни спорят о модных фреймворках, другие тихо решают бизнес-задачи и зарабатывают. История разработчика, который 15 лет кормит семью, используя "немодные" инструменты, — лучший урок прагматизма в IT-индустрии. Его клиенты платят не за технологии, а за результат. Узнайте, как можно зарабатывать, отказавшись от погони за трендами.
Разработка приложения на основе генеративного ИИ в React IDE
Создание приложений сопряжено с проблемами, способными замедлить процесс разработки и затруднить совместную работу. Codux - бесплатная визуальная среда разработки для приложений React + TypeScript - сделает этот процесс намного проще и эффективнее.
Учимся писать строки документации в Python
Все мы когда-то писали такой код, взглянув на который две недели спустя, трудно было понять почему и как он работает. Нам часто приходится иметь...
Искусственный интеллект + распределённые реестры = оружие против фейковых новостей
Поддельные новости — довольно важная проблема в нашем онлайн мире. И хотя дезинформация и пропаганда существуют уже сотни лет, новости-фейки сегодня становятся по-настоящему серьёзной угрозой. Частично...
Preact вместо ручной оптимизации React-приложения
Preact предлагает оптимизацию производительности по умолчанию. Благодаря сокращению объема библиотеки и увеличению скорости, Preact позволяет сосредоточиться на разработке функций, а не на ручной оптимизации, как React.





































































































