<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های ََUnkown Pirate</title>
        <link>https://virgool.io/feed/@unkownpirate</link>
        <description>دانشجوی مهندسی برق، برنامه نویس</description>
        <language>fa</language>
        <pubDate>2026-07-07 12:15:16</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1036697/avatar/2YzLQt.jpeg?height=120&amp;width=120</url>
            <title>ََUnkown Pirate</title>
            <link>https://virgool.io/@unkownpirate</link>
        </image>

                    <item>
                <title>روز تولد حضرت مسیح چند شنبه بوده( با پایتون)</title>
                <link>https://virgool.io/@unkownpirate/%D8%B1%D9%88%D8%B2-%D8%AA%D9%88%D9%84%D8%AF-%D8%AD%D8%B6%D8%B1%D8%AA-%D9%85%D8%B3%DB%8C%D8%AD-%DA%86%D9%86%D8%AF-%D8%B4%D9%86%D8%A8%D9%87-%D8%A8%D9%88%D8%AF%D9%87-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-rcrmhq1ydpx5</link>
                <description>سلام امیدوارم که حالتون خوب باشه،چند وقت پیش داخل شبکه های اجتماعی یک چالش دیدم  تحت عنوان این که یک تاریخ خاص چند شنبه میشه .دیدم میتونه بهونه خوبی باشه برای نوشتن این مقاله در باره داده های زمانی در پایتون .داده های زمانی یکی از انواع مهم ساختار داده محسوب میشه .اگرشما دیتابیس یک سایت طراحی میکنید شما نیاز دارید که که در زمان ثبت نام کاربر تاریخ ثبت نام اون ثبت کنید. یک بانک نیاز داره که ساعت و تاریخ تراکنش های خودشو ذخیره کنه. و حتی همین الان که نوشته من داخل سرور های ویرگول ذخیره میشه، یک فیلد اون فیلد تاریخ و ساعت هست.خب فکر کنم توضیح کافیه بهتره بریم سراغ کد نویسی.چالشی که مطرح کردیم تحت این عنوان که تاریخ ۱/۱/۱ میلادی چند شنبه بوده، جا داده که اضافه کنم ممکنه نتیجه ای که ما بدست بیاریم از نظر تاریخی دقیقا درست نباشه چون ممکنه روزی که الان ما به عنوان ۱/۱/۱ میشناسیم دقیقا منطبق به سال تولد حضرت مسیح نباشه، ولی از لحاظ ریاضی درسته و مهم تر از این ها اینه که باعث میشه ما با امکانات جدیدی داخل پایتون اشنا بشیم.کارمون با وارد کردن کتاب خونه datetime و تعریف یک شی از نوع datetime شروع میکنیم:خب کارمون خیلی راحت شد . حالا تو یک حرکت نتیجه بدست میاریم.خیلی ساده بود ، ما این سادگی مدیون پایتونیم فرض کنید اگه این کار قرار بود داخل C انجام بدید به چند خط کد احتیاج داشتید. ولی احتمالا اونم پروژه جالبی میشد.خب بیاید اموزش امروز یه مقدار بیشتر ادامه بدیم .و یه مقدار بیشتر با datetime کار کنیم.برای مثال کد زیر تاریخ حال حاضرسیستم به ما برمیگردونه:برای اینکه یک شی datatime ایجاد کنیم میتوانیم به صورت زیر عمل میکنیم.امکان این که یک  شی datetime از روی یک رشته مقدار دهی کنیم هم وجود داره.خب امیدوارم که  این نوشته برای شما مفید بوده باشه. تا نوشته های بعدی با ما همراه باشید.</description>
                <category>ََUnkown Pirate</category>
                <author>ََUnkown Pirate</author>
                <pubDate>Mon, 21 Feb 2022 23:33:16 +0330</pubDate>
            </item>
                    <item>
                <title>به اعماق نگاه کردن</title>
                <link>https://virgool.io/@unkownpirate/%D8%A8%D9%87-%D8%A7%D8%B9%D9%85%D8%A7%D9%82-%D9%86%DA%AF%D8%A7%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-ffhjrsk8wncz</link>
                <description>هر چه در جزییات عمیق تر شویم چیزی نمی بینیم جز نقطه های سادهسلام امیدوارم که حالتون خوب باشه،امروز میخوایم در مورد مسیر یاد گیری برنامه نویسی و اهمیت یادگیری مبانی پایه صحبت کنیم.اولین تجربه برنامه نویسی من مربوط  به دوران دبیرستان میشه، زمانی که برای اولین بار با ویژال بیسیک اشنا شدم. یه زبان خیلی قدیمی که فک نکنم همین الانشم چیز زیادی ازش به خاطرم باشه. تا مدت های طولانی تنها شکل برنامه نویسی که برای من قابل تصور بود برنامه نویسی نرم افزار های ویندوزی بود. یعنی یک برنامه ای که یک رابط کاربری ویندوزی داشته باشه و بتونه که کارهای خاصی رو انجام بده.  یادم میاد که اولین برنامه ای که قصد نوشتنش رو داشتم  برنامه ای بود که بتونه به مدرسه کمک کنه که ساعت های درسی رو مرتب کنه(اما هیچ وقت کاملش نکردم /: ) و مدت تقریبا طولانی توی این مسیر سرگردون بودم تا این که با برنامه نویسی و همزمان با فریم ورک لاراول اشنا شدم . بنظرم دیگه قرار بود که برنامه نویس وب بشم و بعد از یه مدت کلی ازش پول درارم. ولی برنامه نویسی وب هم تا مدت طولانی یک برزخ برای من بود و از یک جا به بعد متوجه شدم که مناسب من نیست. این اتفاقات باعث شد که تقریبا تا یک مدت طولانی از برنامه نویسی دور باشم. و سراغ کامپیوتر نرم. این قضیه ادامه دار بود تا اینکه بعد کنکور وارد دانشگاه شدم. ترم اول دانشگاه درسی به اسم مبانی برنامه نویسی کامپیوتر داشتیم.این درس برای خیلی ها که داخل رشته های مهندسی مشغول به تحصیل هستند اولین تجربه اشنایی با برنامه نویسی هست. و تقریبا درس سختیه. عموما داخل این درس زبان c تدریس میشه. تنها چیزی که در مورد این درس میتونم بگم اینه که از همون ابتدا مسیر اشتباهی شروع میکنه به جای اینکه به سوالات اصلی بچه ها در مورد برنامه نویسی جواب بده. سوال هایی را جواب میده که اصلا برای اونها سوال نبوده به اون ها نشون میده که چطور از خط فرمان یک متغیر دریافت کنند. ولی به اون ها نمیگه که اصلا چه نیازی به استفاده از خط فرمان هست. به اونها نشون میده که چیزی به اسم اشاره گر( pointer) وجود داره که به قسمتی از حافظه اشاره میکنه. ولی به اونها نمیگه که این حافظه چیه، از کجا میاد،و اصلا چه نیازی یه این کارها هست. برای نسلی که بازی هایی مثل کالاف دیوتی و... و با فوتوشاپ کارکرده ،اون کارها احمقانه به نظر میرسید ولی این روال معمول نظام اموشی ما هست که جواب سوالاتی رو به ما میگه که اصلا برامون سوال نبوده. منم از این قضیه دل زدگی جدا نبودم به نظرم زبان C  تاریخ مصرف گذشته بود. امکان شی گرایی نداشت. ارایه هایی داشت که امکان تغیر سایز نداشتن . کارکردن با کنسول برام بی معنی بود. دوران کرونا زمان بسیار خوبی برای من بود که بتونم یک زبان جدید شروع کنم. و من پایتون انتخاب کردم. بنظرم پایتون انتخاب درستی بود، پایتون زبان ساده و سر راستی هست. کاربرد عمومی داره برای اکثر کاربرد های معقول شما میتونید که یک کتابخونه برای اون پیدا کنید و بسیار سطح بالا که به شما کمک میکنه که هر اون چه رو که فکر میکنید پیاده کنید.و این زمان زمانی بود که تصور من از برنامه نویسی هم تغیر کرد ،من به این نتیجه رسیدم که شما برای اینکه برنامه نویس باشید نیاز ندارید که حتما اپ اندرویدی بنویسید یا سایت بسازید و یا نرم افزار ویندوزی بسازید. برنامه نویسی یک ابزاره ، که بستگی به هر شغل و موقعیت میتونه برای شما مفید باشه.برنامه نویس بودن به شما کمک میکنه که فکر منظم ومنطقی تری داشته باشید، تصمیماتون کمتر باگ بخوره :)برای مثال در زمینه تخصصی من مهندسی برق، در ساخت مدارات مخابراتی وتحلیل های اون کاربرد های زیادی داره. در زمینه مهندسی پزشکی شبکه های عصبی در تحلیل سیگنال های مغزی به ما کمک میکنند.در کاربرد های علمی برنامه نویسی نعمت بزرگی برای شماست که با اون سیگنال ها رو تحلیل دسته بندی و از اون ها نتایجی رو استنتاج میکنیم.ولی مبحثی که میخواستم امروز بیشتر در مورد اون صحبت کنم فواید عمیق تر شدن  هست. ماجرا از یکی از واحد های درسی دانشگاه به اسم طراحی مدارات منطقی شروع شد. این درس از مفهوم گیت های منطقی شروع میشه و تا انتها با استفاده از قوانین جبر بول مدارات ساخته میشه که کاربرد های خاصی رو انجام بدن. مثلا جمع کردن و شمردن و ذخیره کردن. اگر که بخوام در مورد حس این درس صحبت کنم . اینه که حس جالبیه ادم احساس میکنه که کاپوت یک کامپیوتر بالا زده و داره ریز جزییات برسی میکنه. و ادم حس میکنه که پرده از خیلی جزییات برداشته میشه.و همین باعث شد که به فلسفه وجود زبان C پی ببرم و اون بیشتر درک کنم. و متوجه بشم که دلیل سادگی اون نزدیک بودن بسیار زیاد به سخت افزاره و این که از کنار هم قرار دادن این ابزار های کوچیک شما امکان خلق کردن چیز های بزرگی رو دارید(مثلا لینوکس :)). مفهوم صحبتم این نیست که شما هم به زبان C سوییچ کنید، نه ! منظورم اینه که شما در هر  زمینه و رشته ای که مشغول فعالیت هستید سعی کنید، مدتی یک بار هم که شده به فلسفه و مفاهیم ریشه ای اون کار هم نگاهی بندازید. تاریخچه اون کار بدونید . بدونید که دلیل استفاده از فلان سینتکس خاص یا فلان کتاب حونه خاص در کدتون چیه. اگر قصد داشتید که با استفاده از زبان یا ابزار یا ...  کدتون پیاده سازی کنید . باید چقدر متفاوت فکر میکردید. خب امیدوارم که برای شما مفید بوده باشه.</description>
                <category>ََUnkown Pirate</category>
                <author>ََUnkown Pirate</author>
                <pubDate>Fri, 18 Feb 2022 09:37:37 +0330</pubDate>
            </item>
                    <item>
                <title>پرانتز :contex manager در پایتون</title>
                <link>https://virgool.io/@unkownpirate/%D9%BE%D8%B1%D8%A7%D9%86%D8%AA%D8%B2-contex-manager-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-dhgzmnzauzgx</link>
                <description>سلام امید وارم حالتون خوب باشه،تو این نوشته قراره یک امکان جالب داخل پایتون برسی کنیم با عنوان contex manager ها ، راستشو بخواید من نتونستم معادل فارسی خوبی برای این کلمه پیدا کنم. بنظرم بیشتر باعث مبهم شدن موضوع میشد(مدیر زمینه /:) ولی بهر حال با وجود اسم عجبیش ، چیز اشنا و شناخته شده ای هست.به کد زیر توجه کنید ، حتما یا سابقه استفاده از with برای  باز کردن یک فایل داشتید ، یا اونو جایی دیدید، اگر هم ندیدید که الان بهش دقت کنید :)با استفاده از contex manager ها ما میتونیم که منابع خودمون مدیریت کنیم. مثل فضای ذخیره سازی ، دیتابیس ، IO ها و.... خب مثلا داخل مثال بالا ما خیالمون راحته که فایلی که باز کردیم خودش با بسته شدن بلاک with بسته میشه. و دیگه نگران اون نیستیم که ممکنه برنامه مون فایل باز شده ای داشته باشه.اگر از with برای باز کردن فایل و نوشتن چیزی داخل اون استفاده میکنیم ، معادل اینه که از این کد برای باز کردن و نوشتن در فایل استفاده کرده باشیم.خب حالا از چه object هایی میتونیم در ساختار with استفاده کنیم.و ایا خودمون میتونیم یکی از این object ها رو درست کنیم. بیاید یک مثال ببینیم:برای اینکه یک شی داخل پایتون بتونه از در ساختار with مورد استفاده قرار بگیره باید با توجه به ساختار زیر پیاده سازی شده باشه.ساختار contex_manager در پایتونبیاید استفاده از این ساختار رو  داخل یک مثال تمرین کنیم.و با استفاده از این object  داریم: و زمانی که کد رو در کامند لاین اجرا کنیم به نتایج زیر میرسیم:یک استفاده خلاقانه از with .خب حالا میخوایم که با استفاده از with زمان اجرای کدمون رو اندازه گیری کنیم.اندازه گیری زمان اجرا یک بلاک از کد با withخب ما اینجا یک contex  manager تعریف کردیم که با استفاده از اون زمان اجرای کدی که داخل بلوک with قرار میگیره اندازه گیری میکنیم. فلسفه کد به این صورته که زمانی که ما داخل بلاک with یک شی از نوع Timer تعریف میکنیم و وارد بلاک میشیم. تابع __enter__ فراخوانی میشه و زمان شروع اجرا رو ذخیره میکنه. همچنین زمانی که بلاک خارج می شویم. تابع exit فراخوانی میشود. و اختلاف زمان فعلی و زمان گذشته در خروجی چاپ میشود.خب امیدوارم این اموزش براتون مفید بوده باشه.مثال های این قسمت از کتابpython tricks انتخاب شده بود.مطالعه بیشتر: https://www.geeksforgeeks.org/context-manager-in-python/  https://realpython.com/python-with-statement/ </description>
                <category>ََUnkown Pirate</category>
                <author>ََUnkown Pirate</author>
                <pubDate>Wed, 02 Feb 2022 21:13:08 +0330</pubDate>
            </item>
                    <item>
                <title>پرانتز : به دست اوردن ip public با پایتون</title>
                <link>https://virgool.io/@unkownpirate/%D9%BE%D8%B1%D8%A7%D9%86%D8%AA%D8%B2-%D8%A8%D9%87-%D8%AF%D8%B3%D8%AA-%D8%A7%D9%88%D8%B1%D8%AF%D9%86-ip-public-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-wxfy16lzdl5f</link>
                <description>سلام، امیدوارم که حالتون خوب باشه . امروز در این نوشته از سری نوشته های در پرانتز قصد داریم که با پایتون ip  عمومی سیستم خودمون بدست بیاریم.برای این که بیشتر با این مبحث اشنا بشیم ، تصور کنید که شما با استفاده از یک مودم adsl به اینترنت متصل هستید.خب به دلیل محدود بودن تعداد ip های ورژن ۴ امکان این که به هر دستگاه یه ip اختصاصی ، داده بشه وجود نداره. پس ما مجبوریم از ip local استفاده کنیم.پس زمانی که مودم شما به سرویس دهنده اینترنتتون متصل میشه ISP شما یک IP public به مودم شما میده. و مودم شما داخل شبکه داخلی خودش که دستگاه های مختلفی به اون متصل هست(اسمارت فون ها، کامپیوتر و لپ تاپ و حتی این روز ها تلوزیون و یخچال و...) یک IP محلی اختصاص میده.این IP ها غالبا به شکل &quot;192.168.1x&quot; هستند که x شماره ای هست که به دستگاه شما داده میشه.مثلا  192.168.1.1 ادرس مودم شماست و اگر این ادرس داخل مرور گر خودتون جستجو کنید وارد تنظیمات مودم می شوید.برای این که IP محلی دستگاه  خودتون داخل لینوکس پیدا کنید میتونید از دستور زیر استفاده کنید:یا که از دستورifconfig استفاده کنید.و در ویندوز در CMD از دستور ipconfig استفاده کنید:زمانی که شما درخواستی رو به یک سرور داخل اینترنت ارسال میکنید. شما با استفاده از IP محلی خودتون  روی یک پورت خاص به مودم وصل میشید و درخواستتون به مودم میفرستید. و مودم پیام شما رو با IP خودش که اغلب یک IP عمومی هست به سرور سمت اینترنت ارسال میکنه , و سرور هم پاسخ رو به مودم شما برمیگردونه و مودم هم به شما جواب میده.به این فرایند NAT گفته میشه؛&quot; Network Address Translation&quot; بعضی وقتا هم ممکنه که شما داخل nat سرویس دهنده خودتون قرار داشته باشید.پس ISP به شما یک IP محلی میده و مودم شما هم از اینترنت قابل دیدن نیست.خب اگه ما نیاز داشته باشیم که IP عمومی که ما داخل اینترنت با اون دیده میشیم به دست بیاریم . لازم داریم که از یک شخص ثالث کمک بگیریم.به این شکل که ما به اون یک درخواست میدیم و اون به ما میگه که ما از چه IP استفاده میکنیم. برای مثال میتونید what is my ipتوی گوگل جستجو کنید.خب apiهای رایگان زیادی هستند. که این کار برای ما انجام میدن یکی از اونها apify.org هست.بریم سراغ کد نویسی:به همین سادگی :).امید وارم این اموزش برای شما مفید بوده باشه.</description>
                <category>ََUnkown Pirate</category>
                <author>ََUnkown Pirate</author>
                <pubDate>Sun, 23 Jan 2022 13:08:24 +0330</pubDate>
            </item>
                    <item>
                <title>پرانتز:معرفی pydantic کتاب خانه ای  برای کار با داده ها</title>
                <link>https://virgool.io/@unkownpirate/%D9%BE%D8%B1%D8%A7%D9%86%D8%AA%D8%B2%D9%85%D8%B9%D8%B1%D9%81%DB%8C-pydantic-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%AE%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7-rwqwjipr4r7u</link>
                <description>سلام امیدوارم که سالم و سلامت باشد. امروز فکر کردم که چه خوب میشه بین موضوعاتی که در زمینه برنامه نویسی اینجا بهشون میپردازیم، بعضی وقت ها نوشته های کوتاهی داشته باشیم  . شامل نکته ها ، ترفند ها ، کتاب خونه های مفید و ... هر اون چیزی که جالبه و میتونه مفید باشه. پس تصمیم گرفتم که ازین به بعد  این کوتاه نوشت ها رو تحت عنوان&quot;در پرانتز&quot; منتشر کنیم.امروز قضد داریم در مورد pydantic صحبت کنیم، این کتاب خونه جالب که خودم به تازگی با اون اشنا شدم،این کتاب خانه ابزار خوبی برای استخراج داده های مورد نیاز از یک داده json هست.خب تو اولین مرحله به سراغ نصب این برنامه میریم با دستور زیر میتونید این کتاب خونه نصب کنید:pip install pydanticبعد از این که این کتاب خونه نصب کردیم ، میریم به سراغ استفاده از اون،اول بیایم صورت مسئله  شرح بدیم،من فرض کردم که یه دیتا دارم از مشخصات دانشجویی به  صورت json و نیاز دارم که این دیتا رو  داخل یک برنامه بخونم و بتونم از اون داخل برنامه خودم استفاده کنم.بیشتر معطل نکنیم بریم سراغ کد نویسی-&gt;در ابتدا کد نویسی کتاب خونه های مورد نیاز به برنامه اضافه میکنیم و یک دیتا بصورت نمونه تعریف میکنیم:یک کلاس به نام Student تعریف می کنیم  تا اطلاعات ما رو نگه داره و  در تعریف اون  از یک شی BaseModelاستفاده می کنیم.برای این که بتونیم location  رو بدست بیاریم نیاز داریم که یک کلاس به اسم &quot;location&quot;  ایجاد کنیم و ادرس داخل اون تعریف کنیم:به تعریف متغیر ها دقت کنید ، اسم متغیر باید دقیقا شبیه فیلدی باشه که داخل فایل json خودمون داریم و نوع اون بنا به نوع داده ای که داریم تعریف می کنیم.حالا میتونیم از دیتا ای که داریم یک کلاس Student  ایجاد کنیم. و  اینم نتیجه اجرا کد:خب امیدوارم که این مطلب مفید بوده باشه،تا نوشته های بعدی با ما همراه باشید.مطالعه بیشتر: https://pydantic-docs.helpmanual.io/ </description>
                <category>ََUnkown Pirate</category>
                <author>ََUnkown Pirate</author>
                <pubDate>Sun, 16 Jan 2022 21:38:11 +0330</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی سوکت در زبان C با لینوکس</title>
                <link>https://virgool.io/@unkownpirate/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B3%D9%88%DA%A9%D8%AA-%D8%AF%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-c-%D8%A8%D8%A7-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-eccdhosx6lhd</link>
                <description>تو این نوشته قصد داریم با سوکت ها اشنا بشیم ، کاربرد های اونها بدونیم و با استفاده از زبان C یک برنامه سوکت بنویسیم.خب حالا قبل از هر کار توضیح بدیم که سوکت ها چه هستند و چه کار هایی برای ما انجام میدن.یک سوکت یک اتصال بین دو دستگاه داخل شبکه اینترنته. که یکی از این دستگاه ها باید نقش سرویس دهنده(server) اجرا  و دیگری در نقش کلاینت ظاهر میشه.خب یک مثال از سوکت ها اینه که زمانی که شمامرورگرتون باز میکنید و چیزی جستجو میکنید . مروگر شما یک از اتصال سوکت به یک سرور مثلا گوگل برقرار میکنه، و درخواست اطلاعات از گوگل میکنه،مشابه بعضی برنامه های چت مثل اسکایپ.خب عکس زیر روند برقراری یک ارتباط سوکت نشون میده:فرایند یک ارتباط سوکتما قراره که تو یه سری مقاله یک برنامه چت ساده با استفاده از سوکت ها و زبان C بنویسیم و کارکردن با سوکت ها در زبان C یاد بگیریم.برنامه ما از دو قسمت تشکیل میشه یک سرور و یک کلاینت و ما به مرور این دو قسمت از کد کامل میکنیم تا در نهایت یک برنامه چت با استفاده از سوکت ها داشته باشیم.خب شروع کنیم به نوشتن کد و در این بین بیشتر با این مراحل اشنا میشیم.در ابتدا کد سرور رو مینویسیم:سرور:در ابتدای کار کتاب خونه های مورد نیاز به برنامه اضافه میکنیم.و یک شی سوکت ایجاد میکنیم:مقدار دهی سوکت:در این قسمت ما یک ساختار sockaddr_in برای سرور ایجاد کرده ، و مقادیر اولیه برای اون تنظیم کردیم.مرحله بعد Bind :بایند کردن به معنی مقید کردنه تو این قسمت برنامه ما از سیستم عامل تقاضا میکنه که به اون اجازه بده که اطلاعات یک پورت بخونه و اصطلاحا به اون پورت Bind بشه، در هر لحظه سیستم عامل فقط به یک برنامه اجازه سرویس دهی روی یک پورت میده و اگه یک پورت توسط یک برنامه ازقبل اشغال شده باشه در خواست ما برای گوش دادن به اون پورت برگشت میخوره.برای این که ببینید چه برنامه هایی در سیستم شما مشغول گوش دادن به چه پورت هایی هستند از دستور :sudo netstat -tulpn استفاده کنید.مرحله بعد Listen :خب حالا ما موفق شدیم که توسط سروری که ساختیم به پورت ۸۸۸۸ سیستممون گوش بدیم.حالا باید منتظر بمونیم تا یک کلاینت به ما درخواست بده و ما به درخواست اون جواب بدیم.تو این قسمت از کد ما منتظر هستیم تا کلاینتی از طریق پورت ۸۸۸۸ به ما درخواستی بده. زمانی که کلاینتی به ما درخواست داد ما درخواست اون قبول میکنیم و یک پیام به کلاینت ارسال میکنیم.این برنامه برنامه خیلی ساده ایه و به محض این که یک کلاینت به اون متصل شد یک پیام ساده به اون میفرسته و بعد از اون به پایان میرسه با به پایان رسیدن برنامه اتصال ما هم قطع میشه و پورت ازاد میشه.برای این که این کد اجرا کنیم با استفاده از کامپایلرتون کد رو کامپایل کنید . من از gcc استفاده کردم.و اونو اجرا میکنیم:خب ما هنوز کد کلاینت مون ننوشتیم پس برای امتحان سرورمون از telnet استفاده میکنیم:خب تبریک میگم سرورمون با موفقیت کار کرد و به یک اتصال برقرار کرد و به درخواست ما پاسخ داد. https://gist.github.com/Ehsan-hsr/cbb0eb167656ed5e14845262dfe85154 اینم کد کامل سرور ما تا این قسمت،در قسمت های بعدی کد کلاینت مینویسیم و امکانات بیشتری به برنامه خودمون اضافه میکنیم تا در نهایت یک برنامه چت ساده با استفاده از سوکت ها داشته باشیمبرای مطالعه بیشتر: https://www.binarytides.com/socket-programming-c-linux-tutorial/  https://www.geeksforgeeks.org/socket-programming-cc/  https://realpython.com/python-sockets/ </description>
                <category>ََUnkown Pirate</category>
                <author>ََUnkown Pirate</author>
                <pubDate>Sat, 15 Jan 2022 20:58:14 +0330</pubDate>
            </item>
                    <item>
                <title>دسترسی به متغیر های خط فرمان در پایتون</title>
                <link>https://virgool.io/@unkownpirate/%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D9%87-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7%DB%8C-%D8%AE%D8%B7-%D9%81%D8%B1%D9%85%D8%A7%D9%86-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-tczhwlblqbw2</link>
                <description>اگر تا حالا تجربه کار کردن با ترمینال لینوکس و یا cmd در ویندوز داشته باشید.حتما متوجه سوییچ هایی شدید که به کمک اون ها نرم افزار ورودی دریافت میکنه و رفتار برنامه به کمک اونها میتونه تغییر کنه. ‍‍مثلا به کد های زیر برای که برای لینوکس نوشته شده دقت کنید:کد زیر باعث ریست شدن کامپیوتر بعد از ۱۰ دقیقه میشه.#reboot system after 10 min
shutdown -r  10یا مثلا کد زیر باعث خاموش شدن سیستم در لحظه میشه:#turn off system immediatly
shutdown nowیا کد زیر که باعث لغو دستور shutdown میشه:#Cancle a pending shutdown
shutdown -cمیتونید لیست کامل این دستور ها رو با نوشتن (man shutdown) در ترمینالتون ببینید.خب حالا قصد داریم با پایتون برنامه ای بنویسیم که ورودی هاشو از ترمینال دریافت کنه و بتونیم با استفاده از سوییچ های مختلف مسیر حرکت برنامه رو کنترل کنیم:خب قواعد بازی چیه؟ ما قراره یک برنامه بنویسیم که یک فاکتور خرید برای ما کامل کنه یعنی یعنی برنامه ما باید این امکان داشته باشه که اسم یک کالا ، تعداد و قیمت به عنوان ورودی از ما دریافت کنه ،لیست و تعداد کالا ها به ما نمایش بده ، و امکان حذف کردن هم داشته باشه و در نهایت بتونه یک لیست کامل به ما بده.خب شروع کنیم به کد نویسی:اول از همه کتاب خونه های مورد نیاز برنامه اضافه میکنیم.import sys
from getopt import getopt
import  jsonخب حالا میتونیم با استفاده از کتاب خونه sys  ورودی هامون از ترمینال دریافت کنیم:به این مثال توجه کنید:#test1.py
import sys
if __name__ == &amp;quot__main__&amp;quot:
     print(sys.argv[1:])و آن را در ترمینال اجرا میکنیم:$python3  test1.py   inpute1    -s 100
