<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمدمعین عربی</title>
        <link>https://virgool.io/feed/@iandb81</link>
        <description>دانشجوی کارشناسی رشته مهندسی کامپیوتر</description>
        <language>fa</language>
        <pubDate>2026-04-15 10:05:00</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1322867/avatar/avatar.png?height=120&amp;width=120</url>
            <title>محمدمعین عربی</title>
            <link>https://virgool.io/@iandb81</link>
        </image>

                    <item>
                <title>چگونه یک متن Markdown بنویسیم؟</title>
                <link>https://virgool.io/codenevis/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%85%D8%AA%D9%86-markdown-%D8%A8%D9%86%D9%88%DB%8C%D8%B3%DB%8C%D9%85-e31xiqeus9w0</link>
                <description>احتمالا توی گشت و گذارتون در وب، این لوگوی خوشگل فایل Markdown رو دیدید! یا با فایل‌هایی رو به رو شدید که پسوند md. داشتن. اینجا می‌خوام یکم درباره‌ی کاربرد Markdown و سینتکس نوشتنش حرف بزنم.چرا از Markdown استفاده کنیم؟شاید براتون عجیب بیاد که چرا باید به خودمون زحمت بدیم تا همچین متنی رو بنویسیم؛ چرا از ادیتورهایی مثل Microsoft Word استفاده نکنیم تا تنها با چند کلیک ساده یه عبارت رو bold کنیم؟اینجا چندتا علت رو بررسی می‌کنیم تا به تفاوت‌هاشون پی ببریم:متن Markdown می‌تونه توی هر چیزی استفاده بشه. مثل سایت‌ها، مستندات، کتاب‌ها، ایمیل‌ها و خیلی چیزای دیگه. از این جهت کاربرد گسترده‌تری دارهمتن Markdown وابسته به پلتفرم نیست. شما می‌تونید Markdown رو در وب یا روی هر دستگاهی با هر سیستم عاملی باز کنید و بخونید. ولی مثلا تجربه منتقل کردن یک فایل Word رو روی دستگاه دیگه‌ای حتما داشتین؛ فونت بهم می‌ریزه، جمله‌ها می‌پرن.ادیتورهای متنی مثل word دیتا رو به شکل باینری ذخیره می‌کنند و تنها با خود همون ادیتور اجرا میشه ولی اگر یک فایل Markdown داشته باشین به راحتی میشه حتی توی محیط ترمینال بخونیم و تغییر بدیم.وب‌سایت‌هایی مثل GitHub به شکل ویژه‌ای از Markdown پشتیبانی می‌کنن. مثلا اگر با گیت‌هاب کار کرده باشید برای معرفی مخزن خود، فایلی با فرمت Markdown قرار می‌دین.سینتکس نوشتاری Markdownچندتا از سینتکس‌های ساده رو بررسی می‌کنیم:Heading# Heading level 1
## Heading level 2
### Heading level 3
#### Heading level 4
##### Heading level 5
###### Heading level 6Bold**Bold Text**Italic*Italic Text*Bold and Italic***Bold and Italic text***Link[Google](https://www.google.com)
</description>
                <category>محمدمعین عربی</category>
                <author>محمدمعین عربی</author>
                <pubDate>Sat, 22 Jun 2024 17:17:55 +0330</pubDate>
            </item>
                    <item>
                <title>چرا git pull خوب نیست؟!</title>
                <link>https://virgool.io/@iandb81/%DA%86%D8%B1%D8%A7-git-pull-%D8%AE%D9%88%D8%A8-%D9%86%DB%8C%D8%B3%D8%AA-tdos36ojqrq0</link>
                <description>چند روز پیش به یه ویدیو با عنوان با حال &quot;از git pull هیچ وقت استفاده نکن&quot; بر خوردم. با خودم گفتم مگه چه مشکلی می‌تونه داشته باشه؟داستان از این قراره که همه ما وقتی میخوایم آخرین تغییرات یه رپو رو از جایی مثل گیتهاب دریافت کنیم، از دستور git pull استفاده می‌کنیم. این دستور در اصل دوتا دستور در دل یک دستوره. در اصل وقتی ما دستور git pull رو اجرا می‌کنیم، اون پشت اول دستور git fetch اجرا میشه که میاد برنچ ریموتی به اسم &lt;origin&gt;/&lt;branch_name&gt; رو توی سیستم لوکالمون آپدیت می‌کنه و بعد با دستور git merge این برنچ رو روی برنچ اصلی با نام &lt;branch_name&gt; مرج می‌کنه.داستان اصلی از اینجا شروع میشه که یک مرج در حال اتفاق افتادنه. حالا اگر یه هم‌تیمی داشته باشیم که روی همون برنچ کامیت زده باشه، اون وقته که اتفاق خوبی نمی‌افته.مثلا در تصویر بالا، ما یه هم‌گروهی به اسم John داریم که هر دومون از کامیت A شروع به کار کردیم. John زودتر از ما کار خودش رو انجام داده، کامیت C رو اعمال کرده و تغییرات رو پوش کرده. حالا اگر ما بخوایم تغییرات خودمون رو پوش کنیم، گیت ارور میده و از ما می‌خواد که قبلش pull انجام بدیم. اگر توی چنین شرایطی pull انجام بدیم، حتی اگر هم کانفلیکتی رخ نده، دو برنچ لوکال و ریموت مرج میشن. مثل عکس پایین:یعنی یک کامیت اضافه‌تر!حالا همین رو تصور کنید ولی با تعداد رخداد بیشتر. برنچ ما پر میشه از کامیت‌های الکی و اضافی که گراف کامیت‌ها رو کثیف می‌کنه:نکته اینجاست که کانفلیکتی هم اگر نداشته باشیم، این اتفاق می‌افته. پس راه بهتر این جور موقع‌ها چیه؟به جای اینکه pull انجام بدیم و مرج اتفاق بیفته، rebase می‌کنیم. rebase کردن باعث میشه تغییرات برنچ ریموت پشت سر کامیت ما قرار بگیره:git pull --rebaseحالا ممکنه سوال پیش بیاد اگر کانفلیکت داشتیم چطور؟ناچارن از همون دستور git pull استفاده می‌کنیم تا resolve انجام بدیم و بعدش هم مرج.</description>
                <category>محمدمعین عربی</category>
                <author>محمدمعین عربی</author>
                <pubDate>Wed, 29 May 2024 17:30:07 +0330</pubDate>
            </item>
                    <item>
                <title>ساختن و اجرا کردن فایل jar در زبان جاوا</title>
                <link>https://virgool.io/@iandb81/%D8%B3%D8%A7%D8%AE%D8%AA%D9%86-%D9%88-%D8%A7%D8%AC%D8%B1%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-jar-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D8%AC%D8%A7%D9%88%D8%A7-dawcnbxn3zqy</link>
                <description>JAR (Java Archive)فرض کنید به عنوان یک توسعه‌دهنده می‌خواهید پروژه خودتون رو برای استفاده کاربر منتشر کنید. آیا پروژتون رو با ده‌ها یا صدها کلاس نوشته شده در فولدرهای مختلف در اختیار کاربر قرار می‌دید؟ نه! اینجاست که باید با jar آشنا بشید.فایل jar یک فایل فشرده‌شده است که کلاس‌های جاوا، عکس، متن و... به همراه فایل Manifest(در ادامه بهش می‌رسیم) را در خود جای می‌دهد و از فرمت‌های فشرده‌سازی مانند zip استفاده می‌کند.ساختن فایل jarبرای شروع اول مطمئن بشید که JDK روی سیستمتون نصب است. از این لینک می‌تونید نسخه مورد نظرتون رو دانلود کنید.برای ساخت فایل jar کافیست به فولدری که فایل‌ها و کلاس‌ها قرار گرفته‌اند برویم و با دستور زیر در محیط ترمینال فایل jar ساخته می‌شود:Syntax:jar -cf jarfilename inputfilesjarfilename: نام فایل خروجی inputfiles: نام فایل‌هایی است که قرار است فشرده شوند-c: یک فایل آرشیو خالی و جدید می‌سازد-f: مشخص می‌کند پس از آن، نام فایل خروجی به عنوان پارامتر دریافت شودمثال از ساخت فایل jarنمونه‌ای از اجرا کردن دستور jarدر اینجا ما با دو فایل JavaClass1.class و JavaClass2.class روبه‌رو هستیم و با دستور زیر یک jar file ساخته شده:jar -cvf export.jar *.classاستفاده از v- فرایند فشرده‌سازی را در خروجی نمایش می‌دهد.اگر تعداد زیادی فایل کلاس را می‌خواهید در فایل jar قرار دهید می‌توانید از class.* استفاده کنید به جای اینکه تک تک نام فایل‌ها را بنویسید.مشاهده محتوای فایل jarپس از آنکه یک فایل jar بدست آمد، برای دیدن فایل‌های موجود در آن از دستور زیر استفاده می‌شود:Syntax:jar -tf jarfilenameExample:jar -tf export.jarخروجی:META-INF/
