<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Green-Python</title>
        <link>https://virgool.io/feed/@green_python</link>
        <description>گروه Green Python فقط برای اطلاعات خود این پست ها را قرار میدهد و در کنار این شما کاربران هم میتوانید ببینید و اگر دنبال کنید و  کاربران این بلاگ زیاد شود روش  های  هک و امنیت را به شما اموزش داده شود</description>
        <language>fa</language>
        <pubDate>2026-06-16 17:37:51</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1476370/avatar/eAl20c.jpeg?height=120&amp;width=120</url>
            <title>Green-Python</title>
            <link>https://virgool.io/@green_python</link>
        </image>

                    <item>
                <title>اصطلاحات هک و امنیت</title>
                <link>https://virgool.io/@green_python/%D8%A7%D8%B5%D8%B7%D9%84%D8%A7%D8%AD%D8%A7%D8%AA-%D9%87%DA%A9-%D9%88-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-uis8uctmcwws</link>
                <description>هکر کیست؟هک به روشی هوشمندانه برای حل مشکلی ویژه گفته می‌شود، و هکر به کسی گفته می‌شود که از این روش‌های هوشمندانه استفاده می‌کند. ولی متاسفانه امروزه هکر به معنای شخصی است که به منظور اخاذی و یا خرابکاری در سیستم‌ها و سایت‌ها شروع به خراب کاری می‌کند.البته برخی هکرها را به چند دسته تقسیم کرده اند:هکر کلاه سفید: به هکری گفته می‌شود که به منظور پیدا کردن مشکلات موجود در سرورها و نرم افزارها به آن‌ها نفوذ می‌کند و پس از گزارش مشکل به مسیولین در رفع عیب آن عیب سهیم است. هکرهای کلاه سفید برخی اوقات در مسابقاتی شرکت می‌کنند که شرکت‌های امنیتی برگذار می‌کنند.مثلا شرکت گوگل و تلگرام برای گزارش باگ به کاربران هدایای نقدی می‌دهند. هکرهای کلاه سفید می‌توانند از این طریق جوایز ده‌ها هزار دلاری و یا حتی چند صد دلاری برنده شوند.برخی مدیران سایت‌ها و سرور‌ها نیز به گروه‌های هک کلاه سفید مبالغی می‌دهند تا سعی کنند آن سیستم را هک کنند و عیب‌های موجود را گزارش دهند.هکر کلاه سیاه: به هکری گفته می‌شود که به منظور اخاذی و یا تخریب وارد سیستم‌ها و سایت‌ها می‌شوند. هکر‌های کلاه سیاه در همه جای دنیا تحت تعقیب هستند و اعمال آن ها خلاف قانون تلقی می‌شوند.هکر کلاه خاکستری: به هکری گفته می‌شود که گاهی اعمال هکر‌های کلاه سیاه و گاهی اعمال هکرهای کلاه سفید را انجام می‌دهد.هکر کلاه صورتی: به افراد آماتوری گفته می‌شود که برای ارضای حس کنکجاوی خود دست به اعمالی می‌زنند که یا سایت‌ها را تخریب کنند و یا به اطلاعاتی دست پیدا کنند که حق دسترسی به آن‌ها را ندارند.کرکر کیست؟همانطور که در بالا گفته شد یک هکر می‌تواند یک شخص مفید و کارامد باشد، ولی یک کرکر یک شخص کاملا مضر است. کرکرها به سرور بانک‌ها نفوذ می‌کنند و آن‌ها را متوقف می‌کنند، سایت‌های مهم را با روش‌هایی پیچیده از کار می‌اندازند و یا حتی پسورد کاربران را به سرقت می‌برند و در بازار سیاه می‌فروشند.واکر به چه کسی گفته می‌شود؟واکر به نفوذگر کلاه سیاهی گفته می‌شود که به منظور سرقت اطلاعات وارد سیستم‌های دیگر می‌شود. مثلا یک واکر بر اساس سفارشی که می‌گیرد وارد سامانه ثبت احوال شده و اطلاعات محل سکونت یک شخص را در اختیار خلاف کاران می‌گذارد.پریکر کیست؟در دهه‌های پیش پریکر‌ها بیشترین جولان می‌دادند. پریکر‌ها به شبکه‌های تلفن نفوذ می‌کنند و مکالمه‌ها را استراق می‌کنند. این پریکرها ممکن است پروژه‌هایی را برای سازمان‌های مخفی و خلافکار اجرا کنند، بنابراین پریکر بودن یک جرم است و پریکرها در تمام نظام‌های حقوقی جهان محاکمه و مجازات می‌شوند.البته برخی از پریکر‌ها نیز تنها برای خود کار می‌کنند و از دانش خود برای تماس مجانی استفاده می‌کنند.مهندسی اجتماعیخیلی از افراد فکر می‌کنند عملیات هک تنها با دانش فنی و تخصص انجام می‌پذیرد در صورتی که اصلا اینگونه نیست. بسیاری از پروژه‌های هک بزرگ با کمک مهندسی اجتماعی که کمک گرفتن از قربانی است انجام می‌پذیرد. سناریو زیر را با دقت بخوانید:یک هکر می‌خواهد وارد یک شبکه کامپیوتری شود ولی نمی‌تواند ضعفی در ورود به شبکه پیدا کند. یک خانم را مامور می‌کند با یکی از کارمندان آن شبکه دوست شود و به او یک فلش با آهنگ‌های مورد علاقه بدهد. در ساعت کاری این خانم با کارمند شبکه تماس می‌گیرد و می‌گوید یکی از کلیپ‌های موجود در فلش با نامی معین را اجرا کند چون یک آهنگ نیست بلکه یک پیغام صوتی عاشقانه است.کارمند شبکه با ذوق و شوق آن فلش را برای شنیدن آن فایل صوتی به کامپیوتر خود می‌زند و یک ویروس مخرب را ناخواسته وارد آن شبکه می‌کند و برای نفوذگر امکان نفوذی بی درد سر را محیا می‌کند.به سناریو بالا مهندسی اجتماعی می‌گویند.فیشینگ چیست؟حملات فیشینگ را می‌توان از حملات مرتبط با حوزه مهندسی اجتماعی دانست. شخص نفوذگر با استفاده از فیشینگ شروع به سرقت اطلاعات از حجم عظیمی از کاربران می‌کند. یکی از حملات معروف فیشینگ ارسال ایمیل‌های جعلی از سمت بانک است. بدین نحو که یک نفوذگر ایمیل جعلی از سمت یک بانک را برای تعداد زیادی کاربر ایمیل می‌کند و در آن یک لینک قرار می‌دهد که به جای هدایت به صفحه اصلی بانک کاربر را به صفحه‌ای مشابه صفحه بانک هدایت می‌کند. کاربر پس از دیدن صفحه‌ای مشابه صفحه بانک و وارد کردن یوزرنیم و پسورد خود در دام هکر می‌افتد. در برخی حملات فیشینگ نام کاربری و رمز عبور هزاران کاربر بانک به سرقت می‌روند.البته فیشینگ به سرقت اطلاعات از طریق مکالمات تلفنی یا پیام کوتاه نیز اطلاق می‌شود. به این معنا که گاهی نفوذگران با تماس تلفنی سعی در تخلیه اطلاعاتی کاربران دارند.حملات SQL Injection:پایگاه داده جزء حیاتی و لا ینفک هر سیستمی در شبکه و اینترنت است. تمامی سایت‌ها و سامانه‌ها از پایگاه داده استفاده می‌کنند.بدلیل ماهیت پایگاه داده که عملیات فراخوانی و ذخیره اطلاعات را با هم انجام می‌دهند این سیستم مستعد حجم بزرگی از آسیب پذیری‌ها است و اولین هدف هر نفوذگری در واقع رخنه کردن به اطلاعات موجود در سیستم دیتابیس سایت یا سامانه تحت وب است.عملیات SQL Injection به این نحو است که نفوذگر پس از یافتن آسیب پذیری SQL در سورس سایت شروع به تزریق کدهای مخرب به منظور واکشی اطلاعات از آن آسیب پذیری می‌کند.در برخی پایگاه‌های داده بدلیل تنظیمات خاص نمی‌توان تغییراتی در جداول موجود در پایگاه داده ایجاد کرد ولی می‌توان حداقل اطلاعات موجود در پایگاه داده را خواند و از آن‌ها برای تکمیل عملیات نفوذ بهره برد.مثلا اگر از یک سیستم بتوان نام کاربری مدیر سایت را استخراج کرد، حتی اگر نتوانیم Hash پسور را کرک کنیم می‌توانیم با کمک نام کاربری عملیات Brute Force را انجام دهیم.روت کیت چیست؟هرچند که RootKit ها را از برخی نظر‌ها می‌توان مانند BackDoor‌ها و یا تروجان‌ها دانست ولی از تروجان‌ها و بک دورها بسیار خطرناک تر اند. روت کیت‌ها پس از نفوذ به سیستم علاوه بر وظایف تروجان‌ها و Backdoor‌ها خود را جایگزین بخش‌های مهمی از سیستم عامل حتی هسته آن می‌کنند و دسترسی‌های مهلک و بعضا غیر قابل شناسایی به نفوذگران می‌دهند.اولین روت کیت‌ها در سال 1990 شناسایی شدند و از آن زمان تا کنون روت کیت‌های متنوعی برای سیستم‌های عامل لینوکسی و ویندوزی نوشته شده اند، هر چند تعداد RootKit‌هایی که برای سیستم عامل لینوکس نوشته شده است بیشتر از ویندوز است.یکی از انواع RootKit‌های معروف در لینوکس خود را جایگزین برنامه /bin/login می کنند و یک پسورد ریشه به این برنامه می‌افزایند. اکثر روت کیت‌ها خود را جایگزین برنامه‌های زیر می‌کنند:DUFindIfconfigLoginlsNetstatpsالبته خطرناک ترین نوع RootKit آن نوعی است که خود را جایگزین هسته سیستم عامل می‌کند، چون دیگر هسته سیستم عامل را بدست گرفته است و حتی روی عملکرد نرم افزارهای اسکن ویروس و روتکیت هم تاثیر می‌گذارد و به سادگی آن‌ها را غیر فعال و بی خاصیت می‌کند. با روت کیت‌های سطح هسته شخص نفوذگر می‌تواند تمام عملیات و فعالیت‌ها را به صورت کامل و بی درد سر ذخیره و شنود کند. از مهم ترین روت کیت‌های سطح هسته لینوکسی می‌توان به Knrak و Adore اشاره کرد که می‌توان آن‌ها را از اینترنت دانلود کرد.آسیب پذیری Zero Day یا حمله روز صفر چیستآسیب پذیری Zero Day، آسیب پذیری‌ای است که تا مدت‌ها تنها تعداد کمی هکر از آن اطلاع دارند. این نوع آسیب پذیری‌ها تا زمانی که توسط متخصصین شناسایی و بر طرف نشوند Zero Day می‌مانند.هکرها برای این آسیب پذیری‌ها اکسپولیت‌هایی می‌سازند که گاهی تا صدها هزار دلار بفروش می‌رسد.امسال یعنی در سال 2016 یک آسیب پذیری Zero Day در ویندوز و در بخش win32k.sys به قیمت 100 هزار دلار بفروش رسیده است. این آسیب پذیری منجر به افزایش سطح دسترسی کاربر در تمام نسخه‌های ویندوز از نسخه 2000 تا ویندوز 10 می‌شود. با وجود اطلاع از وجود چنین مشکلی ولی هنوز مایکروسافت به علت آن پی نبرده است و تلاش‌ها برای یافتن این آسیب پذیری همچنان ادامه دارد.از جمله آسیب پذیری‌های Zero Day که کشور عزیزمان را مورد حمله قرار داده اند می‌توان به ویروس Sutxnet که به نیروگاه‌های هسته ای آسیب وارد کرد و همچنین ویروس Flame که به پالایشگاه‌های نفت ایران نفوذ کرد اشاره کرد.بدلیل سطح بالا بودن این نوع آسیب پذیری‌ها تقریبا هیچ نرم افزار و آنتی ویروسی نمی‌تواند آن‌ها را شناسایی کند و حتی سازندگان نرم افزار به سادگی قادر به حل کردن این دست آسیب پذیری‌ها نیستند.البته پکیج‌های گران قیمت تست نفوذی وجود دارند که مجموعه‌ای از Zero Day‌های نرم افزارها را در خود دارند و توسط متخصصین امنیت مورد استفاده قرار می‌گیرند. یکی از این فریم‌ورک‌های تست نفوذ، canavas نام دارد.اصطلاحات عمومی هک و امنیتتارگت: به هدف در تست نفوذ سایت، سرور و یا هر سیستمی تارگت می‌شود. مثلا اگر قصد نفوذ به سایت abc.com را داشته باشید این سایت تارگت شما خواهد بود.پینگ: Ping دستوری است که با آن می‌خواهیم ببینیم آی پی‌ای که داریم در سرور فعال است یا خیر؟ در ضمن با دستور Ping می‌توانیم زمان رسیدن بسته‌ها را نیز بدست بیاوریم. دستور Ping در ویندوز و لینوکس به صورت زیر استفاده می‌شود:ping ip-addressپورت: پورت در شبکه و اینترنت به معنی درگاه‌های ارتباطی با دنیای بیرون هستند. با استفاده از پورت‌ها می‌توان بین یک سیستم و دنیای بیرون آن ارتباط برقرار کرد. در تست‌های نفوذ شخص نفوذگر سعی می‌کند روی سیستم تارگت پورت‌هایی را بیابد که امکان نفوذ به آن‌ها وجود دارد.تلنت: Telnet یک پروتکل تحت شبکه برای سرویس گرفتن و سرویس دادن است. نفوذگران از تلنت برای بررسی باز بودن پورت‌های حیاتی استفاده می‌کنند.باگ: باگ به معنی نقص نرم افزاری است و می‌تواند منجر به خراب شدن، از کار افتادن یا نشت اطلاعات سیستم شود. نخستین بار لفظ باگ به حشره‌ای اطلاق شد که منجر به خراب شدن کامپیوترها شده بود ولی با پیشرفت دانش و مستحکم تر شدن و کوچکتر شدن دستگاه‌ها دیگر حشره‌ها نمی‌توانند به کامپیوترها آسیب جدی‌ای وارد کنند! امروزه باگ به اشکالات نرم افزاری گفته می‌شود که در تمام نرم افزارها وجود دارد. در دنیای کامپیوتر و شبکه نمی‌توان نرم افزار یا سیستم عاملی را بی عیب و نقص و یا به اصطلاح بدون باگ یافت، مزیت سیستم عامل قدرتمندی مانند لینوکس این است که باگ هایش به سرعت کشف و بر طرف می‌شوند. ولی یافتن باگ در سیستم عامل‌ها و نرم افزار‌های معروف و حرفه‌ای کاری بسیار پیچیده، زمان بر و برای اکثر متخصصین نا ممکن است.دیباگ: به عمل رفع عیب باگ‌ها دیباگ کردن می‌گویند. عمل دیباگ کردن برخی از اوقات عملی سخت و برخی از اوقات شاید حتی ناممکن باشد. در برخی از سیستم‌های عامل بدلیل نا ممکن بودن دیباگ کردن مجبورند ساختار سیستم عامل را تغییر دهند.پچ: وصله‌های نرم افزاری هستند که برای بهبود عملکرد سیستم به سیستم اضافه می‌شوند.دیفیس: وقتی یک هکر کلاه سفید، خاکستری، سیاه و یا کلاه صورتی به یک سیستم نفوذ می‌کند چگونه قدرت خود را به رخ دیگران می‌کشد؟ با دیفیس کردن. در واقع دیفیس کردن به عملی گفته می‌شود که شخص نفوذگر با آن عمل ظاهر سایت را به چیز دیگری تغییر می‌دهد و به این روش اثبات می‌کند که توانسته است به آن سیستم نفوذ کند.مس دیفیس: به عملکردی گفته می‌شود که طی آن کل صفحات سایت‌های یک سرور تغییر پیدا می‌کنند. این عمل یا با استفاده از شل‌ها انجام می‌پذیرد یا عموما نیاز به اسکریپت‌هایی دارد که شخص نفوذگر باید بنویسد.اکسپلویت ها: در اکثر موارد برای نفوذ به یک سیستم نیاز است که یک سری اعمال به صورت مشخص تکرار شوند که این اعمال مشخص و تکراری اکسپلویت نامیده می‌شوند. اکسپلویت‌ها در واقع کدهایی هستند که نفوذگران از آن‌ها برای انجام عملیات نفوذ استفاده می‌کنند. به عنوان مثال ممکن است در سیستم مدیریت محتوای جوملا یک باگی وجود داشته باشد که منجر به درز پسورد مدیر سیستم می‌شود. متخصصین نفوذ یک اکسپولیت برای این باگ می‌نویسند تا خودشان یا دیگر نفوذگران بدون نیاز به انجام عملیات روتین به سادگی عملیات نفوذ را انجام دهند.بایپس: طبیعتا راهکار‌های نرم افزاری و سخت افزاری بسیاری برای جلوگیری از هک شدن توسط مسیولین سرورها و نرم افزارها اتخاذ می‌شود. عملیاتی را که طی آن شخص نفوذگر و یا شخص تست کننده نرم افزار در آن‌ها سعی می‌کند دیوارهای حفاظتی سیستم را رد کند عملیات بایپس می‌نامند.فیک پیج ها: یکی از راه‌های سرقت یوزرنیم‌ها و پسورد‌ها استفاده از فیک پیج‌ها توسط نفوذگران است. فیک پیج یا صفحه تقلبی، می‌تواند صفحه ورود به ایمیل باشد. مثلا فرض کنید یک نفوذگر یک صفحه‌ای دقیقا مانند صفحه ورود به یاهو بسازد و آن صفحه را به شخصی دیگر بدهد. قربانی در مواجهه با این صفحه تصور می‌کند وارد صفحه ایمیل خود شده است، بنابراین یوزرنیم و پسورد خود را وارد کرده و به دام هکر می‌افتد.دورک ها: دورک‌ها به کدهایی گفته می‌شوند که در جستجوگرهای وب (عموما گوگل) برای یافتن سایت‌های مشکل دار مورد استفاده قرار می‌گیرند. مثلا فرض کنید بودن عبارت MYSQL ERROR در یک سایت به معنای وجود باگ در آن سایت است. با عبارت site:sitename.com &quot;MYSQL ERROR&quot; می توان سایت sitename.com را از نظر داشتن باگ جستجو کرد.هش ها: سابقا یک مطلب در هیتوس با این لینک در مورد رمزنگاری و هش‌ها منتشر شده بود. بدلیل پر خطر بودن پایگاه‌های داده متخصصین، پسوردها را به صورت معمولی در پایگاه داده ذخیره نمی‌کنند و برای ذخیره کردن، آن‌ها را تبدیل به هش می‌کنند تا به سادگی نتوان آن‌ها را خواند. البته راه حل‌هایی وجود دارد که گاهی نفوذگران برای تفسیر هش‌ها استفاده می‌کنند که برخی اوقات مثمر ثمر هستند.تروجان: ایده تروجان به یک افسانه یونانی باز می‌گردد. یونانیان که پس از مدت‌ها جنگ نتوانستند قلعه تروا را فتح کنند به نشانه صلح یک اسب بزرگ را به عنوان هدیه به درون قلعه می‌فرستند. سربازان قلعه تروا شادمان از پایان جنگ تا پاسی از شب به خوردن شراب و رقص پرداخته بودند ولی غافل از این که درون اسب بزرگ پر بود از سربازان تا دندان مسلح. سربازان درون اسب بزرگ چوبی پس از آرام شدن قلعه و اطمینان از خواب افراد درون قلعه از اسب چوبی خود بیرون آمدند و دروازه را برای سربازان یونانی باز کردند. این ایده دقیقا در دنیای هک نیز استفاده می‌شود، یعنی ارسال فایلی مخرب به درون سیستم در قالبی آرام و بی آزار، ولی همین فایل بی آزاد موجب نابودی سیستم خواهد شد.کرک: عملیات شکستن سدهای امنیتی و انجام عملیات نفوذ را کرک کردن می‌گویند. مثلا ممکن است یک نرم افزار برای استفاده نیازمند لایسنس خاصی باشد. نفوذگران این نرم افزار را به اصطلاح کرک می‌کنند تا بدون نیاز به لایسنس بتوان از آن‌ها استفاده کرد.کیلاگر: همانطور که از نام کیلاگر مشخص است کیلاگر به برنامه مخربی گفته می‌شود که وظیفه ذخیره کلیدهای فشرده شده روی کیبورد و ارسال آن‌ها به شخص نفوذگر بر عهده دارد. شما تقریبا تمام اطلاعات مهم را با استفاده از کیبورد به کامپیوتر خود می‌دهید، یوزرنیم ها، پسوردها و آدرس ها. شخص نفوذگر به منظور سرقت اطلاعات شما یک کیلاگر را بدرون سیستم شما می‌فرستد تا اطلاعات شما را برباید.رات: رات‌ها از کیلاگر‌ها وسیع تر هستند و حتی امکان ارسال تصویر از مانیتور و یا حتی وصل کردن مهاجم به کامپیوتر قربانی را بر عهده دارند. ممکن است یک نفوذگر ابتدا با کیلاگر دسترسی‌هایی بر سیستم قربانی بیابد و سپس یک رات را روی آن سیستم نصب کند.بایند کردن: ترکیب فایل‌های مخرب کیلاگر و رات‌ها با فایل‌های دیگر برای مخفی شدن از آنتی ویروس‌ها و فعالیت بدون درد سر در سیستم قربانی را بایندرها بر عهده می‌گیرند.شل: بسیاری از باگ‌ها و مشکلات موجود در نرم افزارها و سیستم‌ها منجر به نفوذی محدود به سیستم می‌شوند. برای افزایش دسترسی پس از نفوذ از شل‌ها استفاده می‌شود. شل‌ها نرم افزارهای متنوعی هستند و برای افزایش دسترسی معمولا مجبوریم چند شل را استفاده کنیم.باگ‌های پابلیک: همانطور که در بالا گفتیم هر سیستم عامل و یا نرم افزاری باگ‌هایی را در خود دارد. این باگ‌ها ممکن است در دسترس همه نفوذگران باشند، و بدلیل آپدیت نشدن سیستم قابل استفاده باشند.باگ‌های پریویت: بر عکس باگ‌های پابلیک این باگ‌ها در اختیار برخی از افراد قرار دارند و تا علنی نشدن مورد استفاده قرار می‌گیرند. باگ‌ها بعد از علنی و پابلیک شدن به سرعت توسط توسعه دهندگان سیستم بر طرف می‌شوند.بک کانکت و بک دورها: فرض کنید یک نفوذگر پس از مدت‌ها تلاش بتواند پسورد نفوذ به سیستم را بیابد و به آن نفوذ کند. عملیات نفوذ و دستیابی به اطلاعات ممکن است یک ماه طول بکشد، ولی مدیر سیستم پس از چند روز پسورد سیستم را عوض می‌کند و دسترسی نفوذگر کاملا قطع می‌شود. برای جلوگیری از این مشکلات نفوذگران پس از نفوذ به سیستم در اسرع وقت یک بک کانکت یا بک دور (در پشتی) روی سیستم قربانی نصب می‌کنند تا در صورت بسته شدن دسترسی‌ها باز بتوانند به آن سیستم نفوذ کنند.سایت‌های ثبت هک: نفوذگران ممکن است به مدت چند دقیقه بتوانند یک سیستم را هک کنند و صفحه اصلی آن را دیفیس کنند، بعدها برای اثبات اینکه سابقا توانسته اند آن سایت را هک کنند نیاز به یک دلیل معتبر دارند. برخی از سایت‌ها این وظیفه را برعهده دارند و پس از هک شدن یک سایت می‌توانند وضعیت فعلی آن را ذخیره کنند. یکی از این سایت‌ها سایت zone-h.org است.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sun, 13 Feb 2022 11:48:22 +0330</pubDate>
            </item>
                    <item>
                <title>یافتن صفحه ادمین سایت ها در تست نفوذ</title>
                <link>https://virgool.io/@green_python/%DB%8C%D8%A7%D9%81%D8%AA%D9%86-%D8%B5%D9%81%D8%AD%D9%87-%D8%A7%D8%AF%D9%85%DB%8C%D9%86-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AA%D8%B3%D8%AA-%D9%86%D9%81%D9%88%D8%B0-j5xhgozejtbm</link>
                <description>پس از این که در روش‌های متنوع مانند SQL Injection توانستید username و پسورد یک سایت را بیابید باید صفحه ورود سایت را نیز بیابید تا بتوانید عملیات نفوذ خود را تکمیل کنید.در این مطلب روش‌های متنوعی برای این کار به شما معرفی می‌کنیم.استفاده از robots.txtفایل robots.txt توسط طراحان و توسعه دهندگان نرم افزارهای تحت وب برای هدایت ربات‌های موتورهای جستجو مورد استفاده قرار می‌گیرد. برای دسترسی به این فایل مانند زیر عمل می‌کنیم:site.com/robots.txtپیش تر در این مطلب که آموزش ابزار گوگل سرچ کنسول بود به فایل robots.txt اشاره کردیم و آموختیم می‌توانیم دسترسی به بعضی دایرکتوری‌ها را با این فایل محدود کنیم. طراحان وب از این ابزار استفاده می‌کنند تا مانع پیمایش پوشه‌های حیاتی سایت خود توسط ربات‌های جستجوگر شوند، ولی همین قضیه می‌تواند شما را در یافتن صفحه ورود به سایت راهنمایی نماید. چند فایل robots.txt را با هم بررسی می‌کنیم:User-agent: *
