MYCSS

2024-11-13

Performance Comparison of Python Function Implementations for Equivalent Output

😄 Цікаво інколи оптимізувати код.
Отримав такі рішення для випадку коли не завжди є рядок з всіма параметрами і його треба розбити на частини.

📅 Рядок category може бути "W", "P-V-00", "S", "P-V-01", "L-X", "L-X-A-B-C-D"
Проведено 10_000_000 замірів 8 разів і отримано середні значення часу виконання.

Perfomance Comparison

🔖Наведено топ 3 результати вимірювань. 

  1. Як не дивно, на першому місці Version 5, коли є всі елементи в категорії, але на останньому коли не всі елементи є - вітання до try-except.
    Можна провести алегорію з приказками "Як тривога, то до Бога", "Без біди Бога не кличуть".
  2. На другому місці Version 6 та Version 9 в інших випадках.

2024-11-08

Using Apache Spark with Python, emphasizing its role compared to Celery

🚀 Python у розподілених обчисленнях: Apache Spark проти Celery

Ви коли-небудь замислювалися, чи може Apache Spark впоратися з розподіленими завданнями в Python, як Celery? Давайте розберемо відмінності і те, коли варто використовувати кожен з них.

 

Apache Spark з Python (PySpark)

🔹 Spark - це потужний фреймворк для великомасштабної обробки даних. За допомогою PySpark ви можете обробляти величезні набори даних і виконувати такі завдання, як ETL (Extract, Transform, Load або Витяг, Перетворення та Завантаження), аналіз даних і машинне навчання між кластерами.
🔹 Spark є відмовостійким та оптимізованим для пакетної обробки розподілених наборів даних, що робить його ідеальним рішенням для роботи з великими даними.

 

Celery для робочих процесів на основі завдань

🔹 Celery, з іншого боку, призначена для планування завдань та асинхронної обробки. Часто в парі з веб-додатками вона ідеально підходить для таких завдань, як надсилання сповіщень або запуск фонових завдань.
🔹 На відміну від Spark, Celery краще підходить для виконання індивідуальних завдань у режимі реального часу, а не для масштабної обробки даних.

 

Основні висновки

⭐ Використовуйте Spark для обробки великих даних, ETL та конвеєрів машинного навчання.
⭐ Використовуйте Celery для управління окремими завданнями, особливо у веб-додатках.

2024-11-03

Secure Temporary File Upload Service. PHP. NextCloud. WebDAV. Upload files form.

    Завершив невеликий проєкт зі створення форми для завантаження файлів у хмарне сховище.
    Проєкт реалізовано за допомогою PHP, Redis та WebDAV для забезпечення ефективного зберігання та обробки файлів. 

    Overview:

    This project provides a secure, temporary file-upload service with time-limited access. It generates a unique URL for file uploads, includes CAPTCHA protection, and sends the URL to the user via email. The following is a list of key functionalities and features implemented in this project.

    2024-10-31

    Prism. Code formatting in blogspot.

    Prism


    Example of use Prism:

    
    # Your Python code goes here
    
    from types import MethodType
    
    class Person:
        def __init__(self, name):
            self.name = name
    
    # Function to add dynamically as a method
    def say_hello(self):
        return f"Hello, my name is {self.name}"
    
    # Create an instance of Person
    person = Person("Alice")# Bind the function say_hello to person instance as a method
    person.say_hello = MethodType(say_hello, person)
    
    # Call the new method on the instance
    print(person.say_hello())  # Output: "Hello, my name is Alice"
    
    

     

    cdnjs links

    https://cdnjs.cloudflare.com/ajax/libs/prism/9000.0.1/themes/prism-tomorrow.min.css
    https://cdnjs.cloudflare.com/ajax/libs/prism/9000.0.1/themes/prism.min.css
    https://cdnjs.cloudflare.com/ajax/libs/prism/9000.0.1/components/prism-python.min.js
    

    2024-10-30

    Note. Python. types.MethodType

    From LinkedIn Learning. Pattern. Strategy

    What it types.MethodType ?

    types.MethodType in Python is a utility function from the types module that allows you to bind a function as a method to an instance of a class. This can be especially useful when you want to add or replace methods dynamically for an object at runtime. Let's go over how it works and look at an example.

    2024-10-29

     Нотатка. Python, Django, get_file та кеш браузера.

    🚰 Якщо потрібно віддавати певні файли засобами Django view, а не як статичний файл через NGINX. То не забуваємо додавати заголовки про інформацію для кешування браузерами, щоб не перевантажувати запитами сервер.



    2024-10-27

    Нотатка про метакласаси в Python. Основи використання метакласів.

    Дивлячись інтерв'ю "DOU : Python — погана мова програмування, а Go — ще гірша | Обговорюємо та обираємо технології",  виникло питання з метакласами.

    📕 Метаклас в Python — це "клас для класу", тобто він визначає, як самі класи поводяться. Використовуючи метаклас, ви можете налаштувати створення класу, додати нову поведінку, модифікувати атрибути або запровадити певні обмеження для підкласів.

    1. Оголошення метакласу: Метаклас зазвичай визначається через наслідування від type, який є типовим метакласом у Python.
    2. Методи __new__ і __init__: У метакласі зазвичай перевизначають методи __new__ або __init__, щоб контролювати створення класів.
      • __new__ створює клас, приймаючи аргументи для імені класу, базових класів і словника класу (атрибути та методи).
      • __init__ ініціалізує клас після його створення.
    3. Вказування метакласу: Щоб вказати метаклас для класу, використовується ключове слово metaclass.

    📌 Приклад: Налаштування створення класу за допомогою метакласу

    Припустимо, ви хочете, щоб усі атрибути класу мали назви у верхньому регістрі. Метаклас допоможе забезпечити це.

    ✔ Пояснення

    • Метаклас UpperCaseAttributes: Приймає ім'я класу, його базові класи та словник атрибутів. Він створює змінений словник з атрибутами у верхньому регістрі, після чого передає його в type __new__.
    • Застосування metaclass=UpperCaseAttributes: При оголошенні MyClass вказано метаклас UpperCaseAttributes, тож клас буде оброблений за логікою, прописаною в цьому метакласі.

    💢 Коли використовувати метакласи

    • Впровадження правил: Наприклад, всі атрибути мають дотримуватися певних іменувальних правил.
    • Автоматична реєстрація класів: Наприклад, автоматичне збирання підкласів для плагінової системи.
    • Синглтон: Забезпечення існування лише одного екземпляра класу, контролюючи інстанціювання через метаклас.

    💧 Матеріали:

    Коли забув ти рідну мову, біднієш духом ти щодня...
    When you forgot your native language you would become a poor at spirit every day ...

    Д.Білоус / D.Bilous
    Рабів до раю не пускають. Будь вільним!

    ipv6 ready