<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سجاد سروش</title>
        <link>https://virgool.io/feed/@sajadsoroosh</link>
        <description>نگو نمی تونم، نمیشه
باید بشه... باید بتونی!</description>
        <language>fa</language>
        <pubDate>2026-06-10 14:18:06</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/28852/avatar/RVpV5e.png?height=120&amp;width=120</url>
            <title>سجاد سروش</title>
            <link>https://virgool.io/@sajadsoroosh</link>
        </image>

                    <item>
                <title>ربات هوشمند مدیر کانال</title>
                <link>https://virgool.io/botsaaz/%D8%B1%D8%A8%D8%A7%D8%AA-%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF-%D9%85%D8%AF%DB%8C%D8%B1-%DA%A9%D8%A7%D9%86%D8%A7%D9%84-wyadc4cxcuzh</link>
                <description>حدود یک ماه هست که دارم روی یک ربات هوشمند برای مدیریت کانال کار میکنم. نمونه ی این ربات رو قبلا برای مشتریانم ساخته بودم ولی مقداری اختصاصی بود و این بار سعی کردم همه ی اونچه یک ربات مدیریت کانال نیاز داره رو توی یه ربات جمع کنم تا کم و کسری نداشته باشه و هر مدیری بتونه ازش استفاده کنه.ربات هوشمند مدیر کانال
