<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="http://hepaestus.com/feed.xml" rel="self" type="application/atom+xml" /><link href="http://hepaestus.com/" rel="alternate" type="text/html" /><updated>2025-12-13T06:14:31+00:00</updated><id>http://hepaestus.com/feed.xml</id><title type="html">Hepaestus Consulting</title><subtitle>Concierge IT Services</subtitle><entry><title type="html">Linux Is a Skill You Should Learn: Part 1</title><link href="http://hepaestus.com/coding/2025/11/25/linux-is-a-skill.html" rel="alternate" type="text/html" title="Linux Is a Skill You Should Learn: Part 1" /><published>2025-11-25T11:20:00+00:00</published><updated>2025-11-25T11:20:00+00:00</updated><id>http://hepaestus.com/coding/2025/11/25/linux-is-a-skill</id><content type="html" xml:base="http://hepaestus.com/coding/2025/11/25/linux-is-a-skill.html"><![CDATA[<h2 class="text-center">Linux Is a Skill You Should Learn: Part 1</h2>

<div class="text-center pt-3 blog-main-image text-center">
    <div class="row">
        <div class="col">
            <img class=" img-fluid" src="/assets/images/penguin-blue-back.png" />
        </div>        
    </div>
</div>

<h3 id="the-it-skill-that-pays-dividends">The IT Skill That Pays Dividends</h3>

<p>Easier than you think and privacy centered.</p>

<p>Are you tired of the major OS companies quietly stealing your data? Of constantly changing AI policies? Ai In general? Maybe it’s time for a new operating system. Or maybe you feel like learning a new skill might be helpful to your career?</p>

<p>Take this time to learn some helpful and commonly used linux commands. Not only will this help you in the long run but it will make you feel like a legit hacker. And when you do decide to take the Linux plunge you will be terminal ready.</p>

<h4 id="linux-commands-a-primer">Linux Commands A Primer</h4>

<p>A Primer for commonly used Linux commands.</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">man [command]</code>  : Displays the manual page for the specified command.</li>
  <li><code class="language-plaintext highlighter-rouge">info [command]</code>  : Some Distro favor this command over <code class="language-plaintext highlighter-rouge">man</code>. Displays detailed information about a command, including its options and usage.</li>
  <li><code class="language-plaintext highlighter-rouge">[command] --help</code>  : Displays a brief help message for a command, including its options.</li>
</ul>

<h4 id="files-and-directories">Files and Directories</h4>

<p>In Linux, files and directories are organized in a hierarchical structure known as the filesystem. The top-level directory is called the root directory, denoted by a forward slash (<code class="language-plaintext highlighter-rouge">/</code>). All other files and directories are contained within this root directory. Directories can contain files as well as other directories (subdirectories). Each file and directory has associated metadata, including permissions, ownership, and timestamps.</p>

<h4 id="file-command">File Command</h4>

<p>The <code class="language-plaintext highlighter-rouge">file</code> command is used to determine the type of a file. It examines the file’s content and provides information about its format. For example:</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">file myfile.txt</code>  : This command will output something like “ASCII text” if <code class="language-plaintext highlighter-rouge">myfile.txt</code> is a plain text file.</li>
  <li><code class="language-plaintext highlighter-rouge">file image.png</code>  : This command will output something like “PNG image data” if <code class="language-plaintext highlighter-rouge">image.png</code> is a PNG image file.</li>
  <li><code class="language-plaintext highlighter-rouge">file script.sh</code>  : This command will output something like “Bourne-Again shell script” if <code class="language-plaintext highlighter-rouge">script.sh</code> is a shell script.</li>
  <li><code class="language-plaintext highlighter-rouge">file binary.exe</code>  : This command will output something like “ELF 64-bit LSB executable” if <code class="language-plaintext highlighter-rouge">binary.exe</code> is a compiled executable file.</li>
</ul>

<h4 id="stat-command">Stat Command</h4>

<p>The <code class="language-plaintext highlighter-rouge">stat</code> command is used to display detailed information about a file or directory, including its size, permissions, ownership, and timestamps. For example:</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">stat myfile.txt</code>  : This command will display information such as file size, access permissions, owner, group, and timestamps for <code class="language-plaintext highlighter-rouge">myfile.txt</code>.</li>
  <li><code class="language-plaintext highlighter-rouge">stat /home/user</code>  : This command will display similar information for the <code class="language-plaintext highlighter-rouge">/home/user</code> directory.</li>
</ul>

<p>Example:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">stat </span>foo.txt
  File: foo.txt
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 43h/67d Inode: 33495522229276840  Links: 1
Access: <span class="o">(</span>0777/-rwxrwxrwx<span class="o">)</span>  Uid: <span class="o">(</span> 1000/    pete<span class="o">)</span>   Gid: <span class="o">(</span> 1000/    pete<span class="o">)</span>
Access: 2025-11-19 16:22:09.251326900 +0900
Modify: 2025-11-19 16:22:09.251326900 +0900
Change: 2025-11-19 16:22:09.251326900 +0900
 Birth: -
</code></pre></div></div>

<h4 id="basic-commands">Basic Commands</h4>

<ul>
  <li><code class="language-plaintext highlighter-rouge">ls</code>  : Lists files and directories in the current directory.</li>
  <li><code class="language-plaintext highlighter-rouge">ls -al</code>  : Lists all files and directories with detailed information, including hidden files.</li>
  <li><code class="language-plaintext highlighter-rouge">cd [directory]</code>  : Changes the current directory to the specified directory.</li>
  <li><code class="language-plaintext highlighter-rouge">pwd</code>  : Prints the current working directory.</li>
  <li><code class="language-plaintext highlighter-rouge">cp [source] [destination]</code>  : Copies files or directories from source to destination.</li>
  <li><code class="language-plaintext highlighter-rouge">mv [source] [destination]</code>  : Moves or renames files or directories.</li>
  <li><code class="language-plaintext highlighter-rouge">rm [file]</code>  : Removes (deletes) the specified file.</li>
  <li><code class="language-plaintext highlighter-rouge">rm -r [directory]</code>  : Removes a directory and its contents recursively.</li>
  <li><code class="language-plaintext highlighter-rouge">mkdir [directory]</code>  : Creates a new directory.</li>
  <li><code class="language-plaintext highlighter-rouge">rmdir [directory]</code>  : Removes an empty directory.</li>
  <li><code class="language-plaintext highlighter-rouge">touch [file]</code>  : Creates a new empty file or updates the timestamp of an existing file.</li>
  <li><code class="language-plaintext highlighter-rouge">chmod [permissions] [file]</code>  : Changes the permissions of a file or directory using octal notation.</li>
  <li><code class="language-plaintext highlighter-rouge">chmod +x [file]</code>  : Changes the permissions of a file to executable.</li>
  <li><code class="language-plaintext highlighter-rouge">chown [user]:[group] [file]</code>  : Changes the ownership of a file or directory.</li>
</ul>

<h4 id="file-viewing-and-editing">File Viewing and Editing</h4>

