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

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

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

Как с легкостью создать установщик пакетов Android

Ищете простой способ создания установщика пакетов Android? Библиотека Ackpine позволит выполнить этот процесс, избавив вас от многих забот и большого объема кода.
Как развернуть пакет Cython в PyPI

Как развернуть пакет Cython в PyPI

Для меня это оказалось довольно трудно, и я подумал, что неплохо было бы поделиться своим опытом в статье. Структура проекта Вот файловая структура, которую мы будем...
Как перевести код R в Python с помощью ChatGPT

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

Научимся переводить код с языка программирования R на Python и наоборот. Для этой цели воспользуемся возможностями ChatGPT и на примерах рассмотрим принцип действия.
Кэширование трендовых новостей в приложении TrendNow с помощью OkHttp Cache. Часть 6

Кэширование трендовых новостей в приложении TrendNow с помощью OkHttp Cache. Часть 6

В этой части вы узнаете о решении проблемы ограничения скорости API в TrendNow путем реализации OkHttp Cache для кэширования трендовых новостей на стороне клиента. Это решение, хотя и не устраняет полностью проблему, помогает минимизировать ограничение скорости API.
Вопрос по React-фронтенду, который стоит 100+ собеседований

Вопрос по React-фронтенду, который стоит 100+ собеседований

Понимаете ли вы, как работает React, или просто умеете им пользоваться? Далеко не каждый кандидат на должность разработчика может ответить на этот вопрос. Но это именно то, что будет интересовать вашего интервьюера на собеседовании.  
5 крутых приемов, которые улучшат работу на R

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

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

ClickHouse: оконные функции с нуля

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

Обзор библиотеки Datatable в Python

Данные, с которыми вы работаете, уже настолько большие, что вы часами ждёте их загрузки? Пора осваивать новый инструмент, который избавит вас от долгого ожидания...
C

Программируем робота E-puck в симуляторе Webots

Хотите изучить робота, но у вас нет возможности его купить? А может, вы просто не знаете с чего начать? Тогда симулятор роботов Webots вам...
Как создать форму текстового фона в Jetpack Compose

Как создать форму текстового фона в Jetpack Compose

Красивое оформление повышает привлекательность текста для пользователей. Сегодня расскажем, как с помощью Jetpack Compose "одеть" текст в фоновую форму.
Автоматическое масштабирование CI с помощью Kraken CI

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

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

Разностный алгоритм Майерса и наблюдаемые свойства в Kotlin - как их объединить, чтобы облегчить жизнь разработчика

Посмотрите на анимацию ниже. Это группа разноцветных элементов, которые при нажатии кнопки начинают перемещаться. С точки зрения разработчика, эти элементы размещаются внутри RecyclerView с...
Команды Go и переменные среды, которые должен знать каждый разработчик

Команды Go и переменные среды, которые должен знать каждый разработчик

Как загружаются, кешируются и удаляются зависимости на Go, и что здесь изменилось с появлением GOPROXY и модулей? Как избежать ошибок сборки и обеспечить ее воспроизводимость?
CPP

Шаблон проектирования прототипов в современном C++

Шаблон проектирования прототипов — это порождающий шаблон проектирования, который помогает в прототипировании (недорогом создании/копировании) объекта с использованием отдельных методов или полиморфных классов. Прототипом можно считать модель...
Переход с Pandas на Polars: 7 простых шагов

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

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

Kotlin: модификаторы видимости

В чем отличие модификаторов в Kotlin и на Java? Разберем особенности их использования с переменными видимости.
Обзор итераторов в Go

Обзор итераторов в Go

Релиз Go 1.22 запланирован на февраль 2024 года, но уже сегодня можно оценить некоторые из его возможностей. Поговорим о том, как будут выглядеть итераторы и как может расшириться стандартная библиотека для их поддержки.
Data Analysis

Анализ автоаварий в Барселоне с использованием Pandas, Matplotlib и Folium

