<?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: Judith ☁ Oiku</title>
    <description>The latest articles on DEV Community by Judith ☁ Oiku (@osejudith).</description>
    <link>https://dev.to/osejudith</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%2F305746%2F1c556d36-ad1b-4d71-a011-78a82e4b14c8.jpg</url>
      <title>DEV Community: Judith ☁ Oiku</title>
      <link>https://dev.to/osejudith</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/osejudith"/>
    <language>en</language>
    <item>
      <title>lntroduction to Laravel Livewire</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Mon, 30 Aug 2021 08:12:59 +0000</pubDate>
      <link>https://dev.to/osejudith/lntroduction-to-laravel-livewire-aif</link>
      <guid>https://dev.to/osejudith/lntroduction-to-laravel-livewire-aif</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
This article introduces Livewire and how it can be implemented into a Laravel application.&lt;/p&gt;

&lt;p&gt;A modern full-stack web app can be a bit complex to build especially with tools like Vue and React and this is the problem Livewire aims to solve.&lt;/p&gt;

&lt;p&gt;Livewire is a full-stack framework for Laravel that enables a developer to build a dynamic interface that is less complex within the Laravel environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt; &lt;br&gt;
Basic knowledge of Laravel is needed&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Takeaways&lt;/strong&gt;&lt;br&gt;
After going through this article, you will understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What Livewire is?&lt;/li&gt;
&lt;li&gt;What problem does Livewire aim to solve, and &lt;/li&gt;
&lt;li&gt;How to get started with Livewire&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;with that being said, the following steps will enable us to get started with Livewire and how we can implement it into our Laravel application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps&lt;/strong&gt;&lt;br&gt;
a) Install a new Laravel project using &lt;br&gt;
&lt;code&gt;composer create-project laravel/laravel laravel-livewire&lt;/code&gt;&lt;br&gt;
b) cd into laravel-livewire&lt;br&gt;
c) Run &lt;code&gt;composer require livewire/livewire&lt;/code&gt;&lt;br&gt;
d) Include &lt;code&gt;@livewireStyles&lt;/code&gt; and &lt;code&gt;@livewireScripts&lt;/code&gt; in the head and body tag of your &lt;code&gt;views/welcome.blade.php&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"{{ str_replace('_', '-', app()-&amp;gt;getLocale()) }}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Laravel | Livewire&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;

        &lt;span class="c"&gt;&amp;lt;!-- Fonts --&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&amp;amp;display=swap"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="c"&gt;&amp;lt;!-- Styles --&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;'Nunito'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
        @livewireStyles
    &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"antialiased"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;


        @livewireScripts
    &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;once that is done, we have all we need to start using Livewire in our Laravel application.&lt;/p&gt;

&lt;p&gt;e) Next, run &lt;code&gt;php artisan serve&lt;/code&gt;&lt;br&gt;
f) Let make our first Livewire component for a simple counter to increase and decrease a value using the &lt;code&gt;php artisan make livewire counter&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;if that is successful, you should see a screen like the one below in your terminal&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fzlqddghj4tlyodc4t4s0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fzlqddghj4tlyodc4t4s0.PNG" alt="livewire"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Looking into our project structure, the above command created two new files in &lt;code&gt;app/Http/Livewire/Counter.php&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Http\Livewire&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Livewire\Component&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Counter&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Component&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;view&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'livewire.counter'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;and &lt;code&gt;resources\views/livewire/counter.blade.php&lt;/code&gt;&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;div&amp;gt;
    ....
&amp;lt;/div&amp;gt;

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

&lt;/div&gt;



&lt;p&gt;g) Next, we want to render a simple text to our browser to ensure our component is working, modify your counter Livewire blade file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;I am learning Livewire&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;h) Before that, we need to include &lt;code&gt;&amp;lt;livewire: counter /&amp;gt; &lt;br&gt;
&lt;/code&gt; component in our welcome blade file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"{{ str_replace('_', '-', app()-&amp;gt;getLocale()) }}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Laravel | Livewire&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;

        &lt;span class="c"&gt;&amp;lt;!-- Fonts --&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&amp;amp;display=swap"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="c"&gt;&amp;lt;!-- Styles --&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;'Nunito'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
        @livewireStyles
    &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"antialiased"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;livewire:counter&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; 

        @livewireScripts
    &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we can now preview it on our browser &lt;br&gt;