<ul>
  <li><code class="language-plaintext highlighter-rouge">cat [file]</code> : Displays the contents of a file.</li>
  <li><code class="language-plaintext highlighter-rouge">less [file]</code> : Views the contents of a file one page at a time.</li>
  <li><code class="language-plaintext highlighter-rouge">more [file]</code> : Similar to <code class="language-plaintext highlighter-rouge">less</code>, but with fewer features.</li>
  <li><code class="language-plaintext highlighter-rouge">head [file]</code> : Displays the first 10 lines of a file.</li>
  <li><code class="language-plaintext highlighter-rouge">tail [file]</code> : Displays the last 10 lines of a file.</li>
  <li><code class="language-plaintext highlighter-rouge">nano [file]</code> : Opens a file in the nano text editor.</li>
  <li><code class="language-plaintext highlighter-rouge">vim [file]</code> : Opens a file in the <a href="https://github.com/hepaestus/ubuntu_club_notes/blob/main/vim_usage.md">vim</a> text editor.</li>
  <li><code class="language-plaintext highlighter-rouge">grep [pattern] [file]</code>  : Searches for a pattern in a file and displays matching lines.</li>
  <li><code class="language-plaintext highlighter-rouge">find [directory] -iname [filename]</code>  : Searches for files by case insensitive name in a specified directory.</li>
</ul>

<h4 id="system-information">System Information</h4>

<ul>
  <li><code class="language-plaintext highlighter-rouge">top</code>  : Displays real-time system information, including running processes and resource usage.</li>
  <li><code class="language-plaintext highlighter-rouge">htop</code>  : An enhanced version of <code class="language-plaintext highlighter-rouge">top</code> with a more user-friendly interface (may need to be installed).</li>
  <li><code class="language-plaintext highlighter-rouge">df -h</code>  : Displays disk space usage in a human-readable format.</li>
  <li><code class="language-plaintext highlighter-rouge">du -h [directory]</code>  : Displays the disk usage of a directory and its contents in a human-readable format.</li>
  <li><code class="language-plaintext highlighter-rouge">free -h</code>  : Displays memory usage in a human-readable format.</li>
  <li><code class="language-plaintext highlighter-rouge">uname -a</code>  : Displays detailed information about the system and kernel.</li>
  <li><code class="language-plaintext highlighter-rouge">uptime</code>  : Displays how long the system has been running along with load averages.</li>
  <li><code class="language-plaintext highlighter-rouge">ps -aux</code>  : Displays a list of all running processes.</li>
  <li><code class="language-plaintext highlighter-rouge">ps -afew</code>  : Displays a detailed list of all running processes.</li>
  <li><code class="language-plaintext highlighter-rouge">kill [PID]</code>  : Terminates a process with the specified Process ID (PID).</li>
</ul>

<h4 id="ls-commands">LS Commands</h4>

<ul>
  <li><code class="language-plaintext highlighter-rouge">lscpu</code> : Displays detailed information about the CPU architecture.</li>
  <li><code class="language-plaintext highlighter-rouge">lsblk</code> : Lists information about all available or the specified block devices.</li>
  <li><code class="language-plaintext highlighter-rouge">lsusb</code> : Lists all USB devices connected to the system.</li>
</ul>

<h4 id="sudo-command">SUDO Command</h4>

<p>The <code class="language-plaintext highlighter-rouge">sudo</code> command stands for “superuser do” and allows a permitted user to execute a command as the superuser or another user, as specified by the security policy. It is commonly used to perform administrative tasks that require elevated privileges.</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">sudo [command]</code>  : Executes a command with superuser (root) privileges. You may be prompted to enter your password.</li>
  <li><code class="language-plaintext highlighter-rouge">sudo lshw</code>  : Displays detailed information about the hardware configuration of the system.</li>
  <li><code class="language-plaintext highlighter-rouge">sudo fdisk -l</code>  : Lists all disk partitions and their details (requires superuser privileges).</li>
</ul>

<h4 id="networking">Networking</h4>

<ul>
  <li><code class="language-plaintext highlighter-rouge">ping [hostname or IP]</code>  : Sends ICMP echo requests to test network connectivity.</li>
  <li><code class="language-plaintext highlighter-rouge">ifconfig</code>  : Displays network interface configuration (may need to be installed).</li>
  <li><code class="language-plaintext highlighter-rouge">ip addr</code>  : Displays IP address and network interface information.</li>
  <li><code class="language-plaintext highlighter-rouge">netstat -tuan</code>  : Displays active network connections and listening ports.</li>
  <li><code class="language-plaintext highlighter-rouge">ssh [user]@[hostname or IP]</code>  : Connects to a remote machine via SSH.</li>
  <li><code class="language-plaintext highlighter-rouge">scp [source] [user]@[hostname or IP]:[destination]</code>  : Securely copies files between local and remote machines.</li>
  <li><code class="language-plaintext highlighter-rouge">wget [URL]</code>  : Downloads files from the web.</li>
  <li><code class="language-plaintext highlighter-rouge">curl [URL]</code>  : Transfers data from or to a server using various protocols.</li>
</ul>

<h4 id="package-management-debianubuntu">Package Management (Debian/Ubuntu)</h4>

<ul>
  <li><code class="language-plaintext highlighter-rouge">sudo apt update</code>  : Updates the package index.</li>
  <li><code class="language-plaintext highlighter-rouge">sudo apt upgrade</code>  : Upgrades all installed packages to their latest versions.</li>
  <li><code class="language-plaintext highlighter-rouge">sudo apt install [package]</code>  : Installs a new package.</li>
  <li><code class="language-plaintext highlighter-rouge">sudo apt remove [package]</code>  : Removes an installed package.</li>
  <li><code class="language-plaintext highlighter-rouge">sudo apt autoremove</code>  : Removes unused packages that were automatically installed to satisfy dependencies.</li>
</ul>

<h4 id="file-permissions">File Permissions</h4>

<ul>
  <li><code class="language-plaintext highlighter-rouge">ls -l</code>  : Lists files and directories with detailed information, including permissions.</li>
</ul>

<h4 id="understanding-file-permissions">Understanding File Permissions</h4>

<p>File permissions in Linux are represented by a string of 10 characters, such as <code class="language-plaintext highlighter-rouge">-rwxr-xr--</code>. The first character indicates the file type (e.g., <code class="language-plaintext highlighter-rouge">-</code> for a regular file, <code class="language-plaintext highlighter-rouge">d</code> for a directory). The next nine characters are divided into three groups of three, representing the permissions for the owner, group, and others, respectively. Each group consists of three characters: read (<code class="language-plaintext highlighter-rouge">r</code>), write (<code class="language-plaintext highlighter-rouge">w</code>), and execute (<code class="language-plaintext highlighter-rouge">x</code>). A dash (<code class="language-plaintext highlighter-rouge">-</code>) indicates that the permission is not granted.</p>

<h4 id="changing-file-permissions">Changing File Permissions</h4>

<p>File permissions can be changed using the <code class="language-plaintext highlighter-rouge">chmod</code> command. Permissions can be set using symbolic notation (e.g., <code class="language-plaintext highlighter-rouge">u</code>, <code class="language-plaintext highlighter-rouge">g</code>, <code class="language-plaintext highlighter-rouge">o</code>, <code class="language-plaintext highlighter-rouge">a</code> for user, group, others, all) or octal notation (e.g., <code class="language-plaintext highlighter-rouge">7</code> for read, write, execute; <code class="language-plaintext highlighter-rouge">6</code> for read, write; <code class="language-plaintext highlighter-rouge">5</code> for read, execute; etc.). For example:</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">chmod u+x file.txt</code>  : Adds execute permission for the owner of the file.</li>
  <li><code class="language-plaintext highlighter-rouge">chmod 755 file.txt</code>  : Sets permissions to read, write, and execute for the owner, and read and execute for group and others.</li>
</ul>

<h4 id="changing-file-ownership">Changing File Ownership</h4>

