Реализация гомоморфного шифрования: Математическая магия для конфиденциальных данных

Реализация гомоморфного шифрования: Математическая магия для конфиденциальных данных

Взломать код, не взломав сейф: гомоморфное шифрование без ограничений Представьте, что вы отдаёте свой запертый дневник незнакомцу и просите его подсчитать, сколько раз вы написали «пицца», не давая при этом ключа. Это и есть гомоморфное шифрование (ГС) вкратце: выполнение вычислений над зашифрованными данными без их расшифровки. В условиях огромного объёма чувствительных данных — медицинских записей, финансовых транзакций, личной переписки — ГС предстаёт тем криптографическим единорогом, которого мы так долго искали. Сегодня мы реализуем практические решения ГС на Python, превращая математическое волшебство в рабочий код....

June 30, 2025 · 5 min · 857 words · Maxim Zhirnov
Building a Music Recommender That Doesn't Recommend Nickelback

Building a Music Recommender That Doesn't Recommend Nickelback

Picture this: You’ve just created the perfect playlist of synthwave bangers, only to have your music app suggest “How You Remind Me” for the third time this week. Let’s build something better using collaborative filtering - the same tech that powers Spotify’s Discover Weekly (but hopefully with less Chad Kroeger). By the end of this guide, you’ll be recommending music so personalized, your users will think you’ve bugged their AirPods....

June 17, 2025 · 4 min · 776 words · Maxim Zhirnov
Создание музыкального рекомендателя, который не рекомендует Nickelback

Создание музыкального рекомендателя, который не рекомендует Nickelback

Представьте: вы только что создали идеальный плейлист с треками в стиле synthwave, и вдруг приложение предлагает вам «How You Remind Me» уже в третий раз за неделю. Давайте создадим что-то получше, используя коллаборативную фильтрацию — ту же технологию, что лежит в основе Spotify Discover Weekly (но, надеюсь, без Чада Крюгера). К концу этого руководства вы будете рекомендовать музыку настолько персонализированно, что ваши пользователи подумают, будто вы установили жучок в их AirPods....

June 17, 2025 · 4 min · 729 words · Maxim Zhirnov
Apache Airflow vs Prefect: The Orchestrator's Dilemma

Apache Airflow vs Prefect: The Orchestrator's Dilemma

Imagine conducting an orchestra where half the musicians play Beethoven while others attempt the Macarena. That’s your data pipeline without proper orchestration. Let’s examine two maestros - Apache Airflow and Prefect - to see which baton-waving solution makes your data sing in harmony. Setting the Stage: Basic Implementations Airflow’s “Hello World” Symphony from airflow import DAG from airflow.operators.bash_operator import BashOperator from datetime import datetime default_args = { 'owner': 'mozart', 'retries': 3 } with DAG('classical_music', start_date=datetime(2025, 6, 4), schedule_interval='@daily') as dag: tune = BashOperator( task_id='play_requiem', bash_command='echo "The show must go flow!...

June 4, 2025 · 3 min · 498 words · Maxim Zhirnov
Apache Airflow против Prefect: дилемма оркестратора

Apache Airflow против Prefect: дилемма оркестратора

Представьте себе управление оркестром, где половина музыкантов играет Бетховена, а другие пытаются исполнить «Macarena». Вот так и ваш конвейер данных без должного управления. Давайте рассмотрим двух «маэстро» — Apache Airflow и Prefect, чтобы понять, какое решение позволит вашим данным звучать в гармонии. Подготовка сцены: основные реализации Симфония «Hello World» от Airflow from airflow import DAG from airflow.operators.bash_operator import BashOperator from datetime import datetime default_args = { 'owner': 'mozart', 'retries': 3 } with DAG('classical_music', start_date=datetime(2025, 6, 4), schedule_interval='@daily') as dag: tune = BashOperator( task_id='play_requiem', bash_command='echo "The show must go flow!...

June 4, 2025 · 3 min · 513 words · Maxim Zhirnov