META-INF/MANIFEST.MF
JavaClass1.class
JavaClass2.classیک فایل jar به طور پیش فرض دارای فایل Manifest می‌باشد و همیشه در فولدر META-INF قرار دارد.استخراج کردن فایل jarبرای extract کردن از دستور زیر استفاده می‌شود:Syntax:jar -xf jarfilenameExample:jar -xf export.jarبرای extract کردن حتی می‌توان از ابزارهایی که یک فایل zip را extract می‌کنند، استفاده کرد.آپدیت کردن فایل jarاگر پروژه‌ی ما یک پروژه‌ی حجیم و بزرگی باشد، پس از تغییراتی که در پروژه اعمال می‌کنیم، برای تبدیل آن به فایل جدید jar زمان طولانی‌ صرف می‌شود. در اینجا بهتر است به جای ساختن یک فایل جدید jar، فایل قبلی را آپدیت بکنیم.برای آپدیت کردن محتوای فایل از دستور زیر استفاده می‌کنیم:Syntax:jar -uf jar-file input-file&#40;s&#41;Example:java -uf export.jar *.classبعد از نوشتن نام فایل jar مورد نظر، فایل‌ها و کلاس‌هایی را که می‌خواهیم آپدیت بکنیم می‌نویسیم. این امکان باعث می‌شود تا به جای اینکه دوباره تمام فایل‌ها را فشرده بکنیم، فقط فایل‌هایی که تغییرات داشتنند را جایگزین فایل‌های قبلی در jar بکنیم.قابلیت اجرا شدن فایل jarپیش از آنکه یاد بگیریم چگونه یک فایل jar را اجرا کنیم، باید آن را برای اجرا شدن آماده‌سازی کنیم.فرض می‌کنیم در پروژه، کلاسی با نام Main.class ساخته‌ایم و در آن متد main را پیاده‌سازی کرده‌ایم. اکنون باید به فایل jar بفهمانیم که متد main در چه کلاسی قرار دارد تا هنگام اجرا شدن jar، آن را اجرا کند. با استفاده از دستور زیر هنگام ساخت فایل jar این امکان را اضافه می‌کنیم:Syntax:jar -cfe jarfilename mainclass import-filesExample:jar -cfe export.jar Main client.class server.class logo.jpeg توجه کنید که کلاس Main بدون class. نوشته می‌شود.روش دیگری هم برای اضافه کردن Main وجود دارد که در ادامه در مبحت Manifest به آن می‌رسیم.اکنون می‌توان فایل jar خود را با دستور زیر اجرا کرد:Syntax:java -jar jarfilenameExample:java -jar export.jarفایل Manifestزمانی که یک فایل jar ساخته می‌شود به صورت اتوماتیک در آن فایل Manifast هم ساخته می‌شود. حالا اصلا Manifast چی است؟نمونه‌ای از فایل Manifestهر فایل jar یک فایل Manifest دارد که جزئیات و اطلاعات آن در Manifest نوشته شده است. نام این فایل به صورت پیش فرض MANIFEST.MF نام‌گذاری شده و در فولدر META-INF قرار دارد. در تصویر بالا نمونه‌ای از این فایل آمده‌است؛ حتی می‌تواند شامل جزئیات بیشتری باشد.ورودی فایل Manifest از دو قسمت تشکیل شده است، نام و مقدار. نوشتن نام و مقدارهای Manifest چند نکته دارد که به آن می‌پردازیم: باید یک اسپیس پس از &quot;:&quot; و قبل از مقدار باشد.بعد از آخرین خط، یک خط باید خالی باشد.متن باید از انکودر UTF-8 استفاده کند.وقتی کلاس main را مشخص می‌کنیم نباید پسوند class. را پس از آن بنویسیم.آپدیت کردن فایل Manifestنمونه‌ای از فایل تکست که برای آپدیت کردن Manifest نوشته شدهاگر فایل jar را ساخته‌ایم و می‌خواهیم تغییراتی روی فایل Manifest بدهیم؛ ابتدا یک فایل txt. می‌سازیم و سپس برای اعمال تغییرات از دستور زیر استفاده می‌کنیم:Example:jar -ufm export.jar manifest.txtشناساندن کلاس main از طریق Manifestدر قسمت‌های بالاتر توضیح داده شد که چگونه هنگام ساخت یک فایل jar، کلاس main را برای اجرا شدن به آن اضافه کنیم. حال اگر فایل jar را قبلا ساخته باشیم و کلاس main را به آن اضافه نکرده باشیم، کافیست خط زیر را به فایل Manifest اضافه کنیم:Main-Class: Mainحتما دقت کنید که class. پس از آن را نباید بنویسیم.استفاده از IDEتا به این جا با jar و با انواع دستورهاش آشنا شدیم. اگر پروژه‌ی ما از کتابخانه‌های خارجی استفاده می‌کرد، قرار دادن این کتابخانه‌ها در فایل jar کمی پیچیده می‌شد. محیط‌های توسعه قابلیت‌های پیشرفته‌ای در اختیارمان قرار می‌دهند که کار را برای ما ساده‌تر می‌کنند. در این قسمت ساختن یک فایل jar را در IntelliJ بررسی می‌کنیم.فرایند ساخت فایل jarابتدا از نوار بالا گزینه File را انتخاب می‌کنیم و به قسمت Artifacts می‌رویم.روی علامت + و سپس روی JAR کلیک می‌کنیم. گزینه‌ی From modules with dependencies انتخاب می‌کنیم.در فیلدهای پیش رو می‌توان کلاس Main را انتخاب کرد.در انتها روی OK کلیک می‌کنیم.در صفحه اصلی نرم‌افزار از نوار بالا روی Build و سپس Build Artifacts کلیک می‌کنیم.فایل jar مورد نظر را انتخاب کنید تا فرایند ساخت فایل jar آغاز شود.فایل‌های jar به طور پیش فرض در مسیر out/artifacts قرار می‌گیرد.منابعWorking with JAR and Manifest files In Java - GeeksforGeeksJar files in Java - GeeksforGeeksCompile and build applications with IntelliJ IDEA | IntelliJ IDEAJAR (file format) - Wikipediaاگر دوست داشتید در کانال تلگرام عضو بشید. #SBU_CE_AP_00</description>
                <category>محمدمعین عربی</category>
                <author>محمدمعین عربی</author>
                <pubDate>Thu, 03 Mar 2022 16:31:58 +0330</pubDate>
            </item>
            </channel>
</rss>