<p>File ownership can be changed using the <code class="language-plaintext highlighter-rouge">chown</code> command. You can specify the new owner and group for a file or directory. For example:</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">chown user:group file.txt</code>  : Changes the owner to <code class="language-plaintext highlighter-rouge">user</code> and the group to <code class="language-plaintext highlighter-rouge">group</code>.</li>
  <li><code class="language-plaintext highlighter-rouge">chown user file.txt</code>  : Changes only the owner to <code class="language-plaintext highlighter-rouge">user</code>, keeping the group unchanged.</li>
</ul>

<h4 id="becoming-the-root-user">Becoming the Root User</h4>

<p>To perform administrative tasks that require elevated privileges, you can switch to the root user using the <code class="language-plaintext highlighter-rouge">su</code> command or execute commands with <code class="language-plaintext highlighter-rouge">sudo</code>.</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">sudo su -</code>  : Switches to the root user account. You will be prompted to enter the root password.</li>
  <li><code class="language-plaintext highlighter-rouge">exit</code>  : Exits the root user session and returns to the previous user.</li>
</ul>

<h4 id="exit-command">Exit Command</h4>

<ul>
  <li><code class="language-plaintext highlighter-rouge">exit</code>  : Exits the current terminal! Are you done with your terminal just type <code class="language-plaintext highlighter-rouge">exit</code> at the prompt and your current terminal will be closed.</li>
</ul>

<h4 id="thanks-for-reading-this-far">Thanks for reading this far</h4>

<p>Lets stop this lesson here, it is a lot to digest. You should be proud of yourself for sticking around.</p>

<p>Have a great Day.</p>

<p>P.</p>]]></content><author><name>Pete</name></author><category term="coding" /><category term="linux" /><category term="coding" /><category term="privacy" /><summary type="html"><![CDATA[Linux Is a Skill You Should Learn: Part 1 The IT Skill That Pays Dividends Easier than you think and privacy centered. Are you tired of the major OS companies quietly stealing your data? Of constantly changing AI policies? Ai In general? Maybe it’s time for a new operating system. Or maybe you feel like learning a new skill might be helpful to your career? Take this time to learn some helpful and commonly used linux commands. Not only will this help you in the long run but it will make you feel like a legit hacker. And when you do decide to take the Linux plunge you will be terminal ready. Linux Commands A Primer A Primer for commonly used Linux commands. man [command] : Displays the manual page for the specified command. info [command] : Some Distro favor this command over man. Displays detailed information about a command, including its options and usage. [command] --help : Displays a brief help message for a command, including its options. Files and Directories In Linux, files and directories are organized in a hierarchical structure known as the filesystem. The top-level directory is called the root directory, denoted by a forward slash (/). All other files and directories are contained within this root directory. Directories can contain files as well as other directories (subdirectories). Each file and directory has associated metadata, including permissions, ownership, and timestamps. File Command The file command is used to determine the type of a file. It examines the file’s content and provides information about its format. For example: file myfile.txt : This command will output something like “ASCII text” if myfile.txt is a plain text file. file image.png : This command will output something like “PNG image data” if image.png is a PNG image file. file script.sh : This command will output something like “Bourne-Again shell script” if script.sh is a shell script. file binary.exe : This command will output something like “ELF 64-bit LSB executable” if binary.exe is a compiled executable file. Stat Command The stat command is used to display detailed information about a file or directory, including its size, permissions, ownership, and timestamps. For example: stat myfile.txt : This command will display information such as file size, access permissions, owner, group, and timestamps for myfile.txt. stat /home/user : This command will display similar information for the /home/user directory. Example: $ stat foo.txt File: foo.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 43h/67d Inode: 33495522229276840 Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 1000/ pete) Gid: ( 1000/ pete) Access: 2025-11-19 16:22:09.251326900 +0900 Modify: 2025-11-19 16:22:09.251326900 +0900 Change: 2025-11-19 16:22:09.251326900 +0900 Birth: - Basic Commands ls : Lists files and directories in the current directory. ls -al : Lists all files and directories with detailed information, including hidden files. cd [directory] : Changes the current directory to the specified directory. pwd : Prints the current working directory. cp [source] [destination] : Copies files or directories from source to destination. mv [source] [destination] : Moves or renames files or directories. rm [file] : Removes (deletes) the specified file. rm -r [directory] : Removes a directory and its contents recursively. mkdir [directory] : Creates a new directory. rmdir [directory] : Removes an empty directory. touch [file] : Creates a new empty file or updates the timestamp of an existing file. chmod [permissions] [file] : Changes the permissions of a file or directory using octal notation. chmod +x [file] : Changes the permissions of a file to executable. chown [user]:[group] [file] : Changes the ownership of a file or directory. File Viewing and Editing cat [file] : Displays the contents of a file. less [file] : Views the contents of a file one page at a time. more [file] : Similar to less, but with fewer features. head [file] : Displays the first 10 lines of a file. tail [file] : Displays the last 10 lines of a file. nano [file] : Opens a file in the nano text editor. vim [file] : Opens a file in the vim text editor. grep [pattern] [file] : Searches for a pattern in a file and displays matching lines. find [directory] -iname [filename] : Searches for files by case insensitive name in a specified directory. System Information top : Displays real-time system information, including running processes and resource usage. htop : An enhanced version of top with a more user-friendly interface (may need to be installed). df -h : Displays disk space usage in a human-readable format. du -h [directory] : Displays the disk usage of a directory and its contents in a human-readable format. free -h : Displays memory usage in a human-readable format. uname -a : Displays detailed information about the system and kernel. uptime : Displays how long the system has been running along with load averages. ps -aux : Displays a list of all running processes. ps -afew : Displays a detailed list of all running processes. kill [PID] : Terminates a process with the specified Process ID (PID). LS Commands lscpu : Displays detailed information about the CPU architecture. lsblk : Lists information about all available or the specified block devices. lsusb : Lists all USB devices connected to the system. SUDO Command The sudo command stands for “superuser do” and allows a permitted user to execute a command as the superuser or another user, as specified by the security policy. It is commonly used to perform administrative tasks that require elevated privileges. sudo [command] : Executes a command with superuser (root) privileges. You may be prompted to enter your password. sudo lshw : Displays detailed information about the hardware configuration of the system. sudo fdisk -l : Lists all disk partitions and their details (requires superuser privileges). Networking ping [hostname or IP] : Sends ICMP echo requests to test network connectivity. ifconfig : Displays network interface configuration (may need to be installed). ip addr : Displays IP address and network interface information. netstat -tuan : Displays active network connections and listening ports. ssh [user]@[hostname or IP] : Connects to a remote machine via SSH. scp [source] [user]@[hostname or IP]:[destination] : Securely copies files between local and remote machines. wget [URL] : Downloads files from the web. curl [URL] : Transfers data from or to a server using various protocols. Package Management (Debian/Ubuntu) sudo apt update : Updates the package index. sudo apt upgrade : Upgrades all installed packages to their latest versions. sudo apt install [package] : Installs a new package. sudo apt remove [package] : Removes an installed package. sudo apt autoremove : Removes unused packages that were automatically installed to satisfy dependencies. File Permissions ls -l : Lists files and directories with detailed information, including permissions. Understanding File Permissions File permissions in Linux are represented by a string of 10 characters, such as -rwxr-xr--. The first character indicates the file type (e.g., - for a regular file, d for a directory). The next nine characters are divided into three groups of three, representing the permissions for the owner, group, and others, respectively. Each group consists of three characters: read (r), write (w), and execute (x). A dash (-) indicates that the permission is not granted. Changing File Permissions File permissions can be changed using the chmod command. Permissions can be set using symbolic notation (e.g., u, g, o, a for user, group, others, all) or octal notation (e.g., 7 for read, write, execute; 6 for read, write; 5 for read, execute; etc.). For example: chmod u+x file.txt : Adds execute permission for the owner of the file. chmod 755 file.txt : Sets permissions to read, write, and execute for the owner, and read and execute for group and others. Changing File Ownership File ownership can be changed using the chown command. You can specify the new owner and group for a file or directory. For example: chown user:group file.txt : Changes the owner to user and the group to group. chown user file.txt : Changes only the owner to user, keeping the group unchanged. Becoming the Root User To perform administrative tasks that require elevated privileges, you can switch to the root user using the su command or execute commands with sudo. sudo su - : Switches to the root user account. You will be prompted to enter the root password. exit : Exits the root user session and returns to the previous user. Exit Command exit : Exits the current terminal! Are you done with your terminal just type exit at the prompt and your current terminal will be closed. Thanks for reading this far Lets stop this lesson here, it is a lot to digest. You should be proud of yourself for sticking around. Have a great Day. P.]]></summary></entry><entry><title type="html">You Need A GitHub Jekyll Website</title><link href="http://hepaestus.com/coding/2024/09/16/github-jekyll-websites.html" rel="alternate" type="text/html" title="You Need A GitHub Jekyll Website" /><published>2024-09-16T11:20:00+00:00</published><updated>2024-09-16T11:20:00+00:00</updated><id>http://hepaestus.com/coding/2024/09/16/github-jekyll-websites</id><content type="html" xml:base="http://hepaestus.com/coding/2024/09/16/github-jekyll-websites.html"><![CDATA[<h2 class="text-center">You Need A GitHub Jekyll Website</h2>

