ایستر-اِگ برنامه‌نویسی در سیلیکون ولی سیزن سه، قسمت یک

رسم خوبی در دنیای قدیم نرم‌افزار بود که طبق اون برنامه‌نویس‌ها ایستر-اِگ توی برنامه‌ها می‌ذاشتن: قطعاتی که وقتی کار خاصی می‌کردین، کار خاصی می‌کردن. مثلا ممکن بود یک برنامه حسابداری همیشه طبیعی کار کنه ولی اگر ترکیبی از پنج کلید رو پشت هم بزنین، یک بازی کوچیک توش ظاهر بشه. یا مثلا این روزها اگر عبارت do a barrel roll رو درگوگل سرچ کنین…

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

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

و وقتی سعی می‌کنین بخونین خیلی راحت نیست. حتی مثلا می‌تونین دقیق‌تر نگاه کنین که تابع main وسط خط گذاشته شده تا به راحتی نبینین که عملا یک تابع داریم که ۱۷ بار صدا زده می‌شه که توش یک کد هگز شیفت داده شده … خوندنش سخته.. پس تایپش می کنیم:


➜ /tmp cat sv.c
typedef void enc_cfg_t;
typedef int enc_cfg2_t;
typedef __int128_t dcf_t;
enc_cfg_t _ctx_iface(dcf_t s, enc_cfg2_t i){
int c = (((s & ((dcf_t)0x1FULL << i * 5)) >> i * 5) + 65);
printf("%c", c); }
enc_cfg2_t main() {
for (int i=0; i<17; i++){
_ctx_iface(0x79481E6BBCC01223 + ((dcf_t)0x1222DC << 64), i);
}
}

و واقعا کمپایل می‌شه:

➜  /tmp gcc sv.c
sv.c:7:5: warning: implicitly declaring library function 'printf' with type
      'int (const char *, ...)' [-Wimplicit-function-declaration]
    printf("%c", c); }
    ^
sv.c:7:5: note: include the header  or explicitly provide a declaration for
      'printf'
1 warning generated.

و اجرا:

➜  /tmp ./a.out
DREAM_ON_ASSHOLES

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

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

  • Mohsen Raee

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

  • .

    جادی، میشه ازت بخوام مثل سابق متن پست رو توی کانال تلگرام هم بذاری و به یه لینک بسنده نکنی؟

    • jadijadi

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

      • Mojtaba Rahimy

        کدهایی که بعد از «پس تایپش می کنیم» نوشتی کلا به هم ریخته است.
        firefox 57.0.4

  • arash_hemmat
  • سید

    ضمن عرض سلام و تشکر از استاد عزیز ، جادی

    به کمک این ربات webchbot@ کانال تلگرام به سایت اینترنتی تبدیل میشه
    و مطالب ارسالی در کانال بلافاصله در وب منتشر میشوند
    شاید بدرد جادی قصه ما نخوره
    ولی شاید بدرد خیلی افراد دیگه بخوره

    توضیحات ، آموزش و نمونه کار : ‌ ‌ tel_egr_am@

  • Ebrahim Houshyar

    تو نرم افزار ادوب افترافکت میشه کاری کرد که اگه یه جا کلیک کنی صدا گوسفند بده!!!
    باحالیش اونجاست که به شاگردهام میگم اگه این دوره رو تموم کنید میتونید کاری کنید افتر صدا گوسفند در بیاره از خودش! 😎

  • ali mohamadreza

    حالا جالبیش اینجاست که از این ایستر-اگ ها تو زندگی واقعی هم زیاد داریم! مثلا اگه جای کش جوراب رو که رو پات افتاده بخارونی باعث میشه تو بدنت مایعی به اسم دوپامین ترشح بشه! :D

  • tofiq

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

    یه لینک واسه دانلود میدی

  • Sadeq

    سلام جادی
    اومدم بابت پست تلگرامت درباره exim ازت تشکر کنم ولی تو سایتت خبرشو نزده بودی :( به نظرم اولویت اولت همین سایت باشه چون آینده تلگرام تو ایران نامعلومه و حیف مطالبته که از دست برن…

    یه خواهش داشتم:
    سایتی می شناسی اخبار مرتبط با امنیت و بروز رسانی پکیج های سرور مثل Nginx ، PHP ، MySQL و غیره رو یکجا اطلاع رسانی کنه؟ یا باید برم تک تک سایتهاشون چک کنم؟

    • jadijadi

      هی دارم فکر می کنم باید رابطه ام چه شکلی باشه با سایت و تلگرام. خب از اونطرف چیزی مثل نیاز به آپدیت اگزیم عملا نیازی نیست تو آرشیو سایت باشه. سایت خبری که نیستم (: ولی خب دوست دارم آدم ها ببینن در اون لحظه.
      یا چیزهایی که لینکش خوبه ولی من حوصله و وقت نمی کنم خودم در موردشون بنویسم. شاید بشه لینک داد.
      2018-03-07 12:45 GMT+03:30 Disqus notifications@disqus.net:

  • Hamed Ghasemi

    خیلی بامزه بود خوشم اومد .. :)) عحب حوصله ای داریا چطور خوندی اینو , من سریال دنلود میکنم همه ۴۸۰ هستن و اصلا دیده نمیشن لابد ۱۰۸۰ بوده که دیدی ! D:

  • reza

    آره قبلا دیدمش خیلی باحال بود ههه…شدیدا منتظر فصل 4 شیم.