از Slefie تا Selfish، درباب خصوصیات نسل جدید

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

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

Selfie-Syndrome

با این مقدمه و از عنوان مطلب احتمالا حدس زده‌اید که می‌خواستم درباره خصوصیات نسل جدید و به‌ویژه «خودخواهی» به عنوان یکی از بارزترین تفاوت‌های میان آن‌ها و نسل‌های قدیمی‌تر حرف بزنم و البته یکی از مدهای این زمانه «social» را هم نشانه‌ای از این تغییر دیدگاه می‌دانم. پیشاپیش برای رفع شبهات و پیشگیری از گلایه‌های بعدی بگویم که این مطلب تنها یک نظر شخصی است و البته به همه افراد نسل جدید (اصلا اگر بتوان مرزبندی دقیقی برای این تعریف پیدا کرد) قابل تعمیم نخواهد بود. نکته بسیار مهم دیگر این که بعد از نوشتن طرح کلی این مطلب و زمانی که به دنبال تصاویری برای آن می‌گشتم به چندین و چند متن مشابه، قدیمی‌تر و البته علمی‌تر انگلیسی برخوردم که دو مورد از آن‌ها به نظرم ارزشمند بودند و کلا ساختار نوشته من را هم تغییر دادند و مسلما خواندن‌شان را به همه پیشنهاد می‌کنم. یکی این مطلب با عنوان «سلفی‌ها و طلوع نارسیسیسم دیجیتال» و دیگری مقاله مجله تایم با نام Millennials: The Me, Me ,Me Generation که به دلیل رایگان نبودن، می‌توانید متن آن را به صورت یک فایل پی‌دی‌اف از این‌جا دانلود کنید.

به هر حال خلاصه آن‌چه می‌خواستم در ادامه بگویم این بود:

یکی از تغییرات اساسی که به نظر من در اخلاق و باورهای نسل جدید بوجود آمده است پررنگ‌تر شدن و سبقت گرفتن ارزش «خود» نسبت به «جمع» و البته «دیگران» بوده است. سیل سلفی‌هایی که در شبکه‌های اجتماعی به راه افتاده‌اند و بیشتر آن‌ها ویرایش شده‌اند تا نشانگر «یک صحنه از یک زندگی کامل و رویایی» باشند تنها نشانه‌ای است از تغییری بنیادی‌تر که در نگرش نسل جدید به جهان پیرامونش پدیدار شده است.

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

در نوامبر سال ۲۰۱۳ دیکشنری آکسفورد لغت سلفی را به عنوان کلمه سال انتخاب کرد و کمتر از پنج ماه بعد دنی بومن (Danny Bowman) چون نتوانسته بود آن تصویر نهایی و کامل را شکار کند دست به خودکشی زد. البته مادرش او را از مرگ نجات داد و اگرچه دنی نتوانسته بود به عنوان یک سوپر مدل مرد انتخاب شود، اما توانست با رکورد ۲۰۰ سلفی در روز نخستین معتاد به سلفی بریتانیا لقب بگیرد. داستانی بسیار شبیه داستان نارسیس با این تفاوت که دنی در انتهای داستان زنده می‌ماند. البته همین‌جا بگویم که مورد دنی را نمی‌توان به سادگی به همه تعمیم داد چرا که او از یک اختلال روانی به نام «خود زشت انگاری» یا Body Dysmorphic Disorder رنج می‌برد. اما دکتر دیوید ویل (David Veal) روانشناس معالج دنی می‌گوید از زمان رواج تلفن‌های دوربین‌دار دو سوم بیمارانی که بواسطه بیماری BDD به او مراجعه می‌کنند، در خود این اجبار را احساس می‌کنند که دایما از خودشان سلفی بگیرند و در شبکه‌های اجتماعی پست کنند.

Selfie-1

«سلفی‌ها در نهایت شاید نمایشی از خودخواهی ما در قاب تصویر باشند، اما تمام دنیای ما به هم تنیده و مرتبط است و آن خودخواهی که محرک رواج این تصاویر است نمی‌تواند بر سایر جنبه‌های زندگی ما بی‌اثر باشد.»

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

ویژگی‌های اصلی: تنبلی، خودخواهی، اشتیاق شهرت، اعتمادبه‌نفس زیادی

شاید به نظر برسد که این تکرار همان حرف‌هایی است که پدران ما به ما، پدربزرگ‌های ما به پدران‌مان و الی آخر می‌گفتند: این که نسل جدید تنبل، خودخواه و سطحی‌نگر است. البته فرق آن‌چه این‌جا می‌خوانید با گفته‌های پدربزرگ‌ها در این است که برای این ادعا در حال حاضر، مطالعات علمی انجام شده و دلیل و مدرک وجود دارد (به همان مقاله Millenials مراجعه کنید)! آن‌چه در ادامه می‌آورم را تنها به عنوان گزاره‌هایی درباره مردم آن‌سوی دنیا در نظر نگیرید. حتی با سخت‌گیرانه‌ترین معیارها، باز هم تایید خواهید کرد که تمام یا همه این موارد را اگر نگوییم شدیدتر، با همان شدت در جامعه خودمان هم دیده‌ایم.

تنبلی:

  • نسل جدید بیش از هر زمان دیگری با والدین‌شان می‌مانند و از پذیرفتن مسولیت زندگی سرباز می‌زنند.
  • در سال ۱۹۹۲ حدود ۸۰ درصد افراد زیر ۲۳ سال می‌خواستند شغلی با مسئولیت بیشتر داشته باشند. این عدد در سال ۲۰۰۲ به ۶۰ درصد کاهش یافته است.

خودخواهی:

  • میزان اختلال نارسیسیستیک در محدوده ۲۰ سالگی نسل کنونی سه برابر بیشتر از دوران ۲۰ سالگی نسلی است که اکنون ۶۵ سال سن دارد.
  • مقایسه آمار سال ۱۹۸۲ با سال ۲۰۰۹ نشان می‌دهد که تعداد دانش‌آموزان کالج که در ارزیابی خودشیفتگی امتیاز بالایی گرفته‌اند، ۵۸ درصد رشد داشته است.
  • ۴۰ درصد افراد نسل جدید فکر می‌کنند که مستقل از عملکردشان باید هر دو سال یک‌بار ترفیع شغلی بگیرند.
  • در دهه پنجاه میلادی دیوارهای خانه یک خانواده معمول آمریکایی میزبان عکس ازدواج، دوران تحصیل و احتمالا سربازی افراد بود. خانواده امروزی آمریکایی به صورت متوسط میان ۸۵ عکس از افراد خانواده و حیوان خانگی‌شان زندگی می‌کنند.

اشتیاق شهرت:

  • مطالعه‌ای در سال ۲۰۰۷ نشان می‌دهد که دختران دانش‌آموز مقطع متوسطه سه برابر بیشتر ترجیح می‌دهند دستیار یک شخص مشهور (غالبا سلبریتی!) شوند تا یک سناتور! تعداد آن‌ها (دستیاران سلبریتی‌ها) در مقایسه با کسانی که می‌خواهند مدیرعامل یک شرکت بزرگ شوند، ۴ برابر بیشتر است.

اعتماد به نفس:

  • ۶۰ درصد افراد این نسل فکر می‌کنند که تحت هر شرایطی می‌توانند خیر و شر کارهایی که می‌کنند را به درستی تشخیص دهند!

تعریف Millennial یا بگوییم نسل جدید

در مقاله‌ای که بیشتر این نوشته را از آن وام گرفته‌ام، با کمی تقریب متولدین سال‌های ۱۹۸۰ تا ۲۰۰۰ را نسل جدید یا Millennial می‌خواند. بازه‌ای که تقریبا از انتهای سال ۱۳۵۸ خودمان شروع می‌شود و تا حدود ۱۳۷۸ ادامه می‌یابد. چیزی که کم‌وبیش به زبان تقسیم‌بندی این روزهای ما، دهه شصتی‌ها تا هفتادی‌ها را در بر می‌گیرد. این گروه در حال حاضر بخش عمده جمعیت کشور یا حداقل بخش عمده جمعیت در سن کار ایران را تشکیل می‌دهند. این گروه همان افرادی هستند که با مرور دوره‌های کودکی، نوجوانی، جوانی و … احتمالا به یاد بحران ظرفیت مدارس (مدارس سه و چهار شیفتی)، بحران عظیم کنکور و پشت‌کنکوری‌ها، بحران کمبود فرصت‌های شغلی و جوانان بی‌کار (وضع فعلی) و احتمالا در آینده بحران کمبود خانه‌های سالمندان خواهید افتاد.

Me-Me-Me-Generation

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

چرا چنین شد؟

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

انقلاب اطلاعاتی

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

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

تربیت نسل‌های قبل

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

self-esteem-1

تحقیقات اولیه نشان داده بودند که کودکان با اعتماد به نفس بالاتر در مدرسه بهتر ظاهر می‌شوند و کمتر احتمال دارد به دردسر بیافتند. اما گذشت زمان بود که نشان داد اعتماد به نفس در واقع یک «معلول» است و نه یک «علت».

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

اگر بخواهیم به جامعه خودمان برگردیم، این نسل جدید حاصل تربیت نسلی است که در خانواده‌های «والدین سالار» اگر نگوییم پدر سالار، بزرگ شده بودند. پدر و مادرانی که به قول قدیمی‌ها جرات نداشتند پای‌شان را جلوی پدر و مادر دراز کنند یا به جز «چشم» انتظار کلمه دیگری از آن‌ها نمی‌رفت، تصمیم گرفتند همه آن‌چیزی را که از آن‌ها دریغ شده بود یک‌جا و بدون مقدمه و موخره تقدیم فرزندانشان کنند. و نتیجه آن همه توجه بیش از حد، آزادی بیش از اندازه، اعتماد به نفس کاذب به چیزی تبدیل شد که نسل جدید ما را می‌سازد.

self-esteem

دکتر Jean Twenge نویسنده «نسل خودخواه و اپیدمی نارسیسیسم» می‌گوید: «وقتی بچه‌ها کوچک هستند جالب است که به آن‌ها بگویید شبیه پرنسس‌ها، ابرقهرمان‌ها (یا هر چیز دیگری که روی تی‌شرت‌شان نوشته شده) هستند. اما وقتی بزرگ‌تر شدند این موضوع دیگر اصلا جذاب نیست.» چرا که اولین باری که جامعه از پذیرفتن استثنایی بودن آن‌ها سر باز بزند و به آن‌ها بفهماند که فردی معمولی در میان جامعه هستند سرخوردگی آن‌ها آغاز می‌شود. این نسل به گفته Sean Lyons حالا «بالاترین نرخ توقعات برآورده نشده نسبت به کاری که می‌کنند و کمترین میزان رضایت نسبت به موقعیت شغلی‌شان» را دارند.

آن‌ها از کوه بالا نمی‌روند که دنیا را ببینند، از کوه بالا می‌روند تا دنیا آن‌ها را ببیند.

فشار همتایان

کمتر از ۱۰۰ سال قبل تنها بخش اندکی از نوجوانان به دبیرستان یا دانشگاه می‌رفتند بنابراین غالب تعاملات‌شان با افراد بزرگ‌سال خانواده خودشان بود. اما اکنون به لطف ابزارهای همراه و شبکه‌های اجتماعی نوجوانان هر لحظه از عمرشان را به تعامل اجتماعی مشغول هستند. در واقع هر لحظه تحت تاثیر دوستان و آشنایان واقعی و مجازی‌شان قرار دارند که در اغلب موارد هم سن و سال خودشان هستند و این رشد فکری آن‌ها را به خطر می‌اندازد!

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

peer-pressure

علاوه بر همه این‌ها این تعامل باعث می‌شود که آن‌ها همواره تحت فشاری باشند که از آن به «Peer Pressure» یاد می‌شود. آن‌ها باید همواره برای تبدیل شدن به یک «برند» بر سر لایک و فرند و فالوور با دوستان‌شان هم رقابت کنند یا اگر از این مسابقه عقب افتادند احساس سرخوردگی داشته باشند.


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

اما . . .

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

چرا آن‌ها ما را نجات خواهند داد؟

هرچند خواندن مقاله اصلی را برای بار چندم توصیه می‌کنم، اما برای بستن این پست به نظرم رسید که بهترین کار ترجمه کامل پاراگراف آخر مقاله Millennials است:

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

ده توصیه برای برنامه‌نویسان جوان

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

Eric-Raymon-g-plus

اصل مطلب را می‌توانید این‌جا بخوانید و این هم ترجمه‌اش:


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

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

۱- وقت بگذارید

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

۲- کد بنویسید، کد بنویسید

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

۳- توانایی‌های‌تان را گسترش دهید

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

۴- کار کردن با دیگران را یاد بگیرید

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

group-programming

۵- از دانش استفاده کنید، نه از جادو

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

۶- به غرایزتان اعتماد کنید

ما برای کار کردن با دیگران از غرایز نسبتا خوبی برخورداریم. آموزش و کار این غرایز را در ما می‌کُشند. غالب اوقات به ما می‌آموزند که ناراحتی و درد را تحمل کنیم. اما شما یاد بگیرید که به غرایزتان اعتماد کنید. اگر کاری که می‌کنید غلط به نظر می‌رسد اصلاحش کنید. حتی اگر به یک دهه زمان نیاز داشت، بنویسیدش، درکش کنید و اصلاحش کنید.

۷- با هرچه که در اختیار دارید کار کنید

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

۸- از انتقادها استقبال کنید

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

criticism

۹- هزینه‌های‌تان را پایین نگه دارید

کم‌هزینه بودن مهم است. یاد بگیرید که از لینوکس و یک کامپیوتر ارزان دست دوم استفاده کنید. استفاده از خط فرمان را یاد بگیرید. به زبان‌های کوچکی مانند C بچسبید و ترجیحا به سراغ زبان‌های عظیمی مانند ++‌C نروید. یاد گرفتن یک زبان بزرگ‌تر شما را برنامه‌نویس بهتری نمی‌کند!

۱۰- کارهای‌تان را منتشر کنید

کدهای‌تان را با اسم واقعی‌تان منتشر کنید. به عنوان یک مشارکت‌کننده در پروژه‌های منبع‌باز شرکت کنید. اگر شما را نخواستند، به دنبال پروژه‌هایی بگردید که شما را بخواهند! وجهه عمومی خوبی برای خودتان بسازید. به سراغ GitHub بروید. همه این‌ها در آینده رزومه شما را خواهند ساخت.


اگر این مطلب مورد پسندتان بود، بد نیست سری هم به مجموعه «پندهای یونیکسی استاد فو» بزنید.

کوان پانزدهم، استاد فو و طراح سخت‌افزار

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

LastKoan

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

Koan-Cover

همه این کوان‌ها هم مثل همیشه از منوی بالای صفحه در دسترس هستند. خواندن مقدمه این مجموعه مطالب هم بی‌فایده نخواهد بود. البته اگر حوصله و تم گیکی بیشتری دارید پیشنهاد می‌کنم به پادکست شماره ۳۲ رادیو گیک که جادی تهیه کرده و در آن ۱۰ کوان اول (که تا آن موقع ترجمه شده بودند) را خوانده گوش کنید.

نوستالژی: زمانی که مردها هنوز مرد بودند! (بخش پایانی- هک‌های عمیق‌تر)

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


برنامه‌نویسی پیشرفته با Commodore 64 Programmers Reference Guide

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

c64-ProgrammersReferenceGuide

