MYCSS

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, тож клас буде оброблений за логікою, прописаною в цьому метакласі.

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

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

    💧 Матеріали:

    2024-10-19

    FastAPI Dependency Injection: 21 Examples Using Depends() with AI Answers

    Why ?

    Once I wanted to understand how Depends works in FastAPI more thoroughly to understand what's under the hood. I started communicating with the AI. The answer was a question, and I got hooked. 
    I decided to test it in real code and created a training project and wrote this post for it based on my questions to the AI and its answers.
    Some answers were wrong, some I had already optimized a bit. But all the results shown are real and created by me personally. 
    The result was 21 training examples written in Python, where I checked the answers and suggestions from the AI.

     

    2024-10-12

    Restore a VM from a backup file on a ZFS snapshot over NFS in Proxmox VE by use GUI.

    Умови:

    Proxmox VE server  періодично робить резервні копії до NFS спільної теки котра розміщена на NAS сервері.

    NAS це TrueNAS сервер що зберігає дані у ZFS файловій системі. TrueNAS автоматично налаштований робити періодичні знімки (snapshots) ZFS dataset де розміщенні дані для NFS теки.

    У VM сервера знайдено підозрілі файли за назвою "." розміром 1024 bytes з бінарним вмістом. Необхідно провести аналіз в "offline copy" сервера.

    Задача:

    Відновити віртуальну машину з попередньої резервної копії. 

    Рішення:

    Під'єднати попередні періодичні знімки (snapshots) ZFS dataset, що створені на стороні NAS сервера, для відновлення віртуальної машини з її резервної копії.

    Підключення до консолі Proxmox Node.

    • Proxmox node: ns21
    • NFS share: nfs-ns58-10g
    • Target data: 2024-10-11
    • Target VM ID: 150

    Proxmox console.
    ZFS snapshots зберігаються за замовчуванням у прихованій теці ".zfs".

    Знайдено цільовий шлях де зберігаються потрібні резервні копії: /mnt/pve/nfs-ns58-10g/.zfs/snapshot/auto-2024-10-11_00-00

    2024-10-05

    Note. FreeBSD. pkg create. Backup of erlang-21. Сталася класична ситуація з оновленнями. Postmortem Report.

    Умови:

    Є віртуальна машина з FreeBSD під керуванням Proxmox VE.

    Є застосунок 'pleroma' котрий працює на базі erlang

    Причини:

    Для підтримання інфраструктури операційна система оновлюється і пакунки підтримуються в актуальному стані.
    Застосунок працює, в пам'яті, все нормально. Користувачі заносять нові дані...

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

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

    ipv6 ready