گفتگو با امین آرامش
حدود یکماه پیش امین آرامش عزیز رو دیدم و گفتوگویی جذاب و صمیمی با هم داشتیم. بعدش هم فرایند یک پرسشوپاسخ کمی رسمی که نتیجهاش رو میتونید اینجا ببینید. و بالاخره از اینکه تونستم اینجا رو آپدیت کنم خوشحالم.
حدود یکماه پیش امین آرامش عزیز رو دیدم و گفتوگویی جذاب و صمیمی با هم داشتیم. بعدش هم فرایند یک پرسشوپاسخ کمی رسمی که نتیجهاش رو میتونید اینجا ببینید. و بالاخره از اینکه تونستم اینجا رو آپدیت کنم خوشحالم.
انگیزهای که باعث میشه با سختترین چگونهها هم روبرو بشیم « چرایی؟»ست که میپرسیم و پاسخی که برایش داریم. یادگیری vim هم مستثنی نیست. ولی قبل از اون ببینیم ویم چی هست. ویم یک ویرایشگر متنی ترمینال (command line text editor) است. یعنی اگر ویرایشگرهای دیگهای مثل sublime, atom یا vscode رابطکاربری زیبا و شکیل خودشون رو دارن که میشه با موس خیلی از اینتراکشها رو انجام داد، ویم تو محیط ترمیناله و با اینترفیس ساده که از استفاده از موس هم بینیازتون میکنه که در ادامه میبینیم این چه مزیتی میتونه داشته باشه....
ایده و مسیرِ عالی، ولی ترس از برداشتنِ اولینه قدمها همیشه مشکلساز. فکر کنم این جمله از جبران خلیل جبران است که میگوید: سختترین قدمها، اولین آنهاست. جهت انگیزه دادن بگم که در جایی دیگر اذعان میکند که: اولين بوسه، نخستين گل بر سر شاخه درخت زندگی است. با شروع یادگیریِ هرچیزی، در ابتدای مسیر، حالا بسته به اینکه چقدر با زمینه یا رشتههای مرتب یا پیشنیازش آشنا یا مسلط باشی، ممکن است به سردرگمیِ خفیف یا شدیدی دچار شوی....
جملهی معروفیست که میگوید: «اگر خدمتی/محصولی را به رایگان دریافت میکنید، احتمالا محصول شمایید» حالا اگر بخواهیم این مطلب را خیلی گسترش دهیم؛ این است که زندگی بنظر رایگان میرسد!! و شاید بشود از این دید نگاه کرد که در بسیاری از موارد محصول ماییم و در بازار خودفروشی مشغول دست و پنجه نرم کردن با مشتریانیم! معمولاً آنچه که میان آدمها و اهدافشان فاصله میاندازد یا اهدافی که به ظاهر بسیار بحق است که به آنها دست یابند را به شدت دستنیافتنی مییابند، این است که در تشخیص درست اهداف خود ناتوانند نه در رسیدن به آنها....
همیشه در جستجوی چیزهاییم؛ بهترین از هر نوع را میخواهیم، ولی حواسمان نیست که در طی همین مدت جستوجو در حال از دست دادن زمانیم. مسئلهی نپذیرفتن نقایص موجود در جهان و تلاش بیحد و مرز برای بهبود وضع موجود به ایدهآلی که در ذهن داریم عجیب است. خطای تصمیم گیری و قضاوت بنظر میرسد ولی در عین حال میتواند انگیزه و موتور محرکهای باشد که ما را به پیش میراند.
مقدمه: میدانیم که در دنیای پر از دیستراکش زندگی میکنیم. پر از نوتیفیکیشنها، توییتها، تکستها و … که انگار رسالتشان ربودن تمرکز ماست. حتی دزدیدن قدرت تمرکز. خیلیهایمان نمیتوانیم یک صفحه کتاب بخوانیم بدون اینکه چند بار گوشیمان را آنلاک کنیم یا حتی یک فیلم را بدون وقفه دنبال کنیم. و مثالها و توضیحات زیادی که در موردشان مقالههای زیادی نوشتهاند و وبلاگستان فارسی هم اخیراً بیشتر به این معضل پرداخته است. من هم با آنچه ذکرش رفت موافقم و امیدوارم روزی بتونم با پایینآوردن دُزِ کمالگرایی یک پست جامع در موردش بنویسم.
مدتیست در حال یادگیری NodeJS هستم و به تبع آن، یادگیری یک NoSQL database مانند MongoDB هم خالی از لطف نیست. ولی خب این نوع دیتابیسها که دوباره بهشت هکران (منظور همان cracker است: یعنی کسی که سعی در نفوذ به سیسمها به قصد سوءاستفاده و یا خرابکاری در آنها میکند - در ادامهی این مطلب هم به همین معنی به کار میرود. ) را فراهم آوردهاند، هیچ کانفیگ امنیتای بصورت دیفالت ندارند! البته باید این نکته را در نظر بگیریم، که دیتابیسهایی مثل MongoDB لزوما ناامن نیستد، بلکه تنها بصورت پیشفرض و در هنگام نصب اولیه هیچ تدبیر امنتیای را نمیاندیشند و این کار برنامهنویس است که خود موارد امنیتای آنها را لحاظ کند.
چند روز پیش که کمی حوصلهام سر رفته بود و 1-2 ساعت وقت داشتم، تصمیم گرفتم صفحه اول (home، index یا هرچی..) سایت خودم theyahya.com را دوباره بنویسیم. و در انتهای این فرآیند که معمولا کارهای مرتبسازی کد و بهینهسازیها را انجام میدهم. مسلما یکی از ابزارهایی که استفاده میکنم سایت gtmetrix است. از آنجایی که همیشه تا حد معقولی از بهینهسازی را طبق gtmetrix انجام میدهم، که خب روش منطقی هم همین است. ولی اینبار تصمیم گرفتم که به انتهای حد بهینهسازی نائل شوم و مصمم شدم که بالاترین رتبه را کسب کنم! که خب نتیجهای رضایتبخشی حاصل شد و تصمیم گرفتم که در مورد این فرآیند اینجا هم بنویسم و تقریبا تمام مراحل را در گیتهاب هم کامیت کردم و از مرحله هم یک release دادم که مرور کد کاملا راحتتر شود.
میخواستم حجم زیادی فیلم و سریال را از لپتاپ خودم به لپتاپ دیگری منتقل کنم؛ من لینوکسی بودم و لپتاپ مقصد ویندوزی. هردو در یک شبکهی خانگی با wi-fi به یک modem-router متصل بودیم. مطمئنا نرمافزارها و برنامههایی برای اینکار وجود دارد، هرچند دو سیستم عامل مختلف داریم، ولی قطعا راهکارهای دیگری هم بجز آنچه در ادامه خواهم گفت وجود دارد. ولی آنچه در اینجا مطرح میکنم، اولین روشی است که به ذهنم رسید؛ و مهمتر از همه اینکه نیازی نبود که در اینترنت دنبال دانلود نرمافزار باشم و یا برای راهکاری جستوجو کنم. هرآنچه میخواستم داشتم!
مدتها بود که تصمیم داشتم Genymotion نصب کنم، ولی چون دلیلی برای اینکار نمیدیدم و همون Emulatorهای معمولی کارم رو راه میانداختن اصراری برای اینکار نداشتم. ولی برای برنامهای که نیاز داشتم local ip دستگاهی که روش تست میکنم رو داشته باشم، دیگه چارهای جز راهاندازی جنیموشن نداشتم. حتی قبلا که ویندوز داشتم جنیموشن نصب نکرده بودم و بطور کلی هیچ ایدهای نداشتم، ولی با آزمون و خطا و البته به لطف گوگل بالاخره تونستم ی شبیهساز قابل قبول و بسیار بهتر، سریعتر و سبکتر از اون چیزی که خود گوگل پیشکش کرده نصب کنم. البته جنیموشن فقط برای برنامهنویسها نیست، برای کسانی که قصد نصب برنامههای اندرویدی رو دارند هم، جنیموشن گزینهی خیلی مناسبتری نسبت به blueStacks هست!