MYCSS

2024-11-25

Optimizing Performance: Python Speed Test for Digit Search in Strings. Shot, Middle, Long ...

Оптимізація продуктивності: Тест швидкості Python для пошуку цифр у рядках

⛓️ У відповідь на оригінальний пост: читайте обговорення тут я раніше провів заміри тільки для однієї категорії - короткий текст, тепер продовження ...

🪜 Я провів експеримент для оцінки ефективності різних методів Python для пошуку цифр у рядках, з урахуванням різних довжин рядків від коротких до довгих. Нижче я порівнюю шість різних технік і їхні переваги при витягуванні цифр. 

А також додано вимірювання продуктивності в різних версіях Python: 3.13.0 та 3.12.5

Категорії для тестування

Рядки були поділені на чотири окремі групи за їхньою довжиною:

  • Short: Короткий рядок, що містить лише кілька символів.
  • Middle: Рядок середнього розміру, приблизно 256 символів.
  • Long (1KB): Довший рядок, приблизно 1 кілобайт, що імітує параграфи тексту.
  • Long (2KB): Значно більший рядок, приблизно 2 кілобайти, підходить для даних, схожих на документи.

Методи порівняння

Нижче наведено шість версій методів витягування цифр, кожен з яких було проаналізовано за показниками продуктивності:

Шість версій для порівняння

 

2024-11-23

Optimizing Performance: Python Speed Test for Digit Search in Strings

Не так давно я натрапив на пост, де порівнювались різні методи коду для пошуку цифр у рядках у Python. Виникло бажання перевірити реальні швидкості цих методів, тому вирішив самостійно провести експеримент. 

Я розглянув, як швидко кожен метод виконується при пошуку цифр коротких рядках, а також порівняємо їхню ефективність з погляду часу виконання.

Надалі, порівнявши кілька підходів, я поділюсь висновками щодо того, який з них є найкращим в умовах реального використання Python для цієї задачі.


 
Шість версій для порвняння

2024-11-20

Note. TrueNAS Scale. ACME RFC 2136. Howto: ACME DNS-Authenticator shell script using acmesh project

Умови:

Є контрольований DNS server (BIND) з можливістю оновлювати записи з використанням nsupdate RFC 2136.
Є TrueNAS SCALE Server Dragonfish-24.04.2.5.

Задача:

Додати автоматично оновлюваний сертифікат безпеки  від Let’s Encrypt,  відповідно до стандартів ACME (RFC 8555).

2024-11-17

5-Day Gen AI Intensive Course with Kaggle and Google. Educational - Parking AI.

Ось і закінчився 5 денний інтенсив на тему Генеративного ШІ.
Захопило це після прослуховування LiveStreams кожного дня, але у запису коли зʼявлялися субтитри котрі вже можна перекласти.
По закінченню отримав такий бейдж від Kaggle 😉
Badge Kaggle

З позитивних моментів те що захотілося спробувати отриману інформацію особисто, і спробував з моделювати найпростішого помічника до нашого навчального проєкту IT академії GoIT - на тему "Автоматизована система паркування".

Оформив простий Colab projet ParkingAI.ipynb. Для його виконання необхідно отримати GOOGLE_API_KEY від aistudio.google.com і додати до секретних ключів.  Зверніть увагу на список країн де AI Studio може працювати.

Ось ядро логіки роботи з models/gemini-1.5-flash

In general the state diagram is.

# https://github.com/google-gemini/generative-ai-python
# https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Function_calling.ipynb
# List of tools/functions for the parking AI system with explicit parameter types

parking_tools = [get_free_space, get_statistics, get_user_preferences, check_parked_car]

# Instruction to the model on how to use the tools
instruction = """
You are a helpful AI assistant for a smart parking app. Users can ask you questions about the app's features,
their parking status, and how to use the app. Use the available tools (get_free_space, get_statistics,
get_user_preferences, check_parked_car) to access relevant information and provide clear and concise answers.
"""

model = genai.GenerativeModel(
    "models/gemini-1.5-flash-latest",
    tools=parking_tools,
    system_instruction=instruction,
    )
user_query = input("Ask your question (commands: [e]xit, [h]istory): ")
response = chat.send_message(user_query)
print(response.text)

Приклади запитів:

Ask your question (commands: [e]xit, [h]istory): user 23 what preferred place ?

    User 23 prefers Zone A and Zone B.