Open Data Barcelona - это сервис, предоставляющий наборы данных Барселоны, который содержит около 400 наборов, охватывающих широкий спектр тем, таких как население, бизнес и...
C++: полное руководство по циклам while

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

Разберем сценарии применения, проиллюстрируем практическими примерами, дадим рекомендации. Когда предпочтительнее цикл do-while?
Введение в программирование на Rust

Введение в программирование на Rust

Rust  —  это перспективный язык программирования, набирающий рекордную популярность для низкоуровневых систем, таких как операционные системы и компиляторы. В 2020 году по итогам опроса разработчиков...
Модификатор Kotlin, которого не должно было быть

Модификатор Kotlin, которого не должно было быть

Большинство разработчиков Kotlin уверены в том, что свойство val здесь эквивалентно использующемуся в Java свойству final. А что, если я скажу, что это не...
Android

Навигация по настраиваемой доставке

Android App Bundle — это новый формат публикации для Android-приложений, заменяющий монолитный APK. Сам пакет приложений непосредственно не устанавливается. Вместо этого Google Play генерирует оптимизированные APK...
Как последовательно писать аналитические SQL-запросы за 8 шагов

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

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

Как создавать веб-сокеты в Python

WebSocket — протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. — Википедия Мы научимся настраивать собственный веб-сокет на Python, используя WebSockets...
Kotlin

Знакомство с Kotlin для Android за один день

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

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

Использование f-строк - 5-го способа форматирования строк, появившегося в Python 3.6, - повысит ваш профессиональный уровень. В отличие от других способов в Python, f-строки являются более гибкими, работают быстрее и улучшают читаемость кода.
Пора отказаться от “@Input” и “@Output” в Angular

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

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

Узнать и забыть: 4 антипрактики обработки ошибок в Python

Внимание! Обнаружены 4 практики обработки ошибок в Python, резко снижающие скорость разработки. Предупрежден - значит вооружен!
Утраченное искусство красоты кода 

Утраченное искусство красоты кода 

В эпоху ИИ-генерации мы все реже задумываемся о том, что код может быть не просто функциональным, а по-настоящему красивым. Но было время, когда элегантность алгоритмов восхищала, как поэзия, а программисты оставляли в строках частицу своего мышления. Что происходит с искусством кода, когда его создание переходит к машинам?
Вопросы на собеседованиях для опытных профессионалов Java в 2024 году

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

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

Введение в модульное тестирование на Python

Вы только что написали фрагмент кода и не знаете, что делать дальше. Отправлять ли pull request, чтобы коллеги провели ревизию кода или же протестировать...
C

Игра на C# меньше 8 Кб

Как уменьшить размер исполняемого файла C#? Как человеку, выросшему во времена дискет и 56 Кбит модемов, мне всегда нравились небольшие программы. Я мог поместить много небольших...
Как протестировать код на Go с Github Actions

Как протестировать код на Go с Github Actions

Введение Процесс тестирования очень важен при разработке программного обеспечения. Разработчики должны быть уверены в стабильности своего кода и в том, что он соответствует требованиям проекта....
Не используйте оператор "+" для объединения строк в Python

Не используйте оператор «+» для объединения строк в Python

Когда я только начал работать с Python, интуитивно стал использовать оператор + для объединения строк, как в Java и многих других языках программирования. Однако вскоре...
10 проектов для изучения Golang в 2023 году

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

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

Jetpack Compose Canvas: 10 практических примеров

Разрабатываете пользовательское представление, игру или визуализацию данных? API Canvas обеспечит вам необходимые гибкость и контроль. Ознакомьтесь с его возможностями по созданию пользовательских рисунков.
Секреты оператора delete

Секреты оператора delete

Оператор delete - старая функция языка JavaScript. Как следует из ее названия, она призвана что-то удалять. Но что именно подлежит удалению в JavaScript? Предлагаем вместе поискать ответ на этот вопрос!
Python

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

