قطعی اینترنت از نگاه من (به عنوان یه برنامه نویس)

اولین روز آذر 1398 هست و شش روز هست که اینترنت ایران تبدیل به اینترانت شده و راه های دسترسی به حتی پایه ترین وبسایت یعنی گوگل قطعه.

اعصابم از اونجایی خرد شد که میبینم دغدغه یکی اینه که دیشب رفته رستوران حاج محسن (از رستوران با کلاسای شهر آمل) ولی نتونسته استوری بذاری اینستاگرام!
حالا من میخام از دید خودم بگم اوضاع چقدر بدتر نسبت به اونی که دیدش به این موضع فقط استوری گذاشتنه! سعی میکنم جوری توضیح بدم که کسایی که برنامه نویس نیستن هم تا حدودی متوجه بشن من دقیقا چجوری به خاک سیاه نشسته ام.

من یه توسعه دهنده وب هستم. با زبان های PHP,JavaScript و فریمورک های Vue , Laravel سر و کله میزنم. بیش از دوسال بدون هیچ درآمدی و کنار گذاشتن بخش زیادی از تفریحاتم تو خونه تونستم سرخود برنامه نویسی رو یاد بگیرم تا یه روزی بتونم از طریقش بتونم زندگیم رو بگذرونم.
من نزدیک سه سالی هست در بازار کار مشغول هستم و از این طریق نون بخور و نمیری در میارم.

اما حالا همه این زحمت ها قراره به باد بره.
دلیلش هم اینه:

روحانی و وزیر ارتباطات گفته بودن تلگرام رو فیلتر نمیکنن
اما فیلتر کردن

همین چند هفته پیش گفتن بنزین رو گرون نمیکنن
اما گرون کردن

همین چند روز پیش هم گفتن ما چیزی به نام "اینترنت ملی" و "شبکه ملی اطلاعات" نداریم و اینترنت قراره وصل شه
...
خب اینطور که مشخصه قراره اینترنت کاملا ملی بشه
شاید این روز ها فقط جهت آزمایش باشه و موقت دوباره اینترنت وصل شه تا نرم افزاری که قراره اینترنت ملی رو کنترل کنه بهبود پیدا کنه!
ولی چیزی که از این مصاحبه ها میشه گفت صد در صد حتمیه ملی شدن اینترنت هست.

اگه بی انصاف نباشم خیلی شغل های دیگه هم به واسطه همین کار از بین میره. کسایی که فروشگاه داشتن به خصوص تو اینستاگرام, یوتیوبر ها, استریمر ها, کسایی که با Forex و Binance کار میکردن. کسایی که کانال تلگرام یا پیج اینستاگرام داشتن و از طریق تبلیغ گذاشتن داخلش پول در میاوردن.
قبول دارم شغل کاذبیه اما تو این روزا که کار خوب فقط یه رویاس حتی شاخ اینستاگرام هم بودن خودش یه روش پول در آوردنه و ....


حالا من اساسی ترین مشکلاتم رو به عنوان برنامه نویس که این چند روز برام پیش اومده رو میگم

اول مشکل نبود گوگل هست. در بُعد دوم نبود استک اُورفلو. حالا این چی هست (برای کسایی که برنامه نویس نیستن). هیچ برنامه نویسی تو دنیا وجود نداره که همه چیز رو بدونه و مادر زادی همه مشکلات رو بتونه حل کنه. قدیما شاید برنامه نویس ها با زنگ زدن به دوستان و همکاراشون مشکلشون رو حل میکردن اما امروزه وقتی گوگل هست که حتی اگه نحوه سوال پرسیدنت اشتباه باشه سوالت رو هم برات درست میکنه که با خیال راحت تو فقط جواب رو پیدا می کنی. در اکثر مواقع هم این سایت استک اٌورفلو تو صفحه اولش هست و دقیقا برای برنامه نویس ها ساخته شده تا با خیال راحت جواب سوال هاشون رو پیدا کنن. حتی با سیستم امتیاز دادن (Up vote, Down vote) این قابلیت رو فراهم کرده که بفهمین چند نفر جواب یه سوال رو کاربردی دونستن یا یه جواب الکی و بیخود. علاوه بر اون میتونین بفهمین کسی که سوال پرسیده کدوم جواب کارش رو راه انداخته که خب مسلما یه روش خیلی مفید تر نسبت به روش سرچ زدن تو فروم ها به سبک ده سال پیش هست. من میتونم به یقیین بگم بیشتر از 99 درصد ارور ها و مشکلاتی که موقع کد زدن باهاشون مواجه میشم یکی بوده که قبل از من به اون مشکل بر بخوره و بیاد تو استک اٌورفلو بپرسه و من نیازی نباشه که سوال رو بپرسم.
حالا فرض هم اون یه درصد پیش بیاد بازم میتونم با دانش انگلیسی در حد نخودچی داخل استک اورفلو سوال بپرسم و همچنین خود استک اورفلو قبل اینکه سوالتون رو ارسال کنین یه بار از نظر گرامری بررسی میکنه تا خیالتون جمع باشه.

