<?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: Adetunji Ojekunle</title>
    <description>The latest articles on DEV Community by Adetunji Ojekunle (@habdams).</description>
    <link>https://dev.to/habdams</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%2F564226%2F3b0de7d1-4764-4651-8a49-abfbc0043b7a.jpeg</url>
      <title>DEV Community: Adetunji Ojekunle</title>
      <link>https://dev.to/habdams</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/habdams"/>
    <language>en</language>
    <item>
      <title>You want to clone a specific commit - git</title>
      <dc:creator>Adetunji Ojekunle</dc:creator>
      <pubDate>Thu, 01 May 2025 11:30:00 +0000</pubDate>
      <link>https://dev.to/habdams/you-want-to-clone-a-specific-commit-git-2ppl</link>
      <guid>https://dev.to/habdams/you-want-to-clone-a-specific-commit-git-2ppl</guid>
      <description>&lt;p&gt;So you want to &lt;code&gt;git clone&lt;/code&gt; a specific commit, but you can't really do that for now &lt;em&gt;(tell me if you have a different way)&lt;/em&gt;. There's a clever work around I use;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clone the entire repo&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git reset --hard [commit-id]&lt;/code&gt;| &lt;em&gt;[commit-id]&lt;/em&gt; will be the specific commit you are interested in, I assume you know the specific commit either by looking at the commit history or just do &lt;code&gt;git log&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>git</category>
      <category>note</category>
    </item>
    <item>
      <title>The difference between a Virtual Machine (VM) and a Container</title>
      <dc:creator>Adetunji Ojekunle</dc:creator>
      <pubDate>Tue, 19 Apr 2022 15:25:24 +0000</pubDate>
      <link>https://dev.to/habdams/the-difference-between-a-virtual-machine-vm-and-a-container-123i</link>
      <guid>https://dev.to/habdams/the-difference-between-a-virtual-machine-vm-and-a-container-123i</guid>
      <description>&lt;h5&gt;
  
  
  &lt;em&gt;They are two ways to deploy multiple, isolated services on a single platform&lt;/em&gt;
&lt;/h5&gt;

&lt;h2&gt;
  
  
  The Difference
&lt;/h2&gt;

&lt;h3&gt;
  
  
  VM's
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;VM's have an hypervisor managing the resources in connecting to the main physical machine&lt;/li&gt;
&lt;li&gt;Multiple machine with multiple OS's can run separately in isolation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;System reliability: host OS wont be affected even if it crashes because of isolation.&lt;/li&gt;
&lt;li&gt;Provides layer of security, even if infected by some malware. Host OS will not be affected&lt;/li&gt;
&lt;li&gt;Multiple OS environment running on the system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Running multiple os's can lead to instability&lt;/li&gt;
&lt;li&gt;Less efficient&lt;/li&gt;
&lt;li&gt;Can be infected with the weakness of the Host Os&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Containers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Key: There are exceptionally lightweight.&lt;/li&gt;
&lt;li&gt;A form of operating system virtualization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;An Abstraction of the app layer that package the code and dependencies together&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They can share The host OS kernel, libraries and binaries too
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extremely Lightweight and fast&lt;/li&gt;
&lt;li&gt;Exemplary when it comes to CI?C implementation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;depends on the Host OS&lt;/li&gt;
&lt;li&gt;Cannot all by themselves provide security at a commendable level.&lt;/li&gt;
&lt;li&gt;When a container is deleted, if the data inside is lost. You will have to add Data volumes in order to store the data.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Major Difference: Vm's Hypervisor virtualizes the physical &lt;br&gt;
  hardware, Each VM contains a guest OS, a virtual copy of the &lt;br&gt;
  hardware the oS requires to run WHILE a container &lt;br&gt;
  virtualizes the OS and only contains the application and it &lt;br&gt;
  libraries.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>containers</category>
      <category>vm</category>
      <category>docker</category>
    </item>
    <item>
      <title>Making a zsh script</title>
      <dc:creator>Adetunji Ojekunle</dc:creator>
      <pubDate>Mon, 10 May 2021 00:05:37 +0000</pubDate>
      <link>https://dev.to/habdams/making-a-zsh-script-2aje</link>
      <guid>https://dev.to/habdams/making-a-zsh-script-2aje</guid>
      <description>&lt;h1&gt;
  
  
  Background:
&lt;/h1&gt;

&lt;p&gt;I have been making small notes about my learnings daily, typically any new thing I learnt. I make a small note about it.&lt;br&gt;
I want to name this note with dates and time(This is for easy find, recollection etc) but I need to also get the date in this format &lt;strong&gt;20210510002211&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-- Now, the terminal will readily spew out this date formate with this command&lt;br&gt;
&lt;strong&gt;&lt;em&gt;date  +%Y%m%d%H%M%S *&lt;/em&gt; - try it.&lt;/strong&gt;*&lt;/p&gt;

&lt;p&gt;-- Now I can't keep that in the terminal, hence why i need to make it into a script. give it a fancy name and run quick&lt;br&gt;
What do you need:&lt;/p&gt;

&lt;p&gt;-A text editor(I use nano here)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a file
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash
# A script that spews out current long date and time
date  +%Y%m%d%H%M%S
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;save the file giving it a fancy name (datum)&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Setting Permission
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod 755 datum       //datum is the fancy name  I'm calling the script
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
&lt;code&gt;&lt;br&gt;
--- The script can run now, try&lt;/code&gt;&lt;code&gt;./datum&lt;/code&gt;`&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Putting it in my own path&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code&gt;&lt;/code&gt;&lt;code&gt;echo PATH&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br&gt;
-- It should reveal a the current excutable path on the system&lt;br&gt;
-- It is good practice to have a special folder for your scripts /bin, create that folder on your home directory.&lt;br&gt;
Now you will have a this pathe &lt;em&gt;./bin/datum&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We need to add the new path to PATH definition on the .zshsrc file&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;do &lt;code&gt;&lt;/code&gt;&lt;code&gt;nano ~/.zshsrc&lt;/code&gt;&lt;code&gt;&lt;/code&gt; - You will be able to edit that file now, add the path to the script to the PATH line&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;save and exit&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now, we need to refresh the zsh files&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;do &lt;code&gt;&lt;/code&gt;&lt;code&gt;source .zshsrc&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Now, just typing datum in the terminal should spit out that long date and time&lt;/em&gt;&lt;/p&gt;

</description>
      <category>zsh</category>
      <category>shell</category>
      <category>scripting</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Installing Docker on MacOS</title>
      <dc:creator>Adetunji Ojekunle</dc:creator>
      <pubDate>Sun, 09 May 2021 08:50:23 +0000</pubDate>
      <link>https://dev.to/habdams/installing-docker-on-macos-3gnh</link>
      <guid>https://dev.to/habdams/installing-docker-on-macos-3gnh</guid>
      <description>&lt;p&gt;Background&lt;br&gt;
-I had issues installing Docker so Looked up how to do it via shell [I used the *Brew package installer], I added a more in depth reference below.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Update Brew
&lt;em&gt;brew  update&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Install doker
&lt;em&gt;brew install docker&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Install docker machine
&lt;em&gt;brew install docker-machine&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Install virtualbox
&lt;em&gt;brew install --cask virtualbox&lt;/em&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;....You might run into issues running the 4th command&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You will have to allow software installation from Oracle blah-blah-blah in your System Preference. Chances are your sytem will pop out that information for you and then do a restart.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;**Everything about docker and it's environment is set up already&lt;/p&gt;

&lt;p&gt;(More depth follow through)[&lt;a href="https://www.robinwieruch.de/docker-macos" rel="noopener noreferrer"&gt;https://www.robinwieruch.de/docker-macos&lt;/a&gt;]&lt;/p&gt;

</description>
      <category>docker</category>
      <category>brew</category>
    </item>
  </channel>
</rss>