Создаем интерактивный словарь В этой серии из 10 статей мы будем использовать Python для написания 10 реальных приложений. И в процессе создания этих приложений мы...
Почему борьба GitHub с тостовыми уведомлениями — плохая новость для специалистов по доступности

Почему борьба GitHub с тостовыми уведомлениями — плохая новость для специалистов по доступности

Решение GitHub полностью отказаться от тостовых уведомлений в своих продуктах, мотивированное заботой о доступности, вызвало бурную дискуссию в сообществе. Но является ли запрет действительно решением проблемы?
Julia

Стоит ли заменить Python на Julia?

В течение последних двух лет популярность интерпретируемого языка Python, который был написан на C, резко возросла. Хоть он и является полезным языком, который стал...
Загрузочные представления в SwiftUI

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

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

Taipy: создание полнофункциональных приложений для работы с данными

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

C++: подробное руководство по циклам for с векторами

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

Запечатанный класс

Часто нам приходится представлять ограниченный набор возможностей: веб-запрос либо успешно выполняется, либо не выполняется, User может быть либо про-пользователем, либо обычным. Чтобы смоделировать это, мы...
Раскройте потенциал VS Code для программирования на Ruby

Раскройте потенциал VS Code для программирования на Ruby

Рассмотрим расширения и библиотеки для повышения продуктивности при работе с кодом на Ruby. Настроим альтернативную RubyMine, бесплатную среду разработки.
C++: подробное руководство по размерам векторов

C++: подробное руководство по размерам векторов

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

Миграции баз данных с Golang

Изучим достоинства и недостатки очень полезного инструмента не только для тестирования, но и для контроля и управления версиями БД. Разберем особенности написания и применения SQL-миграций в службах на Go.
Python

Пять действительно крутых пакетов Python

Обширная экосистема Python содержит в себе пакеты, модули и библиотеки, которые можно использовать для создания собственных приложений. Некоторые пакеты и модули включены в Python...
Android

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

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

Разворачиваем декораторы. Часть 2

Предыдущие части: Часть 1 Вспомним о чем шла речь Предыдущий пост я писал про основы декораторов в Python. Для тех, кто не читал её, в двух...
Основы работы с Git

Основы работы с Git

В процессе разработки ПО значимая роль отводится сотрудничеству. В большинстве случаев деятельность разработчика включает работу в команде и совместное использование проекта с другими специалистами....
Python: подробное руководство по Statsmodels

Python: подробное руководство по Statsmodels

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

Создание API в R при помощи Plumber

Что это за инструмент - Plumber - и как с его помощью можно легко вывести собственное приложение R в продакшен-среду? Ответ на примере создания простого API.
Python

Разворачиваем декораторы. Часть 1

Предпосылки Для начала я должен убедиться, что все одинаково хорошо разбираются в теме. Если вам хорошо известны такие понятия как: переменные, параметры, возвращение значений переменной...
Конкурентность на Go: горутины и каналы для масштабируемых приложений

Конкурентность на Go: горутины и каналы для масштабируемых приложений

Рассмотрим две ключевые концепции, их применение в реальном примере. Дадим рекомендации по конкурентному выполнению.
Как отслеживать среду выполнения Docker с помощью Prometheus и Grafana

Как отслеживать среду выполнения Docker с помощью Prometheus и Grafana

Как определять производительность и поведение контейнеров и хост-систем? С помощью метрик. Поэтапно пройдем весь процесс: установка серверов, настройка Prometheus, запуск брандмауэра и экспортера Docker для извлечения метрик, создание дашборда в Grafana.
Как зарабатывать с помощью Python в 2023 году

Как зарабатывать с помощью Python в 2023 году

Извлечь выгоду из навыков программирования можно разными способами. Представляем список навыков Python, которые принесут доход в условиях конкуренции.
Синхронизация данных в реальном времени между MongoDB и Elasticsearch на Golang

Синхронизация данных в реальном времени между MongoDB и Elasticsearch на Golang