&lt;a href="https://media.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%2Flqhbgrg3jpki9djt5rgy.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Flqhbgrg3jpki9djt5rgy.PNG" alt="image2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whola!, we have our component rendered to the browser successfully.&lt;br&gt;
i) We can now implement our simple counter&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="kn"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;App\Http\Livewire&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Livewire\Component&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Counter&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Component&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nv"&gt;$count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;increase&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;decrease&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;view&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'livewire.counter'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we declared a public property &lt;code&gt;$count&lt;/code&gt; initialized to zero, a method to increase and decrease the number. Public property in Livewire is automatically made available to the view.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"text-align: center"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Counter using Laravel Livewire&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;wire:click=&lt;/span&gt;&lt;span class="s"&gt;"increase"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;+&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;wire:click=&lt;/span&gt;&lt;span class="s"&gt;"decrease"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;-&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;{{$count}}&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we used the livewire template directive in our buttons to increase and decrease the number.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fztjduc3trk9any0rnyun.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fztjduc3trk9any0rnyun.PNG" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
we have successfully implemented a simple counter to increase and decrease numbers using Livewire. &lt;/p&gt;

&lt;p&gt;A lot can be still be gotten from Livewire to enable you to build that full-stack modern web application.&lt;/p&gt;

&lt;p&gt;To read and get more on Livewire, visit &lt;a href="https://laravel-livewire.com/docs/2.x/quickstart" rel="noopener noreferrer"&gt;livewire documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The code snippet for this tutorial can be found in my &lt;a href="https://github.com/ojudith/laravel-livewire" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to say hi via &lt;a href="https://www.linkedin.com/in/oikujudith/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>livewire</category>
      <category>beginners</category>
      <category>php</category>
    </item>
    <item>
      <title>How to Grow as a Developer</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Sat, 08 May 2021 11:35:28 +0000</pubDate>
      <link>https://dev.to/osejudith/how-to-grow-as-a-developer-41l</link>
      <guid>https://dev.to/osejudith/how-to-grow-as-a-developer-41l</guid>
      <description>&lt;p&gt;Growth is a paramount aspect of our lives, and as developers, we desire to grow in our code journey.&lt;/p&gt;

&lt;p&gt;In this article, I will share various tips that have helped me grow as a developer and I hope you find it resourceful as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Do the best you can until you know better. Then when you know better, do better." - Maya Angelou&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Coding project&lt;/strong&gt;: taking up a coding project is very important, why? because you get to learn a lot. You get to make research, debug and most importantly understand code structure and technique.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read books&lt;/strong&gt;: not everybody loves reading, but I encourage you to cultivate the habit of reading. Books contain useful information that can enable you to improve more on your skill as a developer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;: documentation is a very important tool and I cannot over-emphasize it. Most tools or plugin we use in our project is backed with well-written documentation that contains: &lt;em&gt;installation guide&lt;/em&gt;, &lt;em&gt;usage&lt;/em&gt; etc. &lt;br&gt;
Knowing how to read documentation can also help you grow as a developer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Articles&lt;/strong&gt;: another tip is articles, there are lots of articles out there, that explains whatever challenge you may have.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stay updated&lt;/strong&gt;: keeping up with the latest news and trend with your related programming tools is another tip, why? because it helps you know the latest changes, security fix, tools that are deprecated etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope you are able to get a thing or two from the above tips, if you have any tip that is also beneficial, feel free to leave it as a comment.&lt;/p&gt;

&lt;p&gt;Original post on my &lt;a href="https://judithoiku.tech/2021-how-to-grow-as-a-developer/"&gt;blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>How to change your last commit Author in Git</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Sat, 16 Jan 2021 09:15:13 +0000</pubDate>
      <link>https://dev.to/osejudith/how-to-change-your-last-commit-author-in-git-ime</link>
      <guid>https://dev.to/osejudith/how-to-change-your-last-commit-author-in-git-ime</guid>
      <description>&lt;p&gt;The following steps can be used to change Author in Git:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;launch terminal.&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;git commit --ammend --author="Author's name&amp;lt;email address&amp;gt;"&lt;/code&gt;. This opens the vim editor to edit and save changes.&lt;/li&gt;
&lt;li&gt;press &lt;code&gt;esc&lt;/code&gt; on your keyboard to switch to command mode.&lt;/li&gt;
&lt;li&gt;press&lt;code&gt;:&lt;/code&gt; (colon) to open the prompt bar at the bottom of the vim editor.&lt;/li&gt;
&lt;li&gt;type &lt;code&gt;x&lt;/code&gt; after the colon and press &lt;strong&gt;enter&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will save the changes made and exit the vim editor.&lt;/p&gt;

&lt;p&gt;visit my &lt;a href="https://judithoiku.tech/"&gt;blog&lt;/a&gt; for more related articles.&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
    </item>
    <item>
      <title>How to Import Curl into Postman and Test Requests</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Sat, 09 Jan 2021 16:04:44 +0000</pubDate>
      <link>https://dev.to/osejudith/how-to-import-curl-into-postman-and-test-requests-1agg</link>
      <guid>https://dev.to/osejudith/how-to-import-curl-into-postman-and-test-requests-1agg</guid>
      <description>&lt;h2&gt;
  
  
  What is Curl?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://curl.se/"&gt;Curl&lt;/a&gt; is a command line tool and library for transferring data with URLs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps
&lt;/h2&gt;

&lt;p&gt;The following steps can be used to test Curl in Postman:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;open postman.&lt;/li&gt;
&lt;li&gt;click &lt;strong&gt;import&lt;/strong&gt;  tab on the top left side.&lt;/li&gt;
&lt;li&gt;select the &lt;strong&gt;raw test tab&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;paste the raw text, then click &lt;strong&gt;continue&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;confirm the &lt;strong&gt;name&lt;/strong&gt; , &lt;strong&gt;format&lt;/strong&gt;  and &lt;strong&gt;Import as&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;if step &lt;strong&gt;5&lt;/strong&gt;. is correct, click &lt;strong&gt;import&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This automatically imports Curl into Postman.&lt;/p&gt;

&lt;p&gt;To read more on Curl, visit &lt;a href="https://curl.se/"&gt;curl.se&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;follow me on &lt;a href="https://twitter.com/OseJudith"&gt;twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Original article posted on my &lt;a href="https://judithoiku.tech/2021-how-to-import-curl-into-postman-and-test-requests/"&gt;blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>testing</category>
    </item>
    <item>
      <title>Reset or Change Password in Laravel</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Mon, 04 Jan 2021 10:49:58 +0000</pubDate>
      <link>https://dev.to/osejudith/reset-or-change-password-in-laravel-5mk</link>
      <guid>https://dev.to/osejudith/reset-or-change-password-in-laravel-5mk</guid>
      <description>&lt;p&gt;Reset or change password functionality is part of most web app authentication system that enables a user to change their forgotten password. &lt;/p&gt;

&lt;p&gt;Implementing this feature is part of the laravel core setup , all you need do is to configure Laravel authentication into your project. visit the &lt;a href="https://laravel.com/docs/7.x/authentication"&gt;laravel documentation&lt;/a&gt; if you need a quick guide.&lt;/p&gt;

&lt;p&gt;If the installation is successful, all the necessary files (views, controllers, migrations e.t.c) are automatically added to your project.&lt;/p&gt;

&lt;p&gt;In this article, I am going to be showing you how to &lt;em&gt;activate the default laravel reset  password feature and how to avoid the error of email not being sent.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;p&gt;I assume you already have your project set up as well as the laravel default authentication installed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps
&lt;/h2&gt;

