20 Python-скриптов для автоматизации повседневных задач

20 Python-скриптов для автоматизации повседневных задач

Эта коллекция из 20 скриптов усилит арсенал любого питониста. Став ее обладателем, вы сможете легко решать такие задачи, как поиск дубликатов файлов, преобразование текста в речь, создание собственного чат-бота, мониторинг цен на криптовалютном рынке и многие другие. 
Kotlin & Android

Делегаты в Kotlin для Android

Kotlin действительно красивый язык, в котором есть очень крутые фичи. Из-за них разработка приложений становится веселым и захватывающим опытом. Одна из этих фич — делегированные свойства....
Как написать на Java функцию, подобную sizeof в C

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

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

Создаём «ToDo» приложение с помощью Electron

Мы будем создавать приложение ToDo с помощью библиотеки Electron. Мы затронем следующие темы: хранение данных, использование нескольких окон, взаимодействие между браузерами. Что необходимо для этого Я...
Создание кастомизированного кругового загрузчика в Jetpack Compose: изучение Android Canvas и анимации

Создание кастомизированного кругового загрузчика в Jetpack Compose: изучение Android Canvas и анимации

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

Скрипт для WhatsApp-сообщений в 20 строках кода Python

В повседневной рутине мы часто забываем о близких. А ведь можно воспользоваться WhatsApp! То, с какой регулярностью родители шлют мне с утра пораньше сообщения — засыпая...
Data Science

Выбираем базу данных

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

Как работает программа «Hello World!»?

Вы когда-нибудь задумывались о том, как работает знаменитая программа «Hello World!»? Давайте подробно разберём ассемблерный код и увидим, что происходит, так сказать, за кадром...
Опыт работы с Python в течение 2 лет: уроки и рекомендации

Опыт работы с Python в течение 2 лет: уроки и рекомендации

Python может стать вашим проводником не только в мир программирования. С ним вы откроете аналитику данных, машинное обучение, веб-скрейпинг, скриптинг и многое другое, если учтете уроки и будете следовать рекомендациям питониста с 2-летним стажем.
Kotlin-реализация RecyclerView на Android

Kotlin-реализация RecyclerView на Android

RecyclerView - улучшенная замена устаревшего и во многом несовершенного ListView. С помощью этого краткого обзора вы легко сможете создать свой собственный пользовательский RecyclerView.
Apple убивает Swift

Apple убивает Swift

В отличие от современных языков Python, Rust и Kotlin, великий Swift оказался задушен управлением корпораций. Поразмышляем о том, как диктаторское управление убивает наследие Латтнера и можно ли считать безнадежной текущую ситуацию с языком Swift.
Практикум по созданию сценариев командной строки

Практикум по созданию сценариев командной строки

Сценарии командной строки играют важную роль в современных операционных системах. Предлагаем углубиться в это понятие и поучиться писать скрипты shell.
C++: практическое руководство по priority_queue

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

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

Java Hibernate

Познакомимся с инструментом Hibernate, который помогает сопоставлять объекты с записями в реляционных базах данных, и выполним CRUD-операции на примере условного класса.
Golang

Привет, Go!

За последние пару месяцев я полюбил Go по разным субъективным причинам. Чтобы продемонстрировать всю красоту и простоту языка Go, рассмотрим классическую небольшую программу, которая...
Elasticsearch

Начало работы с Elasticsearch