Сделаем мощную событийно-ориентированную службу синхронизации на Golang. Поэтапно настроим, оптимизируем производительность и протестируем.
Забудьте про сохранение изображений на Android в JPEG/PNG: HEIF и AVIF сэкономят до 50 % места

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

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

Эффективная стратегия тестирования Android-проектов. Часть 2: модульное тестирование

Эта часть посвящена основным элементам модульного тестирования при подготовке Android-проектов, а также различным типам тестовых дублеров. Вы узнаете, что именно надо тестировать при Android-разработке и получите рекомендации по написанию удобных в обслуживании и эффективных тестов.
Доступно об API-вызове во Flutter: лучшие практики с демонстрацией кода

Доступно об API-вызове во Flutter: лучшие практики с демонстрацией кода

Рассказываем, как во Flutter использовать методы API-вызова HTTP, POST, GET и как создавать модели для представления данных, получаемых с сервера. Следуя этим практикам, вы будете писать более надежный и эффективный код.
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 3

Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 3

В этой части рассмотрим использование рефлексии и загрузчика классов на примере добавления функциональности плагина в Java-приложение и модификации классов во время выполнения. В завершение поговорим о том, почему две мощные функции Java - динамическая типизация и изменяемые во время выполнения классы - должны войти в арсенал каждого программиста.
Продвинутое применение «select» в Ruby

Продвинутое применение «select» в Ruby

На примерах изучим, как select комбинируется и объединяется с другими методами. Рассмотрим особенности ключевого слова next со сложными условиями.
Python

Перестаньте использовать range() в цикле for в Python

Цикл for. Краеугольный камень программирования. Технологический приём, который вы осваиваете, ещё будучи новичком, и продолжаете использовать в течение всей своей карьеры программиста.  Если вы использовали...
Контейнеры Docker и их связывание в сети

Контейнеры Docker и их связывание в сети

Создадим три файла Dockerfile с прямым подключением каждого к своему репозиторию GitHub, сделаем из них три пользовательских образа Docker, а из каждого образа - по одному контейнеру. Один изолируем в сети Development, два поместим в Production и проверим их взаимодействие.
7 способов повысить свою продуктивность в Python

7 способов повысить свою продуктивность в Python

Python  —  один из самых популярных среди языков современного поколения и наверняка останется таковым в ближайшие десять лет. Это фантастический язык программирования практически для...
Julia

Улётные пакеты Julia для машинного обучения - мечта программиста!

Несмотря на то, что Julia все еще относительно молодой и перспективный язык, иногда он просто поражает своей не по годам зрелой экосистемой. Особенно это...
Линейная регрессия — реализация на Python

Линейная регрессия — реализация на Python

В подробностях рассмотрим основы линейной регрессии и ее реализация на языке Python. Линейная регрессия — это статистический метод моделирования взаимосвязей между зависимой переменной и заданным набором независимых переменных. Формулы, графики, варианты применения и, конечно, код вы найдете по ссылке ниже.
5 проектов Go: управление безопасностью и контейнерами, создание бэкендов

5 проектов Go: управление безопасностью и контейнерами, создание бэкендов

Расскажем об интересных проектах Golang, связанных в том числе с разведкой по открытым источникам. Используйте их в своих приложениях.
3 функции Pandas для группировки и агрегирования данных

3 функции Pandas для группировки и агрегирования данных

При работе с данными в Pyth on у программистов есть инструмент, который никогда не подведет: pandas. Это полнофункциональная и интуитивно понятная библиотека с открытым...
Классическая игра "Пинг-понг" на Java

Классическая игра “Пинг-понг” на Java 

Делу - время, игре - час! Этот час потратим на создание игры "Пинг-понг" с помощью библиотеки Processing и Java. Будет очень интересно!
Кодифицируйте схемы архитектуры AWS уже сегодня

Кодифицируйте схемы архитектуры AWS уже сегодня

Разберем преимущества этой альтернативы интерфейсам drag-and-drop. Создадим простую схему бессерверной архитектуры.
Почему стоит упрощать проекты МО

Почему стоит упрощать проекты МО

Аргументируем, почему не стоит тратить время и силы на сложную модель МО, а лучше в интересах бизнес-клиентов заняться созданием работоспособного MVP.
Реализация бесконечной прокрутки списка новостей в приложении TrendNow. Часть 4

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

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

Корутины и управление разрешениями в Android

Из этой статьи вы узнаете, как обрабатывать разрешения среды выполнения Android, появившиеся в Android Marshmallow, с помощью корутин (сопрограмм). Такой подход позволит обрабатывать разрешения...
C++: полное руководство по разделению строк

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

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

Под капотом модификатора suspend

Корутины Kotlin предоставили Android разработчикам модификатор suspend. Изучив его, вы поймете, почему функция suspend не возвращает ничего до тех пор, пока не будет завершена...
Улучшение Python кода: замените if-elif условие на словарь!

Улучшение Python кода: замените if-elif условие на словарь!

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

Импорт в Python

Импорт в Python. Основы В Python ключевое слово import применяется для того, чтобы сделать код в одном модуле доступным для работы в другом. Импорт в Python...
Борьба с веб-скрейперами с помощью Rust

Борьба с веб-скрейперами с помощью Rust

Боты, использующие инструменты веб-скрейпинга, могут быть использованы злоумышленниками в самых неприглядных целях. Можно ли им противостоять? Да! Сегодня рассмотрим мощный инструмент для борьбы с такими непрошенными гостями, построенный на Rust.
12 актуальных идей для портфолио Python: веб-сайты, аналитика данных, автоматизация и парсинг

12 актуальных идей для портфолио Python: веб-сайты, аналитика данных, автоматизация и парсинг

Анализатор настроения, виртуальный ассистент, бот-трейдер, компьютерное зрение - лучшие идеи для pet-проекта или стартапа на Python!
C++: полное руководство по «приведению вверх»

C++: полное руководство по «приведению вверх»

Изучим нюансы приведения вверх, проиллюстрировав их практическими примерами и реальными сценариями. Разберем неявное и явное приведения, полиморфизм, конструкторы и деструкторы, множественное наследование, dynamic_cast.
Android

Новое в Android 11

