<?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: Meysam</title>
    <description>The latest articles on DEV Community by Meysam (@meysam4n).</description>
    <link>https://dev.to/meysam4n</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%2F3372681%2F7b423b44-1572-4693-b381-1bd3ecf08212.jpg</url>
      <title>DEV Community: Meysam</title>
      <link>https://dev.to/meysam4n</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/meysam4n"/>
    <language>en</language>
    <item>
      <title>How to install v2ray on Fedora 42</title>
      <dc:creator>Meysam</dc:creator>
      <pubDate>Fri, 15 Aug 2025 23:03:02 +0000</pubDate>
      <link>https://dev.to/meysam4n/how-to-install-v2ray-on-fedora-42-ka5</link>
      <guid>https://dev.to/meysam4n/how-to-install-v2ray-on-fedora-42-ka5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Installing &lt;strong&gt;V2Ray&lt;/strong&gt; on &lt;code&gt;Fedora 42&lt;/code&gt; took me a whole day and caused lots of headaches! So I decided to share this post to help others facing the same problem and hopefully save them some time.&lt;/p&gt;

&lt;p&gt;In this post, I’m going to show you how to install and configure &lt;strong&gt;V2Ray&lt;/strong&gt; on &lt;strong&gt;Fedora 42&lt;/strong&gt; in the easiest way possible. By the end, you should be able to set it up without any issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;To run &lt;code&gt;v2ray&lt;/code&gt; on Fedora 42, we need to install both the &lt;strong&gt;V2Ray Core&lt;/strong&gt; and &lt;strong&gt;Qv2ray (GUI)&lt;/strong&gt;. Let’s get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  V2Ray Core
&lt;/h3&gt;

&lt;p&gt;Download the latest release of the core from the following URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/XTLS/Xray-core/releases/tag/v1.6.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Download the file &lt;code&gt;Xray-linux-64.zip&lt;/code&gt;, then unzip it. After that, make the &lt;code&gt;xray&lt;/code&gt; file executable by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; +x xray
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Qv2ray (GUI)
&lt;/h3&gt;

&lt;p&gt;Download the GUI from the following URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/Qv2ray/Qv2ray/releases
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Get the file &lt;code&gt;Qv2ray-v2.7.0-linux-x64.AppImage&lt;/code&gt; and make it executable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; +x Qv2ray-v2.7.0-linux-x64.AppImage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you can run it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./Qv2ray-v2.7.0-linux-x64.AppImage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you see the following error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;qv2ray: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you need to install the &lt;code&gt;libxcrypt-compat&lt;/code&gt; package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install &lt;/span&gt;libxcrypt-compat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

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

&lt;p&gt;Run &lt;code&gt;Qv2ray-v2.7.0-linux-x64.AppImage&lt;/code&gt;, then go to:&lt;br&gt;
&lt;strong&gt;Preferences → Kernel Setting&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;V2Ray Core Executable Path&lt;/strong&gt; tab, select the path where you unzipped the V2Ray core and choose the &lt;code&gt;xray&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;V2Ray Assets Directory&lt;/strong&gt; tab, select the same directory as the &lt;strong&gt;V2Ray Core Executable Path&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, click &lt;strong&gt;Check V2Ray Core Settings&lt;/strong&gt;. If you see the following message, everything is configured correctly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;V2Ray path configuration check passed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

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

&lt;p&gt;In this post, we walked through installing and configuring &lt;code&gt;V2Ray&lt;/code&gt; on &lt;code&gt;Fedora 42&lt;/code&gt; in the simplest way possible. I hope this guide helps others save time and avoid the headaches I experienced.&lt;/p&gt;

</description>
      <category>v2ray</category>
      <category>fedora</category>
      <category>linux</category>
    </item>
    <item>
      <title>My React.js Journey: An Angular Developer's Perspective</title>
      <dc:creator>Meysam</dc:creator>
      <pubDate>Mon, 21 Jul 2025 16:13:03 +0000</pubDate>
      <link>https://dev.to/meysam4n/my-reactjs-journey-an-angular-developers-perspective-cli</link>
      <guid>https://dev.to/meysam4n/my-reactjs-journey-an-angular-developers-perspective-cli</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wzfl9rm2dnds1m2oc36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wzfl9rm2dnds1m2oc36.png" alt="image" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In 2017, I started working with Angular 4 as my first frontend framework, altough I was a PHP backend dev who had pretty nice experience with CSS, HTML and bootstrap.&lt;/p&gt;