output : [&#039;inpute1&#039;, &#039;-s&#039;, &#039;100&#039;]خب حالا با استفاده از کتاب خونه ()getopt ورودی های برنامه به شکل key:value تبدیل می کنیم تا دسترسی به انها راحت تر باشد .کد زیر مثال از نحوه استفاده از کتاب خونه ()getopt است.#test2.py
import getopt
print (getopt.getopt([&#039;-a&#039;, &#039;-bval&#039;, &#039;-c&#039;, &#039;val&#039;],  &#039;ab:c:&#039;))و آن را اجرا میکنیم:$python3 test2.py
output: ([(&#039;-a&#039;, &#039;&#039;), (&#039;-b&#039;, &#039;val&#039;), (&#039;-c&#039;, &#039;val&#039;)], [])پس به راحتی دربرنامه میتوانیم متوجه شویم که کدام سوییچ ها در کد ما وجود دارند،و مقدار آن ها چیست. https://gist.github.com/Ehsan-hsr/5ff8625f2c8c4aa8241b166441402a99  https://gist.github.com/Ehsan-hsr/5ff8625f2c8c4aa8241b166441402a99 #Add
$python3 notebook.py -a &amp;quotname&amp;quot-&amp;quotquantity&amp;quot-&amp;quotprice&amp;quot
#Delete
$python3 notebook.py -d &amp;quotname&amp;quot
#print
$python3 notebook -gامیدوارم که این مطلب برای شما مفید باشه.</description>
                <category>ََUnkown Pirate</category>
                <author>ََUnkown Pirate</author>
                <pubDate>Sat, 27 Nov 2021 11:03:51 +0330</pubDate>
            </item>
            </channel>
</rss>