Что такое Elasticsearch? Elasticsearch(ES) — это распространенная поисковая система с открытым исходным кодом, основанная на индексе Lucene. Написана она на языке Java и доступна для многих платформ....
[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

Чем @AppStorage отличается от @State и как решается потенциальная проблема @AppStorage с самим SwiftUI? Применим подход со ViewModel.
Топовые пакеты Python для очистки данных

Топовые пакеты Python для очистки данных

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

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

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

GitHub Actions: начало

Часть 1, Часть 2 В одной из последних статей я делала обзор GitHub Actions и показывала, как использовать существующий экшен для развертывания сайта Gatsby на...
От отправителя к получателю: подход Rust к локальной передаче файлов

От отправителя к получателю: подход Rust к локальной передаче файлов

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

Псевдоним типа в Swift

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

Подробно об акторах в Swift

Чем акторы похожи на очереди и как ими решаются типичные проблемы параллелизма? Разберем на примерах эффективное применение акторов, опишем правила взаимодействия с ними.
Графовое моделирование данных на Java

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

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

Примитивы синхронизации в Go

Изучаем Mutex, WaitGroup и Once с примерами В данной статье кратко рассмотрим некоторые конструкции низкоуровневой синхронизации, которые наряду с горутинами и каналами предлагает нам один...
Как мобильному разработчику всегда быть в курсе последних событий в своей сфере

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

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

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

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

Конструкция контейнера в Docker

Контейнеризация приложений - основной принцип работы платформы Docker при разработке, тестировании и запуске веб-приложений. Эта краткая шпаргалка по важным концепциям и командам в процессах контейнеризации напомнит о свойствах образов, файлов, сетей и томов данных.
5 антипаттернов на языке функционального программирования

5 антипаттернов на языке функционального программирования

Проанализируем причины роста популярности языков функционального программирования и подробно рассмотрим 5 антипаттернов на примерах Scala.
Продвинутый функционал Git: хитрые приемы и команды

Продвинутый функционал Git: хитрые приемы и команды

git  —  очень мощный инструмент, который практически каждый разработчик задействует ежедневно. Но для большинства его использование сводится всего к нескольким командам: pull, commit и...
Топ-15 лайфхаков для работы с Python

Топ-15 лайфхаков для работы с Python

Python, без сомнения, является одним из самых популярных языков программирования. Простой и легкий в освоении, он завоевал признание многочисленного сообщества. Python  —  “самый мощный язык,...
Пора отказаться от “@Input” и “@Output” в Angular

Пора отказаться от “@Input” и “@Output” в Angular

Ознакомьтесь с реализацией входов модели - новшества, введенного в Angular 17.3 для упрощения двунаправленной привязки данных. Отказ от традиционных декораторов @Input() и @Output() и принятие директивы @model позволит улучшить читаемость, сопровождаемость и общую реактивность Angular-приложений.
Оптимальные инструменты Firebase для мобильного приложения

Оптимальные инструменты Firebase для мобильного приложения

Как упрощается процесс разработки с готовыми решениями аутентификации, уведомлений, баз данных реального времени? Изучим реализацию важного функционала: FCM, Remote Config, расширений, распространения приложений, устранения сбоев, мониторинга производительности.
Как украсть API-ключи ChatGPT

Как украсть API-ключи ChatGPT

А вы знаете, где нужно хранить API-ключи ChatGPT, чтобы спать спокойно? Известно ли вам, как злоумышленники могут обойти популярные техники безопасности и получить доступ к вашим API-ключам? Чтобы этого не случилось, ознакомьтесь с основными правилами безопасности фронтенда.
Регулярные выражения для извлечения информации о расходах из текстового файла

Регулярные выражения для извлечения информации о расходах из текстового файла

Паттерны регулярных выражений (ReGex) выглядят как какая-то ерунда и все же являются мощным инструментом для извлечения информации из текста. Куча, казалось бы, случайных знаков...
Создаем юнит-тесты с помощью ИИ-инструмента

Создаем юнит-тесты с помощью ИИ-инструмента

В этой статье мы воспользуемся плагином на базе искусственного интеллекта для IntelliJ, чтобы автоматически сгенерировать юнит-тесты. Шаг 1. Установка плагина и импорт проекта Плагин для IntelliJ IDEA...
Обработка событий по времени в бессерверной архитектуре

Обработка событий по времени в бессерверной архитектуре

Бессерверность  —  мир событий Когда-то в качестве серверов все размещали непрерывно запущенные демоны, но теперь мы вступаем в бессерверную эру, когда все запускается событиями. Это очевидно, если...
Как последовательно писать аналитические SQL-запросы за 8 шагов

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

Сразу никогда не бывает очевидно, как перейти от простого SQL-запроса к сложному, особенно если запрос содержит сложные вычисления. Одна из «опасностей» SQL заключается в том, что можно создать исполнимый запрос, но вернуть неверные данные. Например, легко увеличить значение вычисляемого поля, объединив его с несколькими строками. Автор материала показывает, как строить SQL последовательно, чтобы сократить количество ошибок.
Миграция UI-ориентированной библиотеки Android на Compose Multiplatform (Android/iOS)

Миграция UI-ориентированной библиотеки Android на Compose Multiplatform (Android/iOS)

Написать кроссплатформенный пользовательский интерфейс на Kotlin - уже не проблема. Теперь Android-разработчики могут создавать iOS-приложения на Kotlin с минимальными дополнительными усилиями. Убедитесь в этом на примере успешной миграции Android-библиотеки на Compose Multiplatform. 
Написание консольных скриптов: Bash против Python

Написание консольных скриптов: Bash против Python

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

Насколько С++ быстрее Python

Есть миллион причин любить Python (особенно специалистам по данным). Но сильно ли он отличается от более профессиональных низкоуровневых языков программирования, таких как С или С++? Скорее всего, многие дата-специалисты или пользователи Python задавались этим вопросом или однажды задумаются об этом.
Python

Элегантное ООП в Python

Разбираемся с магическими методами в Python, облегчающими жизнь с ООП. Вам понравится! Что за магические методы?  Магические методы  —  это специальные методы в python, обрамленные двумя...
Внимание: работает пакет Python Tweepy!

Внимание: работает пакет Python Tweepy!

Обучающее руководство по извлечению любых данных из твитов посредством пакета Python Tweepy и форматированию их в датафрейм Pandas.
Знакомство с функциональным программированием в Python, JavaScript и Java

Знакомство с функциональным программированием в Python, JavaScript и Java

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

Обработка естественного языка в Python. Основы

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

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

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

Python: декоратор @retry

Python часто называют “склеивающим” языком. Для меня этот термин означает, что язык помогает соединять системы и обеспечивает передачу данных из A в B в...
Python

Альтернатива switch в Python

Во многих языках программирования (например, JavaScript) есть операторы switch. Это блок кода, в котором значение сравнивается с цепочкой переключателей case. При обнаружении соответствия выполняется...
cin.ignore() на C++

cin.ignore() на C++

Изучим приемы и сценарии применения этой функции, проиллюстрируем примерами. Разберем типичные ошибки, дадим рекомендации по производительности.
Реализация бесконечной прокрутки списка новостей в приложении TrendNow. Часть 4

Реализация бесконечной прокрутки списка новостей в приложении TrendNow. Часть 4

Реализация бесконечной прокрутки в Lazy Column Jetpack Compose - новый шаг в создании новостного приложения TrendNow. Она позволит без проблем загружать больше трендовых новостей по мере того, как пользователь прокручивает список.
Android

Чистый код в Android

Прежде чем начать писать код, стоит разобраться в том, как им управлять, и как сделать его масштабируемым. Как сказал Дядя Боб в своей книге: Вы читаете...
Переход с Pandas на Polars: 7 простых шагов

Переход с Pandas на Polars: 7 простых шагов

Хотите молниеносно выполнять привычные Pandas-операции? Сделайте 7 простых шагов для перехода на Polars! Достоинства этой библиотеки, в числе которых не только скорость, убедят вас в том, что пора попрощаться с Pandas.
Как правильно объявлять API устаревшими и не сломать пользователям код

Как правильно объявлять API устаревшими и не сломать пользователям код

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

LocalStack: запуск AWS на локальном компьютере

Более миллиона компаний по всему миру создают приложения на облаке AWS. Одна из проблем при работе с облаком — это огромное количество сервисов в распоряжении, а...
Python

10 внешних Python-пакетов, которые вам точно понравятся

Python — это эксперимент о том, сколько свободы нужно давать программистам. Предоставь им слишком много свободы, и никто не сможет прочесть чужой код. Если дать слишком...
Как создать пользовательскую поисковую панель SwiftUI с LazyVStack

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

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

Принципы SOLID в инженерии данных. Часть 3

Выясним, как с принципами SOLID сочетается функциональное программирование, каковы их достоинства и недостатки. Продемонстрируем на примерах нарушение и соблюдение этих принципов.
Реализация тематических фильтров новостей в приложении TrendNow. Часть 3

Реализация тематических фильтров новостей в приложении TrendNow. Часть 3

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

Создание оркестратора для событийно-ориентированного приложения с Golang и RabbitMQ

Реализуем простое решение маршрутизации для отправки сообщений со стабильным потоком запросов, обработкой ошибок и соответственных действий. Это конвейер передачи запросов для системы бронирования гостиницы - резервирование, проверка, зачисление средств, бронь номеров - со всеми преимуществами архитектуры микросервисов и очередью недоставленных сообщений.
Как оптимизировать навигацию в Jetpack Compose

Как оптимизировать навигацию в Jetpack Compose

Проанализируем ситуацию с навигацией в Jetpack Compose, выявим существующие проблемы и рассмотрим конструктивное решение в виде реализации чистой навигации.
Введение в линейное программирование на Python

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

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

Адаптируем Android-приложение к большим размерам экрана с помощью классов window-size

"Большой экран" становится популярным и быстрорастущим сегментом устройств Android. Самое время научиться оптимизировать приложение для любого размера экрана. Узнайте о классах window-size, рассмотрите сценарии их использовании в разных типах макетов навигации и закрепите материал с помощью реальной демонстрации.
Kotlin

Как избежать утечек памяти с помощью Kotlin

Я выступал на MobOS, где рассказывал о написании и автоматизации тестирования производительности на Android. Часть своей речи я посвятил обнаружению утечек памяти в процессе...
Jupyter

Интерактивные отчеты в Jupyter Notebook

Jupyter Notebook - важный инструмент для специалиста по науке о данных. С его помощью можно выполнять базовые задачи, такие как очистка данных, визуализация, создание...
9 Уровней применения функции zip в Python

9 Уровней применения функции zip в Python

Введение В Python есть несколько встроенных функций, которые делают код очень элегантным. Одна из них  —  функция zip. Но начинающим не всегда бывает понятно, как...
Почему вам стоит написать свой API-шлюз с нуля

Почему вам стоит написать свой API-шлюз с нуля

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

Как работать с большими наборами данных в Python: 3 способа

Нехватка памяти ПК при обработке больших данных - большая проблема для специалистов по науке о данных. Предлагаем узнать 3 оптимальных способа ее решения.
10 проектов для изучения Golang в 2023 году

10 проектов для изучения Golang в 2023 году

Учиться лучше на практике, и оптимальный способ освоить Golang - создавать проекты. Мы отобрали для вас подходящие проекты - не слишком сложные и не самые простые - с курсами для начинающих и опытных разработчиков.
Владеешь merge  -  освой и rebase

Владеешь merge  -  освой и rebase

В центре внимания - две команды Git: merge и rebase. Рассмотрим случаи применения каждой из них, сравним результаты и выявим отличия.
Как вернуть контроль над состоянием данных с RemoteResult

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

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

Как освоить API-интерфейсы Metal с UIView и SwiftUI

Раскроем возможности программирования графических процессоров с Metal для создания сложной 3D-графики, обработки изображений и других задач. Предоставим фрагменты кода и рекомендации для применения Metal в собственном приложении iOS или macOS.
Rust: безопасный парсинг с нулевым копированием

Rust: безопасный парсинг с нулевым копированием

В Rust парсинг с нулевым копированием избавляет от ошибок безопасности памяти, возникающих в других языках. Руководство по использованию такого алгоритма позволит повысить общую производительность системы.
Rust или Си: кто Усэйн Болт в мире программирования?

Rust или Си: кто Усэйн Болт в мире программирования?

Си  —  это сэнсэй черепашек-ниндзя «Си  —  язык небезупречный, со странностями, но невероятно успешный». (Деннис Ритчи). Си  —  это императивный язык программирования общего назначения и один...
Jetpack Compose: настройка Retrofit и Ktor с помощью Dagger Hilt для внедрения зависимостей

Jetpack Compose: настройка Retrofit и Ktor с помощью Dagger Hilt для внедрения зависимостей

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

Прокачка Jupyter Notebooks

Я открыл для себя Jupyter Notebooks несколько месяцев назад, когда всерьёз занялся машинным обучением. То, как всё работает в браузере, сначала откровенно восхитило, но...
Долгожданные инструкции Switch-Case в Python

Долгожданные инструкции Switch-Case в Python

Python 3.10 обрел немало интересных возможностей, одна из которых привлекла мое внимание в особенности  —  структурное сопоставление с шаблоном, иначе говоря инструкции switch/case. Несмотря на...
Как создавать диаграммы с помощью ChatGPT

Как создавать диаграммы с помощью ChatGPT

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

10 способов повысить качество Python-кода

Пополните копилку своих Python-компетенций 10 лайфхаками, которые должен знать каждый программист. Применяя их в повседневной практике, вы не только будете писать эффективный код профессионального уровня, но и повысите собственную производительность.
Разработка отказоустойчивых микросервисов с шаблонами «Повтор» и «Выключатель»

Разработка отказоустойчивых микросервисов с шаблонами «Повтор» и «Выключатель»

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

Хитрости объектно-ориентированного программирования. Часть 2: Закон Деметры

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.  Предыдущие части: Часть 1   Единственный закон в программировании — это отсутствие законов. А закон Деметры — это, скорее, рекомендации, а...
Golang

Метапрограммирование на Go

Большинство современных сайтов реализуют некий MV*-фреймворк как формально, так и неформально. Если вы пишете много кода, скорее всего, вы пишете много моделей снова и...
Python

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

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

Реализация односвязного списка в Golang

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

Базовая торговая стратегия, позволяющая переиграть рынок

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

Простое руководство по форматированию строк в Python с помощью f-строк

Использование f-строк - 5-го способа форматирования строк, появившегося в Python 3.6, - повысит ваш профессиональный уровень. В отличие от других способов в Python, f-строки являются более гибкими, работают быстрее и улучшают читаемость кода.
TrendNow: создание новостного Android-приложения с помощью Jetpack Compose. Часть 1

TrendNow: создание новостного Android-приложения с помощью Jetpack Compose. Часть 1

Это 1-я часть серии статей, посвященных современной Android-разработке на примере создания новостного агрегатора "TrendNow" с помощью Jetpack Compose. В 1-й части предлагается подробное руководство по созданию базовой функциональности новостного приложения.
Как овладеть наукой о геопространственных данных в 2023 году

Как овладеть наукой о геопространственных данных в 2023 году

Предлагаем пошаговое руководство по овладению наукой о геопространственных данных с помощью Python с нуля. Имея в своем распоряжении указанные здесь навыки и ресурсы, каждый сможет стать профессионалом в области анализа геопространственных данных.
Эволюция кортежей в C#

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

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

Учимся избегать null-значений в современном Java. Часть 1

Null. Правила использования В своем выступлении “Null References: The billion dollar mistake” (“Нулевые ссылки: ошибка на миллиард долларов”), Тони Хоар описывает реализацию нулевых ссылок в...
Создаем веб-сканер страниц с помощью Python

Создаем веб-сканер страниц с помощью Python 

Рассмотрим поэтапный процесс создания веб-сканера для отслеживания изменений и последующего оповещения посредством e-mail. Работаем с Python, Beautiful Soup и Pipedream.
Обеспечьте молниеносную обработку данных с помощью экспертных методов. Используя преимущества оптимизации форматов файлов и параллельной обработки, вы существенно повысите производительность операций загрузки данных в Python.

Выполняйте загрузку Excel-файлов в Python в 1000 раз быстрее

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

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

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

Опыт работы с Golang: путь проб и ошибок

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

Конкурентность и параллелизм в Golang. Горутины.

Конкурентность в Golang Прежде чем приступать к раскрытию темы нашей статьи, неплохо бы прояснить, что же такое параллелизм и конкурентность и в чём разница между ними....
Pattern

Шаблоны функционального программирования. Рецепты

Эти рецепты будут наиболее полезны для тех, кто переходит от функциональных библиотек, таких как ramda, к использованию алгебраических типов данных (ADT). Мы будем использовать...
Основы ​программирования на Ruby

Основы ​программирования на Ruby

Изучим типы данных на Ruby, напишем и запустим простую программу. Разберем, как получаются данные от пользователя, текущая дата и время, чем методы отличаются от функций, как создается массив.
Почему имена Android-пакетов имеют вид com.xyz.abc?

Почему имена Android-пакетов имеют вид com.xyz.abc?

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

Сниппеты Python для начинающих: распаковка кортежей, пауза в секундах и случайное число

Добавьте в закладки 12 профессиональных Python сниппетов для решения повседневных задач, ведь когда-нибудь они помогут сохранить ваш день!
Знакомьтесь, компонент Navigation в Android!

Знакомьтесь, компонент Navigation в Android!

Что такое компонент Navigation?  Всем известно, что навигация между экранами является одним из фундаментальных принципов в приложениях Android. Как правило, мы осуществляем ее при помощи...
NetMock: простой подход к тестированию HTTP-запросов в Java, Android и Kotlin Multiplatform

NetMock: простой подход к тестированию HTTP-запросов в Java, Android и Kotlin Multiplatform

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

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

Предыдущие части: Часть 1   Первая часть цикла получила множество положительных отзывов, которые мотивировали меня закончить цикл как можно скорее. Сделаю всё, что смогу. В первой...
Руководство по выбору оптимального карьерного пути в IT-сфере

Руководство по выбору оптимального карьерного пути в IT-сфере

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

Android Networking в 2019 - Retrofit с Kotlin Coroutines

В 2018 году произошли серьезные изменения мира Android, особенно касательно Android Networking. Многие перешли от использования RxJava к Kotlin Coroutines, для обработки многопоточности в...
Как Signal управляет состоянием приложения

Как Signal управляет состоянием приложения

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

Какой метод глубокого клонирования в JavaScript наиболее эффективный  —  исследование

Чтобы выделить "победителя" среди методов глубокого клонирования в JavaScript, необходимо протестировать каждый из них. Предлагаем результаты серии модульных тестов.