<?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>Forem: Md. Maruf Sarker</title>
    <description>The latest articles on Forem by Md. Maruf Sarker (@mdmarufsarker).</description>
    <link>https://forem.com/mdmarufsarker</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%2F669063%2Ff2f335a9-c817-451d-aad6-f4816e5f2581.png</url>
      <title>Forem: Md. Maruf Sarker</title>
      <link>https://forem.com/mdmarufsarker</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mdmarufsarker"/>
    <language>en</language>
    <item>
      <title>Run PHP MySQL Projects on Linux</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Mon, 23 Sep 2024 10:45:30 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/run-php-mysql-projects-on-linux-31nc</link>
      <guid>https://forem.com/mdmarufsarker/run-php-mysql-projects-on-linux-31nc</guid>
      <description>&lt;p&gt;If you're looking to run your PHP MySQL projects on Linux, check out my latest GitHub article: &lt;a href="https://github.com/maruf-pfc/php-mysql-project-run-in-linux" rel="noopener noreferrer"&gt;Run PHP MySQL Projects on Linux&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;This guide will walk you through the necessary steps to set up your environment seamlessly. Happy coding! 💻✨ &lt;/p&gt;

</description>
      <category>php</category>
      <category>mysql</category>
      <category>linux</category>
      <category>lampp</category>
    </item>
    <item>
      <title>Project Ideas Don’t Have to Be Unique: Here’s Why</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Mon, 23 Sep 2024 08:44:59 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/project-ideas-dont-have-to-be-unique-heres-why-4fkk</link>
      <guid>https://forem.com/mdmarufsarker/project-ideas-dont-have-to-be-unique-heres-why-4fkk</guid>
      <description>&lt;p&gt;In the world of innovation, there’s a common misconception that project ideas need to be groundbreaking or entirely unique to be valuable. However, that’s far from the truth. Many successful products we use today share a core set of functionalities with their competitors. What sets them apart isn’t necessarily the idea but how they execute it, adapt to user needs, and innovate in key areas.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;The Case of Communication Apps: Similar Yet Different&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Let’s consider messaging platforms like Messenger, Signal, Telegram, WhatsApp, and many more. At their core, these apps offer the same functionality: sending messages, making calls, and sharing media. Yet, they’ve all carved out a distinct user base and identity. So, what makes them different?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User Experience (UX) and Interface (UI) Design&lt;/strong&gt;: &lt;br&gt;
While the core function is messaging, each platform offers a different user experience. For example, Telegram's sleek design and focus on high customization, compared to WhatsApp’s simplicity and widespread use, makes them cater to different preferences.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Feature Set&lt;/strong&gt;: &lt;br&gt;
Though they provide similar messaging functionality, each app offers a set of additional features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WhatsApp&lt;/strong&gt; is highly focused on simplicity and end-to-end encryption.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telegram&lt;/strong&gt; stands out with its large file sharing limits and cloud storage capabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Signal&lt;/strong&gt; puts security and privacy at the forefront with its open-source encryption protocols.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Messenger&lt;/strong&gt; integrates heavily with Facebook, making it a go-to option for users already tied into the ecosystem.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Target Audience and Niche&lt;/strong&gt;: &lt;br&gt;
Different apps serve different audiences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Signal targets privacy-conscious users.&lt;/li&gt;
&lt;li&gt;Telegram has become a hub for communities and groups.&lt;/li&gt;
&lt;li&gt;WhatsApp, with its wide user base and simplicity, caters to everyday users worldwide.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Platform Constraints and Flexibility&lt;/strong&gt;: &lt;br&gt;
Not all messaging apps are created equal when it comes to the regions they’re used in or the devices they support. WhatsApp, for instance, is more popular in regions where internet access is limited because of its lower data usage, while Telegram is popular in areas where political messaging requires more security and open channels.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Why Similar Projects Still Succeed&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;This demonstrates that while the base concept (messaging apps) may be the same, each product adds value through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Execution&lt;/strong&gt;: How well the product delivers core functionality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Adaptation&lt;/strong&gt;: How quickly it adapts to changing user preferences and feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Niche Features&lt;/strong&gt;: Innovating within the space of an existing idea by introducing features that solve specific user problems.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Lessons for Project Creators&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;If you’re working on a project and feel that your idea isn’t unique, don’t worry. Here’s why you can still succeed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Focus on User Experience&lt;/strong&gt;: It’s not just about what your project does, but how well it does it. Make your platform smoother, faster, or easier to use than others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find Your Niche&lt;/strong&gt;: Even within broad categories like messaging, file sharing, or social media, there are untapped niches. Identify a specific user base that isn’t fully served and build for them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improve Existing Ideas&lt;/strong&gt;: You don’t need to reinvent the wheel. Instead, ask yourself: &lt;em&gt;How can I make this idea better or more suited to a specific group of people?&lt;/em&gt; &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Innovation in Features&lt;/strong&gt;: It’s possible to take an existing concept and add new features that resonate with users—like how Telegram differentiated itself through large group chats or how Signal focused heavily on privacy.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Conclusion: It’s About Execution, Not Uniqueness&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Unique ideas are great, but they’re not the only path to success. What matters is how well you execute your project, your ability to understand user needs, and your willingness to innovate within a well-trodden space. Remember, a common idea can still make a big impact if it solves real problems in a better way than others do.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>পর্দার আড়ালে কী চলে? অপারেটিং সিস্টেমের রহস্য উন্মোচন</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Thu, 21 Mar 2024 09:27:18 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/prdaar-aaddaale-kii-cle-apaarettin-sisttemer-rhsy-unmocn-203o</link>
      <guid>https://forem.com/mdmarufsarker/prdaar-aaddaale-kii-cle-apaarettin-sisttemer-rhsy-unmocn-203o</guid>
      <description>&lt;p&gt;মনে করেন আপনি একটি ব্যস্ততম রেষ্টুরেন্ট এ আছেন। আপনি লক্ষ করলে দেখবেন যে যখনই কেউ রেষ্টুরেন্ট এ প্রবেশ করছে তখনি একটা প্রসেস শুরু হচ্ছে। প্রত্যেকেরই কিছু চাহিদা আছে যেমন কেউ কফির জন্য এসেছে কিংবা কেউ দুপুরের খাবার খেতে। কম্পিউটার এর ক্ষেত্রে এটাকে বলা যায় প্রসেস। &lt;/p&gt;