اما خب من نیازی بهش ندارم چون یه افزونه مفیدی تو مرورگر هست به اسم گرامرلی که از همه نظر متن آدم رو بررسی میکنه اما مشکل همینجاست که این ابزار هم به اینترنت وابسته هست و بدون اینترنت دیگه متن انگلیسی نوشتن بدون خطا هم خبری نیست!

علاوه بر این دو سایت بزرگوار فروم لاراکستس و ویو جی اس هم دو تا از دیگه سایت ها هستن که میشه توشون جواب های درست برای مشکلات لاراول و ویو جی اس پیدا کرد که خب این ها هم از دسترس خارج هستن.

هنونطور که گفتم برنامه نویس همه چی دون نداریم اما برنامه نویسا قبل از اینکه با یه ابزاری به مشکل بخورن باید یادش بگیرن و خب هیچ جایی کامل تر از مستندات رسمی اون تکنولوژی نیست.
مستندات لاراول و ویو جی اس از دسترس من خارج هستن.

من برنامه نویس بک اند سایت هستم .

به طور خلاصه بگم بک اند میشه دقیقا اون قسمت از کد سایت که ظاهری نیست و جلوی چشم هاتون نیست و نمیتونین ببینینش اما وجود داره! یه قسمت برعکسش هم هست که کد نویسی میشه و شما میتونین نتیجه رو ببینین اینکه یه عکس کجا باشه یه متن کجا باشه منو چجوری باشه و به طور خلاصه ظاهر چجوری پیاده بشه که میشه گفت کد نویسی فرانت اند هست.

من در قسمت فرانت اند مثل یه گاو🐮🐮🐮 عمل میکنم! بعضی موقع ها من نیاز دارم یه ساختاری رو خودم پیاده سازی کنم چون یه سری قسمت ها هست فرونت کار انجامش نمیده و به عهده منه مثل پنل مدیریت سایت هایی که میزنم.
این روزا هم اکثر سایت ها فرانتشون بر پایه فریمورک بوت استرپ هست. به طور خلاصه بگم بوت استرپ یه سری کد های آماده هست که یه سری المنت های پایه رو حاضر کرده که کد نویس های فرونت میتونن ازشون استفاده کنن و وقتشون رو فقط برای شخصی سازی این المنت ها بذارن و مجبور نباشن کل کد رو از پایه بزنن. همچنین یه سیستم قدرتمند به اسم گرید داره که کمک میکنه زدن سایت هایی که تو همه نوع صفحه نمایش, از مانیتور 4K تا گوشی های هواووی درست نشون داده بشه و خیلی کم دردسرتر بشه.
منم چون نمیتونم کد ها رو از پایه بزنم اکثرا اول فکر میکنم تو صفحه مورد نظرم چه چیزی لازم دارم بعد میرم تو مستندات بوت استرپ و دقیقا کدی که نیاز دارم رو کپی میکنم و بعد هم میشینم سر شخصی سازیش.
مثلا من یه جدول میخام بسازم میرم کدش رو کپی میکنم بعد میام سطر و ستون و محتویات توش رو شخصی سازی میکنم اما مشکل اینجاست الان اگه صفحه مستندات بوت استرپ رو باز کنم فقط یه صفحه سفید میبینم.


حالا من چون با ویو جی اس کار میکنم زیاد نیازی به این ندارم و از bootstrap vue استفاده میکنم که اومده این المنت های بوت استرپ رو با ویو جی اس سازگارشون کرده اما اگه مستندات بوت استرپ ویو رو هم باز کنم باز به نتیجه ای نمیرسم.