&lt;p&gt;The following are the required steps to enable your user  reset their  password and receive email to complete the process.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;make sure you have your database set up and you have successfully migrated your tables.&lt;/li&gt;
&lt;li&gt;verify that your &lt;code&gt;App\User&lt;/code&gt; model implements  &lt;code&gt;use Illuminate\Contracts\Auth\CanResetPassword&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;verify that your database contains the &lt;code&gt;password_resets_table&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Run your localhost url and navigate to the login screen, on the login display form, click on change password, that should redirect you to a page for you to enter your email address (make sure, it is the same email you used while registering).&lt;/p&gt;

&lt;p&gt;If that is successful, you will get an email redirecting you to the change password form, requesting you to enter your new password.&lt;/p&gt;

&lt;p&gt;if, for whatever reason, you are not getting the email, add the following to your &lt;code&gt;.env&lt;/code&gt; file&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;mail_from_address&lt;/li&gt;
&lt;li&gt;mail_from_sender&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To read more about resetting password in laravel , visit the &lt;a href="https://laravel.com/docs/7.x/passwords#resetting-database"&gt;laravel reset password documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Original article posted on my &lt;a href="https://judithoiku.tech/2021-reset-or-change-password-in-laravel/"&gt;blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Difference between the assignment , equality &amp; identity operator in PHP</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Wed, 16 Dec 2020 11:28:12 +0000</pubDate>
      <link>https://dev.to/osejudith/difference-between-the-assignment-equality-identity-operator-in-php-o9d</link>
      <guid>https://dev.to/osejudith/difference-between-the-assignment-equality-identity-operator-in-php-o9d</guid>
      <description>&lt;p&gt;There are several operators used in PHP to carry out programming operations.&lt;br&gt;
&lt;code&gt;=&lt;/code&gt; is the assignment operator, this assigns a value&lt;/p&gt;

&lt;p&gt;e.g  &lt;code&gt;$x = 'hello world&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;==&lt;/code&gt; is the equality operator , it is used to test for equality&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
    &lt;span class="nv"&gt;$day&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Monday"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$day&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"Monday"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"It is work day"&lt;/span&gt; 
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since &lt;code&gt;$day = Monday&lt;/code&gt; and satisfies the condition, we have the output - &lt;strong&gt;It is work day&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;===&lt;/code&gt; is the identity operator that is use to test if they are equal and of the same type&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
    &lt;span class="nv"&gt;$a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"1000"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;$b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nv"&gt;$b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"identical"&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt; 
        &lt;span class="k"&gt;else&lt;/span&gt; 
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;echo&lt;/span&gt;  &lt;span class="s2"&gt;"not identical"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;outputs &lt;strong&gt;not identical&lt;/strong&gt; because &lt;code&gt;$a&lt;/code&gt; is a string and &lt;code&gt;$b&lt;/code&gt; is numerical, in other words they are of different type.&lt;/p&gt;

</description>
      <category>php</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>PHP Date/Time Cheat Sheet</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Mon, 07 Dec 2020 11:12:24 +0000</pubDate>
      <link>https://dev.to/osejudith/php-date-time-cheat-sheet-48dm</link>
      <guid>https://dev.to/osejudith/php-date-time-cheat-sheet-48dm</guid>
      <description>&lt;p&gt;PHP uses the standard UNIX timestamp, which is the number of seconds since the start of January 1, 1970.&lt;/p&gt;

&lt;p&gt;Date/Time appear in different parts of our application, be it a blog application, membership or forum website and so on.&lt;/p&gt;

