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

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

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

قدیم ها 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

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

چرا گنو/لینوکس رو دوست دارم: ساخت انیمیشن با لینوکس

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

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

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

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

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

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

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

نتیجه؟ این:

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

گردش در بهترین موزه‌های جهان: موزه هنر گوگل

به افتخار لیلا که عاشق نقاشی ها است (:

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

برای ورود به موزه‌ها باید اول به صفحه اصلی سایت برین: www.GoogleArtProject.com و با چنین چیزی مواجه بشین:

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

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

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

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

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


اگر فقط یک پادکست باشد که من هیچ قسمتی‌اش رو از دست ندم، لینوکس آوت لاوز است. قبلا در مورد شماره ۱۹۸شان با عنوان بهترین طنز لینوکسی یک مطلب نوشته‌ام و حالا هم یک شماره عالی دارند: شماره ۲۰۰ و تشریح اینکه این دویست شماره چطور تولید شده.

شیوه ساخت پادکست در یک تنظیم لینوکسی

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

بهترین طنز لینوکسی : پادکست اول آوریل لینوکس آوت‌لاوز

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

  • از فلسفه گنو/لینوکس سر در می‌آوردی
  • لینوکس آوت لاوز را هفتگی گوش می‌کنید
  • اخبار دنیای لینوکس و نرم افزار آزاد را می‌شناسید
  • می‌دانید Lame یعنی چه
  • انگلیسی‌تان قابل قبول است

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

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

اینهم لینک مستقیم دانلود ام پی تری / شانزده مگ

شغل: آینده نگر

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

مثلا به این سند جذاب نگاه کنید. این مال موسسه Institute for the Future است که بهترین‌های دنیا رو جمع کرده بود تا بتونه آینده رو ببینه. سند مال سال ۱۹۷۱ است! چهل سال قبل! زمانی که دانشمندان تازه داشتند سعی می‌کردند با تکیه بر آرپانت، اینترنت رو ایده پردازی کنن. واقعا نیاز به نوابغی است که درست در سالی که اینتل تازه تاسیس شده بود، فهرستی درباره آینده بنویسه که سی مورد از سی موردش بعد از چهل سال محقق بشه.

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

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

مبادله کتاب‌های درسی با آبجو

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

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

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

امتحان زندگی ابری با جولی او.اس. روی نتبوک سامسونگ

شاید این چند وقت، اسم JoliOS را شنیده باشید: یک سیستم عامل ابری از یک شرکت فرانسوی که اجازه می‌دهد به یک میزکار در ابرها به نام Joli Cloud وصل بشین. بذارین کمی واضح‌تر توضیح بدم.

در حالت عادی همه چیز توی کامپیوتر شما می گذره. اگر بازی می کنین، یک بازی دارین که روی کامپیوترتون نصب شده، اگر فایلی رو ادیت می کنین در اصل دارین با یک برنامه نصب شده توی کامپیوترتون یک فایل درون کامپیوترتون رو تغییر می دین و غیره و غیره.

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

مثل همیشه اول ایزو رو دانلود می کنم و با unetbootin باهاش یو.اس.بی. دیسکم رو آماده بوت می کنم. بعد نت بوک رو باهاش بوت می کنم:

بعد از چند لحظه سیستم کاملا بوت شده ولی ظاهرا وضعیتش با وضعیت معمول بقیه سیستم‌ها فرق داره!

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

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

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

این رو هم اضافه کنم که برنامه های معمول هم قابل نصب هستن. این در اصل یک اوبونتو است و اوبونتو هم در اصل یک دبیان و نتیجه این رابطه خانوادگی این است که من هر برنامه ای که در کامپیوتر «غیرابری» ام بخوام رو اینجا هم می تونم نصب کنم و داشته باشم.

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