حالا شاید بگین خب یه کم مغزت رو به کار بنداز و حفظشون کن یا پاشو برو از همکارات کمک بگیر یا برو از کد های قدیمیت کپی کن بردار بیار اما مشکل بزرگتر از این حرفاست.

لاراول و یا حتی اکثر فریمورک های پی اچ پی بر پایه کومپوزر هستن. به طور خلاصه بگم کمپوزر یه ابزاری هست که کمک میکنه شما از کد های برنامه نویس های حرفه ای دیگه در سر تا سر دنیا به صورت یه پکیج جمع و جور تو کدهای خودتون استفاده کنین. بزرگترین مزیتی که نسبت به کپی کردن کد ها به صورت دستی تو پروژه داره اینه که اول نیازی نیست این ها رو داخل کدهاتون بذارین تا همکاراتون ازش استفاده کنن. دومین مزیتش هم اینه که بروزرسانی و گرفتن نسخه های جدیدتر کد های اون برنامه نویس حرفه ای ها خیلی راحت و کم دردسره و فقط با یه کامند این کار انجام میشه!

مشکل اول اینجاست این ابزار از سایت پکیجیست اطلاعات پکیج های موجود رو جمع میکنه که این سایت هم از دسترس خارجه. پکیجیست جایی که شما هم اگه خودتون یه سری کد ها داشته باشین و بخواین اون رو از طریق کومپوزر در اختیار سایر برنامه نویس ها قرار بدین باید تو این سایت ثبتش کنین. مشکل دوم هم اینجاست که خود کد ها از سایت هایی دانلود میشن که بر پایه گیت هستن که در اکثر موارد این سایت گیت هاب هستش که خب این سایت هم الان از دسترس خارجه. سورس کد لاراول هم در گیت هاب نگه داری میشه.

حالا این کمپوزر برای بک اند هست. مشابه این قضیه رو برای فرونت هم داریم. پکیج منیجر نود یا به طور خلاصه ان پی ام شبیه این قضایا رو برای فرونت اند فراهم میکنه که خب الان این سایت هم از دسترس خارجه!

عملا الان تنها راهی که برای ساخت یه پروژه جدید لاراول هست کپی کردن سورس کد پروژه های قبلی هست! و دقیقا باید با پکیج های همون سایت قبلی کار کنیم و به هیچ وجه نمیتونیم یه پکیج جدید نصب کنیم.

گفتم گیت و گیت هاب بذارین بیشتر ازش بگم براتون.
گیت ابزاریه که کمک میکنه برنامه نویسی به صورتی تیم راحت تر بشه به این شکل که شما نیازی نیست وقتی تغییری تو کد ها انجام میدین به همکاراتون زنگ بزنین و بگین چیکار کردین تا اون ها هم روی کدهاشون کد های شما رو اضافه کنن. گیت کمک میکنه بفهمین کد هایی که افتضاح نوشته شدن کی نوشته شده برین خرخره ش رو بجوین :) و همچنین میتونین بفهمین همکاراتون رو چه قسمت هایی کار میکنن و دقیقا چیکار میکنن. اگه قسمتی از کد باشه شما و همکارتون همزمان روش کار میکردین و به تداخل بخوره این تداخل ها رو به شما نشون میده تا تصمیم بگیرین کدوم کد نگه داشته باشین و کدومش دور بندازین. علاوه بر همه این ها کمک میکنه شما بتونین خیلی راحت کدهاتون رو مثلا به چند روز پیش برگردونین و تغییرات چند روزتون رو کامل بذارین کنار و مثل یه موزه به کد های گذشته دسترسی دارین و میتونین برین سراغشون.

حالا ما به یه سرور نیاز داریم تا هم من و هم همکارام به اون وصل بشیم همگی و تغییرات کد ها رو اونجا نگه داری کنیم. یکی از قابلیت های گیت هاب هم همینه اما گیت هاب یه بدی داره اونم اینه که شما باید سورس کدتون در دسترس عموم باشه. اول اینکه اگه میخاین خصوصی باشه یه محدودیتی تو تعداد پروژه های خصوصی تون دارین (تا همین چند ماه پیش کلا پولی بود این قسمت) دوم اینکه همین چند ماه پیش این قابلیت رو برای ایران تحریم کرد که خب میشه گفت راه حل دور زدنش خیلی دردسره.

