<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Michellebuchiokonicha</title>
    <description>The latest articles on DEV Community by Michellebuchiokonicha (@michellebuchiokonicha).</description>
    <link>https://dev.to/michellebuchiokonicha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F727233%2F83ae7c91-08b5-46a5-8c7f-743e7a449ed6.jpg</url>
      <title>DEV Community: Michellebuchiokonicha</title>
      <link>https://dev.to/michellebuchiokonicha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/michellebuchiokonicha"/>
    <language>en</language>
    <item>
      <title>I have been struggling to write…</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Sat, 28 Feb 2026 08:22:51 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/i-have-been-struggling-to-write-15j8</link>
      <guid>https://dev.to/michellebuchiokonicha/i-have-been-struggling-to-write-15j8</guid>
      <description>&lt;p&gt;I have been writing technical articles since 2022. My passion for technology has been built on writing. I have loved it even before I realized I wanted to go into software development. I used to write poems that got published while in school, so writing technical articles when I started coding was not a big deal for me. I have always written.&lt;/p&gt;

&lt;p&gt;In fact, my parents used to say I would be like Chimamanda Adichie. Because not only did I know how to coin words, I knew how to express them in speech, and I also loved to read, which helped me greatly in writing with ease. At some point, while in secondary school, I considered becoming a writer and studying Literature just so I could write and speak. It always gave me joy.&lt;/p&gt;

&lt;p&gt;But recently, I find myself struggling to do one of the things I would normally term ‘easiest’ to do.&lt;/p&gt;

&lt;p&gt;This struggle started creeping in gradually in 2024. When ChatGPT came on board.&lt;br&gt;
I still continued writing, and I had my articles featured on Dev. to amongst the 7 most read articles.&lt;/p&gt;

&lt;p&gt;Some of my articles climbed to 40,000 reads, numerous comments, and likes. And in 2025, my new article also got featured on hasnode but in the heat of AI and arguments on AI being able to do everything, I wrote only two articles, and I paused.&lt;/p&gt;

&lt;p&gt;I was confused, I was in doubt, I had questions: “Will people need to read articles on asynchronous functions, supervised learning, JavaScript, Python, and more, if AI can simply provide all the information?”&lt;/p&gt;

&lt;p&gt;Secondly, I was confused because I have been a web developer all this time. Mostly writing and building frontend applications, hence most of my articles covered the web and JavaScript. But with this new excitement, I didn’t just want to stick only to the web; I wanted to branch into machine learning. This also made me pause to reflect. What started as a short-term pause in February 2025 turned into a full year of not writing any technical articles. I feel like crying as I type this. It hurts me more than I ever thought it would.&lt;/p&gt;

&lt;p&gt;I have many excuses. Another would definitely be that I want to start a YouTube channel and be active on social media instead of writing. But I have asked so many questions. Can I edit videos? Do I really want to keep talking and explaining technology concepts instead of simply penning them down as articles? And right now, it has dawned on me. I don’t know how consistent I can be with explaining concepts via speech as opposed to writing them down, which is easier and smoother for me.&lt;br&gt;
I have been stalling, waiting, postponing this, telling myself I am too busy, telling myself AI can explain everything, telling myself YouTube is better now, as people don’t read anymore. But it feels like something is missing. Like, I am not doing one of the things I am meant to be doing, and it hurts, it breaks my heart so much.&lt;/p&gt;

&lt;p&gt;This is my first piece in one year, and truly, this morning, 7:50 am, 22nd February, 2026, thinking deeply about what could have been if I had not stopped writing, I decided to just write.&lt;/p&gt;

&lt;p&gt;I have no will for any aspire to perspire, but I guess we will all figure it out. The questions, the doubts. If you are like me, then write.&lt;/p&gt;

&lt;p&gt;JUST WRITE.&lt;/p&gt;

</description>
      <category>writing</category>
      <category>programming</category>
      <category>software</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Infrastructure as Code: Getting Started with Terraform for Cloud Deployment</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Fri, 14 Feb 2025 06:55:29 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/getting-started-with-terraform-for-cloud-deployment-9f0</link>
      <guid>https://dev.to/michellebuchiokonicha/getting-started-with-terraform-for-cloud-deployment-9f0</guid>
      <description>&lt;h2&gt;
  
  
  Introduction to Cloud Services
&lt;/h2&gt;

&lt;p&gt;Cloud computing has changed the way we deploy and manage applications. It offers various service models to meet different needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure as a Service (IaaS):&lt;/strong&gt; Provides on-demand access to computing resources like servers, storage, and networking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Platform as a Service (PaaS):&lt;/strong&gt; Offers hardware and software resources for cloud application development, eliminating the need to manage the underlying infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software as a Service (SaaS):&lt;/strong&gt; Delivers full application stacks as a cloud service, including maintenance and management of both infrastructure and software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Cloud Deployment
&lt;/h2&gt;

&lt;p&gt;Using the cloud for computing and deployment comes with several advantages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Faster Time to Market:&lt;/strong&gt; Servers can be deployed with just a few clicks, significantly accelerating the development process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost Savings:&lt;/strong&gt; By choosing the right set of services, infrastructure costs can be drastically reduced.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Loss Prevention:&lt;/strong&gt; Data is stored across multiple data centers in different availability zones, ensuring redundancy and reliability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges of Cloud Deployment
&lt;/h2&gt;

&lt;p&gt;While the cloud offers many benefits, there are some challenges to consider:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vendor Lock-In:&lt;/strong&gt; Switching cloud providers can be costly and complex, often leaving customers tied to their original vendor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lack of Expertise:&lt;/strong&gt; Finding skilled cloud professionals can be difficult, as the demand for cloud expertise often outstrips supply.&lt;/p&gt;

&lt;h2&gt;
  
  
  Major Cloud Providers
&lt;/h2&gt;

&lt;p&gt;The three largest cloud providers dominate the market:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS (Amazon Web Services):&lt;/strong&gt; Holds the largest market share in the US and offers a wide range of services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Azure:&lt;/strong&gt; Known for its seamless integration with Microsoft products and a strong presence in Germany.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GCP (Google Cloud Platform):&lt;/strong&gt; This has seen rapid growth over the past three years and integrates well with Google products like Google Analytics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying to the Cloud
&lt;/h2&gt;

&lt;p&gt;Deploying applications in the cloud involves using a variety of services. While you can manage these services manually through the cloud console, this approach has limitations:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complexity:&lt;/strong&gt; Dropping or modifying services can be tedious, requiring you to navigate through multiple menus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lack of Replicability:&lt;/strong&gt; Manual configurations are hard to replicate, making it difficult for others to understand or reproduce your setup.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt; comes in. IaC allows you to define and manage your infrastructure using code, making it replicable, understandable, and easier to maintain.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Infrastructure as Code (IaC)?
&lt;/h2&gt;

&lt;p&gt;Infrastructure as Code (IaC) is the practice of managing and provisioning infrastructure through code instead of manual processes. This approach has become increasingly popular, with IaC skills now appearing in job postings for roles like Data Analysts.&lt;br&gt;
Popular IaC tools include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terraform&lt;/li&gt;
&lt;li&gt;AWS CloudFormation&lt;/li&gt;
&lt;li&gt;Azure Resource Manager&lt;/li&gt;
&lt;li&gt;Google Cloud Deployment Manager&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Among these, &lt;strong&gt;Terraform&lt;/strong&gt; stands out due to its ability to work across multiple cloud providers, making it a versatile choice for organizations that may migrate between clouds.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Terraform?
&lt;/h2&gt;

&lt;p&gt;Terraform is an open-source IaC tool that allows you to build, change, and version infrastructure safely and efficiently. Here’s why it’s a great choice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Cloud Support:&lt;/strong&gt; Terraform supports multiple cloud providers, including AWS, Azure, and GCP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rollback Capabilities:&lt;/strong&gt; Infrastructure changes can be easily rolled back, minimizing downtime and risks.&lt;br&gt;
Ease of Use: Terraform uses a declarative language, making it easy to learn and use. You only need a few commands to get started.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost Efficiency:&lt;/strong&gt; You can stop and resume your infrastructure as needed, saving on cloud credits and usage.&lt;/p&gt;
&lt;h2&gt;
  
  
  Setting Up Terraform
&lt;/h2&gt;

&lt;p&gt;To get started with Terraform, you’ll need:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Cloud Provider Account:&lt;/strong&gt; For this guide, we’ll use AWS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terraform Installed:&lt;/strong&gt; Download and install Terraform from the website: &lt;a href="https://www.terraform.io/" rel="noopener noreferrer"&gt;https://www.terraform.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example: Setting Up an S3 Bucket in AWS&lt;/p&gt;

&lt;p&gt;Here’s an example of how to set up an S3 bucket using Terraform:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;provider "aws" {
  region = "us-east-1"
}

resource "aws_s3_bucket" "example_bucket" {
  bucket = "my-unique-bucket-name"
  acl    = "private"

  versioning {
    enabled = true
  }

  tags = {
    Name        = "Example Bucket"
    Environment = "Dev"
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code defines an S3 bucket with versioning enabled and tags for identification. You can customize it further based on your needs.&lt;br&gt;
Conclusion&lt;/p&gt;

&lt;p&gt;you need to further set up:&lt;/p&gt;

&lt;p&gt;provider&lt;br&gt;
aws_s3_bucket&lt;br&gt;
aw3_s3_bucket_public_access_block&lt;br&gt;
aws_s3_bucket_ownership_controls&lt;br&gt;
aws_s3_bucket_acl&lt;br&gt;
aws_s3_object&lt;br&gt;
aws_s3_bucket_website_configuration&lt;/p&gt;

&lt;p&gt;Here is a simple setup&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;provider "aws" {
    region = "us-east-1"
}

resource "aws_s3_bucket" "s3" {
    bucket = "your-bucket"
}

resource "aws_s3_bucket_public_access_block" "s3-public-block" {
    bucket = aws_s3_bucket.s3.id

    block_public_acls       = false
    block_public_policy     = false
    ignore_public_acls      = true
    restrict_public_buckets = false
}

resource "aws_s3_bucket_ownership_controls" "s3-ownership" {
    bucket = aws_s3_bucket.s3.id

    rule {
        object_ownership = "BucketOwnerPreferred"
    }
}

resource "aws_s3_bucket_acl" "s3-acl" {
    bucket = aws_s3_bucket.s3.id
    acl    = "public-read"
}

resource "aws_s3_object" "s3-object" {
    bucket       = aws_s3_bucket.s3.id
    key          = "index.html"
    source       = "index.html"
    content_type = "text/html"
    acl          = "public-read"
}

resource "aws_s3_bucket_website_configuration" "s3-website-configuration" {
    bucket = aws_s3_bucket.s3.id

    index_document {
        suffix = "index.html"
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with this simple setup, you can deploy your first web application.&lt;br&gt;
I have further included a sample index.html file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Welcome to My Website&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f4f4f4;
            color: #333;
            text-align: center;
        }
        header {
            background-color: #007bff;
            color: white;
            padding: 20px 0;
        }
        h1 {
            margin: 0;
        }
        main {
            padding: 20px;
        }
        footer {
            background-color: #333;
            color: white;
            padding: 10px 0;
            position: fixed;
            bottom: 0;
            width: 100%;
        }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;header&amp;gt;
        &amp;lt;h1&amp;gt;Welcome to My Website&amp;lt;/h1&amp;gt;
    &amp;lt;/header&amp;gt;
    &amp;lt;main&amp;gt;
        &amp;lt;p&amp;gt;Hello, world! This is a simple webpage hosted on AWS S3.&amp;lt;/p&amp;gt;
        &amp;lt;p&amp;gt;Enjoy browsing!&amp;lt;/p&amp;gt;
    &amp;lt;/main&amp;gt;
    &amp;lt;footer&amp;gt;
        &amp;lt;p&amp;gt;&amp;amp;copy; 2025 My Website&amp;lt;/p&amp;gt;
    &amp;lt;/footer&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To install terraform, use:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;terraform -v&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;then open your IDE and run &lt;code&gt;terraform init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To format and validate your terraform code, run &lt;code&gt;terraform fmt&lt;/code&gt; and &lt;br&gt;
&lt;code&gt;terraform validate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Next, you would need to plan and make changes with&lt;br&gt;
&lt;code&gt;terraform plan&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To apply the changes made, run &lt;code&gt;terraform apply -auto-approve&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Lastly, in order to save bandwidth and when you are not using the infrastructure at a certain time, you can destroy it with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;terraform destroy -auto-approve&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can further rerun/rebuild by running &lt;br&gt;
&lt;code&gt;terraform apply&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The process is quite seamless and easy to use and understand. it saves you time, provides flexibility, and also allows other developers to see what you have done.&lt;/p&gt;

&lt;p&gt;Infrastructure as Code, particularly with tools like Terraform, simplifies cloud deployment and management. It ensures that your infrastructure is replicable, understandable, and easy to maintain. Whether you’re working with AWS, Azure, or GCP, Terraform provides a consistent and efficient way to manage your cloud resources.&lt;br&gt;
Start your IaC journey today and experience the benefits of deploying infrastructure as code!&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>cloud</category>
      <category>aws</category>
      <category>googlecloud</category>
    </item>
    <item>
      <title>Python OOP Made Easy: Master Object-Oriented Programming with Ease</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Tue, 04 Feb 2025 07:38:22 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/python-oop-made-easy-master-object-oriented-programming-with-ease-4h9e</link>
      <guid>https://dev.to/michellebuchiokonicha/python-oop-made-easy-master-object-oriented-programming-with-ease-4h9e</guid>
      <description>&lt;p&gt;Object-Oriented Programming (OOP) is a programming paradigm that uses objects and classes to structure software. Unlike procedural programming, which focuses on functions and procedures, OOP emphasizes using objects that encapsulate data and behavior. Python, a versatile language, fully supports OOP, making it a powerful tool for building modular, reusable, and maintainable code.&lt;/p&gt;

&lt;p&gt;In this article, we’ll explore the basics of OOP in Python, including classes, objects, attributes, methods, inheritance, polymorphism, encapsulation, and abstraction. We’ll also dive into functional programming concepts and how they complement OOP in Python.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python OOP Basics
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is OOP?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OOP is a programming paradigm that organizes code into classes and objects. A class is a blueprint for creating objects, while an object is an instance of a class. OOP promotes concepts like modularity, reusability, and abstraction, making it easier to manage complex systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros of Object-Oriented Programming&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modularity: Code is organized into reusable components.&lt;/p&gt;

&lt;p&gt;Abstraction: Hide complex implementation details.&lt;/p&gt;

&lt;p&gt;Maintenance: Easier to update and debug.&lt;/p&gt;

&lt;p&gt;Reusability: Classes can be reused across projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cons of Object-Oriented Programming&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Complexity: This can be overkill for simple programs.&lt;/p&gt;

&lt;p&gt;Performance: Slightly slower due to overhead.&lt;/p&gt;

&lt;p&gt;Overuse: Not every problem requires an OOP solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Classes and Objects in Python
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What are Classes and Objects?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A class is a blueprint for creating objects. It defines the attributes (data) and methods (functions) that the objects will have. An object is an instance of a class.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hi(self):
        print(f"Hi, my name is {self.name} and I’m {self.age} years old.")

# Creating objects
person1 = Person("Alice", 25)
person2 = Person("Bob", 35)

person1.say_hi()  # Output: Hi, my name is Alice and I’m 25 years old.
person2.say_hi()  # Output: Hi, my name is Bob and I’m 35 years old.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What Can Go Wrong?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python is flexible, but this can lead to mistakes. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;person3 = Person(name="Charlie", age=person1)
person3.say_hi()  # Output: Hi, my name is Charlie and I’m &amp;lt;__main__.Person object at 0x109f301c0&amp;gt; years old.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, &lt;strong&gt;age&lt;/strong&gt; is mistakenly assigned an object instead of a number. Always validate inputs!&lt;/p&gt;

&lt;h2&gt;
  
  
  Attributes and Methods
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Attributes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Attributes define the state of an object. They store data associated with the object.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Methods&lt;/strong&gt;&lt;br&gt;
Methods define the behavior of an object. They are functions attached to a class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Car:
    wheels = 4  # Class attribute

    def __init__(self, make, model, year=None):
        self.make = make  # Instance attribute
        self.model = model
        self.year = year

    def get_make_model(self):  # Instance method
        return f"{self.make} {self.model}"

car1 = Car("Toyota", "Camry", 2021)
print(car1.get_make_model())  # Output: Toyota Camry
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Inheritance in Python
&lt;/h2&gt;

&lt;p&gt;Inheritance allows a class (child) to inherit attributes and methods from another class (parent). This promotes code reuse and hierarchy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print("This animal speaks.")

class Dog(Animal):
    def speak(self):
        print("Woof!")

dog = Dog("Pelle")
dog.speak()  # Output: Woof!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Polymorphism, Encapsulation, and Abstraction
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Polymorphism
&lt;/h2&gt;

&lt;p&gt;Polymorphism allows objects of different classes to be treated as objects of a common superclass. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def make_animal_speak(animal):
    animal.speak()

dog = Dog("Fido")
cat = Cat("Whiskers")

make_animal_speak(dog)  # Output: Woof!
make_animal_speak(cat)  # Output: Meow!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Encapsulation
&lt;/h2&gt;

&lt;p&gt;Encapsulation hides the internal state of an object and restricts direct access. Use private attributes (__) to enforce this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class BankAccount:
    def __init__(self, account_number, balance):
        self.__account_number = account_number
        self.__balance = balance

    def deposit(self, amount):
        self.__balance += amount

    def get_balance(self):
        return self.__balance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Abstraction
&lt;/h2&gt;

&lt;p&gt;Abstraction focuses on hiding non-essential details and exposing only the necessary features. Use abstract classes to define interfaces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from abc import ABC, abstractmethod

class Shape(ABC):
    @abstractmethod
    def area(self):
        pass

class Rectangle(Shape):
    def __init__(self, length, width):
        self.length = length
        self.width = width

    def area(self):
        return self.length * self.width
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Functional Programming in Python
&lt;/h2&gt;

&lt;p&gt;Python also supports functional programming (FP), which emphasizes immutability and pure functions. Key concepts include:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pure Functions&lt;/strong&gt;: No side effects, deterministic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Higher-order functions&lt;/strong&gt;: Functions that take other functions as arguments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Immutability&lt;/strong&gt;: Data cannot be changed after creation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Higher-order functions
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))  # Output: [1, 4, 9, 16, 25]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;OOP and FP are powerful paradigms that can be used together to write clean, modular, and maintainable code in Python. By understanding classes, objects, inheritance, polymorphism, encapsulation, and abstraction, you can build robust applications. Additionally, functional programming concepts like immutability and higher-order functions can complement OOP to make your code even more expressive.&lt;/p&gt;

&lt;p&gt;Whether you’re building a small script or a large-scale application, mastering these concepts will help you write better Python code. &lt;/p&gt;

</description>
      <category>oop</category>
      <category>classes</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Are Web APIs the same as REST APIs? How to Improve your Web Apps with Web APIs</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Tue, 14 Jan 2025 08:36:11 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/are-web-apis-the-same-as-rest-apis-how-web-apis-improve-the-web-57jm</link>
      <guid>https://dev.to/michellebuchiokonicha/are-web-apis-the-same-as-rest-apis-how-web-apis-improve-the-web-57jm</guid>
      <description>&lt;p&gt;To answer the question simply: &lt;strong&gt;No&lt;/strong&gt;, Web APIs are not the same as REST APIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web APIs&lt;/strong&gt; refer to interfaces that allow applications to interact with the web or devices. This term is broad and can refer to Browser APIs (like WebRTC or Geolocation) or Server APIs (like REST or GraphQL).&lt;/p&gt;

&lt;p&gt;On the other hand, &lt;strong&gt;REST APIs&lt;/strong&gt; are a specific type of Server API that adhere to REST principles, focusing on statelessness, resource-based communication, and using HTTP methods like GET, POST, and DELETE.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Evolution of the Web
&lt;/h2&gt;

&lt;p&gt;Originally, the web was designed as a static site for providing information and connecting individuals to relevant resources, regardless of location. However, it has evolved to become interactive and progressive, with certain aspects also turning decentralized.&lt;br&gt;
This article focuses on the web being progressive and more user-friendly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhuv0g6zma3hcbcays5oc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhuv0g6zma3hcbcays5oc.png" alt="Image description" width="800" height="652"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of Web APIs in Modern Development
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Web APIs&lt;/strong&gt; serve as the backbone of modern web development. With APIs like WebRTC, Web Bluetooth, and Service Workers, developers can create highly interactive, native-like web applications without requiring external plugins. These capabilities make &lt;strong&gt;Progressive Web&lt;/strong&gt; Apps (PWAs) possible, bridging the gap between web and native apps.&lt;br&gt;
Check out my extensive article on progressive web apps. &lt;br&gt;
&lt;a href="https://dev.to/michellebuchiokonicha/how-to-get-started-with-progressive-web-apps-3f44"&gt;https://dev.to/michellebuchiokonicha/how-to-get-started-with-progressive-web-apps-3f44&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some Benefits of Progressive Web Apps&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Works on any browser (cross-platform)&lt;/li&gt;
&lt;li&gt;Responsive to any device&lt;/li&gt;
&lt;li&gt;Functions without network connectivity&lt;/li&gt;
&lt;li&gt;Performs like a mobile app&lt;/li&gt;
&lt;li&gt;Highly secure&lt;/li&gt;
&lt;li&gt;Discoverable via search engines&lt;/li&gt;
&lt;li&gt;Boosts app engagement&lt;/li&gt;
&lt;li&gt;No installation required&lt;/li&gt;
&lt;li&gt;Can be shared through a link&lt;/li&gt;
&lt;li&gt;Optionally available on app stores (e.g., Google Play, Apple Store)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Web APIs and Project Fugu
&lt;/h2&gt;

&lt;p&gt;Web APIs here, referring to browser APIs, act as connectors, improvers, and builders for the browser's capabilities. These APIs are inherent to the web and are not third-party APIs purchased from libraries or sites. Instead, they are broadly available and designed to improve the web and enhance products created by developers, reducing boilerplate code and simplifying web interactions.&lt;br&gt;
The significance of web APIs is underscored by the fact that over 70% of activities conducted online occur through the web, highlighting the need for improvements and scalability.&lt;/p&gt;

&lt;p&gt;In summary, web APIs are crucial for the success of Progressive Web Apps and the future of web development. They act as enablers of advanced functionalities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Fugu
&lt;/h2&gt;

&lt;p&gt;Project Fugu derives its name from the Japanese word for &lt;strong&gt;pufferfish,&lt;/strong&gt; "fugu." &lt;br&gt;
Initially, I was curious about why this project was named after a fish until I learned more about it. The fugu is a dangerous fish that can be delicious when prepared correctly; however, if not handled properly, it can be harmful. This metaphor aptly reflects the project's goal of enhancing the web platform's capabilities to match those of native applications.&lt;br&gt;
The correlation here is that the Project Fugu APIs aim to enrich the web (the ‘delicious’ aspect), and if they are not built correctly (the ‘preparation’), they can introduce significant security vulnerabilities. Imagine creating an API accessible to billions without adequate security measures; it would expose individuals to various security risks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3v01mjl4clolpmdg4i72.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3v01mjl4clolpmdg4i72.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can find more about Project Fugu and its APIs at &lt;a href="https://developer.chrome.com/docs/capabilities/fugu-showcase" rel="noopener noreferrer"&gt;https://developer.chrome.com/docs/capabilities/fugu-showcase&lt;/a&gt;. Here, you will discover interesting and exciting projects built with web APIs, as well as a comprehensive list of available APIs. Many native app features that were previously unavailable on the web are now accessible, thanks to web APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Web APIs?
&lt;/h2&gt;

&lt;p&gt;Web APIs are crucial for several reasons, and their importance should not be overlooked. They empower the browser, transforming the web from a simple content viewer into a powerful application platform. With APIs like WebRTC, WebSockets, Service Workers, Web Bluetooth, and Web XR, you can now accomplish tasks on the web that were once limited to native applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Should You Start Using Web APIs?
&lt;/h2&gt;

&lt;p&gt;Web APIs offer numerous benefits, including:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Access to Native Device Features:&lt;/strong&gt; They allow you to access device hardware such as cameras, microphones, sensors, and Bluetooth devices. This means you can make video calls, control robots, and experience augmented reality directly in your browser, without needing to download any apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Offline and Background Functionality:&lt;/strong&gt; Service Workers enable features like push notifications and caching, enhancing the user experience even when offline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simplified App Development for Cross-Platforms:&lt;/strong&gt; Web APIs facilitate easier development across different platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Web APIs Improve the Web&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Web APIs bring the capabilities of native apps to the web, granting access to powerful features without requiring installations or downloads. They also help future-proof the web; as browsers evolve, more APIs will be developed for seamless integration. Additionally, web APIs are accessible across platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it Easy to Get Started with Web APIs?
&lt;/h2&gt;

&lt;p&gt;Yes, it is straightforward. Most web APIs are already integrated into browsers, and supported by robust documentation. Since many are native to the browser, there's no need for third-party libraries or installations. This makes getting started seamless, consistent, and accessible across platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some Web APIs
&lt;/h2&gt;

&lt;p&gt;Web APIs are the cornerstone of the Progressive Web App (PWA) revolution. They form the backbone of improved web functionality and represent the future of web development. Numerous Web APIs are available, and you can find a comprehensive list in the MDN documentation or on web.dev. Below are about 10 Web APIs to help you understand how they work. You can find many more in the MDN docs,web.dev, or via the project fugu documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebRTC API&lt;/strong&gt;: Enables real-time audio, video, and data communication directly between browsers without the need for external plugins. It is commonly used for video conferencing and peer-to-peer file sharing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1g56swgaakxmionqg625.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1g56swgaakxmionqg625.png" alt="Image description" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Bluetooth API&lt;/strong&gt;: Allows websites to communicate with Bluetooth-enabled devices, such as fitness trackers, medical devices, and IoT gadgets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebXR API&lt;/strong&gt;: Provides support for immersive technologies like Virtual Reality (VR) and Augmented Reality (AR), allowing developers to create engaging 3D experiences directly in the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebSocket API&lt;/strong&gt;: Facilitates full-duplex communication between the client and server, making it ideal for real-time applications like chat systems, live streaming, and collaborative editing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Push Notification API&lt;/strong&gt;: Enables websites to send timely and relevant notifications to users even when the website is not open in the browser, enhancing user engagement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Share API&lt;/strong&gt;: Provides a standardized way for web apps to share content using native sharing mechanisms, making it easier to share links, files, or text with other applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fetch API&lt;/strong&gt;: Replaces the older XMLHttpRequest and simplifies asynchronous data fetching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Payment API&lt;/strong&gt;: Simplifies the online payment process by offering a consistent interface for users to make payments using various methods, such as credit cards or digital wallets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geolocation API&lt;/strong&gt;: Provides access to the geographical location of the user, enabling location-aware functionality like maps, location-based recommendations, or geofencing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File System Access API&lt;/strong&gt;: Enables web applications to read from and write to the user’s local file system, creating a native-like experience for file manipulation.&lt;/p&gt;

&lt;h2&gt;
  
  
  WebRTC Demo
&lt;/h2&gt;

&lt;p&gt;WebRTC enables real-time communication, including audio, video, and data-sharing capabilities. For a simple WebRTC demo, you will need:&lt;/p&gt;

&lt;p&gt;index.html&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcznslh245qaglxxpp0lu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcznslh245qaglxxpp0lu.png" alt="Image description" width="800" height="445"&gt;&lt;/a&gt;&lt;br&gt;
app.js&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpf9k0or5aqfa0d717s3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpf9k0or5aqfa0d717s3m.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;br&gt;
server.js&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0v8uvpe0sneny0knpc3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0v8uvpe0sneny0knpc3w.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
WebSocket or HTTP REST API&lt;br&gt;
Inbuilt WebRTC API&lt;br&gt;
Local and remote video elements&lt;br&gt;
Buttons to manage peer connections&lt;br&gt;
WebRTC configurations&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Access User's Camera and Microphone&lt;/strong&gt;: Create a function to access the user's camera and microphone, displaying the local stream on the local video element.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Peer Connection&lt;/strong&gt;: Implement a function to handle media exchange.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signaling&lt;/strong&gt;: Simulate sending and receiving data through the signaling server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remote Stream Handling&lt;/strong&gt;: Display the remote track in the remote video element.&lt;br&gt;
&lt;strong&gt;ICE Candidates&lt;/strong&gt;: Exchange these candidates with peers to establish a connection.&lt;/p&gt;

&lt;p&gt;Web APIs are the cornerstone of modern web development, enabling developers to build powerful, scalable, and engaging applications. Whether you're exploring &lt;strong&gt;WebRTC&lt;/strong&gt; for real-time communication or leveraging the File System Access API for native-like experiences, the possibilities are vast. Start experimenting today and contribute to the web's progression.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>web</category>
      <category>programming</category>
      <category>webapi</category>
    </item>
    <item>
      <title>How to Automate Excel Files from APIs with Python and Openpyxl.</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Fri, 16 Aug 2024 06:30:41 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/how-to-automatecreate-update-excel-files-from-apis-with-python-and-openpyxl-2148</link>
      <guid>https://dev.to/michellebuchiokonicha/how-to-automatecreate-update-excel-files-from-apis-with-python-and-openpyxl-2148</guid>
      <description>&lt;p&gt;Automation in programming is the use of programming languages like Python, VBA, and other technology tools to create programs, scripts, or various tools that perform automatic tasks with no manual intervention.&lt;br&gt;
The sole purpose of automating tasks is to avoid manual input and to ensure various systems run by themselves.&lt;/p&gt;

&lt;p&gt;For this article, I will provide a step-by-step guide on how I automated an Excel file, and different sheets on a MacBook, without visual basic for applications, using Python in this case.&lt;/p&gt;

&lt;p&gt;First of all, to get started, you don't need to be a Python dev as I will paste a code snippet here.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tools Required
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;VScode of course&lt;/li&gt;
&lt;li&gt;Python installed/updated&lt;/li&gt;
&lt;li&gt;A virtual environment to run any new installation or updates for your Python code.&lt;/li&gt;
&lt;li&gt;The virtual environment is the .venv. You will see it in your vscode.&lt;/li&gt;
&lt;li&gt;Install openpyxyl&lt;/li&gt;
&lt;li&gt;Install any other necessary dependency.&lt;/li&gt;
&lt;li&gt;Get started.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Different Aspects we will be considering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a new Excel file with python&lt;/li&gt;
&lt;li&gt;Updating an existing Excel file with python
Updating a specific Excel file sheet only with Python&lt;/li&gt;
&lt;li&gt;Using APIs to update Excel files and Excel file sheets.&lt;/li&gt;
&lt;li&gt;Creating a button that allows users to update on click.&lt;/li&gt;
&lt;li&gt;Adding dynamic dates and time in your code&lt;/li&gt;
&lt;li&gt;An alternative to the Excel button is cron or Windows shell&lt;/li&gt;
&lt;li&gt;Instead of VBA, what else is possible?&lt;/li&gt;
&lt;li&gt;Issues faced with writing VBA in a MacBook&lt;/li&gt;
&lt;li&gt;Issues I faced while creating the button&lt;/li&gt;
&lt;li&gt;Why I opted for cron&lt;/li&gt;
&lt;li&gt;Creating this for both Windows and Mac users&lt;/li&gt;
&lt;li&gt;Other tools that can be used for the automation of Excel&lt;/li&gt;
&lt;li&gt;Power query from web feature&lt;/li&gt;
&lt;li&gt;Power automate&lt;/li&gt;
&lt;li&gt;Visual Basic in Excel&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Creating a new Excel file with python
&lt;/h2&gt;

&lt;p&gt;Creating an Excel sheet in Python with openpyxl is easy.&lt;br&gt;
All you need to do is install openpyxl, pandas, and requests if you are getting data from an API.&lt;br&gt;
Go to the openpyxl documentation to learn how to import it into your application and the packages you want to use.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas
import requests
from openpyxl import Workbook, load_workbook
from openpyxl.utils import get_column_letter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next up,&lt;br&gt;
you create a new workbook&lt;br&gt;
Set it as the active workbook&lt;br&gt;
Add your title and header and populate the data&lt;br&gt;
Save the new workbook with your preferred Excel name and tada! &lt;br&gt;
you have created your first Excel file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# create a new workbook
wb = Workbook()
ws = wb.active
ws.title = "Data"

ws.append(['Tim', 'Is', 'Great', '!'])
ws.append(['Sam', 'Is', 'Great', '!'])
ws.append(['John', 'Is', 'Great', '!'])
ws.append(['Mimi', 'Is', 'Great', '!'])
wb.save('mimi.xlsx')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Creating a new sheet in an Excel file.
&lt;/h2&gt;

&lt;p&gt;Creating a specific sheet in your Excel file is a similar process. however, you need to specify the sheet to be created with a sheetname.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# create sheet
wb.create_sheet('Test')
print(wb.sheetnames)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Modifying an Excel sheet.
&lt;/h2&gt;

&lt;p&gt;To modify an Excel sheet and not the full file, &lt;/p&gt;

&lt;p&gt;Load the workbook you want to modify&lt;br&gt;
They specify the particular sheet to modify using its name or index. It is safer to use the index in case the name eventually changes.&lt;br&gt;
In the code snippet below, I used the Sheet label&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# wb = load_workbook('mimi.xlsx')

# modify sheet
ws = wb.active
ws['A1'].value = "Test"
print(ws['A1'].value)
wb.save('mimi.xlsx')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Accessing multiple cells
&lt;/h2&gt;

&lt;p&gt;To access multiple cells, &lt;br&gt;
Load the workbook&lt;br&gt;
Make it the active workbook&lt;br&gt;
loop through its rows and columns&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Accessing multiple cells
 wb = load_workbook('mimi.xlsx')
 ws = wb.active

 for row in range(1, 11):
     for col in range(1, 5):
         char = get_column_letter(col)
         ws[char + str(row)] = char + str(row)
         print(ws[char + str(row)].value)

 wb.save('mimi.xlsx')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Merging Excel cells
&lt;/h2&gt;

&lt;p&gt;To merge different cells in Excel using Python,&lt;br&gt;
Load the workbook&lt;br&gt;
Indicate the active workbook&lt;br&gt;
indicate the cells you want to merge&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Merging excel cells
wb = load_workbook('mimi.xlsx')
ws = wb.active

ws.merge_cells("A1:D2")
wb.save("mimi.xlsx")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Unmerging cells
&lt;/h2&gt;

&lt;p&gt;To unmerge different cells in Excel using python,&lt;br&gt;
Load the workbook&lt;br&gt;
Indicate the active workbook&lt;br&gt;
indicate the cells you want to unmerge&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# merging excel cells
wb = load_workbook('mimi.xlsx')
ws = wb.active

ws.unmerge_cells("A1:D1")
wb.save("mimi.xlsx")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Inserting new excel cells
&lt;/h2&gt;

&lt;p&gt;To insert new cells&lt;/p&gt;

&lt;p&gt;Load the workbook&lt;br&gt;
Indicate the active workbook&lt;br&gt;
use the insert_rows and insert_columns to insert new rows or new columns based on preference.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# inserting cells
wb = load_workbook('mimi.xlsx')
ws = wb. is active

ws.insert_rows(7)
ws.insert_rows(7)

ws.move_range("C1:D11", rows=2, cols=2)
wb.save("mimi.xlsx")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Updating an existing Excel file with internal Data&lt;br&gt;
Add your arrays and objects and take in the information needed&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from openpyxl import Workbook, load_workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font

data = {
    "Pam" : {
        "math":65,
        "science": 78,
        "english": 98,
        "gym": 89
    },
    "Mimi" : {
        "math":55,
        "science": 72,
        "english": 88,
        "gym": 77
    },
    "Sid" : {
        "math":100,
        "science": 66,
        "english": 93,
        "gym": 74
    },
    "Love" : {
        "math":77,
        "science": 83,
        "english": 59,
        "gym": 91
    },
}

wb = Workbook()
ws = wb.active
ws.title = "Mock"
headings = ['Name'] + list(data['Joe'].keys())
ws.append(headings)

for a person in data:
    grades = list(data[person].values())
    ws.append([person] + grades)

for col in range(2, len(data['Pam']) + 2):
    char = get_column_letter(col)
    ws[char + '7'] = f"=SUM({char + '2'}:{char + '6'})/{len(data)}"

for col in range(1, 6):
    ws[get_column_letter(col) + '1'].font = Font(bold=True, color="0099CCFF")


wb.save("NewMock.xlsx")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Updating an existing Excel file with Python and APIs&lt;/p&gt;

&lt;p&gt;To update an Excel file using Python and APIs, you need to call the APIs into your file using a Get request. &lt;br&gt;
Set the active Excel file as described above and then you run your script.&lt;br&gt;
Here is an example of this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from openpyxl import Workbook, load_workbook
import requests
from datetime import datetime, timedelta

import schedule
import time

api_url = "https://yourapi"
excel_file = "yourfilename.xlsx"

def fetch_energy_data(offset=0):
    response = requests.get(api_url + f"&amp;amp;offset={offset}")
    data = response.json()

    if response.status_code == 200:
        data = response.json()
        return data["results"], data["total_count"] 
    else:
        print(f"Error fetching data: {response.status_code}")
        return [], 0

def update_excel_data(data):
    try:
        wb = load_workbook(excel_file)
        ws = wb.worksheets[0]  

        for row in range(5, ws.max_row + 1):  
            for col in range(1, 9):  
                ws.cell(row=row, column=col).value = None  

                now = datetime.now()
                current_year = now.year
                current_month = now.month

        start_date = datetime(current_year,current_month, 1) 
        end_date = datetime(current_year, current_month, 24) 

        filtered_data = [
            result
            for result in data
            if start_date &amp;lt;= datetime.fromisoformat(result["datetime"]).replace(tzinfo=None) &amp;lt;= end_date]


        for i, result in enumerate(filtered_data):  
            row = i + 5  
            ws[f"A{row}"] = result["datetime"]
            ws[f"B{row}"] = result["yourinfo"]
            ws[f"C{row}"] = result["yourinfo"]
            ws[f"D{row}"] = result["yourinfo"]
            ws[f"E{row}"] = result["yourinfo"]
            ws[f"F{row}"] = result["yourinfo"]  
            ws[f"G{row}"] = result["yourinfo"]
            ws[f"H{row}"] = result["yourinfo"]

        for row in range(5, ws.max_row + 1):
            ws[f"I{row}"] = ws[f"I{row}"].value  
            ws[f"J{row}"] = ws[f"J{row}"].value  
            ws[f"K{row}"] = ws[f"K{row}"].value  
            ws[f"L{row}"] = ws[f"L{row}"].value  

        wb.save(excel_file)
        print(f"Excel file updated: {excel_file}")
    except FileNotFoundError:
        print(f"Excel file not found: {excel_file}")
    except KeyError:
        print(f"Sheet 'Forecast PV' not found in the Excel file.")
    schedule.every().hour.do(update_excel_data)

    while True:
             schedule.run_pending()

if __name__ == "__main__":
    all_data = []
    offset = 0
    total_count = 0
    while True:
        data, total_count = fetch_energy_data(offset)  
        if not data:
            break
        all_data.extend(data)
        offset += 100  
        if offset &amp;gt;= total_count:  
            break


    update_excel_data(all_data)


To update a particular sheet, use the method mentioned above. best practices are done with the excel sheets index number from 0 till n-1.
as sheet names can change but sheet positions can not change.

 wb = load_workbook(excel_file)
        ws = wb.worksheets[0]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Creating a button that allows users to update on click.
To achieve a button to automatically run your Python script, you need to create a button in your Excel file and write a program using the inbuilt programming language, Visual Basic for applications.
Next, you write a program similar to this. An example of a VBA script is below.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sub RunPythonScript()
    Dim shell As Object
    Dim pythonExe As String
    Dim scriptPath As String
    Dim command As String

     Path to your Python executable
    pythonExe = "C:\Path\To\Python\python.exe"

     Path to your Python script
    scriptPath = "C:\Path\To\Your\Script\script.py"

     Command to run the Python script
    command = pythonExe &amp;amp; " " &amp;amp; scriptPath

     Create a Shell object and run the command
    Set shell = CreateObject("WScript.Shell")
    shell.Run command, 1, True

     Clean up
    Set shell = Nothing
End Sub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the issue with this is some functions do not run in non-windows applications seeing that Excel and VBA are built and managed by Microsoft, there are inbuilt Windows functions for this that can only work on Windows.&lt;/p&gt;

&lt;p&gt;However, if you are not writing a very complicated program, it will run properly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding dynamic dates and time in your code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To achieve dynamic dates and times, you can use the date.now function built into Python.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;now = datetime.now()
 current_year = now.year
current_month = now.month
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;An alternative to the Excel button is cron or Windows shell&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For MacBook users, an alternative to the VBA and button feature, you can use a corn for MacBook and a Windows shell for Windows. to automate your task.&lt;/p&gt;

&lt;p&gt;You can also make use of Google Clouds's scheduler. that allows you to automate tasks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instead of VBA, what else is possible?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of VBA, direct Python codes can suffice. you can also use the script and run it as required.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Issues faced while writing VBA in a MacBook&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The major issue lies in the fact that VBA is a Windows language and hence, has limited functions in a non-windows device.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Issues I faced while creating the button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The same issues are related to the VBA code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Why I opted for cron&lt;br&gt;
I opted for corn because it is available and easy to use to achieve the goals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Other tools that can be used for the automation of Excel&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other tools include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Power query from web feature&lt;/li&gt;
&lt;li&gt;Power automate&lt;/li&gt;
&lt;li&gt;Visual Basic in Excel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow me on Twitter Handle: &lt;a href="https://twitter.com/mchelleOkonicha" rel="noopener noreferrer"&gt;https://twitter.com/mchelleOkonicha&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow me on LinkedIn Handle: &lt;a href="https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/&lt;/a&gt;&lt;br&gt;
Follow me on Instagram: &lt;a href="https://www.instagram.com/michelle_okonicha/" rel="noopener noreferrer"&gt;https://www.instagram.com/michelle_okonicha/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>softwaredevelopment</category>
      <category>automation</category>
      <category>excel</category>
    </item>
    <item>
      <title>Tips for Fixing Bugs and Resolving Code Issues.</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Tue, 30 Jul 2024 01:53:52 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/tips-for-fixing-bugs-and-resolving-code-issues-2kcc</link>
      <guid>https://dev.to/michellebuchiokonicha/tips-for-fixing-bugs-and-resolving-code-issues-2kcc</guid>
      <description>&lt;p&gt;Hey there!&lt;/p&gt;

&lt;p&gt;These tips I have listed have worked for me and helped me resolve issues in my code. I also learn a lot while on it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Understand the issue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write down the issue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go through the code given twice or more times.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Understand the code and its logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Analyze the issue based on the current code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Device two or more ways to fix it on paper.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write pseudocode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement pseudocode in your file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use Debugging tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use Browser tools for developers like inspect, developer tools, console, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Include error handling at every point&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If still difficult, discuss this problem with another developer &lt;br&gt;
regardless of the language used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sleep on the issue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Think about the issue deeply.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go back and fix the issue.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sidenotes:
&lt;/h2&gt;

&lt;p&gt;Research as much as you can. Someone might have fixed this issue previously. So search the internet to help you work seamlessly.&lt;/p&gt;

</description>
      <category>debugg</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
      <category>testing</category>
    </item>
    <item>
      <title>How to Improve Your Development Workflow with Gemini Code Assist</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Sat, 20 Jul 2024 08:27:05 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/how-to-improve-your-development-workflow-with-gemini-code-assist-10lm</link>
      <guid>https://dev.to/michellebuchiokonicha/how-to-improve-your-development-workflow-with-gemini-code-assist-10lm</guid>
      <description>&lt;p&gt;Have you ever dreamt of building and deploying applications three times faster? Look no further than Gemini Code Assist, an AI assistant from Google that empowers developers and cloud specialists throughout the development lifecycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Gemini Code Assist?
&lt;/h2&gt;

&lt;p&gt;Gemini Code Assist is an AI-powered tool that streamlines the development process for software developers and cloud engineers. It integrates seamlessly with the Google Cloud platform and popular IDEs like Visual Studio Code.&lt;/p&gt;

&lt;p&gt;Gemini Code Assist boasts a variety of features to enhance your coding experience, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Code Completion: It Generates code snippets and functions tailored &lt;br&gt;
to your specific needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code Explanation: You can Gain a deeper understanding of existing &lt;br&gt;
code with clear explanations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code Refactoring: It Improves code readability, maintainability, &lt;br&gt;
and performance with suggested optimizations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test Case Generation: It Automatically creates unit tests to &lt;br&gt;
ensure code quality.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get Started with Gemini Code Assist
&lt;/h2&gt;

&lt;p&gt;A codelab session is available to guide you through the intricacies of using Gemini Code Assist. Here's a glimpse into what you can achieve:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codelabs.developers.google.com/codelabs/cloud-code-assist-sdlc#0" rel="noopener noreferrer"&gt;https://codelabs.developers.google.com/codelabs/cloud-code-assist-sdlc#0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa21s6pi0k5x54mb1z9d4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa21s6pi0k5x54mb1z9d4.png" alt="Image description" width="800" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; API Design: Describe your application's requirements, and Gemini - 
Code Assist will generate an appropriate architecture, complete 
with API routes, ports, and data types. You can even test the 
generated API to verify its functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbdxqeipp8opfxl4frzga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbdxqeipp8opfxl4frzga.png" alt="Image description" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Full-Stack Development: Craft full-fledged applications in any 
programming language using natural language prompts. Gemini Code 
Assist can replace existing code, create new files, and cite 
sources for the generated code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyh6vgp0j2vj643mrhkeq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyh6vgp0j2vj643mrhkeq.png" alt="Image description" width="800" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Automated Testing: Generate unit tests tailored to your specific 
needs and leverage Gemini Code Assist to help refactor code for 
passing tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ruwsw73o90f8qaktlf7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ruwsw73o90f8qaktlf7.png" alt="Image description" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Streamlined Deployment: Gemini Code Assist integrates with Google 
Cloud Platform for effortless application deployment, eliminating 
the need for manual configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpbqwnodewbiu1pymafm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpbqwnodewbiu1pymafm.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Using Gemini Code Assist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Increased Development Speed: Build applications significantly &lt;br&gt;
faster with code generation and completion features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved Code Quality: Write cleaner, more maintainable code with &lt;br&gt;
refactoring suggestions and automated testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduced Costs: Save time and resources by streamlining &lt;br&gt;
development tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced Developer Productivity: Focus on core development &lt;br&gt;
activities while Gemini Code Assist handles repetitive tasks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Using Gemini Code Assist
&lt;/h2&gt;

&lt;p&gt;There are two primary ways to leverage Gemini Code Assist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Google Cloud Platform: Access Gemini Code Assist directly within &lt;br&gt;
the Google Cloud console for a seamless cloud-based development &lt;br&gt;
experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Local IDE Integration: Install the Gemini Code Assist extension &lt;br&gt;
for your IDE (like Visual Studio Code) to enjoy its features &lt;br&gt;
within your familiar development environment.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Unique Features of Gemini Code Assist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Replace feature: Allows you to replace your existing code without copying and pasting&lt;/li&gt;
&lt;li&gt;The update feature allows you to update and rewrite existing code&lt;/li&gt;
&lt;li&gt;The citation feature: it cites code sources for further use and also allows the developer to know more about the code.&lt;/li&gt;
&lt;li&gt;Explain feature: Explains highlighted code. You need to highlight it and it explains that aspect of code.&lt;/li&gt;
&lt;li&gt;Specific use case: It creates specific use cases unique to the written code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How To Use Gemin Code Assist In your IDE like VSCode
&lt;/h2&gt;

&lt;p&gt;It is very easy and straightforward.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Go to your Visual Studio or the IDE you use&lt;/li&gt;
&lt;li&gt; Go to Extensions&lt;/li&gt;
&lt;li&gt; Search for Gemini Code Assist + Google Cloud Code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwg6vshvoz2n6uvysnuv1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwg6vshvoz2n6uvysnuv1.png" alt="Image description" width="800" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Install and enable it&lt;/li&gt;
&lt;li&gt; Click on the icon by the side&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7j6nrkuz3an5arhqtqg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7j6nrkuz3an5arhqtqg7.png" alt="Image description" width="428" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Log in or Sign up with your Chrome browser. If Chrome is not your 
default browser, copy it and paste it into your Chrome browser.&lt;/li&gt;
&lt;li&gt; After which you can get started.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All the features and capabilities Listed above are fully applicable here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftklywg73gdao0qp00aqc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftklywg73gdao0qp00aqc.png" alt="Image description" width="675" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Gemini Code Assist is a powerful and versatile tool that empowers developers and cloud specialists of all levels. It simplifies coding tasks, improves code quality, and accelerates the development process, allowing you to focus on creating innovative applications.&lt;/p&gt;

&lt;p&gt;Follow me on Twitter Handle: &lt;a href="https://twitter.com/mchelleOkonicha" rel="noopener noreferrer"&gt;https://twitter.com/mchelleOkonicha&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow me on LinkedIn Handle: &lt;a href="https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/&lt;/a&gt;&lt;br&gt;
Follow me on Instagram: &lt;a href="https://www.instagram.com/michelle_okonicha/" rel="noopener noreferrer"&gt;https://www.instagram.com/michelle_okonicha/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>google</category>
      <category>githubcopilot</category>
      <category>softwaredevelopment</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Data Science and the Cloud</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Tue, 18 Jun 2024 16:15:47 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/data-science-in-the-cloud-1hg5</link>
      <guid>https://dev.to/michellebuchiokonicha/data-science-in-the-cloud-1hg5</guid>
      <description>&lt;p&gt;There are many good reasons to move data science projects to the cloud as there are many advantages like highly clustered processes on many machines giving us enormous computing power. &lt;/p&gt;

&lt;p&gt;Also, data science is nothing without data. In a distributed cloud system, our data can be stored and processed reliably even if they are enormous datasets that are also changing constantly. Drawbacks include:&lt;br&gt;
Data science projects in the cloud tend to be more complex especially collaborating in large teams and using many services and technologies. We can however choose from a whole range of services supporting our calms in the cloud ranging from complete managed services to services giving us full control and flexibility of the environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Provider-Independent services and tools
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;MLFlow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A framework you will find implemented in most data cloud services independent of the cloud provider. It consists of 4 components, supporting and streamlining our ML projects and helping us conduct them systematically and collaboratively.&lt;/p&gt;

&lt;p&gt;It lets us streamline our ML projects by systematically tracking experiment runs, and easy packaging using Anaconda and Docker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tracking:&lt;/strong&gt; This can be used during model training to lock and track model parameters, and KPIs like model performance metrics, experimental models, code version numbers, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Projects:&lt;/strong&gt; can be used to package ML model training and trigger it remotely with varying parameters. Once we are satisfied with the performance of a trained model, we can proceed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model:&lt;/strong&gt; register this model with ML flow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model registry:&lt;/strong&gt; can be used as a centralized repository to train models and we can use these repositories to deploy models to the production environment easily.&lt;/p&gt;

&lt;p&gt;An applied example of using an ML flow project to share our ML development easily and trigger runs with specific parameters over the network.&lt;br&gt;
For example, someone optimized a Python script to train a machine-learning model. The new model looks very promising but you have to fill in that tweaking a parameter might make the ML model perform even better.&lt;/p&gt;

&lt;p&gt;MLflow project can be used to do this without writing the code again.&lt;br&gt;
Eg, this is the GitHub rep you used.&lt;br&gt;
We have&lt;br&gt;
Data, conda environment, readme file, trained pyscript, license.&lt;br&gt;
The script imports models and defines evaluation metrics&lt;/p&gt;

&lt;h2&gt;
  
  
  Typical MLFLOW workflow:
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Start MLFlow Server
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Coduct and tract run:&lt;/strong&gt; meaning to train models and lock the parameters and modern metrics.&lt;/p&gt;

&lt;p&gt;Evaluate results using graphical user interphase or its SDK to query the best-performing models programmatically. Once satisfied with a model, we register it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Register model&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Model registry *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deploy models:&lt;/strong&gt; we deploy a model for inference to a productive system typically equipped with a restful API that we can use to obtain predictions from the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Databricks:&lt;/strong&gt; Processing massive amounts of data requires parallel computation on several cluster notes. Spark is a well-known and widely used solution for data processing and data-intensive projects. It is open source but the downside lies in its maintenance and operation overhead. It might not be that simple to set up a spark cluster and keep it running on custom machines. &lt;/p&gt;

&lt;p&gt;If we lack the resources to do this, we can use Databricks.&lt;br&gt;
Databricks is An overreaching technology that many cloud providers(CSP) can host; Databricks was founded in 2013 by some of the founders of Spark. &lt;br&gt;
It is therefore not surprising that the core services offered by DB are managed by spark clusters. &lt;/p&gt;

&lt;p&gt;It is active in open source and hosting the data and AI summit yearly. At its core, it offered managed spark clusters that can be hosted on Azure, AWS GCP, etc.&lt;/p&gt;

&lt;p&gt;Different billing models depend on the cloud platform of choice. But in general, databricks units are used. Depending on the machine, processes, and storage that is used, it is calculated in DBUs. we can also use the community edition at no cost. The managed spark clusters are at the core of Databricks but additional features are designed for data-intensive projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional features are:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lakehouses:&lt;/strong&gt; aims to describe unified data storage that comes with data bricks designed for structured and unstructured data so it can be considered a mixture of a data lake and a data warehouse. It uses files to store the data in a delta lake.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delta Lake:&lt;/strong&gt; the data storage used in Databricks. It is a distributed datastore but using an elaborate metadata mechanism, delta lake is ACID-compliant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delta Live Tables(DLT):&lt;/strong&gt; they automatically propagate underlined data updates and provide a GUI to design and manage DTL pipelines straightforwardly. We can also set up data quality checks in DLT that are automatically conducted regularly. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delta Engine:&lt;/strong&gt; A query optimizer that automatically and periodically optimizes data queries depending on the data access pattern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unity Catalog:&lt;/strong&gt; With Unity Catalog, databricks offers an easy-to-use tool for data governance. We can the graphical user interface of the unity catalog or SQL queries to perform data governance tasks for example, we can set role-based access control for a specific dataset.&lt;/p&gt;

&lt;p&gt;Structuring the data in Delta Lake by processing maturing, there are &lt;br&gt;
Bronze, silver, and Gold tables. &lt;br&gt;
Bronze tables: contains raw data as it was loaded from external sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Silver tables:&lt;/strong&gt; contain processed data including established joints.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gold tables:&lt;/strong&gt; contain completely pre-processed data ready for specific use cases like machine learning.&lt;/p&gt;

&lt;p&gt;We can use Python, R, SQL, and scala to develop the ML and data processing logic in scripts, and notebooks or use remote compute targets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analysis components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Databricks SQL:&lt;/strong&gt; similar to spark SQL to use the SQL language to query our data.&lt;/p&gt;

&lt;p&gt;Databricks data science and engineering environment: similar to ML leap in spark. It comes with a prepared environment for typical data science and data engineering use cases. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Databricks machine learning environment:&lt;/strong&gt; it uses MLflow to track versions and deploy machine learning models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming languages:&lt;/strong&gt; python, R, SQL, Scala similar to Spark.&lt;br&gt;
AutoML: to automatically perform feature selection, algorithm choice, and hyperparameter toning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Data Science and ML services
&lt;/h2&gt;

&lt;p&gt;Services give us maximum control and flexibility of the environment, leaving us with some responsibilities such as security patches and environment maintenance. Eg, we can use compute engines for our data science projects and Google’s cloud-based virtual machines.&lt;/p&gt;

&lt;p&gt;Using containerization instead of VM, we can develop our containerized application for eg model training or inference on a local machine then deploy that container to &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud compute engine:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes engine:&lt;/strong&gt; the cloud-based container orchestration service on GCP.&lt;br&gt;
&lt;strong&gt;Deep learning VM:&lt;/strong&gt; Specialised VM coming with GPU support and pre-installed libraries that are typically used in data science projects.&lt;/p&gt;

&lt;p&gt;All Cloud providers offer specialized ML services giving us more comfort and managing some tedious maintenance tasks for us but also taking a little bit of control and flexibility. &lt;/p&gt;

&lt;p&gt;On the Google platform, the specialized ML service is called cloud AI/ vertex AI being the main component. They include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dataflow&lt;/li&gt;
&lt;li&gt;Composer&lt;/li&gt;
&lt;li&gt;Dataproc&lt;/li&gt;
&lt;li&gt;Bigquery&lt;/li&gt;
&lt;li&gt;Google Cloud AI for ML training etc&lt;/li&gt;
&lt;li&gt;Google Cloud console&lt;/li&gt;
&lt;li&gt;Vertex AI workbench&lt;/li&gt;
&lt;li&gt;Vertex AI formerly datalab.&lt;/li&gt;
&lt;li&gt;Auto ML&lt;/li&gt;
&lt;li&gt;API endpoints&lt;/li&gt;
&lt;li&gt;Visual reporting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ready-to-use services on GCP:&lt;/strong&gt; they can be used by calling the standardized restful APIs to obtain model predictions by pretraining machine learning models hosted on GCP. eg we can use the speech-tech API to send the sound file to that service and receive the transcribed text.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Natural language AI&lt;/li&gt;
&lt;li&gt;Teachable machine&lt;/li&gt;
&lt;li&gt;Dialogflow&lt;/li&gt;
&lt;li&gt;Translations&lt;/li&gt;
&lt;li&gt;Speech-to-text&lt;/li&gt;
&lt;li&gt;Text-to-speech&lt;/li&gt;
&lt;li&gt;Timeseries insights API&lt;/li&gt;
&lt;li&gt;Vision AI&lt;/li&gt;
&lt;li&gt;Video AI&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data science and ML services on AWS
&lt;/h2&gt;

&lt;p&gt;Same as on GCP, there are services maximizing control and others suitable for more comfort and instant application. Example,&lt;br&gt;
Cloud-based VM called EC2.&lt;/p&gt;

&lt;p&gt;Deploying containers to elastic container service ECS/Elastic kubernetes service EKS&lt;br&gt;
And Elastic map reduce EMR&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specialized ML Service&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is called *&lt;em&gt;SageMaker: *&lt;/em&gt;&lt;br&gt;
Sagemaker is a service family of an entire collection of sub-services dedicated to supporting typical DS and ML projects. eg, there are graphical user interfaces, auxiliary services for data wrangling, data labeling, prepared scripts and templates, and also auto ML features.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notebook instances&lt;/li&gt;
&lt;li&gt;Data labeling&lt;/li&gt;
&lt;li&gt;Data wrangler&lt;/li&gt;
&lt;li&gt;Feature Store&lt;/li&gt;
&lt;li&gt;Clarify&lt;/li&gt;
&lt;li&gt;Pipelines&lt;/li&gt;
&lt;li&gt;Studio&lt;/li&gt;
&lt;li&gt;Jumpstart&lt;/li&gt;
&lt;li&gt;Canvas&lt;/li&gt;
&lt;li&gt;Autopilot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ready to use services on AWS:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Translate, transcribe, computer vision, and other services being pre-trained ML models that are callable for restful APIs for inference.&lt;br&gt;
The computer vision API here includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comprehend&lt;/li&gt;
&lt;li&gt;Rekognition&lt;/li&gt;
&lt;li&gt;Lookout for vision, panorama&lt;/li&gt;
&lt;li&gt;Textract&lt;/li&gt;
&lt;li&gt;A2I&lt;/li&gt;
&lt;li&gt;Personalize&lt;/li&gt;
&lt;li&gt;Translate, Transcribe&lt;/li&gt;
&lt;li&gt;Polly, Lex&lt;/li&gt;
&lt;li&gt;Forecast&lt;/li&gt;
&lt;li&gt;Fraud Detector&lt;/li&gt;
&lt;li&gt;Lookout for Metrics&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Kendra&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Auxillary services are DevOps Guru and Code Guru.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data science and ML services on Microsoft Azure.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VM:&lt;/strong&gt; For maximum control and flexibility, we can use Azure VMs to decide how to create and manage our development environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ACI/AKS:&lt;/strong&gt; we can use Azure container instance ACI for containerized model training for testing purposes then use Azure Kubernetes service AKS for production settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HDInsight:&lt;/strong&gt; A managed service for technology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Databricks:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synapse Analytics:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specialized ML service.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is called Azure Machine Learning. Similar to AWS sagemaker, Azure ML comprises several sub-services for example the GUI called designer and auxiliary services for data labeling and other features.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure machine learning&lt;/li&gt;
&lt;li&gt;Studio&lt;/li&gt;
&lt;li&gt;Workspace&lt;/li&gt;
&lt;li&gt;Notebooks/RStudio&lt;/li&gt;
&lt;li&gt;Data labelling&lt;/li&gt;
&lt;li&gt;Designer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ready-to-use services on Azure.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Giving us maximum comfort and usability of pre-trained models callable by restful APIs. These services are called cognitive services and they include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Computer vision, Face&lt;/li&gt;
&lt;li&gt;Azure cognitive service for language &lt;/li&gt;
&lt;li&gt;Language understanding models, &lt;/li&gt;
&lt;li&gt;Translators, and other services.&lt;/li&gt;
&lt;li&gt;QnA Maker, Translator&lt;/li&gt;
&lt;li&gt;Speech Service&lt;/li&gt;
&lt;li&gt;Anomaly Detector&lt;/li&gt;
&lt;li&gt;Content Moderator&lt;/li&gt;
&lt;li&gt;Personalizer&lt;/li&gt;
&lt;li&gt;Cognitive Services for Big Data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: This is a 4-fold series on cloud computing, virtualization, containerization, and data processing.&lt;br&gt;
Check the remaining 3 articles on my blog.&lt;/p&gt;

&lt;p&gt;This is the fourth. Here is the link to the third.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/michellebuchiokonicha/cloud-computing-platforms-4667"&gt;https://dev.to/michellebuchiokonicha/cloud-computing-platforms-4667&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;it focuses on cloud platforms.&lt;/p&gt;

&lt;p&gt;Follow me on Twitter Handle: &lt;a href="https://twitter.com/mchelleOkonicha" rel="noopener noreferrer"&gt;https://twitter.com/mchelleOkonicha&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow me on LinkedIn Handle: &lt;a href="https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/&lt;/a&gt;&lt;br&gt;
Follow me on Instagram: &lt;a href="https://www.instagram.com/michelle_okonicha/" rel="noopener noreferrer"&gt;https://www.instagram.com/michelle_okonicha/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>cloudcomputing</category>
      <category>ai</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Cloud Computing Platforms</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Mon, 17 Jun 2024 16:40:01 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/cloud-computing-platforms-4667</link>
      <guid>https://dev.to/michellebuchiokonicha/cloud-computing-platforms-4667</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;When moving to the cloud, we can use the services one of many CSPs offers. we can only choose the service optimal for our use case if we know what services are available. &lt;/p&gt;

&lt;p&gt;Interapobaility has become increasingly important in today's inter-connected world, it is common for organizations to use multi-cloud strategies integrating cloud services by several cloud providers or with existing on-premise infrastructure.&lt;/p&gt;

&lt;p&gt;Furthermore, to prevent vendor lock-in, we should be aware of the various offerings by competing cloud providers to stay flexible. There are many more reasons why we should learn what the different providers offer such as security and compliance, innovation and new services, ecosystem integration, performance optimization, scalability and flexibility, technical support, etc.&lt;br&gt;
Here we will discuss some of the most frequently used services offered by the big three cloud providers to enable us to choose what is best for our situation. This applies to everyone using the cloud including data scientists, cloud architects and consultants, cloud developers and engineers and so many more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Terminologies Defined
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cloud Platform:&lt;/strong&gt; An abstraction layer that can be used to provision resources and as a starting point for cloud development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud service provider:&lt;/strong&gt; A corporation running many data centers worldwide and offering services based on this service for rent.&lt;/p&gt;

&lt;p&gt;There are many CSPs but three of them, due to their considerable market share are the most popular.&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazon web services
&lt;/h2&gt;

&lt;p&gt;It started in 2006, is one of the oldest CSPs, and has the biggest market share. Compute services include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elastic compute cloud(EC2)&lt;/li&gt;
&lt;li&gt;Virtual Private Cloud (VPC)&lt;/li&gt;
&lt;li&gt;Simple Storage Service (S3)&lt;/li&gt;
&lt;li&gt;Relational Database Service(RDS)&lt;/li&gt;
&lt;li&gt;Lambda&lt;/li&gt;
&lt;li&gt;Kinesis&lt;/li&gt;
&lt;li&gt;Elastic Map Reduce EMR&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Others include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Route 53, &lt;/li&gt;
&lt;li&gt;Simple Notification Service(SQS), &lt;/li&gt;
&lt;li&gt;Elastic Load Balancer&lt;/li&gt;
&lt;li&gt;Network firewall.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data security and protection
&lt;/h2&gt;

&lt;p&gt;Considering some thoughts into which availability zone should be used to deploy a resource can contribute to data protection. Moreso, data being redundant in many zones can mitigate data loss and support data failover. &lt;/p&gt;

&lt;p&gt;On the other hand, limiting the &lt;br&gt;
geographical location to which data can be stored and processed can ensure that this falls under one jurisdiction or another.&lt;/p&gt;

&lt;p&gt;As far as monitoring control and encryption services are concerned, there are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CloudTrail, Macie, CLoudHSM, Key Management service(KMS), cloud Tower&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GuardDuty, Nitro system&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ISO compliance for cloud security, privacy information management, and cloud privacy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;VPC&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pricing and costs
&lt;/h2&gt;

&lt;p&gt;Most services are offered on a pay-as-you-go basis.&lt;/p&gt;

&lt;p&gt;There are 12 months when we can try services and some services are free.&lt;/p&gt;

&lt;h2&gt;
  
  
  Certifications
&lt;/h2&gt;

&lt;p&gt;They run certification programs to become associates and then professionals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Microsoft Azure
&lt;/h2&gt;

&lt;p&gt;It started as the Windows Azure platform in 2010 then became Microsoft Azure in 2014. The virtual machines in Azure are called virtual machines and its services include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Virtual machine&lt;/li&gt;
&lt;li&gt;Kubernetes services&lt;/li&gt;
&lt;li&gt;Container Instance&lt;/li&gt;
&lt;li&gt;Blob storage: Used for object storage&lt;/li&gt;
&lt;li&gt;Azure SQL: cloud version of Microsoft SQL Server, a relational database.&lt;/li&gt;
&lt;li&gt;Azure Functions: the serverless compute service here is called Azure Functions.&lt;/li&gt;
&lt;li&gt;DNS, notification hubs, load balancer, and firewall: &lt;/li&gt;
&lt;li&gt;Azure machine learning: provides abstraction for data connection&lt;/li&gt;
&lt;li&gt;Azure Databricks for big data processing&lt;/li&gt;
&lt;li&gt;HDInsight&lt;/li&gt;
&lt;li&gt;Data Factory&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data security and protection
&lt;/h2&gt;

&lt;p&gt;Azure has ways of ensuring security and protection. &lt;br&gt;
They include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access management in Azure Active Directory: &lt;/li&gt;
&lt;li&gt;Data Encryption at rest and in transit&lt;/li&gt;
&lt;li&gt;Virtual Private Network(VPN, VNet)&lt;/li&gt;
&lt;li&gt;Security center&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pricing and Costs
&lt;/h2&gt;

&lt;p&gt;Some services are free and it is for 12v months, pay as you go. You can also save costs by making long-term commitments and using either resource.&lt;/p&gt;

&lt;h2&gt;
  
  
  Certifications
&lt;/h2&gt;

&lt;p&gt;There are certifications to become experts from associates to professionals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Cloud Platform
&lt;/h2&gt;

&lt;p&gt;It started in 2011 with the cloud computing engine which is Google Virtual Machines.&lt;br&gt;
Its services include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud VPC: Virtual private cloud services&lt;/li&gt;
&lt;li&gt;App Engine&lt;/li&gt;
&lt;li&gt;Kubernetes Engine: containers as a service&lt;/li&gt;
&lt;li&gt;Compute engine&lt;/li&gt;
&lt;li&gt;BigQuery&lt;/li&gt;
&lt;li&gt;Dataflow&lt;/li&gt;
&lt;li&gt;Pub/Sub&lt;/li&gt;
&lt;li&gt;Cloud storage: This is Google object storage&lt;/li&gt;
&lt;li&gt;Cloud Spanner: A distributed relational database service providing transactional consistency&lt;/li&gt;
&lt;li&gt;Cloud Functions: Google serverless computing service &lt;/li&gt;
&lt;li&gt;Cloud DNS, Cloud Pub/Sub, cloud load balancing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data security and protection
&lt;/h2&gt;

&lt;p&gt;They use various ways to ensure security like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Encryption at rest and in transit&lt;/li&gt;
&lt;li&gt;ISO standards for cloud security, privacy, and regulatory compliance.&lt;/li&gt;
&lt;li&gt;VPC - virtual private cloud&lt;/li&gt;
&lt;li&gt;Security command center&lt;/li&gt;
&lt;li&gt;Identity and access management&lt;/li&gt;
&lt;li&gt;Firewalls&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pricing and costs
&lt;/h2&gt;

&lt;p&gt;Similar to the other providers, 12 months and pay as you go. There are also free tier offerings.&lt;/p&gt;

&lt;p&gt;The largest cloud players are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS&lt;/li&gt;
&lt;li&gt;Azure&lt;/li&gt;
&lt;li&gt;Google&lt;/li&gt;
&lt;li&gt;Alibaba Cloud&lt;/li&gt;
&lt;li&gt;IBM&lt;/li&gt;
&lt;li&gt;Salesforce&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gartner Magic Quadrant
&lt;/h2&gt;

&lt;p&gt;It divides the market into Challengers, Leaders, Niche Players, Visionaries&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leaders: AWS, Azure, Google&lt;/li&gt;
&lt;li&gt;Niche players: IBM&lt;/li&gt;
&lt;li&gt;Visionaries: Alibaba cloud&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Criteria to consider when choosing a suitable cloud provider
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Company strategy&lt;/li&gt;
&lt;li&gt;Regulatory Compliance&lt;/li&gt;
&lt;li&gt;Regional presence&lt;/li&gt;
&lt;li&gt;Technologies and service roadmap&lt;/li&gt;
&lt;li&gt;Performance and reliability&lt;/li&gt;
&lt;li&gt;Availability and SLA&lt;/li&gt;
&lt;li&gt;Billing models and costs&lt;/li&gt;
&lt;li&gt;Flexibility&lt;/li&gt;
&lt;li&gt;Support&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cloud reference architectures
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Azure architectures&lt;/li&gt;
&lt;li&gt;AWS reference architecture&lt;/li&gt;
&lt;li&gt;Google Cloud reference architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: This is a 4-fold series on cloud computing, virtualization, containerization, and data processing.&lt;br&gt;
Check the remaining 3 articles on my blog.&lt;/p&gt;

&lt;p&gt;This is the third. Here is the link to the second.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/michellebuchiokonicha/virtualization-containerization-with-docker-storage-and-network-services-2bjf/edit"&gt;https://dev.to/michellebuchiokonicha/virtualization-containerization-with-docker-storage-and-network-services-2bjf/edit&lt;/a&gt;&lt;br&gt;
it focuses on docker, containerization, virtualization, storage technologies, and network services.&lt;/p&gt;

&lt;p&gt;Follow me on Twitter Handle: &lt;a href="https://twitter.com/mchelleOkonicha" rel="noopener noreferrer"&gt;https://twitter.com/mchelleOkonicha&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow me on LinkedIn Handle: &lt;a href="https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/&lt;/a&gt;&lt;br&gt;
Follow me on Instagram: &lt;a href="https://www.instagram.com/michelle_okonicha/" rel="noopener noreferrer"&gt;https://www.instagram.com/michelle_okonicha/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>softwaredevelopment</category>
      <category>aws</category>
      <category>gcp</category>
    </item>
    <item>
      <title>Virtualization &amp; Containerization with Docker.</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Sat, 15 Jun 2024 01:23:16 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/virtualization-containerization-with-docker-storage-and-network-services-2bjf</link>
      <guid>https://dev.to/michellebuchiokonicha/virtualization-containerization-with-docker-storage-and-network-services-2bjf</guid>
      <description>&lt;p&gt;Everyone relies on data for work and decision-making. There are various cloud-enabling technologies but we will concentrate on. Virtualization is responsible for the abstraction, isolation, and hoarding of applications. There are different levels of virtualization and different approaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtualization and containerization:&lt;/strong&gt; Making applications easily portable to new environments eg in the cloud. This will allow us to easily spin up additional instances of the application eg when the load increases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage technologies:&lt;/strong&gt; Applications rely on some sort of data storage. AWS, GCP, and Azure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Networks and restful services:&lt;/strong&gt; They allow for abstraction, hiding inner complexities and easily connecting system components to a more extensive cloud system.&lt;/p&gt;

&lt;p&gt;After reading this article, you should be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Describe key features of virtualization and containerization technologies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Apply the key features of Docker.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explain the benefits of characteristics of different cloud storage technologies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explain how restful APIs work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How different technologies and services can be used to manage &lt;br&gt;
restful APIs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Virtualization and Containerization: Containerization with docker.
&lt;/h2&gt;

&lt;p&gt;Containerization is central to cloud computing because it allows us to wrap applications in self-contained capsules and thereby make them easily portable to the environment. &lt;br&gt;
In cloud computing, we do that all the time for example, we might develop an application on our local machine, but for better reliability and scalability, we then want to execute the application on a more extensive cluster of devices in the cloud. Also working with containerized applications, we can easily add additional machines to a cluster running that container and thereby scale horizontally when the cloud increases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Main components of containerization with docker.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;- Dockerfile:&lt;/strong&gt; A recipe containing the instructions to be executed when the container starts. Based on that docker file, we create. It describes how a containerized application is built in the form of a text file. Eg we specify the operating system which data is available within the container and which programs are to be executed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Docker Image:&lt;/strong&gt; a blueprint or design to create instances of this container. These images are usually registered and distributed in the registry. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Docker Image Registry:&lt;/strong&gt; We can then store that image in a centralized image registry. there are private and public registries. The best-known open docker registry is the docker hub. Before we build a container from scratch, you can look at the docker hub to see if there is not a freely available image that we can adapt to our needs if necessary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Container Instance:&lt;/strong&gt; create an instance from that container based on that image from everywhere we like. To launch an instance of an image, docker checks if the image already exists locally. If it doesn’t, the image is loaded from a registry. Then starting the containerized application is easy and it is done with a simple command. One of the advantages of this approach is that a container can be started independently of the host environment. it does not matter if we start a container on a local machine, a data center server, or the cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Docker Compose:&lt;/strong&gt; To launch multiple containers that together form a larger application, we can use docker-compose. Docker compose is used to store an application containing several applications to work together. In a simple YAML document, we specify which containers should be launched with which configurations. Then we can use a simple command to spine up all the containers at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Docker swarm:&lt;/strong&gt; Used to run one or many containers on a cluster of several machines. A concept central to cloud computing. Here, we can run containers not on individual machines but distributed across multiple compute units in parallel. Docker swarm provides better scalability while abstracting internal complexity. From the outside, we see one logical unit running one or more containers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started with Docker: Hands-on docker
&lt;/h2&gt;

&lt;p&gt;In your Integrated development environment/terminal,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Install docker.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a dockerfile. We write the instructions to be executed in the container with many commands.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;.from: to start the container not from scratch but from an already existing image in an image registry.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;.run: to execute a terminal command&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;.copy- to copy data into the container.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After creating a docker file, docker commands can be used to do several things.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Docker Build - will create a docker image based on the docker file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Docker run- will create and run a container based on an image.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Docker images- gives us the list of all the images available in a running machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Docker ps: Shows us the running containers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rm: Remove a container from the machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;start: Start a container.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;stop: Stop a container.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;commit: Commit changes to an image.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tag: Add a name to an image.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cloud deployment
&lt;/h2&gt;

&lt;p&gt;Once done with development, we need to deploy the container to the cloud. We use the deployment manifest. It is a JSON file specifying which container to deploy, how ports of a container should be marched to the port of the hosting machine, and so on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Storage Technologies.
&lt;/h2&gt;

&lt;p&gt;There are so many storage solutions available. However, we will concentrate on the major three. &lt;strong&gt;AWS, Azure, and GCP.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;- Simple Storage Service(S3):&lt;/strong&gt; Object data store that can be used for unstructured data. It is highly reliable and its service level agreement concerning durability is about 99.999%. It is very reliable. It has an S3 access point and also has different tiering classes. S3 intelligent, S3 standard, S3 standard-infrequent access(S3-IA).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Elastic Block Store (EBS) and Elastic File Store (EFS):&lt;/strong&gt; They are cloud-based block storage and file systems that can be attached to EC2 instances. Amazon cloud virtual machines. It is a managed file storage for EC2. it has two classes standard and infrequent access (IA).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- RDS: Relational database services:&lt;/strong&gt; It is used to host relational databases like aurora in the cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- DynamoDB:&lt;/strong&gt; Multimodal no SQL database on AWS and we can use a document-oriented API to work with it.&lt;/p&gt;

&lt;p&gt;There are so many more solutions on AWS cloud storage. You can check their documentation for more.&lt;/p&gt;

&lt;h2&gt;
  
  
  FLASK in Practice
&lt;/h2&gt;

&lt;p&gt;In many cases like cloud-related scenarios, we want to implement a program logic as a callable service. For example, imagine we trained a machine model and now is the time to provide this model as a service that we can call from another application or web page to obtain predictions by the model.&lt;/p&gt;

&lt;p&gt;Flask is a popular lightweight web application framework for Python to achieve exactly this. here, we learn to set up and run a simple flask app with a rest API.&lt;/p&gt;

&lt;p&gt;We want to offer the predictions made by this model as a service callable by our rest API. we need to import the model and flask to provide the rest API. we have to also tell the application which route to choose if we send data to that API. &lt;/p&gt;

&lt;p&gt;You can use a graphical interface like Postman and paste the URL to which you deployed your API. then you choose the route and send the data you want to make predictions for. &lt;br&gt;
You can use the model to make predictions of types, for example, what can of bag is this, etc.&lt;br&gt;
It is easy to use Flask to provide a restful API for a machine learning model and other programming/business logic and provide this program with a restful API to be callable by other applications and web pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Cloud Platform(GCP)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cloud storage:&lt;/strong&gt; Object data store that can be attached to the app engine. Google’s cloud-based virtual machines. It is the cloud storage in GCP for unstructured object data. It is highly reliable and comes in 4 different tiers. Standard, Nearline tiering, coldline tiering, archive tiering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud SQL:&lt;/strong&gt; A cloud-based relational database engine. it is fully managed and there is support for MySQL, PostgreSQL, and standard SQL&lt;br&gt;
Firestore: no SQL data stores. This is also a document-oriented one. It is organized into collections of documents and sub-collections.&lt;br&gt;
Bigtable: Also a no SQL data storage service. It is however column oriented one that is table-like data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Microsoft Azure
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Storage Account:&lt;/strong&gt; used in many ways. A family of storage services consisting of object files, column-oriented NoSQL, and huge storage services. The four different storage types here are:&lt;br&gt;
Blob storage: It is intended for storing unstructured binary data. It is organized in containers of which there are three types depending on the intended data usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File Storage:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table Storage:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Queues:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Lake:&lt;/strong&gt; An extension of storage accounts and can be used for data storage for an entire organization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SQL Database:&lt;/strong&gt; A cloud-based version of Microsoft SQL server. A relational database. It is a managed platform as a service. It comes with two resource usage models&lt;br&gt;
Single database and elastic database pool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synapse:&lt;/strong&gt; Azure’s cloud-based data warehouse solution.&lt;br&gt;
Cosmos DB: globally distributed multi-modal NoSQL database. It allows data to geographically reside close to its intended usage it is also a multi-model NoSQL database. It has gradual consistency models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Networks and Restful Services.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Rest APIs:
&lt;/h2&gt;

&lt;p&gt;They are essential to cloud computing because they allow us to connect individual services in a standardized way without knowing about the inner complexities of each.&lt;br&gt;
This allows for microservice architectures and makes it comfortable for us to develop applications on the cloud. &lt;/p&gt;

&lt;p&gt;What are &lt;strong&gt;restful APIs?&lt;/strong&gt; They are intermediate between the cloud and the server.&lt;br&gt;
The client can be an application that needs data from a service such as a storage solution.&lt;/p&gt;

&lt;p&gt;Instead of learning to communicate with each of the hundreds of available storage services, we can rely on a standardized intermediate. we will talk to the API in the language we know because they are standardized. The intermediate will speak to the servers to retrieve the resources we are asking for and this hides the servers/serves inner complexity leaving us with APIs that we can work with. Imagine we want to talk to a database service in the cloud and we use restful APIs for this. We can send an HTTP request. This request will start with a method.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get: to retrieve a resource&lt;/li&gt;
&lt;li&gt;Post: to create a resource and send data&lt;/li&gt;
&lt;li&gt;Put: to update a resource&lt;/li&gt;
&lt;li&gt;Delete: to delete a resource&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint:&lt;/strong&gt; A unique URL in which the API is reachable.&lt;br&gt;
It contains &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Header:&lt;/strong&gt; Used for authentication as access for most APIs is managed by role-based access control and we have to ensure that all the authorized accesses are granted. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Body:&lt;/strong&gt; Used to send additional data; the API will then process the request and respond to us. The response can come in various formats like JSON, XML, YAML, CSV, and HTML  but JSON is the most popular format.&lt;br&gt;
APIs make communication between services straightforward. This is done by several restful API characteristics. &lt;/p&gt;

&lt;h2&gt;
  
  
  Restful Paradigms
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Client-server autonomy: means the client and the server are independent of each other. here, our application does not depend on how the database works and vice versa.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uniform Interface between the services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Layered architecture: An intermediate between client and server can be interpreted as an additional architectural layer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Caching: this can be disabled and enabled depending on the API. when enabled, we can allow clients to store resources on their machines thereby taking load from the server.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Stateless interactions: restful APIs are stateless. This means no request and no resources are stored and they do not influence each other. &lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Code on Demand: the requested resources can also be coded. This is called code on demand. example, we can request a short javascript code snippet to be executed on our client machine. This takes load from the servers and supports flexibility in developing and using applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cloud Networks.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Transfer between cloud services:&lt;/strong&gt; Cloud computing highly depends on interconnected services. This means that there is a considerable transfer between cloud services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Low Latency:&lt;/strong&gt; To ensure applications run smoothly, we depend on low latency as well as &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Secure communication. All cloud providers offer solutions for this. Eg, Azure virtual network(VNet) to establish a virtual network where our services can communicate securely and with low latency.&lt;/p&gt;

&lt;p&gt;Cloud computing is all about distributing storage and processing across many machines while virtual networks can be used for secure communication between services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Load Balancers:&lt;/strong&gt; They distribute the load between servers. Every cloud provider offers load-balancing services in one way or another.&lt;br&gt;
Managed Identities: As far as authentication and authorization are concerned, many different solutions are depending on the cloud provider and service. For example, in Azure, using managed identity, we can sign privileges to people, groups, applications, or services. For the latter, we can use a service principle and manage its privileges in the Azure active directory.&lt;/p&gt;

&lt;p&gt;Note: This is a 4-fold series on cloud computing.&lt;/p&gt;

&lt;p&gt;To read the first, here is the link:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/michellebuchiokonicha/cloud-computing-for-data-and-software-developers-43ce"&gt;https://dev.to/michellebuchiokonicha/cloud-computing-for-data-and-software-developers-43ce&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;it focuses on cloud services, models and roles.&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>docker</category>
      <category>api</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Cloud Computing for Data and Software Engineers</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Fri, 14 Jun 2024 10:01:34 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/cloud-computing-for-data-and-software-developers-43ce</link>
      <guid>https://dev.to/michellebuchiokonicha/cloud-computing-for-data-and-software-developers-43ce</guid>
      <description>&lt;p&gt;&lt;strong&gt;Cloud computing&lt;/strong&gt; has become a major buzzword in the last decade. The application of technology is enabled and made possible by cloud computing.&lt;br&gt;
A simple instance is the alarm on your phone. This alarm, after being created was made available to users through cloud computing. The applications we use daily and the recently hyped innovations of ChatGPT and Gemini.AI are made available and accessible to users because of cloud computing.&lt;br&gt;
It enables apps to synchronize data and manage services.&lt;/p&gt;

&lt;p&gt;Commuting to work with maps relies on cloud computing. Your Microsoft 365 and Google Workspace are made possible because of cloud computing.&lt;/p&gt;

&lt;p&gt;Here, we will understand cloud computing and how it helps distribute data and processes across multiple machines.&lt;br&gt;
Here, we will describe the concept of cloud computing, explain the cloud delivery and service models, describe cloud computing for your purpose, and more.&lt;/p&gt;

&lt;p&gt;We will also understand the fundamentals of cloud computing, cloud service models, infrastructure as a service, serverless computing, risks and benefits of cloud computing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Delivery Models
&lt;/h2&gt;

&lt;p&gt;Cloud Delivery models are also called cloud sourcing models and there are varying computing models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local:&lt;/strong&gt; Traditionally, we would have our applications on a local machine like your laptop, containing all the data and software necessary for a particular task on that same machine with or without an internet connection.&lt;br&gt;
The advantage is that the solution is cheap, fast, and readily available. And when there is no internet connection, it is pretty safe from outside attackers. The downside is that it is not easy to work collaboratively and the resources of a local machine might not be sufficient for extensive datasets. This is why many organizations store their data and install software not on local machines but on servers to which organizations can connect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On-premise:&lt;/strong&gt; On-premise means an organization owns hardware like servers located in the organization's rooms or geographically close by to the organization. However, if the organization decides to move to the cloud, the organization will no longer own the hardware but render it from a cloud service provider. These servers were physically located within the rooms owned by the organization hence the name, on-premise or on-prem computing. The advantages are that the organizations have complete control of the software and infrastructure. On the downside, this setup has limited scalability and high investment costs. All resources must be purchased by the organization and installed on the servers entering the cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Private Cloud:&lt;/strong&gt; This means infrastructure is reserved for a particular organization and we can connect to the service via a network as opposed to the public which requires the internet.&lt;br&gt;
We can also use virtual private networks to establish a connection.&lt;/p&gt;

&lt;p&gt;This is dependent on whether the hardware is reserved for organizations in the data centers run by the cloud service provider reserved for the organization only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public Cloud:&lt;/strong&gt; In contrast to private cloud, if the organization decides to use the public cloud, the organization would share the resources with other cloud users. Another difference is that the public uses the internet while the private cloud uses a non-public network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hybrid cloud:&lt;/strong&gt; This model uses a mixture of on-premise and cloud services/machines. This way, we can choose which data should be stored, processed, and analyzed in the cloud and what should remain in the organization's machines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Cloud:&lt;/strong&gt; This means that the organization uses cloud services provided by other cloud providers.&lt;br&gt;
Using different services offered by more than one cloud provider. Eg, we can use storage services provided by both providers A and B but only processing services by cloud A and analytical services by provider B. This way we might avoid vendor-locking and select from a wide range of services the ones that are useful for our particular use case. One drawback is that these setups are more complex to manage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Poly-Cloud:&lt;/strong&gt; This means that we use one type of service by one cloud provider only eg, we would use a database by provider A and analytical services by provider B. Here, we use only the services by one cloud provider for one specific domain of the project. Eg, we would store all the data in Cloud A, process the data in Cloud B, and analyze the data in Cloud C.&lt;br&gt;
Cloud-native is not a delivery model but implies that an application is developed with the cloud in mind from the very beginning. Eg, it is designed to be easily scalable, reliable, and available by deploying it to a cloud environment eg as microservices and containers, or as a serverless function.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fundamental Roles in Cloud Computing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cloud Solution Architect:&lt;/strong&gt; This is also called cloud enterprise architect is responsible for designing a high-level concept aligned with a business strategy. Coming up with a cloud architecture to scale the organization. It deals with business understanding and technologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud Architect:&lt;/strong&gt; This is similar to the cloud solution Architect but is more focused on the implementation unlike the Cloud solution which is focused on the high-level concept of the architecture, the cloud architect is more focused on the hands-on implementation of that concept into concrete services that work together. They are specialized in the offerings of one or a few cloud providers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud engineers:&lt;/strong&gt; they are the administrators and operators of the cloud systems. They maintain the cloud system and its services. They manage servers and clusters. They are not only responsible for the administration of the entire system but also individual services. This includes access control. They understand operating systems and server maintenance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud developers:&lt;/strong&gt; They are programmers using cloud services in the applications they develop. This includes application developers because they do not come up with new cloud services but use the provided services and configure them in their applications. They use and orchestrate cloud services in their applications. They need knowledge of how the cloud systems are set up. However, their core is programming, API setup, and networking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud consultant:&lt;/strong&gt; this is similar to the cloud solution architect. They offer advice, and guidance and provide an objective overview of cloud providers. They understand the organization's business and cloud needs and come up with solutions and architecture. They are more focused on added value for business processes.&lt;br&gt;
Sometimes, these roles overlap and they can function to aid the other.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Service Models
&lt;/h2&gt;

&lt;p&gt;Cloud service models are different from cloud delivery models.&lt;br&gt;
This tells how responsibilities are shared between the cloud provider and us as the users/developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On-prem:&lt;/strong&gt; We have complete control of the system but it also brings in a lot of responsibility of taking care of each component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bare-metal-as-a-service(BAAS):&lt;/strong&gt; we might choose to not own physical hardware but get it from a provider responsible for maintenance. But why not give the provider responsibility for hardware virtualization? This is the next one called IAAS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure-as-a-service(IAAS):&lt;/strong&gt; the cloud provider is responsible for the physical hardware and virtualization while users are responsible for everything that runs on top of that virtualized hardware. This means flexibility but also maintenance responsibility. Eg for the application code that we develop for these virtualized machines. example AWS EC2, Azure virtual machines, and GCP compute engines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Container-as-a-service(CAAS):&lt;/strong&gt; when cloud providers offer services to run containers and are responsible for maintaining all underlined components, it is called CAAS. eg Azure container instance, Azure Kubernetes serves, AWS elastic container service, AWS elastic Kubernetes service, Google Cloud run, and Google kubernetes engine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Platform as a service (PAAS):&lt;/strong&gt; Here, in addition to hardware and virtualization, the cloud provider is also responsible for the operating system and runtime executing the code we develop. Here the provider is responsible for the maintenance responsibility and the runtime to the provider. Examples are storage services like AWS S3, Azure block storage, and GCP block storage. Managed database storage like AWS dynamoDB and Azure Cosmos DB and IOT services like AWS IOT core, Azure IOT hub, and GCP cloud IOT core. As the name suggests, PAAS is all about providing a platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Serverless also called Function and a service (FAAS):&lt;/strong&gt; It is similar to the platform as a service, however, it also implies that we are not busy maintaining and configuring any hardware but focus entirely on code development. We simply push our code to a serverless service to be executed in the cloud and we do not think about the underlined infrastructure at all.&lt;br&gt;
Here, it is not so much about the platform being provided but the framework on which we can execute our application code and not on setting up and maintaining the underlined component.&lt;br&gt;
Examples are AWS Lambda, Azure functions, and GCP Cloud functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software as a service(SAAS):&lt;/strong&gt; In addition to the hardware virtualization, operating system, and runtime, the provider is also responsible for the application code in this service model. An example is Office 365 or any other similar cloud-based software. All we can change in this service are the application settings but not its code. Here we use functional software and can not change anything in it except the application settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk and Advantages of Cloud Computing
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Advantages
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cost reduction:&lt;/strong&gt; It is cheaper than local or on-premise solutions. The cost of purchasing hardware and hiring specialized staff better scale to the many cloud customers than having all this cost for one organization only. Also, many services are offered as pay-as-you-go billing models. This means that we can quickly adapt the cost of our system to the load it experiences.&lt;/p&gt;

&lt;p&gt;Also, we can start with cheap hardware and quickly scale to bigger or more machines in the cloud. We can also save costs by running processes with lower priority when machines in data centers are idol because other customers do not use them at that time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability:&lt;/strong&gt; Because cloud providers dispose of many machines, we can scale instantaneously and unlimitedly on the cloud by adding more or bigger machines to a running cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexibility:&lt;/strong&gt; As there are no upfront costs, we can try out new services and change components of our system easily. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy access:&lt;/strong&gt; You only need a few clicks and buttons to spin up instances of the available technology in the cloud. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reliability:&lt;/strong&gt; Being distributed systems with high data replication and parallelization makes cloud computing highly reliable. Also, all cloud providers clearly define service level agreements and we are reimbursed if these agreements are not fulfilled.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Physical safety:&lt;/strong&gt; it is an advantage as there is much stricter surveillance of physical access to the data centers than to the servers of a single organization.&lt;br&gt;
Certificates: All cloud providers hold standardized certificates supporting us in evaluating the applied data security and protection standards. This also helps us choose appropriate providers for given use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Expenses:&lt;/strong&gt; there can be additional expenses eg when resources are not adapted to need or we over-provision our services. &lt;br&gt;
Redundancy in the system ensuring its reliability means additional network transfer. When not set up correctly, this can lead to unnecessary expenses. The good thing is that all cloud providers offer monitoring tools and automated alerts to mitigate these risks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; When not set up correctly, it can be insecure. Of course, there can be more points of failure in a complex cloud system but depending on the service model, we might also give responsibilities to specialized units of the cloud provider with more workforce and higher security budget than single organizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Share responsibility:&lt;/strong&gt; although this is usually considered a good thing, it can pose a risk. Independent of the cloud service model we choose, we will always be responsible for the stored data, the endpoint to our system, and the access management.&lt;br&gt;
Also, legally, we always need clarity on how things are done by the cloud provider when handling personally identifiable information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Certifications and transparency:&lt;/strong&gt; Certifications are usually a good thing but the number of different certificates sometimes makes it difficult to understand what they mean and if they are worth something and applicable to a particular use case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Sovereignty:&lt;/strong&gt; This is important when handling personal data in the cloud. here, we must keep control of the data all the time. Eg, when the data is about a certain group of people, we must ensure that it never leaves the group of people.&lt;/p&gt;

&lt;p&gt;Note: This is a 4-fold series on cloud computing, virtualization, containerization and data processing.&lt;br&gt;
Watch out for the remaining 3 articles.&lt;/p&gt;

&lt;p&gt;Note: This is the first of a 4-fold series.&lt;br&gt;
The second can be found here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/michellebuchiokonicha/virtualization-containerization-with-docker-storage-and-network-services-2bjf/edit"&gt;https://dev.to/michellebuchiokonicha/virtualization-containerization-with-docker-storage-and-network-services-2bjf/edit&lt;/a&gt;&lt;br&gt;
it focuses on docker, containerization, virtualization, storage technologies and network services.&lt;/p&gt;

&lt;p&gt;Follow me on Twitter Handle: &lt;a href="https://twitter.com/mchelleOkonicha" rel="noopener noreferrer"&gt;https://twitter.com/mchelleOkonicha&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow me on LinkedIn Handle: &lt;a href="https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/buchi-michelle-okonicha-0a3b2b194/&lt;/a&gt;&lt;br&gt;
Follow me on Instagram: &lt;a href="https://www.instagram.com/michelle_okonicha/" rel="noopener noreferrer"&gt;https://www.instagram.com/michelle_okonicha/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
      <category>datascience</category>
    </item>
    <item>
      <title>History of Artificial Intelligence: How it all started.</title>
      <dc:creator>Michellebuchiokonicha</dc:creator>
      <pubDate>Mon, 13 May 2024 16:57:52 +0000</pubDate>
      <link>https://dev.to/michellebuchiokonicha/history-of-artificial-intelligence-how-it-all-started-20eb</link>
      <guid>https://dev.to/michellebuchiokonicha/history-of-artificial-intelligence-how-it-all-started-20eb</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;According to John McCarthy, artificial intelligence is the science and engineering of making intelligent machines especially intelligent computer programs. AI attempts to mimic human intelligence by applying a set of algorithms to a set of data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development
&lt;/h2&gt;

&lt;p&gt;The historical development of AI goes as far back as the 4th century BC with philosophers like Aristotle who formalized human thinking to be imitated. This early philosophy laid the foundation for what we now call AI as opposed to the usual assumption that AI first came up in the 1950s. The development of AI as a scientific discipline began in the 1950s. During this time scientists and engineers began to explore the possibilities of automating thought processes. This led to the development of the first AI systems capable of completing simple tasks that would normally require human thinking. In the decades that followed, AI became more powerful and able to handle increasingly complex tasks. The focus of the first wave of AI was on logical reasoning. In contrast, the main focus of the second wave was driven by an attempt to solve the problem of knowledge representation. This knowledge-based view was the origin of expert systems. The main feature of this technology was that the domain knowledge was stored in the databases. AI has made significant progress since the 1990s.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deep Blue Computer Systems&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A milestone was the deep blue computer system which defeated the world chess champion in 1997. Gary Kasparov. This demonstrated the capabilities of AI systems.&lt;br&gt;
From speech recognition to purchasing behaviors in AI shops, advances in AI have been fueled by computing capabilities. This massive data provides food for AI to grow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deep Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another important milestone in the development of AI is the emergence of deep learning models and adversarial learning which also brought about machine learning and expanded the scope of intelligent systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI winter
&lt;/h2&gt;

&lt;p&gt;Describes times when interest, research, and funding for AI decline significantly.  the first AI winter was in 1974 - 1980 and the second was in 1987 - 1993.&lt;br&gt;
When expectations of AI systems to automate tasks becomes high and these needs are not met,  it brings about an AI winter caused by pessimism in the AI community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Expert Systems
&lt;/h2&gt;

&lt;p&gt;Helps to support decision-making processes. Expert knowledge is stored in a knowledge base. An Inference engine uses knowledge from the knowledge base to make decisions. Interaction with a non-expert user is done through a user interface. Expert systems emulate decision-making by using domain-specific knowledge of an expert.&lt;/p&gt;

&lt;p&gt;The Gartner hype cycle curve evaluates the potential of new technologies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Expert systems
&lt;/h2&gt;

&lt;p&gt;Expert systems are used in many different application domains. They can help humans solve complex problems based on a predefined set of rules especially when a person has to make decisions in an unknown domain. Expert systems can be of great help to support decision processes. Another to enable a non-expert user to make decisions is an expert system that uses knowledge from experts in specific domains where decisions have to be made. This expert knowledge is stored in the knowledge base.&lt;/p&gt;

&lt;p&gt;Expert systems can be divided into:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Case-based systems:&lt;/strong&gt; This is based on problems that have occurred in the past. Decisions are made in the same way as they have been made in the past.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rule-based systems:&lt;/strong&gt; This is Based on a huge knowledge base consisting of a large number of rules in the form of facts. The rules describe the relations between different facts and can be used to arrive at a decision.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Problem-based systems:&lt;/strong&gt; This is used to categorize a situation as a certain decision problem to handle it in a similar way.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One major advantage of expert systems is the decisions made by the system can easily be understood by humans when looking at the rules that have been used for respective decisions. If human beings interact with business processes, they will gain knowledge over time in the same way, for meaningful decision support. The knowledge base of a decision system must be extended with data about new cases from time to time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gartner Hype Cycle
&lt;/h2&gt;

&lt;p&gt;This curve is a graphical presentation to illustrate the maturity and trends of emerging technologies. This cycle exists for several topics. One of those topics is artificial intelligence. The Gartner hype cycle is divided into different phases.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Innovation Trigger phase:&lt;/strong&gt; In this phase, New technology is not found in the market.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Peak of Inflated Expectations:&lt;/strong&gt; In this phase, early publicity produces several success stories. These are mostly accompanied by failures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trough of Disillusionment:&lt;/strong&gt; In this phase, early prototypes fail to deliver.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Slope of Enlightenment:&lt;/strong&gt; Here, technology becomes more widely understood and starts being used by more and more companies. This leads to the next phase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plateau of Productivity:&lt;/strong&gt; Here, mainstream adoption starts to take off. If a technology qualifies for a broad market, it will continue to grow.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Gartner hype cycle is used to evaluate technology and determine its fate in the ecosystem.&lt;/p&gt;

&lt;p&gt;Artificial Intelligence is an evolving field and will continue to be in years to come.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
