<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محسن</title>
        <link>https://virgool.io/feed/@msnmkh</link>
        <description>علاقه مند به هوش مصنوعی :)</description>
        <language>fa</language>
        <pubDate>2026-06-17 03:44:07</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/8036/avatar/vokSKh.png?height=120&amp;width=120</url>
            <title>محسن</title>
            <link>https://virgool.io/@msnmkh</link>
        </image>

                    <item>
                <title>HTTP,SMTP,FTP,TCP,UDP,...</title>
                <link>https://virgool.io/@msnmkh/httpsmtpftptcpudp-is-osi-model-zzng5bgkrdhp</link>
                <description>اول بزارید بگم این پروتکل ها از کجا اومدن.پروتکل های که توی عنوان ازشون اسم بردم پروتکل های انتقال اطلاعات و اینراکشن بین دوتا اپلیکیشن رو شامل میشن.مدل  OSI( Open Systems Interconnection ) یک مدلی هست برای توصیف لایه های دویا چند سیستم مخابراتی یا شبکه ی کامپیوتری. هدف از OSI اینه که اپلیکیشن ها چطوری به هم متصل میشن مثلا ی فایل چطوری دانلود یا آپلود میشه.OSI Model Seven Layer data model that very simply describe the software protocol and hardware protocol network communication.OSI ModelSoftware Layer : Application,Presentation,SessionHardware Layer : Network,Data Link,Physicalخوب بیاین با دو تا مثال کاربردی توضیح بدم چطوری این پروتکل ها ارتباط بین دو اپلیکیشن رو برقرار میکنند.1-ارسال ایمیل (smtp request) :1)بعد از نوشتن ایمیل و مشخص کردن آدرس مقصد و...الآن ایمیل ما آماده ی ارسال هست(کمک از ابزار های ارسال ایمیل مثله gmail.google.comm) و به کمک SMTP Protocol  اونو ارسال کنیم(لایه ی 7)2)توی مرحله ی دوم داده ها رو تبدیل به ی فرمتی میکنیم که برای سخت افزار مقصد قابل فهم باشه مثلا ASC II که توی این مرحله وظیفه Encrypt  کردن داده های نیز به عهده ی همین لایه(6)هست.3)توی این مرحله درواقع کار سرور mail (مثلا سرور جیمیل)شروع میشه.(لایه ی 5)4)مرحله ی بعد انتقال داده هاست که توی این مرحله میتونیم از دوتا پروتکل TCP یا UDP  استفاده کنیم که با توجه به اینکه میخاییم ایمیل به صورت کامل ارسال بشه از TCP  (بعدا درباره ی تفاوت TCP ,UDP مینویسم)کمک میگیریم.(لایه ی 4)5)مرحله ی بعد باید توی سرور مبدا(مثلا سرور جیمیل) اطلاعات و IP سرور مقصد و آدرس ایمیل اون رو وارد کنیم.(لایه ی 3)6)توی این مرحله هم اطلاعات MAC Address  هاست رو به داده ها اضافه میشه.(لایه 2)7)توی این مرحله داده ها به کمک اینترنت ارسال میشن.(لایه ی 1)تا اینجا ایمل ارسال شد برای دریافت ایمیل توسط مقصد باید همین مراحل رو به صورت Bottom-Up توسط مقصد انجام بشه تا داده ها دریافت بشه.2-سرچ کردن توی گوگل (http request) :1) لایه ی 7 =&gt; سرچ توی گوگل به کمک فایرفاکس یا گوگل کروم که این اپلیکیشن ها به کمک پروتکل http و https درخوست شما رو ارسال میکنند.2)لایه ی 6=&gt; وظیفه ی تبدیل داده ها به باینری و اینکریپت کردن اونا (sender =&gt; encrypt , receiver=&gt;decrypt)که این توی https به کمک ssl انجام میشه. 3)لایه ی 5=&gt; توی این مرحله ارتباط با سرور انجام میشه و احراز هویت کاربر در این مرحله انجام میشه ینی به کمک دیتا پکت اطلاعات به سمت سرور فرستاده میشه بعد دریافت Authorization میشه.4)لایه ی 4=&gt; این لایه وظیفه ی انتقال اطلاعات رو به عهده به این صورت که به کمک IP (IP4,IP6) سیستم ها مبدا و مقصد رو مشخص میکنه که معمولا از دو پروتکل udp,tcp استفاده میشه که در سرچ کردن به دلیل امنیت tcp از اون استفاده میشه.5)لایه ی 3=&gt; مرحله ی بعد باید توی سرور مبدا اطلاعات سرور گوگل ثبت بشه برای درخواست HTTP.6)لایه ی 2=&gt; توی این مرحله هم اطلاعات MAC Address  هاست گوگل رو به داده ها اضافه میشه.7)لایه ی 1=&gt; توی این مرحله داده ها به کمک اینترنت ارسال میشن و منتظر پاسخ از سمت سرور گوگل میشه.</description>
                <category>محسن</category>
                <author>محسن</author>
                <pubDate>Fri, 22 Feb 2019 20:36:11 +0330</pubDate>
            </item>
                    <item>
                <title>تفاوت کتابخانه و فریم ورک</title>
                <link>https://virgool.io/@msnmkh/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%D9%88-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-o49stalvzlsp</link>
                <description>What &#x27;s difference between framework and library?تصور بعضی ها  اینه که فریم ورک مجموعه ای از کتابخانه ها هست ینی ی جورایی فریم ورک بزرگتر شده ی کتابخانه هست اما باید بگم این تصور کاملا اشتباهه.Libraryکتابخانه فقط مجموعه ای از api ها(مثله کلاس ها,متدها,ماژول ها,...) هست که اونا رو به کدخودمون اضافه میکنیم, و برای ساده تر شدن کد نویسی از اونا استفاده میکنیم مثال خیلی ساده اون کتابخانه ی Math توی زبان C هست که توی اکثر زبان های برنامه نویسی هم وجود داره, مثلا اگه بخواهیم لگاریتم ی عدد رو بدست بیاریم دیگه نیازی به دونستن الگوریتم بدست آوردن اون نیست خیلی ساده از تابع کلاس Math استفاده میکنیم.Frameworkفریم ورک ی مفهوم پیچیده تره که درواقع به این صورته که وقتی API ها در یک مجموعه واحد برای یک هدف مشخصی قرار میگیرن و الگو  های خاصی رو پیروی کنن (مثله مدل  MVC) دیگه فراتر از API هستن و بهش میگن فریم ورک , درواقع فریم ورک مثله یک چارچوب واستخوان هست که نیاز هست برنامه نویس با نوشتن کد اونو کامل کنه و این کدها همان گوشت برای استخوان(فریم ورک) هست.Using library  is like dating , using framework is like entering into a marriage !درواقع این برنامه نویس هست که کتابخانه های آماده رو صدا میزنه درحالیکه فریم ی چارچوب آماده هست که برنامه نویس رو صدا میزنه برای نوشتن کدهای خودش و کامل کردن اون.You call Library 