بهترین جایگزین با اینکه تحریم هست گیت لب هست که با کلک رشتی که همتون بهتر از من بلدین تحریمش رو دور میزنیم و از امکانات رایگانش بهره میبریم که دیگه نمیبریم چون همینجوریش که تحریم بود از داخل هم زدیم قطعش کردیم اون کلک رشتی ها رو هم قطع کردیم دیگه گیت لب بی گیت لب. قشنگ کار میمونه رو هوا. تنها راهش هم الان اینه که سورس گیت لب رو گیر بیاریم و یه سرور بخریم و کد هامون رو اونجا نگه داریم که این کار دوتا بدی داره. اول اینکه کدمون رو علاوه بر خودمون چند تا ایرانی دیگه (صاحب سرور رو عرض میکنم) میتونه ببینه و خب من ترجیح میدم یه خارجی جاسوسی مارو کنه تا یه ایرانی. دوم اینکه هرماه باید کلی پولش بدیم و همچنین مسئولیت بک آپ گرفتن ازش هم به عهده خودمونه.

حالا گیت هاب این وسط یه کم امکاناتش فراتره . اصلا گیت هاب رو میشه گفت شبکه اجتماعی برنامه نویس ها هستش و بیشتر از 40 میلیون برنامه نویس تو این شبکه اجتماعی عضون و داخلش هم پر پروژه های اوپن سورس خفن هست. اوپن سورس به طور خلاصه بگم یعنی اینکه شما یه برنامه درست میکنین کدش رو هم در اختیار بقیه قرار میدین به این شکل اونها میتونن تو بهتر کردن اون کد به شما کمک کنن. بهترین مثالی که میتونم بزنم اپلیکیشن تلگرام هست که اوپن سورس هست و صدها ایرانی از روی اون کد تونستن تلگرام های ایرانی بزنن (سورسش رو هم منتشر نکردن هیچوقت به جز یه تعدادی محدودی از دوستان) مثل هات گرام و طلا گرام و قرمز گرام و آبی گرام و قهوه ای گرام!

یکی از بزرگترین مزیت هایی که میتونه گیت هاب واسه آدم داشته باشه اینه که اگه کد های خودش رو اوپن سورس منتشر کنه و یه پروژه پرطرفدار و موفق بشه یه رزومه توپ میشه براش و شانس زیادی پیدا میکنه برای استخدام تو شرکت های بزرگ.
حتما هم لازم نیست خودتون از پایه یه چیز رو بزنین و موفق بشه.
میتونین تو پروژه های بزرگ مثل لینوکس همکاری کنین و یه قسمتی از کار رو به عهده بگیرین :).
ولی خب به لطف اینترنت ملی دیگه از این خبرا نیست و میتونین به جاش امنیت داشته باشین.

منم چند تا پروژه کوچولویی داشتم روی گیت هاب که دیگه الان ازشون خبری ندارم.

حالا این شغل منه و من از نون خوردن افتادم.
من یه سری برنامه های بزرگتر واسه آیندم داشتم. هدفم این بود یه برنامه نویس گرافیک بازی بشم و خب تقریبا هفته ای سه شب سعی میکردم آموزش های اوپن جی ال بخونم که بیشتر از این سایت میخوندم که خب اینم دیگه در دسترس نیست. علاوه بر اون سعی داشتم کار با یه موتور بازی سازی آماده رو یاد بگیریم که خب من آنریل انجین رو انتخاب کرده بودم اما حالا مستندات این انجین هم در دسترس نیست.
موتور آنریل انجین موتور خیلی بزرگ و پیشرفته ایه و بر خلاف حوزه وب واقعا یه سری جاها آدم نمیتونه فقط با مستندات متنی جلو بره. فیلم های آموزشی رسمی این انجین و همچنین فیلم های آموزشی غیر رسمی که گاهی اوقات بهتر از فیلم های رسمی آموزش میدادن همه و همه در سایت یوتیوب در دسترس بودن که با همون کلک رشتیه میتونستم برم و ببینمشون. اما حالا اونا هم دیگه در دسترس نیستن و دنیایی از آرزوهام برای آینده ام دود میشه میره هوا.

