بایگانی ماهیانه: جولای 2011

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

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

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

قدیم ها 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 استفاده می‌کنم که بخشی از زندگی روزمره‌ام توی لینوکسه. این برنامه می‌تونه عکسها رو تغییر سایز بده، تنظیم نور کنه، ببره و غیره و غیره. حالا من باهاش تصاویر رو به هم می چسبونم. با این دستور:

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

نتیجه؟ این:

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

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

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

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

بقیه اش رو توی نارنجی بخونین

گوگل پلاس و بانسرهاش

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

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

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

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

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

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

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

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