Taipy: создание полнофункциональных приложений для работы с данными
Taipy - библиотека Python, предлагающая простые и быстрые способы создания полнофункциональных приложений для работы с данными. Узнайте, чем Taipy отличается от Streamlit и как с помощью Taipy создать простое, но эффективное приложение для работы с данными.
Как создать масштабируемую архитектуру для крупных мобильных проектов
Принципы создания крупного масштабируемого проекта
Для начала определим нормы разработки крупного приложения:
Сокращение зависимостей. Любое изменение должно затрагивать как можно меньшее количество кода.Возможность повторного использования. Отдельные...
Как пересчитать слова в массиве используя JavaScript
Считаем слова в массиве
Дано:
let array = ;
Задача: посчитать все слова в данном массиве.
Способ №1: используем цикл for
function getWordCount() { let map = {}; for...
Полезные Python модули, которыми мало кто пользуется
Python — это прекрасный язык с множеством встроенных модулей, цель которых — помочь нам писать более красивый и качественный код.
Цель
В данной статье мы будем работать с малоизвестными методами...
Жажда скорости: Python с расширениями С
Хотите, чтобы Python работал на всех скоростях? Тогда пора познакомиться с расширениями С. Узнаем, как их создавать, применять в программах Python, а затем сравним скорость программы с расширениями и без.
Кросс-компиляция программ Rust для запуска на маршрутизаторе
Вы никогда не задумывались о том, чтобы запустить на домашнем роутере какой-нибудь пакет Ubuntu? Для этого можно было бы использовать контейнеры LXC. Всё это...
Kotlin Coroutines для Android — Прощай RxJava?
Недавно JetBrains анонсировала новую фичу, которая известна как coroutines (coroutines является экспериментальной функцией в Kotlin 1.1+). Кстати, jetbrains — это место, где можно найти настоящее сокровище,...
Распространенные и нелепые ошибки разработчиков Android-приложений
Создание Android-приложений - интересное занятие. Некоторым разработчикам оно позволяет создать собственный рынок и получить немалую прибыль. Хотите стать одним из них? Тогда постарайтесь избежать ошибок, которые могут помешать приложению стать хитом.
Как работает шлюз API на Golang: на примере одного симпатичного платья
Совместим просмотр красивых платьев в веб-магазинах и заодно разберем принцип работы шлюза API на Golang!
Овладей Python, создавая реальные приложения. Часть 5
Делаем анализ тональности высказываний в Twitter за 3 минуты
Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4
В этой части мы создадим скрипт Python, который при помощи Twitter поможет...
Инструмент, который автоматически находит уязвимости в Python-коде
TL;DR
В январе 2019 года мы запустили инструмент, который эффективно находит уязвимости в Python-коде. Мы создали автоматизированную систему, в которой объединили алгоритмы анализа потока данных...
5 рекомендаций по оптимизации пул-реквестов
Создание пул-реквеста (запроса на размещение изменений в основной ветке) и ожидание результатов ревью — стандартные процедуры в процессе написания кода, являющиеся важной и неотъемлемой...
Как интегрировать Kafka со Spring Boot
Для создания управляемых событиями, надежных и масштабируемых приложений часто используют Apache Kafka совместно с Spring Boot. Рассмотрим особенности такой интеграции.
Middleware Django: пользовательское ПО промежуточного слоя
Что такое middleware, как создать пользовательский Django middleware и как проверить стандартные? Всё, что нужно знать о связующем ПО.
Как создать плавающую кнопку для Android приложения
Для начала создайте пустой Android проект.
Добавьте зависимость Android Design, потому что FAB находится в этой библиотеке. Скопируйте и вставьте её в свой проект.
implementation 'com.android.support:design:28.0.0'
Если...
Python-библиотеки интерпретации моделей ML
Все эти библиотеки устанавливаются через pip и сопровождаются подробной документацией. Акцент в них делается на визуализацию.
Yellowbrick
Yellowbrick — это расширение scikit-learn, которое позволяет использовать полезные и красивые...
Как использовать инструменты статического анализа в коде Python
Научимся работать с такими инструментами статического анализа, как MyPy, Bandit и Radon. Они предоставляют мгновенную обратную связь об уязвимостях и ошибках в коде, а также снабжают разработчика полезными метриками.
Хотите стать классным разработчиком? Работайте с UX
В свою первую стажировку я проработал продукт-менеджером и UX-дизайнером всего лишь два месяца, однако узнал о проектировании куда больше, чем за время работы разработчиком.
Технические...
Продвинутый Python: оператор dot
Все знают, что оператор dot позволяет реализовать объектно-ориентированную парадигму в Python. Но далеко не все понимают механизм, лежащий в основе оператора dot. У вас есть возможность углубиться в этот вопрос.
Злые единицы - добрый Frink
Введение
Единица измерения — это физическое свойство, представляющее собой число, например, расстояние или время. Мы почти всегда говорим о системе единиц СИ.
У единиц могут быть...
7 признаков того, что Flutter готов к разработке корпоративных приложений
Есть ли у Flutter будущее в корпоративной сфере? Ответить на этот вопрос разработчики смогли только после бета-тестирования движка. Flutter доказал свою перспективность, предоставив программистам массу встроенных средств, облегчающих разработку платформозависимых приложений.
Создание чат-бота с помощью LLM и LangChain
Хотите создать диалогового чат-бота на основе собственных наборов данных? Воспользуйтесь пошаговым руководством по разработке диалогового чат-бота с оптимизированной памятью с использованием LLM и LangChain.
Использование строк в Rust
Копировать одну переменную в другую и ожидать, что значение будет доступно в первой переменной — это обычное дело для многих языков программирования. Но это не совсем...
Основы программирования на Ruby
Изучим типы данных на Ruby, напишем и запустим простую программу. Разберем, как получаются данные от пользователя, текущая дата и время, чем методы отличаются от функций, как создается массив.
C++ и Java: сравнительный анализ
Рассмотрим преимущества и недостатки двух лучших в настоящее время языков. Определим, где каждый из них предпочтительнее использовать.
Мутационное тестирование: создай мутанта и прокачай тест
Какая же проблема связана с модульными тестами? Дело в том, что можно написать их сколько душе угодно, и они даже пройдут, но это совсем...
Создаем настраиваемую цепочку обязанностей в Go
Цепочка обязанностей или цепочка команд — это шаблон проектирования, позволяющий передавать запросы по цепочке Handlers. Каждый Handler решает, нужно ли обработать и расширить запрос или же...
Переход с Pandas на Polars: 7 простых шагов
Хотите молниеносно выполнять привычные Pandas-операции? Сделайте 7 простых шагов для перехода на Polars! Достоинства этой библиотеки, в числе которых не только скорость, убедят вас в том, что пора попрощаться с Pandas.
Рефакторинг кода Go для тестопригодности: возможности интерфейсов
Раскроем возможности модульных тестов для раннего обнаружения багов. Продемонстрируем на конкретном примере, как сделать приложение на Go более тестопригодным.
Карусель изображений в React Native
Пошаговое руководство по созданию карусели изображений с помощью библиотеки React Native Snap Carousel, которая превращает этот процесс в истинное удовольствие.
Как создать тайм-трекер с помощью API Telegram Bot и веб хуков
Увлекательный рассказ о том, как разработчик отправился на поиски идеального инструмента для учета рабочего времени и как ему в этом помогли API Telegram Bot и веб хуки.
Git: простое руководство о том, как стать мастером контроля версий
Раскройте возможности контроля версий с помощью Git - системы, используемой в тысячах проектов и положившей начало новому уровню совместного написания кода.
5 удивительных скрытых возможностей Python. Часть 2
Python - эффективный и надежный язык программирования, пользующийся авторитетом в сообществе благодаря своей универсальности и динамике. Рассмотрим 5 недооцененных функций Python, которые сделают вас еще более грамотным разработчиком.
Улётные пакеты Julia для машинного обучения - мечта программиста!
Несмотря на то, что Julia все еще относительно молодой и перспективный язык, иногда он просто поражает своей не по годам зрелой экосистемой. Особенно это...
Язык C: введение и настройка среды
Операционная система UNIX, компилятор C и практически все прикладные программы UNIX были написаны на языке С. Он является наиболее широко практикуемым компьютерным языком.
Понятие о виртуальных средах в Python
Введение в виртуальные среды Python с использованием VR
Нет, вам не нужны очки виртуальной реальности (VR) для чтения этой статьи. Будет достаточно внимательности и интереса...
Как автоматизировать удаление ненужных файлов с помощью Python
Пошаговое руководство по автоматизации удаления ненужных файлов. Поработаем с Python и планировщиком задач cron.
Как пользоваться Thread.sleep на JVM без блокировки
У таких языков JVM, как Java и Scala, есть возможность запускать параллельный код с помощью класса Thread. Потоки, как известно, сложны и подвержены ошибкам,...
Запечатанный класс
Часто нам приходится представлять ограниченный набор возможностей: веб-запрос либо успешно выполняется, либо не выполняется, User может быть либо про-пользователем, либо обычным.
Чтобы смоделировать это, мы...
Портируем решатель судоку с Java на WebAssembly
Мне давно хотелось приступить к изучению WebAssembly, но никак не находилось подходящего материала. Однако недавно я просматривал некоторые старые программы и вспомнил, что как-то...
7 фреймворков для работы с LLM
Предлагаем детальное описание 7 фреймворков с открытым исходным кодом для развертывания и обслуживания LLM. Сравните особенности, преимущества, ограничения и затратность таких фреймворков, как vLLM, Text Generation Inference, OpenLLM, Ray Serve, CTranslate2 и MLC LLM.
Как я создал свою первую видеоигру
В прошлом году во время новогодних праздников мне очень захотелось начать новый параллельный проект. Я не знал, чего именно хочу, но я был уверен,...
Понятия “связанности” и “связности” в объектно-ориентированном программировании
Рассмотрим такие характеристики кода, как связанность и связность. Разберем каждое из понятий и на примерах определим их наилучшее сочетание для чистоты кода и удобства его сопровождения.
Кастомизируем дефолтную заставку во Flutter
Во Flutter невозможно переопределить экран заставки, который задан по умолчанию, а значит любой виджет-заставка, созданный внутри Flutter, будет отображаться только после дефолтной заставки. Пока...
10 полезных советов по повышению производительности при работе с VS Code
Visual Studio Code - не просто текстовый редактор. Это мощный инструмент, который значительно повышает производительность и оптимизирует рабочий процесс. Воспользуйтесь этими советами по работе с ним.
Android 12: радикально новый дизайн от Google
Material You — новая веха в эволюции текущего поколения Material Design (“материального дизайна”), используемого Android-устройствами (и почти всеми продуктами Google). Идея, лежащая в основе...
Создание и отслеживание первого рабочего потока Github Actions
Github Actions — это собственное решение Github для CI/CD (непрерывной интеграции и непрерывного развёртывания ПО). Оно стало доступно сообществу разработчиков с момента запуска Github...
Jetpack DataStore: улучшенная система хранения данных
Что такое DataStore
На протяжении многих лет разработчики Android хранили небольшие фрагменты конфиденциальных пользовательских данных с помощью общих настроек (shared preferences). Этот подход имеет следующие...
Графовые сверточные сети: введение в GNN
Предлагаем подробное описание механизма работы графового сверточного слоя. Пошаговое руководство по использованию PyTorch Geometric (PyG) позволит на практике применять этот механизм для решения задач классификации узлов.
Комбинации команд Unix/Linux, которые должен знать каждый разработчик
Экономьте свое время, используя комбинации команд в терминале и скриптах. Они полезны во многих ситуациях, в том числе при повторном выполнении команд, мгновенном переходе в только что созданный каталог и определении статуса долго выполняемой команды.
Как удаленно отлаживать сайты для Android с помощью Chrome DevTools
Поскольку под управлением Android работает более 2,5 млрд устройств, разработчики не могут игнорировать оптимизацию веб-страниц для этой операционной системы (ОС). Обычно на устройствах с...
Программируем с ChatGPT: 10 советов
Хотите извлечь максимальную пользу из ChatGPT? Эти советы помогут ускорить работу, внедрив в нее ChatGPT, но при этом не допустить критических ошибок.
5 проектов Go: управление безопасностью и контейнерами, создание бэкендов
Расскажем об интересных проектах Golang, связанных в том числе с разведкой по открытым источникам. Используйте их в своих приложениях.
5 визуально эффектных программ для командной строки
Долой унылые черно-белые приложения для командной строки. Добавим в рабочий процесс красок, анимации и динамики с помощью отличных программ: WTF, htop, mapscii, btop и wttr.
Как настроить отдельные SSH-ключи для нескольких учётных записей GitLab
Перейдём сразу к делу. Допустим, у вас есть один GitLab для личных проектов и один для работы. Проблем не возникнет, пока не придётся работать...
Хитрости объектно-ориентированного программирования. Часть 6 SLAP для функций
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4 и Часть 5.
Элементарные функции
Должен признать: очень долгое...
4 способа улучшить навыки написания кода
Чтобы достичь карьерных высот в сфере программирования, нужно постоянно работать над мастерством написания кода. Воспользуйтесь советами опытного программиста, которые помогут стать профессионалом.
Думаете, хеш-карты нельзя отсортировать? Еще как можно!
Научимся реализовывать интерфейс sort.Sort в любой структуре данных. Узнаем, какие методы задействуются в Golang для добавления сортировки.
В ожидании Java 16: Stream.toList() и другие методы преобразования
Только самообслуживание
В 2004 году я работал архитектором ПО на Java в крупной финансовой компании. На тот момент в этом языке отсутствовало большинство эффективных функциональностей...
Навигация по настраиваемой доставке
Android App Bundle — это новый формат публикации для Android-приложений, заменяющий монолитный APK. Сам пакет приложений непосредственно не устанавливается. Вместо этого Google Play генерирует оптимизированные APK...
Поддержание документации в актуальном состоянии с помощью Bit и GitHub
Написание документации для кода (будь то небольшая библиотека или полный набор микросервисов, взаимодействие с которыми необходимо другим разработчикам) — это занятие кропотливое и утомительное.
Основная...
Доступно об API-вызове во Flutter: лучшие практики с демонстрацией кода
Рассказываем, как во Flutter использовать методы API-вызова HTTP, POST, GET и как создавать модели для представления данных, получаемых с сервера. Следуя этим практикам, вы будете писать более надежный и эффективный код.
Понятие об умных указателях Rust
В этой статье мы разберемся, что именно представляют собой умные указатели, откуда они берутся и как работают.
Если по-простому, умный указатель — это абстрактный тип...
Диагностика кода на Rust
Отладка кода на Rust — дело непростое. Может быть, она и возможна, но здесь и близко нет таких инструментов, которые позволяют осуществлять её в...
Простой прием для молниеносных запросов LIKE и ILIKE
Как ускорить запросы в немаленьких приложениях? Доработаем производительность поиска в PostgreSQL триграммными индексами.
Индексация строк в Rust и TypeScript в сравнениях
Краткое содержание
В Rust обращение к символам в строках по индексу не компилируется. Рассмотрим, как Rust работает со строками. Обсудим, как JavaScript обрабатывает строки. Сравним классический алгоритм is_palindrome...
Go: как циклы преобразуются в ассемблерную программу?
ℹ️ В статье речь идёт о Go 1.13.
Циклы в программировании — понятие мощное и довольно простое. Тем не менее возникает необходимость преобразовывать их в основные команды,...
3 функции Python Matplotlib: повысьте информативность визуализации данных
Форма представления так же важна, как и содержимое. Python Matplotlib поможет вам в создании понятных и лаконичных визуализаций.
Принципы SOLID в инженерии данных. Часть 3
Выясним, как с принципами SOLID сочетается функциональное программирование, каковы их достоинства и недостатки. Продемонстрируем на примерах нарушение и соблюдение этих принципов.
Создание оркестратора для событийно-ориентированного приложения с Golang и RabbitMQ
Реализуем простое решение маршрутизации для отправки сообщений со стабильным потоком запросов, обработкой ошибок и соответственных действий. Это конвейер передачи запросов для системы бронирования гостиницы - резервирование, проверка, зачисление средств, бронь номеров - со всеми преимуществами архитектуры микросервисов и очередью недоставленных сообщений.
Что такое бессерверная платформа?
Понятие о бессерверной платформе
Бессерверная платформа помогает разрабатывать и развёртывать функции AWS Lambda вместе с необходимыми им инфраструктурными ресурсами AWS. Фактически это интерфейс командной строки,...
Когда стоит использовать перечисления в Java?
Где же все-таки можно, а где не стоит использоваться перечисления? Краткое руководство "в картинках".
Как повысить эффективность кода Python с помощью кэширования
Кэширование - это ваше секретное оружие, способное сделать код Python молниеносно быстрым, масштабируемым и ресурсоэффективным. Кэширование станет вашим верным помощником в любых задачах, включая создание крупного веб-приложения и профессиональную обработку данных.
Под капотом модификатора suspend
Корутины Kotlin предоставили Android разработчикам модификатор suspend. Изучив его, вы поймете, почему функция suspend не возвращает ничего до тех пор, пока не будет завершена...
Решение крупномасштабных задач машинного обучения на Python
Представляем краткое руководство по использованию библиотеки xLearn. Алгоритмы, поддерживаемые этой библиотекой, позволят решать многие задачи машинного обучения.
Как создавать диаграммы с помощью ChatGPT
Узнаем, как ChatGPT создает диаграммы на основе скриптов Mermaid. Проиллюстрируем весь процесс наглядными примерами и обойдемся без глубоких знаний Mermaid.
Визуализация стратегии автоматизированного тестирования
Стратегия тестирования — это подход к автоматизированному тестированию вашего программного обеспечения. Она очень важна, и к ней следует отнестись серьезно. Я предложу визуальный способ...
Тестирование для не тестировщиков
Тестирование является одним из ключевых этапов разработки. Вне зависимости от того, над каким проектом вы работаете, тестирование — это залог того, что вы сможете поставлять качественные...
Как создать простую браузерную игру с помощью Phaser 3 и TypeScript
Большую часть своего времени я занимаюсь backend-разработкой, поэтому я не могу похвастаться большим опытом во frontend. Какое-то время назад у меня возникло желание создать...
Python и Java: комплексное сравнение двух популярных языков программирования
Python или Java? Какой язык выбрать для создания успешных проектов? Однозначного ответа на эти вопросы нет, поскольку и Python, и Java обладают как достоинствами, так и недостатками. Сегодня поговорим о сильных и слабых сторонах двух популярных языков программирования.
3 способа мониторинга изменений лог-файлов в Java
Научимся отслеживать изменения файлов тремя разными способами: запланированная задача + File.lastModified, WatchService и Apache Commons-IO.
Внимание: работает пакет Python Tweepy!
Обучающее руководство по извлечению любых данных из твитов посредством пакета Python Tweepy и форматированию их в датафрейм Pandas.
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 2
В этой части статьи углубимся в механизм загрузки классов. Этот процесс в Java тесно связан с рефлексией, поскольку направлен на внедрение нового поведения в программу во время выполнения.
Ссылки на методы в Java
Ссылки на методы появились вместе с лямбда-выражениями в Java 8, и с тех пор упрощают жизнь разработчикам. Но у их применения есть некоторые ограничения. Как обойти одно из них - на использование метода с параметром - расскажем в этом материале.
Зачем и как реализовать ленивую загрузку компонентов в Angular
Ленивая загрузка — это техника загрузки чего-то по требованию.
Она применяется к различным уровням процесса разработки приложений — от модулей до компонентов. Ленивая загрузка на...
Как создать чат-бот на основе данных CSV с LangChain и OpenAI
Хотите пообщаться с чат-ботом, основанном на вашем собственном файле CSV? Не стоит отказываться от такого интересного опыта. При создании чат-бота поработаем с Langchain и OpenAI.
Создание общей библиотеки Linux
Краткая вводная инструкция по написанию общей библиотеки Linux на C++. Разберемся, что такое библиотека, и поэтапно ее создадим.
PEG парсеры и Python
Несколько лет назад кто-то спросил, имеет ли смысл переключать Python на парсер PEG. Или на грамматику PEG. Не помню точно. Тогда я ещё не...
Как создавать легкие платформонезависимые приложения на Go — без JS и BS
Ознакомимся с методами, виджетами и функционалом библиотеки Gio, сделаем приложение GoGiggles, запустим его в ОС. Добавим функционал СhatGPT, кнопку, обработку событий нажатия.
Новый API форматировщика дат в Swift
В версии Swift 5.5 и iOS 15 у нас появился новый API средства форматирования. С ним строковое отображение дат будет более декларативным и интуитивно...
Феномен NFT и причины его популярности
NFT расшифровывается как non-fungible token (невзаимозаменяемые токены).
Взаимозаменяемость — это способность актива быть обмененным или замещенным аналогичными активами с одинаковой стоимостью.
Предположим, у вас есть одна...
VS Code Remote-SSH для удаленной разработки
Зачем ограничивать себя nano и vi, когда есть удобное расширение VS Code Remote-SSH для удаленной разработки? Вперед за знаниями!
Язык С: структура программы
Прежде чем изучать основные строительные блоки языка C, рассмотрим в самых общих чертах структуру программы, чтобы использовать ее в качестве отправной точки в последующих главах.
Меньше образы Docker => быстрее CI-конвейер
CI/CD позволяет разработчикам и организациям реализовывать циклы задач быстрее. Автоматизируя такие процессы, как сборка, тестирование и развертывание ПО, мы затрачиваем меньше времени на типовые...
Введение в Navigation Architecture Component
Среди компонентов Jetpack, самым интересным является Navigation Architecture Component. Навигация управляет перемещением между destinations. Destinations обычно представлены фрагментами, однако поддерживают activities и другие пользовательские...
Java 21: новый подход к созданию строк
Рассмотрим и сравним существующие техники конкатенации и интерполяции строк в Java, обратив особое внимание на новую функциональность Java 21 - шаблоны строк.
Тест рабочего цикла C++ через написание кода для декодера base85
Всем привет! Меня зовут Герман Диаго, по образованию я инженер компьютерной науки и уже долгое время увлечён разработкой разного рода ПО.
Большую часть своей карьеры...
Функциональные возможности систем типов Julia и Rust
Я твёрдо убеждён, и многие со мной в этом согласятся, что прекрасным началом разработки программы является выявление подходящих представлений реальной проблемы, которую мы пытаемся...
Хитрости и приемы эффективного программирования на Kotlin
Проведем краткий обзор крутого функционала Kotlin. Начнем писать код по-котлиновски, сделав его более лаконичным и удобным для человеческого восприятия.
Топ-10 вопросов о Pandas на StackOverflow
Эти десять вопросов получили наибольшее количество голосов в категории Pandas на платформе StackOverflow. Они были актуальны десять лет назад, такими же остаются и сегодня. Ответы на них позволяют закрепить фундаментальные операции в Pandas.
Как ИИ меняет сферу финансов
Миллионы клиентов, миллиарды транзакций, триллионы активов. Финансовая сфера, как мы знаем, является движущей силой мировой экономики и мира, в котором мы живём. Вместе с...
Как преобразовать функции JavaScript в генераторы, эффективно использующие память
Ключевое слово yield используется в JavaScript для приостановки выполнения функций. При повторном вызове функции ее выполнение продолжается с последнего оператора yield.
Функция, возвращающая (yields) значения,...
Python: как заменить циклы For на Map, Filter и Reduce
Вы когда-нибудь смотрели на свой код и видели водопад из циклов for? Вам приходилось щурить глаза и наклоняться к монитору, чтобы рассмотреть его поближе?
Я...
Основные концепции и структуры Python, которые должен знать каждый серьёзный программист
Генераторы
Создание итератора в Python требует большой работы. Класс (в ООП) должен быть построен с применением методов __iter__() и __next__(), внутренние состояния должны быть сохранены...