&lt;p&gt;The table below shows the different ways we can format date/time in PHP.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;format&lt;/th&gt;
&lt;th&gt;description&lt;/th&gt;
&lt;th&gt;value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;z&lt;/td&gt;
&lt;td&gt;day of the year&lt;/td&gt;
&lt;td&gt;01 to 365&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;day of the week from Monday to Sunday&lt;/td&gt;
&lt;td&gt;1 to 7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;j&lt;/td&gt;
&lt;td&gt;day of the month with no leading zero&lt;/td&gt;
&lt;td&gt;1 to 31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Suffix for the day of the month&lt;/td&gt;
&lt;td&gt;st, nd, rd or th&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;d&lt;/td&gt;
&lt;td&gt;two digit day of the month with leading zero&lt;/td&gt;
&lt;td&gt;01 to 31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;three letters day of the week&lt;/td&gt;
&lt;td&gt;Mon to Sun&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;l&lt;/td&gt;
&lt;td&gt;full names of the day of the week&lt;/td&gt;
&lt;td&gt;Sunday to Saturday&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;number of the week of the year&lt;/td&gt;
&lt;td&gt;01 to 52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;y&lt;/td&gt;
&lt;td&gt;year in two digit&lt;/td&gt;
&lt;td&gt;00 to 99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;year in four digit&lt;/td&gt;
&lt;td&gt;0000 to 9999&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;t&lt;/td&gt;
&lt;td&gt;number of days in a specific month&lt;/td&gt;
&lt;td&gt;28 to 31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;full name of the month&lt;/td&gt;
&lt;td&gt;January to December&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;m&lt;/td&gt;
&lt;td&gt;number of the month with leading zero&lt;/td&gt;
&lt;td&gt;01 to 12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;names of the month in three letters&lt;/td&gt;
&lt;td&gt;Jan to Dec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;n&lt;/td&gt;
&lt;td&gt;number of the month with no leading zero&lt;/td&gt;
&lt;td&gt;1 to 12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;w&lt;/td&gt;
&lt;td&gt;day of the week from Sunday to Saturday&lt;/td&gt;
&lt;td&gt;0 to 6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;i&lt;/td&gt;
&lt;td&gt;minutes with leading zero&lt;/td&gt;
&lt;td&gt;00 to 59&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;s&lt;/td&gt;
&lt;td&gt;Seconds&lt;/td&gt;
&lt;td&gt;00 t0 59&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;uppercase&lt;/td&gt;
&lt;td&gt;AM to PM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;a&lt;/td&gt;
&lt;td&gt;lowercase&lt;/td&gt;
&lt;td&gt;am to pm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;g&lt;/td&gt;
&lt;td&gt;12-hour format with no leading zero&lt;/td&gt;
&lt;td&gt;1 to 12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;24-hour format with no leading zero&lt;/td&gt;
&lt;td&gt;0 to 23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;h&lt;/td&gt;
&lt;td&gt;12-hour format with leading zero&lt;/td&gt;
&lt;td&gt;01 to 12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;24-hour format with leading zero&lt;/td&gt;
&lt;td&gt;00 to 23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For further reading check out &lt;a href="https://www.php.net/manual/en/function.date.php"&gt;the PHP date/time documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Original article posted on my &lt;a href="https://judithoiku.tech/2020-php-date-time-cheat-sheet/"&gt;blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>php</category>
      <category>beginners</category>
    </item>
    <item>
      <title>PDOException::SQLSTATE[42000]: Incorrect table definition; there can be only one auto column and it must be defined as a key</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Tue, 24 Nov 2020 09:25:43 +0000</pubDate>
      <link>https://dev.to/osejudith/pdoexception-sqlstate-42000-incorrect-table-definition-there-can-be-only-one-auto-column-and-it-must-be-defined-as-a-key-1me9</link>
      <guid>https://dev.to/osejudith/pdoexception-sqlstate-42000-incorrect-table-definition-there-can-be-only-one-auto-column-and-it-must-be-defined-as-a-key-1me9</guid>
      <description>&lt;h4&gt;
  
  
  Syntax error or access violation on database migration
&lt;/h4&gt;

&lt;p&gt;This likely occurs when you are trying to migrate a pivot table in Laravel in which there is an incorrect table definition, the way to solve it by changing the data type of the foreign keys as shown with the code below:&lt;/p&gt;

&lt;h5&gt;
  
  
  User Table
&lt;/h5&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;    &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'users'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Blueprint&lt;/span&gt; &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;unsigned&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;timestamps&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h5&gt;
  
  
  Role Table