از ویژگیهای اساسی این ربات داشتن زمانبندی برای هر پست هست. یعنی اینکه مدیر کانال یک زمان بندی برای ارسال پست ها به ربات میده، مثلا بهش میگه هر 20 دقیقه یک پست ارسال کن. بعد مدیر مقدار زیادی پست در یک لحظه به ربات ارسال میکنه و ربات اینا رو ذخیره میکنه توی صفش و هر 20 دقیقه یکی رو ارسال میکنه. احتمالا با خودتون میگید که تلگرام خودش این قابلیت زمان بندی رو داره، ولی این چیزی هست که خود بنده هم ازش مطلع بودم و قطعا نمیخواستم دوباره کاری کنم و چیز بیهوده ای بسازم. چیزی که میتونم بگم اینه که این ربات فرایند ارسال پستها به کانال رو خیلی ساده میکنه. در حد یک فوروارد. و چیزیه که باید خودتون ازمایشش کنید تا متوجه بشید.پیام فوروارد شده برای ربات و پاسخ رباتیکی دیگه از آپشن های جالب این ربات داشتن زمان بندی برای حذف پست هست! یعنی شما برای هر پستی که به ربات ارسال میکنید میتونید یک &quot;زمان حذف&quot; براش تنظیم کنید که توی اون زمان ربات خودش میره و پست رو حذف میکنه.قابلیت جالب دیگه ی این ربات انداختن لوگو روی پست ها هست. با ارسال تصویر لوگو و تنظیم اندازه و موقعیت لوگو، ربات روی همه تصاویر به صورت خودکار لوگوی کانال رو قرار میده و بعد ارسالشون میکنه.با استفاده از این ربات، همه چیز برای مدیرهای کانال ها به راحتی یک فوروارد کردن میشه، چون که این ربات قابلیت حذف تگ هوشمند هم داره و خود به خود لینک کانال ها و نامشون رو از پیامهای فوروارد شده پاک میکنه و اینطوری نیاز به کمترین دخالت ادمین در ویرایش پستهاست!منوی تنظیمات اصلی رباتدوستان عزیز این بخشی از قابلیتهای ربات هوشمند مدیر کانال بود. این ربات قابلیتهای بسیار جالب تر و متنوع تری هم داره که انشاله در پست های بعدی بهش میپردازم. اما از اونجایی که مهمترین چیز توی زندگیم برام پیشرفت هست از همه کسانی که این پست رو میخونند تقاضا دارم اگر انتقاد یا پیشنهادی در این زمینه دارند با بنده در میون بگذارند که بسیار متشکر خواهم شد از ایشان.در ضمن در صورتی که این ربات رو نیاز داشتید در خدمتتون هستم.</description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Mon, 17 Aug 2020 04:25:55 +0430</pubDate>
            </item>
                    <item>
                <title>خاطره اولین افزایش اعضای کانال توسط ربات</title>
                <link>https://virgool.io/botsaaz/%D8%AE%D8%A7%D8%B7%D8%B1%D9%87-%D8%A7%D9%88%D9%84%DB%8C%D9%86-%D8%A7%D9%81%D8%B2%D8%A7%DB%8C%D8%B4-%D8%A7%D8%B9%D8%B6%D8%A7%DB%8C-%DA%A9%D8%A7%D9%86%D8%A7%D9%84-%D8%AA%D9%88%D8%B3%D8%B7-%D8%B1%D8%A8%D8%A7%D8%AA-dcx6isyhpqn0</link>
                <description>سلام. میخواهم برایتان یک خاطره از ساخت یکی از رباتهایم بگویم. این خاطره مربوط به زمانی میشود که من تازه کار ساخت ربات های تلگرامی را شروع کرده بودم یعنی حدود سه سال پیش. در آن زمان تازه اولین مشتری های خودم را پیدا میکردم و سعی میکردم با قیمت های پایین پیشنهادی آنها را جذب کنم تا اعتبار بیشتری بدست بیاورم.دومین مشتری من فردی بود که ادمین یک کانال تلگرامی بود و سفارش یک ربات قرعه کشی برای افزایش اعضای کانالش را به من داد. کانال ایشان یک کانال خبری بود که حدود 20 هزار عضو داشت. ربات درخواست شده یک ربات قرعه کشی بود که برندگان این قرعه کشی در نهایت قرار بود عازم سفر کربلا شوند. نحوه فعالیت این ربات مثل اکثر رباتهای عضوگیری بود. یعنی ابتدا کاربر برای استفاده از ربات، ملزم به عضو شدن در کانال مربوطه بود. سپس کاربر دکمه شرکت در قرعه کشی را فشار میدهد و ربات پاسخ میدهد که برای شرکت در قرعه کشی بایستی حداقل n نفر را را دعوت کنید. این عدد برای ربات قرعه کشی ما برابر 3 بود. در آن زمان ربات ها معمولا عددهای بالاتری را برای فعال شدن در نظر میگرفتند که از نظر من کار جالبی نبود. بالا بردن این عدد ممکن است کاربر را به کلی از فعال کردن ربات منصرف کند.خلاصه پروژه ایشان را قبول کردم. در آن زمان یعنی سه سال پیش این ربات را صرفا با 300 هزارتومان برایشان ساختم. حالا نوبت به شروع کار ربات میشد.ربات را اجرا کردیم و لینک ربات را در کانال خودشان و چند کانال دیگر قرار دادیم. جالب است بدانید بعد از یک روز ربات به کلی هنگ کرد. تعداد کاربران ربات به قدری بالا رفت که هم از لحاظ برنامه ی نوشته شده توسط من و هم از لحاظ محدودیت های تلگرام به محدودیت خوردیم. همانطور که میدانید (یا نمیدانید) تلگرام برای رباتها محدودیت هایی را قرار داده است که یکی از آنها ارسال حداکثر 30 پیام در یک ثانیه به کاربران مختلف است. مشتری من ناگهان ساعت 2 نیمه شب به تلفن من تماس گرفت و گفت بیدار شو که ربات ترکیده است. من هم از آنجایی که ایشان جزو اولین مشتری هایم بودند بیدار شدم و به سرور مربوطه متصل شدم و لاگهای سرور را بررسی کردم و مشاهده کردم که ربات به محدودیت های تلگرام رسیده است و خطای flood دریافت میکند. همچنین در برخی موارد ربات بسیار کند عمل میکرد. زیرا اعضای ربات بسیار زیاد بودند و اجرای برنامه ربات برای هرکدامشان کار را کند میکرد به طوری که کاربر دکمه را فشار میداد و پاسخ ربات 10 دقیقه بعد ارسال میشد!خوشبختانه روز بعد این مشکل را با قرار دادن یک صف زماندار و همچنین چندنخی کردن برنامه ربات برطرف کردم.اما این ربات چقدر عضو برای کانال مربوطه جمع آوری کرد؟ جالب است بدانید تنها پس از گذشت یک هفته یک میلیون نفر ربات را استارت کرده بودند!! همانطوری که حدس میزنید لزوما هرکسی که ربات را استارت میکند وارد کانال متصل به آن نمیشود. از آن یک میلیون نفر 350 هزار نفر عضو کانال مشتری من شدند! همه ی این اتفاقات در عرض یک هفته اتفاق افتاد. جالب اینجا بود که در همان یک هفته لینک پخش آن ربات را از دوستان نزدیک و خانواده نزدیک خودم دریافت میکردم!از آن موقع به بعد چندین بار این ربات قرعه کشی را برای مشتری های مختلف ساختم اما هیچ کدامشان بازدهی آن اولین ربات را نداشتند. شاید قصد آنها این اندازه خیر نبود، شاید هم آن یک میلیون نفر از قرعه کشی رضایت نداشتند :))</description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Mon, 10 Aug 2020 12:49:08 +0430</pubDate>
            </item>
                    <item>
                <title>چرا واتسپ هرگز امن نخواهد بود؟!</title>
                <link>https://virgool.io/@sajadsoroosh/%DA%86%D8%B1%D8%A7-%D9%88%D8%A7%D8%AA%D8%B3%D9%BE-%D9%87%D8%B1%DA%AF%D8%B2-%D8%A7%D9%85%D9%86-%D9%86%D8%AE%D9%88%D8%A7%D9%87%D8%AF-%D8%A8%D9%88%D8%AF-jsl8frhnwlot</link>
                <description>به نظر میرسه که دنیا با خبر تبدیل شدن هر گوشی همراه به ابزار جاسوسی توسط واتسپ شوکه شده بود. هر چیزی روی گوشی همراه شما، شامل عکسها، ایمیلها و همینطور پیامها توسط مهاجمین و هکرها قابل دسترس بود، تنها به این دلیل که واتسپ روی گوشی شما نصب بود.البته اگرچه این اخبار من رو سورپرایز نمیکرد. سال پیش واتسپ مجبور بود به مساله ای مشابه اقرار کنه - یک تماس ویدیویی همه ی چیزی بود که یک هکر برای دسترسی به تمام اطلاعات روی تلفن همراه شما لازم داشت.هر بار که واتسپ یک مشکل بحرانی رو توی اپش برطرف میکنه به نظر میرسه یه مشکل دیگه جاشو پر میکنه. همه مشکلات امنیتی اونها نیازمند نظارت و مراقبت و کار بسیار زیادی هستند.برخلاف تلگرام، واتسپ یک نرم افزار متن باز نیست. بنابراین هیچ راهی نیست که محققان امنیت بتونند به راحتی وجود درهای مخفی در برنامه رو چک کنند. اونها دقیقا کار برعکسی رو میکنند: واتسپ عمدا فایلهای باینری اپش رو مخفی میکنه که مطمئن بشه که هیچکس نمیتونه کدش رو به طور کامل مطالعه کنه.واتسپ و شرکت پدرش فیسبوک، ممکنه مجبور باشند که درهای مخفی ای رو پیاده سازی کنن - به دلیل پروسه های محرمانه مثل دستورات پلیس فدرال. اجرا کردن یک اپلیکیشن ارتباطی امن از ایالات متحده کار آسونی نیست. در خلال دو هفته ای که در سال ۲۰۱۶ به همراه تیممون توی ایالات متحده گذروندیم شاهد سه تلاش نفوذ از سمت پلیس فدرال بودیم. تصور کنید که ۱۰ سال در اون محیط میتونه چی به سر یه شرکت بنیان شده در آمریکا بیاره!من متوجه این هستم که سازمان های امنیتی کاشتن درپشتی رو برای تلاش های ضدترورشون توجیه میکنن. مساله این هست که این نوع درهای پشتی میتونه همچنین توسط جنایتکاران و دولت های مستبد استفاده بشه. تعجبی نداره که به نظر میرسه بعضی از دولتها واتسپ رو ترجیح میدند. فقدان امنیت واتسپ به اونا اجازه میده که روی مردم خودشون نظارت کنن. بنابراین واتسپ در کشورهایی مثل روسیه به آزاد بودن خودش ادامه میده.در حقیقت من کار روی تلگرام رو به عنوان یک پاسخ مستقیم به فشار شخصی از سمت دولت روسیه شروع کردم. اون موقع در سال ۲۰۱۲، واتسپ هنوز داشت پیامها به صورت متن واضح منتقل میکرد. این دیوونه کننده بود! نه تنها دولت ها و هکر ها، بلکه حتی تولید کننده های موبایل و همچنین ادمین های وایفای به همه ی پیامهای واتسپ دسترسی داشتند.بعدا واتسپ مقداری رمزگذاری اضافه کرد، که به زودی مشخص شد که یک کار بازاریابی هست: کلید رمزگشایی پیامها حداقل برای چندین دولت در دسترس بود، از جمله روس ها. بعد زمانی که تلگرام شروع به محبوب شدن کرد بنیان گذاران واتسپ شرکتشون رو به فیسبوک فروختند و اظهار کردند «حریم خصوصی توی دی ان ای اونها بوده». اگه درست بوده باشه احتمالا اون یه ژن خاموش یا یه ژن غوطه ور بوده.۳ سال پیش واتسپ اظهار کرد که اونها رمزگذاری کاربر به کاربر رو پیاده سازی کردند، بنابراین «هیچ شخص ثالثی نمیتونه به پیامها دسترسی پیدا کنه». این همزمان شد با هجوم پرفشار همه کاربرهاش برای پشتیبان گیری از چتهاشون بر روی ابر. در هنگامی که کاربران این کارو میکردند، واتسپ بهشون نگفت که بعد از پشتیبان گیری، پیامها دیگه با رمزگذاری کاربر به کاربر محافظت نمیشن و میتونن توسط هکرها و مجریان قانون قابل دسترس باشند. نتیجه ش؟ بازاریابی درخشان، و همچنین تعدادی از مردم ساده که زمانشون رو باید در زندانها سر میکردند.افراد معمولی که برای گیر نکردن در پاپ آپ های دائمی واتسپ که بهشون میگفت بک آپ بگیرید هنوز هم میتونند با تعدادی ترفند ردیابی بشن - از دسترسی به مخاطبینشون و همینطور تغییرات نامرئی کلید رمزگذاری. داده های تولید شده توسط لاگ های کاربران واتسپ که توصیف میکنه کی با کیا و چه زمانی چت کرده، به انواع مختلف سازمانها در ابعاد وسیعی، توسط شرکت مادر واتسپ نشت کرده. و دربالای اون، شما مخلوطی از آسیب پذیریهای بحرانی که پشت سر هم پدیدار میشن رو دارید.واتسپ تاریخ استواری داره - از درجه رمزگذاری صفر به عنوان شروعش تا جانشینی مشکلات امنیتی مشکوک به مناسب بودن برای اهداف نظارتی. با نگاه به عقب، حتی یک روز هم در سفر ۱۰ ساله واتسپ نبوده که این سرویس امن بوده باشه. به همین دلیل هست که من فکر نمیکنم که تنها آپدیت کردن اپلیکیشن موبایل واتسپ اونو برای همه ایمن میکنه. برای اینکه واتسپ بخواد به سمت یک سرویس امنیت محور پیش بره، باید از دست دادن همه ی بازارش و همینطور درگیرشدن با مسئولین در کشور خانگیش رو ریسک کنه. به نظر نمیرسه که اونا برای این آماده باشن.سال گذشته بنیانگذاران واتسپ شرکت رو به دلیل نگرانی برای حریم شخصی کاربرانشون رها کردند. اونها قطعا در قید مسئولیت هایی برای فاش نکردن اسرار توسط تیمشون هستند، بنابراین قادر نیستند که عموما راجع به درهای پشتی موجود بحث کنند. اونها قادر بودند که این رو بپذیرند، به هر حال، اینکه «اونها حریم شخصی کاربراشون رو فروختند».من میتونم بی میلی بنیانگذاران واتسپ برای دادن جزییات بیشتر رو درک کنم - ساده نیست که آسودگیت رو ریسک کنی. چند سال پیش من مجبور بودم که کشورم رو ترک کنم بعد از اینکه پیشنهاد دولت رو برای نقض حریم خصوصی کاربرای VK رد کردم. این خوشایند نبود. اما آیا حاضرم کاری شبیه این رو دوباره انجام بدم؟ خوشبختانه، همه ما قراره که بالاخره بمیریم، اما به عنوان گونه هایی مدتی در این اطراف خواهیم بود. برای همین هست که من فکر میکنم جمع کردن ثروت، شهرت یا قدرت غیرضروری هست. خدمت به بشریت تنها چیزی هست که در دراز مدت واقعا اهمیت داره.و هنوز با وجود نیت هامون، من حس میکنم ما اجازه میدیم که انسانیت در نرم افزار جاسوسی واتسپ از بین بره. تعداد زیادی از مردم نمیتونن استفاده از واتسپ رو متوقف کنن، چرا که دوستان و خونواده هاشون هنوز ازش استفاده میکنن. این به این معنی هست که ما توی تلگرام کارمون رو توی متقاعد کردن مردم به عوض کردن پیامرسانشون خوب انجام ندادیم. در حالیکه ما در پنج سال گذشته صدها میلیون کاربر رو جذب کردیم، این کافی نبوده. اکثریت کاربران اینترنت هنوز گروگان امپراتوری فیسبوک/واتسپ/اینستاگرم هستند. تعداد زیادی از کسانی که از تلگرام استفاده میکنند هم هنوز واتسپ دارند، به این معنی که تلفن همراهشون هنوز آسیب پذیر خواهد بود. حتی کسایی که واتسپ رو کاملا دفن کردند احتمالا هنوز از فیسبوک یا اینستاگرم استفاده میکنند، دو نرم افزاری که فکر میکنند مشکلی نیست که پسوردهاتون به صورت متن خام ذخیره کنند (من هنوز نمیتونم اینکه یک شرکت تکنولوژی بتونه چنین کاری انجام بده و باهاش کنار بیاد رو باور کنم).در زندگی ۶ ساله خودش، تلگرام هنوز نشتی داده بزرگی یا آسیب های امنیتی ای از نوعی که واتسپ هر چند ماه بروز میده، نداشته. در همین ۶ سال، ما دقیقا صفر بایت داده به اشخاص ثالث افشا کردیم، در حالیکه فیسبوک/واتسپ در حال اشتراک گذاری تقریبا همه چیز با هرکسی که اظهار کرده که با یک دولتی کار میکرده بوده.تعداد کمی از افراد خارج از جامعه طرفداران تلگرام درک میکنند که اکثر ویژگیهای جدید در حوزه پیامرسانی اول روی تلگرام پدیدار میشند، و بعدش توسط واتسپ در ریزترین جزییاتشون کپی میشند. اخیرا ما شاهد تلاش فیسبوک برای قرض گرفتن تمام فلسفه تلگرام با اظهارات ناگهانی زاکربرگ در سخنرانی F8 اش در مورد اهمیت حریم شخصی و سرعت هستیم، عملا و کلمه به کلمه نقل قول توضیحات اپلیکیشن تلگرام.اما نالیدن از دورویی فیسبوک و کمبود خلاقیتش کمکی نمیکنه. ما باید اقرار کنیم که فیسبوک در حال اجرای یک استراتژی کارامد هست. نگاه کنید که اونا با اسنپ چت چیکار کردند.ما در تلگرام باید مسئولیتمون رو در شکل دادن آینده اذعان کنیم. یا ما خواهیم بود یا مونوپولی(انحصار) فیسبوک. یا آزادی و حریم خصوصی خواهد بود و یا طمع و دورویی. تیم ما حداقل ۱۳ سال در حال رقابت با فیسبوک هست. ما تا الان یک بار اونها رو شکست دادیم، در بازار شبکه اجتماعی اروپای شرقی. ما دوباره اونها رو در بازار پیامرسانی جهانی شکست خواهیم داد. باید این کارو بکنیم.آسون نخواهد بود. دپارتمان بازاریابی فیسبوک عظیم هست. درحالی که ما در تلگرام بازاریابی صفر رو داریم. ما نمیخوایم به نویسنده ها و محقق ها پول بدیم که به دنیا راجع به تلگرام بگن. برای این کار ما به شما تکیه میکنیم - به میلیون ها کاربرمون. اگه شما تلگرام رو به اندازه کافی دوست داشته باشید، راجع بهش به دوستاتون میگید. و اگه هر کاربر تلگرام سه تا از دوستانشو متقاعد کنه که واتسپ رو پاک کنه و دائما به تلگرام منتقل بشه، تلگرام به سرعت از واتسپ محبوب تر میشه. دوره ی طمع و دورویی به پایان میرسه. یک دوره آزادی و حریم شخصی شروع میشه. این خیلی نزدیک تر از چیزیه که به نظر میرسه.نقل مطلبی که پاول دوروف دیشب توی کانال رسمیش منتشر کرد و گفت:من دوست ندارم روی مسابقه دهنده ها تمرکز کنم، اما ازونجایی که مردم به سوال پرسیدن از من راجع به واتساپ ادامه میدن، من این پست رو نوشتم. این شامل افکار من راجع به اونها میشه. همینطور افکارم راجع به خودمون. لذت ببرید.https://telegra.ph/Why-WhatsApp-Will-Never-Be-Secure-05-15ممنون که وقت گذاشتید و خوندید. خوشحال میشم نظرتون رو بدونم و اینکه حرفای پاول رو فراموش نکنیم و به دوستامون بگیم.</description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Thu, 16 May 2019 08:12:50 +0430</pubDate>
            </item>
                    <item>
                <title>آیا من مسئولم؟(اخلاق برنامه نویسی)</title>
                <link>https://virgool.io/coderlife/%D8%A2%DB%8C%D8%A7-%D9%85%D9%86-%D9%85%D8%B3%D8%A6%D9%88%D9%84%D9%85%D8%A7%D8%AE%D9%84%D8%A7%D9%82-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-v9pja2om2z4e</link>
                <description>مقدمهمسأله ای که میخوام راجع بهش بنویسم مربوط به اخلاق برنامه نویسی میشه. این مسأله، مسأله جدیدی نیست و قطعا با یه سرچ ساده توی گوگل با عنوان مثلا &quot;programming ethics&quot; به نتایج خوبی میرسید و میتونید مطالعه کنید. اخلاق توی برنامه نویسی بندهای مختلفی داره که من میخوام راجع به یه قسمتش بنویسم و اون مسئولیت برنامه نویس در قبال کاربرد برنامه هست.مسئولیت با &quot;من&quot; آغاز میشود.طرح مسألهموقعیتی رو تصور کنید که یه نفر از شما به عنوان یه برنامه نویس درخواست ساختن یه برنامه رو میکنه. شما متوجه میشید که قراره از این برنامه استفاده نادرستی بشه. یعنی ذات برنامه درخواست شده برای یک عمل غیر انسانی و یا حتی ساده تر بگیم یه عملی هست که با اخلاق خودتون سازگار نیست. آیا حاضر به ساختن این برنامه میشدید؟ذکر مثالدر واقع این مسأله زمانی برای من طرح شد که رباتهای تبچی رو دیدم که روز به روز دارن بیشتر میشن. همونطور که میدونیم رباتهای تبچی اکثرا مطالب و تبلیغات نادرستی رو توی گروهها پخش میکنند. گاها تصاویری که به پیامهاشون الصاق میشه به خودی خود شرم آور هستند و برای کسانی که توی گروه ها هستند مناسب نیست. تصور کنید گروههای سنی مختلفی که ممکنه توی گروهها باشند.مسائل بیشتری در رابطه با غیراخلاقی بودن عمل تبچی ها هست که از حوصله این بحث خارج هست. حالا چیزی که من فکر میکنم تا به اینجا با توجه به استدلالهایی که دارم این هست که این کار یعنی ساختن رباتهای تبچی غیر اخلاقی هست. بنابراین سعی کردم سازنده های این رباتها رو پیدا کنم و باهاشون راجب این موضوع صحبت کنم. نتایج صحبت هام جالب بود:اولین بار اینطوری به یکی از این افراد برخورد کردم که توی یکی از گروهها سعی کردم راجب ریپورت کردن تبچی ها صحبت کنم که با مخالفت شدید یکی از اعضا روبرو شدم و متوجه شدم که ایشون تبچی میسازن و استدلال کردن که چرا منبع درامد بقیه رو سعی میکنی قطع کنی!! :))بار دوم به یک نفر شک بردم و ازش سوال کردم که این کارو میکنه و جواب داد نه ولی دلیلش این بود که وقت نداشت. :)) و استدلالش این بود که برنامه نویس مسئول برنامه ای که مینویسه نیست مثه یه چاقو که دوتا کاربرد داره. ما سورس رو مینویسیم.بار سوم به یک فرد دیگه شک کردم و ازش سوال کردم و متوجه شدم که این کارو میکنه. و سعی کردم مجابش کنم که کار درستی نیست و بحثمون اینطوری ختم شد از طرف این دوست که :اینجا ایرانه!!‌ :))مورد اول رو که فک میکنم نیازی نیست راجبش توضیح بدم. نظر من راجع به مورد دوم و این استدلال که ما برنامه نویسا مسئولیت کاربرد برنامه برعهدمون نیست و فقط باید برنامه رو بنویسیم و پولو بگیریم این هست که نه این درست نیست. حالا این دوست گرامی مثال چاقو رو میگه که دوتا کاربرد داره. ولی همه ما میدونیم که چاقوها انواع مختلفی دارن و با همشون مسلما نمیشه کار غیراخلاقی کرد. به علاوه میدونیم که کاربرد و استفاده ای که از چاقو میشه به اخلاق و خصوصیات صاحب چاقو هم مستقیما مربوط میشه. بنابراین من فکر میکنیم این یک نوع گول زدن خودمون هست که بگیم این یه کاربرد خوب میتونه داشته باشه پس غیر اخلاقی نیس. البته این مساله ی عمیق تری از مساله معمولی ما بود که کاری که صرفا کاربرد غیراخلاقی داشته باشه رو مد نظرمون بود. در دنیای امروزه مسلما ما برنامه نویس ها تاثیر گسترده ای بر دنیا خواهیم گذاشت. گاهی اونقد غرق در روزمرگی و کارها میشیم که از تغییرات دنیا غافل میشیم و گاهی نسبت به خیلی از چیزهای معمولی قوه ی قضاوتمون رو از دست میدیم. چون که تفکر بی احساس و کامپیوتری برمون حاکم میشه. یادمون نره ما ربات نیستیم. کسی نمیتونه مارو مجبور به کاری بکنه.همیشه تأثیر برنامه ها به کم اهمیتی تأثیر تبچی ها نیستن! ممکنه بعضی وقتا مستقیما با جون افراد درگیر بشیم. گاهی لازمه روی بعضی تصمیماتمون و تاثیری که اون تصمیم روی جامعه و حتی خانواده خودمون و حتی نزدیک تر از اون خودمون میتونه بذاره بیشتر فکر کنیم و خیلی راحت بنده ی پول نشیم. راههای رسیدن به پول به تعداد راههای رسیدن به خداست!- مارمولکدر پایان و در جواب به تبچی ساز سوم باید بگم که ایران ماییم! همیشه بودیم، هستیم و خواهیم بود...با تشکر از وقتی که برای خوندن مطلب من گذاشتید. شما نظرتون راجب این مسأله چیه؟</description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Sat, 13 Apr 2019 04:47:44 +0430</pubDate>
            </item>
                    <item>
                <title>آیا با پاول دوروف موافقید؟!‌ (پیرامون آپدیت جدید تلگرام)</title>
                <link>https://virgool.io/@sajadsoroosh/%D8%A2%DB%8C%D8%A7-%D8%A8%D8%A7-%D9%BE%D8%A7%D9%88%D9%84-%D8%AF%D9%88%D8%B1%D9%88%D9%81-%D9%85%D9%88%D8%A7%D9%81%D9%82%DB%8C%D8%AF%D9%BE%DB%8C%D8%B1%D8%A7%D9%85%D9%88%D9%86-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-cjhfcv08aexm</link>
                <description>من دیشب توی یکی از گروه های تلگرامی داشتم پیامها رو میخوندم و بحث داغی شده بود که چرا تلگرام این قابلیتو به کاربر مقابل میده که پیامهای من رو پاک کنه؟ اولش متوجه نشدم که قضیه از چه قراره ولی بیشتر که پیگیری کردم متوجه شدم که گویا تلگرام دیشب آپدیت جدیدی داده که یکی از قابلیت هاش این هست که میتونید توی چت های خصوصی پیامهای خودتون و همینطور پیامهای طرف مقابلتون رو پاک کنید. و بله این پاک کردن برای دو طرف قابل اعمال هست!! حتی این قضیه وقتی بزرگتر میشه که متوجه میشیم کاربر مقابل شما توی چت های خصوصی این قابلیت رو داره که کل تاریخچه چتش با شما رو پاک کنه حتی بدون اینکه اثری برای شما بمونه و یا اینکه متوجه این موضوع بشید!قبل اینکه بیشتر وارد این موضوع بشم یه بار به صورت خلاصه گزارش تغییرات مهم دیگه ی این آپدیت رو مرور کنیم:پیشنهاد ایموجی با وارد کردن اولین کلمه!جستجوی پیشرفته استیکرخصوصی کردن تصاویر پروفایل و کنترل لینک شدن پیام های فورواردی...برگردیم به موضوع اصلیمون یعنی همین قابلیت حذف پیام طرف مقابل. شاید راجب این قضیه هرکسی نظر خودشو داشته باشه در مورد اینکه خوب هست یا بد. اما من اینجا صرفا صحبت و نظر خود پاول دوروف رو بازگو میکنم و بقیه نتیجه گیری ها و برداشت ها رو به خودتون واگذار میکنم.پاول دوروف بعد از ریلیز این آپدیت توی کانال تلگرامی خودش یه پست رو منتشر میکنه و اینطوری توضیح میده:۲۳ سال از اولین باری که از یه پیامرسان برای پیامرسانی خصوصی استفاده کردم میگذره و همینطور ۱۶ سال از زمانی که پیامرسان خودمو ساختم. تعداد چت های خصوصی که توی این سالها داشتم خیلی زیاده و مطمئنم برای شما هم همینطوره. توی این ۱۰-۲۰ سال هر کدوم ما میلیون ها پیام رو با هزاران نفر رد و بدل کرده و تاریخچه بیشتر این ها یه جایی توی صندوق ورودی بقیه ذخیره شدن، جایی خارج دسترس ما. رابطه ها شروع میشن و تموم میشن اما تاریخچه پیامها با پارتنرای قبلی یا دوستای قبلی برای همیشه باقی میمونند.این بدتر هم قراره بشه. توی چند دهه ی آینده حجم اطلاعات خصوصی ما که توی تاریخچه چتهای خصوصیمون با بقیه هست، به سادگی چهار برابر میشه.یه پیام ارسال شده قدیمی که شما به خاطر نمیاریدش ممکنه بد برداشت بشه و چند ده سال بعد بر علیهتون استفاده بشه. یه متن تند که شما به دوست دخترتون توی دوران مدرسه داده بودید میتونه زمانی که تصمیم میگیرید برای شهردار شدن اقدام کنید براتون دست و پا گیر شه. ما باید تصدیق کنیم: بر خلاف پیشرفتهامون در زمینه امنیت و حریم شخصی ما نمیتونیم در زمان به عقب برگردیم و برای بقیه مردم چیزها رو پاک کنیم.بله ما نمیتونستیم، تا امروز. از امروز ما به همه کاربران تلگرام این اجازه رو میدیم که هر پیامی رو در هر چت خصوصی ای برای دو طرف چت بتونن پاک کنن. مهم نیست که این پیام رو کی و کی فرستاده، شما کنترل کامل رو روی اون پیام دارید. شما حتی میتونید تمام مکالمه رو برای هر دو طرف چت از بین ببرید و پاکسازی کنید، بدون هیچ رد پایی در هیچ یک از دو طرف.ما میدونیم که ممکنه بعضی از مردم نگران پتانسیل سواستفاده از این قابلیت و یا ماندگاری تاریخچه چتهاشون بشن. ما در مورد این مسائل به دقت فکر کردیم ولی ما فکر میکنیم که مزیتِ داشتنِ کنترل روی ردپای دیجیتال خودتون اهمیت بیشتری داشته باشه.الان که صندوق ورودی تلگرامم نگاه میکنم، چیز زیادی وجود نداره که بخوام برای دو طرف پاک کنم. و حالا، بعد از ۲۳ سال پیام خصوصی دادن، برای اولین بار به معنای واقعی احساس آزادی و کنترل داشتن میکنم.- متن اصلی پست در کانال پاول دوروفممنون از اینکه خوندید. شما نظرتون چیه؟</description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Mon, 25 Mar 2019 07:26:34 +0430</pubDate>
            </item>
                    <item>
                <title>ربات عاشق!</title>
                <link>https://virgool.io/@sajadsoroosh/%D8%B1%D8%A8%D8%A7%D8%AA-%D8%B9%D8%A7%D8%B4%D9%82-jfn4o6qfxjdw</link>
                <description>ربات عاشقمن چند روز پیش متاسفانه یکی از دوستای نزدیکم رو آزرده خاطر کردم و بعدا از این کارم خیلی پشیمون شدم. در صدد جبرانش براومدم و به ذهنم رسید که یه برنامه ای بنویسم که به این دوست عزیزم سر هر ساعت یه سری ایموجی قشنگ بفرسته تا ایشون متوجه بشن که برای ما عزیز هستن و ما اشتباه کردیم.از اونجایی که قبلا ربات زیاد ساخته بودم میدونستم باید چیکار کنم ولی خب توضیح میدم. کتابخونه ی pyrogram یه کتابخونه از پایتونه که برای ساختن رباتهای کلاینت به کار میره. رباتهای کلاینت با رباتهای عادی تفاوتهایی دارن و در واقع مثل یه برنامه میمونن که دارن روی یک اکانت واقعی اجرا میشن. ینی اصلا نمیشه به راحتی تشخیص داد که یه ربات داره این کارو میکنه یا خود شما هستید و خب این به درد کار ما میخورد. ( و جا داره اشاره ای کنم که همه ی این رباتای بیوگرافیمو بخون یا رباتای تبچی دیگه رباتهای کلاینت هستند...) همینطور با یه سرچ ساده به کتابخونه ی schedule رسیدم که برای انجام کارهای تکراری در زمان های مشخص استفاده میشه. مثلا همین کاری که ما میخوایم بکنیم. ینی مثلا سر هر ساعت یه تابع باید اجرا بشه که یه پیام رندوم رو ارسال کنه.کدی که زدم رو توی گیت هاب گذاشتم که لینکش ته این پست گذاشته شده. فقط میخوام راجب یکی از خطهای کد یه توضیح کوچیک بدم اونم این خط هست:love_text=random.choice(loves)*random.randint(1,5)*random.randint(0,2)این خط برای دادن حالت رندوم به برنامه هست که خیلی هم کارمون ضایع نباشه ? چون همین کار ممکنه از نظر بعضی ها بی احترامی حساب بشه پس باید دقت کرد!قسمت اول ینی random.choice(loves)کاری که میکنه همینه که از توی لیست ایموجی هامون که loves هست یه ایموجی رو انتخاب میکنه. بعد میخوایم یه چنتا ازینا رو بفرستیم برای همین اینو در یه عدد رندوم ضرب میکنیم(بین ۱ تا ۵):*random.randint(1,5)حالا اگه یکم فک کنیم متوجه میشیم که شاید یه ذره لوس باشه که هر ساعت این کارو انجام بده. و خیلی معلوم میشه که رباته! برای همین باید یه کاری کنیم که بعضی وقتا هم نفرسته (پررو هم میشن اگه زیاد بهشون بگید!):*random.randint(0,2)کاری که اینجا کردیم این بود که بهش یه احتمال یک سوم دادیم. ینی هر دفعه به احتمال یک سوم ممکنه این کارو انجام نده که خب این باعث میشه که غیر قابل پیش بینی تر و هوشمند تر به نظر برسه...در پایان باید بگم امیدوارم که از این پست لذت برده باشین و بتونین ازش استفاده کنین و اگه مشکلی بود من در خدمتتون هستم.ولی قبلش بگم که مسئولیتی در قبال سوء تفاهم هایی که ممکنه پیش بیاد برعهده نمیگیرم!(xدی) به نمونه واقعی زیر توجه کنید:بین خودمون بمونه ولی هوشمند عمل کرده (xدی)سورسش رو توی گیت هاب گذاشتم که اگه دوست داشتید بتونید ستاره دارش کنید ;)https://github.com/alistvt/lover-script</description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Mon, 18 Mar 2019 04:24:12 +0330</pubDate>
            </item>
                    <item>
                <title>مبارزه با باتهای تبچی!</title>
                <link>https://virgool.io/@sajadsoroosh/%D9%85%D8%A8%D8%A7%D8%B1%D8%B2%D9%87-%D8%A8%D8%A7-%D8%A8%D8%A7%D8%AA%D9%87%D8%A7%DB%8C-%D8%AA%D8%A8%DA%86%DB%8C-cqney1tlabex</link>
                <description>سلام.احتمالا شما هم همونقدری که من از دست این رباتای تبچی کلافه شدم کلافه هستید.من یه گروه دارم که توش حدود ۴۰۰ نفر عضو هست و امروز متوجه شدم که اگه صرفا یه ربات ساده ساخته بشه که صرفا رباتایی که اسمشون &quot;بیوگرافیمو بخون&quot; هست رو توی گروه محدود کنه نصف اینا تقریبا شناسایی میشن!دست به کار شدم و ساختمش.فعلا فقط همین کارو میکنه اما میتونه با کمک شما و بقیه پیشرفت کنه و هوشمند تر بشه.اگه میخواید همکاری کنید گیتهابشو ببینید:https://github.com/alistvt/smart-bot-detector-botتو تلگرام هم یه گروه براش زدم که در مورد بهبودش بحث کنیم:https://t.me/joinchat/BGvOzxNo-jZ0-TTAvUpKzwبه امید از بین رفتن تبچی ها...</description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Sun, 03 Mar 2019 01:25:48 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی چند افزونه کروم</title>
                <link>https://virgool.io/@sajadsoroosh/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%86%D9%86%D8%AF-%D8%A7%D9%81%D8%B2%D9%88%D9%86%D9%87-%DA%A9%D8%B1%D9%88%D9%85-kcolewqvma5b</link>
                <description>سلام. میخوام توی این پست چنتا افزونه مرورگر کروم که حداقل برای خودم خیلی کاربردی اند رو معرفی کنم.ابزار فیدخوان (Feed Reader)فیدها (Feed) یا خوراک ها قسمتی از وبسایت ها برای دسترسی سریع و بدون دردسر به آخرین مطالب اون وبسایت ها یا وبلاگها هستند.یعنی شما اگه یک فیدخوان رو روی یک وبسایت یا وبلاگ تنظیم کنید دیگه لازم نیست لحظه به لحظه یا ساعت به ساعت اون سایت رو چک کنید که خبر جدید اومده یا نه. بلکه مثلا وقتی شما مرورگرتون رو باز میکنید براتون یه علامتی میاد بالا که این سایت این مطالب جدیدو داده. ابزار مناسبی که من برای این کار پیدا کردم اسمش Feeder هست که امکانات خوبی هم داره. البته نسخه کاملش رایگان نیست ولی خب همون قسمت رایگانش هم به نظرم کار رو راه میندازه.افزونه فیدربا این افزونه میتونید وبلاگهایی رو به فیدرتون اضافه کنید و زمان چک کردنشو تنظیم کنید که البته این تو نسخه رایگانش روی 2 ساعت قفل شده ولی به نظرم 2 ساعت زمان کافی ای هست. همین طور برای بعضی از وبسایت ها که خودشون فید ندارن هم میتونید یه فید به صورت هوشمند با استفاده از همین افزونه بسازید.پاکت (Pocket)اگر شما از افرادی هستید که زمان کمی دارید و خیلی وقتها میخواید یه مطلبو بخونید ولی میبینید یکم طولانیه و الان وقت نمیکنید بخونید، این ابزار مناسب شماست.وبسایت pocket به این منظور ساخته شده که برای شما مطالب جالب رو هوشمندانه تهیه کنه و همینطور مطالبی که وقت ندارید الان بخونید رو توی خودش ذخیره کنه که بعدا از طریق اکانتتون، توی موبایل، لپ تاپ و یا کتابخوانتون قابل دسترسی هست.این وبسایت یک افزونه داره که وقتی نصبش کنید، روی هر صفحه که باشید و اون افزونه رو کلیک کنید، اون صفحه توی اکانتتون ذخیره میشه تا وقتی که بخونیدش و تیک خوندنشو بزنید.هایلایت کردن (Highlighter)شاید براتون پیش اومده باشه که دارید یه مطلبو توی اینترنت میخونید و میخواید مطالب مهم اون صفحه رو مشخص کنید که بعدا که دوباره به اون صفحه اومدید یه راست برید سر اصل مطلب. یا اینکه برای بعدا مطالب مهم رو داشته باشید. ابزاری که برای این کار وجود همون هایلایتر هست که به همون صورت که توی ابزارهای Pdf خوان قابل استفاده است، توی مرورگر هم قابل استفاده میشه.(البته که ویژگی اصلی این ابزار باید این باشه که با بارگذاری مجدد اون صفحه وب هایلایت ها باقی بمونند و همینطور هم هست)ازونجایی که خیلی به همچین ابزاری نیاز داشتم خیلی گشتم و تا یه مدت خودم از ابزار Linerاستفاده میکردم که بعد از مدتی تحریم شدیم و دیگه الان این ابزار بدون تحریم شکن قابل استفاده نیست. حتی اینکه حدود یک سال پیش این افزونه رایگان بود اما الان دیگه بعضی از ویژگیهاش رایگان نیستن. از قابلیت های خوب این ابزار میتونم قابلیت نوت گذاری در صفحات، هایلایت با رنگهای مختلف، پوشه بندی صفحه ها و دسترسی بعدی به مطالب و نوت رو نام ببرم.Linerازونجایی که ابزار قبلی تحریم شد دوباره مجبور شدم کلی بگردم و کلی ابزارو امتحان کردم که اونا هم خوباشون تحریم بودن و خیلی ناامید شدم و به این نتیجه رسیدم که صرفا یه ابزاری که بتونم باهاش هایلایت کنم انتخاب کنم و Super simple highlighter رو انتخاب کردم. Super simple highlighterمرسی که خوندین. خیلی خوشحال میشم اگه شما هم افزونه های جدیدی معرفی کنید :)</description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Mon, 11 Feb 2019 05:43:53 +0330</pubDate>
            </item>
                    <item>
                <title>متود، متود استاتیک و متود کلاس در پایتون</title>
                <link>https://virgool.io/@sajadsoroosh/%D9%85%D8%AA%D9%88%D8%AF-%D9%85%D8%AA%D9%88%D8%AF-%D8%A7%D8%B3%D8%AA%D8%A7%D8%AA%DB%8C%DA%A9-%D9%88-%D9%85%D8%AA%D9%88%D8%AF-%DA%A9%D9%84%D8%A7%D8%B3-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-nezb8rfva0xm</link>
                <description>در این پست میخوام انواع متودها در پایتون رو معرفی کنم. مفهوم متوددر برنامه سازی شی گرا مفهوم متود معادل با تابعی است که به یک کلاس متصل باشه. در واقع وجود متود یکی از اصلی ترین تفاوت های برنامه نویسی شی گرا و برنامه نویسی غیر شی گراست.انواع متود در پایتوندر پایتون سه نوع متود تعریف میتونه بشه برای هر کلاس: متودهای مرتبط با هر نمونه از کلاس(Instance methods) متودهای ایستا (Static methods) و متودهای کلاس (Class methods)متودهای معمولی (Instance Methods)این رو برای این نوشتم که متودی هست که معمولا همه مون بیشتر باهاش آشنا هستیم و خیلی بیشتر ازش استفاده میکنیم. این نوع متود روی نمونه های اون کلاس قابل صدازدن هست و میتونه حالت اون نمونه رو تغییر بده. مثالی که بخوام بزنم این میشه که فرض کنید داریم یه بازی میسازیم که توش یه سری هیولا قراره داشته باشیم. هر هیولا یه تعداد چشم داره و موقع ساخته شدن تعداد چشماشو معلوم میکنیم ما. حالا هر هیولا میتونه یه سری کارا انجام بده. میتونه آدم بخوره. میتونه شیهه بکشه ( :| ) و ... هر کدوم ازین کارها یه متود معمولی هستن. کدی که براش نوشته میشه به صورت زیر هست:class Monster:
    def __init__(self, eyes):
        print(&#039;monster with {} eyes created&#039;.format(eyes))
    def doShihe(self):
        print(&#039;HEEEEEEEEE!&#039;)
        
&gt;&gt;&gt; m = Monster(2)
# monster with 2 eyes created

&gt;&gt;&gt; m.doShihe()
# HEEEEEEEEE!خب این مثال حس میکنم که خیلی معلومه همه چیش که چیکار میکنه. فقط همونطوری که میبینید متودهای معمولی توی پایتون یه پارامتر اجباری self رو میگیرن که در واقع همون نمونه ای هست که اون متود داره روش صدا میزنه. و از همین طریق هست که میتونن حالته های اون نمونه از کلاس رو تغییر بدن. از طریق self. نکته جالبی که میتونم اضافه کنم اینه که اسم self صرفا یه اسم هست و میتونیم اگه خواستیم با اسم دیگه ای عوضش کنیم، مثل this توی ++c  و یا هر اسمی که بخوایم ولی خب میدونیم که بهتره این کارو نکنیم.متودهای ایستا (Static Methods)این نوع متود هم متود پر کاربردی هست چه توی سایر زبان ها و چه توی زبان پایتون. متودهای ایستا کاری که میکنن اینه که معمولا ما اون ها رو وابسته به خود اون کلاس در نظر میگیریم تا وابسته به نمونه های اون کلاس. مثالهایی که میتونم بزنم مثلا اینکه توی همین مثال هیولای خودمون که زدیم فرض کنید ما هیولاهایی داریم که دو چشم دارن یا بعضیاشون یه چشم دارن و ما میخوایم ببینیم که میانگین تعداد چشمای اینا چنتاس. خب این درست نیس که بریم از یه دونه ازین هیولاها بپرسیم که میانگین چشمای هیولاها چنتاس.   به جاش میتونیم بریم از کلاس هیولا بپرسیم که میانگین چشمای هیولاهات چنتاس که خب اگه بخوایم واقعا اینو پیاده سازی کنیم باید از یه فیلد ایستا هم استفاده کنیم که تعداد چشم ها و تعداد هیولاهایی که تا الان ساخته شده رو نگه داره و بعد این دو تا رو تقسیم کنیم به هم ولی خب اینجا سخنو سر راست میکنم و یه مثال ساده میارم:class Monster:     
     ...
    @staticmethod
    def getMeanEyes():
        return 1.5

&gt;&gt;&gt; m = Monster(1)
# monster with 1 eyes created 

&gt;&gt;&gt; m.getMeanEyes()
# 1.5

&gt;&gt;&gt; Monster.getMeanEyes()
# 1.5همون طور که میبینید متود getMeanEyes با یک دکوراتور، تزیین شده که همون staticmethod@ رو منظورم هست. نکته دومی که لازمه بگم اینه که همونطور که میبینید متود ایستا هم روی خود اون نمونه صدا زده شده و هم روی خود کلاس و این کار در پایتون قابل انجام هست.نکته سوم اینکه متود ایستا نه میتونه حالت های کلاسو تغییر بده و نه میتونه حالت های اون نمونه ای که روش صدا زده شده رو تغییر بده. انگار صرفا مثل یه نوع تابع متصل به اون کلاس میمونه که باعث خوانا شدن بیشتر کد میتونه بشه.متود کلاس (Class Methods)متودهای کلاس در پایتون تفاوتشون با متودهای ایستا اینه که میتونن به خود کلاس دسترسی داشته باشن اما دوباره مثه متودهای ایستا اونا هم نمیتونن به نمونه های اون کلاس دسترسی داشته باشن. مثالی که میتونم اینجا بزنم فرض کنید که مثلا ما به هیولایی که تعداد چشماش یه دونه باشه میگیم هیولای تک چشم و هیولای دو چشم رو میگیم هیولای معمولی. میشه متودی ساخت که با صدا زدنش اون نوع هیولا رو برامون بسازه:class Monster:
     ...     
    @classmethod     
    def uniEyed(cls):
        return cls(1)
    @classmethod
    def regular(cls):
        return cls(2)
    
    &gt;&gt;&gt; Monster.uniEyed()
    # monster with 1 eyes created 
    
     &gt;&gt;&gt; Monster.regular()     
     # monster with 2 eyes created       نکاتی که میتونید ببینید دوباره :وجود دکوراتور classmethod@ هست ورودی اجباری cls که به معنی همون کلاس هست.در تکه کد بالا همونطور که دیدید متودهای کلاس قابلیت دسترسی به خود کلاس رو دارند.به متود پیاده سازی شده در این مثال اصطلاحا متود کارخانه (Factory) گفته میشه.جمع بندیمتودهای معمولی به یک ورودی اجباری نیاز دارند که همان نمونه از آن کلاس است(پارامتر self) و میتونند از این طریق حالت اون نمونه رو تغییر بدن.متودهای کلاس نمیتونن حالت نمونه ها رو تغییر بدن ولی به خود کلاس دسترسی دارند و میتونند حالت های اون کلاسو تغییر بدن (از طریق پارامتر اجباری cls)متودهای ایستا نه به کلاس و نه به نمونه های اون کلاس دسترسی ندارند و مثه تابعای معمولی میمونند که به فضای نامی(namespace) اون کلاس تعلق دارند.برگرفته از کتاب  Python Tricks - Dan Bader </description>
                <category>سجاد سروش</category>
                <author>سجاد سروش</author>
                <pubDate>Mon, 04 Feb 2019 03:34:26 +0330</pubDate>
            </item>
            </channel>
</rss>