اما خب سعی هم کردم با اینترنت ملی کنارم بیام اما واقعا این کجا و امکانات بلاد کفر کجا بیاین براتون مثال بزنم.
Connection Refused
یکی از ارور های متداول هست که پی اچ پی وقتی نمیتونه به بانک اطلاعاتی مای اس کیو ال وصل بشه چنین خطایی میده. حالا من این ارور رو تو پارسی جو , پارسیک و گوگل سرچ میکنم با همون سبکی که همیشه سرچ میکنم, نتیجه رو ببینین و خودتون قضاوت کنین.

این از پارسی جو که این همه بهش افتخار میکنن و میگن "مگه چیش از گوگل کمتره" و "مرغ همسایه غازه" و از این حرفا, تا صفحه 5 رفتم و حتی یه دونه سایتی بهم نشون نداد که به سوال من ربط داشته باشه. از همه چیز مسخره تر اون لینک سوم هست بازش کردم و دیدم یه سایت پی اچ پی هست که داره ارور اتصال به دیتابیس نشون میده در صورتی که گوگل اگه سایتتون ارور بده کلا از روی نتایج سرچ برتون میداره.

پارسیک باز یه کم شرایطش بهتره و نتایج مرتبط رو بالا آورد. کارش هم خوب بود اما مشکل اصلی اینجاست به خاطر اینترنت ملی هیچکدوم از لینک های صفحه اول بالا نیومد.

در مورد گوگل هم توضیحی لازم نیست بدم واقعا.

حالا اگه بخام تحت چالش بذارمشون دیگه واقعا حرفی واسه گفتن جلو گوگل ندارن. خیلی از مواقع پیش میاد که موقع سرچ یه کلمه ای رو با اشتباه تایپی مینویسم و گوگل واسم زحمت تصحیحش رو میکشه.
من در مورد
undefined variable
سرچ میکنم که یکی از ارور های رایج پی اچ پی هست و وقتی اتفاق میفته که شما میخاین از یه متغیری استفاده کنین که وجود خارجی نداره. از قصد با یه مشکل تایپی مینویسم تا ببینم چه میکنن.

این از پارسی جو بازم خوبه که همین اول تیر خلاص رو زد مجبور نشدم پنج صفحه دنبال جواب سوال بگردم آخرم هیچی که هیچی.

اینم از پارسیک اون یه نتیجه هم هیچ ربطی به سوال من نداشت.

اینم از گوگل. نه تنها بهم گفت چجوری میتونم سوالی که پرسیدم رو بهتر بپرسم بلکه با اینکه با کلمات اشتباه سرچ کردم اما بازم نتیجه ای که من دنبالش بودم و ناتوان در تایپش بودم رو بهم نشون داد. به طور خلاصه گوگل از من یه هیرو برنامه نویسی ساخت در صورتی که من زیزیگولویی بیش نبودم و نیستم!

حالا در مورد فیلم . یادمه یکی بود میگفت یوتیوب رو میشه جز بزرگترین دانشگاه های دنیا به حساب آورد. راست هم میگفت بزرگوار اما خب چون قراره عوضش امنیت داشته باشیم پس یوتیوب بی یوتیوب. من دسترسی به یوتیوب ندارم اسکرین شات بگیرم همین یه ذره هم که به گوگل وصل هستم به زور وی پی اس هست به حرفایی که میزنم بسنده کنین.
اول از همه اینکه یوتیوب همیشه صفحه اولش پر چیزای هیجان انگیزه. سلیقه من رو دقیقا میدونه. میدونه من از بازی سازی و برنامه نویسی خوشم میاد. یه کانال هست به اسم Game From Scratch دقیقا مطالبی که من خیلی دوستشون دارم رو آپلود میکنه. میدونه از گیم خوشم میاد. میدونه ویدیو های یوتیوبر های ایرانی مثل آریا کئوکسر و کیودی پای و میاپلیز رو دوست دارم. میدونه از فیلم های زنده کردن وسایل الکترونیکی از کار افتاده خوشم میاد و خیلی چیزای دیگه. از اون مهمتر میدونه دقیقا از چه سبک موسیقی خوشم میاد و دقیقا مشابه همونا رو برام میاره. حتی یه گزینه گذاشته توی موارد پیشنهادی که اگه من از چیزی خوشم نیومد بهش میگم داداش من با این حال نکردم و دیگه هم برام نمیاردش.
اما حالا دوستان ایرانی. من قبلا تو آپارات اکانت داشتم بنابراین باید تا حدودی بدونه چند مرده حلاجم ( که نیست ) و نماشا و تماشا هم همینجوری آوردم این پست کامل بشه.

