<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های عرفان نعمتی</title>
        <link>https://virgool.io/feed/@rfnmt</link>
        <description>حقوق خونده ای که عاشق تکنولوژی شد و الان بعنوان برنامه نویس فرانت اند در دیجیکالا کار میکنه. وبسایت من: OctaScript.com</description>
        <language>fa</language>
        <pubDate>2026-06-25 06:49:24</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/81450/avatar/WTfSDg.png?height=120&amp;width=120</url>
            <title>عرفان نعمتی</title>
            <link>https://virgool.io/@rfnmt</link>
        </image>

                    <item>
                <title>چرا برنامه نویسی رو بیشتر از علوم انسانی دوست دارم؟</title>
                <link>https://virgool.io/@rfnmt/%DA%86%D8%B1%D8%A7-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B1%D9%88-%D8%A8%DB%8C%D8%B4%D8%AA%D8%B1-%D8%A7%D8%B2-%D8%B9%D9%84%D9%88%D9%85-%D8%A7%D9%86%D8%B3%D8%A7%D9%86%DB%8C-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85-pusrxlj1v0pz</link>
                <description>چرا برنامه نویسی رو بیشتر از علوم انسانی (مثل جامعه شناسی، روانشناسی و...) دوست دارم؟ (بعنوان کسی که حدود 9 سال علوم انسانی خونده عرض میکنم)در دنیایی که ما می‎‌شناسیم، اصولا هر اتفاقی نتیجه منطقی یه اتفاق دیگه‌ست و رابطه علی و معلولی به شکل محکمی بین اتفاقات برقراره.اما مهمتر از اون، اینه که در برنامه نویسی این رابطه علت و معلولی، قابل ردیابی، پیگیری و مستند سازیه. یعنی شما به راحتی و با کمی جستجو، میتونید دلیل یه باگ یا یه فیچر یا یه اتفاق توی برنامه‌تون رو بفهمید.هر چیزی، نتیجه منطقی یک چیز دیگه‌ست و با دنبال کردن سرنخ ها، میتونید به اون علت برسید و رابطه ها رو کشف کنید، حتی اگر این منطق برامون عجیب باشه.مثلا اگه توی جاوااسکریپت، 1 رو با 1 جمع میکنیم (1 + &quot;1&quot;) و 11 رو بهمون میده، میدونیم که این عدد، نتیجه منطقی چیزیه به اسم Type Coercion که اون هم به دلیلی داره استفاده میشه! (حالا هر چقدر هم که برامون عجیب، احمقانه یا خنده دار باشه! مهم نیست)خیلی راحت میشه نخ ها رو به هم وصل کرد، تیکه های پازل رو کنار هم گذاشت، و در نهایت به یه تصویر کلی نسبتا دقیق رسید!اما در عین حال، این موضوع توی علوم انسانی چندان مشخص نیست. علت ها و معلول ها مستندسازی نشدن، در اکثر موارد قابل دسترسی و شناسایی نیستن، و در اکثر موارد، نمیشه گفت که A، علت اصلی و اساسی B به حساب میاد!به خاطر همینه که آزمایش و استفاده از روش علمی در علوم انسانی خیلی سخت تره. ما نمیتونیم تمام روابط رو توی محیط آزمایشگاهی شبیه سازی کنیم و ازشون نتیجه بگیریم که اگر A اتفاق بیفته، آنگاه B هم حتما اتفاق می افته! (البته این محدودیت ها توی علوم تجربی هم هست، منتهی در علوم انسانی خیلی خیلی بیشتره)بخاطر همین عدم دسترسی به وقایع و علت هاست که کار مطالعه در علوم انسانی بسیار سخت تر میشه. مخصوصا برای ذهنی مثل ذهن من که برای فهم وقایع، باید بینشون رابطه علت و معلولی رو ببینه و زنجیره سازی کنه! در غیر این صورت گیج و بی قرار میشه.حداقل برای من، کار در حوزه برنامه نویسی و کامپیوتر، خیلی ساده تر از کار و پژوهش در علوم انسانی بود و نتایج خیلی مستندتر، قابل اعتمادتر و دقیقتری رو هم میشه ازشون در آورد.این رو هم در نظر بگیرید که اصولا علوم انسانی، علوم مزاحم (برای قدرت) هستن و پژوهش در این حوزه ها، هم خطرناکه، هم کند، و هم معمولا بدون خروجی مالی (توی کشور ما و بقیه کشورهای شبیه ما البته!)پ.ن: عکس معنای خاصی نداره. فقط چون ازش خوشم اومد گذاشتمش :)</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Fri, 11 Dec 2020 19:16:15 +0330</pubDate>
            </item>
                    <item>
                <title>گوگل و دست‌کاری جریان اطلاعات</title>
                <link>https://virgool.io/@rfnmt/%DA%AF%D9%88%DA%AF%D9%84-%D9%88-%D8%AF%D8%B3%D8%AA%DA%A9%D8%A7%D8%B1%DB%8C-%D8%AC%D8%B1%DB%8C%D8%A7%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-b6kw7ohjfmqp</link>
                <description>چند روز پیش مطلبی رو خوندم که در عین سادگی و بدیهی بودن، بشدت برام جالب بود:شما وقتی مطلبی رو در گوگل سرچ می‌کنید، توی کل اینترنت سرچ نمی‌کنید، بلکه دارید در دیتابیس گوگل جستجو می‌کنید (نتایجی که گوگل ایندکس کرده)این حرف خیلی ساده و مشخصه اما نتایج خیلی عجیبی دارهمهم‌ترینش اینه که اگه گوگل نخواد من (بعنوان یه کاربر عادی) از یه چیزی مطلع بشم، به احتمال زیاد به خواسته‌ش میرسه!البته طبیعتا اگه من حرفه‌ای باشم، بالاخره یه درزی برای رسیدن به اطلاعات پیدا می‌کنم، اما شما جهانی رو درنظر بگیرید که در اون، اگه سایتی توی صفحه دوم گوگل باشه، عملا شانسی برای دیده شدن نداره!به این ترتیب، آقا یا خانوم گوگل به راحتی می‌تونه جریان اطلاعاتی که به ما می‌رسه رو تنظیم کنهالبته شواهدی وجود نداره که اینکارو می‌کنه (حداقل من بی‌اطلاعم)، اما بعنوان یه ادم بدبین به ساختارهای قدرت از خودم می‌پرسم: چرا نباید بکنه؟! چی میتونه جلوشو بگیره؟؟توجه داشته باشید که عملا هیچکس نمی‌دونه الگوریتم‌های این موتور جستجو چجوری کار می‌کنه و بر چه اساسی، دیتا رو به کاربر می‌رسونهحتی بهترین متخصصين سئو در دنیا هم دقیقا نمی‌دونن گوگل چجوری کار می‌کنه و منبع فعالیت‌شون، اعلان‌های خود گوگل و نتایج مثبت گذشته‌ستمساله این نیست که مثلا گوگل نتایج جستجوی من برای &quot;روغن مار برای کمردرد&quot; رو جابه‌جا می‌کنه، اما توی مسائل کلان سیاسی و اقتصادی، یا پنهان کردن کثافت‌کاری‌های بین‌المللی، احتمالش هست که دیتایی رو نشون من بده که آدم‌های کله‌گنده از قبل سفارش دادن و دوست دارن که من اونو باور کنم!حواسمون هست که ما توی دنیایی زندگی می‌کنیم توش پول و قدرت حرف اول رو می‌زنه، و با داشتن این دوتا، تقریبا هر کاری میشه کردو اینو هم میدونیم که وقتی یه کمپانی، به طور رایگان به ما خدمات میده، در حقیقت داره خود ما و اطلاعات‌مون رو خرید و فروش می‌کنه! و گوگل هم توی این بازی، یکی از بزرگترین سهم‌های ممکن در دنیا رو دارهپ.ن: من تقریبا نصف زندگیم رو مدیون اطلاعاتی هستم که از طریق سرچ توی گوگل بدست آوردم، اما به نظرم باید همیشه به ساختار قدرت، مخصوصا از نوع غیرشفافش با شک و تردید و حتی سوء‌ظن نگاه کرد!</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Fri, 19 Jun 2020 22:24:58 +0430</pubDate>
            </item>
                    <item>
                <title>رابطه کارفرما و کارمند: خریدار و فروشنده یا رئیس و زیردست؟!</title>
                <link>https://virgool.io/@rfnmt/%D8%B1%D8%A7%D8%A8%D8%B7%D9%87-%DA%A9%D8%A7%D8%B1%D9%81%D8%B1%D9%85%D8%A7-%D9%88-%DA%A9%D8%A7%D8%B1%D9%85%D9%86%D8%AF-%D8%AE%D8%B1%DB%8C%D8%AF%D8%A7%D8%B1-%D9%88-%D9%81%D8%B1%D9%88%D8%B4%D9%86%D8%AF%D9%87-%DB%8C%D8%A7-%D8%B1%D8%A6%DB%8C%D8%B3-%D9%88-%D8%B2%DB%8C%D8%B1%D8%AF%D8%B3%D8%AA-ukcyin3zwyel</link>
                <description>یه اشتباه شناختی وجود داره که توی بازار کار بشدت رایجه، به این صورت که رابطه‌ی بین کارفرما و کارمند، به شکل رئیس و زیردست دیده میشه.اما به نظر من باید از یه زاویه دیگه نگاه کرد:کارمند یا کارگر، فروشنده‌ست، به این صورت که داره زمان و مهارتش رو در ازای مبلغ مشخصی می‌فروشهکارفرما، رئیس نیست که قرار باشه کارمند رو بعنوان زیردست بازخواست کنه یا بهش دستور بده.توی فرایند خرید و فروش، دوطرف معامله، جایگاه یکسانی دارن و هر دوشون آدمای آزادی هستن که میتونن تصمیم بگیرن معامله کنن یا نه!کارفرما، میتونه تصمیم بگیره که خدمات طرف مقابل رو بخره یا نه؟! و کارمند هم آزاده که مهارت و زمانش رو بفروشه، یا نفروشه!هر وقت هم که یکی از طرفین حس کرد این معامله دیگه به نفعش نیست، میتونه طبق شرایطی که توافق شده، از معامله خارج بشه!اما یه مساله مهم وجود داره:زمانی که شما بعنوان کارمند، اعتماد به نفس و مهارت کافی رو نداشته باشین، اونوقت تصور می‌کنید که همه چیز به کارفرما بستگی داره و باید هر طور هست رضایت اونو کسب کنید تا بتونید زنده بمونید و زندگی‌تون رو بچرخونید!در حالیکه این نیاز، دو طرفه‌ست و اگه شما، به کارفرما به شکل یک خریدار نگاه کنید، حواستون جمع میشه که اگه قیمت و شرایط این خریدار مناسب نبود، همیشه خریدار بهتری وجود داره!البته بازم میگم، داشتن مهارت و اعتماد به نفس کافی خیلی مهمهوگرنه طبیعیه که تا وقتی سامسونگ و اپل (و سایر غول‌های عزیز به عنوان جنس خوب) هستن، کسی جی‌ال‌ایکس نمی‌خره!و تا وقتی که شما هم مهارت کافی و توان مذاکره نداشته باشید، یا بیکار می‌مونید، یا مجبورید به بردگی مدرن تن بدید! پ.ن 1: بعضی از کارفرماها، به جای تمرکز روی کسب درآمد و پیشرفت سیستم، به ارضای حس قدرت‌طلبی و سلطه‌گری خودشون فکر میکنن.یادتون باشه که هیچ پولی، ارزش آسیبی که این مدل آدما بهتون میزنن رو نداره!پ.ن 2: این مطلب قبلا در پیج اینستاگرام من به آدرس instagram.com/rfnmt منتشر شده.</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Sat, 15 Feb 2020 12:01:49 +0330</pubDate>
            </item>
                    <item>
                <title>۶ نکته در یادگیری برنامه‌نویسی که کمک میکنه برنامه‌نویس بهتری باشید</title>
                <link>https://dataio.ir/۶-نکته-در-یادگیری-برنامهنویسی-که-کمک-میکنه-برنامهنویس-بهتری-باشید-gdzzpgz5jbrd</link>
                <description>همه مون خوب میدونیم که یادگیری در فرایند برنامه نویس بودن (و شدن!) خیلی مهمه و ماها باید مدام درحال یادگیری باشیم تا خودمون رو با پیشرفت تکنولوژی هماهنگ نگه داریم.اما اینکار سخته و بعضی موقعا خیلی طاقت فرسا میشه. مخصوصا برای افرادی مثل من که تصمیم گرفتن به تنهایی و بدون آموزش رسمی و آکادمیک وارد این حوزه بشن.بعضی وقت‌ها، حتی کار به جایی میرسه که دلمون میخواد همه چیز رو رها کنیم و بیخیال همه‌ی پیشرفت‌هامون بشیم و بریم سراغ یه فیلد و حوزه‌ی کاری دیگه!اما چجوری باید این احساسات رو کنترل کنیم و از این موانع رد بشیم؟ چطور میشه مسیر یادگیری رو هموارتر و موثرتر کرد؟؟توی این مطلب، ۶ تا نکته مهم درمورد یادگیری برنامه نویسی رو برررسی میکنم که با رعایت اونها، می‌تونید روند پیشرفتتون رو سریعتر کنید اما تمامی این موارد، روی یک پیش‌فرض خاص بنا شده: اینکه شما یک یادگیرنده‌ی مداوم هستید!اینکه مدام مشتاق یادگیری باشید، مهمترین کلید و زیربنای تبدیل شدن به یک برنامه‌نویس خوبه.نکات کاربردی یادگیری برنامه نویسی1. رعایت تداوم و مدت۲۰ دقیقه کار و تمرین در هر روز، بهتر از اینه که ۳ بار در هفته، به مدت ۲ ساعت تمرین کنیم!دلیلش به ذهن خودآگاه و ناخودآگاه ما برمیگرده. گفته میشه که توان پردازشی ضمیر ناخودآگاه ما، ۴۰ برابر بیشتر از خودآگاه‌مونه.به این ترتیب، باید بتونیم از این ظرفیت استفاده کنیم و بخش زیادی از کار رو به اون بسپاریم. اما چطوری؟?بخش ناخودآگاه ذهن ما بیشتر روی فعالیت‌های روتین و عادت‌ها تمرکز داره.به این ترتیب، اگه خودتون رو عادت بدین که هر روز، به یک میزان مشخص، یک فعالیت مشخص رو انجام بدید، تونستید ضمیر ناخودآگاه رو وارد بازی کنید و ازش کار بکشید.اینطوری، دیگه قرار نیست یه توان ذهنی اضافی رو صرف آماده‌سازی و قانع کردن خودتون کنید:میدونیم که ذهن ما همیشه برای انجام فعالیت‌های سخت مانع تراشی میکنه و دنبال بهونه میگرده تا از انجام اون فرار کنه. تبدیل به عادت کردن یک موضوع، میتونه این مشکل رو تا حدودی حل کنه.پس بهتره که یک مدت زمان ثابت در هر روز رو به تمرین و یادگیری برنامه نویسی اختصاص بدید، تا اینکه سعی کنید یکباره و یکجا، مدت زمانی طولانی رو برای اون صرف کنید.2. بین یادگیری وقفه ایجاد کنیداین نکته، با مورد قبلی خیلی مرتبطه. ایجاد وقفه و فاصله بین زمان‌های یادگیری، میتونه به ذهن ما فرصت پردازش مفاهیم آموخته شده رو بده.بذارید موضوع رو با یه مثال روشن کنم. فرض کنید که میخواین توی یه روز، یه سریال خیلی طولانی رو ببینید. اینجوری، از هر اپیزود، صحنه‌های کمی توی ذهنتون می‌مونه و بعد تموم شدن سریال هم، معمولا فقط میتونید اول و آخر اون رو خوب به یاد بیارید (و با ارفاق، چندتا از صحنه‌های استثنایی وسط فیلم!)اما حالا فرض کنیم که قراره هر روز، فقط یه قسمت تماشا کنیم! به این ترتیب، تا روز بعد، ذهن ما فرصت داره که اتفاقات اپیزود قبلی رو تجزیه تحلیل کنه، رابطه بین اتفاقات رو بفهمه و اونها رو ثبت و ضبط کنه.این موضوع، توی یادگیری برنامه‌نویسی هم تاثیر زیادی داره. زمانی که میخواین یه مفهوم سنگین رو در یک مدت کوتاه یاد بگیرید، واقعا انتظار زیادیه که از ذهنتون بخواین تمام این موارد رو جذب کنه و طبیعیه که حجم زیادی از اطلاعات هرز میره و ثبت نمیشه.اگه با پروسه دیباگ سروکله زده باشین، احتمالا این قضیه براتون آشناست.برای من چندبار پیش اومده که درگیر حل یک باگ (یا حتی نوشتن یه قطعه کد) بودم و به هیچوجه راه حل مساله رو نمیتونستم پیدا کنم.توی این موقعیت‌ها، سعی میکنم فقط برم بخوابم یا استراحت کنم! و جالبه که بعد از زمان استراحت، معمولا اون باگ یا مساله توی چند دقیقه حل میشه!دلیلش هم تاحدودی مشخصه. در مدت استراحت، مغز فرصت پیدا کرده تجدید قوا کنه و شارژ بشه. علاوه بر اون، توی این مدت، پردازنده‌ی ما (مغزمون) داشته در پس زمینه روی مساله کار میکرده و داده‌ها رو کنار هم مرتب میکرده و باعث شده که ما راه‌حل نهایی رو راحت‌تر ببینیم!به این ترتیب، نتیجه اخلاقی این بخش، اینه که سعی نکنید مناره رو در گنجشک جا بدید! زمان کافی رو در اختیار مغزتون بذارید که بتونه مطالب رو پردازش کنه و اونا رو تا حد ممکن بفهمه.3. از دنیا جدا بشید!بعد از چند ساعت که به طور متمرکز روی یه موضوعی کار کردید، یا اینکه داشتید یه موضوع خاص رو یاد میگرفتید، حس خیلی خوبی بهتون دست میده و به یه لذت روانی عجیب میرسید (البته خستگی هم هست که خب طبیعیه)توی این مدت، نذاشتین چیزی حواستون رو پرت کنه، اخبار و شبکه‌های اجتماعی‌تون رو چک نکردین، به وبلاگ‌ها سر نزدید و فقط رو کار کردن متمرکز بودین.برنامه‌نویس‌های حرفه‌ای، این توانایی رو از خودشون نشون میدن. اونا میتونن ساعتها روی صندلی‌‍شون بشینن، از دنیای اطرافشون جدا بشن و فقط به کاری که دارن انجام میدن فکر کنن.زمانی که به این شکل از دنیا جدا میشید، تمرکز و خلاقیتتون به بالاترین حد خودش میرسه و ذهن، بهترین عملکرد ممکن رو از خودش نشون میده. وقتی هم که کارتون تموم شد، یه مقدار هورمون اندورفین توی بدنتون ترشح میشه که بخاطر اون، احساس خوشحالی و سرخوشی بهتون دست میده.البته اینم در نظر بگیرید که اگه میخواین در طولانی مدت، این تمرکز رو حفظ کنید، نباید مدت زمان هر بار استفاده از این تکنیک رو خیلی زیاد کنید. برای خود من، این مدت حدود ۳ تا ۴ ساعته ولی خب، بستگی به خودتون داره. اما بعنوان قاعده کلی، سعی کنید طولانی‌تر از این مدت نشه (چون باعث خستگی بلند مدت میشه)4. بین یادگیری فعال و غیرفعال تعادل ایجاد کنید.زمانی که یه مبحث برنامه‌نویسی رو از طریق کتاب یا ویدیو یا دوره آموزشی میگذرونید، یادگیری‌تون غیرفعال هست و فقط گیرنده مفاهیم و اطلاعات مختلف هستید.در عین حال، زمانی که برنامه‌نویسی رو ازطریق انجام دادن پروژه‌های آموزشی یاد می‌گیرید و تجربه کسب می‌کنید، در حال یادگیری فعال هستید.هردوی اینها مهمن اما مهمتر از اون، تعادلیه که باید بین‌شون برقرار کنید.اگه ابتدای راه یادگیری برنامه‌نویسی هستید، باید نسبت ۱ به ۲ رو برقرار کنید: دوبرابر مدت زمانی که تمرین می‌کنید رو باید برای یادگیری مفاهیم تئوریک و پایه‌ای صرف کنید. چرا که هنوز مفاهیم و اصول زیادی هستن که باید یاد بگیرید.به مرور زمان که پیشرفت می‌کنید، سعی کنید به نسبت یک به یک برسید: همون اندازه که مفاهیم رو میخونید و یادگیری غیرفعال دارید، باید تمرین کنید و یادگیری فعال هم داشته باشید.به مرور که تسلطتون بیشتر شد، میتونید این نسبت رو با توجه به نیاز تغییر بدید، اما همیشه حواستون باشه که عدم تعادل، میتونه باعث افت عملکردتون بشه.اگه تمام مسیرتون برای یادگیری برنامه‌نویسی به شکل فعال باشه، علاوه بر اینکه خیلی از مفاهیم پایه رو یاد نمی‌گیرید و متوجه نمیشید که کدها دقیقا چجوری کار میکنن، نمیتونید راه‌های تازه‌تر برای انجام کارهای قدیمی رو هم پیدا کنید.در مقابل، اگه کفه‌ی ترازوی یادگیری غیرفعال خیلی سنگین‌تر باشه، شما تبدیل میشید به انباری از دانش تئوریک که از پس نوشتن خیلی از کدها برنمیاد!قبلا توی مقاله “صفر تا صد تبدیل شدن به برنامه‌نویس وب” توضیح دادم که برنامه نویسی یه کار تجربیه و خیلی از فوت و فن‌های کار رو فقط وقتی متوجه میشید که دست به کد بشین و خودتون پروژه‌های مختلف رو انجام بدید.5. چیزی که یاد گرفتید رو آموزش بدیدوقتی که دارید یه چیزی رو آموزش میدید، خودتون دوبار یادش می‌گیرید!موقع یاد دادن یه موضوع یا مفهوم، میتونید اونو از یه زاویه کاملا متفاوت ببینید و چیزهای رو متوجه بشید که تا اون موقع براتون مخفی یا نامفهوم بودن.به این ترتیب، شناختتون از موضوع عمیقتر میشه و علاوه بر این، میتونید چیزهایی که فهمیدین رو با دیگران به اشتراک بذارید و توی مسیر موفقیت دیگران در یادگیری برنامه‌نویسی موثر باشید.برای آموزش هم راه‌های زیادی وجود داره. موضوع رو برای دوستتون یا توی جلسات کلاسی و دانشگاهی توضیح بدید یا اینکه فیلم‌های آموزشی تولید کنید و توی یوتیوب یا آپارات قرار بدید. (از طریق این ویدیوها، حتی امکان کسب درآمد هم وجود داره!)حتی میتونید یه سایت یا وبلاگ برای خودتون بسازید و اونجا مطالب آموزشی منتشر کنید (مثل همین سایت اکتااسکریپت!) نگران نباشید که خیلیا قبل شما اینکارا رو کردن!یادتون باشه، هدف اول، یادگیری خودتونه. علاوه بر این، خیلی مواقع پیش میاد که میتونید از یه زاویه جدید به قضایای قدیمی نگاه کنید و این خیلی ارزشمنده.اینو هم اضافه کنم که داشتن یه سایت یا وبلاگ، میتونه به برندینگ شخصی شما هم کمک کنه!6. یاد بگیرید که چطور و چه وقت استراحت کنید!من تمام تلاشی که شما بعنوان برنامه‌نویس انجام میدین رو درک میکنم و اونو ارزشمند میدونم (خود من بعد از یه روز طولانی کاری، ساعت ۱۰ شب پشت لپتاپ نشستم و دارم این مطلب رو مینویسم پس کاملا درک میکنم چی می‌کشید! D: )اما باید توجه داشته باشیم که اگه به صورت بی‌وقفه، سخت کار کنیم، خودمون تضعیف میشیم. یادتون باشه باطری بدن و ذهن‌تون، یه چیزی مثل باطری موبایل‌تونه و باید هر از گاهی شارژ بشه.به این ترتیب، حتما سعی کنید به اندازه کافی بخوابید و استراحت کنید، هر از گاهی یکم از موضوعات فاصله بگیرید و از همه مهمتر، سعی کنید از مسیر یادگیری برنامه‌نویسی لذت ببرید!یادمون نره که برای انجام دادن یه کار فوق‌العاده، باید مدت‌های طولانی، یه سری کار معمولی رو انجام بدیم!جمع بندیتوی این مقاله، سعی کردم چندتا نکته مهم در مسیر یادگیری برنامه‌نویسی رو بررسی کنم و بگم چه تله‌هایی ممکنه سر راهتون وجود داشته باشه.علاوه بر این، راه‌های فرار از این تله‌ها رو هم گفتم تا بتونیم یه نگاه بلند مدت داشته باشیم و برای رسیدن به نتایج موقتی، خودمون و اهدافمون رو قربانی نکنیم.به قول انگلیسی‌ها:Good Things, take time!طبق معمول، خوشحال میشم اگه نکته‌ای درمورد این موضوع به ذهنتون رسید، برام بنویسید و حتی خوشحالتر میشم اگه این مطلب رو برای دوستاتون هم بفرستید و اگه دوست داشتید، به سایت من هم سر بزنید: octascript.com</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Mon, 10 Feb 2020 16:55:45 +0330</pubDate>
            </item>
                    <item>
                <title>فکر کردن در چارچوب ری‌اکت</title>
                <link>https://virgool.io/@rfnmt/%D9%81%DA%A9%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%B1-%DA%86%D8%A7%D8%B1%DA%86%D9%88%D8%A8-%D8%B1%DB%8C%D8%A7%DA%A9%D8%AA-dqjh6ihnj00v</link>
                <description>پیش نوشت: من معمولا سعی میکنم به زبون محاوره‌ای بنویسم تا توضیح و فهم مطالب راحت‌تر بشه. اما این متن رو برای مشارکت در پروژه ترجمه مستندات ری‌اکت جی اس ترجمه کردم و مجبور بودم که از قواعد نوشتاری این پروژه تبعیت کنم.متن اصلیبه عقیده ما، ری‌اکت بهترین راه برای ساخت وب اپلیکیشن هایی سریع و بزرگ، با استفاده از جاوااسکریپت است و برای ما در فیسبوک و اینستاگرام خیلی خوب جواب داده است.ری‌اکت بخش‌های خیلی خوب زیادی دارد، اما یکی از بهترین آنها، چگونگی نگرش به اپ‌هایی است که مشغول به ساخت آنها هستید. در این سند (Document)، به فرایند تفکر در ساخت یک جدول محصولات با قابلیت جستجو خواهیم پرداخت، و برای ساخت این جدول از ری‌اکت استفاده میکنیم.شروع با یک مدلتصور کنید که ما از قبل یکJSON API و یک مدل، که توسط طراح آماده شده، داریم. مدل آماده شده، چیزی شبیه به این است:و JSON API هم داده‌هایی را باز می‌گرداند که به صورت زیر است: https://virgool.io/p/dqjh6ihnj00v/[  https://virgool.io/p/dqjh6ihnj00v/%7Bcategory:  https://virgool.io/p/dqjh6ihnj00v/%7Bcategory:  https://virgool.io/p/dqjh6ihnj00v/%7Bcategory:  https://virgool.io/p/dqjh6ihnj00v/%7Bcategory:  https://virgool.io/p/dqjh6ihnj00v/%7Bcategory:  https://virgool.io/p/dqjh6ihnj00v/%7Bcategory:  https://virgool.io/p/dqjh6ihnj00v/]; قدم اول: رابط کاربری را به یک سلسله از کامپوننت‌ها تقسیم کنیداولین کاری که باید کنید، این است که دور هر کدام از کامپوننت‌های موجود خط بکشید و تمامی کامپوننت‌ها را به همراه زیرمجموعه‌های آن (Subcomponents) مشخص کنید و برای هر کدام یک نام در نظر بگیرید. (هر کامپوننت ممکن است یک یا چند کامپوننت زیرمجموعه داشته باشد)اگر به همراه یک طراح (دیزاینر) کار میکنید، ممکن است او قبلا همین کار را انجام داده باشد. نامگذاری آنها برای لایه‌های مختلف در فایل فتوشاپی که تهیه کرده‌اند، میتواند نام کامپوننت‌ها در کد شما هم باشد!اما چطور بفهمیم که یک بخش باید تبدیل به یک کامپوننت جداگانه شود؟در این موارد بهتر است از همان تکنیک‌هایی استفاده کنیم که زمان تصمیم‌گیری برای تعریف یک تابع Function یا یک شیء Object جدید به کمک‌‌‌مان می آمدند.یکی از این تکنیک‌ها اصل مسئولیت واحد (single responsibility principle) است. این اصل بیان میکند که هر کامپوننت، باید در حالت ایده‌آل فقط یک کار را انجام دهد و اگر وظایف آن گسترش یافت، باید برای آن کامپوننت‌های زیرمجموعه تعریف کرد و وظایف اضافی را به آنها سپرد.از آنجایی که اغلب یک مدل داده JSON به کاربر نشان داده میشود، متوجه خواهید شد که اگر این مدل درست ساخته شده باشد، رابط کاربری و ساختار کامپوننت‌های شما هم به درستی قابل ترسیم و تعیین خواهد بود. این بدان دلیل است که مدل داده(Data Model) و رابط کاربری معمولا از یک معماری اطلاعات (information architecture) یکسان تبعیت میکنند. رابط کاربری را طوری به کامپوننت‌های مختلف تقسیم کنید که هر کامپوننت با بخش خاصی از مدل داده مرتبط باشد.در این تصویر می بینید که ما پنج کامپوننت در برنامه خود داریم و اطلاعاتی که هر کامپوننت نمایش میدهد را با حروف ایتالیک مشخص کرده ایم:کامپوننت FilterableProductTable به رنگ نارنجی: شامل تمام برنامهکامپوننت SearchBar به رنگ آبی: ورودی‌های کاربر را دریافت میکندکامپوننت ProductTableبه رنگ سبز: تمامی مجموعه اطلاعات را با توجه به ورودی کاربر نمایش داده و اطلاعات را فیلتر میکندکامپوننت ProductCategoryRow به رنگ فیروزه ای: یک تیتر را برای هر دسته نمایش میدهدکامپوننت ProductRow به رنگ قرمز: یک ردیف را برای هر محصول نمایش میدهداگر نگاهی به کامپوننت ProductTable بیندازید، متوجه میشوید که تیترهای جدول (شامل “Name” و “Price” ) کامپوننت جداگانه‌ای ندارند که بیشتر یک موضوع سلیقه‌ای است و دلایل و استدلال‌هایی برای استفاده یا عدم استفاده از یک کامپوننت جداگانه برای آنها وجود دارد.در این مثال، آن را بخشی ازProductTable قرار دادیم، چرا که جزئی از مجموعه داده ها data collection بوده و رندر کردن آن وظیفه ProductTable است. با این حال، اگر هدر جدول پیچیده‌تر شود (مثلا اگر گزینه‌ای برای مرتب کردن لیست محصولات اضافه می‌کردیم)، مطمئنا منطقی‌تر بود که آنها در یک کامپوننت جداگانه با نام ProductTableHeader بگذاریمحالا که کامپوننت‌های موجود در پروژه را مشخص کردیم، وقتش رسیده که سلسله مراتب آنها را نیز تعیین کنیم. کامپوننت‌هایی که با توجه به مدل، درون یک کامپوننت دیگر قرار می‌گیرند، فرزند آن محسوب می‌شوند:FilterableProductTable     SearchBar     ProductTable          ProductCategoryRow          ProductRowقدم دوم: یک نسخه ایستا (Static) در ری‌اکت بسازیدبعد از اینکه سلسله مراتب را مشخص کردید، نوبت به پیاده‌سازی اپ میرسد. راحت‌ترین راه این است که نسخه‌ای بسازید که مدل داده ها را می‌گیرد و رابط کاربری را تولید می‌کند اما هیچ تعاملی با کاربر ندارد. بهتر است که این دو فرایند (نوشتن نسخه تعاملی و ایستا) را از هم جدا کنیم، به این دلیل که ساخت نسخه ایستا، به مقدار زیادی نوشتن و مقدار کمی فکر کردن نیاز دارد. اما اضافه کردن امکان تعامل و پویایی، احتیاج به مقدار زیادی تفکر دارد و نیاز آن به نوشتن بسیار کمتر است. دلیلش را در ادامه خواهیم دید.برای ساخت یک نسخه ایستا که مدل داده را رندر کند و نمایش دهد، باید کامپوننت‌هایی بسازید که از بقیه کامپوننت‌ها استفاده میکنند و داده ها را از طریق props انتقال می‌دهند. Props امکانی است که بوسیله آن، داده‌ها از کامپوننت والدparent به کامپوننت فرزندchild منتقل میشوند. اگر که با مفهومstate آشنایی دارید، هرگز از آن برای ساخت نسخه ایستا استفاده نکنید! State برای ایجاد تعامل طراحی شده و داده‌ای است که در طول زمان تغییر میکند و از آنجایی که فعلا روی نسخه ایستا کار می‌کنیم، نیازی به آن نخواهیم داشت.می‌توانید روند ساخت را از بالا به پایین یا از پایین به بالا شروع کنید. به این معنا که هم می‌توانید از بالاترین کامپوننت در سلسله مراتب آغاز کنید ،مثلا (FilterableProductTable) یا از کامپوننت‌هایی که در سطوح پایین‌تری قرار دارند مثل (ProductRow) در مثال‌های ساده‌تر، معمولا شروع از بالا به پایین راحت‌تر است. در حالیکه در پروژه‌های بزرگ‌تر، بهتر است که از پایین به بالا پیش بروید و همزمان با ساخت اپ، برای آن تست نیز بنویسید.در پایان این گام، شما کتابخانه‌ای از کامپوننت‌ها خواهید داشت که مدل داده را رندر می‌کند. از آنجایی که با نسخه ایستا سر و کار داریم، کامپوننت‌ها تنها متد ()render خواهند داشت. کامپوننتی که در راس سلسله مراتب قرار دارد، یعنی (FilterableProductTable) مدل داده‌ها را بعنوان یک prop دریافت می‌کند. اگر تغییراتی را در مدل داده‌های زیربنایی پروژه ایجاد کنید و دوباره ()ReactDOM.render را صدا بزنید، رابط کاربری بروز رسانی (update) خواهد شد و میتوانید ببینید که رابط کاربری چگونه و در کجا تغییر می‌کند. جریان یکطرفه داده one-way data flow در ری‌اکت (که با نام binding یک‌طرفه نیز شناخته میشود) همه چیز را ماژولار و سریع نگه می‌دارد.قدم سوم: مشخص کردن یک نمونه حداقلی (اما کامل) از state های موردنیاز در رابط کاربریبرای تعاملی کردن رابط کاربری، باید بتوانید در مدل داده زیربنایی پروژه [همان داده‌های اولیه] تغییر ایجاد کنید. اینکار در ری‌اکت از طریق state انجام میشود. برای ساخت اپ به صورت صحیح، ابتدا باید به مجموعه‌ای حداقلی از داده‌های قابل تغییر فکر کنید که در پروژه شما نیاز است. کلید این موضوع، اصل خودت را تکرار نکن است. تعیین کنید که در حال حاضر، مختصرترین مجموعه state که برنامه شما نیاز دارد چیست و بقیه موارد را به مرور، و در زمان لزوم محاسبه و تعیین کنید.برای مثال، اگر یک برنامه برای لیست کارها (TODO List) طراحی میکنید، یک آرایه از آیتم‌های موجود در لیست کارها را در دسترس نگه دارید. اما دیگر نیازی به تعیین یک state برای شمارش آیتم‌ها ندارید. به جای آن، زمان رندر کردن تعداد، میتوانید از طول آرایه آیتم‌ها (Array.length) استفاده کنید.تمام بخش های داده در مثال خودمان را در نظر بگیرید:یک لیست اصلی از محصولاتمتنی که کاربر جستجو میکندمقدار checkboxلیست محصولات فیلتر شده پس از جستجو توسط کاربربه طور جداگانه سراغ هر یک از این موارد می‌رویم تا ببینیم که کدامشان state هستند. درمورد هر بخش، این 3 سوال را از خودتان بپرسید:آیا این داده از طرف یک کامپوننت والد و بوسیله props انتقال داده شده؟ اگر جواب مثبت است، پس احتمالا این داده state نیست.آیا در طول زمان بدون تغییر می ماند؟ اگر اینطور است پس احتمالا باز هم state نیست.آیا میتوانید آن را بر اساس یکstate یا props موجود محاسبه کنید؟ اگر اینطور است، پس حتما این دادهstate نیست.لیست اولیه و اصلی محصولات، بعنوان یک props منتقل میشود، بنابراینstate نیست. اما به نظر میرسد که متن جستجو و مقدار چک باکس state هستند چرا که در طول زمان تغییر میکنند و نمی‌توان آن‌ها را بوسیله داده دیگری محاسبه کرد. در نهایت، لیست محصولات فیلتر شده پس از جستجو همstate نیست، چرا که می‌توان آن را از ترکیب لیست اصلی و اولیه با متن سرچ کاربر و مقدار چک باکس بدست آورد.پس در مجموع، state  این اپ عبارتند از:متنی که کاربر در فیلد جستجو وارد میکندمقدار checkboxقدم چهارم: مشخص کنید کهstate در کجا باید قرار بگیردبعد از اینکه ما حداقل state مورد نیاز در پروژه را مشخص کردیم، نوبت این است که بدانیم هر state باید در کدام کامپوننت قرار بگیرد.به یاد داشته باشید: ری‌اکت بر مبنای جریان یک طرفه و رو به پایین داده در سلسله مراتب کامپوننت‌ها کار می‌کند. ممکن است این موضوع که کدام کامپوننت، کدام state را در خود جا می‌دهد، فورا مشخص و واضح نباشد. اغلب این مساله، چالش برانگیزترین بخش برای افرادیست که تازه با ری‌اکت آشنا شده اند.پس برای اینکه متوجه موضوع بشوید، این قدم ها را برای هر state در برنامه خود دنبال کنید:کامپوننت‌هایی را که چیزی را براساس آن state رندر می‌کنند، مشخص کنید.یک کامپوننت مشترک صاحبstate را پیدا کنید (کامپوننتی که در سلسله مراتب برنامه، بالاتر از دیگر کامپوننت‌های استفاده کننده ازstate قرار می‌گیرد و خود نیز از آنstate استفاده می‌کند)صاحب مشترک یا کامپوننت دیگری که در سلسله مراتب، بالاتر قرار می‌گیرد، باید صاحب state باشند.اگر نتوانستید کامپوننتی را پیدا کنید که قرار دادن state در آن منطقی باشد، یک کامپوننت جدید ایجاد کنید که منحصرا برای نگهداری state باشد و آن را جایی بالاتر از صاحب مشترک state در سلسله مراتب کامپوننت‌ها قرار دهید.حالا این استراتژی را برای برنامه خودمان اجرا کنیم:کامپوننت ProductTable نیاز دارد که براساس state، لیست محصولات را فیلتر کند و کامپوننت SearchBar هم نیاز دارد که متن جستجو و مقدار چک باکس را نمایش دهد (دو state موجود در برنامه)صاحب مشترک در این مثال، کامپوننت FilterableProductTable است.پس منطقی به نظر میرسد که state ها را در کامپوننت FilterableProductTable قرار دهیم.به این ترتیب، در ابتدا ویژگی {this.state = {filterText: &#x27;&#x27;, inStockOnly: false را در بخش  constructor در کامپوننت FilterableProductTable قرار میدهیم تا state ابتدایی برنامه شما را نشان دهد.سپس، filterText و inStockOnly را به کامپوننت‌های ProductTable و SearchBar بعنوان props انتقال می‌دهیم. درنهایت، این props برای فیلتر وردی های محصولات در ProductTable و مشخص کردن مقدار در چک باکس موجود در SearchBar به کار می‌روند.حالا می‌توانید ببینید که برنامه شما چطور عمل می‌کند: filterText  را به &quot;ball&quot; تغییر بدهید و برنامه را دوباره بارگذاری (refresh) کنید. خواهید دید که جدول داده‌ها به درستی تغییر می‌کند.قدم پنجم: اضافه کردن جریان معکوس دادهتا به اینجای کار، ما برنامه‌ای ساختیم که به طور صحیح و به شکل تابعی از props و state، رندر می‌شد و جریان داده در آن از بالا به پایین بود. اما حالا زمان آن است که برنامه، جریان داده را به شکل معکوس و رو به بالا پشتیبانی کند: فرم‌های موجود در پایین‌ترین بخش سلسله مراتب کامپوننت‌ها، باید بتوانند state درون کامپوننت FilterableProductTable را تغییر دهند.ری‌اکت، این جریان داده را ساده و شفاف میکند تا به کمک آن، بتوانید طرز کار برنامه‌تان را درک کنید، اما این مساله احتیاج به نوشتن و تایپ بیشتری نسبت به data binding دو طرفه و مرسوم دارد.اگه در فیلد جستجو تایپ کنید یا مقدار چک باکس را تغییر دهید [تیک آن را فعال کنید] خواهید دید که ری‌اکت، این تغییرات را نادیده می‌گیرد. این موضوع عمدی است، چرا که ما تعیین کردیم، value در input همواره با مقدار state که از کامپوننت FilterableProductTable منتقل می‌شود، برابر باشد.بیایید به این فکر کنیم که می‌خواهیم چه اتفاقی بیفتد؟ می‌خواهیم مطمئن شویم که هر زمان کاربر، تغییراتی را در فرم (فیلد جستجو یا چک باکس) اعمال می‌کند، state بروز رسانی شده و تغییرات را منعکس کند. از آنجایی که کامپوننت‌ها فقط مجاز به تغییر state موجود در خودشان هستند، کامپوننت FilterableProductTable کال‌بک‌هایی (callback) را به کامپوننت SearchBar انتقال می‌دهد تا هر وقت نیاز به تغییر state وجود داشت، اجرا شوند. می‌توانیم از رویداد  برای ورودی‌ها استفاده کنیم تا به این طریق، کامپوننتFilterableProductTable از لزوم اجرای تغییر مطلع شود. آن کال‌بک که از کامپوننت FilterableProductTable انتقال می‌یابد، ()setState است و باعث تغییر و بروز رسانی اپ میشود.همین!امیدواریم که این مطلب، به شما ایده داده باشد که چگونه باید درباره ساختن کامپوننت‌ها و برنامه‌ها در ری‌اکت فکر کنید. البته ممکن است که میزان نوشتن، بیشتر از حدی باشد که به آن عادت دارید، اما به یاد داشته باشید که کد، بیشتر از اینکه نوشته شود، خوانده می‌شود و خواندن این کد که به شکل ماژولار، ساده و شفاف نوشته شده است، بسیار راحت‌تر خواهد بود.به محض اینکه ساخت کتابخانه‌های بزرگ متشکل از کامپوننت‌ها را شروع کنید، بابت این شفافیت و ماژولار بودن سپاسگزار خواهید شد، و با وجود امکان استفاده مجدد از کدها، تعداد خط‌های کد شما به مرور کم‌تر خواهد شد! :)پ.ن: برای خوندن مطالب بیشتر، میتونید به سایت من مراجعه کنید. https://octascript.com </description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Sat, 01 Feb 2020 14:11:28 +0330</pubDate>
            </item>
                    <item>
                <title>ارتباط با خدا از طریق تکنولوژی!</title>
                <link>https://virgool.io/@rfnmt/%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-%D8%AE%D8%AF%D8%A7-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%D8%AA%DA%A9%D9%86%D9%88%D9%84%D9%88%DA%98%DB%8C-xa71om1afwuq</link>
                <description>رفقای مسیحی توی فرایند دینداری شون، حرکات جالبی میزننتوی یکی از این باحال بازیا، واتیکان ( پایتخت مسیحیت ) یه تسبیح الکترونیکی معرفی کرده که روش علامت صلیب رو میکشید، به عرش الهی وصل میشید ( شوخی ) و شروع به ذکر گفتن میکنید!این اپلیکیشن، دعاهای شما رو ثبت و ضبط میکنه و حتی بهتون میگه چقدر پیشرفت داشتید ( و توی درگاه الهی چقدر مقرب شدین!)واتیکان از این کارای بامزه زیاد انجام دادهمثلا چند وقت پیش هم یه اپلیکیشن به اسم click to pray منتشر کرده بود که یه پلتفرم برای دعا به حساب می اومدوارد اپ میشدیندرخواست دعا میدادینبقیه براتون دعا میکردنشما هم برای بقیه دعا میکردین!پ.ن: اون موقع که مسیحیت در بند تکنولوژی نبود، ما خودمون صلوات شمار مذگان داشتیم!</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Mon, 30 Dec 2019 12:21:45 +0330</pubDate>
            </item>
                    <item>
                <title>سرگذشت آقای جاوااسکریپت!</title>
                <link>https://virgool.io/@rfnmt/%D8%B3%D8%B1%DA%AF%D8%B0%D8%B4%D8%AA-%D8%A2%D9%82%D8%A7%DB%8C-%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-utm4dvsrkbk8</link>
                <description>اگه بخوام خیلی ساده توضیح بدم، جاوااسکریپت یه زبون برنامه نویسیه که صفحه وب رو زنده میکنه و بهش روح میده. روحی که توانایی تعامل و ارتباط برقرار کردن با کاربر رو داره.همونطور که میدونیم، زبان نشانه گذاری HTML اسکلت بندی و ساختار یه صفحه وب رو شکل میده و CSS هم وظیفه خوشگل کردن این صفحه رو به عهده داره. اما این قضیه واقعا کافی نیست و ما احتیاج داریم که وقتی کاربر به سایت ما میاد، باهاش تعامل داشته باشه و مثل یه صفحه که یه سری اطلاعات توش هست، باهاش رفتار نکنه. و اینجاست که جاوااسکریپت وارد میشود.با استفاده از این زبون برنامه نویسی، میشه حرکت، انیمیشن، تعامل و پاسخگویی به کاربر رو به سایت اضافه کرد. (البته حرکت و انیمیشن توی CSS 3 هم وجود داره)یه مثال ملموس از کاربرد زبان برنامه نویسی جاوا اسکریپت، وقتیه که شما وارد یه سایت فروشگاهی میشید و یه کالا رو به سبد خریدتون اضافه میکنید. این زبون برنامه نویسی، بلافاصله قیمت کالا، هزینه ارسال، مالیات بر ارزش افزوده و چیزای دیگه رو به فاکتور اضافه میکنه و اونو بهتون ارائه میده.یا مثلا زمانی که میخواین یه فرم پر کنید و اشتباهی توی فیلد شماره تلفن (که باید توش عدد باشه) آدرستون رو وارد میکنید، جاوا اسکریپت وظیفه داره که بهتون اخطار بده و اگه اون سایت، یه برنامه نویس خوب داشته باشه، با استفاده از جاوا اسکریپت میشه خیلی راحت کاربر رو راهنمایی کرد که برای هر فیلد، چه نوع اطلاعاتی باید وارد بشه.(یاد یکی از سایت های دولتی افتادم که وقتی میخواستم توش ثبت نام کنم، باید یه فرم خیلی گنده رو پر میکردم و وقتی کلید تایید رو زدم، ارور داد که: اطلاعات وارد شده نادرست است! حالا من باید از اول چک میکردم که کجا رو اشتباه کردم، در حالیکه به راحتی میشد با استفاده از جاوااسکریپت، خطاها رو دقیق مشخص کرد و راه رفعشون رو به کاربر نشون داد)علاوه بر این، با استفاده از این زبان، میشه رابط کاربری (UI) یه سایت رو خیلی هیجان انگیزتر کرد. برای مثال، میشه به جای استفاده از چندتا عکس ثابت کنار هم توی سایت، یه اسلایدر متحرک قشنگ ساخت.یا مثلا میشه یه صفحه یه صفحه پر از اطلاعات رو از شلوغ پلوغی نجات داد. به این صورت که اطلاعات رو به بخش های مختلفی تقسیم میکنیم و کاربر فقط وقتی میتونه اون اطلاعات رو ببینه که روی اسم بخش کلیک کنه.و حتی میتونیم با باز شدن یه بخش، به بخش های دیگه دستور بدیم که بسته بشن تا نظم و ترتیب صفحه حفظ بشه. المان هایی مثل پاپ آپ هم با استفاده از جاوااسکریپت ساخته میشن (ولی شما سعی کنید استفاده نکنید، پاپ آپ ها خیلی آزاردهنده ان، حداقل برای من!)یکی از مزیت هایی که جاوااسکریپت برای صفحه وب میاره، آنی بودن واکنش هاست و به صفحات اجازه میده که بلافاصله به فعالیت های کاربر مثل کلیک کردن روی یه لینک یا دکمه، واکنش نشون بدن.خوبی این زبان برنامه نویسی، اینه که توی واکنش نشون دادن، محدودیت زبان های سمت سرور مثل PHP رو نداره.اگه نیاز باشه کاری رو از زبان سمت سرور بخوایم، باید اول از طریق مرورگر یه درخواست برای سرور بفرستیم. درخواست اونجا پردازش و انجام میشه و بعد نتیجه دوباره به مرورگر برمیگرده. پس در حالت عادی، هر بار که ما بخوایم اتفاقی توی سایت بیفته، باید یه درخواست به سرور بفرستیم و منتظر بشیم که صفحه دوباره بارگذاری بشه.اگه یه سر به گوگل مپ بزنید، میتونید کاربرد جاوااسکریپت رو در عمل ببینید. گوگل مپ بهتون اجازه میده که با زوم کردن، استان، شهر، خیابون و کوچه محل زندگیتون رو ببینید، بدون اینکه بخواد برای اجرای درخواستتون، صفحه رو دوباره لود کنه.نقشه های آنلاین دیگه ای هم قبل از گوگل مپ فعال بودن اما اونا برای پردازش درخواست کاربر، نیاز داشتن که درخواست رو به سرور ارسال کنن و این درخواست باید دوباره به مرورگر کاربر فرستاده میشد و صفحه دوباره لود میشد، تا شما بتونید چیزی که میخواین رو ببینید: یه فرایند بسیار کند و زمان بر!اما حالا، گوگل مپ با استفاده از زبان برنامه نویسی جاوا اسکریپت، میتونه به طور آنی به خواسته های کاربر پاسخ بده و شما رو خیلی سریع به چیزی که میخواین برسونه.برنامه هایی که با جاوااسکریپت نوشته میشن، طیف وسیعی دارن. از یه پاپ آپ ساده گرفته، تا برنامه های فوق العاده پیچیده ای مثل گوگل داکس که یه محیط کامل مثل آفیس رو توی مرورگر شما اجرا میکنه و خیلی مواقع، این حس رو بهتون میده که انگار یه برنامه مجزا رو دارید روی سیستم تون اجرا میکنید و اصلا به چشم نمیاد که یه صفحه وبه!اگه دوست داشتید، ادامه این مطلب رو میتونید توی سایت من بخونید: https://octascript.com/javascript-and-a-brief-history/ </description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Sat, 07 Dec 2019 18:05:06 +0330</pubDate>
            </item>
                    <item>
                <title>۵ ابزار برنامه نویسی وب که زندگی تون رو راحت تر میکنه!</title>
                <link>https://virgool.io/@rfnmt/%DB%B5-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88%D8%A8-%DA%A9%D9%87-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-%D8%AA%D9%88%D9%86-%D8%B1%D9%88-%D8%B1%D8%A7%D8%AD%D8%AA-%D8%AA%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D9%87-acgbtwpbbdot</link>
                <description>اینترنت، نه فقط میتونه بهتون برنامه نویسی یاد بده، بلکه میتونه ابزار هایی رو در اختیارتون قرار بذاره که این فرایند رو بسیار ساده تر کنه و دیگه لازم نباشه موقع نوشتن کد، درگیر پیچیدگی های عجیب و غریب بشید. ابزار های آنلاین خیلی زیادی وجود داره که میتونه در مراحل مختلف نوشتن یه برنامه یا سایت بهتون کمک کنه و باعث صرفه جویی توی زمان بشه.قبلا توضیح دادم که چطور میتونیم برنامه نویس وب بشیم و حالا توی این مطلب، لیستی از ابزارهای بدردبخور رو برای این برنامه نویسی وب منتشر میکنم. شما هم اگه ابزار برنامه نویسی دیگه ای رو میشناسید،‌ حتما کامنت بذارید و معرفیش کنید.۱. سرویس Can I Useپشتیبانی مرورگرها از تکنولوژی مورد استفاده شما در سایت تون، مساله مهمیه. حتی اگه بهتر برنامه دنیا رو بنویسید اما قابل اجرا نباشه، فایده ای نداره.اما قضیه از جایی سخت میشه که ما اولا نمیدونیم کاربر قراره از چه مرورگری استفاده کنه، و ثانیا نمیتونیم تمام نسخه های مرورگر ها رو تست کنیم و از کار کردن فلان ویژگی سایتمون مطمئن بشیم.اما خبر خوب اینه که سرویس آنلاین Can I Use این کار رو برامون انجام میده. فقط کافیه وارد سایتش بشید،‌تکنولوژی مورد نظرتون رو سرچ کنید و مرورگرهایی که اون رو پشتیبانی میکنن ببینید!۲. سرویس Unminifyبرای بهینه کردن کدهای سایت مون، باید اونا رو فشرده سازی کنیم. این کار، تمام کامنت ها و فاصله های بین خطوط رو حذف میکنه و تا حد ممکنه کد رو فشرده و کم حجم میکنه و باعث میشه سرعت بارگذاری سایت بالاتر بره.اما همونطور که خوندن این کدها خیلی سخته، برگردوندنشون به حالت اول هم کار سختیه. (مگه اینکه سورس اولیه کد رو داشته باشید) سرویس Unminify کمک میکنه که کدها رو به شکل اولشون در بیاریم و تا قابل خوندن بشن. فقط کافیه که وارد سایتش بشید، کد فشرده ای که کپی کردید رو اونجا جایگذاری کنید و نتیجه رو به سرعت تحویل بگیرید.۳. سرویس Compressorفایل های عکس،‌یه بخش جدایی ناپذیر از سایت های امروزیه. تقریبا غیرممکنه که سایتی رو بدون عکس پیدا کنید. اما همون اندازه که استفاده از عکس زیبا مهمه،‌سیک و کم حجم بودن این عکس ها هم خیلی مهمه. چون سرعت بارگذاری سایت یه فاکتور بسیار مهم سئو محسوب میشه و ظاهرا برای گوگل هم خیلی مهمه (اون قدری که توی سرچ کنسول،‌ یه بخش آزمایشی برای سنجش سرعت سایت اضافه کرده)راهکار عادی اینه که شما تصویر مورد نظرتون رو وارد فتوشاپ یا هر ابزار ویرایش عکس دیگه ای میکنید، سعی میکنید حجم اون رو پایین بیارید و یه خروجی مناسب برای وب بگیرید. اما میشه این کار رو خیلی راحت تر انجام داد.سرویس آنلاین Compressor، برای همین کار طراحی شده. روش کار خیلی ساده است. وارد سایت میشید، عکس مورد نظرتون رو آپلود میکنید و در سریعترین زمان ممکن، یه فایل جدید تحویل میگیرید که کیفیتش با فایل اصلی تفاوت چندانی نداره، اما حجمش خیلی پایین تره!بعد از اتمام کار هم میتونید هم فایل رو دانلود کنید، هم اون رو توی گوگل درایو یا دراپ باکس ذخیره کنید.این سرویس سرعت خیلی خوبی داره اما نکته مهم اینجاست که اگه عکس قبلا کم حجم شده باشه (با هر نرم افزاری) اونوقت حجم فایل خروجی با حجم فایل ورودی تفاوت چندانی نداره.۴. سرویس Repl.itمحیط های توسعه نرم افزار (IDE) و ادیتور های زیادی وجود داره که میتونید ازشون استفاده کنید و حتی یه سری از برنامه نویس ها روی ادیتور و IDE مورد استفاده شون حسابی تعصب دارن! :)اما میشه قضیه رو خیلی ساده تر گرفت و ابزار برنامه نویسی Repl.it برای همین اینجاست. این سرویس، یه IDE آنلاین رو در اختیارتون قرار میده که امکان برنامه نویسی با خیلی از زبان های مطرح مثل جاوا اسکریپت،‌ پایتون، کاتلین، روبی و... در اون وجود داره و حتی میتونید پکیج ها و کتابخونه های مختلف رو هم بهش اضافه کنید. خبر بهتر اینه که Dark Theme هم داره!۵. سرویس Web Codeیه سرویس باحال برای طراح های فرانت اند! توی این سایت، میتونید خصوصیات مختلف و المان هایی که مد نظرتونه وارد کنید و خیلی سریع کدش رو تحویل بگیرید. اینطوری دیگه لازم نیست زمانتون رو صرف نوشتن دستی استایل، عناصر وب پیج و… بکنید.اما نکته مهم اینجاست که بهتره وقتی سراغ این سرویس برید که توی نوشتن کدهای مورد نیاز یه سایت حرفه ای شدید و دیگه هدفتون فقط صرفه جویی در زمانه. در غیر اینصورت، میتونه باعث بشه که خیلی از جزئیات کار رو درک نکنید و کاملا ابزار محور بشید و اگه یه روز نتونید به این ابزار دسترسی پیدا کنید، توی دردسر می افتین!اگه به مطلب علاقه داشتید، ایده خوبیه که اونو برای بقیه هم بفرستید. علاوه بر این، در همین مبحث،‌ میتونید مقاله هفت ترفند طراحی رو سایت رو هم بخونید.</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Wed, 04 Dec 2019 16:18:56 +0330</pubDate>
            </item>
                    <item>
                <title>7 ترفند طراحی سایت که تمام توسعه دهنده های وب باید بلد باشن!</title>
                <link>https://virgool.io/DesignersCommunity/7-%D8%AA%D8%B1%D9%81%D9%86%D8%AF-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%DA%A9%D9%87-%D8%AA%D9%85%D8%A7%D9%85-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D9%88%D8%A8-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A8%D9%84%D8%AF-%D8%A8%D8%A7%D8%B4%D9%86-azomh76hyggi</link>
                <description>ماها بعنوان توسعه دهنده وب (وب دولوپر) قاعدتا باید با کدها سروکله بزنیم، اونها رو بنویسیم و عیب یابی کنیم و طراحی کردن ویژگی های گرافیکی کار ما نیست. (قبلا توی یه مقاله دیگه نوشته بودم که چطور طراح وب بشیم)اما شخصا برای من زیاد پیش اومده که توی موقعیت هایی قرار گرفتم که احتیاج بوده بخشی از شکل ظاهری و UI یک سایت رو طراحی کنم یا تغییر بدم و احتمالا این موقعیت های ناخوشایند (دونقطه دی!) برای شما هم پیش اومده.منطق میگه که طراح UI، طرح رو ایجاد میکنه و شما اون رو پیاده سازی میکنید، اما واقعیت اینه که توی ایران، توی خیلی از موقعیت ها، این وظیفه روی دوش شما قرار میگیره، به دلایل زیادی مثل:شرکتتون یه طراح تمام وقت ندارهشرکتتون اصلا طراح نداره! (عجیب ولی واقعی)میخواین یه سری تغییرات و اصلاحات توی طرح ایجاد کنید که بهترش کنه (از لحاظ زمانی به صرفه نیست که به طراح بسپاریدش)کار طراح رو قبول ندارید!شما خودتون رو علاوه بر توسعه دهنده، طراح هم معرفی کردید (لطفا از این کارا نکنید :/)و...در هر صورت، وقتی که بهتون میگن: فلان قسمت از UI سایت رو درست کن، ممکنه با خودتون بگید: بیخیال! من که یه هنرمند نیستم!اما خبر خوب اینه که با چند تا ترفند طراحی سایت ، میتونید از این موقعیت ها سربلند و موفق عبور کنید!1. از رنگ و وزن فونت ها برای نشون دادن سلسله مراتب متون استفاده کنیدیکی از اشتباهات رایج توی طراحی رابط کاربری، استفاده بیش از حد از سایز فونت ها توی نشون دادن سلسله مراتبه. مثلا میایم سایز تیتر ها رو بزرگ میکنیم و سایز زیر عنوان رو کوچیکتر درنظر میگیریم.به جای اینکار، بهتره از رنگ و font-weight استفاده کنیم. مثلا تیتر ها، بولدتر باشن و زیر تیترها، لایت تر و سبک تر!استفاده از font weight در ترکیب با رنگ، نتیجه فوق العاده ای میده:برای تیترها، از یه رنگ تیره (مشکی نه!) استفاده کنیدرنگ خاکستری رو برای متون فرعی (مثل پاراگراف ها) استفاده کنیدرنگ خاکستری روشن رو برای متونی با اهمیت کمتر به کار ببرید (مثل کپی رایت، توضیحات نویسنده و ...)در طراحی UI، این دو نوع font weight کاربرد زیادی داره:برای بیشتر متون در صفحه، از وزن 400 یا 500 استفاده میشهبرای بخش هایی که مهمن و روشون تاکید دارید، وزن 600 یا 700 به کار میره.نکته مهم اینجاست که از font weight کمتر از 400 استفاده نکنید. نازک و سبک بودن فونت هایی با وزن کمتر از 400، باعث میشه که متون خیلی کوچیک باشن و خوندنشون سخت بشه و رابط کاربری سایتتون آسیب ببینه.2. از متن خاکستری روی پس زمینه های رنگی استفاده نکنید!استفاده از رنگ خاکستری روشن برای نشون دادن اهمیت کمتر یه متن، یه راه خیلی خوبه، البته فقط روی پس زمینه سفید! این ایده روی پس زمینه های رنگی، چندان قشنگ از آب درنمیاد.دلیل این قضیه، اینه که وقتی متن با رنگ خاکستری روشن رو روی پس زمینه سفید استفاده میکنیم، در حقیقت contrast و تضاد بین رنگ متن و پس زمینه رو کم کردیم، و اینه که باعث میشه تاکید روی اون متن کمتر بشه.با این توضیح، مشخص میشه که رنگ خاکستری روشن، نباید روی پس زمینه های رنگی برای نشون دادن اهمیت کمتر به کار بره. در عوض، باید رنگی رو انتخاب کنیم که به پس زمینه نزدیک باشه.برای استفاده از این ترفند طراحی سایت ، دوتا راه وجود داره:opacity رنگ سفید متن رو کمتر کنیدوقتی که رنگ متن تون سفیده و میخواین کم اهمیت تر بودنش رو نشون بدید، میتونید opacity رنگ سفید رو کم کنید. به این ترتیب، یه مقدار از رنگ پس زمینه توی متن دیده میشه و شما رو به هدفتون میرسونه! (این راه خیلی راحته)به صورت دستی، یه رنگ نزدیک به پس زمینه رو انتخاب کنیداین روش وقتایی بدرد میخوره که پس زمینه، یه عکس یا طرح خاصه و کم کردن opacity رنگ سفید، باعث زشت شدن سایتتون میشه. توی این مواقع، با استفاده از فتوشاپ یا هر ابزار دیگه ای که باهاش راحتید، یه رنگ نزدیک به پس زمینه رو انتخاب و استفاده کنید.میتوانید ادامه این مطلب رو در سایت من (اکتا اسکریپت) بخونید.</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Thu, 28 Nov 2019 19:27:46 +0330</pubDate>
            </item>
                    <item>
                <title>دایرکت هاتون رو بخونید، بدون اینکه کسی بفهمه!</title>
                <link>https://virgool.io/@rfnmt/%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA-%D9%87%D8%A7%D8%AA%D9%88%D9%86-%D8%B1%D9%88-%D8%A8%D8%AE%D9%88%D9%86%DB%8C%D8%AF-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%DB%8C%D9%86%DA%A9%D9%87-%DA%A9%D8%B3%DB%8C-%D8%A8%D9%81%D9%87%D9%85%D9%87-xehbgr0xtg5d</link>
                <description>این پست رو دیروز توی اکانت اینستاگرامم منتشر کردم و از اونجایی که ازش استقبال خوبی شد و ممکنه بدرد شما هم بخوره، اینجا هم منتشرش میکنم، تا از این به بعد پیام های ملت رو با خیال راحت بخونید، کنجکاوی تون رو ارضا کنید و طرف مقابل رو توی کف نگه دارید ?توی آپدیت جدید اینستاگرام، یه ویژگی جدید به اسم Restrict اضافه شده که با استفاده از اون، میتونید فعالیت بقیه رو توی اکانت خودتون محدود کنیدبه این ترتیب که کامنت های اون شخص زیر پستاتون رو فقط خودتون می تونید ببینید، اون آدم نمیتونه ببینه شما چه زمانی آنلاین شدید، و نمیتونه بفهمه چه وقت پیامش رو خوندیدبرای اینکه چنین بلایی رو سر یه نفر بیارید، این مراحل رو به ترتیب جلو برید:1. برید توی #اکانت اون شخص، &quot;سه نقطه&quot; گوشه تصویر رو بزنید و روی گزینه Restrict کلیک کنید ‌2. دکمه آبی که روش نوشته Restrict Account رو بزنید3. برید توی بخش دایرکت هاتون. می بینید که پیام اون شخص از توی دایرکت حذف شده و رفته توی بخش Request4. پیام اون بخت برگشته رو بخونید ?5. دوباره برید توی پروفایلش و از طریق منوی &quot;سه نقطه&quot;، گزینه Unrestrict رو بزنید تا محدودیت برداشته بشه6. وقتی دوباره به دایرکت هاتون سر بزنید، پیام اون شخص، صحیح و سالم برگشته و اصلا هم معلوم نیست که بهش ناخونک زدید ?به همین سادگی، به همین خوشمزگی!پ.ن: برای خوندن مطالب بیشتر، میتونید به وب سایت عرفان نعمتی سر بزنید!</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Fri, 15 Nov 2019 18:43:53 +0330</pubDate>
            </item>
                    <item>
                <title>کامنت انگلیسی نیاز نیست، از بلاک خارج شوید!</title>
                <link>https://virgool.io/@rfnmt/%DA%A9%D8%A7%D9%85%D9%86%D8%AA-%D8%A7%D9%86%DA%AF%D9%84%DB%8C%D8%B3%DB%8C-%D9%86%DB%8C%D8%A7%D8%B2-%D9%86%DB%8C%D8%B3%D8%AA-%D8%A7%D8%B2-%D8%A8%D9%84%D8%A7%DA%A9-%D8%AE%D8%A7%D8%B1%D8%AC-%D8%B4%D9%88%DB%8C%D8%AF-yqbwbhpppvy8</link>
                <description>یه زمانی بود که توی تایم لاین اینستاگرام، میدیدی که یه نفر نوشته: بلاک شدم، کامنت انگلیسی لطفا! ( و البته هنوزم هستن )این افراد چند دسته ان:1. یه سریا کلا در جریان نیستن و تا می بینن نمیتونن لایک یا فالو کنن، از پسر خاله دوستشون که دیپلم ردی کامپیوتر داره میپرسن که باید چیکار کرد.اونم میگه: به دوستات بگو برات کامنت انگلیسی بذارن!وقتی هم که بعد یکی دو روز قضیه خود بخود حل میشد، به همه حس خفن بودن دست میده!2. یه سریا هم زرنگن و از این راه، اکانتشون رو بالا میکشن. یعنی به فالوورهاشون میگن که بلاک شدن و &quot; همه نفری 10 تا کامنت انگلیسی بذارید!&quot;این رفقا همونایی بودن که توی فیسبوک میگفتن عدد 10 رو کامنت بذارید تا ماشین توی عکس براتون چراغ بزنه!گذاشتن کامنت انگلیسی همان، و رفتن پست به اکسپلور و دیده شدن بیشتر، همان!واقعیت اینه که اینستاگرام با ما پدر کشتگی نداره، و با این روش ها هم نمیشه گولش زد. دلیلی هم که ماها بلاک میشیم، معمولا اینه که یه ذره تند تند فالو و لایک کردیم، یا زیادی کامنت عجیب و غریب گذاشتیم. اینستاگرام هم شک میکنه که ما ربات یا تولید کننده هرزنامه ( اسپمر ) هستیم و فعالیت مون رو برای یه مدت کوتاه، محدود میکنه. دو سه روز منتظر می مونید و بعدش هم همه چی به حالت اولش برمیگرده.معلوم نیست که دقیقا چه تعداد لایک و فالو توی روز باعث بلاک شدن میشه اما این عددها رو طور تقریبی گفتن:1.  هر ساعت حدود 350 لایک2.  هر ساعت حدود 50 فالو ( شما نهایتا میتونید 7500 نفر رو فالو کنید )3.  هر ساعت حدود 100 آنفالو ( و در روز نهایتا 1000 تا )اما دردسر این روزای ما و داستان بلاک شدن ها، فقط ربطی به این موضوع نداره، چون خیلیامون هیچوقت اون تعداد لایک و فالو و آنفالو نداریم!کل قضیه به فیلترشکن هامون برمیگرده. میدونیم که این هیتلرشکن ها، آدرس اینترنتی یا آی پی (ip) ما رو تغییر میدن و وقتی که بخاطر استفاده از این نرم افزار ها، با آی پی های مختلف به اینستاگرام میایم، شاخک های اینستا تیز میشه و شک میکنه که شاید ما ربات باشیم یا قصد تولید اسپم داشته باشیم.اگه درگیر این بلا شدید، این کارا رو انجام بدید:1.  سعی کنید موقع استفاده از اینستاگرام، فیلترشکن رو خاموش کنید2.  از حساب کاربری تون خارج بشید3.  از توی تنظیمات گوشی، دیتا و اطلاعات اپلیکیشن اینستاگرام رو پاک کنید4.  دوباره وارد اکانتتون بشید5.  پسوردتون رو عوض کنیداینکار، شاید یهویی باعث حل شدن مشکل نشه ( شایدم بشه ) ولی کمک میکنه که دیگه این داستان براتون بوجود نیاد.اگه دوست داشتید مطالب بیشتری بخونید، به سایت من سر بزنید.</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Tue, 12 Nov 2019 16:30:06 +0330</pubDate>
            </item>
                    <item>
                <title>&quot;علاقت رو دنبال کن!&quot; ؛ خیلیا با این جمله سرکار رفتن!</title>
                <link>https://virgool.io/@rfnmt/%D8%B9%D9%84%D8%A7%D9%82%D8%AA-%D8%B1%D9%88-%D8%AF%D9%86%D8%A8%D8%A7%D9%84-%DA%A9%D9%86-%D8%9B-%D8%AE%DB%8C%D9%84%DB%8C%D8%A7-%D8%A8%D8%A7-%D8%A7%DB%8C%D9%86-%D8%AC%D9%85%D9%84%D9%87-%D8%B3%D8%B1%DA%A9%D8%A7%D8%B1-%D8%B1%D9%81%D8%AA%D9%86-mc1szepmcjnd</link>
                <description>مهمترین زیربنای علاقه، شناخته. اگه ما درمورد یه موضوعی، اطلاعات نداشته باشیم و اصولا ندونیم که با چی سر و کار داریم، هر صحبتی درمورد علاقه داشتن یا نداشتن بهش، کاملا غلطه.واقعیت اینه که تا وقتی ما ندونیم قراره با چی روبرو بشیم، اصلا معلوم نیست که بهش علاقه مند میشیم یا نه و شعار قشنگ ” علاقت رو دنبال کن “، تبدیل میشه به جستجو برای پیدا کردن زیربغل مار! و البته باید اشاره کنم که اگه یه چیزی برامون جذابه، لزوما به معنای این نیست که بهش علاقه داریم.چند وقت پیش یه مقاله توی سایت آتلانتیک میخوندم که داشت نتیجه یه تحقیق رو در مورد این مساله که میگن ” علاقت رو دنبال کن “، بررسی میکرد.یافته های اون پژوهش نشون میداد، آدمایی که اعتقاد دارن علاقه یه چیز ثابته و فقط باید پیداش کرد، کمتر توی پیدا کردن شغل ریسک میکردن.در حالیکه دسته دوم، یعنی اونایی که فکر میکردن علایق قابل ایجاده و هدفشون از همه چیز مهمتر بود، ریسک بیشتری میکردن و ممکن بود حتی وارد شغلی بشن که در ابتدا دوستش ندارن، تا درنهایت به جایی که دوست دارن برسن و هدفشون محقق بشه. طبق اون تحقیق، افراد این دسته در طول زمان رشد میکردن و موفقیت بدست می اوردن و همین باعث میشد که رضایت و علاقه شون بوجود بیاد و افزایش پیدا کنه.من در مورد این قضیه، یه مقاله مفصل نوشتم و سعی کردم تا جایی که میشه، موضوع رو بررسی کنم. اگه دوست داشتید، مطلب رو در اینجا بخونید.</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Tue, 05 Nov 2019 12:46:20 +0330</pubDate>
            </item>
                    <item>
                <title>سلفی، تجاوز و باقی قضایا</title>
                <link>https://virgool.io/@rfnmt/%D8%B3%D9%84%D9%81%DB%8C-%D8%AA%D8%AC%D8%A7%D9%88%D8%B2-%D9%88-%D8%A8%D8%A7%D9%82%DB%8C-%D9%82%D8%B6%D8%A7%DB%8C%D8%A7-raerqk5ugrjl</link>
                <description>وقتی یه سلفی با کیفیت، کار دست خواننده ژاپنی میده!قضیه از این قراره که یکی از خواننده های پاپ توی ژاپن، عکس سمت چپی رو توی اینترنت آپلود کردهیکی از طرفدارای این خانوم ( عکس سمت راستی ) هم متوجه میشه که انعکاس تصویر یه ایستگاه اتوبوس توی چشماش افتادهاینطوری، ایستگاه اتوبوس مورد نظر رو پیدا میکنه و اونجا منتظر می مونه تا خانوم خواننده پیداش بشهبعدشم تا آپارتمانش تعقیبش میکنه و اونجا بهش تجاوز میکنه!وقتی که این آدمو پلیس دستگیر کرد، اعتراف میکنه که با استفاده از سلفی ای که اون خواننده گذاشته بود، و اطلاعات گوگل مپس، تونسته ایستگاه رو پیدا کنهو جالبتر اینکه با استفاده از بقیه عکسای اون خانوم و جزئیاتی مثل جهت تابش نور آفتاب و محل پرده ها، تونسته دقیقا متوجه بشه که خواننده مورد علاقه ش دقیقا توی کدوم واحد و کدوم طبقه زندگی میکنه! فوقع ما وقع !‌پ.ن1: این همه مسئولین میگن فضای مجازی خطرناکه، شما باور نکنید. اینم نتیجه بی‌توجهی به رهنمودهای پلیس فتا ?پ.ن2: به نظرم بعد از اینکه مجازات این آقای شرلوک هلمز تموم شد، باید ازش بعنوان کارآگاه و مشاور پلیس استفاده کنن ?پ.ن 3: اگه دوست داشتید، میتونید نوشته های بیشتر رو توی سایت من بخونید.</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Wed, 23 Oct 2019 22:55:27 +0330</pubDate>
            </item>
                    <item>
                <title>قبل اینکه موبایل تون رو بفروشید، مواظب اطلاعاتتون باشید!</title>
                <link>https://virgool.io/@rfnmt/%D9%82%D8%A8%D9%84-%D8%A7%DB%8C%D9%86%DA%A9%D9%87-%D9%85%D9%88%D8%A8%D8%A7%DB%8C%D9%84-%D8%AA%D9%88%D9%86-%D8%B1%D9%88-%D8%A8%D9%81%D8%B1%D9%88%D8%B4%DB%8C%D8%AF-%D9%85%D9%88%D8%A7%D8%B8%D8%A8-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%D8%AA%D9%88%D9%86-%D8%A8%D8%A7%D8%B4%DB%8C%D8%AF-xlliscytpwyd</link>
                <description>امروز با یه دوستی صحبت میکردم که میخواست گوشیش رو بفروشهو ازم پرسید که چجوری میتونم طوری اطلاعات گوشی رو پاک کنم که قابل بازیابی نباشه ؟اولش خنده م گرفته بود و با خودم گفتم آخه تو چی داری که بخوای نگرانش باشی؟ولی بعد یادم افتاد که خودم چقدر درمورد حریم خصوصی توی جاهای مختلف حرف زدم و برام این قضیه مهمه?و فرقی نداره چی توی اون موبایل بوده، مهم اینه که طرف دلش نمیخواد کسی محتویاتش رو بازیابی کنه‌‌واقعیت اینه که وقتی یه چیزی رو توی موبایلتون حذف میکنید، گوشی، خود اون فایل رو حذف نمیکنه، بلکه مسیر دسترسیش رو پاک میکنهو اون فضا رو خالی فرض میکنه و توش دوباره فایل های جدید میریزه‌به این ترتیب، برنامه های ریکاوری، فقط چیزایی که همین الان توی حافظه وجود دارن و فقط از دسترس ما خارج شدن رو برمیگردونن‌اما اگه شما هم مثل این دوستمون نگرانید که کسی بعد اینکه گوشیتون رو فروختین، اطلاعاتتون رو ریکاوری نکنه، این چندتا قدم رو انجام بدید:1. قبل از هر چیزی، گوشی رو فکتوری ریست کنید (همون تنظیمات کارخانه )اینکار، همونطوری که گفتم، فقط مسیر دسترسی به فایل ها رو پاک میکنه، اما خوبیش اینه که هیچ چیزی رو از قلم میندازهاگه بخواین دستی همه بخشای گوشی رو پاک کنید، هم خیلی زمان بره، هم ممکنه بعضی جاها رو یادتون بره یا نتونید حذف کنید‌2. چندین و چند بار موبایلتون رو با اطلاعات بدرد نخور پر کنید و بعد دوباره حذفشون کنیدعکس های الکی، آهنگ و ویدیوهای بی اهمیت!اینکار باعث میشه نرم افزارهای ریکاوری خیلی سخت تر بتونن به اطلاعات قبلی دسترسی پیدا کنن‌3. اگه قدم دوم رو انجام داده باشید، دیگه خیلی بعیده که برنامه های موجود توی بازار بتونن اطلاعات موجود توی گوشی و رم تون رو برگردونناما برای محکم کاری، میتونید از نرم افزار Secure Eraser استفاده کنید.این نرم افزار حجم کمی داره و توی گوگل پلی هم قابل دانلودهمن شخصا از این نرم_افزار استفاده نکردم، اما تعریفش رو توی منایع مختلف زیاد دیدم‌واقعیت اینه که با قدم اول و دوم، تقریبا کار تمومه و حداقل یه آدم عادی نمیتونه اطلاعات شما رو برگردونه و ازشون سوءاستفاده کنه‌مگه اینکه شما مایکل اسکافیلد باشید و یه افسر اف بی آی هارد شما رو از کف دریاچه بیرون بکشه و ریکاوری کنه (اونایی که عاشق سریال فرار از زندان بودن متوجه میشن قضیه رو ?) ‌و البته اگه شما هم روشی رو بلد بودین که من اینجا ننوشتم، ممنون میشم بنویسید تا بقیه هم استفاده کنیمبرای خوندن مطالب بیشتر هم میتونید به سایت من سر بزنید.</description>
                <category>عرفان نعمتی</category>
                <author>عرفان نعمتی</author>
                <pubDate>Sun, 20 Oct 2019 16:07:59 +0330</pubDate>
            </item>
            </channel>
</rss>