بایگانی برچسب: s

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

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

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

حالا مشکل چی بوده؟

  • بعضی ها یکهو نتونستن از اپ مشهورترین سایت شطرنج یعنی چس دات کام بازی کنن

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

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

بعد از چند قدم دیگه این گزاره اضافه می شه:

  • کسانی که مشکل دارن همه آیپدهای قدیمی دارن

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

  • آیپدهای قدیمی ۳۲ بیتی بودن
  • برای شروع بازی، شماره سریال یونیک بازی به دستگاه ارسال می شه و توی هر حرکت استفاده می شه

بازم گزاره لازمه؟

  • تعداد بازی های سایت به ۲ میلیارد و ۱۴۷ میلیون و ۴۳۸ هزار و ۶۴۷ بازی رسیده، یعنی ۲ به توان ۳۱ منفی یک

امیدوارم تا الان حدس زده باشین، متغیری که کد بازی رو نگه می داره در آیپد ۳۲ بیتی است و حالا شماره بازی بزرگتر از ظرفیت حافظه شده و برنامه به هم می ریزه. یک کد که برنامه نویس سالها قبل پیش بینی نکرده بودش و الان باعث ۴۸ ساعت اختلال و کلی ترابل شوتینگ شده تا بشه این گزاره ها رو کنار هم گذاشت.

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

آگهی ضد سیگاری که با رد شدن سیگاری‌ها، سرفه می‌کند

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

اینجا جایی است که سوئدی های ساکن استهکلم معمولا با سیگار ازش رد می‌شن. این شرکت تبلیغاتی عکس العمل آدم ها رو هم ضبط می‌کنه که گاهی خنده و گاهی تعجب است.

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

سی ان ان

اشتباه زدم، فاک!

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

برنامه با پایتون است و برای نصبش کافیه بزنین:

sudo -H pip install thefuck

و بعد از اولین fuck، خودش راهنمایی می کنه که چی رو باید کجا بنویسین. احتمالا یک کد کوتاه رو در bashrc. یا zshrc. و بعد اجرای دوباره bash یا zsh.

برنامه‌نویس‌ها در نقاشی‌های نقاشان کلاسیک

تامبلر نقاشی‌های کلاسیک از برنامه‌نویسان ایده جالبی داره که مطمئنا می تونه برای اکثر مخاطب‌های من بامزه باشه: تفسیر مرتبط با دنیای امروز برنامه نویسان نقاشی های کلاسیک. مثلا اینها:

ruby

«کارگران برنامه نویس در حال نگهداری اپلیکیشن مبتنی بر روبی آن ریلز»
– ارو یارنفلت. رنگ روغن روی بوم. ۱۸۹۳

return

«مدیر بخش مهندسی از جلسه بودجه باز می‌گردد»
– ایلیا رپین. رنگ روغن روی بوم. ۱۸۸۸

emacs

«ایمکس علیه ویم»
– گویا. ۱۸۲۰ تا ۱۸۲۳

javautil

«java.util.Date»
– سالوادور دالی. رنگ روغن روی بوم. ۱۹۳۱

root

«مدیر سیستم به یکی از توسعه دهندگان وب بر روی سرور پروداکشن دسترسی سودو می‌دهد»
– آندرآ دل وروچیو و لئوناردو داوینچی. رنگ روغن روی بوم. ۱۴۲۵ تا ۱۴۷۵

scala
«بازنمایی تصویری زبان برنامه نویسی اسکالا»
– هیرونیموس بش. رنگ روغن روی چوب بلوط. ۱۴۹۰ تا ۱۵۱۰
(پنل سمت چپ نمایشگر قابلیت‌های فانکشنال زبان، پنل اصلی سیستم تایپ و پنل سمت راست اجزای شئی گرای زبان را نشان می‌دهند)

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

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

return

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

همینه که خوندن رمان و دلسپردن به هنر ارزشمند خونده می شه: آشنا شدن با لایه ای عمیق از روابط انسانی.

یادتون نره که از نقاشی ها و شوخی های تامبلر برنامه نویس ها در نقاشی های کلاسیک لذت ببرین (:

هواشناسی در ترمینال: مثل اینکه تا یکشنبه هم فضای بارونه

سایت wttr.in یک هواشناسی تحت ترمینال است. جذابیت خاص؟ با curl که یک ابزار بسیار قدرتمند لینوکسی برای دریافت یو آر ال‌ها با تکنیک‌ها و مکانیزمهای و گزینه‌های مختلف است هم می تونین بهش درخواست بدین. مثلا اگر لینوکس (یا کرل) دارین کافیه این دستور رو بزنین:

curl http://wttr.in/tehran

تقسیم بر صفر در یک ماشین حساب مکانیکی

mechanicalzero

تقسیم بر صفر همیشه هیجان انگیز بوده. اگر چیزی رو به ده تقسیم کنیم، به چیزهایی یک دهم اون چیز می رسیم. اگر چیزی رو به یک‌دهم تقسیم کنیم، به چیزی ده برابر چیز اولیه می رسیم. همینطور اگر چیزی رو به یک‌صدم تقسیم کنیم به چیزی صد برابر بزرگتر و اگر به یک هزارم به چیزی هزار برابر بزرگتر و … اگر به صفر تقسیم کنیم.. به بینهایت!

توی برنامه نویسی این برای ما یک ارور (یا نتیجه غیر عددی) است و توی ریاضیات چیزی خارج از حوزه اعداد اما اگر از یک ماشین حساب مکانیکی با چرخ دنده و غیره استفاده کنیم ماجرا چطوری می شه؟ این ویدئو نتیجه اینکاره

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