Ask your question (commands: [e]xit, [h]istory): user 24 and 33 ?

    User 24 prefers Zone B and Zone C. There is no preference on record for user 33.

Ask your question (commands: [e]xit, [h]istory): h
user -> [{'text': 'user 23 what preferred place ?'}]
--------------------------------------------------------------------------------
model -> [{'function_call': {'name': 'get_user_preferences', 'args': {'user_id': 23.0}}}]
--------------------------------------------------------------------------------
user -> [{'function_response': {'name': 'get_user_preferences', 'response': {'preferred_locations': ['Zone A', 'Zone B']}}}]
--------------------------------------------------------------------------------
model -> [{'text': 'User 23 prefers Zone A and Zone B.\n'}]
--------------------------------------------------------------------------------
user -> [{'text': 'user 24 and 33 ?'}]
--------------------------------------------------------------------------------
model -> [{'function_call': {'name': 'get_user_preferences', 'args': {'user_id': 24.0}}}, {'function_call': {'name': 'get_user_preferences', 'args': {'user_id': 33.0}}}]
--------------------------------------------------------------------------------
user -> [{'function_response': {'name': 'get_user_preferences', 'response': {'preferred_locations': ['Zone B', 'Zone C']}}}, {'function_response': {'name': 'get_user_preferences', 'response': {'preferred_locations': []}}}]
--------------------------------------------------------------------------------
model -> [{'text': 'User 24 prefers Zone B and Zone C.  There is no preference on record for user 33.\n'}]
--------------------------------------------------------------------------------
Ask your question (commands: [e]xit, [h]istory): q
Exiting the chat. Goodbye!
Ask your question (type 'exit' to quit): What you can?
I can:

* Tell you how many free parking spaces are available.
* Provide overall usage statistics for the app.
* Tell you your preferred parking locations (if you provide your user ID).
* Check if your car is currently parked (if you provide your license plate number).

Ask your question (type 'exit' to quit): how many parking space ?
There are currently 10 free parking spaces.

Ask your question (type 'exit' to quit): My car ABC123
OK.  And what about your car with license plate ABC123?  Do you want to know if it's currently parked?

Ask your question (type 'exit' to quit): yes 
Yes, the car with license plate ABC123 is currently parked.

Ask your question (type 'exit' to quit): What about car AJJS11, is parked ?
No, the car with license plate AJJS11 is not currently parked.

Ask your question (type 'exit' to quit): Скільки вільних місць зараз є?
There are currently 10 free parking spaces.

Ask your question (type 'exit' to quit): Відповідай мені укаріїнською мовою.
Гаразд, я буду відповідати українською.  Задавайте питання!

Ask your question (type 'exit' to quit):  Скільки вільних місць зараз є? І який номер моєї машини?
Зараз є 10 вільних паркувальних місць.  Повідомте мені номер вашої машини, щоб я міг перевірити, чи вона припаркована.

Ask your question (type 'exit' to quit): Я вже відповідав, чи ти не мамʼятаєш ?
Вибачте, я не маю пам'яті попередніх розмов.  Для того, щоб перевірити, чи ваша машина припаркована, будь ласка, вкажіть її номерний знак.

Ask your question (type 'exit' to quit): ABC123
Так, автомобіль з номером ABC123 припаркований.

Ask your question (type 'exit' to quit): Яка сататистика використання ?
Загальна кількість зареєстрованих користувачів становить 100. Середнє використання додатку за тиждень складає 5.
Аsk your question (type 'exit' to quit, 'history' for history show): history
Ask your question (type 'exit' to quit, 'history' for history show): Мова спілкування українська
Добре, я буду спілкуватися з вами українською.  Задавайте питання.

Ask your question (type 'exit' to quit, 'history' for history show): Номер моєї машини ABC123, вона припаркована ?
Так, ваш автомобіль з номером ABC123 припаркований.

