این هکر بامزه و باهوش، بعد از هک کردن ftp.proftpd.org، یک نسخه دستکاری شده از این برنامه رو اونجا گذاشته که بهش اجازه میداده اگر کسی این برنامه رو روی سرورش نصب کرد، به هکر دسترسی روت روی اون سرور رو بده (:
توضیح کاملتر رو میتونین اینجا بخونین و چون خیلی بعیده در چهار روز اخیر پرو.اف.تی.پی.دی. رو دانلود و نصب کرده باشین، خطری شما رو تهدید نمیکنه (بخصوص که این روزها اکثر ما از vsftp استفاده میکنیم) ولی به هرحال ایده جایگزین کردن برنامه اصلی روی اف تی پی سرور اصلی با یک برنامه تقلبی به اندازه کافی بامزه و خوش قریحه بوده که در موردش بنویسیم (: بخصوص که تمام بقیه میرورهای این برنامه، خودشون رو با همین سرور سینک میکردن (:
من علاقمند شدم این نظریه رو روی سایت نارنجی تست کنم. پس نیاز دارم به همه مطالبش تا به امروز تا از اونها تیترها رو بیرون بیارم. با یک گشت توی سایت معلوم می شه که در هر صفحه ۶ مطلب قابل مشاهده است و مثلا برای دیدن مطالب ۷ تا ۱۲ باید این صفحه رو دانلود کنیم:
http://narenji.ir/index.php?start=6
پس در قدم اول باید برنامه بنویسیم که تمام مطالب رو دانلود و توی فایلها ذخیره کنه. برنامه به پرل و با استفاده از ابزار wget، میشه:
حالا من صدها فایل دارم که مطالب نارنجی به شکل تاریخی توشون است. قدم بعدی اینه که تیترها و تاریخهای هر مطلب رو جدا کنم.
برای اینکار، اچ تی ام ال رو نگاه می کنیم و پیدا میکنم کجاها تیتر و تاریخ گفته شده. یک خط قبل از خطی که تیتر توش گفته باشه، یک contentpagetitle در اچ تی ام ال هست و یک خط قبل از تاریخ هم یک createdate. پس کافیه گرپ کنم برای یکی از این دو عبارت و خط بعدی اش رو نمایش بدم و خود خطوط دارای اون عبارت رو هم حذف کنم:
اینکار باعث می شه من یک فایل داشته باشم با کلی (در اصل ۱۶۳۸ که تعداد مطالب است ضربدر ۴) خط خواهم داشت به این شکل:
یک حافظه یو اس بی با ظرفیت نامحدود</a>
--
Friday, 26 November 2010 08:23 </td>
تمامش رو کپی پیست میکنم به یک فایل و بخشهای اضافی رو با Replace All حذف میکنم.
حالا کافیه اینها رو از هم جدا کنم. خطوط فرد تیترها هستن و خطوط زوج، تاریخ ها. پس با ابزار قوی awk خط های زوج رو میریزم توی فایل تاریخها و خط های فرد رو توی فایل تیترها.
و خلاص… اینها رو کپی پیست می کنیم توی اوپن آفیس و نمودارهایی که دوست داریم رو میکشیم… اوه! ما الان تیترها رو داریم در حالی که تعداد کلمات توی هر تیتر رو میخوایم. پس چنین دو سه خط دیگه پرل می نویسیم و روی فایل تیترها اجرا می کنیم:
open FILE, "titrs.out" or die $!;
while () {
print scalar (split(" ", $_)) "\n";
}
و تمام. البته الان فایلها سر و ته هستن. یعنی جدیدترین اطلاعات در بالا هستن در حالی که باید در پایین باشن تا سمت راست نمودار قرار بگیرن. حل این مشکل راحته، ابزار tac می تونه یک فایل متنی رو برعکس کنه (اسمش بر عکس cat هست که یک فایل رو به حالت عادی نمایش می ده (: )). حالا دوباره محتویات هر فایل رو توی یک ستون از صفحه گسترده کپی می کنم و نمودار رو میکشم.
نمودار تعداد کلمات تیترهای سایت نارنجی در طول زمان
و خب تئوری اولیه ما رد می شه. ظاهرا در سایت نارنجی تعداد کلمات تیتر هر مطلب در طول زمان تغییر چندانی نداشته (: ولی یکبار دیگه لذت بردیم از کار کردن با گنو/لینوکس و ابزارهای بسیار قدرتمندی که زیرانگشتامون می ذاره.
پی.نوشت. قبل از انتشار، در مورد مطلب با دوستانم در نارنجی حرف زدم. علی اصغر هنرمند که سردبیر نارنجی است توضیح داد که تیم نارنجی از سه سال قبل تا الان، بر اساس این نمودار
هاها (: وایرد نوشته که جولیان آسانگ که موسس سایت ویکی لیکس است به خاطر جرایم جنسی تحت تعقیب پلیس بین الملل (اینترپل) قرار گرفته و کشورهای عضو موظف هستند اون رو تحویل بدن.
این عنوان «جرایم جنسی» احتمالا مرتبطه با تلاشهای قبلی برای دستگیری اون به جرم تجاوز و بعد رابطه با کودکان. این دو اتهام دفعه قبل رد شدند و حکم تعقیب لغو شد. البته کاملا قابل درکه که در کشوری مثل آمریکا، آزادی بیان هست و به راحتی نمیشه حتی کسی که اسناد محرمانه دولتی رو گذاشته روی سایتش رو به جرم اینکار تحت تعقیب بین المللی قرار داد اما معلومه که به راحتی میشه آدمها رو متهم به «جرایم جنسی» کرد و حکم جلبشون رو گرفت (: این شک وقتی قویتر میشه که این اتفاق درست بعد از افشای اسناد و مکالمات محرمانه کاخ سفید اتفاق بیافته. شاید هم آسانگ شانس آورده. احتمالا اگر سری بعدی اسناد (مربوط به بانکهای آمریکا) رو افشا میکرد الان به جرم «آدم خواری» تحت تعقیب بود (:
طبق آخرین گزارشها آسانگ در حال حاضر جایی مخفی در حوالی لندن با چند هکر و طرفداران سرسخت ویکی لیکس زندگی میکنه.
چامبی یکی از اون وسایل جذاب است. یک ابزار کامپیوتری کوچک که میتونین ازش استفادههای مختلف بکنین. مثلا یک نوع ساده اون ساعتی است که با وای-فای به اینترنت متصل میشه و بدون شک میتونه چیزهایی مثل دمای هوا رو به شما نشون بده. جالبی این وسیله به نیمه-باز بودنش است: یک لینوکس، یک نمایشگر و یک وای-فای که میتونین برنامهریزیاش کنین.
خب ممکنه خیلی چیزها به عقل ما برسه. گرفتن آخرین اخبار، فرستادن توییت ساعت زنگ زدن و غیره و غیره اما یک نفر ایدهای حتی عجیبتر داشته: هاست هوست کردن یک سایت !
چوب سخنگو، چوبی نیست که حرف میزنه بلکه چوب کسی است که حرف میزنه. این یک رسم قدیمی در بین سرخپوستهای آمریکای شمالی است که در نشستهای قبیله استفاده میشده.
من هم شدیدا این مشکل رو دارم. موقع گفتگو درست به حرف طرف مقابل گوش نمیدم و شروع میکنم به جواب دادن. ظاهرا این اتفاق در نشستهای قبیلههای سرخپوست هم میافتاده و به همین دلیل براش این راه حل رو پیدا کردن:
این یک چوب معمولی است. میتونه هر چیزی دیگهای هم باشه. البته مثل خیلی چیزهای دیگه، برای مهم جلوه دادنش بهش یکسری ستاره و پر و این چیزها وصل کردن تا آدمها باور کنن که واقعا قدرتی داره. در نشست های قبیله برای جلوگیری از آشوب، فقط کسی حق داشته حرف بزنه که این چوب دستش بوده. اون حرفش رو میزده و وقتی حس میکرده بقیه حرفش رو فهمیدن و حرف دیگهای نداره، چوب رو به نفر بعدی میداده.
در هفت عادت مردمان بسیار موثر هم این مفهوم در عادت «اول بفهم بعد سعی کن بفهمونی» استفاده شده. اینها یک مجسمه شخصی برای خودشون دارن که شبیه یک عقاب روی یک توتم یا چنین چیزی است. شما وقتی حس میکنید نمیتونید با یک نفر به شکل معقول حرف بزنید، این مجسمه رو بهشون بدین و ازشون بخواین حرفشون رو بزنن. وقتی حرفشون تموم شد، حرفشون رو براشون با عبارتهای خودشون تکرار کنید تا مطمئن بشن که شما فهمیدین چی میگن و بعد چوب سخنگو رو بگیرین و خودتون حرف بزنین و وقتی تموم شد طرف حرف شما رو تکرار کنه و اگر میخواست چوب رو بگیره و …
توضیح لازم هم اینه که من طرفدار این روشها در زندگی نیستم. من سادهتر زندگی میکنم و بدون تکنیک (: ولی از این عادت یاد گرفتم که بهتر گوش بدم و سعی کنم واقعا اول بفهمم و بعد نظرم رو بفهمونم (:
خبرها تا اینجا خیلی شوک آور نیست اما اگر به سال ۱۹۹۳ برگردیم و یادمان بیاید که ناول برای تبدیل شدن به یک غول و رقابت با مایکروسافت چطور مشغول خرید همه رقبا بود، تحلیل پیچیدهتر میشود. در آن سالها، ناول اول دی. آر. داس را خریده بود که اصلیترین رقیب مهمترین محصول مایکروسافت بود. بعد ناول کوادرو پرو و وردپرفکت را از بورلند خرید و بعد یونیکس سیستم را از ای.تی. اند تی.
این خرید آخر، ناول را وارد بازیهای یونیکس و لینوکس کرد و این شرکت تا همین هفته قبل، دارنده رسمی میراث یونیکس سیستم ای.تی. اند تی. بود و حالا اعلام کرده است که داراییهای معنوی خود را با قیمتی نزدیک به نیم میلیون میلیارد دلار به یک شرکت تابعه مایکروسافت فروخته.
بحث اینکه آیا لینوکس از نظر کد وامدار یونیکس است یا نه بارها و بارها مطرح شده و تا به حال هم همیشه دعوا به نفع لینوکس پایان یافته. هر دوی این سیستمها مبتی بر اندیشه و فلسفه پوزیکس هستند ولی از نظر پیاده سازی، مستقل از هم پیش رفتهاند و به همین دلیل، برای لینوکسیها فرقی نمیکند که چه کسی مالکیت معنوی یونیکس را داشته باشد. به احتمال زیاد شرکتهای ارائه دهنده یونیکس دیگر مانند اچ پی و اوراکل (سان سابق) باید نگران بعضی دعواهای احتمالی باشند ولی حداقل از این نظر، خطری ما را تهدید نمیکند.
با این معامله، ممکن است سرنوشت توزیع قرص و محکم زوزه و فرزند محبوبش یعنی اوپن زوزه شدیدا دستخوش تغییر بشود اما امکان ندارد جامعه گنو/لینوکس در این مورد با خطری جدی مواجه باشد.
این اسم یک دوره که هفته پیش رفتیم – سه روز. انگلیسیاش بوده The Seven Habits of Highly Effective People و خانم گیتی خوشدل ترجمهاش کرده: هفت عادت مردمان موثر. ظاهرا به نظرش رسیده که Highly در عنوان کتاب اضافه است (: به هرحال من فعلا کتاب فارسی رو ندیدم ولی حتما میخرم و جداگانه نقد ترجمه رو خواهیم داشت.
جالبی این دوره به این است که بدونیم از سال ۱۹۸۹ که کتاب نوشته شده، تا به حال ۱۵ میلیون نسخه ازش فروش رفته! در شرکت ما رفتن به این دوره سه روزه برای همه کارمندان برنامه ریزی شده و همه باید به شکل دوره ای در اون شرکت کنن.
بحث بدون شک آمریکایی است: چند تا عادت هست که اگر داشته باشین خوشبخت می شین و موفق + هر کسی میتونه خوشبخت باشه و موفق به شرط اینکه خودش تلاش که.
قصد من اینجا خلاصه کردن کل کتاب / دوره نیست. اصولا هم نمیشه چنین بحثی رو در یک پست وبلاگی خلاصه کرد. به شکل خلاصه بگم که هفت عادت عبارت هستن از:
پرواکتیو باشین: پسیو عمل نکنین.
از اول، آخر رو در ذهن داشته باشید
کارهای اول رو همون اول انجام بدین
تفکر برد-برد داشته باشید
اول تلاش کنید بفهمید، بعد تلاش کنید شما رو بفهمن
سینرژی ایجاد کنید: بگذارید نیروها با هم جمع بشن و چند برابر بشن
اره رو تیز کنید: فقط روی کار تمرکز نکنید. بین منابع و انرژی و سلامتی توازن برقرار کنید تا سبک زندگی موثر رو حفظ کنید
و خب کلی حرف و بحث پشت هر کدوم از اینها. اما یک جنبه جالب کل جریان برای من همین مفهوم بود که یک نفر یک کتاب مینویسه و بقیه میبینن خوبه. سازمانها گذروندنش رو اجباری میکنن و شرکتهایی درست میشن که به طور تخصصی مواد آموزشی براش درست میکنن (از اسلاید و فیلم و تسهیلگر گرفته تا تقویم و پوستر و مجسمه و …) و اونقدر بزرگ میشن که مثلا شعبه خاورمیانه میزنن و با قراردادهای عالی به بقیه آموزشش میدن.
ما یک آموزشگر داشتیم که از دفتر دوبی اومده بود. اصالتا مال اردن بود و در طول سه روز این عادتها رو بحث و تمرین کردیم. خودش سابقا مدیر جایی بوده و همچنین عضو تیم ملی بسکتبال اردن و وقتی این آموزش رو میبینه متحول می شه به حدی که کم کم کارش رو ول میکنه و با زندگی بر اساس این عادتها و روشها، میپیونده به موسسه فرانکلین کاوی و اونجا آموزشگری میکنه. بامزه است که این موسسه که فقط روی آموزشهای مبتنی بر این ایدهها کار میکنه، درآمد سالیانه ۲۸۲ میلیون دلار داره.
ما که مثل اون متحول نشدیم ولی کلی کلیت موضوع جالب بود: اگر میخواهید موثر باشید… اگر میخواهید واقعا موثر باشید باید یک راه و روش رو پیش بگیرین و از وقت و منابعی که دارین به خوبی استفاده کنین. شکی نیست که روش استفن کاوی تنها روش ممکن نیست اما یکی از روشهای موجود است. خلاصهاش هم برای من اینه: بدونین دارین چیکار میکنین و تعادل رو هم در جنبههای مختلف زندگی نگهدارید.
در این ستون معمولا از شرکتهای بزرگ نوشتهام و تکنولوژیهایی که قرار است دنیا را تغییر بدهند اما این هفته میخواهم سراغ یک تغییر خیلی کوچک بروم. در مقایس برنامهنویسی؛ خیلی خیلی کوچک: یک وصله دویست خطی برای کرنل.
همانطور که میدانید، لینوکس در واقع یک کرنل / هسته است که سیستمهای گنو/لینوکس ما از آن استفاده میکند. این کرنل دائما در حال به روز رسانی است اما وقتی به فهرست قابلیتهای اضافه شده یا بهبود یافته در آن نگاه میکنیم، معمولا چیز خاصی دستگیرمان نمیشود. تغییرات کرنل در نسخههای جدید آنقدر حرفه هستند که برای اکثر کاربران عادی، تنها به شکل تغییر چند عدد در جلوی اسم هسته به نظر میرسند و نه بیشتر.
اما ظاهرا قرار است اینبار مساله فرق کند. این هفته یک وصله جدید برای کرنل منتشر شده و زیر تست شخص لینوس توروالدز -نویسنده اصلی لینوکس- است که ظاهرا در دسکتاپ معجزه میکند. از نظر فنی این پچ میتواند به شکل اتوماتیک تسکهای هر TTY را گروهبندی کند. بازهم مثل پچهای قبلی کرنل، اکثر کاربران این مفهوم را درک نمیکنند. اما آنطور که بسیاری از آزمایش کنندگان و خود لینوس با هیجان میگویند، اینکار تاثیر بسیار بسیار واضحی روی بازدهی کامپیوترهای دسکتاپ در وضعیتی که از پرازنده و حافظهشان کار زیادی کشیده میشود خواهد داشت. مارک گالبرایت نویسنده این وصله است که ایده اصلی اش از لینوس توروالدز بوده. این پچ در حال حاضر در نسخه سوم است و عجیبترین نکته درباره آن این است که تنها ۲۲۴ خط به کرنل اضافه و ۹ خط از آن حذف میکند. به عبارت دیگر، این وصله با تغییر تنها ۲۳۳ خط از کرنل، باعث پرواز کامپیوتر رومیزی در شرایط سخت میشود.
آزمایشهای خود مایک نشان داده که این وصله حداکثر تاخیر پاسخگویی کامپیوتر را ۹ برابر کمتر میکند و میانگیر تاخیر را تا حدود شصت برابر پایین میآورد! این اعداد آنقدر غیرواقعی به نظر میرسند که توروالدز لازم دیده شخصا مساله را بررسی کند و سپس در ایمیلی با اعلام کند که از عملکرد این پچ کوچک بسیار خوشحال و هیجان زده است و معتقد است که این پچ با وجود کوچکی بسیار زیبا نوشته شده.
نویسنده لینوکس میگوید که برای آزمایش تجربی این پچ، چندین صفحه وب باز کرده و حینی که پرازنده مشغول کمپایل کردن کرنل بوده، در آنها به بالا و پایین اسکرول کرده است و تغییر *عظیمی* را شاهد بوده. او میگوید این ۲۳۰ خط کد، در شرایطی که کامپیوتر مشغول استفاده از بیش از پنجاه درصد توان پردازنده مرکزی باشد، معجزه میکند. لینوس ایمیلش را با این عبارت تمام میکند که قابلیت زمانبندی گروهی با حضور این پچ، از یک قابلیت مفید در بعضی سرورها به یک پیشرفت عظیم و قابلیتی کشنده در لینوکس تبدیل شده.
من هم مطمئن هستم که اینبار برای به روز رسانی هسته بیتاب خواهم بود. مطمئنا هر هسته جدیدی که بیاید، اولین کار من خواندن فهرست تغییرات است و در صورت دیدن عبارت sched: automated per tty task groups در آن، محال است هیچ کاری قبل از به روز رسانی کرنلام انجام دهم.