اما برخلاف ظاهر بدترکیب و مدت کوتاهی (کمتر از یک هفته) که آن را در اختیار داشتم، این کتاب تاثیر بسیار شدیدی روی دانش من از کامپیوتر (در مقیاس آن دوران) گذاشت. Commodore 64 Programmers Reference Guide در واقع کتاب مقدس برنامه‌نویسان کمودور بود:

مرجعی کامل برای درک کامل یک کامپیوتر.

چیزی که بعید می‌دانم در دنیای کنونی ما برای یک گوشی کوچک موبایل هم وجود داشته باشد. با این کتاب تازه فهمیدم که چیزی به اسم زبان ماشین هم وجود دارد. مفهوم IRQ و عملکردهای بیتی AND و OR را فهمیدم و مفاهیم پوینتر و ذخیره آدرس دو بایتی و بسیاری چیزهای دیگر را درک کردم. بارهای اولی که بازی‌های کمودور را LOAD می‌کردم با تصور این‌که با خواندن کد برنامه می‌توانم آن را درک کنم و تغییر دهم، دستور LIST را اجرا می‌کردم تا برنامه بازی را ببینم و غالبا تنها با یک خط روبرو می‌شدم:

10 SYS 2061

بعد از خواندن کتاب تازه فهمیدم کل برنامه بازی به زبان ماشین در حافظه سیستم بار شده و این دستور تنها کنترل اجرا را به روالی در آدرس 2061 منتقل می‌کند. اما چرا 2061؟

صرفه‌جویی در حافظه، برنامه‌ای که خودش را تغییر می‌داد

در همین کتاب خواندم که کمودور باز هم برای صرفه‌جویی در حافظه، هیچ‌گاه مانند کامپیوترهای دیگر سورس برنامه را به صورت متن نگه‌داری نمی‌کند. بلکه هر یک از کلمات کلیدی و عملگرها و غیره را با یک کد عددی یک بایتی جایگزین می‌کند. فکر می‌کنم شروع این اطلاعات از آدرس ۲۰۴۹ حافظه بود. به این ترتیب هر خط دستور مانند

10 FOR I=1 TO 100

به جای این‌که با احتساب فضاهای خالی ۱۷ کاراکتر جا بگیرد، تبدیل می‌شد به ۹ بایت کد. دو بایت برای شماره خط، دو بایت برای آدرس شروع خط بعدی، یک بایت کد FOR، یک بایت I، یک بایت علامت مساوی، یک بایت عدد ۱، یک بایت کد TO و یک بایت هم ۱۰۰. وقتی این را فهمیدم به این فکر افتادم که احتمالا می‌شود با چند دستور POKE و عوض کردن خانه‌های مناسب حافظه، خود کدهای برنامه در حال اجرا را عوض کرد به گونه‌ای که در هر بار اجرا عملکردی متفاوت داشته باشد.

escher-hands

برنامه‌ای برای این کار نوشتم و آنقدر با شماره خط‌ها و علامت‌های «:» اضافی (جدا کردن دستورات در یک خط) بازی کردم تا بالاخره تغییر محتویات آدرس‌ها Syntax برنامه را خراب نمی‌کرد. حالا برنامه‌ای داشتم که در یک بار اجرا عدد ۱ را چاپ می‌کرد و بار دوم عدد ۲ را و این کار را با متغیرها انجام نمی‌داد. سورس برنامه عوض می‌شد و اگر از آن LIST می‌گرفتم، هر بار لیستی جدید را به نمایش می‌گذاشت! البته هیچ کاربردی برای این برنامه متصور نبودم، اما همین الان با خواندن مطلب ویکی‌پدیا در مورد self-modifying code فهمیدم که چنین برنامه‌هایی می‌توانند کاربردهای جالبی داشته باشند!

احتمالا الان می‌توانید حدس بزنید که ۲۰۶۱ از کجا آمده است. برنامه بیسیک تنها برای این نوشته شده بود که برنامه اصلی بازی به زبان ماشین را صدا بزند. برنامه‌نویسان هم برای حداکثر استفاده از حافظه، روال‌های زبان ماشین را درست از اولین آدرس خالی بعد از کدهای بیسیک ذخیره کرده بودند.

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

کارتریج ACTION-VI : دنیای جدید

در جست‌وجوی یک کارتریج اسمبلر به کارتریج اکشن ۶ برخورد کردم (که باز هم مطابق دید عموم مردم از کمودور ۶۴ به عنوان یک کنسول بازی) برای «نسوز کردن بازی‌ها» مشهور شده بود. اما ابزاری بسیار قدرتمند بود و توانایی‌هایی بسیار بیشتر از اجرا کردن کدهای تقلب بازی‌ها داشت.

 

ActionReplay-6

این کارتریج یک برنامه اسمبلر سریع با خودش داشت. امکاناتی برای فرمت کردن و آماده‌سازی دیسکت‌ها، گرفتن نسخه‌های پشتیبان، دستکاری تنظیمات حافظه و نصب یک Fast Loader فراهم می‌کرد و از همه مهم‌تر سیستمی داشت که می‌توانست محتوای حافظه RAM کمودور را به اصطلاح فریز کرده و بعد از ویرایش خانه‌های دلخواه دوباره کمودور را وادار به ادامه کارش کند. یکی از کلیدهایی که بالای کارتریج می‌بینید (معمولا سمت راستی) دکمه ریست است و دیگری دکمه فریز کردن حافظه. تصویر زیر صفحه آغازین کمودور را هنگام زدن کلید ریست این کارتریج نشان می‌دهد.

ActionReplay6-ScreenShot

در این صفحه من هیچ‌گاه از گزینه CONFIGURE MEMORY سر درنیاوردم و از آن استفاده نکردم. اما در قسمت UTILITIES یک اسمبلر سریع و راحت وجود داشت که با آن اسمبلی را هم کمی تجربه کردم.

بالن هوای گرم، با سرعت نور

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

balloon

برای کند کردن سرعت برنامه دو حلقه تو در توی ۲۵۶ تایی خالی را برای تلف کردن وقت داخل حلقه اصلی بازی گذاشتم تا موفق شدم بالن را ببینم. اما باز هم بالن با سرعت نور قطر صفحه را طی می‌کرد و برنامه تمام می‌شد. به این فکر افتادم که برنامه ۸ وزیر را برای سرعت بالا با اسمبلی بنویسم ولی سواد واقعی من در اسمبلی به چند دستور JMP و CMP و ADD محدود می‌شد که برای برنامه‌ای پر از شرط و محاسبات مانند ۸ وزیر بسیار کم بود.

مالتی تسکینگ واقعی با IRQ

احتمالا می‌دانید که وقفه‌ها یا IRQ (سرنام Interrupt ReQuest) روال‌هایی هستند که به صورت منظم و در فواصل زمانی مشخص توسط پردازنده کامپیوتر اجرا می‌شوند.  دلیل این که وقفه نامیده می‌شوند این است که پردازنده در این فواصل زمانی برنامه در حال اجرا را متوقف کرده و روال‌های IRQ را اجرا می‌کند و دوباره به سراغ برنامه اصلی باز می‌گردد. استفاده از وقفه‌ها بیشتر به دردبرنامه‌نویس‌های سیستم می‌خورد که توسط آن‌ها تمام مدت ابزارهای جانبی را برای دریافت یا ارسال اطلاعات کنترل کنند یا در بازی‌ها و برنامه‌های بی‌درنگ (Real Time) شرط‌های حیاتی را به صورت مداوم چک کنند. مثلا سیستم پیش‌فرض کمودور از یکی ازهمین وقفه‌ها برای نمایش مکان‌نمای چشمک‌زن استفاده می‌کرد.

IRQ

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

هک آخر، بازی دوست‌داشتنی