But
Framework call you.نظرات و ایده های خودتون را راجب تفاوت Library &amp; Framework بنویسید:)</description>
                <category>محسن</category>
                <author>محسن</author>
                <pubDate>Thu, 07 Feb 2019 12:49:13 +0330</pubDate>
            </item>
                    <item>
                <title>ویرایش مسیج کامیت اشتباه گیت لب :)</title>
                <link>https://virgool.io/@msnmkh/%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4-%D9%85%D8%B3%DB%8C%D8%AC-%DA%A9%D8%A7%D9%85%DB%8C%D8%AA-%D8%A7%D8%B4%D8%AA%D8%A8%D8%A7%D9%87-%DA%AF%DB%8C%D8%AA-%D9%84%D8%A8-r41oykrxu0qx</link>
                <description>دیروز بعد اینکه آخرین تغییرات پروژه ام رو پوش کردم متوجه شدم که متن مسیج رو کاملا اشتباه نوشته بودم و کامیت کردم!اگه ی وقتی متن مسیجی که برای کامیتتون نوشته بودین رو خواستین ادیتش کنید کافیه دوتا دستور پایین و بزنید:) git commit --amend -m &quot;New commit message&quot;
 git push --force</description>
                <category>محسن</category>
                <author>محسن</author>
                <pubDate>Tue, 22 Jan 2019 13:50:33 +0330</pubDate>
            </item>
                    <item>
                <title>رفع ارور windows cannot be installed to this disk mbr without losing data</title>
                <link>https://virgool.io/@msnmkh/%DA%AF%D9%88%DA%AF%D9%84-sgiovntoqapj</link>
                <description>سلام دوستان، امروز میخام اولین پست ویرگولم رو شیر کنم و گفتم شروع با یک پست راجب دیباگینگ باشه!خوب مقدمه کافیه امروز می خواستم ویندوز یکی از دوستام رو عوض کنم که ظاهرا علی رغم تلاش خودش نتونسته بود ویندوز 10 رو نصب کنه.خوب شما برای نصب ویندوزتون می تونید از دو راه پیش برید با بوت کردن فلش یا استفاده از سی دی ویندوز. البته قرار نیست اینجا من نصب ویندوز و بگم، این دوستمون اومده بود و شروع کرده بود با سی دی به نصب ویندوز بعد از پاک کردن درایو سی با ارور تصویر پایین مواجه شده بود:windows cannot be installed to this disk mbr without losing dataخود ایشون کلی سرچ کرده بود اما به نتیجه ای نرسیده بود، بعد من خودمم سرچ کردم باز روش های که گفته بودن عملا بدون نتیجه بود تا اینکه به ذهنم رسید بیام برعکس عمل کنم.ینی چی حالا؟ بجای اینکه سیستم رو با ویندوز سینک کنم، ویندوز رو با سیستم سینک کنم. حالا چطوری؟ خیلی راحت به جایی اینکه فلش رو با فرمت GPT  بوت کنم اومدم فلش و با فرمت MBR بوت کردم با کمک نرم افزار  rufus ویندوز و خیلی راحت عوض کردم.GPT to MBRحالا تمام روش های که تو سایر سایت هم گفته بود اینجا مینویسم.* تغییر بایوس از UEFI به Legacy برای تبدیل حالت بوت از GPT به MBR* تبدیل GPT به MBR با استفاده از برنامه های مختلف برای حل مشکل نصب نشدن ویندوز ۱۰ ، ۸ و ۷* حل مشکل ارور GPT هنگام نصب ویندوز با استفاده از برنامه Aomei Partition Assistant* تبدیل GPT به MBR با استفاده از CMD در ویندوزبا توجه به اینکه سایر روش ها تو سایت های دیگه بود من اینجا توضیح ننوشتم.امیدورام مفید بوده باشه:)</description>
                <category>محسن</category>
                <author>محسن</author>
                <pubDate>Wed, 30 May 2018 23:13:45 +0430</pubDate>
            </item>
            </channel>
</rss>