این از آپارات آدم حس میکنه زده شبکه خبر

این از تماشا اون عکسش هم نمیدونم چرا بالا نیومده

اینم از نماشا انگار نه انگار ممکنه یه بچه ممکنه اومده باشه تو این سایت تا باب اسفنجی ببینه اما اشتباهی میره تو اون فیلمه

نمیگم تو یوتیوب از این چیزا نیست اما حداقل تو صفحه اول و بدون هیچ هیستوری این مسائل رو نشون نمیده دوم اگه به زور سرچ کردن چیزی نشون بده وقتی روش کلیک میکنین ازتون میخاد که ثبت نام کنین و بگین متولد چه سالی هستین تا اگه زیر 18 سال بودین اون فیلم رو نشون نده. بازم میدونم یکی میتونه تاریخ تولد رو اشتباه بزنه و فیلم ببینه اما خب کسی که این همه راه رو امده کرم از خودش بوده!

اما خب بیخیال سرگرمی بریم سراغ مباحث علمی.

آپارات فقط یه سری فیلم معرفی آورد و در بهترین حالت آموزش های نصب و ... و همچنین فیلم نمونه کار های ساخته شده با آنریل که اکثر فیلم ها هم از سایت های خارجی کپی شده بود

تماشا کلا دو سه تا فیلم بود . بعدش رفت تو فاز آموزش رفع چین و چروک صورت !

نماشا باز یه کم وضعیت بهتر بود یه چند تا فیلم باز کردم دیدم اینا خودشون از رو یوتیوب کپی شدن و آموزش ملی خبری نیست.



یوتیوب که نتوستم سرچ کنم اما به همین عکس گوگل راضی باشین :).

من شب هایی که خسته ام تفریحم بازی کردنه. دوتا بازی که این اواخر بازی میکردم
Call of Duty Mobile , PUBG Lite
بودن که در حالت عادی با کلک رشتی بهشون وصل میشدم اما الان سرگرمیم هم تغییر پیدا کرده به بازی های آفلاین.

مشکلات دیگه هم مسلما هست و برنامه نویسی علاوه بر اون تکنولوژی هایی که معرفی کردم به خیلی چیزای دیگه وابسته هست و آدم نیاز هست که طبق نیاز هر پروژه از یه سری پکیج ها استفاده کنه تا کارش جلو بره و این روزا دیگه نه به خود اونها و نه مستنداتشون دیگه دسترسی نداریم.


خیلی از آدم ها قراره فدا بشن تا عوضش امنیت داشته باشیم. یکیش منم.
دو تا شغل جایگزینی که میتونم انجام بدم.
یکیش فست فود هست که اولا درآمدش خیلی کمه و دوم اینکه ساعت کار واقعا طولانی داره و از تعطیلی هم خبری نیست و حتی جمعه ها هم آدم باید کار کنه. من خودم قبلا پیتزایی کار میکردم سه ماه تابستون کنار تنور کار کردن و پیتزا زدن واقعا یکی از کار های سخته.
دوم کار کردن کنار پدرم هست که تو کار زدن درخت و چوب هست که خب اونم وضعیت درآمد چندان جالبی نداره اما میتونم کمک کنم با سرعت بیشتری چوب بزنه اما خب واقعا کسل کننده هست برام. جمع کردن چوب از یه جا و ریختنشون پشت نیسون اصلا کاری نیست که بهش علاقه داشته باشم.

یه تشکر هم میکنم از شما که به درددل یه برنامه نویس بدبخت شده گوش دادین.
فعلا امینت داشته باشیم تا ببینیم چی پیش میاد.

به قول یه دوستی تو همین ویرگول "بخند و خوشحال باش که فردا روز بدتریه".