<div class="text-center pt-3 blog-main-image text-center">
    <div class="row">
        <div class="col">
            <img class="bg-light img-fluid" src="/assets/images/github-and-jekyll-logos.png" />
        </div>        
    </div>
</div>

<h3 id="the-cheap-and-easy-way-to-have-a-website">The cheap and easy way to have a website</h3>

<p>Easier than you think to manage and update</p>

<p>Are you paying a lot of money per month for your business website?</p>

<p>If you are not using Jekyll and Github, to build and host your website, you are paying too much.</p>

<p>You are looking at a Jekyll website right now. It is hosted on GitHub. It is fast and secure. It is also cheap. No one will know, how will they know? :)</p>

<h3 id="why-jekyll">Why Jekyll?</h3>

<p>Jekyll is a low end CMS and static site generator. It takes your content, applies it to a template, and generates a complete website. The website is just HTML, CSS, and JavaScript. No server-side processing is required. This makes it fast and secure. It is also easy to manage and update.</p>

<p>Jekyll lets you seprate content from design. This makes it easy to update your website. You can change the design without changing the content. You can change the content without changing the design. You can even change the design and content at the same time.</p>

<p>Once you decide on a template you are good to go and create all the content you want. You can even create a blog. Jekyll has a built-in blog feature. You can also add a contact form. You can add a gallery. You can add pretty much anything you want.</p>

<h3 id="why-github">Why GitHub?</h3>

<p>GitHub is a web-based Git repository hosting service. It is mostly used for computer code. But it can also host websites. GitHub Pages is a static site hosting service. It is designed to host your personal, organization, or project pages directly from a GitHub repository. It is free and easy to use. Especially when you use some free software like VSCode and Git to manage your codes.</p>

<h3 id="brass-tacks">Brass Tacks</h3>

<p>A Github hosted site is only $4 US per month. The domain name is $12 US per year. <strong>That is $60 US per year</strong>. Which is a lot cheaper than most hosting services. You could even go cheaper, i.e. free hosting, if you want but that is a whole other blog post about Firebase Hosting.</p>

<p>Squarespace, for example, does give you a lot of features. But it is $34 US per month. <strong>That is $408 US per year</strong>. And do you really use all their features? You might intend to, but maybe just spend a lot less and get your feet wet with a Jekyll website. You will still have to update and manage Squarespace yourself, so why not do it with Jekyll and GitHub?</p>

<h3 id="how-to-get-started">How to Get Started</h3>

<ol>
  <li>Create a free GitHub account.</li>
  <li>Decide on a free jekyll template/theme. Checkout some free <a href="http://jekyllthemes.org/">Jekyll Themes</a> for some ideas. Or you can create your own like <a href="/jekyll-bootstrap-site-template">we did</a>.</li>
  <li>Create a new public repository with the name <code class="language-plaintext highlighter-rouge">username.github.io</code> where <code class="language-plaintext highlighter-rouge">username</code> is your GitHub username.</li>
  <li>Optional but helpful install WSL on your Windows computer. This will give you a Linux command line.</li>
  <li>Clone the theme repository to your computer.</li>
  <li>Install the necessary VSCode, Git, and Jekyll software.</li>
  <li>Run the jekyll server on your computer.</li>
</ol>

<p><strong>NOTE</strong>: Check out our <a href="/jekyll-bootstrap-site-template">Jekyll and Bootstrap 5 Template</a> for a great starting point.</p>

<h3 id="how-to-build-your-website">How to Build Your Website</h3>

<p>After you have your Jekyll website running on your computer.</p>

<ol>
  <li>Customize your website settings in the <code class="language-plaintext highlighter-rouge">_config.yml</code> file.</li>
  <li>Create and edit your content using regular markdown files.</li>
  <li>Push your website to your GitHub repository.</li>
  <li>Go to your GitHub repository settings and enable GitHub Pages.</li>
  <li>Your website will now be live at <code class="language-plaintext highlighter-rouge">http://username.github.io</code>.</li>
  <li>Set up your optional custom domain name.</li>
  <li>Enjoy your new super cheap website.</li>
</ol>

<h3 id="does-this-sound-hard">Does this sound hard?</h3>

<p>OK So this isn’t for everyone. But if you are a small business owner, a freelancer, or a hobbyist, this is a great way to have your own custom website.</p>

<h3 id="maybe-get-some-help">Maybe Get some help</h3>

<p>If you need help consider reaching out to us here at <a href="/contact/">Hepaestus Consulting</a>. We can help you get started with your new website. We can also help you with your content and design. We can even help you with your social media and marketing.</p>]]></content><author><name>Pete</name></author><category term="coding" /><category term="github" /><category term="jekyll" /><category term="website" /><summary type="html"><![CDATA[You Need A GitHub Jekyll Website The cheap and easy way to have a website Easier than you think to manage and update Are you paying a lot of money per month for your business website? If you are not using Jekyll and Github, to build and host your website, you are paying too much. You are looking at a Jekyll website right now. It is hosted on GitHub. It is fast and secure. It is also cheap. No one will know, how will they know? :) Why Jekyll? Jekyll is a low end CMS and static site generator. It takes your content, applies it to a template, and generates a complete website. The website is just HTML, CSS, and JavaScript. No server-side processing is required. This makes it fast and secure. It is also easy to manage and update. Jekyll lets you seprate content from design. This makes it easy to update your website. You can change the design without changing the content. You can change the content without changing the design. You can even change the design and content at the same time. Once you decide on a template you are good to go and create all the content you want. You can even create a blog. Jekyll has a built-in blog feature. You can also add a contact form. You can add a gallery. You can add pretty much anything you want. Why GitHub? GitHub is a web-based Git repository hosting service. It is mostly used for computer code. But it can also host websites. GitHub Pages is a static site hosting service. It is designed to host your personal, organization, or project pages directly from a GitHub repository. It is free and easy to use. Especially when you use some free software like VSCode and Git to manage your codes. Brass Tacks A Github hosted site is only $4 US per month. The domain name is $12 US per year. That is $60 US per year. Which is a lot cheaper than most hosting services. You could even go cheaper, i.e. free hosting, if you want but that is a whole other blog post about Firebase Hosting. Squarespace, for example, does give you a lot of features. But it is $34 US per month. That is $408 US per year. And do you really use all their features? You might intend to, but maybe just spend a lot less and get your feet wet with a Jekyll website. You will still have to update and manage Squarespace yourself, so why not do it with Jekyll and GitHub? How to Get Started Create a free GitHub account. Decide on a free jekyll template/theme. Checkout some free Jekyll Themes for some ideas. Or you can create your own like we did. Create a new public repository with the name username.github.io where username is your GitHub username. Optional but helpful install WSL on your Windows computer. This will give you a Linux command line. Clone the theme repository to your computer. Install the necessary VSCode, Git, and Jekyll software. Run the jekyll server on your computer. NOTE: Check out our Jekyll and Bootstrap 5 Template for a great starting point. How to Build Your Website After you have your Jekyll website running on your computer. Customize your website settings in the _config.yml file. Create and edit your content using regular markdown files. Push your website to your GitHub repository. Go to your GitHub repository settings and enable GitHub Pages. Your website will now be live at http://username.github.io. Set up your optional custom domain name. Enjoy your new super cheap website. Does this sound hard? OK So this isn’t for everyone. But if you are a small business owner, a freelancer, or a hobbyist, this is a great way to have your own custom website. Maybe Get some help If you need help consider reaching out to us here at Hepaestus Consulting. We can help you get started with your new website. We can also help you with your content and design. We can even help you with your social media and marketing.]]></summary></entry><entry><title type="html">Private Minecraft Server</title><link href="http://hepaestus.com/gaming/2024/06/01/minecraft-private-server.html" rel="alternate" type="text/html" title="Private Minecraft Server" /><published>2024-06-01T00:00:00+00:00</published><updated>2024-06-01T00:00:00+00:00</updated><id>http://hepaestus.com/gaming/2024/06/01/minecraft-private-server</id><content type="html" xml:base="http://hepaestus.com/gaming/2024/06/01/minecraft-private-server.html"><![CDATA[<h2 class="text-center">Private Minecraft Server</h2>

<div class="text-center pt-3 blog-main-image">
  <img src="/assets/images/minecraft_server_02.png" />
</div>

<h3 id="do-you-know-someone-who-loves-minecraft">Do you know someone who loves Minecraft?</h3>

<p>Did you know they could have their very own Minecraft server and be in charge of everything that happens there?</p>

<h3 id="modules-and-plugins">Modules and Plugins</h3>

<p>You can install loads of fun customizations called mods and plugins. Do your kids get upset when they die and lose all their stuff? No longer a problem. Want to run really fast? You can. Need better tools for editing? They exist! Need more animals? They have a whole managerie! Want to Fly? Teleport? It’s all doable.</p>

<p>The <a href="https://modrinth.com/">Modrinth</a> site catalogs a bunch of minecraft content that is available.</p>

<p>Examples:</p>

<ul>
  <li><a href="https://modrinth.com/mod/mystical-wildlife">Mystical Wildlife</a></li>
  <li><a href="https://www.spigotmc.org/resources/essentialsx.9089/">Essentials Plugin</a></li>
  <li><a href="https://dev.bukkit.org/projects/worldedit">World Edit</a></li>
</ul>

<h3 id="custom-look-and-feel">Custom Look and Feel</h3>

<p>In addition to mods and plugins you can also customize the look of your minecraft server. You can install custom shaders to give your server that custom spooky look all your own.</p>

<h3 id="your-own-server">Your own server?</h3>

<p>You can run minecraft on your own computer or you can pay a service to run it for you in the cloud. One is easy and freeish the other is easy and freeish too, but with backups. I say freeish because there are always costs of somekind with a outside service. Either way its <strong>your</strong> server.</p>

<h3 id="does-this-sound-fun-or-daunting">Does this sound fun or daunting?</h3>

<p>If setting up your own server is something you want for your “kids” but more you can take on right now, <a href="/contact#consult">Contact us</a> and we can help you out.</p>]]></content><author><name>Pete</name></author><category term="gaming" /><category term="server" /><category term="minecraft" /><category term="gaming-pc" /><summary type="html"><![CDATA[Private Minecraft Server Do you know someone who loves Minecraft? Did you know they could have their very own Minecraft server and be in charge of everything that happens there? Modules and Plugins You can install loads of fun customizations called mods and plugins. Do your kids get upset when they die and lose all their stuff? No longer a problem. Want to run really fast? You can. Need better tools for editing? They exist! Need more animals? They have a whole managerie! Want to Fly? Teleport? It’s all doable. The Modrinth site catalogs a bunch of minecraft content that is available. Examples: Mystical Wildlife Essentials Plugin World Edit Custom Look and Feel In addition to mods and plugins you can also customize the look of your minecraft server. You can install custom shaders to give your server that custom spooky look all your own. Your own server? You can run minecraft on your own computer or you can pay a service to run it for you in the cloud. One is easy and freeish the other is easy and freeish too, but with backups. I say freeish because there are always costs of somekind with a outside service. Either way its your server. Does this sound fun or daunting? If setting up your own server is something you want for your “kids” but more you can take on right now, Contact us and we can help you out.]]></summary></entry><entry><title type="html">Custom PC Builds</title><link href="http://hepaestus.com/hardware/2024/05/01/custom-pc-builds.html" rel="alternate" type="text/html" title="Custom PC Builds" /><published>2024-05-01T00:00:00+00:00</published><updated>2024-05-01T00:00:00+00:00</updated><id>http://hepaestus.com/hardware/2024/05/01/custom-pc-builds</id><content type="html" xml:base="http://hepaestus.com/hardware/2024/05/01/custom-pc-builds.html"><![CDATA[<h2 class="text-center">Custom PC Builds</h2>

<div class="text-center blog-main-image">
  <img src="/assets/images/custom_builds_01.png" />
</div>

<h3 id="do-you-want-to-build-a-cool-gaming-pc">Do you want to build a cool gaming PC?</h3>

<p>Are you are not quite comfortable with the process?</p>

<h3 id="what-is-a-custom-pc-build">What is a Custom PC Build?</h3>

<p>A custom PC build is a computer that is built from individual components.</p>

<p>This is different from a pre-built computer that you would buy from a store.</p>

<h3 id="why-build-a-custom-pc">Why Build a Custom PC?</h3>

<p>There are a number of reasons to build a custom PC. Here are a few:</p>

<ul>
  <li>You can save money</li>
  <li>You can get exactly what you want</li>
  <li>You can upgrade individual components as needed</li>
  <li>You can learn about computers</li>
  <li>You can have a cool looking computer</li>
</ul>

<h3 id="what-do-you-need-to-build-a-custom-pc">What do you need to build a custom PC?</h3>

<p>To build a custom PC you will need the following components:</p>

<ul>
  <li>Case</li>
  <li>Motherboard</li>
  <li>CPU</li>
  <li>RAM</li>
  <li>Storage</li>
  <li>Graphics Card</li>
  <li>Power Supply</li>
  <li>Cooling</li>
</ul>

<h3 id="how-do-you-build-a-custom-pc">How do you build a custom PC?</h3>

<p>Building a custom PC is not difficult, but it does require some knowledge and patience.</p>

<p>Does this seem fun or daunting to you? If you want to build a custom PC, but you are not quite comfortable with the process, <a href="/contact#">Contact us</a> and we can help you out.</p>]]></content><author><name>Pete</name></author><category term="hardware" /><category term="custom-pc" /><category term="gaming-pc" /><category term="pc-build" /><summary type="html"><![CDATA[Custom PC Builds Do you want to build a cool gaming PC? Are you are not quite comfortable with the process? What is a Custom PC Build? A custom PC build is a computer that is built from individual components. This is different from a pre-built computer that you would buy from a store. Why Build a Custom PC? There are a number of reasons to build a custom PC. Here are a few: You can save money You can get exactly what you want You can upgrade individual components as needed You can learn about computers You can have a cool looking computer What do you need to build a custom PC? To build a custom PC you will need the following components: Case Motherboard CPU RAM Storage Graphics Card Power Supply Cooling How do you build a custom PC? Building a custom PC is not difficult, but it does require some knowledge and patience. Does this seem fun or daunting to you? If you want to build a custom PC, but you are not quite comfortable with the process, Contact us and we can help you out.]]></summary></entry><entry><title type="html">Docker and Containers</title><link href="http://hepaestus.com/coding/2023/02/04/docker-and-containers.html" rel="alternate" type="text/html" title="Docker and Containers" /><published>2023-02-04T14:00:00+00:00</published><updated>2023-02-04T14:00:00+00:00</updated><id>http://hepaestus.com/coding/2023/02/04/docker-and-containers</id><content type="html" xml:base="http://hepaestus.com/coding/2023/02/04/docker-and-containers.html"><![CDATA[<h2 class="text-center">Docker and Containers</h2>

<div class="text-center pt-3 blog-main-image">
  <img src="/assets/images/pexels-exnl-928215.jpg" />
</div>

<h3 id="ever-thought-about-using-containers-to-package-your-code">Ever thought about using containers to package your code?</h3>

<p>Containers are a great way to package your code and all of its dependencies so that it can be easily moved and run on any machine.</p>

<h3 id="whats-a-container">Whats a Container?</h3>

<p>Do you know what a container is? If you said it was a box that held things, you are right! If you think containers are cool on ships and trucks you are gonna freak when you hear how cool they can be in computers. In addition to socks and old cds, containers are a way to package up code and all of its dependencies so that it can be easily moved and run on any machine.</p>

<h3 id="what-do-containers-do">What do Containers do?</h3>

<p>Just like in life, containers are a way to combine a set of things you want to keep around. This is great for developers because it means that they can easily move their code from one machine to another. This is great for users because it means that they can easily run code on their machine without having to worry about installing all of the dependencies since the container takes care of that.</p>

<h3 id="what-is-docker">What is Docker?</h3>

<p>When you need a container you need to create a few files that will define its structure and contents. <code class="language-plaintext highlighter-rouge">Docker</code> is a tool that makes this easy. It is a command line tool that allows you to create, run, and manage containers. It is also a platform that allows you to share containers with others. You can install docker on most machines and it is available for Windows, Mac, Linux, and more.</p>

<h3 id="defining-a-container">Defining a container</h3>

<p>You can define containers a few ways. The most common way is to use a <code class="language-plaintext highlighter-rouge">Dockerfile</code> or a <code class="language-plaintext highlighter-rouge">docker-compose.yaml</code> file. These are both just simple text files that contains a list of instructions that will be used to create the container.</p>

<p><code class="language-plaintext highlighter-rouge">Dockerfile</code> instructions are similar to the commands you would use in the command line. For example, you can use the <code class="language-plaintext highlighter-rouge">FROM</code> command to specify the base image that you want to use. You can use the <code class="language-plaintext highlighter-rouge">RUN</code> command to run a command in the container. You can use the <code class="language-plaintext highlighter-rouge">COPY</code> command to copy files from your machine to the container. You can use the <code class="language-plaintext highlighter-rouge">CMD</code> command to specify the what should be run when the container is started. Just to name a few.</p>

<h3 id="creating-a-container">Creating A Container</h3>
<p>Lets create a container that will run a simple python script. We will use the <code class="language-plaintext highlighter-rouge">python:3.8</code> image as our base image. We will copy the <code class="language-plaintext highlighter-rouge">hello.py</code> file from our machine to the container. We will run the <code class="language-plaintext highlighter-rouge">hello.py</code> file when the container is started.</p>

<p>Save this as a text file called: <code class="language-plaintext highlighter-rouge">Dockerfile</code> in the same directory as the <code class="language-plaintext highlighter-rouge">hello.py</code> file.</p>
<div class="language-dockerfile highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">FROM</span><span class="s"> python:3.8</span>
<span class="k">COPY</span><span class="s"> hello.py . </span>
<span class="k">CMD</span><span class="s"> ["python", "hello.py"]</span>
</code></pre></div></div>
<p>What this does it uses the <code class="language-plaintext highlighter-rouge">FROM</code> command to specify the base server/machine image. It uses the <code class="language-plaintext highlighter-rouge">COPY</code> command to copy the <code class="language-plaintext highlighter-rouge">hello.py</code> file from our machine to the container. It uses the <code class="language-plaintext highlighter-rouge">CMD</code> command to specify the command that should be run when the container is started. It uses the <code class="language-plaintext highlighter-rouge">EXPOSE</code> command to expose port 5000 so that we can access the web server that is running in the container.</p>

<p>In the same directory as the <code class="language-plaintext highlighter-rouge">Dockerfile</code> create a file called <code class="language-plaintext highlighter-rouge">hello.py</code> with the following contents:</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">print</span><span class="p">(</span><span class="s">"Hello World!"</span><span class="p">)</span>
</code></pre></div></div>

<p>Your files should look like this:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">ls
</span>Dockerfile  hello.py
</code></pre></div></div>

<p>Now we can build the container using the <code class="language-plaintext highlighter-rouge">docker build</code> command. This will create a container image that we can use to create containers.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>docker build <span class="nt">-t</span> hello-01 <span class="nb">.</span>
Sending build context to Docker daemon  3.072kB
Step 1/4 : FROM python:3.8
3.8: Pulling from library/python
bbeef03cda1f: Pull <span class="nb">complete 
</span>f049f75f014e: Pull <span class="nb">complete 
</span>56261d0e6b05: Pull <span class="nb">complete 
</span>9bd150679dbd: Pull <span class="nb">complete 
</span>5b282ee9da04: Pull <span class="nb">complete 
</span>03f027d5e312: Pull <span class="nb">complete 
</span>41b6012c8972: Pull <span class="nb">complete 
</span>e84941e8ff4e: Pull <span class="nb">complete 
</span>8848ba81439a: Pull <span class="nb">complete 
</span>Digest: sha256:0bdd43369c583eb82a809fbe6908d6ec721b7a29f7d9dce427d70924baf0ab7b
Status: Downloaded newer image <span class="k">for </span>python:3.8
 <span class="nt">---</span><span class="o">&gt;</span> e96a212a8ca8
Step 2/4 : COPY hello.py <span class="nb">.</span>
 <span class="nt">---</span><span class="o">&gt;</span> b91d741e7741
Step 3/4 : CMD <span class="o">[</span><span class="s2">"python"</span>, <span class="s2">"hello.py"</span><span class="o">]</span>
 <span class="nt">---</span><span class="o">&gt;</span> Running <span class="k">in </span>64ea2d48f578