و اما آخرین و از دید خودم جذاب‌ترین هکی که انجام دادم، به قابلیت فریز کردن حافظه کمودور توسط کارتریج اکشن ۶ مربوط بود و بازی Arkanoid که در قسمت اول از آن صحبت کردم. اندکی پس از شروع بازی، کلید فریز را می‌زدم و وارد منوهای اکشن ۶ می‌شدم. آن‌جا گزینه‌ای برای نسوز کردن بازی وجود داشت. سیستم کار به این شکل بود که یک بار محتویات حافظه را بررسی (یا ذخیره) می‌کرد. بعد از شما می‌خواست به بازی برگردید و عمدا یک بار ببازید و دوباره حافظه را فریز کنید. وقتی این کار را می‌کردید دوباره حافظه را چک می‌کرد تا ببیند محتویات کدام خانه‌ها عوض شده است. معمولا با همان یک بار و گه‌گاه با دوبار تکرار این فرآیند خانه‌ای که اعداد مربوط به «جان» کاراکتر بازی در آن ذخیره شده بود پیدا می‌شد و کارتریج از آن به بعد محتویات آن خانه را ثابت نگه می‌داشت. یعنی بازی شما دیگر نسوز شده بود!

arkanoid_level_10

اما باز هم بازی کردن ۳۲ مرحله Arkanoid با احتساب هر مرحله ۲ یا ۳ دقیقه، آن هم بدون SAVE کلی زمان می‌برد. هک اصلی این بود که من بعد از نسوز کردن بازی به سراغ محتویات حافظه تصویر می‌رفتم و آن‌ها را پاک می‌کردم. اگر خاطرتان مانده باشد در قسمت قبلی گفتم که پس‌زمینه‌ها و برخی اجزای بازی‌ها با فونت‌ها ساخته می‌شدند. من چیزی مانند دستور cls را اجرا می‌کردم و خلاص! همه آجرها از بین رفته بودند. فقط کافی بود در هر مرحله یک بار فریز کنم، حافظه تصویر را پاک کنم و بعد از برگشت به بازی عمدا بسوزم.

arkanoid_last_level
غول مرحله آخر

جان‌هایم که تمام نمی‌شد، اما بعد از سوختن و شروع مجدد مرحله، کامپیوتر متوجه می‌شد که تمام آجرها پاک شده و من به مرحله بعد می‌رفتم! تنها در برخی مراحل که حریف‌های متحرک هم وجود داشتند، مجبور بودم نهایتا ۵ یا ۶ ضربه موفق (به آن اسپرایت‌ها) بزنم تا آن مرحله هم تمام شود. فقط مرحله آخر بود که در ساخت غول آن از اسپرایت و آجر و غیره خبری نبود و این مرحله را باید حتما به صورت عادی رد می‌کردم. به این ترتیب من تقریبا در ۹۰ درصد اوقات بازی را تا آخر تمام می‌کردم و بلند می‌شدم! باید اعتراف کنم این کار به خصوص در جمع‌های فامیلی، باعث می‌شد حس یک گیک تمام عیار را داشته باشم!

پایان داستان

شاید شما هم کنجکاو باشید که بر سر این ابزار عزیز چه آمد! واقعیت چندان هم جذاب نیست! حدود سال ۸۱ بود، ده سال از خرید کمودور می‌گذشت و در دوران پادشاهی پنتیوم ۲ و ۳ مدت‌ها بود سراغش نرفته بودم. آن زمان هم هیچ‌گاه فکر نمی‌کردم چنین حس نوستالژیکی نسبت به این اولین کامپیوترم پیدا کنم. به همین دلیل آن را با همه کارتریج‌ها و نوارها و دسته‌های بازی در اصفهان به قیمت ۱۰۰۰۰ تومان فروختم. کاری که اکنون حس می‌کنم از انجامش به شدت پشیمانم!

c64_Pack


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

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

تا آن زمان، با ماشین‌های‌تان خوش باشید و لذت ببرید!

نوستالژی: زمانی که مردها هنوز مرد بودند! (بخش سوم- معنای قدیمی هک)

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

Glider

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


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

basic

به هر صورت این‌ها به یادماندنی‌ترین تجربه‌هایی هستند که من ۲۰ سال پیش با ابزار محاسباتی آن دوره داشته‌ام.

حلقه‌های تو در تو: هشت وزیر در یک بعدازظهر تابستانی

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

8-Queensهمان روز دست به کار شدم و الگویتم حل مساله را به ساده‌ترین و البته ابلهانه‌ترین شکل ممکن نوشتم. ۸ حلقه تودرتوی FOR که به ترتیب موقعیت وزیرها را در هر سطر مشخص می‌کرد. در نهایت در دل داخلی‌ترین حلقه کنترل می‌کردم که آیا این وزیرها یکدیگر را تهدید می‌کنند یا نه. با توجه به این که امتحان کردن این ۱۶ و خورده‌ای میلیون حالت برای کمودور با پردازنده ۴ مگاهرتزی و زبان BASIC V2 مدت مدیدی طول می‌کشید، برنامه را طوری نوشته بودم که با پیدا شدن اولین جواب تمام شود. به نتیجه رسیدن این برنامه یک ظهر تا شب تمام وقت گرفت و من بیش از هر چیز دیگری باید شکایت‌های سایر اعضای خانواده از اشغال بودن تلویزیون را تحمل می‌کردم! البته جواب هم چیزی گرافیکی مانند تصویر بالایی نبود، بلکه ۸ عدد بود که در ۸ سطر روی صفحه تلویزیون چاپ شد و آن‌ها را روی کاغذ یادداشت کردم.

هوش مصنوعی برای کمودور ۶۴؛ واقعا؟

هوش مصنوعی و کمودور ۶۴؟ این یکی دیگر برای خودم هم باور کردنی نبود. در آن سال‌ها مرکز آموزش انفورماتیک شرکت داده پردازی ایران سری کتاب‌هایی را در حوزه انفورماتیک منتشر می‌کرد. سه کتاب اول «انفورماتیک چیست؟»، «انفورماتیک در جهان» و «انفورماتیک از دیدگاه توسعه» نام داشتند. کتاب چهارم اما چیزی بسیار متفاوت بود.

AI-C64

کتاب «مبانی هوش مصنوعی برای کمودور ۶۴» ابتدا به تعریف هوش مصنوعی و صحبت از تورینگ و . . . می‌پرداخت و بعد به تدریج با جهت‌گیری به سمت بازی‌ها، رفتارها و خودگردان‌ها، پردازش زبان طبیعی، تشخیص الگوها و سیستم‌های مکاشفه‌ای برنامه‌های هوشمندتری را به نمایش در می‌آورد که همه با همان بیسیک بدوی کمودور ۶۴ نوشته شده بودند. معماهای کلاسیکی چون برج‌های هانوی، گشت زدن اسب روی صفحه شطرنج و چیزی شبیه برنامه مشهور الیزا (که قبلا هم در مورد آن نوشته‌ام) از جمله نمونه‌هایی هستند که خط به خط روی کمودور تایپ و اجرا کردم. هرچند از شیوه کار آن برنامه شبه لیزا نه آن زمان و نه حتی الان به درستی سر در نیاوردم. یکی از برنامه‌های دیگری که خاطره شفافی از آن دارم، برنامه‌ای بود که مشخصات یک لابیرنت را به صورت پر و خالی بودن خانه‌های یک صفحه شطرنجی می‌گرفت و با وارونه کردن کار (حذف خانه‌های بن‌ست به جای امتحان راه‌های باز) در نهایت مسیر درست را پیدا می‌کرد.

گرافیک: اشباح و کاراکترها