Disallow: /search
Disallow: /adminاز فایل بالا می‌توان دریافت، به احتمال زیاد مسیر site.com/admin صفحه ورود به مدیریت سایت است.User-agent: *
Disallow: /comment
Disallow: /usersدر بالا مسیر users احتمالا صفحه با ارزشی است.افزونه wappalyzer و تشخیص CMS هااستفاده از افزونه wappalyzer را به تمام طراحان وب، علاقه مندان به امنیت و نوذگران توصیه می‌کنم. با نصب این افزونه در مرورگر خود به سادگی تمام تکنولوژی‌های استفاده شده در صفحه جاری را دریابید.اگر با این افزونه متوجه شدید سایت از یک CMD معین استفاده می‌کند، می‌توانید به راحتی با کمی جستجو در اینترنت، صفحه مدیریت آن را پیدا کنید.مثلا صفحه مدیریت، سیستم مدیریت محتوای JOOMLA به صورت زیر قابل دسترسی است:site.com/administratorصفحه مدیریت WordPress:site.com/wp-adminصفحه مدیریت دروپال و silverstripe:site.com/adminصفحه مدیریت ModX:site.com/managerصفحه مدیریت concrete5:site.com/index.php/loginصفحه مدیریت PHP Fusion:site.com/administrationاستفاده از نرم افزار Directory Finder برای یافتن صفحات حیاتی یک سایتاین نرم افزار، یک ابزار کاربردی و کم حجم است که در یافتن صفحات مهم سایت واقعا مفید عمل می‌کند.دانلودالبته این نرم افزار قابلیت‌های دیگری نظیر یافتن باگ‌های معروف را نیز در خود جای داده است.افزایش امنیت سایت با اعمال تغییرات در صفحه ورود به سایتراه کارهای فوق را برای سایت خودتان تست کنید، اگر با راهکارهای گفته شده در بالا، نفوذگر می‌تواند به صفحه مدیریت شما دسترسی پیدا کند باید تغییراتی در ساختار سایت خود بدهید.اگر نرم افزار سایت خود را به صورت شخصی نوشته اید صفحه ورود به سایت خود را تغییر دهید. اگر از CMS خاصی استفاده می‌کنید با کمی جستجو در اینترنت راهکارهای تغییر آدرس صفحه مدیریت را بیابید.اگر اطلاعات صفحه ورود در فایل robots.txt موجود است، این فایل را ویرایش کنید.و بهترین کار این است که برای آدرس دسترسی به صفحه مدیریت خود پسورد قرار دهید.امیدواریم این مطلب مفید بوده باشد. در آینده این مطلب بروز رسانی می‌شود که با عضویت در خبرنامه سایت می‌توانید از بروز رسانی این مطلب اطلاع پیدا کنید.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sun, 13 Feb 2022 11:42:11 +0330</pubDate>
            </item>
                    <item>
                <title>7 راه برای گرفتن عکس از صفحه در ویندوز 10</title>
                <link>https://virgool.io/@green_python/7-%D8%B1%D8%A7%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%B9%DA%A9%D8%B3-%D8%A7%D8%B2-%D8%B5%D9%81%D8%AD%D9%87-%D8%AF%D8%B1-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-10-dhwnpowihw5u</link>
                <description>عکس گرفتن از صفحه ابزاری بسیار مفید در ویندوز می‌باشد. زمانیکه شما در حال نوشتن یک مقاله هستید و یا برای اینکه به دوستانتان صفحه نمایشتان را نشان دهید این ابزار بسیار به شما کمک می‌کند.البته اشتباه برداشت نکنید، در ویندوز 10 برای عکس گرفتن از صفحه انتخاب‌های فراوانی دارید. Snipping Tool، کلیدهای میانبر و تعداد بی شماری از ابزارهای جانبی می‌تواند به شما در این راه کمک کند. در ادامه به 7 روش متفاوت برای گرفتن عکس از صفحه در ویندوز 10 می‌پردازیم.Snipping Toolویندوز دارای ابزار پیش فرضی برای گرفتن عکس از صفحه تحت عنوان Snipping Tool می‌باشد که از زمان ویندوز ویستا در ویندوز قرار داده شده است. شما می‌توانید این ابزار را در منو Start بیابید.برای استفاده از این ابزار، آنرا اجرا کنید و بر روی گزینه New کلیک کنید تا فرآیند عکسبرداری از صفحه آغاز گردد. حالت پیش فرض عکسبرداری به صورت یک مستطیل می‌باشد که می‌توانید با استفاده از ماوس خود بخشی از صفحه که میخواهید از آن عکس بگیرید را مشخص کنید. همچنین شما می‌توانید از حالتهای آزاد، پنجره و تمام صفحه نیز استفاده کنید.Snipping Tool به صورت خودکار عکس گرفته شده را ذخیره نمی‌کنید و شما نیاز دارید که به طور دستی آن‌ها را پیش از خروج از برنامه ذخیره کنید. این برنامه به صورت خودکار عکس‌ها را در کلیپ بورد کامپیوترتان ذخیره می‌کند.Print Screenبرای عکس گرفتن از تمام یک صفحه فقط کافیست کلید PrtScn روی صفحه کلید خود را فشار دهید. عکس گرفته شده ذخیره نمی‌گردد اما در کلیپ بورد ذخیره می‌شود و لازم است که شما یک ابزار ویرایش عکس را باز کنید (مانند Microsoft Paint) و عکس گرفته شده را در این ادیتور paste و در نهایت به عنوان یک فایل ذخیره کنید.البته در صورتیکه بر روی سیستم خود تنظیمات مربوط به اکانت OneDrive را انجام داده باشید پس از عکس گرفتن از صفحه، عکس بطور خودکار در پوشه OneDrive در ویندوز ذخیره میگردد.Windows Key + Print Screenبرای عکس گرفتن از کل صفحه و ذخیره خودکار آن فقط کافیست از ترکیب کلیدهای ویندوز و PrtScn استفاده کنید. در این حالت و پس از استفاده از این ترکیب صفحه نمایشتان برای مدت کوتاهی تاریک میشود و عکس گرفته شده به صورت خودکار در مسیر Pictures&gt;Screenshots ذخیره میگردد.Windows Key + Hاگر شما می‌خواهید که از تمام صفحه خود برای به اشتراک گذاری آن عکس بگیرید می‌توانید از ترکیب کلیدهای ویندوز و H استفاده کنید. با انجام این کار از تمام صفحه شما عکس گرفته میشود و سپس نوار Windows Share در کنار صفحه باز میشود و می‌توانید به سرعت عکس گرفته شده را به یکی از طریقه‌های نمایش داده شده در این قسمت (مانند Mail و یا Cortana Remainder) به اشتراک بگذارید.Alt + Print Screenبرای گرفتن سریع یک عکس از پنجره فعال می‌توانید از ترکیب کلیدهای Alt + PrtScn استفاده کنید. با این عمل از پنجره فعال صفحه نمایش عکسی گرفته میشود و در کلیپ بورد ذخیره می‌گردد. برای ذخیره سازی این عکس شما به برنامه‌های ویرایش عکس نیازمندید.Windows Logo + Volume Downاگر شما صاحب یک دستگاه Windows Surface هستید، می‌توانید از کلیدهای ترکیبی همانند سایر گوشی‌های هوشمند یا تبلت‌ها برای عکس گرفتن از صفحه استفاده کنید. برای انجام این کار فقط کافیست که دو کلید Windows Logo که در پایین صفحه دستگاه قرار دارد به همراه دکمه کم کردن صدا را نگه دارید. بدین ترتیب صفحه برای مدت کوتاهی تاریک میشود و یک عکس از صفحه گرفته شده و به صورت خودکار در مسیر Pictures&gt;Screenshots ذخیره میگردد.Snip Editorابزار Snip Editor یا Microsoft Snip یکی از پروژه‌های مایکروسافت می‌باشد که کمی بهتر از Snipping Tool کار می‌کند. Snip Editor به شما اجازه میدهد تا به سرعت از تمام صفحه، پنجره فعال و یا بخشی از صفحه عکس بگیرید. همچنین با این ابزار می‌توانید دکمه PrtScn را تنظیم کنید تا به عنوان کلید میانبری برای این برنامه عمل کند.این برنامه همچنین دارای امکاناتی همچون ایجاد یادداشت در زیر عکس گرفته شده و یا ابزار ضبط صدا نیز می‌باشد.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sun, 13 Feb 2022 11:30:15 +0330</pubDate>
            </item>
                    <item>
                <title>دور زدن و هک کردن قفل BitLocker + ویدیو</title>
                <link>https://virgool.io/@green_python/%D8%AF%D9%88%D8%B1-%D8%B2%D8%AF%D9%86-%D9%88-%D9%87%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%D9%82%D9%81%D9%84-bitlocker-%D9%88%DB%8C%D8%AF%DB%8C%D9%88-oesevbkce1ef</link>
                <description>همیشه فکر می‌کردید BitLocker امن ترین روش رمزنگاری اطلاعات است و با وجود BitLocker دیگر کسی نمی‌تواند به اطلاعات شما دست پیدا کند؟ کاملا در اشتباهید!BitLocker چیست؟قابلیتی که از ویندوز ویستا تا به ارموز به ویندوز افزوده شده است و قابلیت این را دارد تا داده‌های موجود در هارد دیسک و یا فلش شما را در رمزگذاری‌های 128 یا 256 بیتی با الگوریتم رمز نگاری پیشرفته Advanced Encryption Standard یا AES رمز نگاری نماید. این قابلیت امکان پیاده سازی با تراشه‌های سخت افزاری TMP را نیز دارد ولی در نوع نرم افزاری خود نیز بسیار مورد استفاده قرار می‌گیرد.ویدیو انجام آسیب پذیری BitLocker:برای تماشای ویدیو اسیب پذیری به لینک زیر بروید  این لینکراه حل چیست؟متخصصان Laiho گفته اند برای دور زدن این آسیب پذیری در مسیر زیر:C:\Windows\Setup\Scriptsیک فایل خالی با نام DisableCMDRequest.tag ایجاد کنید.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sun, 13 Feb 2022 11:27:02 +0330</pubDate>
            </item>
                    <item>
                <title>نحوه پیدا کردن رمز وای فای در گوشی</title>
                <link>https://virgool.io/@green_python/%D9%86%D8%AD%D9%88%D9%87-%D9%BE%DB%8C%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%D9%85%D8%B2-%D9%88%D8%A7%DB%8C-%D9%81%D8%A7%DB%8C-%D8%AF%D8%B1-%DA%AF%D9%88%D8%B4%DB%8C-sbxeumhjdd1i</link>
                <description>چگونه رمز وای فای را در گوشی پیدا کنیم؟زمانی پیش می آید که رمز وای فای خودمان را فراموش کرده ایم. یا ممکن است مدت طولانی باشد که به یک Wi-Fi متصل هستیم و رمز آن را فراموش کرده ایم. با این حساب پیدا کردن رمز وای فای ممکن است برای خیلی از ما پیش آمده باشد. در این مقاله از کالی بویز میخواهیم چگونگی پیدا کردن رمز وای فای در گوشی را با دو حالت دسترسی روت و بدون دسترسی روت بررسی کنیم.روش اول با دسترسی روتابزار های زیادی برای پیدا کردن رمز وای فای در گوشی وجود دارند که می توانند رمز Wi-Fi ذخیره شده در گوشی را به ما نشان دهند. از جمله این نرم افزار ها می توان به برنامه های برتر هک وای فای با اندروید اشاره کرد که در ادامه لیست آن ها را می بینید.wps connectwps pinwifi wardenwps wpa testerالبته توجه داشته باشید که نرم افزار های مشابه زیادی در این زمینه وجود دارند که عملکردشان مشابه بوده و الگوریتم استفاده آنها یکی است.روش دوم بدون روتدر صورتی که شما به Wi-Fi مورد نظر متصل باشید، میتوانید با روش های زیر نسبت به پیدا کردن رمز وای فای در گوشی اقدام کنید. در این روش ها نیاز به دسترسی روت ندارید و تنها نیاز است که به مودم متصل باشید.1. دیدن رمز وای فای در گوشی از طریق کانفیگ مودمهمانطور که می دانید آدرس پیشفرض صفحه کانفیگ اکثر مودم ها یکسان است و با وارد کردن آدرس آیپی 192.168.1.1 می توانید صفحه کانفیگ مودم را پیدا کنید که رمز Wi-Fi نیز در همان صفحه وجود دارد. با توجه به این که نام کاربری و رمز عبور برخی مودم ها نیز با هم متفاوت است اما بیشتر آن ها از نام کاربری و رمزعبور پیش فرض admin:admin استفاده میکنند.توجه داشته باشید که در صورت ندانستن مدل مودم Wi-Fi، می توانید از طریق نرم افزار wpspin که پیشتر معرفی شد، مدل یا برند آن را پیدا کنید.بعد از پیدا کردن مدل مودم مورد نظر، وارد وب سایت routerpasswords شده و مدل یا برند آن را وارد کنید. درنهایت نام کاربری و رمز عبور پیشفرض مودم را به همراه آدرس ورود به پنل کانفیگ به شما نشان می دهد.در نهایت بعد از پیدا کردن برند مودم و وارد شدن به تنظیمات پیکربندی، در قسمت wireless Lan (یا در برخی موارد SSID) می توانید رمز Wi-Fi را به همین سادگی مشاهده کنید.2. پیدا کردن رمز وای فای در گوشی از طریق QR Codeدرصورتی که گوشی شما اندروید 10 و بالاتر می باشد و به Wi-Fi متصل هستید، برای پیدا کردن رمز وای فای باید در قسمت تنظیمات wifi، دقیقا روی نام وای فای کلیک کنید و گزینه share wifi network را بزنید. در اینصورت یک qr code به شکل زیر به شما می دهد.حال کافیست تا از آن اسکرین شات گرفته و قسمت qr code آن را به شکل زیر Crop و ذخیره کنید.سپس وارد سایت QR Decoder شوید که یک دیکدر قدرتمند QR است و فایل عکس Crop شده را در آن آپلود کنید.موفق باشید.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 16:19:16 +0330</pubDate>
            </item>
                    <item>
                <title>نحوه مخفی کردن فایل ها در عکس</title>
                <link>https://virgool.io/@green_python/%D9%86%D8%AD%D9%88%D9%87-%D9%85%D8%AE%D9%81%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%B9%DA%A9%D8%B3-m7zpvldhazvb</link>
                <description>مخفی کردن فایل ها در عکس چگونه ممکن است؟احتمالا در نگاه اول عجیب به نظر برسد، اما مخفی کردن فایل ها در عکس کاملا ممکن است و در این صورت تمام چیزی که کاربران می بینند فقط خود عکس است. پس از انجام این کار هیچ نشانه ای از فایل های مخفی وجود نداشته و افراد حتی نمی دانند چیزی در عکس های شما پنهان است. با این حال، تنها چیزی که ممکن است مشکوک باشد، حجم عکس می باشد و اگر کسی به سایز عکس شما نگاه کند، ممکن است در صورت آگاهی متوجه ماجرا شود.استفاده از CMD برای انجام این کاراگر شما کاربر ویندوز باشید، به راحتی می توانید از از یک دستور در Command Prompt یا CMD برای مخفی کردن فایل های خود در یک تصویر استفاده کنید. این دستور فایل هایی که می خواهید مخفی کنید را با تصویری که انتخاب می کنید در یک فایل تصویری ترکیب می کند.زمانی که این فایل تصویری را باز می کنید، به عنوان یک عکس معمولی ظاهر شده و هیچ نشانه ای از فایل های پنهان شده شما در آن نیست.برای انجام این کار ابتدا یک عکس JPG را روی صفحه دسکتاپ خود انتقال دهید. سپس تمام فایل هایی که می خواهید مخفی کنید را فشرده و زیپ کنید. برای انجام این کار، روی فایل های خود کلیک راست کرده و سپس روی Send to کلیک کنید و Compressed (zipped) folder را انتخاب کنید.بعد از فشرده کردن فایل های خود، فایل فشرده (zip) را نیز به دسکتاپ منتقل کنید.در ادامه کار نیاز است که برنامه کامند لاین یا cmd را از باکس جستجوی ویندوز با سرچ کردن Command Prompt یا cmd اجرا کنید. (همچنین می توانید با فشردن کلیدهای ترکیبی Win+R ابتدا محیط Run را اجرا کرده و cmd را در آن وارد کنید و سپس ok کنید)پس از اجرا شدن cmd، دستور زیر را برای تغییر مسیر به دسکتاپ وارد کنید.cd desktopحالا دستور زیر را برای مخفی کردن فایل ها در عکس jpg وارد کنید.copy /b source-image.jpg + your-archive.zip target-image-file.jpgدر اینجا معنای هر بخش از دستور آمده است:source-image.jpg: این تصویری است که از قبل روی رایانه شخصی خود دارید و می خواهید فایل های خود را در آن پنهان کنید.your-archive.zip: این فایل ZIP حاوی فایل هایی است که می خواهید پنهان کنید.target-image-file.jpg: این فایل به دست آمده حاوی تصویر و آرشیو ZIP شما خواهد بودپس از اجرای دستور فوق، یک فایل تصویری جدید JPG (به نام target-image-file یا هر اسمی که خودتان قبل تر در خط فرمان انتخاب کرده اید) روی دسکتاپ شما ظاهر می شود. این فایل جدید شامل فایل هایی است که داخل عکس پنهان کرده اید. همانطور که در تصویر زیر می بینید، حجم عکس 71 مگابایت شده است که ممکن است برای برای برخی افراد مشکوک به نظر برسد.باز کردن فایل های پنهان شده در عکسبرای آشکار کردن فایل های مخفی شده در عکس دیگر نیازی به استفاده از Command Prompt نیست و کافی است تا روی تصویر JPG راست کلیک کنید، Open with را انتخاب کرده و WinRAR archiver را انتخاب کنیدراه دیگر برای نمایش فایل های مخفی شده در عکس، تغییر پسوند تصویر JPG است. برای انجام این کار، روی عکس خود کلیک راست کرده، Rename را انتخاب کنید و پسوند فایل عکس را به ZIP تغییر دهید.امیدوارم این مطلب مفید واقع شده باشد.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 16:13:10 +0330</pubDate>
            </item>
                    <item>
                <title>تبدیل عدد به حروف در جاوا اسکریپت</title>
                <link>https://virgool.io/@green_python/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%AF%D8%AF-%D8%A8%D9%87-%D8%AD%D8%B1%D9%88%D9%81-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-zd5na5mzy2qg</link>
                <description>تبدیل عدد به حروف در جاوا اسکریپتبدیل عدد به حروف در جاوا اسکریپت یکی از کاربردی‌ترین مباحث این زبان برنامه نویسی است که برای برنامه‌های مختلف به درد می‌خورد؛ خصوصا تبدیل عدد به حروف فارسی در جاوا اسکریپت که در طراحی سایت‌های فارسی زبان برای نمایش مبلغ، مقدار یا هر نوع عددی دیگری به کار می‌رود. در این مقاله قصد داریم نحوه‌ی تبدیل عدد به حروف در javascript را به طور کامل برای شما شرح دهیم و با ارائه‌ی مثال‌های کاربردی به شما کمک کنیم تا نحوه‌ی اجرای آن را به ساده‌ترین روش یاد بگیرید. اما قبل از هر چیز بد نیست نگاهی کوتاه به ساختار داده‌ای اعداد و حروف در برنامه‌ نویسی جاوا اسکریپت و تفاوت این دو نوع داده‌ای بیاندازیم.همچنین در وب سایت سبزلرن یک دوره کاملا رایگان اموزش جاوا اسکریپت وجود دارد که میتوانید از ان استفاده کنید .ساختار داده‌ای اعداد و حروف در جاوا اسکریپتیکی از مزیت‌های زبان جاوا اسکریپت این است که هر نوع ساختار عددی اعم از صحیح یا اعشاری، در این زبان از نوع داده‌ای number به تعریف می‌شوند و نیازی نیست که هر نوع عددی را جداگانه مشخص کنیم. فرم نوشتاری اعداد در جاوا اسکریپت به صورت‌ دهدهی یا نماد علمی است و تا 15 رقم را پشتیبانی می‌کند. مثال:var x = 3.14;  // A number with decimalsvar y = 3;  // A number without decimalsvar x = 123e5;  // 12300000برای رشته‌ها مشابه بسیاری از زبان‌های دیگر، حروف توسط نوع داده‌ای رشته تعریف می‌شوند و برای نمایش آن کافی است از علامت دابل کوتیشن (“”) یا تک کوتیشن  (‘ ‘) استفاده کنید.Var txt = “ ASDFGH”;کد جاوا اسکریپت تبدیل عدد به حروفاکنون که با انواع داده‌های حرفی و عددی در جاوا اسکریپت آشنا شدید، ببینیم که تبدیل عدد به حروف در javascript چطور انجام می‌شود. برای تبدیل عدد به حروف در جاوا اسکریپت، باید از تابع fromCharCode() استفاده کرد. این متد در جاوا اسکریپت، برای تبدیل اعداد یونیکد به کاراکتر به کار می‌رود. سینتکس استفاده از کد جاوا اسکریپت تبدیل عدد به حروف با استفاده از متد fromCharCode() به شکل زیر است:&lt;div&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;string.fromCharCode(num)  string.fromCharCode(num....numn)&lt;/div&gt;string.fromCharCode(num)string.fromCharCode(num....numn)که پارامترهای آن می‌توانند اعداد بین 0 تا 65535 رقم باشند. این نکته را توجه داشته باشید که خروجی تابع fromCharCode به صورت حروف انگلیسی خواهد بود. حال در نظر بگیرید که بخواهیم این حروف به صورت بزرگ چاپ شوند، برای این کار باید از console.log(str) استفاده کنیم. کد اسکی برای حروف بزرگ انگلیسی رنج 65 تا 90 است؛ یعنی عدد اسکی حرف اول A معادل عدد 65 و حرف آخر Z معادل عدد 90 خواهد بود. برای اینکه بتوان اعداد را با حروف بزرگ چاپ کرد، باید با کمک یک حلقه ابتدا آن‌ها را به رشته تبدیل کرده و سپس با console.log(str) چاپ کنیم. کد زیر نحوه‌ی اجرای این تابع را نشان می‌دهد.var str = &quot;&quot;;for (let num = 65; num &amp;lt;=90 ; num++){let char = String.fromCharCode(num);str += char + &quot;, &quot;;}console.log(str);let char = String.fromCharCode(68, 69, 86, 69, 78, 86, 77);console.log(char)//sequence of mutiple number valuelet letter = String.fromCharCode(68, 69, 86, 69, 78, 85, 77);console.log(letter )خروجی کد جاوا اسکریپت تبدیل عدد به حروف بالا به صورت زیر خواهد بود:A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,DEVENUMحال اگر بخواهیم اعداد را به حروف کوچک انگلیسی تبدیل کنیم، کافی است به جای کدهای اسکی رنج 65 تا 90، از کدهای اسکی رنج 97 تا 122 استفاده کنیم تا حروف کوچک a تا z چاپ شود. برای این کار باید حلقه for به صورت زیر تعریف شود:var str = &quot;&quot;;for (let num = 97; num&amp;lt;=122 ; num++){let char = String.fromCharCode(num);str += char + &quot;, &quot;;}console.log(str);که خروجی آن به شکل زیر خواهد بود:a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z,چنانچه بخواهیم تبدیل عدد به حروف در جاوا اسکریپت هم حالت حروف بزرگ و هم حروف کوچک را نمایش دهد، باید به سادگی مقدار آن را با حد پایین حروف کوچک و بزرگ یعنی اعداد 64 و 96 جمع کرده و از همان تابع fromCharCode برای تبدیل استفاده کنیم. مثال:function numto_Uper_lower_char(mynum){let upper_case = String.fromCharCode(64 + mynum)let lower_case = String.fromCharCode(96 + mynum)console.log(&#x27;upper case :&#x27;,upper_case)console.log(&#x27;lower case&#x27;,lower_case)}numto_Uper_lower_char(13)خروجی تابع بالا به صورت زیر است:upper case : Mlower case mتبدیل اعداد به حروف الفبا در جاوا اسکریپتهمانطور که می‌دانید در زبان انگلیسی 26 حرف وجود دارد؛ بنابراین برای اینکه بخواهیم یک عدد به حرف تبدیل شود، باید عدد بین بازه‌ی 1 تا 26 باشد. حال چطور می‌توانیم این نکته را در کدها نشان دهیم://number to upper case alphabetconst num_alpha = (num) =&amp;gt; {if(num &amp;lt; 1 || num &amp;gt; 26 || typeof num !== &#x27;number&#x27;){return -1;}const Startval = 64;return String.fromCharCode(num + Startval);};console.log(num_alpha(12));خروجی:L//number to lower case alphabetconst num_alpha_lower = (num) =&amp;gt; {if(num &amp;lt; 1 || num &amp;gt; 26 || typeof num !== &#x27;number&#x27;){return -1;}const Startval = 96;return String.fromCharCode(num + Startval);};console.log(num_alpha_lower (12));خروجی:همانطور که دیدید برای تبدیل عدد به حروف از متد  fromCharCode استفاده می‌شود. حالت معکوس این متد، charCodeAt است که معادل یونیکد یک حرف را نشان می‌دهد. نحوه‌ی استفاده از این متد به شکل زیر است:function numto_char(character){let char_upper = character.toUpperCase().charCodeAt()let char_lower = character.toLowerCase().charCodeAt()console.log(&#x27;lower-case char ASCII value is :&#x27;,character.toLowerCase(),char_lower)console.log(&#x27;Upper-case char ASCII value is :&#x27;,character.toUpperCase(),char_upper)}numto_char(&#x27;g&#x27;)خروجی این کد به صورت زیر خواهد بود:lower-case char ASCII value is : g 103Upper-case char ASCII value is : G 71کد javascript تبدیل عدد به حروف فارسیباید از پکیج‌های تعریف شده برای این کار استفاده کنید. یکی از رایج‌ترین و پرکاربردترین پکیج‌های برای این کار wordifyfa است که سورس آن در گیت‌هاب قرار دارد. با کمک wordifyfa شما می‌توانید اعداد انگلیسی را به زبان فارسی برگردانید یا به صورت ریال و تومان بنویسید. در ادامه کد javascript تبدیل عدد به حروف فارسی با استفاده از این پکیج را مشاهده می‌کنید:var a = 235000;var b = wordifyfa(a);console.log(b); // دویست و سی و پنج هزارvar c = wordifyRials(a); // دویست و سی و پنج هزار ریالvar d = wordifyRialsInTomans(a); // بیست و سه هزار و پانصد تومانبرای نصب این پکیج کافی است دستور زیر را در کد html خود وارد کنید:&amp;lt;script src=&quot;wordifyfa.js&quot;&amp;gt;&amp;lt;/script&amp;gt;این پکیج می‌تواند اعداد را تا رقم 999,999,999,999,999 پشتیبانی کند.در انتها برای توضیحات بیشتر میتوانید از وب سایت dev کمک بگیرید .</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 16:07:20 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش هوش مصنوعی با جاوا اسکریپت</title>
                <link>https://virgool.io/@green_python/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%A8%D8%A7-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-c9ktzohdwbcq</link>
                <description>آموزش هوش مصنوعی در جاوا اسکریپت یکی از مقوله‌های کاربردی اخیر این زبان برنامه‌نویسی است. همان‌طور که می‌دانید هوش مصنوعی امروزه نقش اساسی در طراحی برنامه‌ها و پلتفرم‌های کامپیوتری دارد و برای حوزه‌های مختلفی مثل پردازش تصویر، بینایی کامپیوتر و تشخیص زبان طبیعی به کار می‌رود. به لطف کتابخانه‌های گسترده و کامل هوش مصنوعی در جاوا اسکریپت، این زبان به یکی از بهترین‌ زبان‌های هوش مصنوعی تبدیل شده است. هوش مصنوعی جاوا اسکریپت، به توسعه‌ دهندگان کمک می‌کند تا AI را به اپلیکیشن‌های مرورگر وب نیز اضافه کنند و برنامه‌های تحت وب هوشمندی بسازند.هوش مصنوعی چیست و چه زیرشاخه هایی داردهوش مصنوعی یا اختصارا AI همان‌طور که از نامش پیداست، به قابلیت ادراک ماشین‌ها گفته می‌شود؛ به بیان دیگر به توانایی درک و شبیه‌سازی تفکر انسانی توسط یک ماشین یا همان کامپیوتر، هوش مصنوعی گفته می‌شود. در هوش مصنوعی ما چند زیرشاخه داریم:یادگیری ماشین یا به اختصار ML: به مجموعه‌ای از روش‌ها و تکنیک‌ها برای تحلیل داده‌های ورودی یک ماشین گفته می‌شود که به آن کمک می‌کند تا شرایط را ارزیابی کرده و اقدام درست را انتخاب کند. در یادگیری ماشین داده‌های ورودی به روش‌های مختلف جمع‌آوری شده و با تکنیک‌های تجزیه‌ و تحلیل تعریف شده توسط انسان ارزیابی می‌شوند. سپس بر اساس نتایج به دست آمده، ماشین عمل واکنش مناسب خود را انتخاب می‌کند. یادگیری ماشین امروزه در فناوری‌های گوناگون نفوذ پیدا کرده و ردپای آن را می‌توان در بخش‌های مختلفی نظیر شناسایی تصویر و صدا، تشخیص بیماری‌ها، تحلیل‌های آماری، خودروسازی و… مشاهده کرد. فریمورک‌های مختلفی برای آموزش هوش مصنوعی در جاوا اسکریپت وجود دارند که تکنیک‌های یادگیری ماشین را پیاده سازی می‌کنند.یادگیری عمیق یا Deep Learning: به روش‌های از یادگیری ماشین گفته می‌شود که بر اساس شبکه‌های عصبی مصنوعی کار می‌کنند و به کامپیوتر یاد می‌دهند که چطور مانند انسان فکر و عمل کند. یادگیری عمیق را می‌توان زیرشاخه‌ای از یادگیری ماشین نیز دانست که سعی دارد مغز یک انسان را شبیه سازی کند و از برای این کار از الگوریتم‌ شبکه‌های عصبی استفاده می‌کند. از این فناوری در خودروسازی، صنایع نظامی و هوایی، پردازش تصویر و پزشکی استفاده‌ی گسترده‌ای می‌شود.چرا هوش مصنوعی در جاوا اسکریپتشاید شما هم از شنیدن عنوان هوش مصنوعی در جاوا اسکریپت، کمی تعجب کرده باشید و به نظرتان این کار کمی غیر معمول بیاید. بسیاری از شرکت‌های فعال در حوزه‌ی هوش مصنوعی این روزها از پایتون یا اسکالا برای پیاده‌سازی اپلیکیشن‌های خود استفاده می‌کنند؛ اما، این دلیل نمی‌شود که زبان برنامه‌ نویسی جاوا اسکریپت را برای هوش مصنوعی نادیده بگیریم. بد نیست بدانید بر اساس آمار اعلام شده در گیت هاب، زبان جاوا اسکریپت سومین زبان مناسب برای هوش مصنوعی محسوب می‌شود؛ بنابراین ارزش آن را دارد که برای پروژه‌های بعدی خود در زمینه‌ی AI، به فکر آموزش هوش مصنوعی با جاوا اسکریپت باشید.مزایا و معایب هوش مصنوعی در جاوا اسکریپتاز جمله مزایای پیاده سازی ماشین لرنینگ با جاوا اسکریپت می‌توان به موارد زیر اشاره کرد:امنیت: برخلاف پایتون، زبان جاوا اسکریپت برای امنیت ساخته شده است. جاوا اسکریپت به کسانی که شما به آن‌ها اعتماد ندارید؛ مثل گوگل و آمازون، در زمان‌ اجرای اسکریپت‌هایشان روی کامپیوتر شما، اجازه دسترسی به فایل‌ها و اطلاعات محرمانه‌ی‌تان را نمی‌دهد. چرا که جاوا اسکریپت به فایل‌ها و حتی سیستم‌ عامل دسترسی ندارد. این امتیاز بزرگ، جاوا اسکریپت را به زبانی ایده‌آل برای پیاده‌سازی و استقرار فریمورک‌های AI تبدیل کرده است.عملکرد: سرمایه گذاری زیادی روی عملکرد سریع جاوا اسکریپت شده است و این زبان یکی از سریع‌ترین زبان‌ها برای اجرا در مرورگرهاست. می‌توان گفت سرعت امتیاز رقابتی این زبان برنامه نویسی محسوب می‌شود. اپل، مایکروسافت و گوگل تلاش زیادی برای ساخت برنامه‌های سریع و سبک با این زبان کرده‌اند و این زبان در حال حاضر به لحاظ عملکردی پتانسیل خیلی خوبی برای اجرای پروژه‌های AI دارد.شهرت: زبان جاوا اسکریپت یک زبان محبوب است و کاربردهای زیادی در زمینه‌های مختلف دارد. از این زبان برای ساخت پنل‌های مدیریت و همینطور ساخت انواع نمودار و داده‌ی بصری استفاده می‌شود. بسیاری از توسعه‌ دهندگان وب با این زبان آشنایی دارند و این کار را برای آموزش هوش مصنوعی با جاوا اسکریپت راحت‌تر می‌کند.زمان توسعه: جاوا اسکریپت نیز مشابه پایتون یا حتی بیشتر از آن سریع است و زمان توسعه‌ی کمی دارد. هر دو زبان دیباگینگ راحت و چارچوب‌های توسعه‌ی خوبی دارند و از پشتیبانی گسترده‌ای بهره می‌برند. وجود کتابخانه‌های هوش مصنوعی نظیر SYNAPTIC در این زبان کار پیاده‌سازی یادگیری ماشین و حتی یادگیری عمیق را راحت و لذت بخش کرده است.قدرت در توسعه‌ی وب اپلیکیشن‌ها: در حال حاضر جاوا اسکریپت یکی از قدرتمندترین زبان‌ها برای توسعه‌ی برنامه‌های تحت وب محسوب می‌شود و کاربرد این زبان برای برنامه‌های هوش مصنوعی تحت وب بسیار انتخاب مناسبی است.زبان چند پلتفرمی: زبان جاوا اسکریپت یک زبان چند پلتفرمی است و نه تنها برای برنامه‌های تحت وب بلکه برای برنامه‌های دسکتاپ هم کاربرد دارد و به شما امکان می‌دهد برنامه‌های موبایل خود را برای دسکتاپ نیز توسعه دهید. همچنین شما می‌توانید کدهای خود را در محیط سرور نیز اجرا نمایید.معایب پیاده سازی ماشین لرنینگ با جاوا اسکریپتمحدودیت داده: با وجود تمام مزیت‌هایی که استفاده از هوش مصنوعی در جاوا اسکریپت دارد، کتابخانه‌های این حوزه نظیر js محدودیت‌هایی دارند؛ مثلا این کتابخانه‌ها عموما به صورت پیشفرض به فایل‌های سیستمی در محیط هاست دسترسی ندارند. این مسئله باعث می‌شود که منابع داده‌ای در دسترس محدود باشند و در اندازه‌ی فایل‌ها نیز محدودیت‌هایی اعمال می‌شود.تک رشته‌ای: کتابخانه‌های جاوا اسکریپت غالبا تک رشته‌ای هستند و این مسئله در هنگام دانلود همزمان ممکن است عملکرد برنامه‌ را از بین ببرد. توسعه‌ دهندگان می‌توانند با ایجاد رشته‌های اصلی بیشتر، بر این موضوع غلبه کنند.پروژه‌های ماشین لرنینگ با جاوا اسکریپتتا اینجا فهمیدیم که هوش مصنوعی جاوا اسکریپت عملکرد خوبی دارد و توسعه دهندگان زیادی از آن استقبال کرده‌‌اند. این زبان برنامه نویسی فریمورک‌های مختلفی برای یادگیری ماشین یا همان ماشین لرنینگ دارد که در ادامه برخی از مهم‌ترین آن‌ها را با هم بررسی می‌کنیم تا برای آموزش هوش مصنوعی با جاوا اسکریپت آن‌ها را بشناسید:TensorFlow.jsاین فریمورک را کمپانی گوگل ارائه کرد و از کتابخانه‌ها و ابزارهای مختلفی برای توسعه‌ی برنامه‌ها بر اساس شبکه عصبی دارد. با کمک این فریمورک برنامه‌هایی در زمینه‌ی شناسایی، دسته بندی و ردیابی تصاویر را می‌توان پیاده سازی کرد. هسته‌ی فریمورک TensorFlow.js در c++ نوشته شده و از شبکه‌های عصبی پیشرفته‌ای برای یادگیری ماشین استفاده می‌کند.STDLibاز این فریمورک برای پیاده سازی مدل‌های آماری و ریاضی استفاده می‌شود و بیشتر برای برنامه‌های تحلیل داده کاربرد دارد. STDLib مجموعه‌ی وسیعی از توابع ریاضی را پشتیبانی می‌کند و API های مختلفی برای آنالیز داده‌ها دارد. از دیگر کاربردهای این فریمورک می‌توان به تعیین اعتبار داده و تشخیص فیچرها اشاره کرد.ConvNetJSفریمورک ConvNetJS را دانشگاه استنفورد توسعه داد و به عنوان یکی از پیشرفته‌ترین فریمورک‌های جاوا اسکریپت برای یادگیری عمیق شناخته می‌شود که در مرورگر و NODE.JS به کار می‌رود. این فریمورک برای شبکه‌های عصبی مصنوعی استفاده می‌شود و کار پردازش تصویر را به شکل حرفه‌ای انجام می‌دهد. مدل یادگیری در این فریمورک Reinforcement است که یک مدل کاربردی در یادگیری عمیق محسوب می‌شود. از ConvNetJS می‌توان برای عملیات مختلف هوش مصنوعی نظیر رمزنگاری داده، تشخیص خطا و الگو استفاده کرد. امتیاز دیگر این فریمورک سادگی پیاده‌ سازی آن است؛ اگرچه ممکن است کندتر از سایر فریمورک‌های این حوزه عمل کند.Brain.jsفریمورک Brain.js در واقع یک کتابخانه برای ماشین لرنینگ در جاوا است. این کتابخانه در سمت کاربر یا سرور با node.js اجرا می‌شود و شبکه‌های عصبی را به شکلی پیشرفته پیاده سازی می‌کند. انواع شبکه‌های عصبی اعم از شبکه‌های عصبی feed forward، شبکه‌های عصبی بازگشتی و شبکه‌های حافظه را می‌توان با این کتابخانه‌ها طراحی و اجرا کرد.DeepForgeDeepForge را نمی‌توان یک کتابخانه دانست. این ابزار در واقع محیطی برای طراحی مدل‌های یادگیری عمیق محسوب می‌شود. رابط بصری DeepForge برای می‌تواند در مرورگر کروم مدل‌های شبکه‌ی عصبی را پیاده سازی کرده و نمایش دهد؛ اما، سایر مرورگرها توانایی اجرای آن را ندارند. در پروژه‌های DeepForge شما نیاز به node.js و mongoDB دارید.Keras.jsکراس یکی دیگر از کتابخانه‌های شبکه عصبی است که در آموزش هوش مصنوعی با جاوا اسکریپت به آن پرداخته می‌شود. این کتابخانه نیز برای مدل‌های یادگیری عمیق به کار می‌رود و در اکثر سیستم عامل‌ها پشتیبانی می‌شود. زبان مادر این فریمورک پایتون است و دومین کتابخانه‌ی محبوب برای deep learning محسوب می‌شود. سازمان‌های بزرگی مثل ناسا و سرن برای پروژه‌های ماشین لرنینگ خود از این کتابخانه استفاده می‌کنند و گزینه‌ی مناسبی برای استارتاپ‌ها در جهت ارتقای عملکردهای دیجیتالی به شمار می‌رود.WebDNNفریمورک WebDNN هنر دست ژاپنی‌هاست و با هدف اجرای الگوهای شبکه عصبی پیشرفته در مرورگرها طراحی شده است. امتیاز این فریمورک سرعت بالای آن است و این کار را با بهینه سازی مدل‌ها و فشرده کردن داده‌ها انجام می‌دهد.  این فریمورک از WebAssembly   برای افزایش سرعت پردازش داده استفاده می‌کند و با کمک یکسری ابزارها امکان طراحی گرافیک سه بعدی را برای کاربر فراهم می‌سازد.Synapticشاید شما هم نام سیناپتک را شنیده باشید. سیناپتک یک پروژه برای اجرای هوش مصنوعی در جاوا اسکریپت است و با کمک می‌توانید شبکه‌های عصبی مختلف را در انواع مرورگرها یا در سمت سرور اجرا کنید. در این فریمورک شما می‌توانید از نمونه‌های از پیش ساخته شده استفاده کنید و سرعت کارتان را بالا ببرید.Mindمایند نیز از آن دسته فریمورک‌های هوش مصنوعی جاوا اسکریپت است که هم در سمت سرور و هم در سمت کلاینت می‌توانید از آن استفاده کرده و انواع مدل‌های ماشین لرنینگ را با کمک آن پیاده کنید.Deep playgroundDeep playground یک برنامه‌ی تحت وب برای آموزش هوش مصنوعی با جاوا اسکریپت است که با کمک آن می‌توانید شبکه‌های عصبی مختلف را شناخته و با آن‌ها کار کنید. گرافیک این ابزار بسیار جذاب بوده و به راحتی قابل استفاده است. همچنین شما می‌توانید ورودی‌ها، نورون‌ها و الگوریتم‌های استفاده شده در شبکه‌ی عصبی خود را تنظیم کرده و هر آنچه برای اجرای ماشین لرنینگ نیاز دارید را یاد بگیرید.Land Linesلند لاینز یک پروژه قابل اجرا روی مرورگر کروم است که از طریق تصاویر ماهواره‌ای هر قسمت از زمین را نمایش می‌دهد و بدون نیاز به سرور به صورت کامل روی مرورگر اجرا می‌شود. این ابزار ریسپانسیو بوده و می‌توانید آن را روی دستگاه‌های موبایل نیز استفاده کنید.Thing Translatorاین پروژه‌ی آزمایشی یک کاربرد ساده و در عین حال جالب از هوش مصنوعی را در یک برنامه‌ی موبایل اجرا کرده است. با کمک این ابزار شما می‌توانید تصاویر دنیای واقعی را شناسایی کنید و نامشان را به زبان‌های مختلف ببینید. در این برنامه از دو ابزار گوگل یعنی Cloud Vision و Translate API برای شناسایی تصویر و ترجمه‌ی نام آن استفاده می‌شود.Machine_learningماشین لرنینگ یک کتابخانه هوش مصنوعی در جاوا اسکریپت است که به شما کمک می‌کند شبکه‌های عصبی را بسازید و بهتر آن‌ها را یاد بگیرید. این کتابخانه نصب ساده‌ای دارد و به راحتی می‌توانید از این کتابخانه‌ی جاوا اسکریپتی استفاده کنید.سخن پایانیهوش مصنوعی آینده‌ی زندگی انسان را می‌سازد و اغلب زبان‌های برنامه نویسی بزرگ دنیا به سمت پیاده‌سازی آن می‌روند. جاوا اسکریپت هم از این قاعده مستثنی نیست؛ ولی راه درازی تا رسیدن به نقطه‌ی کمال در این زمینه دارد. با این وجود می‌توان گفت زبان جاوا اسکریپت به واسطه سادگی، سرعت و سبکی آن می‌تواند یک گزینه‌ی مناسب برای پروژه‌های هوش مصنوعی تحت وب  و دسکتاپ باشد. در حال حاضر پروژه‌های هوش مصنوعی مختلفی در جاوا اسکریپت پیاده سازی شده است که در این مقاله به بررسی برخی از مهم‌ترین‌هایشان پرداختیم تا شما را با کاربرد هوش مصنوعی در این حوزه آشنا کنیم. آموزش هوش مصنوعی در جاوا اسکریپت می‌تواند شما را برای ساخت اپلیکیشن‌های و وب اپلیکیشن‌های هوشمندانه در این زمینه یاری کند و انتخاب خوبی برای سازگاری با نیازهای جدید این حوزه باشد.سوالات متداولآیا سرعت جاوا اسکریپت برای پیاده سازی هوش مصنوعی از زبان برنامه نویسی R بیشتر است؟بله تجربه نشان داده است که جاوا اسکریپت در مقایسه با پایتون و R سرعت بیشتری در اجرای برنامه‌های هوش مصنوعی دارد.آیا برای یادگیری هوش مصنوعی در جاوا اسکریپت نیاز به دانستن زبان‌های پایتون یا R هست یا خیر؟خیر شما می‌توانید بدون نیاز به هر زبان دیگری، هوش مصنوعی در جاوا اسکریپت را یاد بگیرید؛ البته قبل از آن شما باید کاملا با مفاهیم و مدل‌های AI آشنایی داشته باشید و کتابخانه‌های این حوزه در جاوا اسکریپت را بشناسید.آموزش هوش مصنوعی با جاوا اسکریپت چقدر زمان نیاز دارد؟اگر شما به زبان جاوا اسکریپت مسلط باشید، برای یادگیری و تمرین مفاهیم هوش مصنوعی به شش ماه زمان نیاز خواهید داشت؛ ولی اگر هنوز زبان جاوا اسکریپت را یاد نگرفته‌اید بهتر است روی یک سال برنامه ریزی کنید تا بتوانید هر دو مقوله را در کنار هم پیش ببرید.آیا برای یادگیری هوش مصنوعی به کدنویسی نیاز است؟در روش‌های سنتی آموزش‌های مرتبط با AI همراه با برنامه‌نویسی نرم افزار ارائه می‌شد؛ اما، امروزه دانشجویان و محققان این حوزه می‌توانند به صورت بصری و بدون نیاز به کدنویسی با مفاهیم هوش مصنوعی و ماشین لرنینگ آشنا شوند و درک بهتری از هوش مصنوعی کسب کنند. از طرف دیگر آموزش‌های زیادی در این زمینه در اینترنت و سایت‌های ایرانی و خارجی می‌توان یافت که شما را در یادگیری آن یاری می‌کند.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 15:57:17 +0330</pubDate>
            </item>
                    <item>
                <title>مفهوم async و await در جاوا اسکریپت</title>
                <link>https://virgool.io/@green_python/%D9%85%D9%81%D9%87%D9%88%D9%85-async-%D9%88-await-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-spnnxu0gfkf0</link>
                <description>شاید شما هم با مفهوم async و await در جاوا اسکریپت آشنا نباشید و ندانید که این ویژگی‌های برای چه به جاوا اسکریپت اضافه شدند. همان‌طور که می‌دانید جاوا اسکریپت یک زبان تک رشته‌ای است و امکان چندوظیفه‌ای در این زبان وجود ندارد؛ بنابراین وظایف مختلف در این زبان نمی‌توانند به صورت همزمان اجرا شوند و باید از راهکارهای موجود در این زبان برای همگام سازی وظایف استفاده کرد. callback ها یکی از راه‌حل‌هایی بودند که جاوا اسکریپت برای یادآوری وظایف در زمان معین استفاده می‌کرد؛ ولی این روش سختی‌های خاص خود را داشت و همیشه درست جواب نمی‌داد. بعد از مدتی promise ها جای خود  را در این زبان باز کردند و توانستند به شکل منضبط‌تر و هماهنگ‌تری فعالیت‌های همزمان را مدیریت کنند.   Async await در جاوا اسکریپت قابلیت جدیدی است که طی چند سال اخیر به این زبان افزوده شده و کار کردن با توابع ناهمگام را راحت‌تر کرده است. در این مقاله قصد داریم به بررسی Async await در جاوا اسکریپت بپردازیم و ببینیم که این افزونه چطور مشکل ناهمگامی توابع را حل کرده است.Async و  await در جاوا اسکریپتهمان‌طور که گفته شد در جاوا اسکریپت multitask وجود ندارد؛ بنابراین توابع باید پشت سر هم اجرا شوند. فرآیند‌های مختلفی وجود دارند که اجرای آن‌ها منوط به اجرای فرآیندهای قبلی است؛ مثلا برای محاسبه‌ی میانگین چند عدد ابتدا باید این اعداد با هم جمع شوند و خروجی آن بر تعداد اعداد تقسیم شود. برای میانگین گیری شما نمی‌توانید ابتدا عمل تقسیم را انجام دهید و سپس اعداد را با هم جمع کنید؛ چون به خروجی جمع برای تقسیم نیاز خواهید داشت. برای درک بهتر توابع آسنکرون به تصویر زیر دقت کنید.کاری که باید انجام شود این است که توابع با هم همگام شوند و ترتیب اجرای آن‌ها مشخص شود. این دقیقا همان کاری است که افزونه‌ی Async و  await در جاوا اسکریپت برای ما انجام می‌دهند. این افزونه بر اساس promise ها کار می‌کند. پس بهتر است قبل از پرداختن به مفهوم async و await در جاوا اسکریپت، promise ها را معرفی کنیم.Promise در جاوا اسکریپتPromise در جاوا اسکریپت به معنی عملیات غیرمتقارن است؛ یعنی عملیاتی که برای اجرا باید منتظر اجرای عملیات دیگری باشند. در واقع پرامیس یک شی نگهدارنده است که تابعی را به عنوان ورودی دریافت کرده و پس از اتمام اجرای آن، با یک تابع callback، فراخوانی می‌شود. یک پرامیس می‌توانید در یکی از سه وضعیت قرار بگیرد:Pending: وضعیت انتظار نیز گفته می‌شود و زمانی است که کدهای تابع هنوز به طور کامل اجرا نشده‌اند.Fulfilled: وضعیتی است که کدها به صورت کامل اجرا شده‌ و تابع تکمیل شده است.Rejected: در این وضعیت اجرای تابع بنا به دلایلی با شکست مواجه شده و تابع اجرا نشده است.کد زیر نمونه‌ای از ساخت یک پرامیس در جاوا اسکریپت را نشان می‌‌دهد.const p = new Promise(function(resolve , reject){// کدهای تابع که معمولاً به صورت آسنکرون اجرا می‌شوندif(success){resolve(value);}else{reject(error);}});در اینجا پرامیس از نوع شی تعریف شده که آرگومان ورودی آن یک تابع است. تابع function خود دو پارامتر ورودی با نام‌های resolve و reject دارد که هر کدام وضعیت‌های زیر را نشان می‌دهند:Resolve: اجرای موفقیت آمیز عملیات آسنکرون که به آن fulfilled نیز گفته می‌شود.Reject: شکست عملیات آسنکروناگر تابع در هر کدام از دو وضعیت بالا قرار گرفته باشد، اجرای متوقف شده و در نتیجه عمر پرامیس تعریف شده برای آن نیز به پایان می‌رسد.async در جاوا اسکریپتasync در جاوا اسکریپت برای توابع آسنکرون استفاده می‌شود. این ویژگی به صورت خودکار یک پرامیس برای تابع می‌سازد تا اجرای آن را مدیریت کند. نحوه‌ی ساخت یک async به شکل زیر است:async function f() {return 1;}این دستور باید قبل از دستور فانکشن نوشته شود و یک معنی ساده دارد؛ تابع همیشه یک پرامیس برمی‌گرداند. در صورتی که پرامیس به وضعیت تکمیل یا همان resolve برود، تابع مقدار یک را برمی‌گرداند. این کد را در نظر بگیرید:async function f() {return 1;}f().then(alert); // 1این کد را می‌توان به این صورت نیز نوشت:async function f() {return Promise.resolve(1);}f().then(alert); // 1بنابراین تابع async در جاوا اسکریپت تضمین می‌کند که یک پرامیس باید برگردانده شود؛ مگر اینکه اجرای آن با شکست مواجه شود. اما این تمام ماجرا نیست، دستور دیگری نیز وجود دارد که پس از آسینک اجرا می‌شود و Await نام دارد.await در جاوا اسکریپتبه بیان ساده Await در جاوا اسکریپت اجرای دستور Async را متوقف می‌کند. اگر Async نباشد، Await ای هم وجود نخواهد داشت. وقتی بعد از یک پرامیس از Await استفاده می‌شود، این دستور اجرای مابقی کدها را تا زمان تکمیل پرامیس متوقف می‌کند. می‌تواند گفت عملکرد دو مفهوم async و await در جاوا اسکریپت مکمل یکدیگرند. بد نیست بدانید تابع Await در جاوا اسکریپت فقط با پرومیس‌ها کار می‌کند و کاری به callbackها ندارد. سینتکس تابع await در جاوا اسکریپت به صورت زیر است:// works only inside async functionslet value = await promise;در نمونه‌ی زیر یک پرامیس داریم که در عرض یک ثانیه تکمیل می‌شود.let promise = new Promise((resolve, reject) =&amp;gt; {setTimeout&#40;(&#41; =&amp;gt; resolve(&quot;done!&quot;), 1000)});let result = await promise; // wait until the promise resolves (*)alert&#40;result&#41;; // &quot;done!&quot;}f();اجرای تابع بالا در خط کد (*) به حالت توقف می‌رود و زمانی مجددا اجرای کدها را ادامه می‌دهد که پرامیس به وضعیت resolve یا تکمیل رفته باشد. در نتیجه خروجی کد در یک ثانیه عبارت done! را نمایش خواهد داد. همان‌طور که گفته شد، await در جاوا اسکریپت، اجرای توابع را تا زمان تکمیل پرامیس متوقف می‌کند و بعد از کامل شدن تابع داخل پرامیس، اجرای کد را مجددا از سر می‌گیرد. اما، به این نکته توجه داشته باشید که این کار هیچ‌گونه اتلاف cpu ندارد؛ چون موتور جاوا اسکریپت در این زمان می‌توان به اجرای کارهای دیگری نظیر اجرای اسکریپت‌های دیگر، رسیدگی به ایونت‌ها و… بپردازد.مثال async await در جاوا اسکریپتبرای درک بهتر مفهوم async و await در جاوا اسکریپت یک مثال از کاربرد این افزونه در جاوا اسکریپت می‌زنیم تا شما بتوانید سادگی کار با این دو ویژگی را با ویژگی‌های promise و callback مقایسه کنید. قطعه کد زیر نحوه‌ی دریافت یک منبع JSON و تفکیک آن را نشان می‌دهد:const getFirstUserData = () =&amp;gt; {return fetch(&#x27;/users.json&#x27;) // get users list.then(response =&amp;gt; response.json()) // parse JSON.then(users =&amp;gt; users[]) // pick first user.then(user =&amp;gt; fetch(&#x60;/users/${user.name}&#x60;)) // get user data.then(userResponse =&amp;gt; userResponse.json()) // parse JSON}getFirstUserData()کد زیر همان تابع را با استفاده از async await در جاوا اسکریپت بازنویسی می‌کند:const getFirstUserData = async () =&amp;gt; {const response = await fetch(&#x27;/users.json&#x27;) // get users listconst users = await response.json() // parse JSONconst user = users[] // pick first userconst userResponse = await fetch(&#x60;/users/${user.name}&#x60;) // get user dataconst userData = await userResponse.json() // parse JSONreturn userData}getFirstUserData()همانطور که ملاحظه می‌کنید، استفاده از async await می‌تواند کدهای ما را ساده‌تر کند. نکته‌ی آخر از این مبحث اینکه توابع آسنکرون را می‌توان به راحتی پشت سر هم زنجیر کرد و سینتکس‌شان نیز بسیار ساده‌تر از زنجیره‌های پرامیس خواهد بود. به مثال زیر توجه کنید:const promiseToDoSomething = () =&amp;gt; {return new Promise(resolve =&amp;gt; {setTimeout&#40;(&#41; =&amp;gt; resolve(&#x27;I did something&#x27;), 10000)})}const watchOverSomeoneDoingSomething = async () =&amp;gt; {const something = await promiseToDoSomething()return something + &#x27;\nand I watched&#x27;}const watchOverSomeoneWatchingSomeoneDoingSomething = async () =&amp;gt; {const something = await watchOverSomeoneDoingSomething()return something + &#x27;\nand I watched as well&#x27;}watchOverSomeoneWatchingSomeoneDoingSomething().then(res =&amp;gt; {console.log(res)})مدیریت ارورها در Async Awaitمدیریت ارورها یکی دیگر از قابلیت‌های افزونه‌ی Async Await است که به شما این امکان را می‌دهد هر گونه خطایی را به داخل ساختار try…catch ارسال کنید. به عنوان مثال:function thisThrows() {throw new Error(&quot;Thrown from thisThrows()&quot;);}try {thisThrows();} catch (e) {console.error(e);} finally {console.log(&#x27;We do cleanup here&#x27;);}// Output:// Error: Thrown from thisThrows()//   ...stacktrace// We do cleanup hereکد بالا یک دستور ساده‌ی try… catch را نشان می‌دهد که در آن تابع thisThrows() یک خطا را throw کرده و ما آن را catch می‌کنیم و در بلوک finally یک کد اختیاری برای آن اجرا می‌کنیم. این تابع را می‌توان با کمک مفهوم async و await در جاوا اسکریپت به شکل زیر پیاده سازی کرد:async function thisThrows() {throw new Error(&quot;Thrown from thisThrows()&quot;);}async function run() {try {await thisThrows();} catch (e) {console.error(e);} finally {console.log(&#x27;We do cleanup here&#x27;);}}run();// Output:// Error: Thrown from thisThrows()//   ...stacktrace// We do cleanup hereهمانطور که ملاحظه می‌کنید، استفاده از async و awaitبرای اینکار کار پیاده سازی را راحت‌تر کرده و باعث خوانایی بیشتر و درک بهتر کد می‌شود.پشتیبانی مرورگرهاEcmascript 2017 دو کلمه‌ی کلیدی async و await را معرفی کرد. در شکل زیر نسخه‌های مرورگرهایی که از این افزونه پشتیبانی می‌کنند را ملاحظه می‌کنید.سخن پایانیدو مفهوم async و await در جاوا اسکریپت در کنار یکدیگر چارچوبی عالی برای نوشتن و اجرای کدهای آسنکرون یا غیرهمزمان ارائه می‌دهند و خواندن و نوشتن‌شان نیز بسیار ساده است. به طور خلاصه کلمه کلیدی async دو ویژگی اصلی دارد:همیشه یک پرامیس برمی‌گرداندبه await اجازه می‌دهد تا از آن استفاده کنید.از سوی دیگر await قبل از اجرای کامل پرامیس به کدهای جاوا اسکریپت ایست می‌دهد تا مطمئن شود که:اگر خطایی رخ داد، یک exception ایجاد شود.و اگر پرامیس کامل شد مقدار خروجی را برگرداند.با کمک این دو افزونه ما به ندرت نیاز به نوشتن زنجیره‌ی پرامیس‌های پشت سر هم خواهیم داشت؛ ولی فراموش نکنید که این دو مفهوم نیز از پرامیس استفاده می‌کنند و گاهی ممکن است ناچار به استفاده از این زنجیره‌ها شویم.سوالات متداولآیا مفهوم async و await در جاوا اسکریپت از نوع blocking هستند؟تنها await از نوع blocking است و اجرای کدهای جاوا اسکریپت را تا قبل از تکمیل تابع Async بلوکه می‌کند. این کار برای این است که مطمئن شود، هر آنچه لازم بوده اجرا شده و می‌توان مابقی برنامه‌ی نوشته را اجرا کرد.آیا می‌توان از async بدون await استفاده کرد؟این امکان وجود دارد که شما Async را به تنهایی به کار ببرید؛ ولی باید این نکته را در نظر داشته باشید که در صورت اجرای async بدون await، کدهای شما به صورت non blocking به اجرای خود ادامه خواهند داد و تابعی برای تابع دیگر منتظر نخواهد ماند.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 15:51:10 +0330</pubDate>
            </item>
                    <item>
                <title>کد پاپ آپ Html</title>
                <link>https://virgool.io/@green_python/popapandhtml-mcsfw1os4jhh</link>
                <description>کد پاپ آپ Html اگر با وب سایت های مختلف سر و کار داشته باشید و روزانه به وب سایت های متفاوتی مراجعه کنید، قطعا یک باکسی (Box) مشاهده کرده اید که برای نمایش پیغام خاصی باز می شود.به همین باکس یا صفحه ای که برای نمایش پیغام یا اطلاعیه خاصی باز می شود، پاپ آپ گفته می شود که در وب سایت های مختلف می تواند کاربرد های جالبی داشته باشد.آنچه در این مقاله خواهید خواندپاپ آپ چیست و چطور ساخته می شود؟چرا به پاپ آپ نیاز داریم؟پاپ آپ های ساده با زبان جاوا اسکریپتتکه کد پاپ آپ Html و Cssکد پاپ آپ Html و Css با استفاده از کتابخانه هادر این مقاله سورس کد پاپ آپ Html را به روش های مختلفی پیاده سازی پیاده سازی می کنیم تا شما عزیزان بتوانید در وب سایت هایی که توسعه می دهید، در صورت نیاز از پاپ آپ های مختلفی استفاده بکنید.پاپ آپ چیست و چطور ساخته می شود؟همان طور که در قسمت قبلی گفته شد، پاپ آپ (Pop Up) همان پنجره ها و باکس هایی است که در هر وب سایتی برای نمایش اطلاعیه، پیغام و خبر خاصی به کاربر استفاده می شود.در حوزه برنامه نویسی وب، می توان پاپ آپ ها را به کمک زبان های Html و Css طراحی کرد و سپس با زبان برنامه نویسی جاوا اسکریپت در هر زمان و موقعیت دلخواهی آن ها را نمایش داد.چرا به پاپ آپ نیاز داریم؟در هر کدام از وب سایت های فروشگاهی، آموزشی، مجله ای و … ممکن است در موقعیت ها و شرایط خاصی نیاز داشته باشید که اطلاعیه یا پیغام خاصی را به کاربر نمایش دهید.در همچین حالتی اگر در همان تب (Tab) که کاربر به وب سایت شما مراجعه کرده است صفحه ای دیگر باز کنید، کاربر محتوای اصلی وب سایت را از دست داده و کمی از وب سایتتان دلخور و ناراحت می شود.برای مواجه نشدن با همچین مشکلی، از صفحات پاپ آپ استفاده می کنیم.اما توجه داشته باشید که استفاده بیش از حد از صفحات پاپ آپ نارضایتی و اعتراض کاربران را به دنبال دارد. حتی کاربران به آن دسته از وب سایت هایی که استفاده زیادی از پاپ آپ می کنند علاقه ای نداشته و حد الامکان سعی می کنند به آن ها مراجعه نکنند. پس سعی کنید استفاده صفحات پاپ آپ را به حداقل برسانید و تا زمانی که به پاپ آپ نیازی نداشتید، از آن استفاده نکنید.پاپ آپ های ساده با زبان جاوا اسکریپتشما با زبان برنامه نویسی جاوا اسکریپت خالی (خام و بدون استفاده از کتابخانه یا فریمورک) نیز می توانید پاپ آپ هایی را پیاده سازی کنید، اما پاپ آپ های بسیار ساده و خشک.جاوا اسکریپت برای ساخت پاپ آپ 3 متد alert، confirm و prompt را در اختیار شما قرار می دهد که در ادامه به نحوه استفاده از هر کدام می پردازیم.متد alert برای ساخت پاپ آپمتد alert از شما یک مقداری را به عنوان ورودی دریافت کرده و آن را در یک باکس خشک و خالی نمایش می دهد:JavaScriptalert&#40;&#039;متن پیغام در این قسمت نوشته می شود&#039;&#41;با اجرای متد alert صفحه ای مثل تصویر زیر به کاربر نمایش داده می شود:متد confirm برای ساخت پاپ آپاز متد confirm زمانی استفاده می شود که قصد داشته باشید سوالی را از کاربر بپرسید که جواب آن فقط “بله” یا “خیر” باشد که اصطلاحا به این دسته از سوالات Yes / No Question گفته می شود. متد confirm نیز مثل متد alert یک مقداری (سوالی) را از شما دریافت کرده و آن را همراه با دکمه هایی Ok و Cancel به کاربر نمایش می دهد که کاربر می تواند یکی از دکمه ها را به عنوان پاسخ انتخاب کند:confirm&#40;&#x27;آیا مایل به حذف آیتم های انتخاب شده هستید؟&#x27;&#41;با اجرای این کد باکسی مثل شکل زیر به کاربران وب سایت شما نمایش داده می شود:متد prompt برای ساخت پاپ آپمتد prompt نیز یکی از متد های نمایش پاپ آپ است و زمانی استفاده می شود که قصد دریافت اطلاعاتی مثل نام، سن، آدرس، شماره تماس و … از کاربر را داشته باشیم. پس در این روش یک اینپوت هم برای وارد کردن اطلاعات به کاربر نمایش داده می شود.متد prompt دو عدد ورودی دارد که اولی عنوان یا همان تایتل پاپ آپ است و ورودی دوم آن مقدار دیفالت (پیش فرض) است:prompt&#40;&#039;Please Enter Your Age: &#039;, 18&#41;به همین راحتی. با اجرا کردن تکه کد بالا، پاپ آپ زیر را خواهیم داشت:ساخت پاپ آپ با متد openروش بعدی ساخت پاپ آپ استفاده از متد window.open در جاوا اسکریپت است اما از آن جایی که نحوه نمایش و عملکرد این متد با 3 متد قبلی کمی متفاوت است، این متد را در دسته متد های قبلی قرار ندادیم.مرورگری که باز می کنید، یک window یا همان پنجره است. شما می توانید پاپ آپ های خودتان را به صورت پنجره جداگانه از وب سایتتان نمایش دهید.برای درک بهتر نحوه نمایش این روش، سایت های تبلیغاتی را در نظر بگیرید که وقتی به آن ها مراجعه می کنید چندین صفحه با عناوین تخفیف، برنده شدید و … برای شما باز می شود.نحوه عملکرد متد open نمایش همین صفحات است.1window.open(&#x27;https://www.sabzlearn.ir&#x27;, &#x27;آکادمی تخصصی آموزش برنامه نویسی و شبکه&#x27;, &quot;height=600, width=800&quot;);با اجرای تکه کد بالا، وب سایت سبزلرن یا هر لینکی که شما تعیین کرده باشید در یک صفحه جداگانه به عنوان پاپ آپ با طول و عرض تعیین شده برای کاربران نمایش داده می شود.اما مشکلی که روش های ذکر شده دارند این است که ظاهر کاربر پسند، جذاب و جالبی ندارند و ما اختیاری در نحوه نمایش آن ها نداریم.پس راه چاره چیست؟تکه کد پاپ آپ Html و Cssخبر خوب این است که شما می توانید پاپ اپ های خود را با زبان های Html و Css با حالت display: none طراحی کرده و به کمک زبان جاوا اسکریپت در هر لحظه و موقعیتی که نیاز داشتید آن را از حالت display: none دربیاورید تا به کاربر نمایش داده شود.تکه کد زیر با Html، Css و Js برای نمایش پاپ آپ نوشته شده است که می توانید از آن در وب سایت های خود استفاده کنید:&lt;style&gt;.mwsModal {text-align: right;direction: rtl;font-family: tahoma;font-size: 12px;position: fixed;z-index: 1;padding-top: 100px;left: ;top: ;width: 100%;height: 100%;overflow: auto;background-color: rgb(0, 0, );background-color: rgba(0, 0, 0, 0.4);}.mwsModal-content {position: relative;background-color: #fefefe;margin: auto;padding: ;border: 1px solid #888;width: 50%;border-radius: 8px;-webkit-animation-name: animatetop;-webkit-animation-duration: 0.4s;animation-name: animatetop;animation-duration: 0.4s;}@-webkit-keyframes animatetop {from {top: -300px;opacity: ;}to {top: ;opacity: 1;}}@keyframes animatetop {from {top: -300px;opacity: ;}to {top: ;opacity: 1;}}.close {color: white;float: left;font-size: 22px;font-weight: bold;margin-top: 3px;margin-left: -5px;}.close:hover,.close:focus {color: #000;text-decoration: none;cursor: pointer;}.mwsModal-header {padding: 2px 16px;background-color: #c90000;color: white;border-radius: 5px 5px  ;border-bottom: 3px solid #7f0000;}.mwsModal-body {padding: 2px 16px;}.mwsModal-footer {padding: 2px 16px;background-color: #404040;color: white;border-radius:   5px 5px;}&lt;/style&gt;&lt;body&gt;&lt;div id=&quot;alert&quot; class=&quot;mwsModal&quot;&gt;&lt;div class=&quot;mwsModal-content&quot;&gt;&lt;div class=&quot;mwsModal-header&quot;&gt;&lt;span class=&quot;close&quot;&gt;&amp;times;&lt;/span&gt;&lt;h2 style=&quot;font-family: tahoma; font-size: 12px; font-weight: bold&quot;&gt;عنوان اطلاعیه&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;mwsModal-body&quot;&gt;&lt;p style=&quot;text-align: justify; direction: rtl; line-height: 200%&quot;&gt;&lt;b&gt;پاپ آپ برای نمایش اطلاعیه به کاربران&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و بااستفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله درستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز،و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهایزیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه ومتخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحانرایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجادکرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائهراهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شاملحروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجودطراحی اساسا مورد استفاده قرار گیرد.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;mwsModal-footer&quot;&gt;&lt;h3 style=&quot;font-family: tahoma; font-size: 10px; font-weight: normal&quot;&gt;طراحی و کدنویسی شده توسط&lt;ahref=&quot;http://miladworkshop.ir&quot;target=&quot;_blank&quot;style=&quot;color: #ffffff; text-decoration: none&quot;&gt;سبزلرن&lt;/a&gt;&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;var alertModal = document.getElementById(&quot;alert&quot;);var btn = document.getElementById(&quot;myBtn&quot;);var span = document.getElementsByClassName(&quot;close&quot;)[];span. = function () {alertModal.style.display = &quot;none&quot;;}; = function (event) {if (event.target == alertModal) {alertModal.style.display = &quot;none&quot;;}};&lt;/body&gt;کد پاپ آپ Html و Css با استفاده از کتابخانه هابرای پیاده سازی پاپ آپ و نوتیفیکشن به کاربران وب سایتتون میتونین از کتابخونه هایی که برای این کار وجود دارن هم استفاده کنین.از این کتابخونه های میشه به sweetAlert، iziToast و … اشاره کرد. استفاده از کتابخونه ها می توانند به کد نویسی شما سرعت ببخشند.سخن پایانیدر این مقاله سعی کردیم در مورد نحوه نوشتن کد پاپ آپ Html Css و همچنان جاوا اسکریپت و نحوه استفاده از آن صحبت کنیم و امیدواریم برای شما عزیزان مفید بوده باشد.برای درک بهتر این مفاهیم، پیشنهاد می کنم ویدئوی مربوط به این مقاله را مطالعه کرده و در صورت وجود هر گونه ابهام و سوال، برامون کامنت کنید.تا مقاله بعدی خدانگهدار</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 15:38:59 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی سلکتور های css</title>
                <link>https://virgool.io/@green_python/selektortocss-stqycryildau</link>
                <description>معرفی سلکتور های Cssآنچه در این مقاله خواهید خواندمعرفی سلکتور های Cssدسته بندی سلکتور های Cssسلکتور های اولیه در Cssسلکتور گروه بندی در Cssسلکتور های ترکیبیسلکتور های Css بر اساس اتربیوتشبه کلاس ها و المنت های مجازی در Cssسخن پایانیهمان طور که می دانید Css یکی از تکنولوژی های مرتبط با حوزه برنامه نویسی است که در زمینه توسعه فرانت اند وب مورد استفاده قرار می گیرد.در Css انتخابگر های مختلفی وجود دارد که ساده ترین آن ها class و id هستند و همه شما عزیزان با آن ها آشنا هستید. اما سلکتور (انتخابگر) های Css به همین دو مورد محدود نمی شوند، بلکه سلکتور های بسیار زیاد دیگه ای نیز در Css وجود دارند که به عنوان برنامه نویس فرانت اند باید به اندازه کافی با آن ها کار کرده و تسلط کافی را داشته باشید.یادگیری بیشتر سلکتور های Css به شما کمک می کنند با آمادگی بیشتر طراحی یک وب سایت را شروع کنید و موقع توسعه فرانت اند اذیت نشوید.در این مقاله به معرفی سلکتور های Css می پردازیم.دسته بندی سلکتور های Cssهمان طور که می دانید Css سلکتور های زیادی دارید. از این رو برای شناختن آسان تر، آن ها را دسته بندی می کنیم. سلکتور های Css به طور کلی به دسته های زیر تقسیم می شوند:سلکتور های اولیهسلکتور گروه بندیسلکتور های ترکیبیسلکتور بر اساس صفت (Attribute)شبه کلاس هاالمنت های مجازیدر ادامه مقاله هر کدام از سلکتور ها را به طور مفصل مورد بررسی قرار می دهیم.سلکتور های اولیه در Cssتوسط این دسته از سلکتور های Css که احتمالا همه شما با آن ها آشنا هستید، می توانیم المنت یا المنت هایی را به کمک اسم Tag، اسم Class و یا اسم ID انتخاب بکنیم.اولین سلکتوری که می خواهیم از این دسته یاد بگیریم، سلکتور سراسری یا همان Universal نام دارد که تمام المنت های Html را انتخاب می کنید.به تکه کد زیر توجه کنید* {color: red;}همان طور که مشاهده می کنید، از سلکتور * استفاده کرده ایم. این سلکتور تمامی المنت های موجود در صفحه Html را انتخاب کرده و استایل هایی که داخل { } نوشته شدند را برای آن ها اعمال می کنید.سلکتور بعدی حالتی است که قصد داشته باشید المنت هایی که اسم مشخصی دارند را انتخاب کنیم. به عنوان مثال فرض کنید در یک صفحه Html یک تگ ul داریم که داخل آن 5 تگ li موجود هست.برای انتخاب تمام تگ ها li، از خود اسم تگ استفاده می کنیم که به همچین سلکتوری سلکتور Type گفته می شود.مثل تکه کد زیر:li {/* استایل های مورد نظر شما */}حال اگر بخواهید در کنار li المنت های دیگری را نیز انتخاب کنید، باید به شکل زیر عمل بکنید:a {/* استایل های مورد نظر شما برای لینک ها */}p {/* استایل های مورد نظر شما برای پاراگراف ها */}ul {/* استایل های مورد نظر شما برای لیست های غیر ترتیبی */}li {/* استایل های مورد نظر شما برای آیتم های لیست ها */}به همین راحتی ?حال اگر بخواهید المنتی را توسط اسم کلاسی که دارد انتخاب کنید، باید از سلکتوری که اصطلاحا Class Selector نام دارد استفاده کنید.فرض کنید در صفحه Html یک تگ div با کلاسی به اسم box داریم. برای انتخاب این المنت به کمک Class Selector به روش زیر عمل می کنیم:.box {width: 20em;}همان طور که مشاهده می کنید، برای انتخاب با اسم کلاس باید قبل از نوشتن آن یک کاراکتر (.) قرار می دهیم. حال فرض کنید چندین المنت با کلاس box داریم. در این صورت با نوشتن تکه کد بالایی تمامی المنت هایی که کلاس box دارند انتخاب می شوند و هر استایلی که در Css برای آن ها در نظر بگیرید، برای تمامی المنت ها اعمال می شود.سلکتور بعدی ID Selector نام دارد و همان طور که از اسم آن مشخص است زمانی استفاده می شود که قصد داشته باشید المنتی را به کمک اسم آیدی که دارد انتخاب کنیم.به عنوان مثال فرض کنید در صفحه Html المنتی با آیدی header داریم که می خواهیم به کمک Css استایل هایی را برای آن در نظر بگیریم. در همچین حالتی به شکل زیر عمل می کنیم:#header {background-color: green;}همان طور که مشخص است دقیقا مثل Class Selector عمل می کنیم. با این تفاوت که برای انتخاب با آیدی، قبل از اسم آیدی به جای . از هشتگ (#) استفاده می کنیم.سلکتور گروه بندی در Cssطبق سلکتور هایی که در قسمت قبل یاد گرفتید، فرض کنید تکه کد زیر را در Css پیاده سازی کرده ایم:.info {margin: 41px 22px 12px 20px;padding: 29px;color: red;background-color: green;display: flex;}.success {margin: 41px 22px 12px 20px;padding: 29px;color: blue;background-color: green;display: flex;}.error {margin: 41px 22px 12px 20px;padding: 29px;color: green;background-color: green;display: flex;}همان طور که مشاهده می کنید سه دسته از المنت ها را با کلاس info, success و error انتخاب کردیم و تقریبا استایل های یکسانی به همه آن ها اعمال کردیم و تنها تفاوتی که دارند پروپرتی color است.برنامه نویس ها سعی می کنند همیشه بهترین و سریع ترین راه را انتخاب کنند تا از تکرار بپرهیزند. اما در تکه کد بالا 4 خط کد را 3 بار عینا تکرار کردیم!برای سرعت توسعه بیشتر و انتخاب راحت تر، می توانیم سلکتور ها را در کنار هم دسته بندی کرده و استایل هایی از المنت ها که یکسان هستند را فقط یک بار بنویسیم و برای همه آن ها اعمال شود.برای دسته بندی سلکتور های Css به روش زیر عمل می کنیم:&lt;div&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;.error, .info, .success {   margin: 41px 22px 12px 20px;   padding: 29px;   color: green;   background-color: green;   display: flex; }&lt;/div&gt;.error, .info, .success {margin: 41px 22px 12px 20px;padding: 29px;color: green;background-color: green;display: flex;}به همین راحتی و خوشمزگی. همان طور که متوجه شدید برای جدا کردن سلکتور های مختلف از کاراکتر کاما (,) استفاده می کنیم. اما اگر به کد قبلی نگاهی بیندازید، مشاهده خواهید کرد که پروپرتی color برای هر کدام از سلکتور ها متفاوت بود! برای color باید چطور عمل کنیم؟! خیلی راحت. مثل کد زیر:.error, .info, .success {margin: 41px 22px 12px 20px;padding: 29px;color: green;background-color: green;display: flex;}.info {color: red;}.success {color: blue;}.error {color: green;}به همین راحتی می توانیم استایل های یکسان را در یک دسته قرار داده و برای استایل هایی که متفاوت هستند را به طور جداگانه اعمال می کنیم.در تکه کد های بالا همه سلکتور هایی که دسته بندی کرده ایم با کلاس هستند. ممکن است برایتان سوال باید که برای دسته بندی کردن سلکتور ها، حتما باید از یک نوع باشند؟جواب این سوال منفی است. شما می توانید سلکتور های مختلفی را در یک دسته قرار دهید.به عنوان مثال در تکه کد زیر سه سلکتور ID، Class و Type را در یک دسته قرار داده ایم:.error, #info, li {margin: 41px 22px 12px 20px;padding: 29px;color: green;background-color: green;display: flex;}#info {color: red;}.error {color: blue;}li {color: green;}خب اینم از این.سلکتور های ترکیبیممکن است در دنیای وب دیده باشید که در فایل های Css چندین سلکتور را در کنار همدیگر می نویسند. به همچین حالتی اصطلاحا ترکیب سلکتور ها گفته می شود.ممکن است در یک صفحه Html چندین تگ p داشته باشیم اما فقط بخواهیم تگ های p را انتخاب کنیم که داخل تگ div قرار دارند. به عنوان مثال تکه کد Html زیر را در نظر بگیرید:&lt;p&gt;Text 1&lt;/p&gt;&lt;div&gt;&lt;p&gt;Text 2&lt;/p&gt;&lt;p&gt;Text 3&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Text 4&lt;/p&gt;قصد داریم فقط دو تا تگ p که داخل div قرار دارند را انتخاب کنیم. در همچین حالتی از سلکتور نسل (سلکتور Descendant) استفاده می کنیم. مثل تکه کد زیر:div p {color: red;}مفهوم همچین سلکتوری این است که فقط تگ های p را انتخاب کند که داخل تگ div قرار دارند. می توانیم با سلکتور نسل حتی بیشتر از والد پیش رویم. به عنوان مثال کد Html زیر را در نظر بگیرید:&lt;ul&gt;&lt;li&gt;List 1&lt;/li&gt;&lt;li&gt;List 2&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;List 1&lt;/li&gt;&lt;li&gt;List 2&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;در همچین تکه کد Html فرض کنید می خواهیم آن دسته از تگ های li را انتخاب کنیم که داخل ulی قرار دارند که داخل div است! (پیچیده نیستا :))div ul li {color: red;}دیدید پیچیده نیست؟!اما سلکتور نسل نه تنها فرزندان مستقیم را انتخاب می کند، بلکه نوه هایش را نیز انتخاب می کند. تکه کد زیر را در نظر بگیرید:&lt;nav&gt;&lt;p&gt;Text 1&lt;/p&gt;&lt;div&gt;&lt;p&gt;Text 2&lt;/p&gt;&lt;/div&gt;&lt;/nav&gt;اگر برای تکه کد بالا کد Css زیر را بنویسیم:nav p {color: red;}حتی تگ های p را که داخل تگ div هستند را نیز انتخاب می کند (این تگ های p همان نوه های تگ nav هستند). اما ممکن است در پروژه ای قصد داشته باشید فقط و فقط فرزند های مستقیم والدی را انتخاب کنید.برای همچین حالتی از سلکتور فرزند یا همان Child Selector استفاده می کنیم.به عنوان مثال در تکه کد Html بالا اگر بخواهیم فقط فرزندان مستقیم تگ nav را انتخاب کنیم، به شکل زیر عمل می کنیم:nav &gt; p {color: red;}با همچین کدی فقط تگ های p که فرزند مستقیم nav هستند انتخاب شده و رنگ آن ها قرمز می شود و تگ های p که div هستند انتخاب نمی شوند. به همین راحتی.علاوه بر این دو سلکتور، ممکن است حالتی باید که نیاز داشته باشید خواهر یا برادر یک المنت را انتخاب کنید. یعنی المنتی را انتخاب کنید که دقیقا در کنار المنت مورد نظر شما قرار دارد. به همچین سلکتوری Adjacent Sibling Selector گفته می شود.به تکه کد زیر توجه کنید:&lt;h1 id=&amp;quothead&amp;quot&gt;Text 1&lt;/h1&gt;&lt;h1&gt;میخوایم این المنت رو انتخاب کنیم&lt;/h1&gt;&lt;h1&gt;Text 2&lt;/h1&gt;&lt;h1&gt;Text 3&lt;/h1&gt;اصطلاحا به این h1 ها که داخل یک والد و در کنار هم قرار دارند، خواهر برادر گفته میشه. حال فرض کنید می خواهیم به کمک h1 با آیدی head، تگ h2 بعدی را انتخاب کنیم.در این حالت به شکل زیر عمل می کنیم:#head + h1 {color: red;}همچین سلکتوری یعنی دقیقا آن تگ h2 را انتخاب کن که بعد از المنت با آیدی head قرار دارد. با همچین تکه کد Css فقط رنگ المنت h2 دوم قرمز خواهد شد.اما این سلکتور نیز ممکن است در برخی از موقعیت ها نیاز شما را برطرف نکند. چون ممکن است قصد داشته باشید تمام خواهر و برادر های المنت مورد نظرتان را انتخاب کنید، در حالی که Adjacent Sibling Selector فقط المنت هم سطح بعدی را انتخاب می کند.برای انتخاب همه داداشا و آبجیای یه المنت، از سلکتوری به اسم General Sibling Selector استفاده می کنم. به عنوان مثال تکه کد Html زیر را در نظر بگیرید:&lt;div&gt;&lt;h1 id=&amp;quothead&amp;quot&gt;Text 1&lt;/h1&gt;&lt;h1&gt;میخوایم این المنت رو انتخاب کنیم&lt;/h1&gt;&lt;h1&gt;Text 2&lt;/h1&gt;&lt;h1&gt;Text 3&lt;/h1&gt;&lt;p&gt;Paragraph1&lt;/p&gt;&lt;h1&gt;Text 4&lt;/h1&gt;&lt;p&gt;Paragraph2&lt;/p&gt;&lt;h1&gt;Text 5&lt;/h1&gt;&lt;/div&gt;قصد داریم تمام آبجی و داداشای المنت با آیدی head که h1 باشند را انتخاب کنیم. المنت h1 اول با آیدی head چند تا خواهر برادر به اسم h1 دارد؟ 5 تا.اگر بخواهیم تمام آن ها را انتخاب کنیم، به شکل زیر عمل می کنیم:#head ~ h1 {color: red;}بعد از این سلکتور ها به سلکتور concat می رسیم که می توانیم به کمک آن چندین سلکتور را به هم دیگر بچسبانیم.فرض کنید چند تگ p و h1 با کلاس های یکسان دارید اما قصد دارید که می خواهید فقط تگ های p با کلاس خاص را انتخاب کنید. به عنوان مثال به تکه کد زیر توجه کنید:&lt;div&gt;&lt;h1 class=&amp;quottext&amp;quot id=&amp;quothead&amp;quot&gt;Text 1&lt;/h1&gt;&lt;h1 class=&amp;quottext&amp;quot&gt;میخوایم این المنت رو انتخاب کنیم&lt;/h1&gt;&lt;h1 class=&amp;quottext&amp;quot&gt;Text 2&lt;/h1&gt;&lt;h1 class=&amp;quottext&amp;quot&gt;Text 3&lt;/h1&gt;&lt;p class=&amp;quottext&amp;quot&gt;Paragraph1&lt;/p&gt;&lt;h1 class=&amp;quottext&amp;quot&gt;Text 4&lt;/h1&gt;&lt;p class=&amp;quottext&amp;quot&gt;Paragraph2&lt;/p&gt;&lt;h1 class=&amp;quottext&amp;quot&gt;Text 5&lt;/h1&gt;&lt;/div&gt;در همچین حالتی اگر بخواهیم فقط برای تگ های p که کلاس text دارند استایل مورد نظرمان را اعمال کنیم، نمی توانیم از Class Selector استفاده کنیم. چون که در این صورت تگ های h1 هم استایل ها را خواهند گرفت.پس در همچین حالتی از اتصال سلکتور ها به همدیگر استفاده می کنیم. به تکه کد زیر توجه کنید:p.text {color: red;}به همین راحتی. دو سلکتور Type و Class را به همدیگر چسبانده و فقط برای تگ های p رنگ قرمز اعمال کردیم که کلاس text دارند.سلکتور های Css بر اساس اتربیوتهمان طور که می دانید تگ های input در Html اتربیوت هایی مثل type، placeholder و value دارند. حال فرض کنید چند input با اتربیوت های مختلف دارید و می خواهید فقط و فقط input هایی را انتخاب کنید که مثلا type آن ها password باشد. در همچین حالتی از Attribute Selector استفاده می کنیم.اگر بخواهیم از این دسته از سلکتور ها در Css استفاده کنیم، صفت مورد نظرمان را داخل براکت ([ ]) قرار می دهیم.به عنوان مثال فرض کنید می خواهیم تمام المنت هایی که صفت class دارند را انتخاب کنیم. باید طبق کد زیر عمل کنیم:[class] {color: red;}با همین تکه کد Css، تمام المنت هایی که اتربیوت class را داشته باشند قرمز رنگ خواهند شد.حال فرض کنید می خوانیم آن دسته از تگ های h1 را انتخاب کنیم که کلاس text دارند. طبق کد زیر عمل می کنیم:h1[class = &amp;quottext&amp;quot] {color: red;}به همین راحتی.حال قصد داریم المنت های input را انتخاب کنیم که type آن ها password باشد. باید طبق کد زیر پیش رویم:input[type = &amp;quotpassword&amp;quot] {color: red;}یا به عنوان مثال قصد داریم تگ های a که اتربیوت target آن ها برابر با _blank است را انتخاب کنیم. طبق کد زیر عمل می کنیم:a[target=&amp;quot_blank&amp;quot] {text-decoration: underline;}حال ممکن است بخواهیم بنا به اتربیوت های المنت آن را انتخاب کنیم اما نخواهیم اتربیوت مورد نظر ما دقیقا برابر با مقدار خاصی باشد. مثلا در موقعیت قرار گرفتیم که می خواهیم input هایی که اتربیوت name آن ها را user شروع می شوند را انتخاب کنیم. در همچین حالتی در کنار کاراکتر مساوی (=) که داخل براکت استفاده می کنیم، یک کاراکتر کَرِت (^) نیز قرار می دهیم. به تکه کد زیر توجه کنید:&lt;div&gt;&lt;br class=&amp;quotApple-interchange-newline&amp;quot&gt;input[type^=&amp;quotuser&amp;quot] {     border-radius: 12px; }&lt;/divinput[type^=&amp;quotuser&amp;quot] {border-radius: 12px;}این سلکتور می تواند بیشتر برای تگ های a مورد استفاده قرار بگیرد. همان طور که می دانید تگ های a اتربیوتی با عنوان href دارند که می تواند آدرس اینترنتی یا # باشد. فرض کنید قصد داریم تمام تگ های a که href آن ها لینک خارجی هستند را انتخاب کرده و استایل های خاصی را برای آن ها اعمال کنیم. همان طور که می دانید لینک ها با https شروع می شوند. پس سلکتور مورد نیاز با به صورت زیر خواهد بود:a[href^=&amp;quothttp://&amp;quot] {color: red;}به همین راحتی و خوشمزگی.حال ممکن است حالتی بخواهید المنتی را به کمک اتربیوت انتخاب کنید که مقدار اتربیوت مورد نظر شما با کلمه خاصی تمام شود. به عنوان مثال کلمات userName، adminName و secretaryName را در نظر بگیرید که ممکن است برای صفت name، id یا class چند input تعیین کنید و سپس به آن ها استایل دهید. در همچین حالتی باید اینپوت هایی را انتخاب کنیم که مثلا صفت class آن ها با کلمه Name تمام می شوند. پس طبق کد زیر عمل می کنیم:input[class$=&amp;quotName&amp;quot] {}یعنی دقیقا مثل حالت قبل عمل می کنیم، با این تفاوت که به جای ^ از کاراکتر $ استفاده می کنیم. این هم از این سلکتور. بریم سراغ سلکتور بعدی (مگه Css اینقد سلکتور داشت آخه؟ :))در سلکتور های قبلی می توانیم کل اتربیوت یا ابتدا و انتهای اتربیوت خاصی را بررسی کرده و المت مورد نظرمان را انتخاب کنیم. اما ممکن است حالتی پیش بیاید که بخواهیم المنت هایی را انتخاب کنیم که در فلان اتربیوتش کلمه ای وجود داشته باشد (مهم نیست که کلمه مورد نظر ما در اول، وسط یا انتهای مقدار اتربیوت باشد). در همچین حالتی به جای علامت های ^ و $ از علامت * استفاده می کنیم.تکه کد Html زیر را در نظر بگیرید:&lt;div&gt;&lt;img src=&amp;quotimg.jpg&amp;quot alt=&amp;quotbox1&amp;quot /&gt;&lt;img src=&amp;quotimg_thumbnail-for-box.png&amp;quot alt=&amp;quotbox2&amp;quot /&gt;&lt;img src=&amp;quotimg_thumbnail-test.png&amp;quot alt=&amp;quotbox3&amp;quot /&gt;&lt;img src=&amp;quotimg_thumbnail.jpg&amp;quot alt=&amp;quotbox4&amp;quot /&gt;&lt;img src=&amp;quotimg_thumbnail-five.jpg&amp;quot alt=&amp;quotbox5&amp;quot /&gt;&lt;/div&gt;حال فرض کنید قصد داریم آن دسته از المت های img را انتخاب کنیم که در اتربیوت src آن ها کلمه thumbnail وجود داشته باشد. در همچین حالتی طبق تکه کد زیر عمل می کنیم:img[src*=&amp;quotthumbnail&amp;quot] {border-radius: 100px;}سلکتور بعدی برای حالتی است که مقدار اتربیوت مورد نظر ما دارای کاراکتر Dash یا همان خط تیره (-) باشد. به عنوان مثال کد Html زیر را در نظر بگیرید:&lt;html lang=&amp;quotfa-IR&amp;quot&gt;&lt;/html&gt;همان طور که مشاهده می کنید، در مقدار اتربیوت lang یک کاراکتر (-) وجود دارد. اگر بخواهیم المنت html را به کمک کلمه قبل از – در اتربیوت lang انتخاب کنیم، به شکل زیر عمل می کنیم:html[lang|=&amp;quotfa&amp;quot] {}البته همان طور که قبل تر یاد گرفتید، در همچین حالتی می توان به روش زیر نیز عمل کرد:html[lang^=&amp;quotfa-&amp;quot] {margin: ;padding: ;}و اما نکته آخر این است که می توانیم چندین اتربیوت را در کنار هم نیز قرار دهیم. به عنوان مثال قصد داریم آن دسته از المنت های input را انتخاب کنیم که type آن ها password بوده و name آن ها با کلمه user شروع شود. در همچین حالتی طبق کد زیر عمل می کنیم:input[type=&amp;quotpassword&amp;quot][name^=&amp;quotuser&amp;quot] {border: 2px solid lightgray;}شبه کلاس ها و المنت های مجازی در Cssتا همین قسمت تعداد بسیار زیادی از سلکتور های Css را برای شما عزیزان معرفی کردیم که قطعا با خیلی از آن ها آشنا نبودید. در این قسمت قصد داریم به معرفی شبه کلاس ها و المنت های مجازی بپردازیم که دسته ای از سلکتور های Css محسوب می شوند. اما از آن جایی که هر کدام از آن ها مباحث و توضیحات خاص خودشان را دارند، در این مقاله به توضیح مفصل آن ها نمی پردازیم، بلکه در آینده برای هر کدام از آن ها مقاله های جداگانه ای برای شما عزیزان آماده خواهیم کرد.منظور از المنت های مجازی همان pseudo-element ها هستند که در Css به 5 قسمت زیر تقسیم می شوند:afterbeforeselectionplaceholderfirst-linefirst-letterکه می توانیم به کمک آن ها قسمتی از المنت را تغییر دهیم و گاها المنت هایی را از طریق Css به Html اضافه کنیم. المنت هایی که واقعا در Html وجود ندارند و مجازی هستند.همچنین شبه کلاس ها نیز به تعداد و دسته های مختلف زیر تقسیم می شوند:focushoveractivelinkdirlangdefaultread-onlycheckedvalidinvalidو … کلی شبه کلاس دیگه که می توانیم به کمک هر کدام از آن ها قسمت دلخواه المنتی را در موقعیت خاصی انتخاب کرده و استایل های مورد نظرمان را اعمال کنیم.سخن پایانیممکن است در این قسمت از مقاله با خودتان بگویید “مگر Css این همه سلکتور داشت؟!” ?در این مقاله سعی کردیم به معرفی سلکتور های Css بپردازیم تا شما عزیزان به عنوان یک برنامه نویس فرانت اند بتوانید با همه آن ها آشنایی کافی را داشته باشید.اگر در هر کدام از سلکتور های معرفی شده مشکلی دارید و متوجه نشدید، پیشنهاد می کنم ویدئوی مقاله را نیز مشاهده کنید و اگر سوال و ابهامی داشتید، در قسمت کامنت های مقاله بپرسید.امیدواریم این مقاله برای شما عزیزان مفید واقع شده باشد.تا مقاله بعدی خدانگهدار.&lt;br/&gt; </description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 15:31:20 +0330</pubDate>
            </item>
                    <item>
                <title>جاوا اسکریپت یا پایتون?</title>
                <link>https://virgool.io/@green_python/javascriptvspython-vs7blmg5qm3a</link>
                <description>انتخاب جاوا اسکریپت یا پایتون برای مبتدیان معمولا چالش بزرگی محسوب می‌شود. می‌توان گفت مقایسه پایتون با جاوا اسکریپت مثل مقایسه سیب با پرتقال است؛ با این وجود این دو زبان شباهت‌های پنهانی نیز با هم دارند. به طور کلی نمی‌توان با قطعیت گفت که جاوا اسکریپت بهتر است یا پایتون؛ چون هر کدام از این زبان‌ها برای کاربردی خاص مناسب هستند و برنامه‌نویس بسته به کاری که می‌خواهد انجام دهد، باید زبان مناسب را انتخاب کند. در این مقاله قصد داریم به مقایسه این دو زبان بپردازیم تا شما بفهمید باید زبان جاوا اسکریپت یا پایتون را انتخاب کنید. قبل از هر چیز بهتر است با این دو زبان بیشتر آشنا شویم تا بتوانیم تفاوت‌هایشان را درک کنیم. همچنین اکادمی سبزلرن یک دوره با نام آموزش پایتون با گرایش امنیت نیز دارد که میتوانید ان را تهیه کنید .آنچه در این مقاله خواهید خواندجاوا اسکریپت چیست؟پایتون چیست؟مقایسه کلی زبان جاوا اسکریپت و پایتونجاوا اسکریپت یا پایتون: برای مبتدیانجاوا اسکریپت یا پایتون: درآمدجاوا اسکریپت یا پایتون: عملکردجاوا اسکریپت یا پایتون: یادگیری ماشینجاوا اسکریپت یا پایتون: علوم دادهجاوا اسکریپت یا پایتون: توسعه فرانت اندجاوا اسکریپت یا پایتون: ساختارهای داده ایجاوا اسکریپت یا پایتون: نحوجاوا اسکریپت چیست؟شاید برایتان جالب باشد که بدانید زبان جاوا اسکریپت چیست و از کجا وارد دنیای کامپیوتر شده است. زبان جاوا اسکریپت اولین بار سال 1995 ظاهر شد و برندان ایچ در نت اسکیپ توسعه داده شد. این زبان عمدتا بهعنوان زبانی شی گرا استفاده می‌شود. جاوا اسکریپت زبانی است که می‌توان هم برای  بک اند و هم فرانت برنامه‌های تحت وب استفاده کرد. منظور از فرانت اند بخش‌هایی از یک برنامه کاربردی است که کاربر آن را می‌بیند و با آن ارتباط برقرار می‌کند. هر زمان که با یک برنامه تحت تعامل داشته باشید و اطلاعاتی را رد و بدل کنید، در واقع دارید با بک اند برنامه ارتباط برقرار می‌کنید. همچنین در برنامه‌های موبایل نیز از جاوا اسکریپت استفاده شده؛ چون این زبان برای نسخه‌های ریسپانسیو یا همان واکنش گرای یک برنامه وب در سیستم عامل‌های مختلف موبایل استفاده می‌شود. این زبان همه کاره به طور گسترده‌ای در توسعه‌ی برنامه‌های تحت وب استفاده شده و هر آنچه ما برای ساخت آن نیاز داریم را در اختیارمان قرار می‌دهد. وب سایت educba نیز در این رابطه مقاله ای اراعه کرده است که میتوانید ان را مطالعه کنید .پایتون چیست؟شاید کمتر کسی نداند پایتون چیست و نام این زبان را نشنیده باشد. پایتون چهار سال قبل از جاوا اسکریپت یعنی در سال 1991 توسط گیدو ون روسوم در CWI به عنوان جایگزینی برای زبان برنامه نویسی ABC توسعه داده شد. پایتون یک زبان برنامه نویسی قدرتمند با انعطاف پذیری بالاست که در سطح وسیعی برای برنامه‌های علمی وکاربردی در دنیا استفاده می‌شود. این زبان برنامه نویسی از پارادایم‌های برنامه نویسی مختلف پشتیبانی می‌کند. از زبان پایتون می‌توان در زمینه‌های علمی مختلف نظیر علوم داده، هوش مصنوعی، یادگیری ماشین، علوم کامپیوتر، پردازش تصویر، پزشکی، زیست شناسی و حتی نجوم استفاده کرد. از این زبان همچنین برای توسعه وب استفاده می‌شود. اینجاست که بحث برتری جاوا اسکریپت یا پایتون مطرح شده و این دو زبان با هم مقایسه می‌شوند. از زبان پایتون برای بک اند برنامه‌های تحت وب استفاده می‌شود؛ مثلا سمت سرور برنامه‌های تحت وب.مقایسه کلی زبان جاوا اسکریپت و پایتونهر دو این زبان‌های چندمنظوره هستند که سطح بالا بوده و به صورت داینامیک تایپ و تفسیر می‌شوند. در ادامه این دو زبان را از جنبه‌های مختلف با هم مقایسه می‌کنیم تا بتوانیم به این نتیجه برسیم که کدام بهتر است :جاوا اسکریپت یا پایتون: برای مبتدیانهر دو زبان برنامه نویسی برای شروع برنامه نویسی و آموزش مبتدیان عالی هستند؛ اما، بستگی به این دارد که به دنبال چه مزایایی باشید. پایتون طراحی شده که ساده باشد و خوانایی آن باعث شده که یک انتخاب عالی برای مبتدیان باشد. پایتون را می‌توانید به راحتی یک متن انگلیسی بخوانید و روند یادگیری آن خیلی سریع و کوتاه است. همچنین این زبان یک زبان مفسری است که یکی از ساده‌ترین گزینه‌ها برای یادگیری محسوب می‌شود و دستکاری خطاها در آن راحت است. از سوی دیگر کتابخانه‌های استاندارد پایتون پر از ویژگی‌های کاربردی و سازگار است و جامعه‌ی عظیمی از توسعه دهندگان مشتاق در این حوزه می‌توانند شما را در یادگیری و کاربرد آن یاری دهند. بنابراین می‌توان گفت پایتون برای توسعه‌ برنامه‌های هوش مصنوعی، بک اند و حتی برنامه‌های مالی مناسب‌ است چون مجموعه‌ای عظیم از داده‌های ریاضی کاربردی را در خود جای داده است. اما جاوا اسکریپت هم به اندازه‌ی پایتون منحصر به فرد است وبرای شروع یادگیری مبتدیان امتیازات خاص خود را دارد. اگرچه روند منحنی یادگیری این زبان به خوبی پایتون نیست؛ ولی چندان عقب‌تر از آن هم نیست. جاوا اسکریپت بیشتر از اینکه روی سادگی تمرکز کند، روی انعطاف پذیری و کاربردی بودن تمرکز دارد. این زبان برنامه نویسی محیطی جذاب برای برنامه نویسان تازه کار است تا بتوانند بدون قوانین بیش از حد کار برنامه نویسی را شروع کنند. زبان جاوا اسکریپت فوق العاده سبک است و جامعه‌ای بزرگ از برنامه نویسان شما را در یادگیری این زبان یاری خواهند کرد. با این وجود شاید برای خطایابی کدها، پایتون برای شما بهتر باشد. به طور کلی نمی‌توان گفت که برای مبتدیان جاوا اسکریپت بهتر است یا پایتون؛ ولی اگر به دنبال زبانی ساده برای شروع کار خود هستید، پایتون بیشتر به درد شما می‌خورد.جاوا اسکریپت یا پایتون: درآمدیادگیری یک زبان جدید عالی است؛ به شرطی که بتوانید با آن به درآمد خوبی برسید. براساس نظر سنجی انجام شده در سال 2020، توسعه دهندگان پایتون در دنیا سالانه حدود 120 هزار دلار درآمد دارند؛ در حالی که توسعه دهندگان  جاوا اسکریپت در سال چیزی حدود 112 هزار دلار کسب می‌کنند. با این وجود جالب است بدانید که زبان جاوا اسکریپت برای هشتمین سال متوالی محبوب‌ترین زبان برنامه نویسی دنیاست و پایتون در جایگاه سوم دنیا قرار دارد. یک نکته جالب توجه این است که بازار کار جاوا اسکریپت نسبت به پایتون کمتر است. پایتون از لحاظ تقاضای کار در رتبه‌ی اول دنیا قرار دارد؛ جاوا اسکریپت دومین زبان برنامه نویسی پر تقاضا در دنیاست. با در نظر گرفتن درآمد و بازار کار ، شاید زبان جاوا اسکریپت بعد از پایتون اولویت دوم برنامه نویسان حرفه‌ای باشد.جاوا اسکریپت یا پایتون: عملکردتفاسیر مختلفی از عملکرد یک زبان برنامه نویسی وجود دارد؛ ولی مهم‌ترین فاکتور زمان اجرای برنامه‌هاست. به لطف موتور V8، زبان جاوا اسکریپت یک زبان قدرتمند شناخته شده است که سرعت اجرای بالایی دارد. موتور V8 نه تنها کدها را بهینه می‌کند؛ بلکه نتایج جمع‌آوری شده را نیز در زمان کوتاه‌تری تفسیر و اجرا می‌کند. این را هم اضافه کنید که زبان جاوا اسکریپت یک زبان سبک و انعطاف پذیر بوده؛ با این تفاسیر زمان اجرای کدهای آن تا حد امکان به حداقل رسانده شده است. محیط اجرای Node.js نیز این امکان را فراهم کرده که جاوا اسکریپت در سمت سرور اجرا شود و به علت قابلیت Multithreading یا همان اجرای چند وظیفه همزمان، برنامه‌های کاربردی سنگین نیز با سرعت خوبی اجرا می‌شوند.حال برویم سراغ پایتون. پایتون یک زبان قوی، پایدار و خواناست؛ این بدان معناست که این زبان از سایر رقبای خود کندتر خواهد بود. البته این مسئله چندان روی محبوبیت پایتون تاثیر منفی نگذاشته است. پایتون از سطوح بالایی از انتزاع استفاده می‌کند؛ به همین خاطر تفسیر آن کمی طول می‌کشد با این حال پایتون را به خاطر داشتن ویژگی‌های دقیق، یک زبان امن برای اجرای برنامه‌های پردازش سنگین می‌دانند. یک امتیاز پایتون نسبت به جاوا اسکریپت این است که زمان کدنویسی این زبان سریع‌تر است ولی کماکان از نظر سرعت به پای موتور V8 نمی‌رسد.جاوا اسکریپت یا پایتون: یادگیری ماشینهنگامی که صحبت از یادگیری ماشین می‌شود، قدرت و نفوذ پایتون غیرقابل انکار است. این زبان الگوریتم‌های یادگیری ماشین را به راحتی مدیریت می‌کند و نحو قابل خواندنش، آن را به یک زبان پایدار برای تست و ایجاد تغییر تبدیل کرده است. پایتون یک پلت فرم مستقل دارد و بنابراین شما می‌توانید آن را در سیستم عامل‌های مختلف بدون نیاز به بازنویسی اجرا کند. یک امتیاز دیگر پایتون، پشتیبانی از کتابخانه‌های یادگیری عمیق مثل Tensorflow و Keras است. وجود انجمن‌های مختلف، منابع open source فراوان و پشتیبانی‌های مختلف در این زبان در زمینه یادگیری ماشین و یادگیری عمیق، آن را به یک انتخاب منحصر به فرد در این زمینه تبدیل کرده است.در طرف دیگر ماجرا، زبان جاوا اسکریپت نیز امتیاز خوبی در یادگیری ماشین به خود اختصاص داده است. این زبان در تمامی مرورگرهای مدرن موبایل و دسکتاپ پشتیبانی می‌شود؛ بنابراین برنامه‌های کاربردی ML شما با این زبان احتمالا روی اغلب دستگاه‌های موبایل و دسکتاپ اجرا خواهد شد. امتیاز دیگر این زبان، سازگاری آن با کتابخانه‌های پرکاربرد و معروف یادگیری ماشین و یادگیری عمیق نظیر Tensorflow.js،  ML5.js، Synaptic، و Brain.js است. با وجود این امتیازات، زبان جاوا اسکریپت به اندازه‌ی پایتون توسط جامعه یادگیری ماشین پذیرفته نشد و می‌توان گفت در زمینه هوش مصنوعی و یادگیری ماشین، بین زبان جاوا اسکریپت یا پایتون، گزینه دوم برتری دارد.جاوا اسکریپت یا پایتون: علوم دادهعلم اطلاعات و یادگیری ماشین پیش‌ نیازهای مشابهی دارند؛ بنابراین تعجبی ندارد که پایتون در علوم داده و اطلاعات نیز بهتر عمل کند. پایتون پتانسیل پردازش و پشتیبانی از داده‌های بزرگ یا اصطلاحا بیگ دیتا را دارد و عملیات‌ پردازش سنگین را می‌تواند به خوبی اجرا کند. این زبان برنامه نویسی به خوبی از عهده‌ی تجزیه و تحلیل داده‌ها، ساختار داده‌های سطح بالا، ساخت نمودارها، پیاده سازی الگوریتم‌های آماری و پردازش توابع ریاضی بزرگ بر می‌آید. این زبان، ایده آل دانشمندان داده است و پشتیبانی انجمن بزرگی از مشتاقان توسعه‌ی برنامه‌های جدید پایتون برای ارتقا توانایی این زبان را با خود به همراه دارد. در این زمینه نیز جاوا اسکریپت به پای پایتون نمی‌رسد؛ ولی حرفی برای گفتن دارد. جاوا اسکریپت، نامتقارن است و می‌تواند برنامه‌های کوچک را نیز همزمان با برنامه اصلی در بکگراند اجرا کند. همچنین این زبان از امکانات بینظیری مانند Tensorflow برای یادگیری ماشین، Node.js برای داده های زمان واقعی و مدلسازی و D3.js برای بصری سازی داده‌ها و نمودارهای تعاملی استفاده می‌کند. اگرچه این زبان پتانسیل خوبی برای رشد در زمینه‌ علوم داده دارد؛ ولی برای برنامه‌های کوچک بهتر است و نمی‌تواند داده‌های بزرگ را به خوبی پایتون مدیریت کند.جاوا اسکریپت یا پایتون: توسعه فرانت اندپیشتر گفتیم که هر دو زبان برای توسعه وب قابل استفاده هستند؛ اما، نمی‌توان جادوی جاوا اسکریپت در توسعه فرانت اند را نادیده گرفت. این زبان به شما کمک می‌کند که صفحات وب پویا بسازید. با وجود React.js این زبان توسعه مدرنی از فرانت اند ارائه می‌دهد که تجربه کاربری بی‌نظیری برای شما خواهد ساخت. از سوی دیگر node.js در جاوا اسکریپت آن را تبدیل به یک زبان اسکریپتی قدرتمند کرده که به شما امکان ساخت صفحات وب سمت سرور پویا می‌دهد. در این زبان فریمورک منبع باز فرانت اند Angular.js هم برای ساخت تک برنامه‌های پویا قابل استفاده است. تقریبا 30 سال است که جاوا اسکریپت برای ساخت برنامه‌های کاربردی وب در هر اندازه‌ای و برای هر نیازی کاربرد دارد. در مقابل پایتون یک زبان قوی و پایدار برای توسعه‌ی بک اند محسوب می‌شود؛ اگرچه تلاش می‌کند تا برای فرانت اند نیز در سطح قابل قبولی بتواند نقش خود را ایفا کند.جاوا اسکریپت یا پایتون: ساختارهای داده ایساختار داده‌ای این دو زبان را می‌توان از جنبه‌های زیر با هم مقایسه کرد:آرایه‌ها، لیست‌ها و تاپل‌هاجاوا اسکریپت از آرایه‌های داخلی کاملا پشتیبانی می‌کند، در حالی که پایتون چنین نیست. در پایتون استفاده از لیست، نزدیک‌ترین راه حلی است که می‌توان به جای آرایه جایگزین کرد. هر دو این زبان‌ها از لیست پشتیبانی می‌کنند.صفت و ویژگیدر جاوا اسکریپت اشیا دارای ویژگی هستند که این ویژگی‌ها می‌توانند از صفت‌های مختلف تشکیل شوند. در پایتون از پروتکل‌های توصیفی و توابع Getter و Setter برای تعریف صفت‌ها استفاده می‌شود.فرمت رمزنگاریفرمت کدگذاری در جاوا اسکریپت utf-16 است و این زبان هیچ پشتیبانی برای دستکاری بایت‌های خام ارائه نمی‌دهد؛ مگر اینکه فرمت کدگذاری مشخص شود. در پایتون تمامی کدهای منبع به صورت پیشفرض ASCII هستند.استدلال عملکرددر پایتون برخی استثناها وجود دارد و اگر شما پارامترهای غلطی برای یک تابع تعریف کنید، آن‌ها را به شما نشان می‌دهد؛ ولی جاوا اسکریپت اهمیتی به این موضوع نمی‌دهد و اگر پارامترهای غلطی به تابع بدهید، آن‌ها را اجرا نخواهد کرد.جدول هشدر پایتون جداول هش وجود دارد که به آن‌ها مجموعه، دیکشنری و… گفته می‌شود؛ ولی در جاوا اسکریپت چنین جداولی نداریم.وراثتشما با هر دو زبان جاوا اسکریپت یا پایتون، ویژگی وراثت را می‌بینید؛ ولی نوع آن‌ها با هم متفاوت است. در جاوا اسکریپت وراثت از نوع مبتنی بر پروتوتایپ است؛ در حالیکه در پایتون وراثت مبتنی بر کلاس استفاده می‌شود.توسعه موبایلبرخلاف جاوا اسکریپت که گزینه مناسبی برای توسعه برنامه‌های موبایل محسوب می‌شود، پایتون برای این کار مناسب نیست.ماژول‌ها و کتابخانه‌هاپایتون ماژول‌های متعددی دارد و از کتابخانه‌های زیادی برای انجام تجزیه و تحلیل داده‌ها، یادگیری ماشین و محاسبات علمی استفاده می‌کند. برخلاف آن جاوا اسکریپت تعداد ماژول کمتری دارد و کتابخانه‌های آن به اندازه پایتون متنوع و گسترده نیستند.تغییر پذیریدر زبان پایتون ما دو نوع داده قابل تغییر و غیرقابل تغییر را داریم. مثلا لیست یک داده غیرقابل تغییر است؛ ولی داده‌هایی هم وجود دارند که مقادیرشان را می‌توان بعد از تعیین کردن، تغییر داد. برخلاف زبان برنامه نویسی پایتون، در جاوا اسکریپت ما مفهومی تحت عنوان تغییرپذیری نداریم.انواع عددیدر جاوا اسکریپت فقط نوع عددی float تعریف شده؛ در حالیکه پایتون از انواع عددی int، دهدهی دسیمال و float پشتیبانی می‌کند.برنامه نویسی رویه ایهر دو زبان جاوا اسکریپت یا پایتون رویکردی چندمنظوره دارند و  شما می‌توانید از رویکردهای عملیاتی، شی گرا و ضروری استفاده کنید؛ با این وجود تنها پایتون یک زبان برنامه نویسی رویه ای محسوب می‌شود.جاوا اسکریپت یا پایتون: نحواکنون که با تفاوت‌های کلی این دو زبان آشنا شدید، بیایید کمی جزییات و جنبه‌های ساختاری این دو زبان را نیز با هم مقایسه کنیم تا ببینیم پایتون بهتر است یا جاوا اسکریپت. در حالت کلی نحو این دو زبان از جنبه‌های زیر با هم تفاوت دارد:بلوک‌های کدبرای تعریف بلوک کد در جاوا اسکریپت از براکت پیچ خورده یعنی {} استفاده می‌شود؛ ولی پایتون از تورفتگی برای کدهای داخلی استفاده می‌کند. زمانی که یک خط کد به انتها برسد، در جاوا اسکریپت از ؛ استفاده می‌کنند؛ در حالیکه در پایتون کافی است به خط بعدی بروید.تعاریف متغیرتخصیص یکی از اساسی‌ترین مباحث در هر زبان برنامه نویسی محسوب می‌شود. در زبان پایتون این کار تنها با کمک دستور (=) انجام می‌شود:&lt;variable_name&gt; = &lt;value&gt;اما در جاوا اسکریپت باید حتما از دستور var یا let قبل از تخصیص و علامت (؛) بعد از آن استفاده کنید.1var &lt;variable_name&gt; = &lt;value&gt;;نامگذاری متغیرهابرای نامگذاری متغیرها نمی‌توان گفت جاوا اسکریپت یا پایتون کدام بهترند؛ چون هر دو زبان نحو ساده‌ای برای نامگذاری دارند. یک متغیر معمولی در پایتون و جاوا اسکریپت به شکل زیر تعریف می‌شود:تعریف ثابت‌هابرای تعریف ثابت‌ها در هر دو زبان جاوا اسکریپت یا پایتون کافی است نام ثابت را با علامت (_) میان کلماتش بنویسید؛ با این تفاوت که در جاوا اسکریپت نوع داده‌ای const را نیز باید برای آن قید کنید مشابه شکل زیر:تعریف مقدار nullبرخلاف جاوا اسکریپت در پایتون مقداری تحت عنوان null نداریم و به جای آن از none استفاده می‌شود.تعریف کامنت‌هادر زبان جاوا اسکریپت برای تعریف کامنت از علامت (//) استفاده می‌شود؛ ولی پایتون علامت (#) را برای این کار انتخاب کرده است.برای کامنت‌های چندخطی نیز از سمبل‌های زیر در این دو زبان استفاده می‌شود.ساختارهای داده‌ای Built-inاین نوع ساختار داده‌ای در دو زبان چند تفاوت کلیدی دارند، اول اینکه در پایتون ما یک ساختار داده‌ای درونی تحت عنوان تاپل داریم که عملکردی شبیه به لیست دارد؛ ولی غیرقابل تغییر بوده و چنین ساختاری در جاوا اسکریپت تعریف نشده است.تفاوت دوم این است که در پایتون ما لیست را داریم که دنباله‌ای از مقادیر در یک ساختار داده‌ای یکسان بوده و می‌توان عملیات ایندکس گذاری و برش را روی آن انجام داده و در برنامه‌ها استفاده کرد. در جاوا اسکریپت ساختاری مشابه تحت عنوان آرایه استفاده می‌شود.عملگرهاعملگرها در پایتون و جاوا اسکریپت چند تفاوت با هم دارند که در ادامه به بررسی آن‌ها می‌پردازیم:عملگر تقسیم پایین: برای تقسیم پایین یا همان حد پایین تقسیم که در ریاضی با براکت نمایش داده می‌شود، در پایتون از علامت (//) استفاده می‌کنیم؛ ولی در جاوا اسکریپت برای این کار باید تابع math.floor را فراخوانی کنید.عملگر مقایسه: عملگر مقایسه برای دو مقدار در پایتون با علامت (==) و در جاوا اسکریپت با علامت (===) مشخص می‌شود.عملگرهای منطقی: در این دو زبان عملگرهای منطقی نیز با هم متفاوت هستند. تفاوت این عملگرها را می‌توانید در شکل زیر ملاحظه کنید:عملگر تایپ: برای عملگر تایپ در پایتون از تابعtype() و در جاوا اسکریپت از عملگر  typeof  استفاده می‌شود.ورودی خروجیگرفتن ورودی نیز در جاوا اسکریپت و پایتون با هم تفاوت دارد. در شکل زیر تفاوت ارسال ورودی به این دو زبان برنامه نویسی را مشاهده می‌کنید.نحوه چاپ خروجی نیز در جاوا اسکریپت و پایتون به شیوه‌های زیر انجام می‌شوددستورات شرطیدر جاوا اسکریپت یا پایتون دستورات شرطی عملکرد یکسانی دارند و یک وضعیت خاص را ارزیابی می‌کنند. در هر دو زبان از if برای شرط استفاده می‌شود و نحوه نوشتن آن به شکل زیر است:برای دستورات شرطی if/else نیز در هر زبان نحو زیر به کار می‌رود:همچنین شرط‌های چندگانه در زبان‌های پایتون و جاوا اسکریپت به شکل زیر نوشته می‌شوند.در جاوا اسکرپیت ما یک ساختار کنترلی دیگر تحت عنوان switch داریم که برای انتخاب وضعیت‌های مختلف استفاده می‌شود؛ ولی این ساختار در پایتون وجود ندارد.حلقه‌هاانواع مختلفی از حلقه‌ها در پایتون و جاوا اسکریپت وجود دارد که در هر کدام از این دو زبان با هم تفاوت‌هایی دارند. در ادامه به بررسی این تفاوت‌ها می‌پردازیم.حلقه for: حلقه‌های for در پایتون با عبارت in و تعیین range و همینطور نام متغیر تعریف می‌شوند؛ ولی در جاوا اسکریپت مانند زبان c باید حلقه‌ها با تعیین مقدار اولیه و آستانه و شمارشگر مشخص شود.حلقه for…in و for…of: این دو نوع حلقه که در زبان‌های جاوا اسکریپت و پایتون تعریف شده، تکرار روی یک عنصر یکپارچه را تعیین می‌کنند و دستور آن‌ها به صورت زیر است:حلقه while: دستور while در هر دو زبان تقریبا نحو یکسانی دارد و به شکل مشابهی نوشته می‌شود:حلقه do…while: در جاوا اسکریپت ما نوع دیگری از حلقه را داریم که در پایتون وجود ندارد. این حلقه do…while است که برای تکرار یک حلقه تا زمان رسیدن به شرطی مشخص به کار می‌روند و شیوه نگارش آن به شکل زیر است:do {// Code} while (condition);توابعتعریف و کاربرد توابع در این دو زبان تقریبا مشابه یکدیگر هستند؛ فقط چند تفاوت کلیدی در آن‌ها وجود دارد. با دقت در دستورات زیر می‌توانید این تفاوت‌ها را ببینید:برنامه نویسی شی گرااز منظر شی گرایی نمی‌توان گفت کدام بهتر است هر دو زبان از شی گرایی پشتیبانی می‌کنند و قابلیت‌های خوبی در این زمینه ارائه می‌دهند؛ اما، در تعریف کلاس‌ها و صفت‌هایشان تفاوت‌هایی با یکدیگر دارند.تعریف کلاس: تعریف کلاس در این دو زبان به شیوه‌های زیر انجام می‌شود:تعریف صفت‌ها و ویژگی‌ها: در پایتون مقدار اولیه صفت‌ها در متغیری تحت عنوان init قرار می‌گیرد؛ ولی در جاوا اسکریپت این مقدار در داخل constructor ذخیره می‌شود. شکل کلی دستورات تعریف صفات و ویژگی‌ها در این دو زبان به صورت زیر است:جمع بندیپایتون و جاوا اسکریپت زبان‌های قدرتمندی هستند که در دنیای واقعی کاربردهای مختلفی دارند. از پایتون می‌توان برای توسعه‌ی وب و همینطور برای طیف گسترده‌ای از برنامه‌های کاربردی از جمله اهداف علمی استفاده کرد. از سوی دیگر جاوا اسکریپت عمدتا برای توسعه برنامه‌های بک اند و فرانت اند تحت وب و همچنین برنامه‌های تلفن همراه استفاده می‌شود. این دو زبان را می‌توان برای اهداف یکسانی استفاده کرد؛ با این وجود تفاوت‌های متعددی میان آن‌ها وجود دارد که نباید نادیده گرفت. با یادگیری زبان جاوا اسکریپت یا پایتون شما می‌توانید از فرصت‌های شغلی خوبی بهره‌مند شده و برای آینده خود برنامه ریزی کنید.سوالات متداولآیا می‌توان پایتون را جایگزین جاوا اسکریپت کرد؟خیر، پایتون برای برنامه‌های فرانت اند مناسب نیست؛ ضمن اینکه در برنامه‌های موبایل هم کاربردی ندارد و نمی‌توان از آن به جای پایتون استفاده کرد.آیا زبان جاوا اسکریپت، زبان پایتون را در آینده حذف خواهد کرد؟چنین چیزی ممکن نیست؛ چون تقریبا اغلب مجامع علمی از زبان پایتون برای توسعه‌ی ابزارهای تحقیقاتی خود استفاده کرده‌اند و جاوا اسکریپت نمی‌تواند جایگزین خوبی برای آن باشد. با این حال این امکان وجود دارد که زبانی کاربردی‌تر از این دو زبان در آینده توسعه یابد و جایگزین هر دوی آن‌ها شود.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 15:18:49 +0330</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی بلاک چین چیست?</title>
                <link>https://virgool.io/@green_python/blackchine-q1nbjbkslq1y</link>
                <description>برنامه نویسی بلاک چین موارد استفاده‌ی زیادی دارد و برای مدرن‌سازی فرآیندهای کسب و کار موثر است. تکنولوژی بلاکچین یکی از کاربردی‌ترین تکنولوژی‌های امروز دنیاست که مسیر جدیدی برای حفظ امنیت اطلاعات را به روی همگان باز کرد. این فناوری در طول سال‌ها به صنایع کمک کرده تا چالش‌های سنتی خود را اصلاح کنند و پتانسیل استفاده در حوزه‌های اقتصادی، بهداشتی و درمانی، آموزش و پرورش و حتی حقوقی را دارد. از سال 2017 تا 2020 تقاضا برای بلاک چین تقریبا 2000 درصد افزایش یافته و این تکنولوژی به یکی از فناوری‌های ارزشمند در صنعت تبدیل شده است. انتظار می‌رود تا سال 2024، ارزش خالص بازار بلاک چین‌ها به حدود 20 میلیارد دلار برسد. علاقمندان ورود به دنیای بلاک چین باید با زبان‌های برنامه نویسی این حوزه آشنا باشند تا بتوانند بهترین شیوه‌ی توسعه‌ی بلاک چین را یاد بگیرند. در این مقاله قصد داریم درباره‌ی بلاک چین صحبت کنیم و بگوییم برنامه نویسی بلاک چین چیست و چطور می‌توان پا به دنیای بزرگ بلاک چین گذاشت.آنچه در این مقاله خواهید خواندبلاکچین چیست؟برنامه نویسی بلاک چینانتخاب زبان برنامه نویسی مناسب برای بلاکچینزبان‌ های برنامه نویسی برتر در حوزه بلاکچینبلاکچین چیست؟بلاک چین یا زنجیره‌ی بلوک همان‌طور که از نامش پیداست به بلوک‌های داده‌ای گفته می‌شود که به صورت زنجیره‌وار به یکدیگر متصل شده‌اند و می‌توانند داده‌ها را در خود ذخیره کنند. بلوک‌های داده‌ی جدید را نیز می‌توان در ادامه‌ی بلوک‌های قبلی و به تعداد نامحدود اضافه کرد. ماهیت بلاک‌ چین غیرمتمرکز است و این بلوک‌ها را می‌توان در نودهایی در هر نقطه از جهان قرار داد. شبکه‌ی نودهای بلاک چین از نوع peer to peer است و کامپیوترها دو به دو با هم در ارتباط اند. غیرمتمرکز بودن بلاک چین یک معنای دیگر نیز دارد و آن این است که بلاک چین یک واحد کنترل مرکزی ندارد و تک تک نودها فرآیند تایید یک بلاک جدید و به‌روزرسانی اطلاعات را خودشان انجام می‌دهند. در واقع یک بلوک برای اضافه شدن به زنجیره باید توسط تمامی نودها تاییدیه بگیرد و وقتی اضافه شد، تمامی نودها اطلاعاتشان را آپدیت کرده و نود جدید را به داده‌هایشان اضافه می‌کنند. هر بلوک در بلاک چین علاوه بر داده‌های خود، زمان ایجادش را نیز ذخیره می‌کند تا مرتب‌سازی اطلاعات زنجیره به درستی انجام شود. شکل زیر شمای کلی عملکرد بلاک چین را نشان می‌دهد.برنامه نویسی بلاک چین و تکنولوژی به کار رفته در آن کاملا امن و قوی است به همین‌ دلیل برای ذخیره و پردازش داده‌های حساس کاربرد زیادی دارد. جنبه‌ی انقلابی این تکنولوژی این است که فرآیندها را فقط یک کامپیوتر ارزیابی نمی‌کند و چندین نود باید عملیات اعتبارسنجی داده را انجام دهند که این باعث قدرتمندتر و امن‌‌تر شدن زنجیره‌ی اطلاعاتی می‌شود. از بلاک چین می‌توان برای معاملاتی که طرفین به هم اعتماد ندارند استفاده کرد؛ چون ایجاد و حذف بلاک‌ها تنها در صورتی انجام می‌شود که همه‌ی نودها روی پردازش موردنظر توافق داشته باشند و کوچکترین خطایی در آن رخ نخواهد داد. کاربرد شگفت انگیز بلاک چین با ظهور بیت کوین مشخص شد، ارزی که هیچ کدام از دولت‌ها در تولید و تغییر آن نقشی نداشتند و کاملا توسط یک جامعه‌ی مستقل کامپیوتری از سراسر دنیا اداره می‌شود.برنامه نویسی بلاک چینبه منظور درک بهتر برنامه نویسی بلاک چین بهتر است درباره‌ی مفهوم امضای دیجیتال یا هش صحبت کنیم. امضای دیجیتال یا همان هش اساسا یک تابع است که رشته‌ای را به عنوان ورودی می‌گیرد و یک رشته‌ی ثابت عددی را برمی‌گرداند. رشته‌ی خروجی همان هش پیام ورودی است. نکته‌ی مهمی که وجود دارد این است که تابعی که برای ما هش را می‌سازد یک تابع غیرقابل برگشت است و با توجه به رشته‌ی ورودی این هش را محاسبه می‌کند. وقتی می‌گوییم غیرقابل برگشت یعنی نمی‌توانیم مقدار هش تولید شده را مجددا به رشته‌ی ورودی تبدیل کنیم. نکته مهم دیگر این است که امکان ندارد برای یک رشته‌ی ورودی بتوان دو مقدار هش محاسبه کرد یا اینکه برای دو رشته‌ی ورودی یک هش یکسان به دست آورد. برای ساخت این چنین توابعی، رمزنگاران سالیان سال تلاش و تحقیق کرده‌اند. اکثر زبان‌های برنامه نویسی بلاک چین یک کتابخانه‌ی داخلی برای محاسبه‌ی هش ورودی یک رشته‌ی خاص را دارند و می‌توان از آن‌ها برای برنامه نویسی بلاک چین استفاده کرد.در حالت کلی در برنامه نویسی بلاک چین وظایف زیر انجام می‌شود:طراحی پروتکل‌های بلاک چینطراحی معماری شبکه‌ی بلاک چین با رویکرد توزیعیطراحی بک اند با استفاده از پروتکل‌های بلاک چینتوسعه‌ی فرانت اند با توجه به نیاز کلاینت‌هاتوسعه و نظارت قراردادهای هوشمند بلاک چینانتخاب زبان برنامه نویسی مناسب برای بلاکچینزبان‌های برنامه نویسی بلاک چین مختلفی وجود دارد که یک توسعه‌دهنده می‌تواند برای کار خود انتخاب کند. امروزه برنامه نویس و توسعه‌دهنده‌ی بلاکچین یکی از پرتقاضاترین مشاغل حوزه‌ی برنامه نویسی است. دو دسته توسعه دهنده‌ی بلاک چین داریم:توسعه‌دهنده‌ی هسته‌ی بلاک چین که به طراحی معماری کلی سیستم بلاک چین و امنیت آن می‌پردازد. برای بلاک چین بیت کوین این قسمت از کار توسط زبان برنامه نویسی c++ کدگذاری شده بود. برای این بخش از کدهای بلاک چین معمولا از زبان‌هایی نظیر C یا جاوا استفاده می‌شود.توسعه‌دهنده‌ی نرم افزار بلاک چین که اپ‌های توزیع شده و تحت وب را تولید می‌کند. در اپ‌های توزیع شده، معمولا کدهای بک اند در یک شبکه p2p اجرا می‌شوند و با اپ‌های معمولی تفاوت دارد. با این وجود کدهای فرانت اند اپ‌های توزیع شده کاملا شبیه اپ‌های معمولی هستند و با همان زبان‌های طراحی فرانت اند می‌توان نوشت.معیارهای انتخاب زبان برنامه نویسی برای بلاکچینبرای کسانی که می‌خواهند قدم به دنیای برنامه نویسی بلاک چین بگذارند، انتخاب یک زبان مناسب چالش بزرگی است. پیدا کردن زبانی که بتواند تمامی نیازهای شما در پیاده‌سازی یک بلاک چین را برطرف کند، کار راحتی نخواهد بود. به طور کلی زمانی که می‌خواهید یک زبان برنامه نویسی برای بلاک چین انتخاب کنید، بهتر است فاکتورهای زیر را در نظر داشته باشید:امنیت: همانطور که گفته شد، امنیت در بلاک چین حرف اول را می‌زند. اگر برنامه‌ی شما نقص امنیتی یا باگ داشته باشد، عملا کاربردی نخواهد بود و خسارات زیادی به شما خواهد زد. پس بهتر است به دنبال زبان‌هایی باشید که بتوانند امنیت برنامه‌ی شما را کاملا تامین کنند.کارایی: بلاک چین در صورتی قابل استفاده خواهد بود که کارایی لازم را داشته باشد و اگر نتوان عملیات مورد انتظار آن را به صورت همزمان روی نودهای شبکه پیاده‌سازی کرد، این برنامه به درد نمی‌خورد. از دیگر کارهایی که انتظار می‌رود برنامه بتواند به سرعت و دقت خوبی اجرا کند هشینگ ورودی‌ها و بررسی تاییدات است که همگی به میزان کارایی زبان انتخاب شده بستگی دارد.قطعیت: یک هش در برنامه بلاک چین باید منحصر به فرد باشد و نمی‌توان دو هش یکسان به دست آورد. بنابراین زبانی برای بلاک چین کاربرد دارد که قطعیت داشته باشد و رفتاری یکسان را در تمامی مراحل از خود به نمایش بگذارد.مدیریت منابع: از آنجا که برنامه نویسی بلاک چین برای شبکه‌های توزیع شده انجام می‌شود، باید سیستم‌ها یا همان نودها بتوانند پاسخگویی خوبی از خود ارائه دهند و منابع به درستی در کل شبکه توزیع شود.زبان‌ های برنامه نویسی برتر در حوزه بلاکچیندر این بخش به معرفی زبان های برنامه نویسی برتر در حوزه بلاکچین می‌پردازیم:Solidityاین زبان تحت تاثیر جاوا اسکریپت، PowerShell و C ++ بوده و اولین زبان برنامه نویسی بلاک چین است که باید یاد بگیرید؛ خصوصا زمانی که می‌خواهید اپ‌های توزیع شده توسعه دهید. این زبان مزایای زیادی دارد؛ از جمله:مورد پسند توسعه‌دهندگان استبه زیرساخت‌های جاوااسکریپت، دیباگرها و ابزارهای دیگر دسترسی دارد.به صورت برنامه نویسی تایپ شده استاتیک است.امکان ارث‌بری در قراردادهای هوشمند را دارد.دقت بالایی دارد.Javaجاوا زبان رسمی توسعه‌ی برنامه‌های اندرویدی است و یک گزینه‌ی مناسب برای توسعه‌ی برنامه‌های بک اند محسوب می‌شود. این زبان همچنین یکی از بهترین زبان‌های برنامه نویسی بلاک چین به شمار می‌رود. زبان جاوا از سینتکس C مشتق شده و به طور گسترده‌ای برای ایجاد قراردادهای هوشمند و اپ‌های توزیع شده کاربرد دارد. از ویژگی‌های این زبان برای بلاک چین می‌توان به موارد زیر اشاره کرد:پشتیبانی قوی از ساختار شی‌گراییسهولت پاک‌سازی حافظهدر دسترس بودن کتابخانه‌های فراوانبرخی از بهترین نمونه‌های بلاک چین مثل NEM، IOTA، NEO و Fabric Hyperledger به زبان جاوا نوشته شده‌اند.Pythonپایتون نه تنها در حوزه‌ی بلاک چین بلکه در حوزه‌های مهمی نظیر توسعه‌ی سرورهای شبکه و IOT نیز توانایی‌های منحصر به فردی دارد. این زبان در سال 1991 ایجاد شد و برای ایجاد برنامه‌ها و اپ‌های توزیع شده و همین‌طور قراردادهای هوشمند ویژگی‌ها و امکانات استثنایی ارائه می‌دهد. از جمله ویژگی‌های مهم پایتون می‌توان به موارد زیر اشاره کرد:یادگیری آسان برنامه نویسی بلاک چین در پایتوندسترسی به یک معماری پویاایده‌آل برای استفاده به هر دو روش پایه و اسکریپتیپشتیبانی از برنامه نویسی منبع بازکدنویسی بلاک چین در پایتون برای نمونه سازی بسیار کارآمد است.از محبوبترین پروژه‌های بلاک چین نوشته شده به زبان پایتون می‌توان Steem، Fabric Hyperledger و Neo را نام برد.JavaScriptبا در نظر گرفتن طیف گسترده‌ای از اپ‌ها و بازی‌هایی که توسعه‌دهندگان نیاز دارند، می‌توان گفت جاوا اسکریپت یکی از بهترین زبان‌های برنامه نویسی بلاک چین دنیاست. این زبان نیز مزایای بی‌شماری به توسعه‌دهندگان ارائه می‌دهد؛ مثلا:برنامه نویسی بلاکچین با این زبان امکان ورود آسان‌تر و سریع‌تر به بازار را فراهم می‌کند.همچنین برنامه نویسی با این زبان مقیاس پذیری را افرایش می‌دهد.چندین فریمورک جاوااسکریپت برای بلاک چین در دسترس است.ادغام منابع مربوط بدون هیچ زحمتی انجام می‌شود.PHPزبان PHP یکی دیگر از زبان‌های برنامه نویسی بلاک چین است که  که به شرکت‌های توسعه‌ی نرم افزارهای تلفن همراه برای ایجاد راه‌حل‌های بلاک چین توصیه می‌شود. این زبان برای ایجاد بلاک چین‌هایی با سطوح مختلف پیچیدگی کاربرد دارد؛ چون از یک جامعه‌ی بزرگ منبع باز و ویژگی‌های شی گرای متعددی بهره می‌برد.C++زبان C++ در سال 195 معرفی شد و در حال حاضر یکی از بهترین زبان‌های برنامه نویسی در حوزه‌ی ارزهای دیجیتال محسوب می‌شود. این زبان از متدولوژی شی گرا بهره می‌برد و برای توسعه‌ی رمزنگاری‌های Bitcoin، Litecoin، Ripple، Stellar و EOS به کار رفته است. از برجسته‌ترین ویژگی‌های  C++ می‌توان به موارد زیر اشاره کرد:مدیریت کارآمد پردازنده و کنترل حافظهسهولت در اجرای موازی و غیرموازی رشته‌هاقابلیت جابجایی سمانتیک برای کپی داده‌هازمان کامپایل پلی مورفیسم برای بهبود عملکردجداسازی کدها برای ساختارهای داده‌ای مختلفC#زبان سی شارپ توسط مایکروسافت توسعه داده شده و در بحث برنامه نویسی بلاک چین، جایگزین مناسبی برای جاوا به شمار می‌رود. این زبان شی‌گرا، ویژگی‌های زیادی برای برنامه‌های شرکتی، ابری و چندپلتفرمی ارائه می‌دهد. زبان سی شارپ با ویژگی‌های زبان‌های C, SQL,  و  .NET frameworks ارائه شده و گزینه‌ی خوبی برای توسعه‌ی بلاک چین است؛ زیرا:منبع باز است.سینتکس راحتی برای فهم و یادگیری دارد.امکان توسعه‌ی برنامه‌های قابل حمل یا پرتابل را فراهم می‌کند.مقرون به صرفه است.از زبان سی شارپ به طور ویژه‌ای برای ساخت اپ‌های توزیع شده، قراردادهای هوشمند و زیرساخت‌های یک محیط بلاک چین استفاده می‌شود.Goزبان گو نیز با درصد موفقیت بالایی در لیست زبان های برنامه نویسی برتر در حوزه‌ بلاکچین قرار گرفته است. این زبان چندان راحت نیست؛ ولی ویژگی‌های خوبی مشابه پایتون و جاوااسکریپت دارد که باعث انتخاب آن به عنوان یک راه‌حل مناسب برای برنامه نویسی بلاک چین شده است. ویژگی‌هایی مثل کاربرپسند بودن، مقیاس پذیری، انعطاف پذیری و سرعت. دو پیاده‌سازی موفق زبان گو برای بلاکچین، پلتفرم‌های Go-Ethereum و Fabric Hyperledger هستند.Simplicityاین زبان نیز یکی از زبان‌ های برنامه نویسی برتر در حوزه بلاکچین است که در سال 2017 وارد بازار کدنویسی شد و جز زبان‌های سطح بالای بلاکچین به حساب می‌آید. زبان برنامه نویسی بلاک چین Simplicity بر اساس IVY بوده و با سینتکس Haskell نوشته می‌شود که یک سینتکس ساده و عملیاتی است. کدهای Simplicity ماهیتی ریاضی دارند و در عین حال قابل خواندن هستند. از این زبان برای توسعه‌ی راه‌حل‌های بلاکچین و قراردادهای هوشمند استفاده می‌شود. بیتکوین و اتریوم از این زبان استفاده می‌کنند.Rubyروبی را می‌توان بهترین زبان توسعه‌ی بلاکچین دانست. این زبان در اواسط 1990 ایجاد شد و یک زبان برنامه نویسی سطح بالا و همه‌منظوره است که به توسعه‌دهندگان فرصت می‌دهد تا apiها و پلاگین‌های منبع باز و کاربردی طراحی کنند. با ترکیب زبان روبی با سایر زبان‌ها می‌توان یک پلتفرم پیشرفته طراحی کرد. در آسیا این زبان برای ساخت نرم افزارها و سیستم‌عامل‌های مبتنی بر بلاکچین مورد توجه قرار گرفته است.Rustروست یک زبان تازه وارد در حوزه‌ی برنامه نویسی بلاک چین است؛ ولی با این حال به طور گسترده‌ای برای ساخت راه‌حل‌های نوآورانه، غیرقابل تغییر و امن بلاکچین به کار می‌رود. این زبان توسعه دهندگان منبع باز را قادر می‌سازد تا فریم‌ورک‌هایی سریع و عملیاتی برای بلاکچین بسازند. از قابلیت‌های روست می‌توان به توانمندی آن در مدیریت‌ وضعیت‌های قابل تغییر، بهینه‌سازی کدها، مدیریت حافظه و تنظیم فرآیندهای همزمان اشاره کرد.SQLزبان پرس و جوی ساختاریافته یا همان SQL نیز یکی از زبان های برنامه نویسی برتر در حوزه بلاکچین است. این زبان برای ایجاد ارتباطاتی کارآمد و ساده با پایگاه‌ داده‌هایی مانند MySQL، SQL Server، PostgreSQL، و اوراکل طراحی شد و می‌توان از آن برای ساخت راه‌حل‌های سازمانی امن و موثر در زمینه‌ی بلاکچین استفاده کرد.Erlangزبان Erlang یکی دیگر از زبان‌های برنامه نویسی بلاکچین است که شما باید برای داشتن آینده‌ای روشن در این حوزه در نظر داشته باشید. این زبان شاید به اندازه‌ی زبان‌هایی مثل جاوا یا پایتون معروف نباشد؛ ولی ویژگی‌های خوبی ارائه می‌دهد. مثلاامکانات بک اند غیرموازیمقیاس پذیری بالاتغییرناپذیر بودنتحمل خطاگاهی مواقع این زبان بهترین انتخاب برای ساخت شبکه‌های p2p  در محیط یک بلاکچین است.RholangRholang یکی از زبان‌های جذاب در لیست زبان های برنامه نویسی برتر در حوزه بلاکچین است که برخلاف C++ و پایتون، رویکردی شی‌گرا و عملیاتی دارد. این زبان کل برنامه را به عنوان مجموعه‌ای از توابع ارزیابی می‌کند که باید به صورت متوالی حل شوند. به همین علت است که این زبان را یک زبان مناسب برای ساخت قراردادهای هوشمند و پروژه‌های سطح بالا می‌دانند.CXآخرین زبان در این لیست CX است که پتانسیل کاربرد به عنوان واسطه‌ی قراردادهای دیجیتالی را دارد و ویژگی‌هایی نظیر کنترل خطای ساده و استفاده از ساختارهایی مثل آرایه و اشاره‌گر را ارائه می‌کند. این زبان روی زبان Go  اسمبل می‌شود و کاربران را از نوشتن کدهای اختیاری بی‌نیاز می‌کند. زبان CX به طور موثری با OpenGL ادغام می‌شود و به توسعه‌دهندگان اجازه می‌دهد تا از ظرفیت‌های GPU نیز استفاده کنند.سخن آخربلاکچین یکی از داغ‌ترین بحث‌های روز دنیاست و برای ورود به آن شما باید به برنامه نویسی بلاک چین تسلط پیدا کنید تا فرصت‌های شکوفایی در این حوزه را به دست آورید. بلاکچین امروزه کاربردهای گسترده‌ای در تمامی صنایع پیدا کرده که معروف‌ترین‌شان بحث ارزهای دیجیتال است. برای تبدیل شدن به یک برنامه نویس بلاک چین شما باید قبل از هر چیز زبان‌های برنامه نویسی مناسب برای این کار را شناخته و از روش‌های مختلف مثل شرکت در دوره‌های حضوری و آنلاین، شرکت در انجمن‌های برنامه‌نویسی و مطالعه و تمرین با مفاهیم نظری و عملی این حوزه آشنا شوید. در این مقاله به بررسی برخی از بهترین زبان‌های برنامه نویسی بلاک چین پرداختیم و به شما گفتیم چه ویژگی‌هایی در این زبان‌ها باعث شده که در لیست زبان‌های برتر بلاکچین قرار گیرند.سوالات متداولآیا یادگیری برنامه نویسی بلاکچین سخت است؟برنامه نویسی بلاکچین نسبت به مقوله‌های دیگر پیچیدگی‌های بیشتری دارد و باید اطلاعات زیادی در حوزه‌ی شبکه سازی و رمزنگاری داشته باشید، با این حال در صورتی‌که با مفاهیم بلاک چین و برنامه نویسی آشنا باشید، کار سختی نخواهد بود.قبل از یادگیری برنامه نویسی بلاکچین، نیاز به چه آموزش‌هایی داریم؟به طور خلاصه می‌توان گفت شما بایددانش قوی از اصول توسعه‌ی بلاکچین، ویژگی‌های آن و سیستم‌عامل‌های محبوب داشته باشید.نقاط شکست در سیستم کلی را بشناسید.در حداقل یک یا دو مورد از زبان‌های برنامه نویسی بلاک چین مهارت پیدا کنید.با مفاهیم رمزنگاری و ارزهای دیجیتال آشنا شوید.اطلاعات زیادی راجع به توسعه‌ی وب، شبکه و امنیت کسب کنید.کدام زبان‌های برنامه نویسی برای بیت کوین و اتریوم به کار رفته‌اند؟بلاکچین بیت‌کوین به زبان برنامه نویسی C++ نوشته شده؛ ولی برای اتریوم علاوه بر این زبان، زبان‌های GO و RUST نیز به کار رفته‌اند.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 15:02:49 +0330</pubDate>
            </item>
                    <item>
                <title>تبدیل فایل xd به html و css</title>
                <link>https://virgool.io/@green_python/creatadobyxdhtmlcss-ba7mubl7flgo</link>
                <description>تبدیل فایل xd به html و css یکی از مواردی که اغلب افرادی که با ابزار adobe xd کار می‌کنند، به دنبال آن هستند. وقتی‌که شما از نرم افزار adobe xd برای طراحی و نمونه‌سازی رابط و تجربه‌ی کاربری سایتتان استفاده می‌کنید، می‌توانید مستقیما طرح‌تان را تبدیل به فایل html کنید. متاسفانه ادوب xd به صورت مستقیم از html پشتیبانی نمی‌کند و شما نیاز به راه‌های دیگری برای تبدیل فایل‌ xd به html دارید. شما می‌توانید از پلاگین‌ها برای این کار استفاده کنید یا اینکه ابزارهای مبدل را به کار ببرید. در این مقاله ما چندین راه به شما نشان می‌دهیم که بتوانید تبدیل فایل xd به html و CSS را انجام دهید.منظور از تبدیل فایل xd به html و css چیست؟تبدیل فایل xd به html و css به این معناست که شما UI/UX طراحی شده توسط طراح در این نرم افزار را به کدهای html تبدیل کنید تا بتوانید بدون کدنویسی مجدد آن‌ها را در سایتتان استفاده کنید. همان‌طور که می‌دانید با کمک نرم افزار Adobe xd شما می‌توانید یک شمای کلی از UI/UX سایت بسازید. شاید بپرسید منظور از UI/UX چیست. در واقع رابط کاربری و تجریه‌ی کاربری را می‌توان به صورت زیر تعریف کرد:تجربه کاربری یا UX: منظور از تجربه‌ی کاربری تمامی جنبه‌های تعامل کاربر با سایت، خدمات و محصولات آن است. مثلا فرآیندهای خرید، پرداخت، دسترسی به محصول و… همگی جز UX یا تجربه‌ی کاربری سایت هستند. هدف نهایی از طراحی UX، ایجاد تجربه کاربری آسان، کارآمد، مرتبط و همه جانبه است.رابط کاربری یا UI: رابط کاربری به ظاهر سایت گفته می‌شود، یعنی آنچه که کاربر می‌بیند و با استفاده از آن با سایت تعامل دارد. تمامی المان‌های قرار گرفته در یک سایت، بخشی از رابط کاربری سایت هستند. در طراحی UI، هدف ایجاد جذابیت، احساس و تعامل موثر برای کاربر است.با استفاده از نرم افزار adobe xd شما می‌توانید نقشه‌ای از UI/UX سایتتان طراحی کرده و سپس آن را کدنویسی کنید. خروجی این برنامه یک فایل با فرمت xd است که قابلیت اجرا ندارد و فقط یک دید کلی درباره‌ی تجربه‌ی کاربری، رابط کاربری، رنگ و نقشه‌ی سایت به شما می‌دهد و باید آن را با کمک html و Css پیاده سازی کنید. این نرم افزار یک پلتفرم طراحی رابط کاربری قدرتمند است که ابزارهای مختلفی برای ساخت بهترین UI/UX ها را در اختیار شما قرار می‌دهد. نرم افزار Adobe xd قابلیت‌های زیادی برای طراحی یک رابط کاربری موثر در اختیار طراحان قرار می‌دهد. بنابراین اگر بتوان قالب ساخته شده در این نرم افزار را به کد تبدیل کرد، عالیست. متاسفانه در خود برنامه چنین امکانی قرار ندارد و برای این کار باید از روش‌های غیرمستقیم استفاده کنید. در ادامه به بررسی این روش‌ها می‌پردازیم.راه‌های تبدیل فایل xd به html و cssهمان‌طور که گفتیم چندین راه برای تبدیل تبدیل قالب xd به html وجود دارد:تبدیل adobe XD به HTML با استفاده از پلاگین‌های این برنامهتبدیل قالب xd به html با استفاده از نرم افزاردر ادامه هر کدام از این روش‌ها را بررسی می‌کنیم.تبدیل adobe XD به HTML با استفاده از پلاگین‌های adobe xdتبدیل adobe XD به HTML با استفاده از پلاگین‌های این برنامه یکی از راحت‌ترین روش‌ها برای تبدیل ui به کد در این برنامه است. پلاگین‌های مختلفی برای این کار وجود دارد که می‌توانید استفاده کنید. اگر می‌خواهید پلاگین‌های مربوط به این کار را در برنامه‌ی adobe xd پیدا کنید، کافیست به مسیر Plugins → Discover Plugins رفته و کلمه‌ی html را سرچ کنید تا ببینید چه پلاگین‌هایی برای این کار وجود دارد. استفاده از پلاگین برای تبدیل adobe XD به HTML یکی از راحت‌ترین روش‌های تبدیل برای توسعه‌دهندگان است؛ چون نیازی به کدنویسی ندارد. آن‌ها می‌توانند خیلی راحت زبان‌های CSS و html را در ابزار انتخابی خود وارد کرده و تمرکزشان را روی عملکرد بک اند قرار دهند.Anima: می‌توان گفت Anima یکی از بهترین ابزارها برای تبدیل adobe XD به HTML است. با این پلاگین شما می‌توانید لینک‌ها و بریک پوینت‌ها را نیز برای آرت‌بوردها اضافه کنید. این کار باعث می‌شود که صفحات شما با تغییر سایز مرورگر، سازگار باشند یا اصطلاحا صفحه‌ی وب شما ریسپانسیو شود. این پلاگین به ساخت حساب کاربری پرو دارد و ممکن است برای ایرانیان کارایی نداشته باشد.Web Export: با استفاده از Web Export شما می‌توانید استایل‌ها و کلاس‌ها را اعمال کنید و کدتان را با کتابخانه‌های موجود یک‌پارچه کنید. این پلاگین از سایر پلاگین‌های موجود برای تبدیل فایل xd به html و css پیشرفته‌تر است و کنترل و تنظیمات بیشتری روی کد اعمال می‌کند.Fireblade: این پلاگین یکی از پلاگین‌های ساده برای تبدیل ui به html، css، REACT، LIT-ELEMENT و REACT-NATIVE است. این ابزار به اندازه‌ی وب اکسپورت و انیما حرفه‌ای نیست؛ ولی می‌تواند چندین فرمت خروجی را پشتیبانی کند. با این پلاگین شما می‌توانید تنظیمات شخصی سازی روی آرت بورد خود انجام دهید و پارامترها را به صورت ریسپانسیو تعریف کنید.تبدیل adobe xd به کد با استفاده از پلاگین Web Exportدر این بخش نحوه‌ی تبدیل adobe xd به کد های html و css را با استفاده از پلاگین Web Export آموزش می‌دهیم.در مرحله‌ی اول روی گزینه‌ی منو در گوشه‌ی سمت چپ برنامه کلیک کنید.به سمت پایین اسکرول کنید تا به قسمت plugins برسید. روی آن کلیک کنید تا پنلش پلاگین باز شود و Discover Plugins را انتخاب کنید.در صفحه‌ی باز شده کلمه‌ی HTML را سرچ کنید. یک لیست از پلاگین‌ها برای شما نمایش داده می‌شود. از بین آن‌ها پلاگین Web Export را نصب کنید. برای این کار روی دکمه‌ی Install روبروی پلاگین کلیک کنید.بعد از نصب پلاگین، برای تبدیل ui به کد html پروژه‌ی موردنظر را انتخاب کنید و مراحل زیر را انجام دهید.با کلیک روی artboardای که می‌خواهید تبدیل کنید، آن را انتخاب کنید.روی دکمه‌ی منو بزنید و در بخش plugins وارد پلاگین web export شده و Export Artboard را انتخاب کنید. از همین پنجره شما می‌توانید با انتخاب گزینه‌ی دوم، چندین آرت‌بورد را نیز تبدیل کنید.با زدن روی دکمه‌ی Export Artboard یک پنجره برای شما باز می‌شود که باید در آن برای فایل خودتان نام انتخاب کرده و مسیری را برای ذخیره‌ی آن مشخص کنید. مسیری که می‌خواهید فایل در آن ذخیره شود را روبروی Export Folder وارد کنید.حال اگر می‌خواهید اسکریپتی یا استایل‌شیتی را به صورت اکسترنال اضافه کنید، از قسمت سوم و چهارم می‌توانید این کار را انجام دهید. قسمت بعدی تنظیمات مربوط به تغییر فونت است.در قسمت ششم پنجره، یعنی size شما باید ابعاد فایل خروجی را مشخص کنید.اگر نمی‌توانید ابعاد و نسبت‌ها را در قسمت سایز به صورت دقیق مشخص کنید، می‌توانید چک باکس موجود در بخش بعدی، با انتخاب گزینه‌های مناسب این کار را انجام دهید.در نهایت می‌توانید سایر تنظیمات مثل Keyboard Navigation و Auto-refresh را نیز با انتخاب در همین چک باکس روی فایل خود اعمال کنید.بعد از اینکه تنظیمات را به طور دقیق انجام دادید، می‌توانید با زدن روی دکمه‌ی آبی رنگ export، خروجی html خود را بگیرید. فایل خروجی در مسیری که مشخص کرده‌اید، ذخیره شده است.در همین بخش شما می‌توانید یک کپی از markup و css نیز بگیرید تا با توسعه‌دهنده‌ی خود به اشتراک بگذارید.این نکته را در نظر داشته باشید که به هیچ وجه فایل htmlای که خروجی گرفته شده، برای ساخت یک سایت کاملا کاربردی نیست. این فایل می‌تواند برای بخش‌هایی از سایت به کار رود یا توسط طراح بهبود داده شود تا کاربردی باشد.تبدیل قالب xd به html با استفاده از نرم افزاربرای تبدیل قالب xd به html با استفاده از نرم افزار شما باید ابتدا فایل طرح UI/UX خود را با فرمت SVG ذخیره کرده و سپس این فایل را با نرم افزارهای مبدل آنلاین یا آفلاین به html تبدیل کنید. استفاده از نرم افزارهای مبدل مزایا و معایب خاص خود را دارد. مثلا لی اوت‌های پیچیده به درستی تبدیل نمی‌شوند. CSS وجود ندارد و… . به خاطر همین استفاده از پلاگین‌ها برای تبدیل ui به html روش بهتری است.روشی ساده برای تبدیل ui به کدشما می‌توانید به جای استفاده از این دو روش، از نرم افزارهای جایگزین Adobe xd برای ساخت UI/UX استفاده کنید که مستقیما فایل شما را به html و Css تبدیل می‌کنند. یکی از این ابزارها Wondershare Mockitt است که می‌تواند به صورت مستقیم پروتوتایپ شما را به کدهای فرانت اند تبدیل کند. شما همچنین می‌توانید استایل‌های Css ، swift و اندروید را نیز برای این برنامه دانلود کرده و استفاده کنید. از مهم‌ترین ویژگی‌های Wondershare Mockitt می‌توان به موارد زیر اشاره کرد: رابط گرافیکی کاربر پسندکتابخانه‌ها و المان‌های گستردهویجت‌های پویاطراحی راحت صفحاتتزانزیشن‌ها، افکت‌ها و انیمیشن‌های جذابپیش نمایش سریع و وجود حلقه‌ی فیدبک بین طراح و ذینفعانراهنمایی و توضیحات خودکار برای کدنویسی راحت ترراهنمای جامع برای مبتدیانابزارهای دیگری نظیر Figma نیز وجود دارند که می‌توانید به صورت آنلاین یا نرم افزار دسکتاپ می‌توانید به آن دسترسی داشته باشید. این پلتفرم رایگان برای ساخت وبسایت، اپلیکیشن، لوگو و خیلی چیزهای دیگر از آن استفاده کنید. با کمک فیگما شما می‌توانید UI/UX سایتتان را بسازید و با چند کلیک آن‌ها را به کدهای xml، swift یا css تبدیل کنید.حرف آخرAdobe XD تنها یک ابزار برای ساخت پروتوتایپ اولیه از سایت شماست که به شما امکان می‌دهد، طراحی اولیه را بدون کدنویسی انجام دهید. هنگامی که چنین طرحی را آماده کردید، می‌توانید با استفاده از پلتفرمی نظیر Dreamweaver استفاده کرده و طرح‌تان را به کد html تبدیل کنید. این کار نیاز به دانش برنامه نویسی html و css دارد. معمولا طراحان حرفه‌ای تبدیل فایل xd به html و css را توصیه نمی‌کنند؛ چرا که مشکلات زیادی در آن به وجود می‌آید و ممکن است بسیاری از المان‌ها و روابط به درستی تعریف نشوند.  در واقع ادوبی ایکس دی قرار نیست کار طراحی رابط کاربری ما را انجام دهد؛ بلکه مثل یک نقشه کش، نقشه‌ی اولیه ساخت سایت را برای ما طراحی می‌کند. شما در طول کدنویسی متوجه بسیاری از مسائل و جزییات می‌شوید که در یک نقشه‌ی اولیه وجود دارد؛ بنابراین تبدیل ui به html ممکن است نواقص زیادی داشته باشد و شما را ناچار به دوباره نویسی کد کند. با این وجود ابزارهایی برای انجام این کار وجود دارد که می‌توانید با کمک آن‌ها تبدیل adobe xd به کد را انجام دهید. در این مقاله چند ابزار کاربردی را به شما معرفی کردیم. نظر شما چیست؟ فکر می‌کنید تبدیل ui به کد کار درستی است و می‌تواند جایگزین کدنویسی از صفر شود؟سوالات متداولآیا adobe xd کد تولید می‌کند؟خیر این برنامه در حال حاضر هیچ گزینه‌ای برای تولید کدهای CSS، یا پیش پردازنده‌هایی مثل Less،  Sass،SCSS یا Stylus ندارد.برای ساخت رابط کاربری فیگما بهتر است یا Adobe xd؟هر دو این ابزارها برای طراحی و نمونه سازی سایت به کار می‌روند؛ ولی برنامه‌ی شرکت ادوبی بدون نیاز به اینترنت نیز قابل استفاده است. ادوبی ایکس دی نسبت به فیگما ابزارهای بیشتری ارائه می‌دهد؛ ضمن اینکه طراحی را به صورت برداری انجام می‌دهد.  طراحی وبسایت با ادوبی به واقعیت نزدیک‌تر است و طراح بیشتر احساس نزدیکی با طرح دارد.آیا بعد از تبدیل فایل xd به html و css می‌توان از آن برای ساخت سایت استفاده کرد؟به لحاظ فنی این کار امکان پذیر است؛ ولی توصیه نمی‌شود. این کار بیشتر برای اهداف آموزشی و نشان دادن طرح خود به توسعه‌دهندگان کارایی دارد و برای توسعه‌ی یک وبسایت کارآمد اصلا قابل استفاده نیست.اشتراک گذاری:   </description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Sat, 12 Feb 2022 14:49:40 +0330</pubDate>
            </item>
                    <item>
                <title>ارز فوق‌العاده bee که رایگان بدست میاد حتما ببین...</title>
                <link>https://virgool.io/@green_python/%D8%A7%D8%B1%D8%B2-%D9%81%D9%88%D9%82-%D8%A7%D9%84%D8%B9%D8%A7%D8%AF%D9%87-bee-%DA%A9%D9%87-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%A8%D8%AF%D8%B3%D8%AA-%D9%85%DB%8C%D8%A7%D8%AF-%D8%AD%D8%AA%D9%85%D8%A7-%D8%A8%D8%A8%DB%8C%D9%86-tpdfkt204pfk</link>
                <description>سلام دوستان امروز اومدم یک ارزی مثل ارز pi که به نام bee هست رو بهتون بگم زیاد حرف نمیزنم بریم که ببینیم چجوری هست...ارز pi جوری که گفته میشه در سال 2025 به 1000 دلار خواهد رسید عالیه و امروز ارزی مثل ارز pi که bee نام داره از اون بهتر میشه جوری که کوین مارکت کپ میگه  برای دانلود در گوگل پلی bee را سرچ کنیدو ثبت نام کنید با ایمیل و در اخر کد رفرالی میخواد که شما اینو بزنید تا وارد بشید وگرنه وارد نمیشهghamary84این کد فقط برای ورود شما و یه تیم ساخته میشه بین من و شما و دیگران.و تمام هر ۲۴ ساعت یکبار بیاین فعال کنید و عشق کنید فوق‌العاده ارز نابی هست.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Wed, 09 Feb 2022 12:43:16 +0330</pubDate>
            </item>
                    <item>
                <title>اموزش حرفه ای pip پایتون</title>
                <link>https://virgool.io/@green_python/pip-install-python-ghvl5dhusa8x</link>
                <description>تو این اموزش کامل بهتون میگم چجوری با pip کار کنید توی پایتون. این اموزش برای اموزش های دیگر هم لازمه بریم سراغ اموزش:شما باید با cmd یا خط فرمان این عملیات رو انجام بدید برای انجام این عملیات شما باید cmd را باز کنید برای باز کردن cmd باید روی کیبورد دکمه های win +R بزنید که همون دکمه شبیه ارم ویندوزه با کلید R انگلیسی خب بریم سراغ ادامه کار:نکته:(شما هر جایی که cmd را باز کنید اونجا عملیات انجام میشه برای رفتن تو پوشه های دیگه باید از cd استفاده کنید که تو اموزش cmd کامل توضیح دادم ) اموزش اصلی:در پایتون یک چیزی وجود دارد به نام pip که برای نصب کتابخانه ها توی پایتون هست ساختار کلی اون به شکل زیره:pip install name library اول که pip  نوشتیم کمک میکنه تا ما به cmd بگیم که برای پایتون میخایم کاری بکنیم. در قسمت بعدی گفتیم install که معلوم هست یعنی نصب.در قسما اخر هم باید اسم کتابخانه رو کامل بگید مثلا ما میخایم کتابخانه  Time رو نصب کنیم باید این کد را بزنیمpip install timeخب الان شما بخودتون میگید چجوری من اسم کتابخانه ها رو پیدا کنم کاری نداره فقط باید تو گوگل سرچ کنید یا به سایت pypi بروید.دیدن کتابخانه های نصب شده :خب برای دیدن اینکه کتابخانه نصب شده یا نه باید تو همون مسیری که کتابخانه رو نصب کردیم کد pip freeze بزنیم تا بهمون نشون بده کدوم کتابخانه ها رو کامپیوتر نصب هست حذف کردن کتابخانه:برای حذف کردم کتابخانه هم باید همون کد نصب رو بزنید فقط فرقش اینکه بجای install باید بزنید uninstall بزنید مثل کد زیر:pip uninstall time نصب کردن pip :شما وقتی پایتون را روی ویندوز خود نصب کنید pip هم بصورت خودکار نصب میشود.⭕خوشحال میشم لایک کنید و توجه داشته باشید اگه این بلاگ دنبال کننده هاش بالا بره اموزش هک موبایل و حتا هک ویندوز رو میزارم .پایان:)</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Wed, 26 Jan 2022 16:10:48 +0330</pubDate>
            </item>
                    <item>
                <title>دریافت ip public به راحتی با پایتون</title>
                <link>https://virgool.io/@green_python/ip-public-fndfxeemnuce</link>
                <description>سلام به تمام کاربرانامروز اومدیم که بهتون یاد بدیم  ip public خودتونه پیدا کنید اصلا ببینیم ip public چی هست در سطح اینترنت شما یک ip دارید که با ان ip اینترنت شما را میشناستخب بریم سراغ اموزش :شما اول باید پایتون را در ویندوز یا مک یا لینوکس خود داشته باشید در مرحله دوم باید دو کتابخانه پایتون را نصب کنیم که برای نصب ان به cmd نیاز داریمکه اموزش کامل تو اموزش cmd هستاموزش نصب کتابخانه های پایتون هم اموزش هستخب بریم که کد هارو بزنیم شما میتونید با هر ادیتوری حتی با نوت پد هم بنویسید کد ها:import requests as reqfrom json import loadsr = req.get(&#x27;https://api.ipify.org?format=json&#x27;)date = r.content.decode(&#x27;utf8&#x27;)ip = loads(date)[&quot;ip&quot;]print(ip)تو خط اول ما کتابخانه requests رو فراخانی یا import کردیم و اسم اونو به نام req تعغیر دادیم.تو خط دوم از کتابخانه json بخش loads را فراخانی یا import کردیم.در خط سوم یک متغیری به نام r ساختیم و در داخل ان از کتابخانه requests یک تگی به نام get را قرار دادیم و گفتیم به سایت که در بالا نوشتیم پیغامی ارسال کن و دریافت کن   اگه حواستون باشه اسم کتابخانه requests به req تعغیر دادیم بخاطر همین گفتیم req.get در واقع همان requests.get است.تو خط چهارم یه متغیری به نام date ساختیم و گفتیم که کد های مارو به زبان فارسی هم پشتیبانی کنه در خط پنجم یه متغیری به نام ip تعریف کردیمو گفتیم کد هارو به حالت json در بیار و گفتیم loads یا بخون متغیر date رو بعد بریز تو ip در خط ششم گفتیم که print یا چاپ کنه اطلاعات که در متغیر ip هست.خروجی:من قسمت هایی رو مخفی کردم ولی برای شما کامل استمن قسمت هایی رو مخفی کردم ولی برای شما کامل استپایان.ممنون میشم لایک کنید </description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Wed, 26 Jan 2022 00:10:24 +0330</pubDate>
            </item>
                    <item>
                <title>مخفی کردن فایل ها در پشت هر فایلی که میخای.....</title>
                <link>https://virgool.io/@green_python/%D9%85%D8%AE%D9%81%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7-%D8%AF%D8%B1-%D9%BE%D8%B4%D8%AA-%D9%87%D8%B1-%D9%81%D8%A7%DB%8C%D9%84%DB%8C-%DA%A9%D9%87-%D9%85%DB%8C%D8%AE%D8%A7%DB%8C-bqo1cp9nddge</link>
                <description>سلام به تمام کاربران black codeامروز میخوام یه روش بهت یاد بدم که بدون هیچ کدی فقط با cmd  عکس-فیلم-فایل-برنامه-یا هرچی دیگه که به ذهنت میرسه رو پشت هر چیزی ذخیره کنی .برنامه های مورد نیاز:1-برنامه winrar   لینک دانلوداموزش:مرحله اول:اول cmd را باز کنید برای باز کردن وارد منو شوید و cmd را تایپ کنیدیا Ctrl + R بزنید و با باز شدن منو CMD را سرچ و اینتر را بزنید⭕نکته مهم: باید وارد پوشه فایل شوید که در اموزش cmd خودمون کامل  cmd را یاد دادممرحله دوم:در این مرحله باید یک پوشه ای بسازید و در داخل پوشه دو فایل قرار بدهید فایل اول فایلی است که میخواهیم مخفی کنیم برای این کار باید روی فایل کلیک راست کنید و گزینه add to rar را بزنید و فایل خروجی را در پوشه قرار دهیدفایل دوم فایلی است که فایل اول در ان مخفی میشودان را هم در کنار فایل یک قرار دهیدمرحله سوم (اخر):الان cmd را باز کنید و کد زیر را وارد کنیدcopy /b name1.rar + name2.jpg name3.jpgتوضیحات کد: در قسمت copy منظور این است که ما گفتیم کپی کن.در قسمت b/ یک کدی است که ما یک فایل جدید بسازیم.در قسمت name1.rar اسم فایلی که به فرمت rar تبدیل شده را وارد کنید.در قسمت +منظور است که فایل named.rar را  با name2.jpg  ادغام کند.⭕  نکته:(در فایل name2.jpg هر فرمتی که میخواهید می توانید بزارید فقط باید فایل دوم هر فرمتی که میخواهید بزنید.)در قسمت اخر یعنی فایل name3.jpg  فایل خروجی شما است شما هر اسمی که میخواهی میتوانید بزارید و هر فرمتی که دوست دارید این فایل فایل خروجی است و در پوشه اصلی شما کنار فایل های دیگر ذخیره میشود.چگونه فایل را از هم جدا کنیم وفایل مخفی شده را دوباره بازیابی کنیم تنها فقط باید فایل که خروجی گرفتید را با برنامه winrar باز کنید اگر ببینید بعد باز کردن عکس یه فایل دیگه هم داخل ان وجود دارد⭕هر نظری دارید و هر سوالی دارید در داخل کامنت ها بزارید تا ما جواب شما را بدهیم.❤❤ممنون می شوم لایک کنید❤❤پایان.</description>
                <category>Green-Python</category>
                <author>Green-Python</author>
                <pubDate>Tue, 25 Jan 2022 21:12:58 +0330</pubDate>
            </item>
            </channel>
</rss>