Оцените превью для обновлений некоторых уже существующих функций, а также доступных нововведений, таких как IME animation control. Синхронизированные анимации IME Идея заключается в том, что IME (редактор...
Bamboolib  -  одна из самых полезных библиотек Python

Bamboolib  -  одна из самых полезных библиотек Python

Почему Bamboolib считают уникальной библиотекой Python и почему вы непременно должны с ней поработать? Идея Bamboolib заключается в том, чтобы "изучать и использовать Pandas без написания кода". Это ли не мечта любого программиста?
Реализация масштабируемого и гибкого пользовательского экрана с несколькими переключателями на Swift

Реализация масштабируемого и гибкого пользовательского экрана с несколькими переключателями на Swift

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

Python: статические методы, методы класса и экземпляра класса

Согласно модели данных Python, язык предлагает три вида методов: статические, класса и экземпляра класса. Давайте посмотрим, что же происходит за кулисами каждого из видов...
Go

Топ-10 самых распространенных ошибок в проектах Go. Часть 2

Предыдущая часть: Часть 1, Часть 2 Инициализация среза Иногда конечная длина среза бывает известна. Допустим, нужно преобразовать срез Foo в срез Bar, что означает, что они...
GoFr и Gin: сравнительное исследование

GoFr и Gin: сравнительное исследование

Напишем REST API с базой данных MySQL на своенравном GoFr и платформе для веб-приложений Gin. Сопоставим функционал этих двух фреймворков, его влияние на продуктивность разработчиков и пригодные для продакшена приложения.
Принципы SOLID в инженерии данных. Часть 3

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

Выясним, как с принципами SOLID сочетается функциональное программирование, каковы их достоинства и недостатки. Продемонстрируем на примерах нарушение и соблюдение этих принципов.
Как реализовать в Golang двухфакторную аутентификацию с TOTP

Как реализовать в Golang двухфакторную аутентификацию с TOTP

Поэтапно настроим среду, интегрируем в проект библиотеку и рассмотрим различные аспекты 2FA, включая генерирование и хранение секретов, обработку аутентификации пользователя и проверку кодов TOTP. Дадим рекомендации по реализации в приложении Golang.
Темная сторона однонаправленных архитектур Swift

Темная сторона однонаправленных архитектур Swift

Однонаправленные архитектуры строго предусматривают, где и как обрабатываются состояния и эффекты. Но при этом страдают так называемой “пинг-понг-проблемой”, что сопряжено с риском для удобочитаемости. Поэтому стоит разобраться с этой проблемой и поискать способы ее преодоления.
Решение крупномасштабных задач машинного обучения на Python

Решение крупномасштабных задач машинного обучения на Python

Представляем краткое руководство по использованию библиотеки xLearn. Алгоритмы, поддерживаемые этой библиотекой, позволят решать многие задачи машинного обучения.
Android 12: радикально новый дизайн от Google

Android 12: радикально новый дизайн от Google

Material You  —  новая веха в эволюции текущего поколения Material Design (“материального дизайна”), используемого Android-устройствами (и почти всеми продуктами Google). Идея, лежащая в основе...
Модульное тестирование с помощью JUnit в Android

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

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

String, StringBuilder и StringBuffer: понимаете ли вы разницу?

Все разработчики имеют дело со словами и фразами в некоторых частях кода. String — это тип данных, используемый в программировании для представления текста. В Java есть три...
Что нового в Python 3.10?

Что нового в Python 3.10?

Разработка Python 3.10 стабилизировалась, и пришло время наконец-то протестировать все те новые функции, которые войдут в финальный выпуск. Мы расскажем все самое интересное о том,...
7 расширенных возможностей Python

7 расширенных возможностей Python

Python - один из самых продвинутых языков программирования, который широко используется во многих отраслях. Он обладает множеством расширенных функций, которые делают его мощным инструментом в руках опытных программистов. Вот подборка из 7 наиболее полезных расширенных возможностей Python.
Как использовать GitLab в качестве реестра Helm-чартов

Как использовать GitLab в качестве реестра Helm-чартов

Поскольку Helm вошел в число поддерживаемых форматов пакетных менеджеров GitLab, не помешает научиться создавать, упаковывать и публиковать Helm-чарты в реестре пакетов GitLab.
Как создавать диаграммы с помощью ChatGPT

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

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

4 способа обработки ошибок для стеков

Обработка ошибок — это часть рабочих будней каждого программиста. Всегда были и будут ситуации, когда по какой-либо причине код не заработает, и наша задача — следить за тем,...
Знакомство с SurrealDB с помощью Express.js, Node.js и TypeScript

Знакомство с SurrealDB с помощью Express.js, Node.js и TypeScript

Хотите знать, почему SurrealDB - высшее достижение в области разработки баз данных? Предлагаем детальное описание новейшей базы данных SurrealDB, а также подробное руководство по ее использованию.
Как создать на Python скринер акций и выполнить анализ настроений на основе ИИ

Как создать на Python скринер акций и выполнить анализ настроений на основе ИИ

Ищете продвинутый способ скрининга акций для инвестирования? Предлагаем руководство по запуску программы, которая поможет получить список "недооцененных" акций с их обзором и список статей с последними финансовыми новостями с их общим настроением.
Создание computedAsync для вычисления значений сигналов в Angular

Создание computedAsync для вычисления значений сигналов в Angular

Предлагаем руководство по обработке асинхронных операций с помощью сигналов и RxJS в Angular. Вы научитесь создавать функцию computedAsync для вычисления значений сигналов, а также узнаете, как использовать эту функцию из библиотеки ngxtension.
Программирование будущего: беспилотный автомобиль, управляемый JavaScript и ИИ

Программирование будущего: беспилотный автомобиль, управляемый JavaScript и ИИ

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