کمی بعد و البته در حین کار با برنامه‌هایی که فقط منطق برنامه‌نویسی‌شان مهم بود، به گرافیک و رنگ‌ها هم علاقه‌مند شده بودم. دوست داشتم حالا که منطق کار این سیستم را می‌فهمم، بتوانم برنامه‌هایم را با ظاهری جذاب‌تر و با رنگ و لعاب بیشتر همراه کنم. به همین دلیل تصمیم گرفتم به سراغ نوشتن یک بازی بروم. در کمودور ۶۴ وقتی می‌خواستید به سراغ گرافیک بروید، به دو چیز مختلف نیاز داشتید. تصاویر متحرک (کاراکترها، گلوله‌ها و . . . ) و تصویرهای ثابت یا همان پس‌زمینه‌ها.

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

Sprite-C64

اسپرایت‌ها که هنوز در سیستم‌عامل مدرنی مانند آخرین نسخه Mac OSX Mavericks هم حضور دارند، در کمودور ۶۴ مستطیل‌هایی با ابعاد ۲۴ در ۲۱ خانه بودند. ۳ بایت در هر ردیف که باید نقاط پر و خالی آن را با ۱ و ۰ جایگزین می‌کردیم و بعد عدد را به مبنای ۱۰ می‌بردیم و آن را با دستور POKE در خانه حافظه متناظر با آن می‌نشاندیم. یادم هست که هنوز هیچ داستانی برای بازی در ذهن نداشتم و حتی نمی‌دانستم چند اسپرایت و به چه شکل‌هایی لازم دارم، اما فکر این‌که هر بار این مستطیل شطرنجی را بکشم و خانه‌ها را پر کنم و تبدیل مبنا و . . . اذیتم می‌کرد. اکنون برنامه‌های طراحی اسپرایت زیادی وجود دارند که این کار را به سادگی انجام می‌دهند اما همه به تازگی با زبان‌های جدید و صرفا برای کنجکاوی و یادآوری خاطرات نوشته شده‌اند.

SpriteEditor-C64اما من آن زمان با 180 خط برنامه بیسیک ادیتور اسپرایت خودم را نوشتم. این برنامه با جوی‌استیک کار می‌کرد و در سمت راست صفحه منویی برای انتخاب ابزار (نوشتن یا پاک کردن) و انتخاب رنگ داشت. البته به لحاظ گرافیکی از تصویر بالایی بسیار ضعیف‌تر بود! با حرکت جوی‌استیک نشانگر آن روی صفحه حرکت می‌کرد و با فشرده شدن تنها کلید جوی‌استیک خانه پر (یا خالی) می‌شد. بعد می‌توانستم اطلاعات این اسپرایت را ذخیره کرده و در بازی‌ام استفاده کنم. البته حتما باید اشاره کنم که بعد از تمام این کارها، هیچ‌وقت به نوشتن بازی یا حتی داستان آن نرسیدم!

اما مساله دوم پس‌زمینه‌ها بودند که به علت محدودیت‌های حافظه و امکانات پردازشی نمی‌توانستند تصاویر معمولی باشند. کمودور حالت گرافیکی و به اصطلاح بیت‌مپ هم داشت اما گرافیک بیشتر بازی‌ها از طریق دستکاری فونت‌ها و نوشتن متن روی صفحه نمایش بوجود می‌آمدند. چیزی شبیه به ASCII ART اما به شدت قدرتمندتر. برای درک بهتر، بد نیست اول نگاهی به PETSCII ها بیاندازید که معادل کدهای ASCII در کمودور بودند، بعد به این تصویر که کلیدهای کمودور را از نزدیک نشان می‌دهد دقت کنید.

C64-KeyboardCloseupبا نشانه‌هایی که کمودور به عنوان فونت و متن می‌شناخت، کافی بود اگر می‌خواهید دایره‌ای ترسیم کنید کلید کمودور را نگه دارید و در سطر اول U و I و در سطر دوم هم J و K را تایپ کنید تا با ترکیب چهار ربع دایره شکل شما کامل شود. حال اگر در نظر بگیرید که در کمودور ۶۴ می‌شد به سادگی علامت‌های کلیدها را تغییر داد و جایگزین کرد به تصویر کلی دست پیدا می‌کنید. هر بازی در ابتدا مجموعه‌ای فونت طراحی کرده و با آن‌ها صحنه بازی را می‌ساخت. مثلا یک کاراکتر را طوری تغییر می‌داد که با تکرار آن روی صفحه نمایش ظاهری شبیه آجر دیده شود و از آن برای ساخت یک دیوار استفاده می‌کرد. حال اگر قرار بود دیوار خراب شود کافی بود کاراکترها از روی صفحه نمایش پاک شوند! و البته اگر تا این‌جای مطلب را خوانده‌اید می‌دانید که کار با متن‌ها و کاراکترها برای کامپیوتر هزاران بار ساده‌تر از گرافیک است. کمی بعدتر می‌گویم که از این موضوع چطور برای تقلب در بازی Arkanoid استفاده می‌کردم.


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

نوستالژی: زمانی که مردها هنوز مرد بودند! (بخش دوم- دردسرهای نرم‌افزار)

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

سطح پایین‌ترین فناوری ذخیره‌سازی که  خوره‌های کامپیوتر امروزی (آن هم احتمالا) به یاد می‌آورند فلاپی‌های 3.5 و 5.25 اینچی هستند. اما اگر هم سن و سال من باشید، خاطرتان هست که کمودور و البته بسیار پیش‌تر از آن اسپکتروم ZX از نوارهای کاست معمولی برای ذخیره داده‌ها استفاده می‌کردند. اسپکتروم که فناوری قدیمی‌تری داشت با یک فیش معمولی هدفون و میکروفون به ضبط صوت‌های معمولی متصل می‌شد و داده‌ها را روی کاست ذخیره می‌کرد یا اطلاعات را از روی آن می‌خواند.

Spectrum+Tape

اما کمودور ۶۴ به احتمال به واسطه فشرده‌تر شدن اطلاعات ضبط شده و مناسب نبودن کیفیت صوتی ضبط‌های معمولی، از یک کاست‌پلیر اختصاصی با کابل و رابط اختصاصی استفاده می‌کرد. البته کمودور هم دیسک درایو داشت و با فلاپی‌های 5.25 اینچی (و ظرفیت حدود ۱۷۰ کیلوبایت) کار می‌کرد. اما قیمت این ابزار به اندازه قیمت خود دستگاه بود و معمولا به درد فروشندگان کامپیوتری می‌خورد که از آن درآمد کسب می‌کنند. به این ترتیب بود که هنوز عقده این دو سه دستور در دل من مانده است:

LOAD "$" , 8
LIST
LOAD "{PROGRAM}" , 8

دستور اول چیزی شبیه dir در DOS بود که نام کل فایل‌های روی دیسک را می‌خواند و دستور دوم آن‌ها را چاپ می‌کرد. بعد از دیدن و انتخاب اسم برنامه مورد نظر با دستور سوم برنامه بارگذاری می‌شد. این انتخاب، سرعت و سهولت دسترسی در آن زمان چیزی بسیار خواستنی بود.

commodore-diskdrive

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

نوارهای کاست و دردسرهای‌شان

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

دایرکتوری کاغذی، جست‌وجوی دستی

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

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

دقیقا کجای نوار مغناطیسی؟

مشکل دیگر کاست‌ها این بود که هد نوشتن و خواندن دستگاه‌های مختلف و حتی یک دستگاه کاست‌پلیر در زمان‌های مختلف، در یک نقطه دقیقا ثابت قرار نداشت. زمانی که شما با داده‌های صوتی سروکار داشته باشید، تاثیر این جابه‌جایی نامحسوس خواهد بود و بعید است شما تغییر یا اشکالی در صدا احساس کنید. اما اگر شما با اطلاعات دیجیتال سروکار داشته باشید، تغییر تنها یک صفر یا یک کافی است تا کل داده‌های‌تان را به هم بریزد. در کمودور بسیار پیش می‌آمد که مثلا ۵ دقیقه (بله ۵ دقیقه!) برای لود شدن یک برنامه از نوار صبر می‌کردید و در نهایت با پیغام LOAD ERROR روبرو می‌شدید!

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