Removing intermediate container 64ea2d48f578
 <span class="nt">---</span><span class="o">&gt;</span> 1223bd956265
Step 4/4 : EXPOSE 5000
 <span class="nt">---</span><span class="o">&gt;</span> Running <span class="k">in </span>9e2f664d453c
Removing intermediate container 9e2f664d453c
 <span class="nt">---</span><span class="o">&gt;</span> ee831a26fe74
Successfully built ee831a26fe74
Successfully tagged hello-01:latest
</code></pre></div></div>
<p>Command above uses the <code class="language-plaintext highlighter-rouge">-t</code> flag is to specify the name of the container image. The <code class="language-plaintext highlighter-rouge">.</code> is used to specify the directory that contains the <code class="language-plaintext highlighter-rouge">Dockerfile</code>. As you can see the container is call <code class="language-plaintext highlighter-rouge">hello-01</code> and it is tagged as <code class="language-plaintext highlighter-rouge">latest</code>. This container has been made into an 
“image” that we can use to create containers.</p>

<h3 id="listing-images">Listing Images</h3>
<p>After you create a few images it can get hard to keep track to if you want to see a list of all of the images you can use the <code class="language-plaintext highlighter-rouge">docker images</code> command.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>docker images
REPOSITORY                                                      TAG         IMAGE ID       CREATED         SIZE
hello-01                                                        latest      ee831a26fe74   5 minutes ago   915MB
</code></pre></div></div>

<h3 id="running-a-container">Running a container</h3>
<p>To actually use the container we need to create a container from the image. We can do this using the <code class="language-plaintext highlighter-rouge">docker run</code> command. This will create a container from the image and start it. It will also print out the output from the container.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nv">$ </span>docker run hello-01
Hello World!
</code></pre></div></div>
<p>This container only prints and then comes to an end.</p>

<p>Some containers run ion the background to process incoming requiests or data. If you want to run the container in the background you can use the <code class="language-plaintext highlighter-rouge">-d</code> flag. This will start the container and then return to the command line.</p>

<h3 id="listing-running-containers">Listing Running Containers</h3>
<p>You can then use the <code class="language-plaintext highlighter-rouge">docker ps</code> command to see the list of running containers.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>docker ps 
CONTAINER ID   IMAGE                            COMMAND                  CREATED          STATUS          PORTS                                             NAMES
af395402bfce   foobar-flim-flam-website:latest  <span class="s2">"/bin/sh -c 'exec gu…"</span>   24 seconds ago   Up 23 seconds   80/tcp, 0.0.0.0:9090-&gt;8080/tcp, :::9090-&gt;8080/tcp crazy_jennings
</code></pre></div></div>
<p>Here you can see the container id, the image that was used to create the container, the command that was run, the time that the container was created, the status of the container, the ports that are exposed, and the name of the container.</p>

<h3 id="stopping-a-container">Stopping a container</h3>
<p>If your container is running in the background you can stop it using the <code class="language-plaintext highlighter-rouge">docker stop</code> command. This will stop the container gracefully. This means that it will finish any tasks that it is currently working on and then stop. If you want to stop the container abruptly you can use the <code class="language-plaintext highlighter-rouge">docker kill</code> command. This will stop the container immediately.</p>

<p>First get your containers id using <code class="language-plaintext highlighter-rouge">docker ps</code> or <code class="language-plaintext highlighter-rouge">docker ps -a</code> to see all containers</p>

<p><code class="language-plaintext highlighter-rouge">$ docker ps</code> or <code class="language-plaintext highlighter-rouge">docker ps -a</code> to see all containers</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED       STATUS        PORTS     NAMES
f2m49d8djf2d   hello-01  <span class="s2">"python"</span>  2 hours ago   Up 2 hours    5000/tcp  hello-01   
</code></pre></div></div>

<p>Then stop the container gracefully using the <code class="language-plaintext highlighter-rouge">docker stop</code> command.</p>

<p><code class="language-plaintext highlighter-rouge">$ docker stop &lt;container-id&gt;</code>
<code class="language-plaintext highlighter-rouge">$ docker stop hello-01</code></p>

<p>Kill a container abruptly using the <code class="language-plaintext highlighter-rouge">docker kill</code> command.</p>

<p><code class="language-plaintext highlighter-rouge">$ docker kill &lt;container-id&gt;</code>
<code class="language-plaintext highlighter-rouge">$ docker kill hello-01</code></p>

<h3 id="so-what-good-is-all-this">So What Good Is All This?</h3>
<p>What containers allow you to do is to create a place that has all of the dependencies that you need to run your application. You can then share this container with others. They can then use this container to run your application without having to install all of the dependencies on their machine. This is especially useful if you are working on a team and you want to make sure that everyone is using the same version of the dependencies. If you think this is interesting you should check out <a href="https://hub.docker.com/">Docker Hub</a>. This is a place where you can find and share containers that other people have created. You can also create your own containers and share them with others.</p>