Ask your question (type 'exit' to quit, 'history' for history show): history
user -> [{'text': 'Мова спілкування українська'}]
--------------------------------------------------------------------------------
model -> [{'text': 'Добре, я буду спілкуватися з вами українською.  Задавайте питання.\n'}]
--------------------------------------------------------------------------------
user -> [{'text': 'Номер моєї машини ABC123, вона припаркована ?'}]
--------------------------------------------------------------------------------
model -> [{'text': 'Перевіряю...\n\n'}, {'function_call': {'name': 'check_parked_car', 'args': {'license_plate': 'ABC123'}}}]
--------------------------------------------------------------------------------
user -> [{'function_response': {'name': 'check_parked_car', 'response': {'is_parked': True}}}]
--------------------------------------------------------------------------------
model -> [{'text': 'Так, ваш автомобіль з номером ABC123 припаркований.\n'}]
--------------------------------------------------------------------------------
Ask your question (type 'exit' to quit, 'history' for history show): яка моя улюблена зона ?
Для того, щоб відповісти на це питання, мені потрібен ваш ідентифікатор користувача.  Будь ласка, вкажіть його.

Ask your question (type 'exit' to quit, 'history' for history show): 23
Ваші улюблені зони паркування - це Зона A та Зона B.

Ask your question (type 'exit' to quit, 'history' for history show): history
user -> [{'text': 'Мова спілкування українська'}]
--------------------------------------------------------------------------------
model -> [{'text': 'Добре, я буду спілкуватися з вами українською.  Задавайте питання.\n'}]
--------------------------------------------------------------------------------
user -> [{'text': 'Номер моєї машини ABC123, вона припаркована ?'}]
--------------------------------------------------------------------------------
model -> [{'text': 'Перевіряю...\n\n'}, {'function_call': {'name': 'check_parked_car', 'args': {'license_plate': 'ABC123'}}}]
--------------------------------------------------------------------------------
user -> [{'function_response': {'name': 'check_parked_car', 'response': {'is_parked': True}}}]
--------------------------------------------------------------------------------
model -> [{'text': 'Так, ваш автомобіль з номером ABC123 припаркований.\n'}]
--------------------------------------------------------------------------------
user -> [{'text': 'яка моя улюблена зона ?'}]
--------------------------------------------------------------------------------
model -> [{'text': 'Для того, щоб відповісти на це питання, мені потрібен ваш ідентифікатор користувача.  Будь ласка, вкажіть його.\n'}]
--------------------------------------------------------------------------------
user -> [{'text': '23'}]
--------------------------------------------------------------------------------
model -> [{'text': 'Добре, перевіряю ваші налаштування...\n\n'}, {'function_call': {'name': 'get_user_preferences', 'args': {'user_id': 23.0}}}, {'text': '\n'}]
--------------------------------------------------------------------------------
user -> [{'function_response': {'name': 'get_user_preferences', 'response': {'preferred_locations': ['Zone A', 'Zone B']}}}]
--------------------------------------------------------------------------------
model -> [{'text': 'Ваші улюблені зони паркування - це Зона A та Зона B.\n'}]
--------------------------------------------------------------------------------

Що було на курсі?

 

[Day 1 Assignments] 5-Day Gen AI Intensive:

💡What You’ll Learn

Today you’ll explore the evolution of LLMs, from transformers to techniques like fine-tuning and inference acceleration. You’ll also get trained in the art of prompt engineering for optimal LLM interaction.

The code lab will walk you through getting started with the Gemini API and cover several prompt techniques and how different parameters impact the prompts.

📼 Day 1 Livestream with Paige Bailey

[Day 2 Assignments] 5-Day Gen AI Intensive:

💡 What You’ll Learn

Today you will learn about the conceptual underpinning of embeddings and vector databases and how they can be used to bring live or specialist data into your LLM application. You’ll also explore their geometrical powers for classifying and comparing textual data.

 📼 Day 2 Livestream with Paige Bailey

[Day 3 Assignments] 5-Day Gen AI Intensive:

💡 What You’ll Learn

Learn to build sophisticated AI agents by understanding their core components and the iterative development process.

The code labs cover how to connect LLMs to existing systems and to the real world. Learn about function calling by giving SQL tools to a chatbot, and learn how to build a LangGraph agent that takes orders in a café.

 📼 Day 3 Livestream with Paige Bailey

[Day 4 Assignments] 5-Day Gen AI Intensive:

💡 What You’ll Learn

In today’s reading, you’ll delve into the creation and application of specialized LLMs like SecLM and MedLM/Med-PaLM, with insights from the researchers who built them.

In the code labs you will learn how to add real world data to a model beyond its knowledge cut-off by grounding with Google Search.  You will also learn how to fine-tune a custom Gemini model using your own labeled data to solve custom tasks.

 📼 Day 4 Livestream with Paige Bailey

[Day 5 Assignments] 5-Day Gen AI Intensive:

💡 What You’ll Learn

Discover how to adapt MLOps practices for Generative AI and leverage Vertex AI's tools for foundation models and generative AI applications.

 📼 Day 5 Livestream with Paige Bailey


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

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

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

    💧 Матеріали:

    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

    Причини:

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

    2024-09-21

    Note. Restore the old physical server by moving it to a virtual machine on the Proxmox VE. Creating an iSCSI disk and mounting it at boot. FreeBSD 9.0.

    Примітка. Відновлення старого фізичного сервера, перемістивши його на віртуальну машину на Proxmox VE. Створення iSCSI диску та його монтування при завантажені операційної системи. FreeBSD 9.0.

    Історія

    Основне правило адміністратора, працює не чіпай. Призводить то того що рано чи пізно це вилазить боком. На кшталт не можеш нічого оновити та встановити.

    Тому мені історично діставався цей сервер котрий треба перемістити до віртуального середовища поки "/raid1" масив ще працює після нового його збою, але варто зауважити міцний горішок.

    Є декілька способів як перемістити систему з фізичного до віртуального. Але я не хотів переносити усі накопиченні проблеми, і вирішив перенести все окрім ядра та базової системи використовуючи    rsync.

    2024-09-09

    FreeBSD 14. Mail server POSTFIX and mariadb-client instead of mysql-client

    Маю операційну систему FreeBSD 14.1-RELEASE у віртуальному середовищі Proxmox VE. 

    Щойно оновив поштовий сервер з FreeBSD 13.1-RELEASE, і з'ясувалося що я не можу тепер встановити POSTFIX та mariadb-client одночасно, як це було раніше. Тому це нотатка мені як я  розв'язав цю проблему, щоб не наступати на ті самі граблі двічі.

    Коли встановлено у Вас mariadb-server та mariadb-client на одному сервері, то при встановленні поштового сервера postfix як пакунок через pkg install postfix-mysql, або з портів з опцією MySQL.

    postfix freebsd port, mysql option

     Вам буде пропоновано видалити mariadb-server та mariadb-client і встановити mysql-client.

    2024-08-08

    Note. Resize UFS Disk

    OS: FreeBSD.
    Disk: GPT, UFS. 

    Proxmox increase live disk of VM.

    gpart commit vtbd1
    gpart show vtbd1
    gpart resize -i 1 vtbd1
    gpart show vtbd1
    df -h
    growfs /dev/gpt/cloud-data
    df -h
    

    2024-07-24

    Codefinity. Mastered all the "Foundations of Machine Learning" specialization courses.

    The track provides an introduction to the essential concepts and techniques in the field of machine learning. 

    This comprehensive learning journey covers various crucial topics, including the utilization of scikit-learn library for machine learning initiation, the application of Linear Regression for predictive modeling, exploration of Classification methods for categorizing data, and the study of Clustering algorithms to discover inherent patterns within datasets. 

    By engaging with this track, learners will acquire a solid understanding of fundamental machine learning principles, enabling them to build predictive and analytical models across diverse domains.

    8 courses

    Syllabus

    Codefinity. Project - Logistic Regression Mastering

    Project Logistic Regression Mastering to track Foundations of Machine Learning.

    In this project, we are going to understand the career tracks of Data Scientists.

    Author: Edoardo Cantagallo

    Logistic Regression Mastering

    2024-07-23

    Codefinity. Course Ensemble Learning

    Ensemble Learning is an advanced machine learning technique that combines multiple models to improve overall predictive performance and decision-making when solving real-life tasks. 

    Author: Ruslan Shudra

    Let's summarize and highlight the main information covered in the course.

    Ensemble learning in machine learning is a technique that combines the predictions of multiple individual models (learners) to produce a more robust and accurate prediction or classification. It leverages the principle that by aggregating the opinions of multiple models, you can often achieve better results than relying on a single model.
    There are three commonly used techniques for creating ensembles: bagging, boosting, and stacking.

    Ensemble Learning

     

    2024-07-14

    Codefinity. Course Linear Regression with Python.

    Course Linear Regression with Python of track Foundations of Machine Learning.

    Linear Regression is a crucial concept in predictive analytics. It is widely used by data scientists, data analytics, and statisticians as it is easy to build and interpret but powerful enough for many tasks.

    Author: Volodymyr Romanovych

    • Simple Linear Regression 
    • Multiple Linear Regression
    • Polynomial Regression
    • Choosing The Best Model
    Linear Regression with Python

    2024-07-13

    Codefinity. Mastered all the "Python Data Analysis and Visualization" specialization courses.

    Track curriculum encompasses a collection of pivotal courses that provide foundational knowledge and skills essential for a successful journey in the field of data science. 

    These courses encompass the comprehensive study of key concepts, tools, and methodologies integral to the realm of data analysis and modeling. 

    By delving into courses centered around numpy, pandas, statistics, probability theory, as well as mathematics tailored for data analysis and modeling, learners are equipped with a well-rounded toolkit to seamlessly navigate the intricacies of data-driven exploration, manipulation, and inference.

    6 courses 

    Syllabus

    1. Ultimate NumPy
    2. Pandas First Steps
    3. Advanced Techniques in pandas
    4. Mathematics for Data Analysis and Modeling
    5. Probability Theory Basics
    6. Ultimate Visualization with Python

    Python Data Analysis and Visualization

    Codefinity. Ultimate Visualization with Python

    Course Ultimate Visualization with Python of track Python Data Analysis and Visualization.

    Data is everywhere around us, and making sense of it is extremely important. 

    Visualization helps us deal with data by finding certain patterns and insights in it. 

    We will develop a solid foundation of data visualization using Python and its libraries, such as matplotlib and seaborn, to get as much information from data as possible in a neat and concise way. Without further ado, let's dive in!

    Author: Kyryl Sidak

     

    Ultimate Visualization with Python

     


    2024-07-10

    Codefinity. Ultimate NumPy.

    Course Ultimate NumPy of track Python Data Analysis and Visualization.

    Unlock the full potential of Python's most essential library for numerical computing, NumPy. 

    This comprehensive course is designed to take you from a beginner's understanding to an advanced level of proficiency in NumPy. 

    Whether you're a data scientist, engineer, researcher, or developer, mastering NumPy is essential for efficient data manipulation, scientific computing, and machine learning.

    Author: Kyryl Sidak

    Ultimate NumPy

     

    2024-07-09

    "Kaggle" від Google "ml-competition-2024-for-ukrainian"

    ☀️ Перше моє змагання 📈 на "Kaggle" від Google "ml-competition-2024-for-ukrainian".

    Приємно затягнуло 👨‍🎓, хоч і не потрапляю до 🏆призових місць top 50, і не претендую навіть на ґуґл ☕ чашку, хоча я вже отримав її за інше завдання 😃

    Зареєстровані учасники, які увійдуть до ТОП-50 переможців у Kaggle-змаганні, отримають нагороди.

    На сьогодні (за 4 доби до фінішу) 🔝зайняв 62 місце (піднявся з 87), і напевно вже вище не зможу стати, а тільки нище 😃. Але відновив деякі знання використовуючи записи з домашніх завдань курсів Data science в GoIT - start your career in IT : https://github.com/lexxai/goit_python_data_sciense_homework .

    2024-07-08

    Codefinity. ML Introduction with scikit-learn.

    Course. ML Introduction with scikit-learn of track Foundations of Machine Learning.

    Machine Learning is now used everywhere. Want to learn it yourself? 

    This course is an introduction to the world of Machine learning for you to learn basic concepts, work with Scikit-learn – the most popular library for ML and build your first Machine Learning project. 

    This course is intended for students with a basic knowledge of Python, Pandas, and NumPy.

    Author: Volodymyr Romanovych

     

    ML Introduction with scikit-learn.

    2024-07-07

    Codefinty. Project - Recognizing Handwritten Digits.

    Postgraduate of completed track - Python. Preparation for Data Science. Consists of 9 courses.

    • Recognizing Handwritten Digits.
      In this project, our primary objective will be to delve into the identification of handwritten digits through the application of machine learning algorithms. This endeavor aims to harness the power of machine learning to effectively interpret and understand handwritten digits, showcasing the potential of these algorithms in processing and analyzing complex visual information.

    Recognizing Handwritten Digits

    2024-06-23

    Codefinity. Successfully completed track - Python. Preparation for Data Science. Consists of 9 courses.

    Track "Preparation for Data Science", curriculum encompasses a collection of pivotal courses that provide foundational knowledge and skills essential for a successful journey in the field of data science. 

    These courses encompass the comprehensive study of key concepts, tools, and methodologies integral to the realm of data analysis and modeling.
    By delving into courses centered around NumPy, Pandas, statistics, probability theory, as well as mathematics tailored for data analysis and modeling, learners are equipped with a well-rounded toolkit to seamlessly navigate the intricacies of data-driven exploration, manipulation, and inference. 

    The curriculum's diverse content ensures a robust understanding of critical elements in data science, cultivating a solid base for individuals venturing into this dynamic and ever-evolving domain.

    Preparation for Data Science

    2024-06-20

    Simple basic setup of SONiC OS for swicth Celestica Seastone DX010, 32-port 100G in L2 mode, and simple ACL restriction for SSH managemnt.

    In continuing to Hardware switch with stateless firewall rules. Seastone DX010. SONiC OS, SONiC Notebook.

    Conditions. Two Celestica DX010 switches (Celestica1, Celestica2) are connected via a 100G (4x25G) uplink connection located in different data centres.

    Task. Manage the settings of the Celestica2 from the console of the Celestica1 switch, but not vice versa.

    Upgrade firmware from WiKi

    SONiC / Supported devices platforms - Celestica DX010 #37
     
    $ scp ./sonic-broadcom.bin scp://admin@sonic_ip
    $ ssh admin@sonic_ip admin@sonic:~$ sudo sonic-installer install sonic-broadcom.bin
    New image will be installed, continue? [y/N]: y
    efi not supported - exiting without verification

    Installing image SONiC-OS-master.576207-99e0e1ade and setting it as default...
    Setup SWAP memory
    Command: mkswap /host/swapfile
    Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
    no label, UUID=c7e49ce7-321d-4a01-9af6-09123874b547

    Command: swapon /host/swapfile

    Command: bash ./sonic-broadcom.bin
    Verifying image checksum ... OK.
    Preparing image archive ... OK.
    Installing SONiC in SONiC
    ONIE Installer: platform: x86_64-broadcom-r0
    onie_platform: x86_64-cel_seastone-r0
    Removing old SONiC installation /host/image-master.571486-a2b3ca87a
    Installing SONiC to /host/image-master.576207-99e0e1ade
    ....
    Command: sync

    Command: sync

    Command: sync

    Command: sleep 3

    Done
    admin@sonic:~$ sudo reboot
    Now the user is admin, password: "YourPaSsWoRd".
    Managemnet sonic_ip is obtained from the local DHCP server.

    You can back up the sonic configuration on your local PC
    $ scp -r admin@sonic_ip:/etc/sonic/ ./sonic

    2024-06-16

    Hardware switch with stateless firewall rules. Seastone DX010. SONiC OS.

    ⌛ Нові часи швидкостей 📶 і нове обладнання приходиться опановувати.

    Так опановую налаштування 100Gb обладнання 🔨 на прикладі "Celestica Seastone DX010, 32-Port 100G QSFP28 Onie Switch" з операційною системою SONiC OS.

    🚆 Великі швидкості передачі - великі вимоги до часу ⛳ обробки мережевих пакетів. Для пришвидшення обробки використовуються спеціальні апаратні акселератори (ASIC), наприклад,  Broadcom Tomahawk ASIC.

    🚀 ASIC своєю чергою можуть мати свої обмеження 🚧, такі, наприклад як stateless firewall правила в ACL

    stateless firewall

    statefull firewall

    2024-05-30

    GitHub Actions. Multiple Services.

    🔔 Може кому цікаво буде.

    Як тестувати проєкт з декількох окремих сервісів, корті працюють у своїх контейнерах, в одному GitHub Action.



    2024-05-16

     Безпечна роботa при розсиланні запрошень електронною поштою

    💡Хочу поділитися основами безпечної роботи при розсиланні запрошень електронною поштою 📧.

    Сьогодні отримав запрошення 📩 яке попередній раз попало до спаму , а сьогодні Ґуґл попередив 🏷️ що можливо цей лист шахрайській ⚔️, чому ?


    Одна з причин це порушення принців конфіденційності персональних даних при використанні адресатів в полі кому.


    Чому?

    Тому що їх бачать 📖 всі отримувачі, і база клієнтів - витікає 💧.

      Поле "кому"

    Нові правила в Європі такі як GDPR регулюють деякі питання з цього.

    🏆 Рішення?

    Є - використовувати поле прихована копія або CC (Carbon Copy).
     

    Поле "Прих. копія" (СС)

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

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

    ipv6 ready