commodore-head-adjust

ما برای حل این مشکل معمولا سه راه‌حل مختلف پیش رو داشتیم.

راه اول: چسب!

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

راه دوم: برنامه تنظیم هد (متداول‌ترین شیوه!)

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

  • ۱– هد دستگاه را تا ته می‌بستید.
  • ۲- نوار تنظیم هد را (که قبلا با هد بسته ضبط کرده بودید) در دستگاه قرار داده و برنامه را لود می‌کردید.
  • ۳- بعد از لود شدن برنامه، نوار تنظیم هد را خارج می‌کردید.
  • ۴- نوارحاوی برنامه  موردنظر را داخل دستگاه قرار داده و آن را به کانتر ابتدای برنامه جدید می‌آوردید.
  • ۵- برنامه تنظیم هد را اجرا کرده و با پیچ‌گوشتی آن‌قدر هد را بالا و پایین می‌کردید تا برنامه تنظیم هد بهترین وضعیت (باریک‌ترین خط) را بدون پراکندگی نقاط به شما نشان دهد.
  • ۶- کاست را دوباره به کانتر ابتدایی برنامه باز می‌گرداندید و شانس‌تان را برای لود کردن برنامه امتحان می‌کردید.

head-adjustment

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

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

این روش یک کم پولداری(!) به این ترتیب بود که شما یک کارتریج تنظیم هد بخرید و این شانسی بود که نصیب من شد. به این ترتیب می‌توانستم با نصب کارتریج در محل مخصوص و روشن کردن کمودور یک ضرب کار را از مرحله ۴ شروع کنم که خودش صرفه‌جویی عظیمی بود.

به هر حال بعد از تنظیم هد روی نوار مورد نظر، دستور LOAD را تایپ می‌کردیم و با پیغام PRESS PLAY ON TAPE کلید پخش را فشار می‌دادیم. در حین لود شدن برنامه هم می‌توانستیم از خطوط رنگی نمایش داده شده در پس‌زمینه تصویر لذت ببریم! اگر اشتباه نکنم دلیل نمایش این خطوط یک برنامه Fast loader بود که ابتدای برنامه‌های درست و حسابی لود می‌شد تا فرآیند لود شدن بقیه برنامه را تسریع کند.

به خاطر یک مشت بازی

اما همه این دردسرها برای چه نرم‌افزارهایی بود؟ تا آن‌جا که من خودم به خاطر دارم، جز بازی‌ها هیچ نرم‌افزار دیگری برای کمودور ۶۴ در بازار موجود نبود. من سال‌ها بعد از خریدن کمودورم و با دیدن یک مجله آلمانی کامپیوتر تازه متوجه شدم که کمودور چاپگر دارد، و البته انواع نرم‌افزار را هم دارد. انواع نرم‌افزارهای کاربردی از واژه‌پرداز و نرم‌افزار صفحه گسترده گرفته تا برنامه‌های حسابداری شخصی و موارد مشابه. نرم‌افزارهایی دارد که فایل‌های اطلاعات تولید می‌کنند و می‌توانند آن را  روی دیسک یا نوار ذخیره کنند. بعدتر فهمیدم که این ماشین پرفروش‌ترین کامپیوتر شخصی تمام دوران بوده است. بعدها مودم‌های بادکشی‌اش را در فیلم‌ها دیدم و فهمیدم می‌توان از راه دور به دیگر کامپیوترها متصل شد.

Commodore Modem

البته این به دورانی مربوط است که هنوز از اینترنت (حداقل در مملکت ما) خبری نبود. به هر حال آن چه ما در دیتا کامپیوتر و الکترون کامپبوتر شیراز می‌دیدم، تنها بازی بود و بس و در نتیجه نرم‌افزارهایی که می‌توانم از آن‌ها نام ببرم برخی از بازی‌های‌هایی هستند که هنوز از آن دوران به یاد دارم:

Opertation Wolf که نسخه بسیار زیباتر آن را روی پی‌سی‌های XT مدرسه بازی می‌کردیم. کیفیت Head Shot را می‌توانید در عکس‌های زیر ببینید! (نمی‌دانم چرا وردپرس عکس‌ها را به صورت عمودی کراپ می‌کند. بنابراین اگر روی این عکس‌ها کلیک کردید و به جای تصویری Landscape یک تصویر Portrait دیدید، روی آن دوباره کلیک کنید تا تصویر اصلی را ببینید.)

Last Ninja 3 که آخر سر نتوانستم از مرحله سوم آن پیش‌تر بروم. دقبق یادم هست که جایی دو قطعه چوب را با یک زنجیر ترکیب می‌کردم و به یک نانچیکو می‌رسیدم. بعد با کشتن حریف باید منتظر می‌ماندم تا مرحله بعدی از روی نوار لود شود و بازی درست همین‌جا فریز می‌شد و مجبور می‌شدم سیستم را ریست کنم.

Arkanoid که در قسمت بعدی مفصل درباره آن خواهم نوشت. فکر کنم هفتاد هشتاد درصد وقت بازی کردنم را به خودش اختصاص داده بود و به خاطر نداشتن امکان ذخیره بازی، همیشه باید ۳۲ مرحله را از اول بازی می‌کردم. داستان این بازی یکی از گیکی‌ترین کارهایی است که تا حالا انجام داده‌ام!

و البته آن زمان‌ها شاید یکی از پرطرفدارترین، خلاف‌ترین و س.ک.س.ی ترین بازی‌های کمودور هم Stri p P oker بود که داشتنش درست مانند داشتن ویدیو و ماهواره ممنوع بود! من اما متاسفانه یا خوشبختانه به رغم داشتن این بازی به واسطه بلد نبودن پوکر هیچ‌گاه به چیزهایی که دیگران رسیده بودند نرسیدم!!

در نهایت یک بازی رانندگی هم بود که ممکن است درست همین تصاویر زیر (بازی Chase HQ) نباشد، اما اولین بازی بود که از سیستم دو بعدی خطی خارج شده بود و فرمی شبه سه‌بعدی و  پرسپکتیوی را ایجاد می‌کرد.


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

نوستالژی: زمانی که مردها هنوز مرد بودند! (بخش اول)

احتمالا بعضی از شماها می‌دونید که عنوان این مطلب از یکی از نامه‌های لینوس توروالدز در میلینگ لیست مینیکس (comp.os.minix) برداشته شده. توی این ایمیل که در تاریخ 5 اکتبر 1991 (13 مهرماه 1370) ارسال شده، توروالدز این طوری شروع می‌کنه:

«آیا شما هم دلتان برای روزهای خوش مینیکس 1.1 تنگ شده است؟ زمانی که مردها هنوز مرد بودند و خودشان درایورهای ابزارهای‌شان را می‌نوشتند؟ آیا پروژه خوبی در دست ندارید و تشنه این هستید که با سیستم‌عاملی سروکله بزنید که بتوانید براساس نیازهای‌تان تغییرش دهید؟ و . . . »

مقدمه

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

Commodore-64-White

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

گوشی هوشمند، اپ، رابط کاربری گرافیکی و ابزارهای محاسباتی که حتی کودکان هم می‌توانند با آن‌ها کار کنند، فکر کنم هنوز به ذهن سازندگانشان هم نرسیده بود.

به هر حال دراین مجموعه پست‌ها که احتمالا بسیار هم طولانی خواهد شد، برای فرونشاندن آن حس نوستالژی، و شاید برای آشنا شدن کاربران تازه و متولدین دهه 60 و 70 با حال و هوای آن دوره و برای یادآوری خاطرات خوب گذشته یعنی همان زمانی که «مردها هنوز مرد بودند» می‌خواهم مروری کلی داشته باشم بر تجربه‌های اولیه‌ای که در شروع روزهای همه‌گیری کامپیوترهای خانگی (و نه شخصی) از سر گذرانده‌ام.

