برنامه‌نویس‌ها و کاربران از نظر همدیگه

متاسفانه منبع رو ندارم.

(اگر عکس بالا رو نمی بینید، به دنبال برنامه های سانسور شکن باشید (: اینترنت ایران بدون ضدسانسور عملا اینترنت نیست)

پرینس آف پرشیا ریلیز شد. برای کمودور ۶۴/۱۲۸

پرینس آف پرشیا رو همه کسانی که سنی ازشون گذشته یادشون هست. البته از روی نمونه پی.سی. و داس که خودش مال سال ۱۹۸۹ بود. حرفه‌ای ها چیت کد MEGAHIT رو هم حتی ممکنه یادشون بیاد. اما اصل این بازی برمی‌گشت به دورانی خیلی خیلی دورتر حتی از اون زمان و مربوط بود به یکی از اولین کامپیوترهای خونگی جهان (اپل ۲ که استیو وزنیاک طراحی کرده بود).

حالا یک آدم جالب وبلاگی راه انداخته به آدرس PoPc64.blogspot و داره سعی می کنه کدها که تازه منتشر شدن رو روی کمودور ۶۴ خودش اجرا کنه. برای جوانان بگم که کمودور ۶۴ یکی از موفق‌ترین کامپیوترهای خونگی جهان بود و من هم یکی اش رو داشتم که البته بر می گردی به سن و سال.

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

محاسبه عدد π تا ۱۰۰۰۰۰۰۰۰ رقم اعشار با پایتون در زیر ده دقیقه

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

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

مقاله رو حتی اگر نخونین اسکرول کردنش جالبه چون آدم وقتی از روی فرمول‌ها بدون اینکه بخونتشون رد می‌شه، حداقل برای من که خیلی لذت بخشه. این دوستمون در تلاش چهارم، با استفاده از الگوریتم چادنوسکی (؟) با یک کامپیوتر i7 و ۶ گیگ رم خالی و یک لینوکس ۶۴ بیتی در ۵۴۲ ثانیه موفق می‌شه عدد π رو تا ۱۰۰ میلیون رقم حساب کنه و نمودار خوشگل زیر رو از مجموعه تلاش‌های چهار قسمتی‌اش تولید کنه…. راستش رو بگم تنها مشکل این صفرهای زیاد است که من این روزها با دیدنشون نمی دونم چرا استرس می گیرم (: به هرحال.. این می تونه پایه یک مقاله خوب هم باشه اگر کسی از دوستان رشته ریاضی درس می خونه (:

چرا گنو/لینوکس رو دوست دارم یا چطوری چت رو از کامند لاین شروع کنین

توجه: این پست در مورد فلسفه نرم افزار آزاد است. این پست در مورد برنامه نویسی و آموزش اون نیست.

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

قدیم ها gnome-do تا حدی جوابگو بود ولی نه اونقدر که من می خوام و … چرا خودم ننویسم چیزی که می خوام رو؟ اینجا لینوکسه، دنیای آزاد و مشارکت و سوار شدن روی دوش غول‌هایی که قبلا زحمات متنوع رو کشیدن تا ما راحت بالا بریم.

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

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

$ im.py "ali_banaii@gmail.com" "aafiat bashe"

حالا کافیه برنامه من در هر بار اجرا به دی باس وصل بشه:

bus = dbus.SessionBus()
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")

توی همه اکانت های من فهرست دوستام رو بگیره:

for thisAccount in purple.PurpleAccountsGetAllActive():
  myname = purple.PurpleAccountGetUsername (thisAccount)
  for buddy in purple.PurpleFindBuddies(thisAccount, '' ):

و اگر اسم این دوستم با اسمی که بهش دادم مساوی بود، پیام رو براش بفرسته:

      thisConv = purple.PurpleConversationNew(1, thisAccount, foundName)
      purple.PurpleConvImSend (purple.PurpleConvIm(thisConv), sys.argv[2])

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

jadi@jint:~$ im.py banae "aafiat bashe"
Send ' aafiat bashe ' to  ali banaii ( ali_banaii@gmail.com ) ? y

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

راهنمای مرکز کنترل بیماری‌های آمریکا برای مقابله با حمله زامبی‌ها

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

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

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

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

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

برای مقابله با زامبی هم مثل مقابله با سیل باید این وسایل رو دم دست داشته باشیم:

  • آب
  • غذا
  • دارو
  • ابزار و وسایلی مانند چاقو، نوارچسب، باتری، …
  • وسایل بهداشتی مانند صابون، ضد عفونی کننده، نوار بهداشتی و …
  • لباس و وسایل خواب
  • اسناد مهم جمع شده در یک کیف
  • کمک‌های اولیه

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

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

حالا شما گیک عزیز! نمی‌خوای برای مقابله با زامبی‌ها آماده بشی؟

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

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

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

اما عکس دوم مال یک هنرمند دیگه به اسم کای رومهر است از eBoy که در کنار میز ایستاده‌اش یک میز نشسته با صندلی توپی هم درست کرده برای مواقعی که می‌خواد مصرف کالری‌اش رو به صفر برسونه (:

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

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

برگ برنده ما باید پیوند خوردن با دنیا باشه اونهم از طریق دیدن شباهت‌هاش.

پی.نوشت. تصویر پشت زمینه لپ تاپم عکس پیش فرض ویندوز ایکس پی نیست، اینه

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

نشستن کشنده است

میز کار ایستاده برای هکر ها

رسما اعلام شده که نشستن بد است.

نشستن باعث چاقی می‌شود.

نشستن باعث ضعف است.

و نشستن مرگ را نزدیک‌تر می‌کند.

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

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

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

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

طبق تحقیقات مشابه، یک عمر روزانه شش ساعت پشت میز نشستن می‌تواند در مردان باعث ۲۰٪ افزایش احتمال مرگ در مقایسه با کسانی شود که روزانه تنها ۳ ساعت پشت میز می‌نشینند.

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

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

منابع: بیزنس اینسایدر و بویینگ بویینگ.

زندگی به مثابه بازی: خودروی سبز لیف نیسان

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

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

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

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