&lt;p&gt;এখন রেষ্টুরেন্ট এ প্রবেশ করলেই তো আপনার সামনে খাবার হাজির হবে না। waitstaff কে ডাকতে হবে কেননা আপনার কিছু রিকোয়েস্ট আছে যেমন খাবারের মেনুটা আপনার দরকার যাতে করে পছন্দের খাবার টা সিলেক্ট করে আপনি তাকে অর্ডার দিতে পারেন। এখন এই যে রিকোয়েস্ট এর পর আপনাকে একটা মেনু দেওয়া হলো সেখানে তহ হরেক রকমের আইটেম আছে। কম্পিউটার এর ক্ষেত্রে এটাকে বলা যায় সফটওয়্যার প্রোগ্রামস। প্রত্যেকটা খাবারের টেস্ট এক এক রকম অর্থাৎ প্রত্যেকটা কম্পিউটার প্রোগ্রাম এর ফাংশনালিটি এক এক রকম হয়ে থাকে। &lt;/p&gt;

&lt;p&gt;আচ্ছা এবার আসি মূল কথায় কেননা এখানে অপারেটিং সিস্টেম হিসেবে কে কাজ করতেছে সেটা জানা দরকার। এখানে অপারেটিং সিস্টেম হিসেবে কাজ করতেছে Waitstaff। কিভাবে? আসুন তার responsibility গুলো পর্যালোচনা করা যাক।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resource Management:&lt;/strong&gt;&lt;br&gt;
Restaurant এর টেবিল ম্যানেজ এর কাজ টা কিন্তু Waitstaff নিজেই করে থাকে। অর্থাৎ সে Memory management করে থাকে। যখনি নতুন কোনো customer আসে সে তার জন্য memory allocation করে থাকে new process Start করার জন্য। যখনি কোনো customer তাকে একটা order দেয় তখন সে new request টাকে CPU অর্থাৎ kitchen এ দিয়ে দেয়। তারা এটা ensure করে যে কোন order কখন আসছে এবং কোন টেবিল কিসের জন্য অপেক্ষা করছে যেটাকে কম্পিউটার এর ক্ষেত্রে বলা যায় process scheduling and management।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Communication:&lt;/strong&gt;&lt;br&gt;
এখানে waitstaff, customer(user) এবং kitchen(hardware) এর মধ্যে intermediary হিসেবে কাজ করছে। অর্থাৎ আপনার request গ্রহণ করে খাবার delivery করার কাজটা সে করছে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Interface:&lt;/strong&gt;&lt;br&gt;
এখানে খাবারের মেনুটা হচ্ছে User Friendly Interface যেটা কম্পিউটার এর ক্ষেত্রে GUI অর্থাৎ Graphical User Interface এর মত। কেননা এখানে আপনি সহজেই আপনার পছন্দের খাবার অর্থাৎ program select করতে পারছেন। আর আপনাকে এটাও মাথায় রাখা লাগছে না যে behind the scene kitchen এ কিভাবে সেটা তৈরি হবে।&lt;/p&gt;

&lt;p&gt;ঠিক যেমন একটি ব্যস্ত রেস্টুরেন্টে waitstaff রা খাবারের অর্ডার গ্রহণ করা, user দের সাথে communicate করা এবং kitchen এ নির্দেশাবলি দেওয়ার মাধ্যমে সবকিছু সাবলীলভাবে চালিয়ে যায়, ঠিক তেমনি একটি অপারেটিং সিস্টেম কম্পিউটারের ভেতরে একটি পরিচালকের মতো কাজ করে এবং নিশ্চিত করে যে সবকিছু দক্ষতার সাথে চলছে।&lt;/p&gt;

&lt;p&gt;আচ্ছা এই যে সবকিছু সুন্দর ও সাবলীলভাবে চলছে এসবের Mastermind কে? এখানে Mastermind টা হচ্ছে Head Chef যাকে কম্পিউটার এর তুলনা করলে এর নাম হবে কার্নেল। &lt;/p&gt;

&lt;p&gt;আসুন তার responsibility গুলো পর্যালোচনা করা যাক।&lt;br&gt;
&lt;strong&gt;Manage Resources:&lt;/strong&gt;&lt;br&gt;
Head Chef, Order এর প্রয়োজনীয়তা (প্রোগ্রামের প্রয়োজন) অনুসারে রাঁধুনদের (হার্ডওয়্যার সম্পদ) ওভেন এবং রান্নাঘরের সরঞ্জামের মতো সম্পদ বরাদ্দ করে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handle Low-Level Tasks:&lt;/strong&gt;&lt;br&gt;
Head Chef গুরুত্বপূর্ণ কিন্তু Low Level কাজ গুলো করে থাকে যেগুলো Regular Chef রা সরাসরি করে থাকে না। উপাদান পরিষ্কার এবং প্রস্তুতকরণ (মেমরি পরিচালনা) বা Regular Chef দের (প্রক্রিয়া নির্ধারণ) নির্দিষ্ট কাজ বরাদ্ধ করে দেওয়ার কথা কল্পনা করতে পারেন। &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt;&lt;br&gt;
Head Chef নিশ্চিত করে যে কেবল অনুমোদিত কর্মীরা (অনুমোদিত প্রোগ্রাম) kitchen resources (হার্ডওয়্যার) অ্যাক্সেস করতে পারে।&lt;/p&gt;

&lt;p&gt;এই ছিল Operating System কি আর এর Key Functionalities গুলো। এখন  সবকিছু একনজরে দেখে নেওয়া যাক। &lt;br&gt;
&lt;strong&gt;Operating System:&lt;/strong&gt; An operating system (OS) is essentially a software program that acts as the conductor of an orchestra, managing all the different parts of your computer and providing a platform for you to interact with it. Here's a breakdown of its key role:&lt;br&gt;
&lt;strong&gt;Hardware Management:&lt;/strong&gt; Your computer's hardware components like CPU, memory, storage, and peripherals (printers, scanners, etc.) each have their own way of functioning. The OS translates user instructions and software requests into a language the hardware understands, ensuring everything runs smoothly.&lt;br&gt;
&lt;strong&gt;Software Management:&lt;/strong&gt; The OS juggles multiple programs running at once, allocating resources (CPU time, memory) efficiently and preventing conflicts. It also loads and executes software programs as instructed by the user.&lt;br&gt;
User Interface: The OS provides a user interface (UI) - the way you interact with your computer. This can be a graphical user interface (GUI) with icons and windows, or a command-line interface (CLI) where you type commands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Functionalities:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resource Management:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU allocation (scheduling processes)&lt;/li&gt;
&lt;li&gt;Memory management (allocating and freeing memory for programs)&lt;/li&gt;
&lt;li&gt;Device management (controlling peripherals like printers and scanners)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Process Management:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launching, suspending, and terminating programs&lt;/li&gt;
&lt;li&gt;Ensuring smooth multitasking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;File Management:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organizing files and folders on storage devices&lt;/li&gt;
&lt;li&gt;Providing access control mechanisms&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Protecting the system from unauthorized access and malicious software&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;User Interface:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Providing a user-friendly environment for interaction (e.g., command line, graphical interface)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;সহজ কথায়, অপারেটিং সিস্টেম ছাড়া আপনার কম্পিউটারটি একটা collection of electronic parts হয়ে থাকত যেখানে electronic parts গুলো একে অপরের সাথে যোগাযোগ করতে বা একসাথে কাজ করতে পারত না। অপারেটিং সিস্টেম এই ফাঁক পূরণ করে Hardware এর  ক্ষমতা কাজে লাগাতে এবং Software গুলো কার্যকরভাবে চালানোর অনুমতি দেয়।&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Compiled Language vs Interpreted Language</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Sun, 24 Jul 2022 09:50:40 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/compiled-language-vs-interpreted-language-2o4c</link>
      <guid>https://forem.com/mdmarufsarker/compiled-language-vs-interpreted-language-2o4c</guid>
      <description>&lt;p&gt;এই পর্বে আমরা কম্পাইল্ড ল্যাঙ্গুয়েজ বনাম ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ সম্পর্কে জানবো।&lt;/p&gt;

&lt;p&gt;আমরা নরমালি সবকিছু ইংরেজিতে লিখে থাকি। কম্পিউটার কিন্তু সেই লেখা বুঝে না। সে শুধু বাইনারি ০ এবং ১ বুঝে। আমাদের পক্ষে শুধু ০ এবং ১ দিয়ে কম্পিউটার কে নির্দেশ প্রদান করা অনেক কষ্টসাধ্য ব্যাপার বা অসম্ভব ও বলা চলে। সেই জন্যই ধীরে ধীরে অসংখ্য ল্যাঙ্গুয়েজ তৈরি করা হয়েছে। আর সেগুলো অনেক টা মানুষের ভাষার মতই। &lt;/p&gt;

&lt;p&gt;এর মধ্যেও আবার লো লেভেল ল্যাঙ্গুয়েজ (মেশিন ল্যাঙ্গুয়েজ /বাইনারি ল্যাঙ্গুয়েজ),  মিড লেভেল ল্যাঙ্গুয়েজ এবং হাই লেভেল ল্যাঙ্গুয়েজ বলে একটা কথা আছে। &lt;/p&gt;

&lt;p&gt;যেসব ল্যাঙ্গুয়েজ এ কম্পিউটার এর খুব কাছাকাছি থেকে প্রোগ্রাম লিখা যায় সেগুলো মিড লেভেল ল্যাঙ্গুয়েজ। আপনার কাছে মনে হবে যে আপনি কম্পিউটার এর সামনাসামনি বসে তার সাথে কথা বলছেন। যেমন সি একটি মিড লেভেল ল্যাঙ্গুয়েজ। &lt;/p&gt;

&lt;p&gt;যেসব ল্যাংগুয়েজ গুলো প্রায় মানুষের ভাষার মত সেগুলো হচ্ছে হাই লেভেল ল্যাঙ্গুয়েজ। এক্ষেত্রে আপনার মনে হবে যে আপনি সরাসরি আপনার মনের ভাব কম্পিউটার কে জানাচ্ছেন এবং সে সেই অনুযায়ী কাজ করছে। যেমন: জাভাস্ক্রিপ্ট, পাইথন, ডার্ট,রুবি, সি শার্প, জাভা, পি এইচ পি ইত্যাদি।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;এখন আপনার মনে প্রশ্ন জাগতে পারে যে এগুলা তো বুঝলাম কিন্তু এগুলো তো মেশিন ল্যাঙ্গুয়েজ নয় তাহলে কম্পিউটার কিভাবে এদের কোড গুলো বুঝে থাকে?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;কম্পিউটার সর্বদা মেশিন ল্যাঙ্গুয়েজ ই বুঝে থাকে। এখন মিড বা হাই লেভেল ল্যাঙ্গুয়েজ transpiler ব্যাবহার করে থাকে। যেগুলোর মূল কাজ ই হলো মিড বা হাই লেভেল ল্যাঙ্গুয়েজ এর কোড গুলোকে মেশিন ল্যাঙ্গুয়েজ / বাইনারি কোড এ রূপান্তর করা। এই transpiler নিয়ে ই আজকের আলোচনা। মূলত ২ ধরনের transpiler হয়ে থাকে। একটাকে বলে ইন্টারপ্রেটার অন্যটা কম্পাইলার। বর্তমানে JIT (Just in time) কম্পাইলার নামে নতুন একটি transpiler এর আগমন হয়েছে। আপাতত সেদিকে যাচ্ছি না।&lt;/p&gt;

&lt;h2&gt;
  
  
  কম্পাইল্ড ল্যাঙ্গুয়েজ কি?
&lt;/h2&gt;

&lt;p&gt;যে ল্যাঙ্গুয়েজ গুলো তার সোর্স কোড এর সমস্ত লাইন একসাথে কম্পাইল করে সেগুলোকে মেশিন ল্যাঙ্গুয়েজ এ রূপান্তর করে সেগুলোকে কম্পাইল্ড ল্যাঙ্গুয়েজ বলে। &lt;/p&gt;

&lt;p&gt;কিছু কম্পাইলার এর নাম: টার্বো কম্পাইলার(যেটি পূর্বে বহুল প্রচলিত ছিল), gcc কম্পাইলার (যেটি বর্তমানে সবাই ব্যাবহার করছে)&lt;/p&gt;

&lt;p&gt;কিছু কম্পাইল্ড ল্যাঙ্গুয়েজ এর নাম: C, C++, Go, Fortran, Cobol, Java, Objective-C, Swift ইত্যাদি। &lt;/p&gt;

&lt;h3&gt;
  
  
  এখন আসি এটা কিভাবে কাজ করে সেই ব্যাপারে:
&lt;/h3&gt;

&lt;p&gt;Compiled Language, Program এর সমস্ত কোড একবারে নিয়ে পরে সেটাকে রান করে। এক্ষেত্রে এটার এক্সিকিউশন বা কাজ শুরু হয় মেইন ফাংশন থেকে। C, C++ বা Go সবগুলোতেই একটা মেইন ফাংশন থাকে। সি বা সি প্লাস প্লাস এর ক্ষেত্রে প্রথমে প্রোগ্রাম কে build করে executable ফর্ম এ নিয়ে আসতে হয়ে। পরবর্তীতে সেই executable ফাইল টি রান করলেই আমাদের প্রোগ্রাম রান হয়ে যায়। যদি প্রোগ্রাম এ কোনো error থাকে তাহলে build করার সময় আমাদেরকে কম্পাইলার error টা ধরিয়ে দেয় যে কোথায় ভুল আছে যাতে আমরা সেটা সংশোধন করতে পারি।&lt;/p&gt;

&lt;p&gt;যারা উইন্ডোজ ব্যবহার করে তারা সবাই একটা বিষয় খেয়াল করেছেন যে একটা সি ফাইল build করলে আর ও ২ টা ফাইল create হয়। একটা .o এবং অন্যটা .exe প্রথমটা ধরা অবজেক্ট ফাইল বুঝানো হয় আর পরেরটা ধারা executable file বুঝানো হয়। আর যারা লিনাক্স ব্যবহার করেন তাদের ক্ষেত্রে প্রোগ্রাম ফাইল build করলে একটা বাইনারি ফাইল create হয় যেটা পরে ./ দিয়ে রান করলেই হয়ে যায়। মূলত উইন্ডোজ এ যেটা .exe বা executable file Linux এ সেটা বাইনারি ফাইল। Compiled Language গুলো এসব কারণে অনেক ফাস্ট কাজ করে।&lt;/p&gt;

&lt;h2&gt;
  
  
  ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ কি?
&lt;/h2&gt;

&lt;p&gt;যে ল্যাঙ্গুয়েজ গুলো তার সোর্স কোড এর সমস্ত কোড একসাথে এক্সিকিউট না করে লাইন বাই লাইন এক্সিকিউট করে সেগুলোকে ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ বলে।&lt;/p&gt;

&lt;p&gt;কিছু ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ এর নাম যদি বলতে বলা হয় তাহলে লিস্ট এ চলে আসবে জাভাস্ক্রিপ্ট, পাইথন, Matlab। &lt;/p&gt;

&lt;h3&gt;
  
  
  এখন আসি এটা কিভাবে কাজ করে সেই ব্যাপারে:
&lt;/h3&gt;

&lt;p&gt;Interpreted Language, Program এর সমস্ত কোড একবারে নিয়ে রান করে না। এটা লাইন বাই লাইন এক্সিকিউট করে। এখানে কোনো মেইন ফাংশন বেবহার করা mandatory থাকে না যেটা কম্পাইল্ড ল্যাঙ্গুয়েজ এ লাগতো। এটা প্রোগ্রাম এর প্রথম লাইন থেকে এক্সিকিউশন শুরু করে। অনেকটা এরকম যে প্রথম লাইন এক্সিকিউট করলো এবং তার রেজাল্ট টা দিল। পরের বার দ্বিতীয় লাইন এক্সিকিউট করলো এবং তার রেজাল্ট টা দিল। এভাবেই এই ল্যাঙ্গুয়েজ গুলো কাজ করে। এক্ষেত্রে কোনো executable file ও create হয় না। Python, JavaScript বা Matlab সবগুলোতেই এরকমটা হয়ে থাকে। এসব কারণে interpreted language গুলো কম্পাইল্ড ল্যাঙ্গুয়েজ থেকে slow কাজ করে।&lt;/p&gt;

&lt;p&gt;বুঝতেই পারতেছেন একটা লাইন বাই লাইন এক্সিকিউট করে অন্যটা সম্পূর্ণ কোড একসাথে এক্সিকিউট করে। যার কারণে কম্পাইল্ড ল্যাঙ্গুয়েজ অনেক ফাষ্ট কাজ করে থাকে Interpreted Language গুলোর তুলনায়&lt;/p&gt;

&lt;p&gt;ল্যাঙ্গুয়েজ সম্পর্কে আর ও বিস্তারিত জানতে এই &lt;a href="https://en.wikipedia.org/wiki/List_of_programming_languages_by_type"&gt;লিংক&lt;/a&gt; টি ফলো করতে পারেন।&lt;/p&gt;

&lt;p&gt;আজকের পর্ব এই পর্যন্তই থাকবে। পরবর্তী পর্বে আমরা দ্বিতীয় পর্বের লিখা Hello World program টা কিভাবে কাজ করতেসে সেটা নিয়ে বিস্তারিত জানবো। Stack Learner এর সাথে থাকার জন্য আপনাকে অসংখ্য ধন্যবাদ।&lt;/p&gt;

</description>
      <category>c</category>
      <category>compiler</category>
      <category>interpreter</category>
      <category>mdmarufsarker</category>
    </item>
    <item>
      <title>How to build and run a C Program</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Thu, 21 Jul 2022 14:29:00 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/si-prograamin-er-haatekhddi-3c3</link>
      <guid>https://forem.com/mdmarufsarker/si-prograamin-er-haatekhddi-3c3</guid>
      <description>&lt;p&gt;আজকে আমরা কিভাবে একটা সি প্রোগ্রাম build করে run করতে হয় তা জানার চেষ্টা করবো।&lt;/p&gt;

&lt;h2&gt;
  
  
  শুরুর আগে
&lt;/h2&gt;

&lt;p&gt;সি প্রোগ্রাম শুরুর আগে আমাদের ২ টা বিষয় ensure করতে হবে। প্রথমত আমাদের কম্পিউটার এ কোনো টেক্সট এডিটর আছে কিনা। দ্বিতীয়ত আমাদের কম্পিউটার এ কম্পাইলার আছে কিনা।&lt;/p&gt;

&lt;p&gt;সভাবতই আমরা বেশিরভাগই উইন্ডোজ ইউজার। এই ক্ষেত্রে আমাদের প্রত্যেকের কম্পিউটার এ নোটপ্যাড নামক একটি টেক্সট এডিটর built in থাকে। আমরা সেটা ইউজ করতে পারি কোড লিখার জন্য। &lt;/p&gt;

&lt;p&gt;যারা লিনাক্স ইউজার আছেন তাদের ক্ষেত্রেও &lt;code&gt;nano&lt;/code&gt; নামক একটা টেক্সট এডিটর built in থাকে maximum টাইম। অনেকের আবার &lt;code&gt;vim&lt;/code&gt; ও ইনস্টল করা থাকে। তবে উপরোক্ত ২ তাই টার্মিনাল based। তাই আমরা gui ইউজ করবো। একত্রে একেকজনের এক এক এডিটর থাকতে পারে যেমন &lt;code&gt;geany&lt;/code&gt;, &lt;code&gt;leafpad&lt;/code&gt; ইত্যাদি। &lt;/p&gt;

&lt;p&gt;এখন এগুলা সব কিছু নিজেদেরকেই টাইপ করে লিখতে হয়। যদি এরকম টা না চাই তবে আমাদের জন্য আছে &lt;code&gt;IDE (Integrated Development Environment)&lt;/code&gt; এবং &lt;code&gt;কোড এডিটর&lt;/code&gt;। &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IDE আবার ২ ধরনের।&lt;/strong&gt; একটা আমরা সফটওয়্যার হিসেবে ইনস্টল করে ব্যাবহার করি। অন্যটা ওয়েব based। &lt;br&gt;
For Example: &lt;a href="https://www.onlinegdb.com/online_c_compiler"&gt;Online Gdb&lt;/a&gt;। যেটায় functionality limited থাকে। বেশিরভাগ programmer রাই IDE হিসেবে &lt;a href="https://www.codeblocks.org/"&gt;codeblocks&lt;/a&gt; ব্যাবহার করে থাকে। আমরা সেটাই ব্যাবহার করবো। আর যদি মনে চায় যে কোড এডিটর এ কোড করবেন তাহলে &lt;a href="https://code.visualstudio.com/"&gt;ভিজুয়্যাল স্টুডিও কোড&lt;/a&gt; ব্যাবহার করতে পারেন।&lt;/p&gt;
&lt;h2&gt;
  
  
  এখন আসি কম্পাইলার এর ক্ষেত্রে
&lt;/h2&gt;

&lt;p&gt;আমাদের সি প্রোগ্রামিং হচ্ছে একটি কম্পাইল্ড ল্যাঙ্গুয়েজ(বিস্তারিত পরবর্তী পর্বে থাকছে)। এজন্য আমাদের একটি কম্পাইলার ব্যাবহার করতে হবে। আমরা এই ক্ষেত্রে gcc কম্পাইলার ব্যাবহার করবো।&lt;br&gt;
প্রথমেই আমাদের এই &lt;a href="https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/codeblocks-20.03mingw-setup.exe/download"&gt;লিংক&lt;/a&gt; থেকে compiler এর executable file টা ডাউনলোড করে নিতে হবে। পরবর্তীতে এটা ইনস্টল করে ফেলবো যেভাবে আমরা অন্যান্য সফটওয়্যার ইনস্টল করি। ইনস্টল করার পর আমাদের যেতে হবে সি ড্রাইভ এ। সেখানে আমরা codeblocks নাম এ একটা ফোল্ডার খুঁজে পাবো। আপনি যদি ডাইরেক্টলি সেটা খুজে না পান তাহলে প্রোগ্রাম ফাইলস ফোল্ডার এর ভিতর পেয়ে যাবেন। পরে আমাদের যেতে হবে বিন নামক ফোল্ডার এর ভিতর। &lt;br&gt;
এখানে আমাদের কে পুরো path টা copy করে নিতে হবে। &lt;/p&gt;

&lt;p&gt;এটা এমন হবে দেখতে: &lt;code&gt;C:\MinGW\bin&lt;/code&gt;&lt;br&gt;
অথবা, &lt;code&gt;C:\Program Files\MinGW\bin&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Copy করার পর আমরা উইন্ডোজ এর সার্চ মেনু তে সার্চ করবো environment variable যেটা সামনে আসবে সেটা ওপেন করবো। পরে উপরের দিকে user variable section থেকে path select করে এডিট বাটন এ ক্লিক করতে হবে।পড়ে নিউ তে ক্লিক করে কপি করা path টা paste করে এন্টার বাটন এ ক্লিক করতে হবে। পরে ok করতে হবে। পরে সেভ/ok/Apply করে বের হয়ে যাবো। এখন আবার সার্চ করবো cmd লিখে যেটা আসবে সেটা ওপেন করতে হবে।সেখানে গিয়ে লিখতে হবে &lt;code&gt;gcc --version&lt;/code&gt; এখানে একটা ভার্সন নম্বর দেখাবে এখন। এখন আমাদের কাছে g++ command টা available হয়ে গেছে। আমাদের মূল কাজ শেষ। &lt;/p&gt;
&lt;h2&gt;
  
  
  এখন আপনি যদি লিনাক্স ইউজার হয়ে থাকেন তাহলে নিচের পদ্ধতি গুলো অনুসরণ করেন
&lt;/h2&gt;

&lt;p&gt;আপনি যদি dabian based distribution ব্যাবহার করে থাকেন,(&lt;code&gt;Ubuntu&lt;/code&gt;, &lt;code&gt;Kali&lt;/code&gt;, &lt;code&gt;Popos&lt;/code&gt;, &lt;code&gt;Linux mint&lt;/code&gt;, &lt;code&gt;Zorin Os&lt;/code&gt;)&lt;br&gt;
&lt;code&gt;sudo apt install gcc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;আপনি যদি আর্চ based distribution ব্যাবহার করে থাকেন,(&lt;code&gt;Manjaro&lt;/code&gt;, &lt;code&gt;Arco Linux&lt;/code&gt;, &lt;code&gt;Endeavour Os&lt;/code&gt;, &lt;code&gt;Garuda Linux&lt;/code&gt;, &lt;code&gt;Xero Linux&lt;/code&gt;, &lt;code&gt;Arch Craft&lt;/code&gt;, &lt;code&gt;Vanilla Arch&lt;/code&gt;)&lt;br&gt;
&lt;code&gt;sudo pacman -S gcc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Congratulations এই পর্যন্ত কমপ্লিট করার জন্য।&lt;/p&gt;

&lt;p&gt;এখন আমরা চাইলে কোড ব্লকস বা ভিজুয়্যাল স্টুডিও কোড ওপেন করে কোড লিখা শুরু করে দিতে পারি।  &lt;/p&gt;
&lt;h2&gt;
  
  
  Codeblocks এর ক্ষেত্রে:
&lt;/h2&gt;

&lt;p&gt;সফটওয়্যার টি ওপেন করে ফাইল মেনু থেকে নিউ ফাইল সিলেক্ট করতে হবে। এখন কোথায় ফাইল টি সেভ করতে চান সেটা সিলেক্ট করবেন। ধরি আমরা ডেস্কটপ সিলেক্ট করলাম। এখন এখানে আমরা একটা ফোল্ডার খুলবো সি প্রোগ্রাম নাম দিয়ে। এখন এই ফোল্ডার এর ভিতরে যাবো এবং right click করে একটা টেক্সট ফাইল create করবো। ফাইল টা rename করে নাম দিবো &lt;code&gt;main.c&lt;/code&gt; কারণ সি প্রোগ্রাম ফাইল এর এক্সটেনশন .c হয়ে থাকে।  সবার শেষে ওপেন বাটন এ ক্লিক করে ওপেন করে নিবো code blocks এ। &lt;/p&gt;

&lt;p&gt;এখন নিচের কোড টুকু লিখে ফেলি।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// c program to print hello world in the terminal
#include &amp;lt;stdio.h&amp;gt;

int main(){
  printf("Hello World!");

  return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;কন্ট্রোল + S চেপে ফাইল টা সেভ করে নেই। এখন উপরের দিকে খেয়াল করে build menu পাবেন। Hover করে build and run অপশন টা তে ক্লিক করেন। দেখবেন আপনার কমান্ড প্রমট টা ওপেন হয়ে সেখানে Hello World! লেখাটি প্রিন্ট হয়েছে। &lt;/p&gt;

&lt;p&gt;Congratulations Again আপনি আপনার প্রথম সি প্রোগ্রাম এর কোড build করে রান করতে পেরেছেন। &lt;/p&gt;

&lt;h2&gt;
  
  
  ভিজুয়াল স্টুডিও কোড এর ক্ষেত্রে:
&lt;/h2&gt;

&lt;p&gt;আগের মতই আপনার সি প্রোগ্রাম ফোল্ডার টি ওপেন করে ফেলেন। এখন মেনুবার থেকে টার্মিনাল ক্লিক করে নিউ টার্মিনাল ক্লিক করেন। নিচে ওপেন হওয়া টার্মিনাল এ টাইপ করেন &lt;code&gt;g++ main.c&lt;/code&gt;। উক্ত কমান্ড টি আপনার সি প্রোগ্রাম ফাইল টিকে build করে দিবে। এখন build করা ফাইল টা রান করার জন্য টাইপ করেন &lt;code&gt;./a.exe&lt;/code&gt;। দেখবেন আগের মতই আপনার টার্মিনাল এ &lt;code&gt;Hello World!&lt;/code&gt; লেখাটি প্রিন্ট হয়েছে। &lt;/p&gt;

&lt;p&gt;আজকের পর্ব এই পর্যন্তই থাকবে। পরবর্তী পর্বে আমরা উক্ত কোড টি কিভাবে কাজ করতেসে সেটা নিয়ে বিস্তারিত জানবো।&lt;/p&gt;

</description>
      <category>c</category>
      <category>programming</category>
      <category>codeblocks</category>
      <category>mdmarufsarker</category>
    </item>
    <item>
      <title>Introduction to C Programming Language</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Sun, 17 Jul 2022 14:23:00 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/si-prograamin-er-haatekhddi-4bdh</link>
      <guid>https://forem.com/mdmarufsarker/si-prograamin-er-haatekhddi-4bdh</guid>
      <description>&lt;p&gt;প্রথমেই ধন্যবাদ জানাই আপনাকে আপনার আগ্রহ প্রকাশের জন্য। এই সিরিজ এ আমি সি প্রোগ্রামিং এর বেসিক থেকে অ্যাডভান্সড টপিক গুলো নিয়ে আলোচনা করবো। &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;প্রথমেই আসা যাক, সি কি?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;সি হচ্ছে একটি জেনারেল purpose programming language। এটি Dennis Ritchie ১৯৭২ সালে বেল ল্যাবরেটরি তে create করেছিল। এটি ইউনিক্স অপারেটিং সিস্টেম ডেভেলপ করার জন্য তৈরি করা হয়েছিল। যেটি পরবর্তীতে সবার কাছে অনেক জনপ্রিয় হয়ে উঠে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;এবার আসা যাক কেনো আমরা সি শিখবো?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;কারণ এটি সবচেয়ে পপুলার একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ।&lt;/li&gt;
&lt;li&gt;আপনি যদি সি জানেন তাহলে আপনাকে অন্য ল্যাঙ্গুয়েজ গুলো শিখতে বেশি কষ্ট করতে হবে না।&lt;/li&gt;
&lt;li&gt;সি অত্যন্ত দ্রুতগতিতে কাজ করে যদি আমরা অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ গুলোর সাথে তুলনা করি।&lt;/li&gt;
&lt;li&gt;এটি বহুমুখী কাজে ব্যাবহার করা হয়, একই সাথে অ্যাপ্লিকেশন এবং technology তে।&lt;/li&gt;
&lt;li&gt;গুগল, ফেসবুক, মাইক্রোসফট, VMware, redhat, Apple, Intel, IBM, Oracle, Nokia, Huawei, Samsung সহ আর ও অনেক কোম্পানি সি প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যাবহার করে তাদের কাজের জন্য।&lt;/li&gt;
&lt;li&gt;যেসব কোম্পানি এমবেডেড প্রোগ্রামিং, অপারেটিং সিস্টেম নিয়ে কাজ করে সেসব ক্ষেত্রে সি একটি অসাধারণ চয়েজ। যেমন: ইউনিক্স অপারেটিং সিস্টেম সি দিয়ে তৈরি করা হয়েছিল।&lt;/li&gt;
&lt;li&gt;আপনি যদি রোবোটিক্স নিয়ে আগ্রহী হয়ে থাকেন তাহলে ও সি প্রোগ্রামিং আপনাকে অনেক সাহায্য করবে।&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;এবার আসি সি এবং সি++ এর মধ্যে পার্থক্য কি?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;আমরা এটার উত্তর কিছু বিষয় এর মধ্যে তুলনা করে  দেখাবো যেটা ভালো করে পড়লেই আপনারা পুরো ব্যাপারটা টুকু বুঝে যাবেন। &lt;br&gt;
Compare এর টপিক গুলো হচ্ছে - ফিচার, অ্যাপ্লিকেশন, disadvantage &lt;/p&gt;

&lt;h2&gt;
  
  
  Features of C
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;    Simple&lt;/li&gt;
&lt;li&gt;    Procedural&lt;/li&gt;
&lt;li&gt;    Structured or Modular Programming language&lt;/li&gt;
&lt;li&gt;    Mid-level programming language&lt;/li&gt;
&lt;li&gt;    Fast&lt;/li&gt;
&lt;li&gt;    Modularity&lt;/li&gt;
&lt;li&gt;    Rich Library&lt;/li&gt;
&lt;li&gt;    Supports Dynamic Memory Allocation&lt;/li&gt;
&lt;li&gt;    Middle-Level Language&lt;/li&gt;
&lt;li&gt;    Portable or Machine Independent&lt;/li&gt;
&lt;li&gt;    Extensible&lt;/li&gt;
&lt;li&gt;    Recursion&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Features of C++
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;    Object-Oriented&lt;/li&gt;
&lt;li&gt;    General-Purpose Programming Language, supports features such as Polymorphism, Inheritance, and Encapsulation&lt;/li&gt;
&lt;li&gt;    Extensible&lt;/li&gt;
&lt;li&gt;    Recursion&lt;/li&gt;
&lt;li&gt;    Portable or Machine Independent (but Platform Dependent)&lt;/li&gt;
&lt;li&gt;    Rich Library&lt;/li&gt;
&lt;li&gt;    Fast Execution Speed&lt;/li&gt;
&lt;li&gt;    Compiled Language&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Applications of C
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;    Operating System&lt;/li&gt;
&lt;li&gt;    Language Compilers&lt;/li&gt;
&lt;li&gt;    Assemblers&lt;/li&gt;
&lt;li&gt;    Game Development&lt;/li&gt;
&lt;li&gt;    Text Editors&lt;/li&gt;
&lt;li&gt;    Network Drivers&lt;/li&gt;
&lt;li&gt;    Modern Programs&lt;/li&gt;
&lt;li&gt;    Databases&lt;/li&gt;
&lt;li&gt;    GUI Design&lt;/li&gt;
&lt;li&gt;    Embedded Systems&lt;/li&gt;
&lt;li&gt;    Browser Design&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Applications of C++
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;    Operating Systems&lt;/li&gt;
&lt;li&gt;    GUIs&lt;/li&gt;
&lt;li&gt;    Games&lt;/li&gt;
&lt;li&gt;    Browsers&lt;/li&gt;
&lt;li&gt;    Database Engines&lt;/li&gt;
&lt;li&gt;    Cloud/Distributed Systems&lt;/li&gt;
&lt;li&gt;    Embedded Systems&lt;/li&gt;
&lt;li&gt;    Enterprise Software&lt;/li&gt;
&lt;li&gt;    Libraries&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Disadvantages of C
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;    Does not support Object-Oriented Programming (OOP) features such as Polymorphism, Inheritance, and Encapsulation&lt;/li&gt;
&lt;li&gt;    Inefficient Memory Management&lt;/li&gt;
&lt;li&gt;    Does not allow Run Time Type Checking&lt;/li&gt;
&lt;li&gt;    No support for Namespace&lt;/li&gt;
&lt;li&gt;    Lacks Exception Handling&lt;/li&gt;
&lt;li&gt;    Does not support the concept of constructors and destructors&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Disadvantages of C++
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;    No Garbage Collection&lt;/li&gt;
&lt;li&gt;    Not very secure because of pointers, global variables, etc.&lt;/li&gt;
&lt;li&gt;    Less Flexible&lt;/li&gt;
&lt;li&gt;    Complex&lt;/li&gt;
&lt;li&gt;    Lacks support for built-in threads&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Similarities in C and C++
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;    Both have a similar syntax.&lt;/li&gt;
&lt;li&gt;    Their compilation is similar.&lt;/li&gt;
&lt;li&gt;    Both languages follow the same concept of a stack, heap, and static variable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;আজকের পর্ব এই পর্যন্তই থাকছে। পরবর্তী পর্বে আমরা সি এর syntax নিয়ে জানবো ইনশাল্লাহ।&lt;/p&gt;

</description>
      <category>c</category>
      <category>programming</category>
      <category>mdmarufsarker</category>
      <category>introduction</category>
    </item>
    <item>
      <title>Install Java JDK on Arch Linux</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Sat, 11 Jun 2022 19:06:26 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/install-java-jdk-on-arch-linux-3hf4</link>
      <guid>https://forem.com/mdmarufsarker/install-java-jdk-on-arch-linux-3hf4</guid>
      <description>&lt;p&gt;open your terminal first&lt;/p&gt;

&lt;h2&gt;
  
  
  At first check is java jdk already installed on your system or not
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;java --version&lt;/code&gt;&lt;br&gt;
Unknown command: java&lt;br&gt;
&lt;code&gt;which java&lt;/code&gt;&lt;br&gt;
which: no java in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)&lt;/p&gt;

&lt;h2&gt;
  
  
  Install JRE in Arch Linux
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;sudo pacman -sS java | grep jre&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install the latest version of JRE
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;sudo pacman -S jre-openjdk&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install JDK in Arch Linux
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;sudo pacman -sS java | grep jdk&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Install the latest version of the JDK
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;sudo pacman -S jdk-openjdk&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Now check, is java installed or not on your system by running this command
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;java --version&lt;/code&gt;&lt;br&gt;
openjdk 18.0.1.1 2022-04-22&lt;br&gt;
OpenJDK Runtime Environment (build 18.0.1.1+2)&lt;br&gt;
OpenJDK 64-Bit Server VM (build 18.0.1.1+2, mixed mode)&lt;/p&gt;

</description>
      <category>archlinux</category>
      <category>java</category>
      <category>linux</category>
      <category>jdk</category>
    </item>
    <item>
      <title>conio.h: No such file or directory in linux distribution?</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Tue, 23 Nov 2021 19:39:26 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/conioh-no-such-file-or-directory-in-linux-distribution-cg2</link>
      <guid>https://forem.com/mdmarufsarker/conioh-no-such-file-or-directory-in-linux-distribution-cg2</guid>
      <description>&lt;h3&gt;
  
  
  If you face this types of error then you need to do add the conio.h header file into your computer.
&lt;/h3&gt;

&lt;h4&gt;
  
  
  So how can you do that?
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;answer:&lt;/strong&gt; You need to follow some steps to configure this.&lt;br&gt;
&lt;strong&gt;Step-1:&lt;/strong&gt; Open your terminal and type &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo apt-get update


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

&lt;/div&gt;

&lt;p&gt;This will ask you to enter your password.&lt;br&gt;
&lt;strong&gt;Step-2:&lt;/strong&gt; Then you need to install a tool called nautilus. Because this will allow you to open your usr directory as &lt;strong&gt;open as administrator&lt;/strong&gt; mode. So you need to type the following command&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo apt-get install nautilus-admin


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

&lt;/div&gt;

&lt;p&gt;Close your terminal.&lt;br&gt;
&lt;strong&gt;Step-3:&lt;/strong&gt; Open your file manager.Then open this path. You can find this option bottom left corner in your file manager.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31idm4isagnfcx6qfxy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31idm4isagnfcx6qfxy8.png" alt="Other Locations"&gt;&lt;/a&gt;&lt;br&gt;
Select Computer option&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhx93ag0g8j4ha28aikul.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhx93ag0g8j4ha28aikul.png" alt="Select Computer"&gt;&lt;/a&gt;&lt;br&gt;
Then you can find root directories&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxagvit1gkmqr7yoli6t8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxagvit1gkmqr7yoli6t8.png" alt="Computer"&gt;&lt;/a&gt;&lt;br&gt;
Go to the usr directory and right click on the include directory then you will find a new option called &lt;strong&gt;Open as Administrator&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhl5052h9jv2xyyaotm2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhl5052h9jv2xyyaotm2h.png" alt="Run as Administrator"&gt;&lt;/a&gt;&lt;br&gt;
Select this and this will ask you to enter your password. After that your file manager look like this one&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faar1dz6b0h9frahnt6na.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faar1dz6b0h9frahnt6na.png" alt="Administrator Mode"&gt;&lt;/a&gt; &lt;br&gt;
Then open your terminal and type&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

cd Desktop/
touch conio.h
gedit conio.h


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

&lt;/div&gt;

&lt;p&gt;Then open this &lt;a href="https://github.com/marufjs/conio.h/blob/master/conio.h" rel="noopener noreferrer"&gt;link&lt;/a&gt; and open raw option &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fls38n1v44r2ifzmnvfmk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fls38n1v44r2ifzmnvfmk.png" alt="Select Raw"&gt;&lt;/a&gt;&lt;br&gt;
Then copy those lines of code and paste it in the opening text editor and save it.&lt;br&gt;
&lt;strong&gt;Step-4:&lt;/strong&gt; Copy this file(conio.h) and paste it here&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieauhj3hk00hy3kyt9rd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieauhj3hk00hy3kyt9rd.png" alt="Administrator Mode"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Congratulations you completed all the steps. Now you are able to use conio.h header file in your c or cpp program.
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Happy Coding&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Subscribe my &lt;a href="https://www.youtube.com/channel/UCWigpkRyVFi8F6sZ4SjcDpA/" rel="noopener noreferrer"&gt;channel&lt;/a&gt; for get updated.
&lt;/h3&gt;

</description>
      <category>c</category>
      <category>cpp</category>
      <category>conio</category>
      <category>headerfile</category>
    </item>
    <item>
      <title>How to Update Node.js to the latest version on Ubuntu</title>
      <dc:creator>Md. Maruf Sarker</dc:creator>
      <pubDate>Sun, 07 Nov 2021 14:51:14 +0000</pubDate>
      <link>https://forem.com/mdmarufsarker/how-to-update-nodejs-to-the-latest-version-on-ubuntu-3md6</link>
      <guid>https://forem.com/mdmarufsarker/how-to-update-nodejs-to-the-latest-version-on-ubuntu-3md6</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujxgme2xgt491sbe257i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujxgme2xgt491sbe257i.png" alt="Nodejs Official Website" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step - 1:
&lt;/h2&gt;

&lt;p&gt;1st of all you need to download the latest version of Nodejs from the official &lt;a href="https://nodejs.org/en/"&gt;Nodejs website&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step - 2:
&lt;/h2&gt;

&lt;p&gt;Go to the correct path using command line or GUI.&lt;br&gt;
Using Command line&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd Downloads/node-v17.0.1-linux-x64.tar.xz/
tar -xf node-v17.0.1-linux-x64.tar.xz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check Current Node version&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node --version
v14.17.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To upgrade&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo n latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check Updated Node version&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node --version
v17.0.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ovxldoqmjmjihouse2l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ovxldoqmjmjihouse2l.png" alt="Nodejs version Updated" width="800" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are using graphical interface then go to the destination path. Click right button and select extract here. Open the bin folder.&lt;br&gt;
 &lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqk4xmcl4iwowbvx6uk8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqk4xmcl4iwowbvx6uk8.png" alt="Directories and files" width="392" height="137"&gt;&lt;/a&gt;&lt;br&gt;
right click and select open in terminal&lt;br&gt;
To upgrade&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo n latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check Updated Node version&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node --version
v17.0.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ovxldoqmjmjihouse2l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ovxldoqmjmjihouse2l.png" alt="Nodejs version Updated" width="800" height="154"&gt;&lt;/a&gt;&lt;br&gt;
Thanks, if you like this article useful then smash the like button. Share it with your friends. Stay Tuned.&lt;/p&gt;

&lt;h3&gt;
  
  
  If you want to learn more about Linux Command Line then you watch my &lt;a href="https://youtube.com/playlist?list=PLldSzdV-qgykjEEzvw_fYK56F2w-5kfV5"&gt;Playlist&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>npm</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