<p>For more information on how containers can benefit you and your business <a href="/contact" class="btn btn-sm btn-primary">contact us</a></p>]]></content><author><name>Pete</name></author><category term="coding" /><category term="containers" /><category term="docker" /><summary type="html"><![CDATA[Docker and Containers Ever thought about using containers to package your code? Containers are a great way to package your code and all of its dependencies so that it can be easily moved and run on any machine. Whats a Container? Do you know what a container is? If you said it was a box that held things, you are right! If you think containers are cool on ships and trucks you are gonna freak when you hear how cool they can be in computers. In addition to socks and old cds, containers are a way to package up code and all of its dependencies so that it can be easily moved and run on any machine. What do Containers do? Just like in life, containers are a way to combine a set of things you want to keep around. This is great for developers because it means that they can easily move their code from one machine to another. This is great for users because it means that they can easily run code on their machine without having to worry about installing all of the dependencies since the container takes care of that. What is Docker? When you need a container you need to create a few files that will define its structure and contents. Docker is a tool that makes this easy. It is a command line tool that allows you to create, run, and manage containers. It is also a platform that allows you to share containers with others. You can install docker on most machines and it is available for Windows, Mac, Linux, and more. Defining a container You can define containers a few ways. The most common way is to use a Dockerfile or a docker-compose.yaml file. These are both just simple text files that contains a list of instructions that will be used to create the container. Dockerfile instructions are similar to the commands you would use in the command line. For example, you can use the FROM command to specify the base image that you want to use. You can use the RUN command to run a command in the container. You can use the COPY command to copy files from your machine to the container. You can use the CMD command to specify the what should be run when the container is started. Just to name a few. Creating A Container Lets create a container that will run a simple python script. We will use the python:3.8 image as our base image. We will copy the hello.py file from our machine to the container. We will run the hello.py file when the container is started. Save this as a text file called: Dockerfile in the same directory as the hello.py file. FROM python:3.8 COPY hello.py . CMD ["python", "hello.py"] What this does it uses the FROM command to specify the base server/machine image. It uses the COPY command to copy the hello.py file from our machine to the container. It uses the CMD command to specify the command that should be run when the container is started. It uses the EXPOSE command to expose port 5000 so that we can access the web server that is running in the container. In the same directory as the Dockerfile create a file called hello.py with the following contents: print("Hello World!") Your files should look like this: $ ls Dockerfile hello.py Now we can build the container using the docker build command. This will create a container image that we can use to create containers. $ docker build -t hello-01 . Sending build context to Docker daemon 3.072kB Step 1/4 : FROM python:3.8 3.8: Pulling from library/python bbeef03cda1f: Pull complete f049f75f014e: Pull complete 56261d0e6b05: Pull complete 9bd150679dbd: Pull complete 5b282ee9da04: Pull complete 03f027d5e312: Pull complete 41b6012c8972: Pull complete e84941e8ff4e: Pull complete 8848ba81439a: Pull complete Digest: sha256:0bdd43369c583eb82a809fbe6908d6ec721b7a29f7d9dce427d70924baf0ab7b Status: Downloaded newer image for python:3.8 ---&gt; e96a212a8ca8 Step 2/4 : COPY hello.py . ---&gt; b91d741e7741 Step 3/4 : CMD ["python", "hello.py"] ---&gt; Running in 64ea2d48f578 Removing intermediate container 64ea2d48f578 ---&gt; 1223bd956265 Step 4/4 : EXPOSE 5000 ---&gt; Running in 9e2f664d453c Removing intermediate container 9e2f664d453c ---&gt; ee831a26fe74 Successfully built ee831a26fe74 Successfully tagged hello-01:latest Command above uses the -t flag is to specify the name of the container image. The . is used to specify the directory that contains the Dockerfile. As you can see the container is call hello-01 and it is tagged as latest. This container has been made into an “image” that we can use to create containers. Listing Images After you create a few images it can get hard to keep track to if you want to see a list of all of the images you can use the docker images command. $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-01 latest ee831a26fe74 5 minutes ago 915MB Running a container To actually use the container we need to create a container from the image. We can do this using the docker run command. This will create a container from the image and start it. It will also print out the output from the container. $ docker run hello-01 Hello World! This container only prints and then comes to an end. Some containers run ion the background to process incoming requiests or data. If you want to run the container in the background you can use the -d flag. This will start the container and then return to the command line. Listing Running Containers You can then use the docker ps command to see the list of running containers. $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES af395402bfce foobar-flim-flam-website:latest "/bin/sh -c 'exec gu…" 24 seconds ago Up 23 seconds 80/tcp, 0.0.0.0:9090-&gt;8080/tcp, :::9090-&gt;8080/tcp crazy_jennings Here you can see the container id, the image that was used to create the container, the command that was run, the time that the container was created, the status of the container, the ports that are exposed, and the name of the container. Stopping a container If your container is running in the background you can stop it using the docker stop command. This will stop the container gracefully. This means that it will finish any tasks that it is currently working on and then stop. If you want to stop the container abruptly you can use the docker kill command. This will stop the container immediately. First get your containers id using docker ps or docker ps -a to see all containers $ docker ps or docker ps -a to see all containers $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f2m49d8djf2d hello-01 "python" 2 hours ago Up 2 hours 5000/tcp hello-01 Then stop the container gracefully using the docker stop command. $ docker stop &lt;container-id&gt; $ docker stop hello-01 Kill a container abruptly using the docker kill command. $ docker kill &lt;container-id&gt; $ docker kill hello-01 So What Good Is All This? What containers allow you to do is to create a place that has all of the dependencies that you need to run your application. You can then share this container with others. They can then use this container to run your application without having to install all of the dependencies on their machine. This is especially useful if you are working on a team and you want to make sure that everyone is using the same version of the dependencies. If you think this is interesting you should check out Docker Hub. This is a place where you can find and share containers that other people have created. You can also create your own containers and share them with others. For more information on how containers can benefit you and your business contact us]]></summary></entry><entry><title type="html">Wikis are Awesome</title><link href="http://hepaestus.com/wiki/2023/01/15/wikis-are-awesome.html" rel="alternate" type="text/html" title="Wikis are Awesome" /><published>2023-01-15T14:00:00+00:00</published><updated>2023-01-15T14:00:00+00:00</updated><id>http://hepaestus.com/wiki/2023/01/15/wikis-are-awesome</id><content type="html" xml:base="http://hepaestus.com/wiki/2023/01/15/wikis-are-awesome.html"><![CDATA[<h2 class="text-center">Wikis are Awesome</h2>

<div class="text-center pt-3 blog-main-image">
  <img src="/assets/images/wiki_logo_02.png" />
</div>

<h3 id="ever-thought-about-creating-a-wiki-for-your-family-or-business">Ever thought about creating a wiki for your family or business?</h3>

<p>Wikis are a great way to create a knowledge base for your family or business.</p>

<h3 id="whats-a-wiki">Whats a Wiki?</h3>
<p>A wiki is a website that is easily updated thought a web interface. Wiki means “fast” which is meant to decsribe how easy it is to update the content.</p>

<p>They are generally collaborative in nature, and are often used to create a knowledge base for a group of people.</p>

<p>They are also often used to create a family tree, or a family history.</p>

<p>Wikis can house documents, images, videos, code, and other media. Some can also be used to create dynamic reports and pages from your data. They can link to outside websites, and can be used to create a knowledge base for your business.</p>

<h3 id="why-use-a-wiki">Why use a wiki?</h3>
<p>Wiki’s offer a number of advantages over other types of websites. They are easy to update, and easy to share. They are also easy to search, and easy to navigate. If you have regular content updates, a wiki is a great solution. If you need to document a process, a solution, a problem, a wiki is a great documentation solution.</p>

<h3 id="well-known-wikis">Well Known Wikis</h3>
<p><a href="https://wikipedia.org">Wikipedia</a> is the most well known wiki. It runs a the <a href="https://www.mediawiki.org/">Mediawiki</a> software. It is a free online encyclopedia that anyone can edit. It is a great example of how a wiki can be used collaboratively to create a knowledge base. The knowledge base could be anything, your busieness processes, your family history, or your family tree.</p>

<p>Some wikis, like the <a href="https://www.semantic-mediawiki.org/">Semantic Mediawiki</a>, offer database style querying on your data allowing you to create dynamic reports and pages from your data.</p>

<p>Wondering if a wiki is the right solution for you? <a href="/contact" class="btn btn-sm btn-primary">contact us</a> and we can help you decide.</p>]]></content><author><name>Pete</name></author><category term="wiki" /><category term="knowledge-base" /><category term="documentation" /><category term="business-processes" /><category term="website" /><category term="wiki" /><summary type="html"><![CDATA[Wikis are Awesome Ever thought about creating a wiki for your family or business? Wikis are a great way to create a knowledge base for your family or business. Whats a Wiki? A wiki is a website that is easily updated thought a web interface. Wiki means “fast” which is meant to decsribe how easy it is to update the content. They are generally collaborative in nature, and are often used to create a knowledge base for a group of people. They are also often used to create a family tree, or a family history. Wikis can house documents, images, videos, code, and other media. Some can also be used to create dynamic reports and pages from your data. They can link to outside websites, and can be used to create a knowledge base for your business. Why use a wiki? Wiki’s offer a number of advantages over other types of websites. They are easy to update, and easy to share. They are also easy to search, and easy to navigate. If you have regular content updates, a wiki is a great solution. If you need to document a process, a solution, a problem, a wiki is a great documentation solution. Well Known Wikis Wikipedia is the most well known wiki. It runs a the Mediawiki software. It is a free online encyclopedia that anyone can edit. It is a great example of how a wiki can be used collaboratively to create a knowledge base. The knowledge base could be anything, your busieness processes, your family history, or your family tree. Some wikis, like the Semantic Mediawiki, offer database style querying on your data allowing you to create dynamic reports and pages from your data. Wondering if a wiki is the right solution for you? contact us and we can help you decide.]]></summary></entry></feed>