<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مهدی درویشی</title>
        <link>https://virgool.io/feed/@mahdidrv</link>
        <description>دولوپر جونیور اندروید و طراح رابط کاربری در فرمالو، عضو تیم تکنولوژی تداکس تهران، علاقه‌مند به خیلی چیزا. mahdidrv.ir</description>
        <language>fa</language>
        <pubDate>2026-06-10 12:58:58</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3919/avatar/UDC4O8.png?height=120&amp;width=120</url>
            <title>مهدی درویشی</title>
            <link>https://virgool.io/@mahdidrv</link>
        </image>

                    <item>
                <title>درباره کوییزاپ: اپلیکیشن اوپن سورس اندروید</title>
                <link>https://virgool.io/@mahdidrv/%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A7%D9%88%D9%BE%D9%86-%D8%B3%D9%88%D8%B1%D8%B3-%D8%AF%D8%B1%D8%A8%D8%A7%D8%B1%D9%87-%DA%A9%D9%88%DB%8C%DB%8C%D8%B2%D8%A2%D9%BE-ckhc6vtyhhhg</link>
                <description>تو پست قبلی درباره تجربه نوشتن اولین برنامه به عنوان برنامه‌نویس تو شرکت نوشتم که خروجی اون برنامه‌ی کوییزاپ بود، تو این نوشته از خود کوییزاپ می‌گم تا اگه کسی خواست کدش رو متوجه شه، استفاده کنه یا با apiهای فرمالو آشنا بشه برای توسعه برنامه‌ی خودش راحت‌تر باشه.پروژه کوییزآپ یه بازی اسم و فامیل برای پلتفرم اندرویده که بیسش توسط apiهای فرمالو با زبان کاتلین تو محیط توسعه اندروید استودیو نوشته شده. تو بازی دو نقش داریم که وقتی وارد اپ می‌شیم می‌تونیم در نقش هاست (سازنده‌ی بازی) یا در نقش پلیر (کننده‌ی بازی) باشیم.بازی به عنوان هاستبرای هاست بودن نیازه که یک حساب کاربری تو اپلیکیشن (توسط icas فرمالو) بسازید و تا توکنی برای کار با apiها بگیرید، در مرحله‌ی بعد فرم‌هایی که تگ گیم دارن رو دریافت می‌کنید که فرم اسم و فامیل هم قبلن در فرمالو ساخته شده و در تمپلیت‌ها موجوده و تگ گیم داره.بعد از کلیک روی فرم مورد نظر (که این‌جا فرم اسم و فامیل هست که تگ گیم داره) یه کپی از اون فرم در اکانت فرمالوی شما گرفته می‌شه و در مرحله بعد شما می‌تونید اسم فرم (title) و توضیحات فرم (description) اون رو وارد کنید که این‌جا باید بگید بازی قراره با چه حرفی شروع بشه و بعد گزینه‌ی play رو بزنید. بعد از طی کردن این مراحل فرمی اسم و فامیلی که در حساب کاربری شما کپی گرفته شده با اسم و توضیحاتی که وارد کردید ادیت می‌شه. در مرحله‌ی بالا به عنوان هاست اسم‌تون هم دریافت می‌شه.بعد از ساخت اکانت، کپی گرفتن از فرم، ادیت فرم به شما کد 6 رقمی‌ای داده می‌شه که بهش می‌گیم کد لایو. این کد توسط فرمالو لایو ایجاد شده تا به پلیرها داده شه و بتونن فرمی که تو حساب شما هست رو ببینن و سابمیت کنن. شما می‌تونید کد رو به دوستاتون بدید تا از بخش پلیر وارد بازی بشن.بعد از تبدیل فرم به لایو فرم، شما به عنوان پلیر می‌تونید خودتون یه بار فرم‌تون رو پر کنید و ارسال کنید، یعنی خود هاست هم نقش پلیر رو داره که علاوه بر پلیر، دسترسی‌های بیش‌تری به بازی داره. تو این مرحله شما دوتا گزینه دارید: فرم‌تون رو ارسال کنید، بازی رو به اتمام برسونید که وقتی اولین فردی که بازی رو تموم کرد و استپ گفت شما ۵ ثانیه به بقیه بازیکن‌ها فرصت می‌دید و بعد فرم خودتون رو ارسال می‌کنید و در نهایت روی گزینه‌ی پایان بازی تاچ می‌کنید. با زدن پایان بازی، فرم شما غیرفعال می‌شه این یعنی هر کس بعد از پایان بازی جوابی برای فرم ارسال کنه، پیغام شما «بازی تموم شده و شما دیر ارسال کردید» بهش نشون داده می‌شه (ارسال جواب برای فرم‌هایی که غیرفعال شدن در فرمالو ممکن نیست و ارور ۴۰۴ رو دریافت خواهید کرد).بعد از پایان بازی شما وارد صفحه‌ی جواب‌ها می‌شید، از اون‌جایی که قبل از پایان بازی همه‌ی بازیکن‌ها باید جواب‌شون رو ارسال می‌کردن شما در صفحه‌ی جواب به جواب همه‌ی بازیکن‌ها دسترسی دارید و می‌تونید به همراه اسم‌شون ببینید. دو فیلد هم در فرم داریم که اگه به عنوان هاست وارد شید می‌تونید ببینید (فیلد‌های admin only) اون فیلد‌ها status و point هستند و به ازای هر بازیکن شما به عنوان هاست می‌تونید اون‌ها رو تغییر بدید و بعد جواب‌شون رو به سرور بفرستید (ادیت کنید). و بعد از وارد کردن امتیازها شما می‌تونید به بازیکن‌ها بگید که تو صفحه رو رفرش کنن تا امتیاز و وضعیت‌شون رو ببینن. این‌جا بازی خاتمه پیدا می‌کنه و شما می‌تونید شروع دوباره رو بزنید تا به عنوان هاست دوباره بازی جدید رو طبق فرآیند بالا (جز لاگین/رجیستر) طی کنید.بازی به عنوان پلیردر نقش پلیر شما اول از همه وارد صفحه‌ای می‌شید که درخواست کد لایو رو داره ازتون، تا توسط کد لایو به فرم مورد نظر بدون توکن دسترسی داشته باشید (دقت کنید که تمامی مراحل پلیر بدون نیاز به لاگین/رجیستر و عدم نیاز به توکنه). بعد از وارد کردن کد لایو اگه کد منقضی نشده باشه وارد مرحله‌ی بعد که وارد کردن اسم باشه می‌شید.تو این مرحله شما اسم‌تون رو وارد می‌کنید و در جایی از برنامه نگهداری می‌شه که همراه فرم ارسال بشه، فیلد اسم بازیکن تو فرم به عنوان فیلد مخفی (hidden field) در نظر گرفته و در طی پر کردن فرم اسم و فامیل توسط پلیر از اون در خواست نمی‌شه تا تمرکزش روی بازی باشه.بعد از اون شما به فرم اسم و فامیل دسترسی دارید و در بالا صفحه می‌تونید ببینید که بازی با چه حرفی شروع می‌شه و در مابقی صفحه لیستی از فیلدها نمایش داده می‌شه که می‌تونید جواب‌ها رو پر کنید و ارسال کنید. بعد از پر کردن فیلدها اولین نفری که تمام فیلدها رو طبق حرف شروع بازی پر کرد به هاست اطلاع می‌ده تا به همه خبر بده که جواب‌شون رو ارسال کنن. اگه اون نفر شما بودید زودتر از همه فرم رو ارسال می‌کنید و بعد اطلاع می‌دید تا مابقی هم ارسال کنن تا فرم ۵ ثانیه‌ی دیگه توسط هاست غیرفعال نشده.بعد از ارسال فرم شما وارد صفحه‌ی جواب‌ها می‌شید (درست مثل هاست با این تفاوت که امکان ادیت فیلد وضعیت و امتیاز رو ندارید) و لیست تمام پاسخ‌های همه‌ی بازیکن‌ها به علاوه هاست رو دارید تا با بقیه بازیکن‌ها جواب‌هاتون رو مقایسه کنید. دوتا دکمه در این صفحه وجود داره که اولی اپدیت جواب‌هاست تا بعد از بررسی جواب‌ها و تغییر فیلد امتیاز و استاتوس توسط هاست بتونید اپدیت کنید و مقدار اون دو فیلد هم ببینید و گزینه‌ی بعدی هم شروع دوباره‌ست تا یه بازی جدید با کد جدید داشته باشید.نکته‌ای که مطرحه شما به تمام جواب‌های ارسال شده به یک فرم دسترسی دارید شاید از نظر امنیتی زیر سوال بره اما این امکان توسط ویژگی فرم لایو پیاده شده و از ویژگی لایو برای پرسش و پاسخ زنده، نظرسنجی زنده و مابقی موارد استفاده می‌شه و ویژگی لایوِ فرم‌هایی که اطلاعات مهمی در اون‌ها ارسال می‌شن رو نباید فعال کنید و کدش رو به بقیه بدید.توضیحات فنی پروژهتوضیحات بخش ماژولبیس پروژه بر اساس پروژه‌ی اوپن سورس قبلی شرکت یعنی فلش کارته که به صورت ماژولار نوشته شده بود که در ماژول feature قرار داره، پروژه کوییزآپ در ماژول game توسعه داده شده که از ماژول‌های data و common استفاده می‌کنه (هر دو ماژول feature و game بدون وابستگی به هم از data استفاده می‌کنند)ماژول auth هم فرآیند authentication کاربر توسط icas فرمالو رو هندل می‌کنه که برای بخش گیم توسعه داده شده، در موارد دیگر شما به عنوان توسعه دهنده/سازمان اگه خواستید می‌تونید همزمان هم بازی داشته باشید (game) و هم بخش آموزش (feature)معماری پروژهمعماری پروژه سعی شده بر اساس MVVM پیاده شده باشه و ارتباط بین لایه‌ی model و view برنامه توسط viewModel انجام می‌شه که برای این کار از observerهای لایو دیتا و برای هندل کردن پردازش‌های همزمان از کروتین استفاده شده.بخش مدل در ماژول data وجود داره. و در پکیج feature ماژول game ما view و viewModel رو داریم.سینگل اکتیویتی و ارتباط بین فرگمنت‌هااین اپلیکیشن در بخش کوییزاپ تنها یک اکتیویتی برای نمایش فرگمنت‌ها با ویوی Fragment Container View داره و برای ارتباط بین فرگمنت‌ها از Navigation component گوگل استفاده شده.لایبراری‌های استفاده شدهKoin DI: برای تزریق وابستگیCoroutines: برای پردازش‌های سنگین و همزمانRetrofit, Gson converter, logging: برای اتصال به سرورNavigation fragment, lifecycle viewmodel: برای ارتباط بین فرگمنت‌ها، مدیریت لایف سایکلاین برنامه به صورت اوپن سورس در گیت‌هاب منتشر شده و می‌تونید سورس کدهای برنامه رو ببینید و با نحوه کار و پیاده سازی apiهای فرمالو آشنا شید. لینک دیزاین اون در دربیل و لینک دانلود تو مایکت هست و آموزش نحوه بازی رو هم می‌تونید در آپارات ببینید.لینک گیت‌هاب پروژه: https://github.com/formaloo/quiz-app-android لینک دانلود برنامه: https://myket.ir/app/com.formaloo.quizapp لینک دربیل پروژه: https://dribbble.com/shots/17043972-SCategories-game-android-application </description>
                <category>مهدی درویشی</category>
                <author>مهدی درویشی</author>
                <pubDate>Sat, 11 Dec 2021 18:29:19 +0330</pubDate>
            </item>
                    <item>
                <title>درس‌های مهم برای زنده ماندن کارآموز در توسعه اولین نرم افزار</title>
                <link>https://virgool.io/@mahdidrv/%D8%AF%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C-%D9%85%D9%87%D9%85-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B2%D9%86%D8%AF%D9%87-%D9%85%D8%A7%D9%86%D8%AF%D9%86-%DA%A9%D8%A7%D8%B1%D8%A2%D9%85%D9%88%D8%B2-%D8%AF%D8%B1-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%A7%D9%88%D9%84%DB%8C%D9%86-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-fkmyuml4n63c</link>
                <description>یادمه دوران مدرسه وقتی معلم مبحثی رو می‌گفت و متوجه نمی‌شدم از بچه‌ها می‌خواستم که برام توضیح بدن، علتش این بود که به نکاتی توجه می‌کردن که پیش پا افتاده بود و شاید از نظر معلم باید خودمون اون‌ها رو بدونیم. حالا اگه شما در شرکتی کارآموز یا جونیور هستید و می‌خواید اولین پروژه‌ی واقعی‌تون رو بنویسید با چالش‌های زیادی مواجه می‌شید که به نظرم این مسیر لذت بخشه اما شاید قبلش در کنار این‌که سنیور و مدیرفنی‌تون مثل معلم کمک‌تون می‌کنه نیاز داشته باشید در کنارش یکی از بچه‌ها هم یه سری چیزها رو بهتون بگه تا مقابله با اون چالش‌ها ساده‌تر بشه، نوشته زیر رو به عنوان حرف‌های دانش‌آموز میز بغلی‌تون می‌نویسم.خب من مهدی هستم برنامه‌نویس اندرویدم تو فرمالو و قرار شد تا پروژه‌ای رو تحت عنوان کوییزآپ که یک بازی اسم و فامیله رو برای پلتفرم اندروید بنویسیم تا هم خودم با apiهای فرمالو آشنا بشم و هم مابقی دولوپرها. توضیحات فنی پروژه و نحوه‌ی کارکردش به صورت مجزا تو این‌جا نوشته شده.انتخاب تکنولوژییکی از مواردی که باید از ابتدا مشخص کنید، انتخاب تکنولوژی و لایبراری‌های موجود برای کدنویسی پروژه‌ست، برای پلتفرم مورد نظر ما که اندروید بوده باشه لایبراری‌های متفاوتی برای انجام یه کار وجود داره که اول باید مشخص کنید که چه روش‌هایی برای انجام اون کار وجود داره و بعد از پیدا کردن لایبراری‌های موجود، برای امکانات و مقایسه‌شون کافیه به انگلیسی سرچ کنید و برای انتخاب بین اون‌ها به نسبت مزایا و معایبی که دارند، بر حسب نیازتون به اندازه‌ی پروژه انتخاب کنید.نکته: اگه ددلاین‌تون کمه، ترجیحن از چیزی استفاده کنید که قبلن کار کردید و مقداری تسلط داریدبرای مقایسه می‌تونید از این عبارت انگلیسی زیر استفاده کنید، و وبسایت‌های quera، medium و stackoverflow معمولن برای اون‌ها جواب‌هایی دارند:what is the difference between retrofit and volleyRetrofit vs Volleyخوردن داکیومنت پروداکت پروژهیکی از مواردی که باعث گمراهی شما در اواسط پروژه می‌شه عدم توجه کامل به داکیومنت پروداکته، یعنی ممکنه شما چندبار داکیومنت رو خونده باشید و چک کرده باشید اما نیازه که بر حسب داکیومنتِ پروداکت یه وایرفریمی طراحی شده باشه که به نسبت وایرفریم، یوزر استوری‌های متفاوت رو پیش ببرید. این‌طوری هم به مرحله‌ی دیزاین رابط کاربری کمک می‌شه و هم به توسعه خود نرم افزار. چرا که برای حالت‌های مختلف اپلیکیشن ممکنه نقطه کورهایی باشه که با خوندن داکیومنت پروداکت متوجه اون نشید و اواسط کار سرعت‌تون رو کم می‌کنه، پس بهتره ابتدا این کار رو انجام بدید تا نقطه کورهای داکیومنت رو متوجه بشید و شفاف سازی کنید.یافتن فلوی برنامهاین مهم‌ترین کاریه که شما قبل از شروع پروژه باید انجام بدید، منظورم از فلو اینه که بخش‌ها و صفحات و بخش‌های مختلف اپلیکیشن و نرم افزار قراره چطور با هم ارتباط داشته باشن. این مورد رو تو بخش بالا توضیح دادم که چطور مشخص کنیم، حالا نیازه از لحاظ فنی مشخص کنیم که این ارتباط و فلویی که طی می‌شه توسط کدوم apiها و فیچرهای بک‌اندمون قراره انجام بشه، اگه با api شرکت‌تون آشنایی ندارید حتمن این کار رو با یه فرد سنیورتر از خودتون، کدنویس بک‌اند پروژه و یا آشنا با api شرکت پیش ببرید.شما خدا نیستید، بپرسیدیکی از مواردی که حین پروژه بهش برخوردم نپرس بودنم بود، یعنی وقتی کار با یه قسمت خاصی از api رو متوجه نمی‌شدم یا داکیومنتش موجود نبود سعی می‌کردم تمام حالت‌های ممکن رو تست کنم تا بفهمم چطور کار می‌کنه، یا مثلن وقتی می‌خواستم لیستی از لیست‌ها بسازم یکی دو روز تایم گذاشتم تا در نهایت بعد پرسیدن فهمیدم لایبراری tableView هم وجود داره. خوبه بیش‌تر چیزها رو به مرور خودتون سرچ و تحقیق کنید و یاد بگیرید اما برای مواردی که نیاز به تجربه دارن، دنبال روش انجام هستید و یا در یک جمله پاسخ دارن بهتره که تایم‌تون رو درگیر اون نکنید و بپرسید.داکیومنت نیست، بک‌اند کار که هستاگر داکیومنت کاملی از بک‌اند نداشته باشید می‌تونه یه چالش بزرگ برای برنامه‌نویس (خصوصن جونیور) باشه. در حالت کلی وجود داکیومنت لازمه‌ی شروع یه پروژه‌ست اما در مواردی پیش میاد که وقتی فلو مشخص کردید نیاز به استفاده از فیچرهای بک‌اندی داشته باشید که در قدیم توسعه داده شده باشه. دو حالت کلی وجود داره: اول ممکنه داکیومنتش وجود نداشته باشه، دوم اگه وجود داشت ممکنه اپدیت نشده باشه و ناقص باشه. هر وقت به چنین موردی برخوردید که شک داشتید بپرسید یا نه، بخش «شما خدا نیستید، بپرسید» رو بخونید و بعد از بک‌اند کار بپرسید. معمولن بک‌اند کارها مثل فرمانده‌های میدان هستن و شما باید حواس‌تون باشه که اگه راهنمای استراتژی جنگ رو ندارید مستقیم وسط میدون نمی‌رید از فرمانده بپرسید. می‌تونید از شوالیه‌های دیگه‌ای که سابقه جنگ دارن کمک بگیرید. مثلن در مواردی بوده که منی که اندروید کد می‌زدم (که می‌تونیم فرانت محسوب کنیم) برای چالشم از فرانت‌اند کار وب شرکت کمک گرفتم چرا که یه بار با apiهای شرکت کار کرده بود.استفاده از ماژول‌های قبلیوقتی وارد شرکتی می‌شید به احتمال زیاد اپلیکیشن‌هایی دولوپ شده و اگه دولوپرهای خوبی همکارتون باشن اون‌ها رو به صورت ماژولار نوشتن. استفاده از ماژول‌های موجود برای پروژه‌ای که دارید می‌نویسید می‌تونه خیلی کمک کننده باشه. اگه هم ماژولی نبود شما می‌تونید اپلیکیشن‌های قبلی شرکت رو مرور کنید تا نحوه کار با api و پیاده سازی و هندل کردن یه بخش رو بفهمید.ناقص ارسال کنید، فیدبک بگیریدبه عنوان یه کمال‌گرای تمام عیار، عادت دارم یه چیز رو تکمیل کنم یا حداقل به جای خوبی برسونم و بعد برای تست یا دمو به بقیه نشون بدم اما موردی که تو این مسئله بود ممکن بود من بعضی جاها رو اشتباه پیاده کنم و بعد تو دمو متوجه بشم که کلن اون مسیر رو اشتباه رفتم، برای کاهش اشتباه خوندن بخش «خوردن داکیومنت پروژه» و «یافتن فلوی برنامه» به شدت کمک می‌کنه اما در کنارش خوبه که بعد تکمیل فانکشنالیتی هر بخش، اون رو به بچه‌های شرکت یا کسی که داکیومنت پروژه رو نوشته ارسال کنید و فیدبک بگیرید. این‌طوری هم اون در جریان پروژه هست که تا کجا و چه‌قدر پیش رفته و هم شما فیدبک می‌گیریدمایندست رشد رو فعال کنیددر توضیح کوتاه مایندست رشد می‌گه ما با تمرین هر چیزی رو می‌تونیم یاد بگیریم و بلد نبودن یه مهارت بابت عدم توانایی ما نیست و نیازه تمرین کافی داشته باشیم تا شبکه عصبی مغزمون اتصال قوی‌تری رو برای انجام اون کار داشته باشه. تو هوش مصنوعی می‌دونیم که یه سری دیتا به الگوریتم می‌دیم تا خودش رو train کنه و بهینه‌ و دقیق‌تر پاسخ بده، کارکرد مغز انسان برای تمرین هم به همین صورته که شما هر چه‌قدر دیتاست‌های بیش‌تری بهش بدید و تمرین کنید، راحت‌تر می‌تونید یه مسئله یا چالش فنی‌تون رو حل کنید.مثلن من برای پروژه کوییزآپ نیاز داشتم تا یه جیسون ریسپانس پیچیده‌ای که قسمتیش هم داینامیک بود رو به کلاس کاتلین parse کنم، چندبار تلاش کردم و نتونستم این‌جا احساس بدی نسبت به خودم داشتم که شاید توانایی ذهنیم برای برنامه‌نویسی کافی نباشه و کلی برچسب و خودزنی دیگه. اما در کنارش به این فکر می‌کردم در حالت فعلی اگه بتونم این فایل جیسون رو تبدیل کنم می‌شه هر چیز دیگه‌ای رو parse کنم و این قضیه انگیزه‌ی از دست رفته‌ی منو بهم بر می‌گردوند تا بشینم و دوباره دست به کیبورد بشم.موارد بالا باتل‌نک‌هایی بود که اگه تو پروژه بعدیم رعایت کنم در بدترین حالت سرعتم برای تکمیل پروژه تا ۵۰٪ افزایش پیدا می‌کنه، شاید تایتل‌وار همشون رو بدونیم اما نیازه که تجربه بشه تا درک کنیم هدف این نوشته این بود که بهتون کمک کنه موقع انجام پروژه انگیزتون کم نشه و حواس‌تون باشه که به این نکات توجه کنید.لینک گیت‌هاب پروژه: https://github.com/formaloo/quiz-app-android برنامه‌‌ی کوییزاپ: https://myket.ir/app/com.formaloo.quizapp </description>
                <category>مهدی درویشی</category>
                <author>مهدی درویشی</author>
                <pubDate>Sat, 11 Dec 2021 16:35:37 +0330</pubDate>
            </item>
                    <item>
                <title>راهنمای جامع تنظیم خواب با درد و خون ریزی!</title>
                <link>https://virgool.io/@mahdidrv/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D8%AC%D8%A7%D9%85%D8%B9-%D8%AA%D9%86%D8%B8%DB%8C%D9%85-%D8%AE%D9%88%D8%A7%D8%A8-%D8%A8%D8%A7-%D8%AF%D8%B1%D8%AF-%D9%88-%D8%AE%D9%88%D9%86-%D8%B1%DB%8C%D8%B2%DB%8C-kqtf0lodmy8s</link>
                <description>دبیرستان که بودم معمولا بعد ساعت ۳ شب می‌خوابیدم و برای پسر بچه‌ای که دوران ابتدایی اون‌قدر تنبل بود که  شب قبلش مامانش لباس‌های فرمش رو (با جوراب) براش می‌پوشید تا صبح کم‌تر غرغر کنه و کمی بیشتر بخوابه واقعا فاجعه‌ست. چرا فاجعه‌ست؟ ببینید همون‌طور که دنیا برای چپ دست‌ها طراحی نشده برای افرادی که شب رو بیدارن هم طراحی نشده. ادارات، بانک‌ها و زندگی از ساعت ۶ صبح شروع می‌شه و فرض کنید شما ۶ ساعت بعد شروع به زندگی کنید. مدرسه هم از این قضیه مستثنا نیست و وقتی شما ساعت ۳ شب بخوابی دو حالت داره: از مدرسه جا می‌مونی یا از خواب جا می‌مونی. جدا از این‌که من هفته‌ی یه روز به صورت رندوم مرخصی هفتگی به خودم اختصاص می‌دادم تا از مدرسه جا بمونم، اما باز هم مابقی روز رو با کم‌خوابی طی می‌کردم و از خواب جا می‌موندم.این روند ادامه پیدا کرد تا به دوران «خب رفتیم دانشگاه و حالا دیگه صبح نیاز نیست بیدار بشم» رسیدم اما دانشگاه هم با انتخاب واحد اختیاری که ارائه می‌ده دیکتاتوری‌ای بیش نیست، فرض کنید در حالت خوب سه تا استاد یه درسی رو ارائه می‌دن. یکی صبح و دوتا ظهر و عصر، اگه همه چیز خوب پیش بره شما می‌تونید اون درس رو تو انتخاب واحد بردارید حالا باز باید چالش‌هایی مثل کم‌ترین روز رو دانشگاه برید، استادش خوب باشه و چند ساعت بین کلاس‌ها معطل نشید (البته الان در حالت غیرحضوری معطلی بین کلاس‌ها اون‌قدری معنا نداره که تصمیم بگیرید بینش با کی کجا برید)و وقتی هم با دانشگاه به توافق برسیم، شاغل شدن هم دردسرهای خودش رو داشت و داره. اگه برنامه‌نویس هستید که واقعا قرار نیست دنیا براتون زیبا باشه اگه رو نظم خوابی نباشید (۸۰ درصد مصاحبه‌های صبح رو بابت عدم تمرکز از کم‌خوابی رد شدم) اگه مرحله مصاحبه رو رد کنید، کار کردن در حالت کم‌خوابی مثل این می‌مونه که با یک پا فوتبال بازی کنید.این‌ها رو گفتم تا به این نتیجه برسیم که من ۸۰ درصد زندگیم رو با بی نظمی خواب که خودش موجب کم خوابی، بی‌خوابی می‌شه، طی کردم و شاید قبلا برای انجام کار یا کار بیشتر، کم‌تر خوابیدن لذت‌بخش هم بوده اما الان به نقطه‌ای رسیده که تبدیل به یک فاجعه شده خصوصا بابت این‌که ساعت خواب من با دنیا تنظیم نیست و باعث می‌شه کم‌خوابی/بی‌خوابی و بدخوابی داشته باشم. همین چند روز پیش دوستی بهم گفت «تو آخرش یه رزومه پر از اسکیل برای خودت درست می‌کنی ولی هم‌چنان مهارت درست کردن خوابت رو نخواهی داشت» و این جمله‌ی ترسناکی بود که نباید به یه ایده‌آل‌گرایِ کمال‌طلب بگید.کم‌خوابی چیه و چند ساعت بخوابی؟از بحث‌های شخصی بگذریم به نظرم تعریف کم‌خوابی برای هر فردی متفاوته، چرا که میزان خواب کافی برای هر فردی ممکنه متفاوت باشه. خواب نرمال بیشتر آدم‌های عددی بین ۷ تا ۹ ساعت هست. اما هستند یه عده‌ی بدشانس (شایدم خوش‌شانس!) بیش از ۹ ساعت یا کم‌تر از ۷ ساعت بخوابن. من دوستی دارم که اگه کیفیت خواب رو هم در نظر نگیریم بعد ۴ ساعت خوابیدن کاملا شارژ می‌شه اما خود من کم‌تر از ۷:۳۰ ساعت اذیت کننده‌ست برام. پس اگه شما چند ساعت از ساعت خواب‌تون کم‌تر می‌خوابید ممکنه اذیت بشید اما اگه نصف زمان خواب‌تون می‌خوابید این فاجعه‌ست و باید زودتر یه فکری کنید.کیفیت خواب هم عامل موثری هست و اگه کم‌خوابی برای مدت کوتاهی برای هدفی باشه الزاما چیز بدی نیست، بسته به شخصیت خودتون داره.بدخوابی چیه؟ممکنه شما کامل بخوابید اما کیفیت خواب هم موثره. مثلا وقتی شب‌ها بیدارید ممکنه یه روز کلاس داشته باشید، یه روز بانک کار داشته باشید، جلسه‌ای سر صبح دارید و همه‌ی این‌ها باعث می‌شه که شما چند روز کم بخوابید و یک روز به شدت زیاد. از همه بدتر اگه شب گرسنه‌تون بشه و وسط وسط غذا درست کردی سر و صدای زیادی ایجاد کنید ، یا لیوانی از دست‌تون بی‌افته باید به فکر ترک خونه باشید.کم‌خوابی اذیتم نمی‌کنهاگه هم از اون دسته‌ای هستید که کم‌خوابی تمرکزتون رو بهم نمی‌زنه و اذیت کننده نیست باید بهتون حسودی کرد اما در طولانی مدت به نظرم تاثیر منفیش رو می‌ذاره. من با همین کم‌خوابی المپیاد، ماراتون و خیلی چیزها رو گذروندم اما بعد چند سال، اسم دوست‌هایی که تو دانشگاه می‌دیدم رو باید با فکر کردن به خاطر می‌آوردم. اگه براتون ترسناک نیست فیلم The Father رو ببیند. از طرفی ما یه ساعت درونی (که به اصطلاح ساعت بیولوژیک بهش می‌گیم) داریم که مشخص می‌کنه کی بخوابیم و کی بیدار بشیم یعنی بدون توجه به محیط و عواملی که روز و شب رو برای ما تفکیک می‌کنن تشخیص می‌ده که ساعت چنده. تو کتاب کِی: تکنیک‌های زمان سنجی دنیل پینک راجع به یک گیاهی مثال می‌زنه که توسط این سیستم زمان رو اندازه گیری می‌کنه نه توسط نور خورشید.مغز ما هم عادت داره همه چیز رو تبدیل به عادت کنه که انرژی کم‌تری مصرف کنه، وقتی ساعت درونی ما به ما اعلام می‌کنه که وقت خوابه اما ما داریم فیلم می‌بینیم یا امتحان داریم یا باگ کدمون رو رفع می‌کنیم، این‌جا ساعت درونی ما به مغزمون می‌کنه این بابا نمی‌خواد بخوابه بعدش هم یه قهوه می‌زنیم و فکر می‌کنیم که خب دیگه نیاز به خواب ندارم اما در طولانی مدت اتفاقی که اون پشت می‌افته مغز عادت می‌کنه به کم‌تر خوابیدن، نه چون کم‌تر نیاز داریم چون عادت کرده که کمتر بخوابه.چرا باید بخوابیم؟اگه بخوایم یک ویژگی مشترک تمام موجودات زنده رو مشخص کنیم می‌تونه خواب باشه! خواب یه چیز جهانی و یونیورساله که تا جایی که من می‌دونم هیچ فرهنگی باعث نشده که این عمل انجام نشه حتی تک سلولی‌هایی که یه روز عمر می‌کنن هم خواب دارن (حالت فعال و غیرفعال) بعد ما انسان‌ها شاکی می‌شیم که چرا یک سوم زندگی رو خوابیم.(اگه دوست داشتید بازم از مشترکات دیگه بدونید تو زیست‌شناسی تکاملی LUCA یه ویژگی مشترک تمامی موجودات زنده‌ست)خب حالا که در این جامعه‌ی دستاورد سالار همه دنبال این هستیم تا زمان بیشتری در طول روز داشته باشیم تا بیشتر فعالیت کنیم تا چیزهایی که می‌خوایم رو بخریم و همون دیالوگ معروف فایت کلاب. و وقتی مغز می‌تونه خواب‌مون رو کم‌تر کنه و قهوه هم معشوق دوست‌داشتنی‌ش هست مشکل چیه؟ راجع به قهوه پایین‌تر توضیح می‌دم، برای کم‌خوابی همین الان.تو کتاب چرا می‌خوابیم نویسنده اومده از یه آزمایشی مثال زده که نذاشتن موش‌ها به اندازه کافی بخوابن و کم‌خوابی رو تو موش‌ها بررسی کردن، دیدن سرعت عمرشون به اندازه‌ای شده که انگار بهش غذا ندادن! به مرور این کم‌خوابی باعث زوال مغز می‌شه و خب در درجه علم امروزی از تاثیرات بی‌خوابی زیاد گفته که با یه سرچ تو منابع درست (طبیعتن غیر از ویکی پدیا) می‌تونید راجع بهشون بخونید.حالا بی‌خوابی رو بخوایم تو ورژن تمثیل بیاریم چطوره؟ وقتی ما نخوابیم مثل این می‌مونه که مست باشیم، باز هم کتاب راجع به این توضیح می‌ده که یه شب نخوابیدن شما رو تبدیل می‌کنه به کسی که ۸ صدم درصد الکل تو خونشه (۸ دهم میلی گرم در الکل در هر میلی لیتر خون) که این عدد باعث می‌شه که شما از نظر قانون مست باشید و اجازه رانندگی هم ندارید و در نظر بگیرید شما سوار اسنپی می‌شید که راننده‌ی اون مسته ایا اعتماد می‌کنید که شما رو به مقصد برسونه؟ یا پزشکی که می‌خواد عمل‌تون کنه حتی اگه بهترین دکتر دنیا باشه، مسته آیا اعتماد می‌کنید که توسط اون عمل بشید؟ فرقی نداره که شغل‌تون رانندگی، پزشکی، وکالت، دولوپر بودن یا هر چیز دیگه‌ای باشه وقتی در جایگاهی هستیم ما علاوه بر کسب درآمد، مسئولیت اجتماعی هم داریم باید به اندازه کافی بخوابیم تا به اصطلاح مست نباشیم وگرنه ممکنه خطاهای انسانی زیادی پیش بیاد.ولی طبیعیه که بگیم بی‌خوابی برای من عادیه و تفاوتی حس نمی‌کنم، اما مسئله این‌جاست وقتی کم بخوابیم درکی نداریم که سرعت مغزمون کم‌تر شده یا مست کنیم احتمالا همون موقع متوجه نیستیم که مست کردیم (نگارنده در این زمینه تجربه‌ای ندارد و این قسمت از متن فاقد اعتبار است) اما در هر دو حالت از نگاه بیرونی مشخصه. وقتی شما کم بخوابید و پشت فرمون بشینید تفاوتی فاحشی احساس نمی‌کنید (اگه کم‌خوابی زیاد باشه یا این فرایند چند سال تکرار بشه احساس می‌شه، چند ساعت کم‌تر خوابیدن قدرت تکلم درست رو ازم می‌گیره و سوتی‌های زیاد می‌دم اگه منو از نزدیک دیده باشید در این باره شکی نخواهید داشت) اما قسمت خطرناک همین‌جاست که تفاوتی فاحشی احساس نمی‌شه و ممکنه مغز صرفا برای چند ثانیه کوتاه تعطیل بشه حالا این چند ثانیه در چه موقعیتی باشیم و چه تبعاتی ممکنه داشته باشه بماند. در گذشته برای شکنجه از بی‌خوابی استفاده می‌کردن در صورتی که کشیدن دندون برای شکنجه احتمالا گزینه‌ی بهتری باشه پس چرا باز هم از بی‌خوابی استفاده می‌کردن؟ احتمالا تاثیر بیرونی نداره و خود فرد آگاه نیست. (الان یاد ریو تو مانی هیست وقتی که دستگیرش کرده بودن افتادم)تو تصمیم‌گیری‌ها هم مشکلات زیادی به وجود می‌آد و می‌شه تو کتاب فقر احمق می‌کند می‌گه وقتی که در شرایط فقر باشی (یعنی کمبود یه چیزی) نه الزاما مالی، ممکنه زمانی، احساسی، تنهایی، خواب و هر چیز دیگه‌ای باشه در این مواقع نمی‌تونی درست تصمیمی بگیری و امکان خطا خیلی بیشتره. در زمان بی‌خوابی هم این قضیه صدق می‌کنه.حالا اگه یه اکسیری برای قوی شدن حافظه، زیباتر شدن شما، بالا بردن توانایی کاگنتیو ذهن‌تون، جلوگیری از آلزایمر، افزایش یادگیری و به خاطر سپاری اطلاعات، افزایش مهارت حرکتی ( مثل ساز زدن)، حفاظت از بیماری و سرطان، کاهش سکته قلبی و مغزی، شادتر شدن و ... وجود داشت، حاضر بودید چه‌قدر برای این اکسیر هزینه کنید؟ حالا در نظر بگیرید پرزنتش هم توسط یه نتورکر باشه. اگه درآمد خوبی ندارید عیبی نداره این اکسیر به صورت دیفالت جزو آپشن‌های بدن ماست کافیه به اندازه کافی بخوابید تا فعال بشه.دنیای بدون آلارمشاید باورتون نشه اما تو گذشته (همین چند سال پیش) مردم برای بیدار شدن نیاز به آلارم نداشتن، بیایید برگردیم به عصر انسان‌های نخستین شما بیاید وسط خواب یک فردی رو بیدار کنید بگید بره براتون گورخر شکار کنه، به نظرتون اولین ری‌اکشنش چیه؟ اگه زنده‌تون بذاره با صحنه‌ی زیر مواجه می‌شید.what&#039;s wrong with you bro?تو مکانی که من زندگی می‌کنم مردم برای بیدار شدن از آلارم استفاده نمی‌کنن، تو خونه‌ی ما هم که کارمندخیزه اگه من رو در نظر نگیریم آلارم معنایی نداره یه چیز غریبه. تنها جایی که تو خونه‌ی ما آلارمی به صدا در میومد ماه رمضون موقع سحر بود که اونم اگه من خونه نباشم این‌طوره. در صورتی که برای ۸۰ درصد از روزهای زندگی من آلارم ست شده بود (حالا برای حفظ آبرو تعداد این‌که بیدار می‌شم یا نه بماند اما همون صدای زنگ گوش‌خراش آلارم باعث بدخوابی و کاهش کیفیت خواب می‌شه (اگه آهنگی رو خیلی دوست دارید اون رو آلارم‌تون نذارید تا متنفر نشید))هراری تو کتاب انسان خردمند انسان‌های خوراک‌جو-شکارچی رو اولین جوامع مرفع معرفی کرده بود که با ساعت کاری و دغدغه‌ی کم‌تر خوراکی‌ها و استراحت بهتری داشت، اگه حوادث طبیعی رو در نظر نگیریم انسان‌های خوراک‌جو-شکارچی خواب بهتری هم نسبت به ما داشتن اگه تو خواب توسط جاندار دیگه‌ای خورده نمی‌شدن. در عمق نمی‌دونم زندگی من بهتره یا اون‌ها اما آخرین باری که شما بدون آلارم بیدار شدید کی بوده؟روش‌هایی برای تنظیم خوابباشه می‌دونم منم صرفا قرار نبود توضیحات بدم اما باید بدونیم که چرا باید خواب‌مون رو درست کنیم و بعد بیایم درستش کنیم. و روش‌های زیر ممکنه اذیت کننده و آسیب‌زا باشن اما از خود بی‌خوابی طولانی مدت آسیب‌زا تر نیستن :)قرص خوابوقتی مسئله‌ی خوابم رو می‌گفتم و دنبال راه حل بودم خیلی از بچه‌ها در درجه اول قرص خواب رو معرفی می‌کردن، مغزت رو آف می‌کنه و دیگه نشخوار فکری نداری و راحت می‌خوابی. اگه اپیکوری باشید زندگی در غیاب رنج رو ترجیح می‌دید و وقتی قرص‌هایی هستن که تمامی دردهای بشری رو منسوخ می‌کنن و ما رو تبدیل به بلاگرهایی شاد می‌کنه پس چرا ازش استفاده نکنم؟ خب علم برای راحت‌تر کردن زندگی بود دیگه.بذارید برای درک بهتر این مسئله از کتاب هر بار که معنی زندگی را فهمیدم عوض کردند کمک بگیریم، طی گذشت قرن‌ها نوشیدن چای توسط تعداد زیادی از مردم انگلستان انجام شده بود و بعد از مدتی نوشیدن چای به عنوان یک رفتار نُرم اجتماعی پذیرفته شده، حالا در نظر بگیرید شما وارد اجتماعی می‌شید که خوردن قرص خواب هم به عنوان یک نرم اجتماعی در اون پذیرفته‌ست. بعد از طولانی شدن اقامت شما تو اون جامعه و بزرگ‌تر شدن هر روزه اون کامیونیتی، شما دیگه متوجه اون رفتار و گفتار اون جامعه نمی‌شید و همه چیز برای شما معمولی می‌شه، همون‌طور که گجت‌ها، دستگاه‌های هوشمند و .. الان ارتباطات اجتماعی رو به نوعی تغییر دادن.قسمت بدتر این‌جاست که شاید اون اول چای و قرص خواب و ... حال عادی شما رو تبدیل به عالی کنه اما با گذشتِ زمان این حال عالی هم تبدیل به حال عادی می‌شه (شوپنهاور مفهوم این قضیه رو تو کتاب در باب حکمت زندگی تحت عنوان حرکت آونگ شوپنهاور مابین میل و ملال گفته) وقتی حال عالی‌تون تبدیل به حال عادی شده، شما برای عالی کردن حال‌تون نیاز به یک چیز قوی‌تر دارین که اون حال عادی‌تون رو تبدیل به حال عالی کنید و این روال اون‌قدر ادامه خواهد داشت تا ماجرا ترسناک بشه اگه بلک میرر دیده باشید اپیزود ۶ فصل ۴ (black museum) به درک این قضیه کمک می‌کنه. به هر قله‌ای برسیم یه قله‌ی بلندتری هست که باعث می‌شه اون شوق رسیدن به قله‌ی قبلی برامون یه حال عادی می‌شه. در هر صورت این گزینه با ارزش‌های من همخوانی نداشت و باید روش دیگه‌ای برای درست کردن خوابم پیدا می‌کردم.بیدار شدن سر ساعت خاصیکی از روش‌هایی که در ابتدا خوب جواب می‌داد بیدار شدن سر ساعت خاص به جای خوابیدن سر ساعت خاص بود. بعضی از ما برای درست کردن خواب‌مون می‌خوایم که زود بخوابیم اما وقتی تمرکزمون رو از روی ساعت خواب برداریم و روی بیدار شدن متمرکز باشیم و تکرار این در طول یک هفته می‌تونه خواب‌مون رو درست کنه.یک روز بیدار موندناینم تکنیک روتین و دم دستی هست که معمولا اکثرا با اون آشنا هستید، اگه مثلا ساعت ۵ صبح می‌خوابید و ۱۲ بیدار می‌شید برای یه روز کلا نخوابید و شب اون روز می‌تونید هر ساعتی که انتخاب کنید بخوابید :)و برای روزهای بعد هم از تکنیک اول که بیدار شدن سر ساعت خاص بود استفاده کنید تا مشکل خواب‌تون حل بشه!روش معکوساگه دو روش بالا برای شما جواب نداد در درجه اول صمیمانه تسلیت می‌گم و در درجه دوم نگران نباشید زندگی به پایان نرسیده، ما معکوس پیش می‌ریم.برای بعضی از ماها که همیشه دیر خوابیدیم واقعا سخته درست کردن خواب، مثلا برای روش اول من یه هفته هر روزش رو زیر ۴ ساعت خوابیدم بعدش یه روز ۱۵ ساعته می‌خوابم که باز هم بهم می‌ریخت چون ساعت درونیم تنظیم نمی‌شد. یا یک روز بیدار موندن هم دو، سه بار تست کردم اما وقتی ۱۰ شب می‌خوابیدم ساعت ۲ شب بیدار می‌شدم و دوباره قضیه همون‌طور بود که هر دفعه به جای درست‌تر شدن بدتر می‌شد.منم از فرآیند بدتر شدن بالا در جهت مثبت استفاده کردم، برای بعضی افراد مثل من بیدار موندن به جای کم‌خوابی خیلی ساده‌تره. خب فرض کنید من ساعت ۵ صبح تا ۱۲ ظهر می‌خوابم و برای فردا چون توانایی سرکوب کردن خوابم خوبه به جای ۵ صبح، یه فیلم می‌دیدم و اون رو به ساعت ۷ صبح می‌رسوندم و با ساعت بیداری کاری نداشتم. روز بعد هم ساعت خوابم رو از ۷ صبح به ۹ صبح می‌بردم و همین روال رو برای یه هفته تکرار کردم یعنی هر روز دو ساعت دیرتر خوابیدم و نتیجه این شد به جای عقب کشیدن ساعت خوابم اون رو جلو بردم :))))در نهایت که الان باشه من ساعت ۱۰ شب تا ۵ صبح می‌خوابم! البته چند روز اول ساعت ۲ بیدار می‌شدم و به زور به خوابم ادامه می‌دادم یا دیگه صبحش نمی‌خوابدم تا دوباره همون ساعت ۱۰ شب بخوابم.در نقد قهوه: شات با شات زیاد تفاوتی ندارهاگه هم با قهوه به تمرکز و بی‌خوابی‌تون جواب می‌دید که ننگ بر شما :)) اینم در طولانی مدت فاجعه‌تر از بی‌خوابی هست. به دو دلیل: تبدیل به نُرم می‌شه (بالا تو قسمت قرص خواب توضیح دادم)، شما دارید خواب‌تون رو توسط قهوه سرکوب می‌کنید و عادت کم‌خوابی رو تو خودتون فعال می‌کنید (بالا تو کم‌خوابی اذیتم نمی‌کنه توضیح دادم)این‌که زیاد به قهوه علاقه‌مند نیستم هم در نوشتن این قسمت بی تاثیر نیستدر نتیجه اگه هر روز بی‌خوابی/کم‌خوابی/بدخوابی داشته باشید و به جای درست کردنش دست به دامان قهوه بشید مثل این می‌مونه که مشت بزنید تو صورت‌تون تا بیدار بمونید، از نظر من شات قهوه در زمانی که خواب‌تون کامل نیست مثل شات تفنگ به سمت خودتون می‌مونه (با احترام به افرادی که قهوه در نرم اجتماع‌شون پذیرفته‌ست و دولوپرهای محترمی که قهوه رو به کد تبدیل می‌کنن)جمع بندیبه نظرم تو این فرآیند صبور باشید، خواب شما برای مدت طولانی تو یه زمان نامناسب بوده و خب الان نیازه تا زمانی طولانی صرف بشه تا درست بشه و ساعت درونی‌تون تنظیم بشه. الزاما همه نیاز نیست خواب‌شون رو درست کنن اما وقتی داره به روند زندگی و خودتون آسیب می‌زنه باید حتما درست کنید. نمی‌دونم تو چه شرایطی و چه‌طور و چه چالش‌هایی زندگی می‌کنید و از این انگیزشی‌های فقط فقط رشد می‌کنیم هم نیستم اما نظر من رو می‌خواید پاشید و کنترل زندگی‌تون رو در دست بگیرید، اسب زندگی شما رو ممکنه به هر جایی ببره وقتی افسارش دست شما نباشه.و طبیعیه که یه انگیزه‌ای برای درست کردن‌ش داشته باشید وگرنه کل این فرآیند بیهوده‌ست بیشترِ انگیزه‌ی من پروداکتیوتر بودن بود بابت انعطاف پذیری کامل ساعت کاریم می‌تونم هر ساعتی بخوابم و بیدار بشم اما با تیم سینک نبودم و تو جلسات شرکت و تیم‌ها تمرکز کافی نداشتم چون ممکن بود جلسه‌ای وسط ساعت خوابم باشه یعنی انگار ساعت ۳ شب وسط خواب آلارم‌تون زنگ بخوره و برید جلسه! و البته همیشه باید غذای باقی‌مونده از شام و ناهار رو که سرد هم می‌شد می‌خوردم :))</description>
                <category>مهدی درویشی</category>
                <author>مهدی درویشی</author>
                <pubDate>Thu, 24 Jun 2021 15:58:51 +0430</pubDate>
            </item>
                    <item>
                <title>تاریکی مطلق</title>
                <link>https://virgool.io/@mahdidrv/absolute-darkness-awwnwd4fnvdw</link>
                <description> Secret Garden - Just the Two of usگاهی هیچ چیز مشخص نیست در تاریکیِ مطلق گم شده ای، احساس خفگی داری و به سختی نفس میکشی، دلت میخواهد رها باشی هر چقدر تلاش میکنی باز هم در آن تاریکی لعنتی غرقینمیدانی آیندت چیست و چه میخواهی، میترسی. کم می آوری.. آسیب میبینی!اما میدانی باید امید داشته باشی، درست مثل آن دانه ی مدفون شده در خاک که تا قبل از رسیدن به روشنایی نور خورشید دست از تلاش برنمیدارد...جهان پر از معجزست. ما باید امید داشته باشیم. لبخند بزن دوستِ من :)Just the Two of us</description>
                <category>مهدی درویشی</category>
                <author>مهدی درویشی</author>
                <pubDate>Tue, 19 Jun 2018 13:51:54 +0430</pubDate>
            </item>
            </channel>
</rss>