لپتاپی که جدیدترین و آپدیت شدهترین نسخه ویندوز ویستا را اجرا میکرد دومین ماشینی بود در مسابقه هک شد. این مسابقه سه روزه با حضور بهترین هکرهای جهان و سه لپتاپ اجرا شد که روی آنها جدیدترین و به روزترین نسخههای ویندوز ویستا، مکینتاش نسخه ده و لینوکس اوبونتو نصب شده بود.
شان مکاولی که در مسابقه Pwn2Own سال قبل، در روز دوم یک مکینتاش را هک کرده بود امسال با استفاده از یک حفره امنیتی سابقا ناشناخته در فلش (محصول ادابی) در روز آخر مسابقه کامپیوتر ویستا را هک کرد و به این طریق علاوه بر پنج هزار دلار جایزه، لپ تاپی که ویستا روی آن نصب شده بود را نیز تصاحب کرد.
اولین کامپیوتری که در روز دوم مسابقه از رده خارج شد، یک MacBook pro بود که با استفاده از حفره امنیتی در مرورگر اینترنت سفری، تصاحب شد.
جالب است بدانیم که حفره امنیتی مورد استفاده مکاولی، پیش از این هم روی ویستا عمل میکرد ولی مایکروسافت ادعا کرده بود که با ارائه سرویس پک ۱ برای ویستا، این حفره غیرقابل نفوذ شده است.
مسابقه Pwn2Own که هرساله در کانادا اجرا میشود یک مسابقه برای بررسی امنیت سیستمعاملهای مرسوم جهان است. در این مسابقه روی سه لپتاپ گرانقیمت سه سیستمعامل مرسوم (ویندوز، مک و لینوکس) نصب شده و کاملا update و patch میشود و سپس در روز اول هکرها داوطلب میشوند تا به خود سیستمعامل حمله کنند و در صورت هک کردن دستگاه، بیست هزار دلار و لپ تاپ گرانقیمت را تصاحب کنند.
در روز دوم و سوم، نرمافزارهای عمومی دیگر هم روی کامپیوتر نصب میشوند و مسابقه ادامه پیدا میکند اما با جایزه کمتر.
در مسابقات امسال لپتاپ Mac OS X در روز دوم و لپتاپ ویستا در روز سوم هک شدند ولی لینوکس تا آخر روز سوم غیرقابل نفوذ باقی ماند.
این موضوع برای خیلی از طرفداران لینوکس به عنوان یک پیروزی تلقی میشود اما نباید فراموش کنیم که پیام این مسابقه یک چیز است: حفرههای امنیتی یک واقعیت در کامپیوترهای امروز هستند که مستقل از سیستمعامل عمل میکنند. مواظب باشید و به روز. امسال با توجه به ارائه سرویس پک اول ویستا درست چند روز قبل از مسابقه، یک پیام دیگر هم داشتیم: هرچقدر هم که نویسندگان سیستمعاملها تلاش کنند و حفرههای قدیمی را ببندند، حفرههای جدید کشف خواهند شد.
در کامپیوتر، سیستم پنجره ایکس (که معمولا X11 یا X هم خوانده میشود)، سیستمی است، محصول پیاده سازی X که امکان نمایش پنجرهها روی صفحات نمایش را فراهم میکند. این سیستم ابزار و پروتکلهای استاندارد برای ساختن رابط گرافیکی کاربر در سیستمهای مشابه یونیکس و OpenVMS را فراهم میکند و در عین حال امروزه در بسیاری از سیستم عاملهای مدرن نیز شبیه سازی شده است.
ایکس، تنها ساختار پایه یا ابتدایی رابط گرافیکی کاربر را فراهم میکند: نمایش و حرکت پنجرهها روی صفحه و برقراری ارتباط از طریق کیبرد و ماوس. بنابر این، شکلی که ایکس میتواند به خود بگیرد شدیدا وابسته به برنامههای دیگر است. برنامههای مدیر پنجره مختلف میتوانند رابطهای کاملا متفاوتی ایجاد کنند. ایکس بخشی از سیستمعامل نیست بلکه به عنوان یک برنامه و در لایهای بالاتر از خود سیستم عامل اجرا میشود.
بر خلاف پروتکلهای پنجره قبلی، ایکس کاملا برای کار در شبکه رایانهای طراحی شده است. به عبارت دیگر، ارتباط ایکس با صفحه نمایش به جای ارتباط مستقیم، ارتباطی مبتنی بر شبکه است. در ایکس ، شبکه شفاف است: جایی که برنامه اجرا میشود میتواند با جایی که دیده میشود تفاوت داشته باشد.
پروژه ایکس اولین بار در دانشگاه ماساچوست و در سال ۱۹۸۴ شروع شد. نسخه فعلی (یعنی X11) در ۱۹۸۷ ظاهر شد و در حال حاضر به عنوان یک نرمافزار ازاد در حال توسعه است.
اصول اولیه طراحی ایکس
در ۱۹۸۴، باب شیفلر و جیم گتیس اصول اولیه ایکس را به این صورت تدوین کرند:
هیچ قابلیت جدیدی اضافه نکنید مگر اینکه برنامهنویسی بدون آن قابلیت نتواند برنامه واقعیاش را تمام کند.
اهمیت تصمیمگیری در این مورد که برنامه چه چیزی قرار نیست باشد، همانقدر مهم است که برنامه چه چیزی قرار است باشد. لازم نیست به همه نیازهای جهان پاسخ دهید. نکته مهم این است که برنامه قابل توسعه باشد تا بعدها بتوان با حفظ سازگاری، آن را پیش برد.
تنها چیزی که از تعمیم دادن بر مبنای یک مثال بدتر است، تعمیم دادن بدون وجود حتی یک مثال است.
اگر مشکل کاملا درک نشده باشد، بهترین کار این است که هیچ جوابی داده نشود.
اگر میتوانید ۹۰٪ خواستهها را با ۱۰ درصد کار جواب دهید، از راه حل ساده تر استفاده کنید.
تا جایی که ممکن است، پیچیدگی را ایزوله کنید.
به جای خط مشی، مکانیزم ارائه دهید. به طور عام، خط مشی رابط کاربری را به کلاینتها بسپارید.
در طول توسعه ایکس.۱۱، قانون اول به این شکل تغییر کرد: «هیچ قابلیت جدیدی اضافه نکنید مگر اینکه برنامهای واقعی را بشناسید که به آن نیاز داشته باشد.»
این مطلب رو برای مدخل سیستم پنجره ایکس ویکیپدیای فارسی ترجمه کردم و گفتم اینجا هم بذارمش. یکی از دلایلی که باعث میشه من از سیستم عاملی مثل لینوکس لذت ببرم، این فلسفه زیبایی است که پشت طراحیها پنهان شده و حتی بدون اینکه در موردش اطلاع داشته باشین، باعث می شه سیستمعامل زیبا و زیباتر بشه.
ما در دنیایی زندگی میکنیم که اسناد کاغذی در حال محو شدن هستند و داکیومنتهای دیجیتالی دارند جای آنها را میگیرند. آزادی اسناد تضمین میکند که اسناد دیجیتال شما توسط برنامههای فعلی و آینده شما قابل استفاده باشد و همیشه بتوانید روی هر سیستم عامل یا با هر نسخه برنامهای، از اسناد خود استفاده کنید.
در حال حاضر تنها فرمت آزاد اسناد در جهان، ODF است. Open Document Format یک استاندارد ایزو است که اجازه میدهد فایلهای متنی صفحه بندیشده، صفحه گسترده و Presentationهای خود را با آن ذخیره کنید و روی هر نرمافزار استاندارد دوباره بازش کنید. این در تضاد است با فرمتی مثل MSWord یا Excel که فرمت بسته و محدودی دارند که در انحصار یک شرکت تجاری است.
فقط به این فکر کنید که کشوری مثل ایران با وجود ادعای مبارزه و مخالفت با آمریکا، تمام اسناد محرمانه و غیرمحرمانه و تمام برنامهریزیهای کشور و حتی نظامی خود را با نرمافزارهای یک شرکت تجاری آمریکایی انجام میدهد. این به این معنا است که یک فرمانده نظامی ایران هیچ وقت مطمئن نیست که در صورت تحریم کامل نرمافزاری ایران، بتواند کماکان فایل برنامه نظامی خود را باز کند و بخواند (: یا ممکن است از یک جایی به بعد، نسخههای دزدی ویندوز دیگر قابل نصب نباشند یا آفیس جدید فایلهای قدیمی را نخواند و در این صورت مثلا وزارت کشور جمهوری اسلامی ایران مجبور خواهد بود روی سیستمعامل قدیمی خود بماند فقط و فقط به این دلیل که نمیتواند فایلهای برنامهریزی استانی را روی سیستمعامل ویندوز ۲۰۱۰ باز کند (:
مساله «سازگاری» را به این مساله اضافه کنید. هر کسی که در یک وزارت خانه یا شرکت بزرگ کار کند که از فرمت اسناد تجاری و بسته یک شرکت دیگر استفاده میکند برای همیشه وابسته آن شرکت خواهد بود.
این حرفها دور از ذهن است؟ اصلا (: تمام دنیا این بحث را قبول کرده و الان دیگر دعوا سر آزادی اسناد نیست بلکه بر سر چگونگی این آزادی است. تغییرات اخیر ویندوز و استفاده از فرمتهای جدید مبتنی بر XML برای اسناد ادامه این روند است.
در حال حاضر دو فرمت ارائه شدهاند که ادعای آزادی دارند. اولی ODF است که توسط ایزو تصویب شده و دومی OOXML است که مایکروسافت آن را طراحی کرده و سعی دارد به عنوان یک فرمت آزاد، به تصویبش برساند. روز آزادی اسناد مبلغ اولی است که به معنی واقعی کلمه آزاد است. متاسفانه مایکروسافت مثل همیشه در ارائه فرمت «خودش»، «خودش» را بیشتر از بقیه مدنظر داشته و محدودیتهایی در آن ایجاد کرده است که باعث شده اکثریت کشورهای جهان به عدم استفاده از OOXML رای بدهند.
یک فرمت سند آزاد
باید توسط همگان قابل ارزیابی و استفاده باشد بدون اینکه فرد یا سازمان یا شرکتی، به فرد یا سازمان یا شرکت دیگر ارجحیت داشته باشد.
نباید هیچ وابستگیای به فرمتهای بسته و تجاری داشته باشد و تمام اجزای آن آزاد باشد.
نباید دارای هیچگونه محدودیت قانونی برای استفاده شدن توسط فرد یا گروهی از افراد را داشته باشد.
باید فرصت برابر برای هر فرد یا سازمانی که بخواهد در توسعه آن مشارکت کند را تضمین کند.
باید بتواند توسط توسعه دهندگان مختلف روی نرمافزارهای مختلف پیاده سازی شود.
این تعاریف به شکل خود به خود ما را به سمت فرمت ODF راهنمایی میکنند. با انتخاب ODF به عنوان یک فرمت استاندارد (که در حال حاضر لینوکس و مک و OpenOffice روی ویندوز از آن پشتیبانی میکنند) شما خواهید توانست:
از هر برنامه یا سیستمعاملی که ترجیح میدهید استفاده کنید بدون اینکه نگران توانایی باز کردن اسنادتان باشید.
بدون محدودیت با دیگران سند رد و بدل کنید.
با هر نرمافزاری که دوست دارید، با دولت ارتباط برقرار کنید.
اولی و دومی کاملا واضح هستند اما سومی یعنی چه؟ حداقل در دیدگاه کشورهای مدرن، آزادی اسناد یکی از مسایل بسیار مهم در دموکراسی تلقی میشود. نگاهی به کشور خودمان بیاندازید که در آنها اکثر اسناد الکترونیکی بخشهای دولتی به شکل DOC تولید و نگهداری میشوند. مثلا در دانشگاهی که من درس میخوانم برای فارغالتحصیل شدن یا ارائه مقاله یا نوشتن پایان نامه و … به من تمپلیتهای Word میدهند و از من فایل DOC میخواهند. این به سادگی به این معنا است که اگر من از شرکت مایکروسافت خرید نکنم، حتی در سازمان دولتی کشورم حق مشارکت ندارم. البته خوشبختانه این روزها OpenOffice لینوکسی من علاوه بر کار با فرمت استاندارد و جهانی ODF، فایلهای آفیس ورد را هم باز و بسته میکند ولی به هرحال من برای ارتباط با دانشگاهم و در سطح بالاتر با دولتم، باید با فایلهای یک شرکت تجاری آمریکایی کار کنم. این همان دو مشکل قبلی را ایجاد میکند:
۱- اگر من نخواهم با شرکت آمریکایی و با یک فرمت بسته یا با یک سیستمعامل اعصاب خوردکن کار کنم، حق مشارکت به عنوان یک شهروند را ندارم.
۲- اگر شرکت آمریکایی نخواهد دولت من / خود من از نرمافزارش استفاده کنیم، کشور فلج میشود.
به همین دلیل است که آزادی اسناد علاوه بر یک امر فلسفی، یک امر سیاسی است و خوشحالم که ایران در ارزیابیهای اولیه OOXML را رد کرده و ناراحتم که هنوز به ODF کوچ نکرده.
اما شما چکار میتوانید بکنید؟ به نظر من نیازی به عمل سریع و مستقیم نیست. کسانی که از لینوکس / آفیسباز استفاده میکنند که قدمشان را برداشتهاند. کسانی هم که به دلایل بسیار متنوع هنوز ویندوز / MSOffice دارند فقط کافی است که از جریان مطلع باشند، بدانند که ODF چرا مهم است و سال بعد روز آزادی اسناد را جشن بگیرند (:
امیدوارم بدانیم که در خیابانهای تبت اوضاع ناآرام است. نظامیان چینی، به خیابانهای تبت ریخته اند تا افرادی که صلحجویانه خواستار استقلال کشورشان هستند را سرکوب کنند.
ویکیپدیا میگوید «تبت روزگاری کشوری مستقل بوده است و حالا بخشی از چین است. حکومت خلق چین و دولت در تبعید تبت درباره اینکه تبت از چه زمانی به زیر سلطه چین درآمد تفاهم ندارند. آنها همچنین در مورد مستقل بودن تبت از چین بر اساس قوانین بین المللی، اختلاف نظر دارند.»
اما این ناآرامی از خیابان، به اینترنت هم کشیده شده. گروههای طرفدار استقلال تبت، هدف حملات هدفمند و فنی گروهی هستند که حدس زده میشود با دولت چین در ارتباط باشند.
مثلا به این ایمیل که چند روز قبل به یک گروه خبری طرفدار استقلال تبت فرستاده شده نگاه کنید. به نظر می رسد که این ایمیل از طرف Unrepresented Nations and Peoples Organization ارسال شده باشد ولی بررسی Headerهای نامه، خلاف این ادعا را اثبات میکند. ایمیل حاوی متنی در مورد همبستگی با مبارزات تبتیها است:
و همانطور که میبینید یک پیوست پی.دی.اف. هم دارد. وقتی پی.دی.اف. را باز میکنید این صفحه را میبینید:
و هنوز هم ظاهرا همه چیز مرتب است اما دیگر اینطور نیست. این پی.دی.اف. از یک نقطه ضعف شناخته شده Adobe Acrobat تحت ویندوز سوء استفاده میکند تا فایلی به اسم C:Program FilesUpdatewinkey.exe را به کامپیوتر قربانی منتقل و اجرا کند. این برنامه هر کلیدی که روی کامپیوتر فشرده شود را ذخیره میکند و هر چند وقت یکبار کل اطلاعات را به سروری به آدرس xsz.8800.org میفرستد. این یک سرور چینی است.
فایلهای کاملا متفاوتی که دقیقا کار مشابهی انجام میدهند برای گروههای دیگر طرفدار آزادی تبت نیز فرستاده شده. اسم این فایلها عبارت بودهاند از:
UNPO Statement of Solidarity.pdf
Daul-Tibet intergroup meeting.doc
tibet_protests_map_no_icons__mar_20.ppt
reports_of_violence_in_tibet.ppt
genocide.xls
memberlist.xls
Tibet_Research.exe
tibet-landscape.ppt
Updates Route of Tibetan Olympics Torch Relay.doc
THE GOVERNMENT OF TIBET.ppt
Talk points.chm
China’s new move on Tibetans.doc
Support Team Tibet.doc
Photos of Tibet.chm
News ReleaseMassArrest.pdf
Whole Schedule and Routing for Torch Relay.xlsH
این فایلها با پسوندهای مختلفی مثل xls، ppt، chm و … با استفاده از ضعف سیستم امنیتی ویندوز، برنامههایی به منظور ردیابی فعالیتهای کاربران روی کامپیوترهای آنان نصب میکنند و نتایج جاسوسی را به سرورهای چینی میفرستند. به نمونههای از فایلهای ارسال شده توجه کنید:
یاد مصدق شاد. در جنین روزی بود که نفت با تلاشهای اون، چپها و مردم ملی شد. من در سالهای قبل در مورد این موضوع هیچ چیزی ننوشته بودم ولی به نظرم امسال باید بنویسم و یادآوری کنم که اولین سالی است که نفت دوباره خصوصی شده و دولت هم انتظار داره ما به خصوصی شدن دوباره صنعت نفت افتخار کنیم و خوشحال باشیم.
«ملی شدن» نفت، «ملی شدن» بانکها در بعد از انقلاب، «ملی اعلام شدن صنایع بزرگ» و … به این معنی بود که سهام این صنایع دیگه خصوصی نخواهد بود و دولت صاحب اصلی این صنایع خواهد بود و از اون در جهت منافع کلیه مردم استفاده خواهد کرد. اما ۳۰ سال بعد از انقلاب و ۳۰ سال بعد از اینکه نفت و صنایع بزرگ و … در خدمت قدرتمندان دولتی بودند، تصمیم گرفته شده که یکبار دیگه این صنایع خصوصی اعلام بشن. امسال اولین سالی است که نفت با افتخار به شرکتهای خصوصی در حال واگذار شدن است و ۲۹ اسفند کماکان تعطیل است.
من مخالف پر و پاقرص خصوصی شدن چیزها نیستم ولی مخالف پر و پاقرص دروغ و تحریف و خفقان هستم. متاسفم که امسال اولین سالی است که نفت از ملی بودن درآمده و جوری تبلیغ میشه که انگار فتحالفتوح شده. احتمال زیادی میدم که دو سه سال دیگه، ۲۹ اسفند دیگه تعطیل نباشه.
لینوکسی ها شعار زیبایی دارند که می گوید «لینوکس فقط یک سیستم عامل نیست، لینوکس یک فرهنگ است». به همین خاطر در بین گنو/لینوکس کارها و بقیه دنیای نرم افزارهای آزاد، فلسفه هم ارزش مهمی پیدا کرده. این فلسفه را می شود در مفهوم آزادی نرم افزار و خیلی جاهای دیگر دید و حتی در شوخی های لینوکسی ها هم به کرات به فلسفه بر می خوریم.
در این پست می خواهم به شکل خلاصه، درباره فلسفه یونیکس بنویسم. این فلسفه خلاصه ای است از صفحه ویکیپدیای Unix Philosophy. این مبانی نظری (فلسفه ها) نتایجی هستند که افراد درگیر این صنعت در پی سال ها تجربه نهفته پشت سر سیستم های مبتنی بر یونیکس (پوزیکس ها) به آن رسیده اند.
مکلوری: ربع قرن یونیکس
مک لوری که مبدع Unix Pipes و یکی از پایه گذاران یونیکس است فلسفه این سیستم عامل را به شکل زیر خلاصه کره:
برنامه هایی بنویسید که فقط یک کار انجام دهند اما به نحو احسن
برنامه هایی بنویسید که بتوانند با هم کار کنند
برنامه هایی بنویسید که با متن کار کنند چرا که متن رابطی عام است
مایک گانکارز: فلسفه یونیکس
مایک گانکارز در سال ۱۹۹۴ با مشاوره دیگر فعالان دنیای یونیکس قواعد زیر را ابداع کرد. او یکی از طراحان سیستم پنجره X است.
کوچک زیباست.
هر برنامه باید یک کار را به خوبی انجام دهد.
در اولین فرصت ممکن، یک نمونه اولیه بنویسید.
انتقال پذیری را به بهینه بودن سیستم ارجح بدانید.
اطلاعات را در فایل های متنی تخت جا بدهید.
از قدرت نرم افزار به نفع خودتان بهره ببرید.
قدرت و قابلیت انتقال را با نوشتن شل اسکریپت افزایش دهید.
از رابط های کاربری پر دنگ و فنگ دوری کنید.
هر برنامه ای را به شکل یک فیلتر بنویسید.
اریک ریموند: هنر برنامه نویسی یونیکس
ریموند با پایبندی به قاعده KISS یا Keep It Simple, Stupid قواعد زیر را برای برنامه نویسی یونیکس پیشنهاد می کند:
ماجولار بودن: بخش های کوچکی بنویسید که با رابط های تمیزی به هم وصلند.
وضوح: وضوح بهتر از هوشمندی است.
اتصال: برنامه هایی طراحی کنید که بتوانند به دیگر برنامه ها متصل شوند.
جدایی: سیاست را از مکانیزم جدا کنید، رابط باید از هسته اصلی جدا باشد.
سادگی: برای سادگی طراحی کنید، فقط وقتی مجبورید پیچیدگی اضافه کنید.
امساک: فقط وقتی برنامهای بزرگ بنویسید که ثابت شده باشد هیچ برنامه دیگری فایده ندارد.
شفافیت: برای راحتی خواندن طراحی کنید تا بررسی و باگ زدایی ساده تر شود.
استحکام: استحکام فرزند شفافیت و سادگی است.
ارائه: Fold knowledge into data so program logic can be stupid and robust
حداقل سورپریز: در طراحی رابط، امور غیرمعمول را به حداقل برسانید.
سکوت: وقتی برنامه چیز عجیبی برای گفتن ندارد، بهتر است چیزی نگوید.
تعمیر: وقت شکست اجتناب ناپذیر است، زود و پر سر و صدا برنامه را بشکنید.
اقتصاد: وقت برنامه ارزشمند است، آن را مهمتر از زمان ماشین بدانید.
استمرار نسل: با دست هک نکنید، برنامه هایی بنویسید که برنامه هایی بنویسند.
بهینه سازی: قبل از ظریف کاری، یک نمونه عملی بسازید. قبل از بهینه سازی، برنامه باید درست کار کند.
تنوع: هر ادعایی مبنی بر «یک راه حقیقی» را با شک و تردید بنگرید.
ارتقاء پذیری: برای اینده طراحی کنید چرا که آینده زودتر از آنی که فکر می کنید فرا خواهد رسید.
موخره
نمی توانم آخر هر مطلب مرتبط با لینوکس و یونیکس نپرسم که «زیبا نیست؟» (: فقط قدرت و امنیت لینوکس نیست که باعث شده پیشرفت کند، این فلسفه پشت آزادی نرم افزار است که بهترین های دنیا را دور آن جمع کرده (:
ویکی لیکز یا همون WikiLeaks یک پروژه فوق العاده است. لااقل در سطح ایده، ایده جالبی دارد: بالا بردن شفافیت از طریق انتشار اسناد محرمانه دولتها. همیشه برای ما تبلیغ شده که این کار زشت است ولی زشتتر این است که دولتها و سازمانها کارهایی بکنند که لازم باشد از دید دیگران محرمانه بماند.
ویکلیکز در جدیدترین سند انتشاری خود، دیاگرام اولین بمب اتمی جهان را منتشر کرده. این دیاگرام ساده (که بخشی از آن را در شکل بغل می بینید) مشخصات فنی بمب پسر چاق را نشان میدهد. همان بمبی که آمریکا در اول جولای ۱۹۴۷ آن را برای ازمایش روی ناکازاکی انداخت.
ویکی لیکز، علاوه بر نقشه این بمب هستهای، مشخصات آن را هم تحلیل کرده است. این دیاگرام حاوی بخشهای دقیقی برای ساختن بمب هم هست.
نکته عجیب آنجاست که آیا دولتهایی که احساس میکنند بمب اتم میتواند تضمین بقایشان باشد، خواهند توانست از این نقشه برای ساخت این بمب استفاده کننده یا نه. بدون شک این اسرار، شدیدا مورد نیاز این دولتها است اما آیا آنها جرات دارند به یک نقشه بدون سند که جزییات ساخت بمب را افشا کرده اعتماد کنند؟ چه کسی تضمین میکند که این نقشه در سازمانهای ضد جاسوسی دشمن و به منظور گمراه کردن کشورهای در جستجوی بمب، کشیده نشده باشد؟
یکی دیگه از دلایلی که من از گنو/لینوکس لذت می برم، کمک کردن به دیگران است. توی دنیای گنو، توانایی کمک به همسایه یک ضرب المثل است به معنی اینکه اگر همسایه ای برنامه مورد استفاده شما رو لازم داشت، می تونید بدون مشکل برنامه رو بهش بدهید.
اما برای من کمک به همسایه یک معنای جدید هم پیدا کرده: وقتی دوستان گیر می کنند می دونند که مشورت با یک لینوکس کار ممکنه راه حلی جلوی پاشون بذاره.
یک نمونه اش دوست خیلی خوبی بود که امروز با یک فایل هشتصد هزار خطی و ۴۵ مگابایتی درگیر بود. هر خط این فایل ۹ ستون داشت که با TAB از هم جدا می شدند و مشکل اصلی هم این بود که قرار بود بر اساس ستون نهم، فایل مرتب (سورت) بشه.
اولین تلاش در ویندوز، اکسل است و به شکل بامزه ای کشف می شود که بیشتر از ۶۵۵۳۶ خط را نمی تواند باز کند. به عبارتی برای به درد بخور بودن، بقیه از بقیه مسایل باید دوازده برابر ظرفیت بیشتری پیدا کند که محال است (:
انتخاب بعدی اکسس است که فایل را باز می کند ولی کار مفیدی روی آن نمی کند. در نهایت باید به همسایه ها کمک کرد. فایل را کپی می کنم (از مکالمه مربوط به احتمال ویروسی شدن کامپیوترم از طریق یو اس بی دیسک آلوده می گذرم) و در یک خط می نویسم:
مثل همیشه زیبا و ساده. فلسفه یونیکس این است: یک کار را انجام بده و به خوبی + امکان این را فراهم کن که کارها به هم بچسبند.
دستور sort فایل را مرتب می کند. k 9 می گوید که بر اساس ستون نهم مرتب کند و n هم اعلام می کند که به ستون ها به عنوان عدد نگاه کند. در نهایت با یک علامت بزرگتر، خروجی در فایل جدید ریخته شده است.
زیبا نیست ؟ (: همانطور که می بینید جلوی دستور یک time هم اضافه کرده ام تا دقیقا بگوید که چقدر طول کشیده. زیر نیم ثانیه از زمان سی پی یو برای اینکار مصرف شده و از نظر من هم کمتر از نیم دقیقه. دقت کنید که هشتصد هزار خط داشتیم که باید بر اساس ستون نهم مرتب می شدند. من خوشحالم که با یک ابزار خوب، در کمتر از نیم دقیقه به همسایه ام کمکی کرده ام که در غیر اینصورت ممکن بود سبب یک سردرد حسابی شود.
به روز رسانی:
الان یکی از دوستان خوب به اسم علی برام یک ایمیل فرستاد با اسکرین شات آفیس ۲۰۰۷ که می تونه تا یک میلیون و چهل و هشت هزار خط داشته باشه. احتمالا دلیلی که همسایه ام هنوز روی نسخه قدیمی ایستاده، ناسازگاری آفیس ۲۰۰۸ با نسخه های قدیمی تر است ولی به هرحال خیلی خوشحالم که این محدودیت تا حد زیادی برطرف شده. حیف که فایل بزرگه وگرنه لذت بخش بود فرستادن اون هشتصد هزار خط برای علی و دیدن اینکه آفیس چجوری / در چه مدتی مرتبش می کنه (: