📢 Привет всем!
Если вы интересуетесь обработкой данных, то новый материал от Василия из Х5 Tech точно вас заинтересует. Он делится опытом работы с алгоритмом Slowly Changing Dimensions-2 (SCD-2) на PySpark, который позволяет эффективно управлять хранением данных, снижая их дублирование.
В статье рассматриваются не только основные принципы работы с SCD-2 таблицами, но и методы нахождения изменений в данных, даже когда отсутствуют соответствующие поля. Также Василий расскажет, как получать исторические срезы на нужную дату.
Не пропустите возможность узнать что-то новое и полезное для вашей работы! Читать далее
#Python #DataEngineering #PySpark #Habr
Если вы интересуетесь обработкой данных, то новый материал от Василия из Х5 Tech точно вас заинтересует. Он делится опытом работы с алгоритмом Slowly Changing Dimensions-2 (SCD-2) на PySpark, который позволяет эффективно управлять хранением данных, снижая их дублирование.
В статье рассматриваются не только основные принципы работы с SCD-2 таблицами, но и методы нахождения изменений в данных, даже когда отсутствуют соответствующие поля. Также Василий расскажет, как получать исторические срезы на нужную дату.
Не пропустите возможность узнать что-то новое и полезное для вашей работы! Читать далее
#Python #DataEngineering #PySpark #Habr
Хабр
Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2
Всем привет, меня зовут Василий. С 2021 года работаю в роли инженера данных, а в 2024 году присоединился к одной из продуктовых команд в Х5 Tech. За это время успел познакомиться с несколькими...
Ошибка — неотъемлемая часть программирования, и от отношения к ней зависит, станет ли человек хорошим разработчиком. К сожалению, многие начинающие программисты, особенно дети, часто испытывают фрустрацию из-за багов.
Мы внедрили метод «Пяти почему» из Lean-методологии в обучение программированию детей. Этот подход значительно изменил отношение учеников к ошибкам и повысил качество их кода.
Теперь каждый баг рассматривается как шаг к улучшению, а не как повод для отказа от программирования. Погрузитесь в подробности и узнайте, как этот метод помогает молодым разработчикам!
👉 Читать далее
#Программирование #Обучение #Методы #Python
Мы внедрили метод «Пяти почему» из Lean-методологии в обучение программированию детей. Этот подход значительно изменил отношение учеников к ошибкам и повысил качество их кода.
Теперь каждый баг рассматривается как шаг к улучшению, а не как повод для отказа от программирования. Погрузитесь в подробности и узнайте, как этот метод помогает молодым разработчикам!
👉 Читать далее
#Программирование #Обучение #Методы #Python
Хабр
Как рефреймить ошибки в программировании: метод «Пяти почему» для детей и взрослых
Большинство программистов согласятся: от отношения к ошибкам зависит, станет ли человек хорошим разработчиком. В нашей практике обучения детей программированию мы столкнулись с фрустрацией, которая...
📢 Автоматизированные тесты могут порой заметно замедляться, и это вызывает негативные последствия для всех участников процесса разработки. CI становится медленнее, разработчики начинают сомневаться в результатах, а вместо поиска багов приходится решать проблемы с таймингами.
На фоне этих проблем в команде возникал вопрос: «Почему одни и те же сценарии могут выполняться по-разному в разное время?» В ответ на это была создана удобная утилита.
Slowpoke Finder — это простая CLI-утилита и библиотека, позволяющая анализировать логи автотестов. Программа принимает JSON или HAR файлы, анализирует их и выявляет шаги, которые замедляют тесты.
Эта утилита не требует сложной интеграции, что делает её доступной и удобной для использования.
👉 Читать далее
#Python #Автотесты #SlowpokeFinder #Разработка
На фоне этих проблем в команде возникал вопрос: «Почему одни и те же сценарии могут выполняться по-разному в разное время?» В ответ на это была создана удобная утилита.
Slowpoke Finder — это простая CLI-утилита и библиотека, позволяющая анализировать логи автотестов. Программа принимает JSON или HAR файлы, анализирует их и выявляет шаги, которые замедляют тесты.
Эта утилита не требует сложной интеграции, что делает её доступной и удобной для использования.
👉 Читать далее
#Python #Автотесты #SlowpokeFinder #Разработка
Хабр
Slowpoke Finder: как я сделала CLI-инструмент для анализа медленных шагов в автотестах
Когда всё тормозит Когда автотесты начинают тянуться как улитка, страдают все. CI медлит, разработчики косо смотрят на отчёты, а я вместо багов натыкаюсь на тайминги. Особенно это бесит в UI-тестах -...
Ученые из Техасского университета в Остине разработали новый метод кодирования информации в синтетических молекулах. Этот подход может стать более эффективной альтернативой традиционным биомолекулам для хранения данных.
ДНК, безусловно, рассматривается как идеальный носитель информации. Однако доступ к данным на молекулах остается сложным и дорогостоящим процессом.
Благодаря новому методу, процесс записи и извлечения данных может стать более доступным. Ученые обсудят детали своего исследования и практические применения на предстоящем докладе.
Подробнее о разработке можно узнать в статье. Читать дальше →
#Python #инновации #наука #хранениеданных
Подписывайтесь на мой канал @pythonbe1!
ДНК, безусловно, рассматривается как идеальный носитель информации. Однако доступ к данным на молекулах остается сложным и дорогостоящим процессом.
Благодаря новому методу, процесс записи и извлечения данных может стать более доступным. Ученые обсудят детали своего исследования и практические применения на предстоящем докладе.
Подробнее о разработке можно узнать в статье. Читать дальше →
#Python #инновации #наука #хранениеданных
Подписывайтесь на мой канал @pythonbe1!
Хабр
Молекулярное шифрование: полимерный пароль
Неустанно растущий объем информации требует создания новых носителей. Данная потребность уже давно привела к тому, что ученые с особым интересом рассматривают ДНК в качестве идеального (по мнению...
🎯 5 ИИ-проектов, которые ты можешь собрать за выходные
Хочешь прокачать навыки ML и Python без математики и Kaggle? Лови 5 готовых идей, которые можно собрать за 1–2 дня:
🔹 Голосовой ассистент — Whisper + GPT + озвучка
🔹 Чат-бот для PDF — LangChain + FAISS + OpenAI
🔹 Генератор картинок — Stable Diffusion + Gradio
🔹 Подписи к фото — BLIP + HuggingFace
🔹 TL;DR бот — BART или GPT для суммаризации текста
✅ Примеры кода
✅ Деплой на HuggingFace / Streamlit
✅ Всё реально собрать за выходные
📎 Забирай гайд (https://uproger.com/5-ai-proektov-kotorye-ty-mozhesh-sobrat-za-vyhodnye-na-python/)— и добавь проекты в резюме: «AI developer: checked»
@python_be1
Хочешь прокачать навыки ML и Python без математики и Kaggle? Лови 5 готовых идей, которые можно собрать за 1–2 дня:
🔹 Голосовой ассистент — Whisper + GPT + озвучка
🔹 Чат-бот для PDF — LangChain + FAISS + OpenAI
🔹 Генератор картинок — Stable Diffusion + Gradio
🔹 Подписи к фото — BLIP + HuggingFace
🔹 TL;DR бот — BART или GPT для суммаризации текста
✅ Примеры кода
✅ Деплой на HuggingFace / Streamlit
✅ Всё реально собрать за выходные
📎 Забирай гайд (https://uproger.com/5-ai-proektov-kotorye-ty-mozhesh-sobrat-za-vyhodnye-na-python/)— и добавь проекты в резюме: «AI developer: checked»
@python_be1
Работа с файлами в Python действительно кажется простой на первый взгляд — всего лишь используем `open`, `read` и `write`. Однако в реальности, особенно в системах с высокими требованиями к отказоустойчивости и стабильности, могут возникнуть неожиданные трудности.
За привычными строками кода зачастую кроется множество проблем, касающихся обработки ошибок, оптимизации и логирования. Правильное использование этих функций требует внимательного подхода и учета множества нюансов.
Если вам интересно узнать больше о сложностях работы с файлами в Python и о том, как их преодолевать, не пропустите статью по ссылке ниже!
[Читать далее](https://habr.com/ru/articles/908154/?utm_campaign=908154&utm_source=habrahabr&utm_medium=rss#habracut)
#Python #Программирование #Файлы #Кодирование
Подписывайтесь на мой канал @python_be1.
За привычными строками кода зачастую кроется множество проблем, касающихся обработки ошибок, оптимизации и логирования. Правильное использование этих функций требует внимательного подхода и учета множества нюансов.
Если вам интересно узнать больше о сложностях работы с файлами в Python и о том, как их преодолевать, не пропустите статью по ссылке ниже!
[Читать далее](https://habr.com/ru/articles/908154/?utm_campaign=908154&utm_source=habrahabr&utm_medium=rss#habracut)
#Python #Программирование #Файлы #Кодирование
Подписывайтесь на мой канал @python_be1.
Хабр
Подводные камни при работе с файлами в Linux с примерами на Python
Если от вашей системы требуется надёжность, отказоустойчивость и детерминированность, знания системных механизмов — не роскошь, а необходимость. Работа с файлами в Python кажется простой — open , read...
This media is not supported in your browser
VIEW IN TELEGRAM
Крутой инструмент, который сэкономит кучу времени при работе с Excel.
Копируешь таблицу из Excel (или любого другого софта для таблиц) — вставляешь как готовый Markdown. Просто и удобно, а главное — прямо в браузере.
Упрощаем написание техдоков (https://github.com/jonmagic/copy-excel-paste-markdown)
@python_be1
Копируешь таблицу из Excel (или любого другого софта для таблиц) — вставляешь как готовый Markdown. Просто и удобно, а главное — прямо в браузере.
Упрощаем написание техдоков (https://github.com/jonmagic/copy-excel-paste-markdown)
@python_be1
🖥 Ты теряешь месяцы на YouTube, когда всё можно было бы уместить в один PDF
📄 Авторы разработчики сделали PDF-гайд, в котором всё по-человечески:
• без воды
• очень наглядные иллюстрации, которые помогают понять сложные концепции
• коротко и по делу
• ускорение кода в 2–10 раз
• снижение потребления памяти
• антипаттерны и как их избегать
• инструменты: py-spy, cProfile, Scalene
• приёмы из Big Tech и реальные кейсы
Отлично подходит для новичков
Понял → Применил → Пошёл дальше
Скачать полностью бесплатный гайд можно здесь (http://t.me/Python_guidebot?start=test).
@python_be1
📄 Авторы разработчики сделали PDF-гайд, в котором всё по-человечески:
• без воды
• очень наглядные иллюстрации, которые помогают понять сложные концепции
• коротко и по делу
• ускорение кода в 2–10 раз
• снижение потребления памяти
• антипаттерны и как их избегать
• инструменты: py-spy, cProfile, Scalene
• приёмы из Big Tech и реальные кейсы
Отлично подходит для новичков
Понял → Применил → Пошёл дальше
Скачать полностью бесплатный гайд можно здесь (http://t.me/Python_guidebot?start=test).
@python_be1
Что: ChatGPT заменил мальчику ОТЦА — батя просто устал каждый день после работы слушать про Паровозика Томаса и нашел решение.
Гений включил нейронку 4-летнему сыну, и тот общался с ней НЕСКОЛЬКО ЧАСОВ. Теперь малыш думает, что ChatGPT — крутейший чувак, который разбирается в поездах.
Родители, сохраняем лайфхак.
👍
@python_be1
Гений включил нейронку 4-летнему сыну, и тот общался с ней НЕСКОЛЬКО ЧАСОВ. Теперь малыш думает, что ChatGPT — крутейший чувак, который разбирается в поездах.
Родители, сохраняем лайфхак.
👍
@python_be1
🧠 Загадка: 9 + 9 = ??
На первый взгляд — обычные примеры. Но смотри внимательнее:
```
5 + 5 = 26
6 + 6 = 38
7 + 7 = 52
9 + 9 = ??
```
Стандартная арифметика тут не работает. Найдём скрытую логику:
[спойлер: Разберём:
• 5 × 5 = 25 → 25 + 1 = 26
• 6 × 6 = 36 → 36 + 2 = 38
• 7 × 7 = 49 → 49 + 3 = 52
Кажется, формула такая:
🔍 **x + x = (x × x) + (x − 4)**
Тогда:
```
9 + 9 = 9 × 9 + (9 − 4) = 81 + 5 = ✅ **86**
```
📌 Ответ: **86**][спойлер: #Логика][спойлер: ][спойлер: #Головоломка][спойлер: ][спойлер: #Математика][спойлер: ][спойлер: #Mindset][спойлер: ][спойлер: #Пазлы]
@python_be1
На первый взгляд — обычные примеры. Но смотри внимательнее:
```
5 + 5 = 26
6 + 6 = 38
7 + 7 = 52
9 + 9 = ??
```
Стандартная арифметика тут не работает. Найдём скрытую логику:
[спойлер: Разберём:
• 5 × 5 = 25 → 25 + 1 = 26
• 6 × 6 = 36 → 36 + 2 = 38
• 7 × 7 = 49 → 49 + 3 = 52
Кажется, формула такая:
🔍 **x + x = (x × x) + (x − 4)**
Тогда:
```
9 + 9 = 9 × 9 + (9 − 4) = 81 + 5 = ✅ **86**
```
📌 Ответ: **86**][спойлер: #Логика][спойлер: ][спойлер: #Головоломка][спойлер: ][спойлер: #Математика][спойлер: ][спойлер: #Mindset][спойлер: ][спойлер: #Пазлы]
@python_be1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Physics Simulations
Набор симуляций физических явлений, написанных на Python с использованием Pygame. Эти симуляции создавались в образовательных целях и охватывают различные концепции, включая:
- Законы Ньютона
- Гравитацию
- Силы и трение
- Простую гармоническую модуляцию
- И многое другое
Для запуска симуляций необходимо установить зависимости:
```
pip install -r requirements.txt
```
Затем можно запустить нужный скрипт напрямую, например:
```
python gravity_sim.py
```
Каждый файл представляет отдельную симуляцию, сопровождаемую визуализацией с помощью Pygame.
📌 Github (https://github.com/gemsjohn/physics-sims)
@python_be1
Набор симуляций физических явлений, написанных на Python с использованием Pygame. Эти симуляции создавались в образовательных целях и охватывают различные концепции, включая:
- Законы Ньютона
- Гравитацию
- Силы и трение
- Простую гармоническую модуляцию
- И многое другое
Для запуска симуляций необходимо установить зависимости:
```
pip install -r requirements.txt
```
Затем можно запустить нужный скрипт напрямую, например:
```
python gravity_sim.py
```
Каждый файл представляет отдельную симуляцию, сопровождаемую визуализацией с помощью Pygame.
📌 Github (https://github.com/gemsjohn/physics-sims)
@python_be1
Задача: Что делает эта странная функция teleport и почему она запускает цикл 32 раза?
🧠 Подсказка:
На первый взгляд это выглядит как хаотичная мешанина побитовых операций, но на самом деле здесь происходит реверс битов (bitwise reversal) — отражение битов справа налево.
Но вопрос — зачем делать это 32 раза подряд?
🔍 Что происходит:
Каждый шаг в теле цикла — это стандартная техника реверса битов через маски и сдвиги:
0xAAAAAAAA, 0xCCCCCCCC, и т.д. — маски по битовым паттернам
Итерация for _ in range(32) делает это снова и снова…
💣 Фишка: первый проход уже полностью отражает 32-битное число.
Остальные 31 повтор возвращают число в исходное состояние — но в побитово инвертированном порядке!
📌 То есть:
Чётное количество циклов — возвращает в исходную позицию
Нечётное — делает реверс
👉 Ответ на teleport(0x12345678) будет реверс битов этого числа.
Ожидаемое: 0x1e6a2c48 (в зависимости от реализации может отличаться).
🎯 Челлендж для продвинутых:
Упростите функцию до одного вызова (без цикла)
Напишите inverse_teleport(x), которая возвращает исходное число обратно
🧩 Эта техника используется в:
— алгоритмах FFT (быстрые преобразования Фурье)
— графике
— реверсировании хэшей
— low-level оптимизациях для SIMD
@python_be1
🧠 Подсказка:
На первый взгляд это выглядит как хаотичная мешанина побитовых операций, но на самом деле здесь происходит реверс битов (bitwise reversal) — отражение битов справа налево.
Но вопрос — зачем делать это 32 раза подряд?
🔍 Что происходит:
Каждый шаг в теле цикла — это стандартная техника реверса битов через маски и сдвиги:
0xAAAAAAAA, 0xCCCCCCCC, и т.д. — маски по битовым паттернам
Итерация for _ in range(32) делает это снова и снова…
💣 Фишка: первый проход уже полностью отражает 32-битное число.
Остальные 31 повтор возвращают число в исходное состояние — но в побитово инвертированном порядке!
📌 То есть:
Чётное количество циклов — возвращает в исходную позицию
Нечётное — делает реверс
👉 Ответ на teleport(0x12345678) будет реверс битов этого числа.
Ожидаемое: 0x1e6a2c48 (в зависимости от реализации может отличаться).
🎯 Челлендж для продвинутых:
Упростите функцию до одного вызова (без цикла)
Напишите inverse_teleport(x), которая возвращает исходное число обратно
🧩 Эта техника используется в:
— алгоритмах FFT (быстрые преобразования Фурье)
— графике
— реверсировании хэшей
— low-level оптимизациях для SIMD
@python_be1
8 онлайн-тренажёров для прокачки навыков
тестирования с симуляцией настоящих проектов и скрытыми багами.
— OpenCart Demo Store: (http://demo.opencart.com/) это полная копия CMS интернет-магазина. Придётся пройти весь путь от регистрации до оформления заказа и попутно искать баги;
— PHP Travels Demo: (http://phptravels.com/demo) симулятор туристического сервиса с бронированием и хардкорными сценариями валидации. Будет сложно;
— DemoQA: (http://demoqa.com/) интерактивный сайт для тренировки работы с формами, алертами и drag&drop элементами. Тут прокачиваем уверенность и внимательность;
— The Internet - Herokuapp: (http://the-internet.herokuapp.com/) крутой тренажёр с набором типичных кейсов: логин, чекбоксы, выпадающие списки;
— UI Test Automation Playground: (http://uitestingplayground.com/) страницы с нестандартными элементами, которые реагируют на наведение, задержки и анимации. Тут учимся замечать детали;
— Sauce Demo: (http://saucedemo.com/) интернет-магазин с уникальными сценариями поведения пользователей: стандартные, медленные, глючные. Отлично подходит, чтобы узнать, что такое реальный хаос в тестировании;
— Automation Exercise: (http://automationexercise.com/) E-commerce проект с регистрацией, корзиной и разнообразными edge cases;
— ToolsQA Book Store App: (http://demoqa.com/books) книжный магазин для прокачки UI/UX-тестирования с авторизацией и поиском. Улучшаем внимание к пользовательским сценариям и юзабилити.
@python_be1
тестирования с симуляцией настоящих проектов и скрытыми багами.
— OpenCart Demo Store: (http://demo.opencart.com/) это полная копия CMS интернет-магазина. Придётся пройти весь путь от регистрации до оформления заказа и попутно искать баги;
— PHP Travels Demo: (http://phptravels.com/demo) симулятор туристического сервиса с бронированием и хардкорными сценариями валидации. Будет сложно;
— DemoQA: (http://demoqa.com/) интерактивный сайт для тренировки работы с формами, алертами и drag&drop элементами. Тут прокачиваем уверенность и внимательность;
— The Internet - Herokuapp: (http://the-internet.herokuapp.com/) крутой тренажёр с набором типичных кейсов: логин, чекбоксы, выпадающие списки;
— UI Test Automation Playground: (http://uitestingplayground.com/) страницы с нестандартными элементами, которые реагируют на наведение, задержки и анимации. Тут учимся замечать детали;
— Sauce Demo: (http://saucedemo.com/) интернет-магазин с уникальными сценариями поведения пользователей: стандартные, медленные, глючные. Отлично подходит, чтобы узнать, что такое реальный хаос в тестировании;
— Automation Exercise: (http://automationexercise.com/) E-commerce проект с регистрацией, корзиной и разнообразными edge cases;
— ToolsQA Book Store App: (http://demoqa.com/books) книжный магазин для прокачки UI/UX-тестирования с авторизацией и поиском. Улучшаем внимание к пользовательским сценариям и юзабилити.
@python_be1