یکشنبه، دی ۳۰، ۱۳۸۶

رونین

احتمالا فیلم رونین را دیده‌اید. فیلم با شرح معنی کلمه‌ی رونین آغاز می‌شود:

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

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

در تعریف رونین، به جای سامورائی بگذارید انسان‌ (هر انسانی) و به جای ارباب بگذارید اعتقادات، عقاید، ارزش‌ها. وقتی اعتقادات یک فرد بمیرند، آن فرد دیگر اربابی ندارد؛ نه از شکستن می‌ترسد، نه از شکسته شدن؛ نه از تحقیر کردن می‌ترسد، و نه از تحقیر شدن؛ طرف ناحق را می‌گیرد اگر سود بیشتری به او برساند؛ برای منافع‌اش دست به هر کاری می‌زند؛ رونین می‌شود.

مدتی است آثار رونین شدن را در خودم می‌بینم. من از رونین بودن می‌ترسم...

دوشنبه، دی ۱۷، ۱۳۸۶

از بین بردن نیولاین از انتهای یک متغیر

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

Initial Wrong Script
  1:   #! /bin/bash
  2:   
  3:   for line in `cat input.txt`; do
  4:       echo "<tag>${line}</tag>"
  5:   done

برای رفع این مشکل می‌توان یا از هر متغیر نیولاین را حذف کرد:

Removing new-line from variable
  1:   #! /bin/bash
  2:   
  3:   for line in `cat input.txt`; do
  4:       line=`echo $line | awk '{ str1=str1 $0 }END{ print str1 }'`
  5:       echo "<tag>${line}</tag>"
  6:   done

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

Replacing new-line with space in a new file
  1:   #! /bin/bash
  2:   
  3:   for line in `cat input.txt | awk '{ str1=str1 $0 " " }END{ print str1 }'`; do
  4:       echo "<tag>${line}</tag>"
  5:   done

به تفاوت در پارامترهای awk در دو روش فوق توجه کنید.

یکشنبه، دی ۱۶، ۱۳۸۶

یک مثال ساده برای درک بهتر پایپ

یک اسکریپت ساده که در یک حلقه منتظر ورودی کاربر است، و یک پیغام سلام چاپ می‌کند. عملیات ورود با EOF یا Ctrl+D در UNIX و Ctrl+Z در DOS خاتمه می‌یابد.

sayhello.sh
  1:   #! /bin/bash
  2:   
  3:   while read name; do
  4:       echo Hello $name
  5:   done

نمونه‌ی خروجی:

Output
$ ./sayhello.sh
Amir
Hello Amir
Kamran
Hello Kamran
[Ctrl+D]
$

یک فایل می‌سازیم که در آن در هر خط یک نام قرار دارد. با دستور cat‌ می‌توان محتویات فایل را به stdout فرستاد.

Creating names.txt
$ echo -e "Ali\nHasan\nAkbar\nAsghar" > names.txt
$ cat names.txt
Ali
Hasan
Akbar
Asghar
$

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

using pipe
$ cat names.txt | ./sayhello.sh
Hello Ali
Hello Hasan
Hello Akbar
Hello Asghar
$

از پایپ می‌توان بین توابع داخل یک اسکریپت هم استفاده کرد.

این پست نیز در همین رابطه بود.

متا-لینک در رابطه با لینوکس

شنبه، دی ۱۵، ۱۳۸۶

بمب‌های مهاجر (لینک)

http://blog.maryammomeni.com/2008/01/post_495.html

 

شنبه، دی ۰۸، ۱۳۸۶

اعتراف

چند اعتراف، به دعوت پاسپارتوی عزیز:

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

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

۳. اعتراف می‌کنم هنوز نمی‌دانم از زندگی‌ام چه می‌خواهم، و به کجا می‌خواهم بروم.

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

۵. اعتراف می‌کنم با این که زیاد از مرگ می‌گویم و آن را در حرف‌های روزمره زیاد بلغور می‌کنم؛ اما هنوز فکر می‌کنم همه می‌میرند به جز من. از اخلاق و حرکات و سکنات انسانی شما دوست عزیز، کاملا واضح است که مثل من فکر نمی‌کنید و با حقیقت کنار آمده‌اید!

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

شنبه، آذر ۱۷، ۱۳۸۶

تابع نزولی

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

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

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

چهارشنبه، آذر ۰۷، ۱۳۸۶

انتقام

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

پ.ن.

۱. متن فوق قسمتی از دیالوگ فیلم Interpreter است که این‌جا می‌توانید متن انگلیسی آن را ببینید.

۲. به قول بزرگی (احتمالا کاترین پاندر) ما قربانی قربانی‌ها هستیم.

شنبه، آبان ۱۹، ۱۳۸۶

نقاش و نقاشی ۲

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

این اثر را می‌توانید در این صفحه ببینید و یا مستقیما از این‌جا دانلود کنید؛ حجمش ۱/۴ مگا بایت است. خودش می‌گوید ساختن‌اش ۵ ماه زمان برده...

شنبه، آبان ۱۲، ۱۳۸۶

دعای آرامش

خدایا،

آرامشی عطا کن،
تا بپذیرم آن‌چه را که نمی‌توانم تغییر بدهم
.

شهامتی،
که تغییر دهم آن‌چه را که می‌توانم
.

دانشی،
که تفاوت این دو را بدانم
.

مرا فهم ده،
تا متوقع نباشم، دنیا و مردمانش، مطابق میل من رفتار کنند
.