&lt;/h5&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;    &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'roles'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Blueprint&lt;/span&gt; &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;unsigned&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;timestamps&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h5&gt;
  
  
  Pivot Table
&lt;/h5&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;    &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'users_roles'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Blueprint&lt;/span&gt; &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;biginteger&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'user_id'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;unsigned&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;biginteger&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'role_id'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;unsigned&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;

        &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'users_roles'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Blueprint&lt;/span&gt; &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;foreign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'user_id'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;references&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'id'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'users'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;onDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'cascade'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="nv"&gt;$table&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;foreign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'role_id'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;references&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'id'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'roles'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;onDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'cascade'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>What is Vuex</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Mon, 23 Nov 2020 08:34:49 +0000</pubDate>
      <link>https://dev.to/osejudith/what-is-vuex-46h8</link>
      <guid>https://dev.to/osejudith/what-is-vuex-46h8</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;vuex is a &lt;a href="https://vuex.vuejs.org/guide/state.html#single-state-tree"&gt;state management library&lt;/a&gt; for &lt;a href="https://vuejs.org/"&gt;vue&lt;/a&gt; that makes it less cumbersome to share and distribute data within the vueJs application.&lt;/p&gt;

&lt;h1&gt;
  
  
  Prerequisite
&lt;/h1&gt;

&lt;p&gt;Basic knowledge of &lt;code&gt;Vue&lt;/code&gt; is required&lt;/p&gt;

&lt;h1&gt;
  
  
  What next
&lt;/h1&gt;

&lt;p&gt;Without &lt;code&gt;vuex&lt;/code&gt;, we can simply distribute data between components using &lt;code&gt;props&lt;/code&gt;, but as the application gets larger, managing data can be quite a handful.&lt;/p&gt;

&lt;p&gt;To solve this problem, we make use of the vuex, here we have a centralized store, and from that store our components can access our state directly.&lt;/p&gt;

&lt;p&gt;A typical &lt;code&gt;store&lt;/code&gt; folder looks like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;
  &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Vue&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;vue&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Vuex&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;vuex&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

  &lt;span class="nx"&gt;Vue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Vuex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; 
  &lt;span class="nx"&gt;Vuex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Store&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
   &lt;span class="na"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;
   &lt;span class="p"&gt;},&lt;/span&gt;
   &lt;span class="na"&gt;getters&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;
   &lt;span class="p"&gt;},&lt;/span&gt;
   &lt;span class="na"&gt;mutations&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;
   &lt;span class="p"&gt;},&lt;/span&gt;
   &lt;span class="na"&gt;actions&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Store&lt;/strong&gt; : This holds out state in our application, and this can be accessed using&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;$store&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;State&lt;/strong&gt; : This is the data that will be shared in the application. so instead passing it via props. we can simply have it in our store and have our components access them directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getters&lt;/strong&gt;: &lt;a href="https://dev.tourl"&gt;According to the Vuex documentation&lt;/a&gt;, we think of getters as the computed property for store and it has an helper , which is the &lt;code&gt;mapGetters Helper&lt;/code&gt; that simply takes out store getters to out component computed property.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mutations&lt;/strong&gt;: State can only be changed in a vuex store by commiting a mutation. A mutation cannot be called directly. Inorder to do so, you need to use &lt;code&gt;store.commit&lt;/code&gt;. Instead of committing a mutation in a component methods, we simply  dispatch an action on the mutation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actions&lt;/strong&gt; : Action commits a mutation using the &lt;code&gt;contex.comit&lt;/code&gt;and dispatch the action using &lt;code&gt;store.dispatch&lt;/code&gt;. We also have the mapAction helpers.&lt;/p&gt;

&lt;p&gt;Understanding the basic concept of vuex can help us structure and maintain our code effectively&lt;/p&gt;

