Разработка real-time приложений с Python и WebSocket

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

Читать далее


C++23: четыре новых ассоциативных контейнера

В C++23 появились четыре новых ассоциативных контейнера: std::flat_mapstd::flat_multimapstd::flat_set и std::flat_multiset, которые являются полноценной заменой упорядоченных ассоциативных контейнеров std::mapstd::multimapstd::set и std::multiset. Они были добавлены в C++23 по двум причинам: расход памяти и производительность. Итак, теперь в C++23 мы имеем 12 ассоциативных контейнеров. Да-да, целых двенадцать штук! Давайте рассмотрим всё подробнее.

Читать далее


Индексирование полнотекстовых данных в PostgreSQL с использованием модуля pg_trgm

PostgreSQL, одна из самых мощных и гибких реляционных СУБД, предлагает нам свой модуль pg_trgm, чтобы решить сложную задачу полнотекстового поиска.

Когда речь идет о поиске, просто LIKE запросы больше не всегда могут удовлетворить технические требования. Полнотекстовый поиск подразумевает не только поиск точных соответствий, но и учет схожести слов, учет морфологии, а также поддержку более сложных запросов. PostgreSQL, конечно, предоставляет средства для выполнения таких задач, и модуль pg_trgm — один из инструментов, с помощью которого это можно сделать.

Читать далее


Пишем чистые тесты на JavaScript с использованием принципов BASIC

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

Читать далее


Малоизвестные библиотеки Python для анализа данных, которые сделают вашу жизнь проще

В этой статье мы рассмотрим некоторые полезные библиотеки Python для задач обработки данных, с которыми, возможно, вы еще не знакомы. Хотя для задач машинного обучения на ум приходят такие библиотеки, как pandas, numpy, scikit-learn, keras, tensorflow, matplotlib и т.д., но всегда полезно знать о других предложениях Python, особенно если это поможет улучшить ваши проекты.

Читать далее


Как применять метод PCA для уменьшения размерности данных

Одной из ключевых задач при работе с данными является уменьшение размерности данных, чтобы улучшить их интерпретируемость, ускорить алгоритмы обучения машин и, в конечном итоге, повысить качество решений. Сегодня мы поговорим о методе, который считается одним из наиболее мощных инструментов в арсенале данных разработчиков — методе главных компонент, или PCA (Principal Component Analysis).

Читать далее


File upload на React.js шаг за шагом

В этой статье напишем компонент для загрузки файлов на сервер, который поддерживает:

  • Индикатор загрузки
  • Прерывание отправки
  • Drag and drop

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

Читать далее


Погружение в контейнеризацию

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

Читать далее


Проектирование архитектуры для микросервисов с использованием gRPC

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

gRPC – высокопроизводительный и мощный инструмент для построения микросервисных систем.

Читать далее


Настройка производительности диска и памяти в Linux

В этой статье рассмотрим, как Linux работает с памятью, и, в частности, со страничным кэшем, а также исследуем, как доступный объем памяти влияет на производительность буферизованного ввода-вывода (buffered IO).

Читать далее


Повышение эффективности SQL-запросов: советы и рекомендации

В данном контексте, подчеркивается важность умения настраивать («в нужный режим») SQL-запросы для обеспечения их оптимальной производительности. Этот навык полезен для всех, кто работает с базой данных SQL Server — от обычных пользователей до администраторов и разработчиков, которые пишут собственные SQL-запросы.

В статье представлен ряд советов и методов, которые помогут читателям оценить производительность своих SQL-запросов и улучшить ее при необходимости. Здесь будут рассмотрены некоторые ключевые аспекты оптимизации запросов для SQL Server, чтобы помочь пользователям сделать их более эффективными и быстрыми.

Читать далее


Нодовая архитектура на Unity

В этой статье атвор рассказывает о кастомной архитектуре, которую сделал в процессе разработки своей RTS игры.

Читать далее


Проектирование высокопроизводительных кэширующих решений с использованием Redis и Memcached

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

Читать далее


Основы проектирования архитектуры простой социальной сети

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

Эта статья расскажет вам об основах проектирования архитектуры простой социальной сети Независимо от того, являетесь ли вы опытным разработчиком, только начинаете свой путь в этой области или просто интересуетесь, как работают социальные сети «под капотом», здесь вы найдете полезные советы и примеры.

Читать далее


Что такое деньги

Все знают, что такое деньги. И, в то же время, по настоящему этого не знает никто. Немного неожиданный взгляд на природу денег одного нобелевского лауреата в области экономики. Возражения другого нобелевского лауреата (также в области экономики). Довольно необычное завершение спора. Почему эта старая дискуссия сейчас стала вновь актуальной. И причем здесь CBDC (цифровые деньги центральных банков).

Читать далее