commodore

پیش از آن‌که (اگر حوصله کردید) ادامه مطلب را بخوانید، بد نیست خواهش کنم که اگر تجربه‌ای از این نوستالژی‌های قدیمی دارید و حوصله‌ای برای نوشتن، حتما آن‌ها را بنویسید و اطلاع بدهید تا همه را یک‌جا جمع کنیم. بویژه روی صحبتم با هم سن و سال‌هایی مثل جادی است که از طریق پادکست‌ها و غیره می‌دانم از اسپکتروم و دوران BBSها هم خاطرات جذابی دارد. در ادامه با «صفحه آبی زندگی» مطلب اصلی را شروع می‌کنم.

 

صفحه آبی زندگی

برای بسیاری دیدن صفحه‌ای آبی با متن‌های سفید، به مفهوم مشکلی جدی (و غالبا سخت‌افزاری) در سیستم‌های ویندوزی و هنگ کردنی است که معمولا تنها علاجش ری‌استارت کردن کامپیوتر است. این صفحه، «صفحه آبی مرگ» یا Blue Screen Of Death یا به اختصار BSOD نامیده می‌شود.

BSOD

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

C64_startup_animiertدرست خاطرم هست که در آن تابستان سال ۱۳۷۱ بعد از خرید این دستگاه و برخی متعلقاتش (که آن زمان با قیمت ۲۴هزار تومان تقریبا حقوق یک ماه پدرم را مصرف کرد) به خانه دایی‌ام رفتیم و من در میان نگاه‌های کنجکاو فامیل بعد از روشن دستگاه، تنها هنری که توانستم نشان دهم این بود:

FOR I=1 TO 10:PRINT I:NEXT

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

این دسک‌تاپ من در آن دوران بود و در غیاب دکمه‌ها و آیکون‌ها و تصاویر، تنها شخصی‌سازی قابل انجام تغییر رنگ پس‌زمینه و پیش‌زمینه بود که تازه آن هم با نشاندن دستی شماره رنگ‌ها در خانه‌های خاصی از حافظه انجام می‌شد. حتی هنوز اعداد و دستورات را به یاد دارم:

POKE 53280,5
POKE 53281,11

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

قطعات جانبی

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

آداپتور

هنوز هم واقعا نمی‌دانم که چرا این آداپتور سایزی به این بزرگی داشت. آن زمان فکر می‌کردم که دلیلش باید سیم‌پیچ‌ها و هسته‌های آهنی باشد که مانند ترانسفورماتور عمل می‌کند! اما همان موقع هم امکان تبدیل برق AC به DC و تغییر ولتاژ با تجهیزات الکترونیک وجود داشت و بعید است این آداپتور هم به شیوه‌ای غیر الکترونیکی این کار را می‌کرده است.

Brick

کاست‌پلیر

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

commodoreDatassette

جوی‌استیک

این همان جوی‌استیک آتاری است که همان زمان هم به واسطه خشکی، سادگی و امکانات کم (حتی در مقایسه با دسته‌هایی که خلبانی نامیده می‌شدند) به آن‌ها لقب «گوشت‌کوبی» داده بودیم.

Joystick

کارتریج تنظیم هد

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

Cartridge


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

در قسمت بعدی درباره نحوه تهیه، تکثیر و استفاده از نرم‌افزارها (می‌توانید بخوانید بازی‌ها!) صحبت خواهم کرد.

رهایی از زندان‌های فناورانه

یادداشت من در شماره ۱۵۲ ماهنامه شبکه (+)

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

همان‌گونه که رسم هر ساله ماهنامه شبکه و البته سایر نشریات حوزه فناوری (+) است، با نزدیک شدن سال نوی میلادی، در پرونده‌ای مفصل به استقبال فناوری‌های آینده رفته‌ایم و از رویاهای‌مان سخن گفته‌ایم. اما به نظرم در کنار همه آن‌ها باید به بررسی رویداهای گذشته نیز پرداخت و با دقت ابعاد و آثار آن‌ها را در زندگی روزمره انسان‌ها بررسی کرد. من از این یادداشت به عنوان فرصتی استفاده خواهم کرد تا به جای صحبت از آینده، از گذشته صحبت کنم. از میان تمام رویدادهای حساس سال ۲۰۱۳ (که عجب سالی بود!) سه مورد از مهم‌ترین‌هایی را انتخاب کرده‌ام که به نظرم بیشترین تاثیر را در رهایی از آن زندان‌های فناورانه داشته‌اند.

نخست: مایکروسافت به دلیل فراهم نکردن گزینه انتخاب مرورگر پیش فرض در نسخه‌هایی از ویندوز که در اروپا توزیع شده بودند، به پرداخت ۷۳۱ میلیون دلار جریمه محکوم شد.

موضوع این نیست که مهم‌ترین رقبای IE به رایگان و به سادگی از طریق اینترنت قابل دانلود و نصب هستند. مهم این است که حتی در زمینه‌ای ساده مانند مرورگری که استفاده می‌کنیم، حق انتخاب باید وجود داشته باشد. البته از آن مهم‌تر این که حق انتخاب باید «واضح و آشکار» باشد. چه بخواهیم و چه نخواهیم فناوری به جزیی جدایی‌ناپذیر از زندگی روزمره همه انسان‌ها تبدیل شده است. این جاست که باید به گروهی که در این زمینه تبحر کافی ندارد نیز یادآوری شود: حق انتخاب تو محفوظ است، حتی اگر ندانی چیزی که انتخاب می‌کنی چیست و گزینه‌هایت چه قوت و ضعف‌هایی دارد.

دوم:‌ اتحادیه اروپا تمام شرکت‌های ارایه‌دهنده خدمات اینترنتی و ارتباطی را به رعایت اصل «بی‌طرفی شبکه» یا Network Neutrality مجبور کرد.

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

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

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

به هر حال هدفم این بود که یادآوری کنم در عین بهره بردن از نعمات و مزیات فناوری‌های جدید باید با دیدی کلی‌تر و جامع‌تر مواظب باشیم که در ازای آسایش کسب شده چه چیزهایی را قربانی می‌کنیم. نمی‌دانم چرا این‌جا نیز مانند برخی دیگر از یادداشت‌هایم به یاد آسیموف فقید و سه گانه روبات‌هایش می‌افتم. آن‌جا که آر. جیسکارد رونتلوف در لحظه‌های آخر «حیات»اش قانون صفر را به آر. دنیل اولیواو می‌آموزد. قانونی که آموختنش برای رونتلوف به قیمت «جان»اش تمام شده است. قانونی که می‌توان آن را در جنبه‌های مختلف زندگی تعمیم داد:

«همیشه حفظ بشریت [حق آزادی، انتخاب، اشتباه]، از حفظ جان [مال، آسایش، سود] یک انسان مهم‌تر است.»

به جای من فکر نکن

یادداشت من در شماره ۱۵۱ ماهنامه شبکه (+)

151اول: اندرو ان‌جی و مفهوم یادگیری عمیق، به احتمال زیاد و به واسطه مقاله منتشر شده در شماره ۱۴۶ ماهنامه باید برای شما آشنا باشد. یادگیری عمیق یا Deep Learning تلاشی است برای شبیه‌سازی عملکرد مغز انسان در یادگیری موضوعات مختلف. البته اگرچه گوگل اکنون با بهره بردن از دانش نوابغی چون کرتزوایل در این حوزه ادعای پیشگامی دارد، اما سابقه تلاش در این زمینه بسیار قدیمی‌تر از فعالیت‌های کنونی گوگل است. باز هم به احتمال زیاد می‌دانید که یکی از اصلی‌ترین کاربردهای کنونی این فناوری و جنبه‌ای که دقیقا خود کرتزوایل بر روی آن متمرکز شده است، درک زبان طبیعی است.

در تعطیلات آخر هفته گذشته این فرصت را داشتم که با دو نمونه مشهور و البته بسیار پیشرفته درک زبان طبیعی یعنی Siri اپل و Google Now محصول غول جست‌وجوی اینترنتی سروکله بزنم. گرچه حاضر جوابی Siri و شیوه پاسخ دادنش به سوالات مختلف و متنوع بسیار جذاب بود، اما واقعیت این است که Siri در برابر Google Now و دقتی که این تازه وارد در تشخیص لهجه عجیب و غریب ما و همین‌طور گستره وسیعی موضوعاتی که درباره آن‌ها قادر به تعامل است، بیشتر به بازیچه‌ای می‌مانست. این قدرت جادویی Google Now بیش از آن‌که مدیون الگوریتم‌های تازه یادگیری عمیق باشد، وام‌دار حجم عظیم داده‌هایی است که گوگل درباره ما در اختیار دارد و می‌تواند از آن‌ها برای آموزش دادن یا train کردن این سیستم یادگیری‌اش استفاده کند. این داده‌ّها که همه از تعاملات معمول من و شمای نوعی استخراج شده‌اند قدرتی باورنکردنی را به این شرکت اعطا می‌کند که تنها می‌توانیم امیدوار باشیم همان‌طور که قول داده است با آن شیطنت نکند. درباره این قدرت کمی بعدتر دوباره حرف خواهم زد.

دوم: باز هم به احتمال زیاد شنیده‌اید که گوگل کاربرانش را تشویق می‌کند که سیستم پیام‌رسانی یا IM خود را با سرویس Hang Out این شرکت ادغام کنند. به ادعای (البته کاملا درست) گوگل در چنین صورتی هزینه‌های ارتباطی کاربر کاهش یافته و او اطلاعات چت‌ها و مسیج‌ها و تماس‌هایش با یک فرد خاص را نیز به صورت یک‌جا و در کنار هم در اختیار خواهد داشت. علاوه بر این‌ها امکان مکالمه رایگان با Google Voice هم حداقل در آمریکا و کانادا برای همه کاربران فراهم است. چیزی که در این میان گوگل هیچ اشاره‌ای به آن نمی‌کند این است که تمام این‌ها علاوه بر منافعی که برای کاربر دارد، در واقع خوراک ماشین پولساز گوگل یعنی تبلیغات را هم فراهم می‌کند. حتی اگر ایده تبلیغات هدف‌گیری شده و غیره را هم کنار بگذاریم، من که بعید می‌دانم Googlerها حداقل برای تفنن و آزمون هم که شده سیستم یادگیری عمیق‌شان را روی مکالمات صوتی Google Voice به کار نبرده باشند!

سوم: بیایید خلاصه دو بند قبلی را کنار هم گذاشته و به هم ربط دهیم تا پازل‌مان تکمیل شود. گوگل الگوریتم یا روشی برای درک زبان طبیعی و البته «فهمیدن» آن دارد. گوگل داده‌های تماس‌ها، مسیج‌ها، قرارهای ملاقات، موضوعات مورد علاقه شما، محل‌هایی که می‌روید، بازی‌هایی که می‌کنید، اسامی دوستان‌تان، اسناد و مدارک کاری یا شخصی‌تان و خلاصه تقریبا هر آن‌چه در زندگی عادی و هویت آنلاین شما مهم است را در اختیار دارد. در این صورت آیا ممکن نیست که بتواند افکار آینده شما را بخواند یا حتی (در آینده نزدیک شاید با اجازه شما) به جای شما فکر کند؟

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

به این ترتیب نه تنها این اطلاعات به گوگل امکان می‌دهد (فعلا) درباره امور ساده‌ای نظیر توییت کردن یا لایک کردن به جای شما تصمیم بگیرد، بلکه بعدتر می‌تواند در تعاملات آنلاین که در آن‌ها به حضور فیزیکی نیازی نیست کاملا جای شما را بگیرد. این موضوع گرچه ممکن است برای سلبریتی‌هایی که معمولا حساب‌های کاربری‌شان را خودشان مدیریت نمی‌کنند یا سازمان‌هایی که هویت انسانی ندارند جالب باشد، اما برای من به عنوان یک انسان بسیار ترسناک است. راستی اگر فرصت کار با Google Now نصیب‌تان شد حتما این سوال را از او بپرسید:

The answer to life, universe and everything

شنیدن پاسخ از زبان Google Now بسیار جذاب‌تر از جست‌وجو دیدن نتیجه آن روی صفحه مرورگر است و این دقیقا دید یک کامپیوتر به هدف زندگی است . . .

بازگشت به گذشته؛ به بهانه اشباح

یادداشت من در شماره ۱۵۰ ماهنامه شبکه (+)

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

فارغ از تمام ویژگی‌های فنی و اصلاحات زیبایی‌شناسی، نکته‌ای که برای من جالب و جذاب بود معرفی فریم‌ورک جدیدی به نام SpriteKit بود که به برنامه‌نویسان کمک می‌کند اشیاء متحرکی را روی صفحه به نمایش درآورده و موقعیت هریک و برخوردهای آن‌ها را با هم کنترل کنند. گرچه برخی از امکانات این فریم‌ورک پیش از این در Core Animation سیستم‌عامل OS X وجود داشت، اما کاربرد اصلی این اسپرایت‌ها یا اشباح در حوزه بازی‌سازی خواهد بود که وابسته به اشیایی (از شخصیت‌ها تا گلوله‌ها و . . .) است که دایما در حال حرکت هستند. گرچه تجهیزات موبایل اپل اکنون تقریبا به یکی از پرکاربردترین پلتفرم‌های بازی‌های دیجیتال تبدیل شده‌اند، اما سیستم‌های دسک‌تاپ اپل هنوز در این زمینه حرف چندانی برای گفتن ندارند و هنوز غالب عناوین سنگین و حرفه‌ای سکوهای ویندوزی را هدف می‌گیرند. عرضه این فریم‌ورک شاید قدم اول در راه حل این مشکل باشد. البته نباید به این زودی منتظر تحول شدیدی در این زمینه باشیم.

به هر حال خواندن این ویژگی جدید، ابتدا من را به یاد کمودور ۶۴ و دوران ابتدایی آشنایی من با کامپیوترها انداخت. آن‌جا اسپرایت‌ها مستطیل‌هایی به ابعاد ۲۴ در ۲۱ پیکسل بودند که باید روشن و خاموش بودن هر گروه هشت‌تایی از این 504 پیکسل را با دستور POKE در یک بایت حافظه متناظر با اسپرایت ذخیره می‌کردیم. برای کنترل برخورد آن‌ها هم با استفاده از یک IRQ به صورت دایم مقدار یک خانه از حافظه را می‌خواندیم و با صفر و یک شدن بیت‌ها، می‌فهمیدیم کدام یک از اسپرایت‌ها با هم یا با بخشی از تصویر در پس‌زمینه برخورد کرده‌اند. ابزاری که به کمک آن تصویری ساده از یک بالن را در پس‌زمینه ابی‌رنگ سیستم به حرکت در می‌آوردم.

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

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

این موضوع حتی به اینترفیس و ظاهر نرم‌افزارها هم نفوذ کرده است. کسانی که با نرم‌افزاری مثل Turbo C از زمان داس و ویندوز ۳.۱ یا نمونه‌های مشابه کار کرده باشند، احتمالا شباهت بی‌نظیری را بین منوهای آن نرم‌افزار و نوار منوی کنونی Visual Studio (که همه با حروف بزرگ و پس‌زمینه‌ای تخت دیده می‌شوند) احساس خواهند کرد.

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