&lt;p&gt;For further reading , &lt;a href="https://vuex.vuejs.org/#what-is-a-state-management-pattern"&gt;check out the vuex documentation to read more on the core and advance concepts of vuex&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Original article was published on my &lt;a href="https://judyblogbeta.netlify.app/2020-what-is-vuex/"&gt;blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>vue</category>
    </item>
    <item>
      <title>How to append an icon to show/hide password with vuetify</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Mon, 16 Nov 2020 15:07:13 +0000</pubDate>
      <link>https://dev.to/osejudith/how-to-append-an-icon-to-show-hide-password-with-vuetify-3npn</link>
      <guid>https://dev.to/osejudith/how-to-append-an-icon-to-show-hide-password-with-vuetify-3npn</guid>
      <description>&lt;p&gt;&lt;code&gt;template&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;v-text-field&lt;/span&gt;
  &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt;
  &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt;
  &lt;span class="na"&gt;label=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; 
  &lt;span class="na"&gt;:type=&lt;/span&gt;&lt;span class="s"&gt;"show ?'text': 
  'password'"&lt;/span&gt;
  &lt;span class="na"&gt;:append-icon=&lt;/span&gt;&lt;span class="s"&gt;"show ?'mdi-eye':'mdi-eye-off'"&lt;/span&gt;   
  &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="na"&gt;click:append=&lt;/span&gt;&lt;span class="s"&gt;"show=!show"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/v-text-field&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;script&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="na"&gt;show&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;
          &lt;span class="p"&gt;}&lt;/span&gt;
       &lt;span class="p"&gt;}&lt;/span&gt;
     &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For further reading , &lt;a href="https://vuetifyjs.com/en/components/text-fields/"&gt;check out the vuetify documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vue</category>
    </item>
    <item>
      <title>How to solve laravel 500 internal server error deployed via shared hosting</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Thu, 23 Apr 2020 10:18:00 +0000</pubDate>
      <link>https://dev.to/osejudith/how-to-solve-laravel-500-internal-server-error-deployed-via-shared-hosting-4348</link>
      <guid>https://dev.to/osejudith/how-to-solve-laravel-500-internal-server-error-deployed-via-shared-hosting-4348</guid>
      <description>&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500" rel="noopener noreferrer"&gt;500 internal server error&lt;/a&gt; can be frustrating after deploying an application,  this was the case when I deployed a &lt;code&gt;laravel&lt;/code&gt; application via shared hosting. &lt;/p&gt;

&lt;p&gt;After deploying the project,  I was getting a 500 internal server error ,  after much checks here and there,  I was able to resolve it&lt;/p&gt;

&lt;p&gt;What I did was to change the PHP version in my c-panel to a higher version, after doing that,  my project become live... &lt;/p&gt;

&lt;p&gt;I hope you find this resourceful &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftgtfy82cxh4zjp1h43oc.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftgtfy82cxh4zjp1h43oc.PNG" alt="php version"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1wdd3qmnkl8ixslxb6y2.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1wdd3qmnkl8ixslxb6y2.PNG" alt="change version"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;visit my &lt;a href="https://judithoiku.tech/" rel="noopener noreferrer"&gt;blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;follow me on &lt;a href="https://twitter.com/OseJudith" rel="noopener noreferrer"&gt;twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>laravel</category>
    </item>
    <item>
      <title>Debugging As a Developer</title>
      <dc:creator>Judith ☁ Oiku</dc:creator>
      <pubDate>Tue, 14 Apr 2020 13:24:55 +0000</pubDate>
      <link>https://dev.to/osejudith/debugging-as-a-developer-2cc3</link>
      <guid>https://dev.to/osejudith/debugging-as-a-developer-2cc3</guid>
      <description>&lt;p&gt;Developers are faced with one area of their coding journey that can be quite frustrating &lt;strong&gt;&lt;a href="https://en.m.wikipedia.org/wiki/Debugging"&gt;DEBUGGING&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Debugging is the process of finding and resolving defects or problems within a computer program that prevents correct operation of computer software or a system - &lt;em&gt;Wikipedia&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is an inevitable phase in development, as you constantly encounter &lt;code&gt;bugs&lt;/code&gt; in one way or the other; this may take days or weeks to debug... &lt;strong&gt;Not to scare you,  especially if you are just starting out LOL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But &lt;a href="https://en.m.wikipedia.org/wiki/Software_bug"&gt;bugs&lt;/a&gt; actually doesn't make you less of a &lt;code&gt;programmer&lt;/code&gt;,  what is happening basically, is that, there is a missing piece in that puzzle you have to unravel or solve and  this in return make you better as a &lt;code&gt;developer&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How Are Bugs Introduced
&lt;/h1&gt;

&lt;p&gt;There are couple of ways &lt;code&gt;bugs&lt;/code&gt; are introduced in our computer program which are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;when you don't understand the program structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;breaking changes in computer program versions. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://en.m.wikipedia.org/wiki/Syntax_error"&gt;syntax&lt;/a&gt; errors from programmers such as missing a closing parenthesis etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;and lots more.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tools For Debugging
&lt;/h1&gt;

&lt;p&gt;The most readily available tool for &lt;code&gt;debugging&lt;/code&gt; is the &lt;a href="https://en.m.wikipedia.org/wiki/Debugger"&gt;Developer Debugger Tool&lt;/a&gt; which is available on most commonly used &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools"&gt;browsers&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uR569kOP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/lncuhygbke35hyn9hoon.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uR569kOP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/lncuhygbke35hyn9hoon.PNG" alt="debugger-tool" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have &lt;a href="https://www.google.com/amp/s/stackify.com/top-integrated-developer-environments-ides/amp/"&gt;IDE's&lt;/a&gt; like  &lt;a href="https://code.visualstudio.com/docs/editor/debugging"&gt;VS Code's&lt;/a&gt;. This has an built-in &lt;code&gt;debugger&lt;/code&gt; that helps accelerate your edit, compile and debug loop. You can also apply &lt;code&gt;breakpoints&lt;/code&gt; and check for &lt;code&gt;errors&lt;/code&gt; in your &lt;code&gt;computer program&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PWnUNcST--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/xohrnv3aaf1oqvol3aeq.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PWnUNcST--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/xohrnv3aaf1oqvol3aeq.PNG" alt="Alt Text" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Other Ways Of Approaching Bugs
&lt;/h1&gt;

&lt;p&gt;So what are the best ways we can approach our computer program when there are &lt;strong&gt;bugs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;: this is a very important tool that can help you solve problem in any computer program.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Understanding&lt;/strong&gt;: you have to understand what you are coding,  what are your expectations and that gives you an hint on how to find a possible solution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go online&lt;/strong&gt;: there are online platforms that are very helpful when it comes to proffering solutions in any programming language such as &lt;a href="https://stackoverflow.com/"&gt;Stackoverflow&lt;/a&gt; and a lot of developers can testify to that,  and other similar platform, take for example, if you are a &lt;code&gt;Laravel&lt;/code&gt; developer like myself,  you will find &lt;a href="https://laracasts.com/"&gt;Laracats&lt;/a&gt;,  &lt;a href="https://appdividend.com/amp/laravel-tutorial/"&gt;appdividend&lt;/a&gt; very useful. &lt;code&gt;YouTube&lt;/code&gt; is another useful tool  I find it very interesting, you get to see the practical demo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Research&lt;/strong&gt;: check out for breaking changes like change in version especially if you are coding from a tutorial video and use the program documentation to cover up for any error.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reach out&lt;/strong&gt;: yeah,  call a friend , your mentor and discuss your problem with them,  your can go further by sharing your screen with them or in any forum like &lt;a href="https://github.com/"&gt;Github&lt;/a&gt; by dropping a message or issue or checking out for solved issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Relax&lt;/strong&gt;: fatigue on the part of the developer can cause him or her to mess things up,  so leave the code and do other things you find interesting,  when you feel refreshed,  come back. Am sure you will begin to see things from a different picture.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically,  I have highlighted most of the ways that works for me as a developer,  I hope they work for you as well&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Feel free to share your experience or ways you approach bugs in your computer program&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Original article was published on my &lt;a href="https://judyblogbeta.netlify.com/2020-debugging-as-a-developer/"&gt;blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>debugger</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