&lt;p&gt;I totally dedicated myself to build the project I was given to me from scratch while I had zero experience working with Angular and the deadline wasn't very long. However, In the end, the result was spectacular, the company was so satisfied and I learned Angular from scratch in a very short time working on a real project. I fell in love with Angular and did serveral projects with it afterward for years.&lt;/p&gt;

&lt;p&gt;Recently, I had some very good job opportunities that required React.js and I decided to learn it, although because of Angular's beautiful structure, all of my previous efforts to get started with React had failed before. It's very hard to start a language or framework while you feel the way the framework has implemented things isn't right compared to the language or framework you know very well. However, After a couple of days struggling I finally decided to give it a chance unlike before. So, this post is about my React.js journey that I think might be useful especially for angular developers.&lt;/p&gt;

&lt;p&gt;I divided this journey into the steps below, each step includes the concern, options and comparison with Angular.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Side Note:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; For this comparison, I went with the newest versions of React (&lt;code&gt;v19&lt;/code&gt;), Vite (&lt;code&gt;v7&lt;/code&gt;), and Angular (&lt;code&gt;v20&lt;/code&gt;). It’s been a while since I used Angular regularly — last time was probably &lt;code&gt;v12&lt;/code&gt; or &lt;code&gt;v13&lt;/code&gt; — but the key differences are still pretty relevant and noticeable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Framework vs Library
&lt;/h2&gt;

&lt;p&gt;React.js is a library which offers no built-in features unlike Angular, so starting React from scratch requires installing many third-party packages that make you spending more time to install necessory packages and libraries to run your app.&lt;/p&gt;

&lt;p&gt;So I needed a React framework which saves my time having built-in features. In order to do so, I started looking for a react framework which led me to &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;&lt;code&gt;Next.js&lt;/code&gt;&lt;/a&gt;. After a couple of days working with it, I found out it was too bloated for a single-page application (SPA), for this cause, I found &lt;a href="https://vite.dev/" rel="noopener noreferrer"&gt;&lt;code&gt;Vite&lt;/code&gt;&lt;/a&gt; very promising and I switched to it. &lt;/p&gt;

&lt;p&gt;Based on my experience, React doesn't have a gentler learning curve than Angular unlike what I've heard about. Maybe this applies for someone who has zero experience with other frameworks because in my case, it was the opposite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Side Note:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;React recommends using a framework that fully integrates routing into features like data-fetching and code-splitting out of the box. This avoids the pain of needing to write your own complex configurations and essentially build a framework yourself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Typescript
&lt;/h2&gt;

&lt;p&gt;Angular comes with TypeScript by default and it's really better compared to coding in JavaScript. while you can choose TypeScript for your react project, there are many examples using JavaScript in the web which might made you confused.&lt;/p&gt;

&lt;h2&gt;
  
  
  UI component library
&lt;/h2&gt;

&lt;p&gt;Unlike Angular which limited to a few solid UI component libraries like &lt;code&gt;Angular Material&lt;/code&gt; and &lt;code&gt;PrimeNG&lt;/code&gt;, React has lots of high quality UI component libraries which took me a couple of days to check them out. because there are many options. however, I'm honestly surprised how great react components are. &lt;/p&gt;

&lt;p&gt;Below are the list of the most important ones in my eyes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://mui.com/" rel="noopener noreferrer"&gt;Material UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chakra-ui.com/" rel="noopener noreferrer"&gt;Chakra UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.radix-ui.com/" rel="noopener noreferrer"&gt;Radix UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ui.shadcn.com/" rel="noopener noreferrer"&gt;Shadcn UI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ant.design/" rel="noopener noreferrer"&gt;Ant Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mantine.dev/" rel="noopener noreferrer"&gt;Mantine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://daisyui.com/" rel="noopener noreferrer"&gt;DaisyUI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eventually, I settled on &lt;code&gt;Shadcn&lt;/code&gt;. because of the style and their components and blocks. also having interesting templates like dashbaords had a big impact on my decision. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Side Note:&lt;/strong&gt; There are the other solid UI component libraries which I didn't mention them, because I didn't find them interesting, while they might find them interesting, so you can discover them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Folder structure
&lt;/h2&gt;

&lt;p&gt;Then, I had to figure out the best folder structure. There were so many conflicting opinions that finally led  me to a structure like below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-src
  - components 
  - context 
  - hooks
  - lang
  - lib 
  - models # or types For general TypeScript types, enums and interfaces
  - pages
    - auth
      - SignIn.tsx
  - services
    - AuthService.ts
  - utils
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is a feature-sliced structure folder which I didn't use it intentionally because as my first project, i didn't want to make more complicated and it wasn't necessary.&lt;/p&gt;

&lt;p&gt;Unlike Angular which gives you a clear way of structure for your project, React has no best practice and this leads to very ugly structures that vary projects to projects!&lt;br&gt;
I really love Angular's modular approach and its separation of concerns, which divides an application into distinct sections like Component, Service, and Module.&lt;/p&gt;

&lt;h2&gt;
  
  
  Router
&lt;/h2&gt;

&lt;p&gt;Angular comes with a built-in router that provides you a great way to route your URLs, but in React, again, you have to install a third party package like &lt;a href="https://reactrouter.com/" rel="noopener noreferrer"&gt;&lt;code&gt;React Router&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://tanstack.com/router/latest" rel="noopener noreferrer"&gt;&lt;code&gt;TanStack Router&lt;/code&gt;&lt;/a&gt;. After spending hours, I went with &lt;code&gt;React Router&lt;/code&gt; because it's the most popular package and it's also easy to learn. Although TanStack Router seems more advanced, I didn't want to overkill my first project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Form and Validation
&lt;/h2&gt;

&lt;p&gt;For the first time, you don't need to spend hours to read about options because there are two popular packages, &lt;a href="https://react-hook-form.com/" rel="noopener noreferrer"&gt;&lt;code&gt;react-hook-form&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://zod.dev/" rel="noopener noreferrer"&gt;&lt;code&gt;zod&lt;/code&gt;&lt;/a&gt;, which makes choosing so easy. The documentation is nice and you can get started so quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multiple Languages
&lt;/h2&gt;

&lt;p&gt;The most apps I've worked with, have two languages at least so the next challenge was to find a library among many to get the job done. After spending hours, &lt;a href="https://react.i18next.com/" rel="noopener noreferrer"&gt;&lt;code&gt;react-i18next&lt;/code&gt;&lt;/a&gt; attracted my attention however after reading the documentation, I realized I should write a simple library because I didn't want to spend hours to learn a package for doing a simple job and also load many packages.  &lt;/p&gt;

&lt;p&gt;Angular's built-in package is awesome, you don't need to do anything. It includes everything you need. &lt;/p&gt;

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

&lt;p&gt;To quickly summarize my journey in this article, I want to highlight the main points.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;framework:&lt;/strong&gt; I started using &lt;code&gt;Vite&lt;/code&gt; but you can use &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;&lt;code&gt;Next.js&lt;/code&gt;&lt;/a&gt;, If you need server-side rendering (SSR)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TypeScript:&lt;/strong&gt; I used it by default, because it offers many features like type checking, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UI component library:&lt;/strong&gt; I went with &lt;a href="https://ui.shadcn.com/" rel="noopener noreferrer"&gt;Shadcn UI&lt;/a&gt;, but there are many great options.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Folder structure:&lt;/strong&gt; If it's going to be a small-medium size project, go with a simple structure and change it as the project grows, otherwise use a feature-sliced style.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Router&lt;/strong&gt; Go with &lt;a href="https://reactrouter.com/" rel="noopener noreferrer"&gt;&lt;code&gt;React Router&lt;/code&gt;&lt;/a&gt; because it's the most popular React router right now&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiple Languages:&lt;/strong&gt; I ended up implementing of a custom library, but you can use &lt;a href="https://react.i18next.com/" rel="noopener noreferrer"&gt;&lt;code&gt;react-i18next&lt;/code&gt;&lt;/a&gt; if you need advanced features.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;  This journey hasn't finished. I'm going to update this article as I move forward with React&lt;/p&gt;

&lt;p&gt;So, what are your thoughts? We're curious to hear from you in the comments section.&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
