چرا بی طرفی شبکه باید برای همه اهمیت داشته باشد.

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

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

خوندن کد به چه شرطی

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

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

این ماجرا تا حدودی درسته ، چرا که حرف هایی که من به عنوان برنامه نویس میزنم در قالب زبانی قابل فهم برای کامپیوتر نه برای مردم عادی پس این مشکل پیش میاد . اما مسئله به همین جا ختم نمیشه و گاهی که نه، خیلی پیش میاد که دو نفر برنامه نویس هم حرفاشون برای هم قابل فهم نیست ؛ چرا ؟ چون دستورات و مسائل برنامه نویسی روش های مختلف داره تا حل بشه ، پس تا دونفر بتونن به یک نقطه نظر مشترک برسن مدتی زمان میبره .

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

مستند سازی و نوشتن کامنت :

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

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

درسته که درک کدهای نوشته شده قبلی توسط شما از مهارت های برنامه نویسی به حساب میاد اما سرعت درک هم پارامتری که نباید فراموشش کرد ، پس نیاز به نوشتن کامنت اینجاست که بوجود میاد.

از طرفی تصور کنید که رئیستون از شما میخواد که پروژه ای که نوشتین و براش توضیح بدین و اون هم میخواد که توضیحات شما رو برای روسای بالا دستیش توصیح بده ، راه حل چیه ؟

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

یادتون باشه :

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

نتیجه گیری :

به عنوان یک برنامه نویس تازه کار تلاشتون بکنید که حتما مهارت نوشتن کامنت و مستند سازی درون خودتون ایجاد و تقویت کنید . توی دنیای برنامه نویسی درسته که ، کسی که بیشترین توانایی در رابطه با استفاده از تکنولوژی های جدید تر داشته باشه [ به زبون ساده تر ، کسی که بتونه خودشو با تکنولوژی های جدید تر سریع تر تطبیق بده ] موفق تره اما نباید فراموش کرد که بعضی از کارها جز صفات برنامه نویس های موفقه نه تواناییشون .

 

 

 

چرا روبی ؟ قسمت صفر

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

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

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

اصل تورینگ میگه :

هرکاری و که یک ماشین هوشمند بتونه انجام بده ، قطعا یک ماشین هوشمند دیگه هم میتونه انجامش بده ، فقط با یک هزینه متفاوت

مثال ساده ترش میتونه این باشه که کاری که شما با یک زبون سطح بالا مثل روبی ، پایتون ، جاوا ، سی پلاس پلاس … میتونید انجام بدید قطعا با زبان اسمبلی هم میتونید انجام بدین اما چرا هیچ کس سمت اسمبلی نمی ره دیگه ؟
برای فهمیدن فلسفه لزوما نباید از کتاب های سنگین مثل نظریات هایدگر شروع کرد . برای شروع میشه از فلسفه علم شروع کرد ، فلسفه علم و به جرات میتونم بگم که از ساده ترین و در عین حال جذاب ترین قسمت های فلسفه به حساب میاد.

اوصولا دونستن ” فلسفه هرچیزی به درک بهتر اون کمک میکنه ” . این در مورد یادگرفتن برنامه نویسی کمک زیادی بهتون میکنه ، خصوصا زمانی که در ابتدای راه هستین و دنبال انتخاب مسیر آیندتون .

چرا روبی :

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

من دلیل زو آوردنم به سمت روبی به خاطر پروژه ای کاملا شخصی بود که بزودی منتشرش میکنم ، اما این روزا که حرف از برنامه نویسی توی بازار مشاغل ما خیلی زیاد شده و مشکل حیلی از بچه های تازه وارد اینه که حالا چه زبونی و یاد بگیرم تا به دردم بخوره ؟

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

گوگل خبیث ، گوگل دوست داشتنی

تا حالا به محصولاتی که گوگل دقت کردین ، از ارسال ایمیل ، فکس دسته بندی عکس ها و …. تا گوگل کد ، گوگل اسکولار و ابزار هایی از این دست .این ابزار ها هرکدومشون بنا به سیاست های گوگل و یا فشار هایی که بهش وارد میشه روی ما یا فیلتر میشن یا از اساس زیر ساخت هاش قابل پیاده سازی داخل کشور نیست .

[البته صحبت از فیلترینگ توی کشوری که اینترنت به هر بهونه ای فیلتر میشه ، و جدیدا هم که معلوم شده بلای خانمان سوزه بیشتر شکل با نمک داره تا جنبه اعتراض آمیز  (: ]

[گوگل خبیث ، گوگل دوست داشتنی]

اما توی این نوشته هدفم اصلا صحبت راجع به فیلترینگ داخلی یا خارجی نیست (:  ، همونطور که اول هم گفتم تا حالا به لیست محصولاتی که گوگل به صورت رایگان در اختیار کاربرانش فرار میده دقت کردین ؟

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

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

قضیه به این معنی که گوگل داره تبدیل میشه به برادر بزرگتر که داره همه فعالیت های منو زیر نظر میگیره و بسته به سلیقه ای که دارم و گذشته ای که دارم اطلاعات برام دسته بندی میکنه و بهم نمایش میده ، این کار هم با کمک سرویس هایی که من دارم ازشون استفاده میکنم انجام میده .

به خودی خود این داستان بدی ها و خوبی هایی هم داره . اول از همه این کار یجور خودسانسوری به حساب میاد که من به دست خودم انجام میدم ، با توجه به این نکته که قبلا مجوزشو دادم .

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

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

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

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

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

نتیجه :

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

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

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

 

 

دیدباز یا متن باز فرقی نمیکنه مهم اطمینان و ریسک پذیریه

اگر از یه خوره کامپیوتر بپرسین دنیا به چند بخش تقسیم میشه احتمالا جوابی که می‌شنوین اینه که ،دنیا به دو بخش متن باز و بسته تقسیم میشه ساده ترش مبشه لینوکس و ویندوز .

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

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

به نوعی بهتر بگیم که صنعت نرم افزار صرف زمانی کارکرد داره که با صنایع دیگه گره خورده باشه . امروز توی مترو با اتفاقی مواجه شدم که شاید بامزه به نظر میاد اما نشون از عمق فاجعه داره .

[دیدباز یا متن باز فرقی نمیکنه مهم اطمینان و ریسک پذیریه]

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

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

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

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

نباید فراموش کرد که ، این دوتا یعنی اطمینان و ریسک پذیری باهمن که معنی پیدا میکنن . 

راه حل  :

همونطور که اول گفتم ، تقریبا هر گیک کامپیوتری با برد رزپری-پای آشنایی داره . (یک رایانه تک-برد  در اندازه یک کارت اعتباری است کهبنیاد رزبری پای آن را ساخته است تا آموزش علوم رایانه را در مدرسه‌ها تشویق کند. )

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

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

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

 پ ن :

اروری که در بالا میبینید این جمله است :

مشکلی غیر منتظره ای اتفاق افتاده برای ویندوز ، حال با زدن دکمه quit سیستم عامل را ریستارت کنید و یا با زدن دکمه detail جزییات این اتفاق را مشاهده کنید (: