<?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: MAHMOUD ABDELSAMEA</title>
    <description>The latest articles on DEV Community by MAHMOUD ABDELSAMEA (@obaaa8).</description>
    <link>https://dev.to/obaaa8</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%2F89220%2F35967f69-0c41-4ecd-8bd2-b314b9a7246a.jpg</url>
      <title>DEV Community: MAHMOUD ABDELSAMEA</title>
      <link>https://dev.to/obaaa8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/obaaa8"/>
    <language>en</language>
    <item>
      <title>Resolving Ferron Server Installation Challenges: A Step-by-Step Troubleshooting Guide</title>
      <dc:creator>MAHMOUD ABDELSAMEA</dc:creator>
      <pubDate>Thu, 17 Apr 2025 10:50:17 +0000</pubDate>
      <link>https://dev.to/obaaa8/resolving-ferron-server-installation-challenges-a-step-by-step-troubleshooting-guide-i64</link>
      <guid>https://dev.to/obaaa8/resolving-ferron-server-installation-challenges-a-step-by-step-troubleshooting-guide-i64</guid>
      <description>&lt;p&gt;This article summarizes the troubleshooting journey undertaken to resolve a persistent failure to start the Ferron service, providing a guide for users facing similar challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initial Symptoms:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The failure to start the Ferron service typically manifests as error messages in &lt;code&gt;systemctl status ferron.service&lt;/code&gt; indicating &lt;code&gt;(code=exited, status=203/EXEC)&lt;/code&gt; or &lt;code&gt;(code=exited, status=1/FAILURE)&lt;/code&gt;, accompanied by rapid and repeated restart attempts that ultimately fail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Troubleshooting Steps and Solutions:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verify Executable Existence and Permissions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the Ferron executable (&lt;code&gt;/usr/sbin/ferron&lt;/code&gt; in most cases) exists in the correct path.&lt;/li&gt;
&lt;li&gt;Check its execution permissions using &lt;code&gt;ls -l /usr/sbin/ferron&lt;/code&gt;. If execute permission is missing, grant it with &lt;code&gt;sudo chmod +x /usr/sbin/ferron&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect the &lt;code&gt;systemd&lt;/code&gt; Service File:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm the presence of a Ferron service file at &lt;code&gt;/etc/systemd/system/ferron.service&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Carefully review the file's contents, especially the &lt;code&gt;[Service]&lt;/code&gt; section defining &lt;code&gt;User&lt;/code&gt;, &lt;code&gt;Group&lt;/code&gt;, &lt;code&gt;WorkingDirectory&lt;/code&gt;, &lt;code&gt;ExecStart&lt;/code&gt;, &lt;code&gt;Type&lt;/code&gt;, and &lt;code&gt;Restart&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Experiment with modifying these options (e.g., specifying &lt;code&gt;User=root&lt;/code&gt;, &lt;code&gt;WorkingDirectory=/&lt;/code&gt;, changing &lt;code&gt;Type&lt;/code&gt; to &lt;code&gt;exec&lt;/code&gt; or &lt;code&gt;forking&lt;/code&gt;), reloading &lt;code&gt;systemd&lt;/code&gt; (&lt;code&gt;sudo systemctl daemon-reload&lt;/code&gt;), and attempting a restart after each modification.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ensure Configuration File Existence and Content:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verify the existence of the Ferron configuration file (&lt;code&gt;/etc/ferron/ferron.yaml&lt;/code&gt; or another specified path).&lt;/li&gt;
&lt;li&gt;Confirm the configuration file contains the necessary basic settings such as &lt;code&gt;port&lt;/code&gt;, &lt;code&gt;wwwroot&lt;/code&gt;, and log file paths.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Address Port Permission Issues:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If Ferron attempts to listen on a port below 1024, ensure it's run as &lt;code&gt;root&lt;/code&gt; or utilize &lt;code&gt;setcap&lt;/code&gt; (with caution).&lt;/li&gt;
&lt;li&gt;To avoid permission issues, configure Ferron to listen on a higher port (e.g., 8080) in the configuration file.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Handle Log File Permissions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check the log file paths specified in the configuration.&lt;/li&gt;
&lt;li&gt;Ensure the log directories and files exist and that the user running Ferron has write permissions. You might need to use &lt;code&gt;sudo chown&lt;/code&gt; and &lt;code&gt;sudo chmod&lt;/code&gt; to adjust permissions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Resolve "Address Already in Use" Errors:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If an &lt;code&gt;Address already in use&lt;/code&gt; error appears when running Ferron manually, use &lt;code&gt;sudo netstat -tulnp | grep &amp;lt;port&amp;gt;&lt;/code&gt; or &lt;code&gt;sudo ss -tulnp | grep &amp;lt;port&amp;gt;&lt;/code&gt; to identify the process using the port and terminate it with &lt;code&gt;sudo kill &amp;lt;PID&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Utilize &lt;code&gt;journalctl&lt;/code&gt; for Detailed Error Information:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The command &lt;code&gt;sudo journalctl -xeu ferron.service&lt;/code&gt; provides detailed logs that can help pinpoint the reason for service failure. Look for specific error messages from Ferron or &lt;code&gt;systemd&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implement a Startup Delay:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In some cases, adding a brief delay before Ferron starts in the &lt;code&gt;systemd&lt;/code&gt; service file using &lt;code&gt;/bin/sh -c "sleep 2 &amp;amp;&amp;amp; /usr/sbin/ferron -c /etc/ferron/ferron.yaml"&lt;/code&gt; in &lt;code&gt;ExecStart&lt;/code&gt; can resolve timing-related startup issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Resolving Ferron server installation problems requires patience and a systematic examination of the system and service configurations. By meticulously checking permissions, configuration files, &lt;code&gt;systemd&lt;/code&gt; service files, and system logs, users can overcome obstacles and successfully run the Ferron server. Remember that the detailed messages in &lt;code&gt;journalctl&lt;/code&gt; are often key to identifying the root cause of the problem.&lt;/p&gt;

</description>
      <category>ferron</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Update nodeJS to the latest version in Ubuntu</title>
      <dc:creator>MAHMOUD ABDELSAMEA</dc:creator>
      <pubDate>Thu, 19 Sep 2019 22:24:26 +0000</pubDate>
      <link>https://dev.to/obaaa/update-nodejs-to-the-latest-version-in-ubuntu-11c6</link>
      <guid>https://dev.to/obaaa/update-nodejs-to-the-latest-version-in-ubuntu-11c6</guid>
      <description>&lt;p&gt;NVM (Node Version manager) with &lt;em&gt;--lts&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;NVM installs both the latest stable node and npm for you&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;source ~/.nvm/nvm.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nvm install --lts&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nvm use --lts&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm --version&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now you are ready&lt;/p&gt;

</description>
      <category>node</category>
      <category>nvm</category>
      <category>ubuntu</category>
      <category>npm</category>
    </item>
    <item>
      <title>Introduction — MVC Framework</title>
      <dc:creator>MAHMOUD ABDELSAMEA</dc:creator>
      <pubDate>Thu, 19 Sep 2019 20:17:33 +0000</pubDate>
      <link>https://dev.to/obaaa/introduction-mvc-framework-4egm</link>
      <guid>https://dev.to/obaaa/introduction-mvc-framework-4egm</guid>
      <description>&lt;h2&gt;
  
  
  What is MVC
&lt;/h2&gt;

&lt;p&gt;Model-View-Controller (MVC)&lt;/p&gt;

&lt;p&gt;Architectural Style The application is separated into three main parts: model, display, and control unit. Each of them is created and processed to deal with specific parts of the application.&lt;/p&gt;

&lt;p&gt;MVC is one of the most advanced web development styles to meet modern development standards that allow for expansion and facilitate development.&lt;/p&gt;

&lt;h2&gt;
  
  
  MVC components
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Model
&lt;/h3&gt;

&lt;p&gt;Is responsible for transferring data to and from the application and database portions.&lt;/p&gt;

&lt;p&gt;This can be either data transferred between the View and Controller parts or any data related to the software parts.&lt;/p&gt;

&lt;p&gt;For example, a customer’s model imports client information from the database, sends it for processing, and then resumes it to the database or uses it for viewing.&lt;/p&gt;

&lt;h3&gt;
  
  
  View
&lt;/h3&gt;

&lt;p&gt;The display pane is used for UI components in the application, for example the client page will contain components such as text boxes, drop-down menus, images, and so on. It is the interaction with the end user.&lt;/p&gt;

&lt;h3&gt;
  
  
  Controller
&lt;/h3&gt;

&lt;p&gt;It controls and acts as a mediator between View and Model, handles the data provided by Model, renders it to View, receives and processes end user input in View, and so on.&lt;/p&gt;

&lt;p&gt;For example, the client requests its data via the view, receives the Controller request, prepares the data from the database via Model, and sends it back to view&lt;/p&gt;

</description>
      <category>mvc</category>
    </item>
    <item>
      <title>Introduction to Laravel</title>
      <dc:creator>MAHMOUD ABDELSAMEA</dc:creator>
      <pubDate>Thu, 19 Sep 2019 20:16:04 +0000</pubDate>
      <link>https://dev.to/obaaa/introduction-to-laravel-jgc</link>
      <guid>https://dev.to/obaaa/introduction-to-laravel-jgc</guid>
      <description>&lt;p&gt;Laravel is a stylish, compact and flexible PHP framework that focuses on clean code and speed. Laravel describes itself as a "PHP framework for web makers". It is a free and open source framework created by "Taylor Otwell", based on the Model View Controller (MVC) architecture.&lt;/p&gt;

&lt;p&gt;Creating a web application from the beginning may be particularly difficult if you are a beginner. Even the simple web application contains many parts, and creating these parts each time you create a Web application can be repetitive and tedious and there is no point in reinventing the wheels. Here comes Laravel to solve this and other problems.&lt;/p&gt;

&lt;p&gt;The Laravel framework provides many PHP libraries and auxiliary functions, and can help you focus on the most important parts while providing common functions and logic to speed up creation time and facilitate development.&lt;br&gt;
At first, there are few things to learn, especially if you are a beginner and have no experience with any kind of web framework. But once you produce it, you will not only love it, you will become addicted to it. Laravel aims to create creativity. The word "Web Artisan" is used to refer to the hidden design within the developer's heart. The result is an effective application with fewer paths and well-designed symbols.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need before you start:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;HTML / CSS (for sure).&lt;/li&gt;
&lt;li&gt;PHP Basics.&lt;/li&gt;
&lt;li&gt;Average level in PHP - Learn some concepts like php oop, abstraction and so on.&lt;/li&gt;
&lt;li&gt;Understand the basics of the MVC Framework.&lt;/li&gt;
&lt;li&gt;Perseverance . Although it is easy to learn Laravel, but you may find some difficulties from one period to another, your knowledge of PHP and frameworks and the concept of MVC may help you a lot in the speed of learning the framework of Laravel.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>framework</category>
    </item>
  </channel>
</rss>
