۲۲ بهمن، روز آزادي من!

دسته بندي (عشق) نويسنده imei در ۱۹-۱۱-۱۳۸۶

برچسب‌ها : , , ,

  • - استادمون گفت: ‘اگر به يك ذهن رياضي، بگن كه دو دوتا، “ممكنه” بشه چهارتا، تمام دنياش به هم مي‌ريزه و دانسته‌هاش بي‌اعتبار مي‌شه ولي شما پزشكي‌ها از اول ياد مي‌گيرين كه دو دوتا ممكنه بشه چهارتا’.
    -يك زيست‌شناس و يك فيزيك‌دان و يك رياضي‌دان توي قطار سفر مي‌كردن. به يه روستا رسيدن كه كنار خط راه آهنش ده تا گوسفند سياه مشغول چريدن بودن. زيست‌شناس گفت ‘ئه گوسفنداي اين ده سياهن!’ فيزيك‌دان گفت ‘چطور اين حرفو مي‌زني؟ حداقل ده تاي گوسفنداي اين روستا سياهن’. رياضي‌دان هم نگاهي كرد و گفت ‘حداقل ده تا از گوسفنداي اين روستا حداقل نصف بدنشون سياهه.’
  • - فروغ بيداري؟
    -[خوابالو]آره…
    - بيا با هم حرف بزنيم… چند ساعت ديگه تو مي‌ري…
    -[خوابالو]باشه…
    …[وقت رفتن]…
    -فروغ؛ مي‌خواي بري؟
    -نا ندارم. ولش كن خوابم مي‌آد امروزم بيخيال!
  • - ‘نگين’ از دوازده شب تا ۵ صب با دوس‌پسرش حرف زده بود بعد صب بهش گفتم ‘خوب چطور بود؟’ گفت ‘مي‌دوني؟ فك كنم نبايد زياد حرف مي‌زديم! درسته كه مجانيه ولي خوب آخرش ديگه دعوامون شد!!’ گفتم ‘خوب آخه كاه از خودت نيست كاهدون كه از خودت هست؟’
    - تو كه فك نكنم بتوني يه ساعتم از اين طناب ايرانسل استفاده كني… از همين الان داري ولو مي‌شي… بعد دم صب بهت ميگم كه فروغ مي‌آي باهم حرف بزنيم؟ چن ساعت ديگه مي‌خواي بري!!

براي ۲۲ بهمن مي‌خوام برم دور دورها! خدا كنه جور بشه و خدا كنه مثل هميشه بدون مشكل باشه. توي اين هف هش ساله كه، بارها دست خدا رو ديدم كه دورمون رو گرفته و مشكلات بزرگي كه ممكن بود پيش بياد رو خلاصه، هاله‌ي نوراني احمدي نژاد!! اين بارم ايشالله به خير و خوشي! بريم دوباره با وب كم لپ‌تاپ فيلم بگيريم و صداش قطع باشه و دوباره دم صب بهت بگم مي‌آي باهم حرف بزنيم و ايندفعه امريكن پاي رو مي‌آريم كه بشينيم كركر بخنديم! فقط نمي‌دونم جلوي حسام و فرشته هم مي‌شه ديدش يا اينكه سوتي مي‌شه! فقط اميدوارم جور بشه رفتن و گرنه اين روزا هركي به يه شكل دوستانه‌اي مي‌آد يك پاشو مي‌ذاره اينورش يه پاشو هم مي‌ذاره اونورش و عمل خير انجام مي‌ده تو حال من.

بيسكوئيت پي سي خوردين؟

دسته بندي (روزمره, كامپيوتر) نويسنده imei در ۱۷-۱۱-۱۳۸۶

برچسب‌ها :

بيسكوئيت پي‌سي خوردين تا حالا؟ ( + + + ) نمي‌خوام دلتون رو بسوزونم كه من خوردم و چقدم خوشمزه بود و اين حرفا. چون بيسكوئيت پي‌سي يه مدل از كامپيوترهايي هست كه در ابعاد بيسكوئيت و با قابليت‌هاي محدود و براي كاربردهاي خاص توليد مي‌شه.

گفته‌بودم كه چطور پروتكل PPP رو براي اسمبل كردن روي يه دستگاه پياده سازي كردم… تا ديروز قرار بود كه اين دستگاه يه بيل‌بيلكي باشه كه معلوم نيست سر و تهش چيه و يه اسمبلي خاص خودش داره و ۸ بيتي هم هست و كلاً چيز وحشتناكي از آب در مي‌آد. ديروز يه دفعه متوجه شدم آقاي فتحي پلت‌فورم پروژه رو عوض كرده و قرار هست كه از اين به بعد پروژه‌ي نهايي روي يه بيسكوئيت پي‌سي -كه از بس خلاصه هست، بيشتر به از اين بيسكوئيت باغ وحش‌ها مي‌خوره تا بيسكوئيت عادي- پياده سازي و اجرا بشه. يه سيستم ۴۸۶ اينتل كه Lan و Keyboard و ۵۱۲K هارد فلشي و ۶۴۰K رم داره و از باقي امكاناتش بي‌خبرم و قرار هست كه قيمت خودش حدود ۶۰ تومن در بياد. دقت دارين كه هاردش كمتر از رمش هست! پايين، عكس يكي از اين بيسكوئيت پي‌سي‌هايي كه امروز توي شركت بود رو مي‌ذارم. اين، سه تا RS۲۳۲ و دوتا USB و كارت گرافيك و يه دونه ISA و كي‌بورد و موس و سي پي يوي ۲۳۳ و خلاصه كلي چيز ميز داشت ديگه! همه‌ش هم تو همون بيل‌بيلك كه عكس‌ش هست بود!

پروژه‌ي نهايي قراره يه چيزي بشه مثل اون چيزي كه شراگيم ازش به عنوان شوهرياب آنلاين ياد مي‌كنه :D با اين تفاوت كه اين يه دستگاه هست كه يه جي‌پي‌اس توش به يه بيسكوئيت پي‌سي متصل مي‌شه و از طريق يه سيم كارت به اينترنت يا گيرنده‌ي اس‌ام‌اس متصل مي‌شه و به اين شكل اطلاعات موقعيت رو در فواصل منظم زماني، به سرور اينترنتي ارسال مي‌كنه. من اصلاً نمي‌تونم بفهمم براي چي بايد به همچين دم و دستگاهي احتياج باشه براي اين كارها. وقتي راهكارهاي ساده‌تري براي اين مسئله هست چرا بايد همچين هزينه‌هايي رو به‌جون خريد، ولي خوب اين طرح يه مناقصه بوده كه شركت گرفته‌تش و دليل تاكيد كارفرما بر استفاده از جي‌پي‌اس و سيم كارت و قابليت GPRS و SMS براي اتصال و گزارش‌گيري از سرور اينترنتي ديگه به ما ربطي نداره!!

توي اون پست PPP گفتم كه تونستم يه بسته پيدا كنم كه يه Packet Driver Class ۱ براي PPP روي مودم يا RS۲۳۲ يا اتصالات اين‌جوري تحت DOS ، پياده سازي كنه و الحق و الانصاف كار بزرگي بوده كه جناب David Lindauer انجام دادن و سورس‌باز گذاشتنش. [LSppp] اين برنامه كد اجرايي و كد اسمبلي‌ش باهاشه. چون كد اجرايي‌ش باهاش بود نيازي نبود كه تحت DOS كامپايلش كنيم و نوشتم كه چطور تستش كرديم. اين مدت به شدت دنبال اين بودم كه بفهمم Vectorي كه اين برنامه برمي‌گردونه به چه كار مي‌آد و چطور مي‌شه بسته‌هاي IP رو بهش داد تا مثل هويج آب گرفتن، از اينور بسته بديم و از اونور رد كنه.

بعد از يكي دو بار ممايله (رد و بدل كردن ميل:D ) با جناب David Lindauer متوجه معني دقيق Packet Driver شدم. زمان داس، درايورها به شكل Interrupt هاي استانداردي نوشته مي‌شدن و از اونها توقع مي‌رفته كه به Function Codeهاي خاصي، جواب‌هاي خاصي بدن. DOSنويس‌ها مي‌دونن كه اين‌جور مواقع در اسمبلي، كد تابع توي رجيستر AH گذاشته مي‌شه و بعد Int فراخواني مي‌شه. از اونجايي كه اينتراپتي كه پكت درايورهاي اتصال به شبكه پياده‌سازي مي‌كنن طبق عرف شماره ۰×۶۰ هست اين بسته هم وكتور ۶۰ برمي‌گردوند كه من اون‌وقتا برام عجيب بود كه چرا همه‌ش اين شماره؟!

يه مدت هم ور رفتم به اينكه بدونم اين حرفا واقعاً همونيه كه من استنباط مي‌كنم؟ براي اينكار بايد از آدرس ۰۰۰۰:۰۰۰۰ كه معروف به وكتور اينتراپت‌ها هست بخونين. اين وكتور تيبل، آدرس‌هاي Farي كه اينتراپت‌ها موقع كال شدن از اونجا شروع به اجرا مي‌كنن رو نگه مي‌داره. براي اين‌كه بدونيم اينتراپت ۰×۶۰ به كجا اشاره مي‌كنه بايد آدرس ۰۰۰۰:۰۱۸۰ رو بخونين و ببينين چهار بايت اشاره‌گر دور رو به كجاست؟ اشتباه نكردم، اين ۱۸۰ ضرب مبناي ۱۶ عدد ۶۰ در چهار هست كه تعداد بايتهاي لازم براي يه جامپ فار هست. بعد اين چهار بايت رو برعكس به شيوه‌ي اينتل بايد بخونين و ردگيري كنين. سه بايت اول اين جايي كه بهش اشاره مي‌شه، يه جامپ مطلق به كد واقعي اينتراپت هست و اگر اين جامپ تونست يه جامپ نزديك باشه -كه دوبايتي هست- بايد كد بعدي‌ش NOP باشه تا سه بايت پر بشه. بعد بايد رشته ي “PKT DRIVER” و بعد يك كاراكتر صفر بياد. اگر اين مشخصات وجود داشته باشه اين يعني واقعاً اينتراپت اينستال شده. من بررسي كردم و ديدم شده بود! (يعني من اينا رو بلد بودما!!)

اينا رو كه داشتين؟ همه بعد از اون روز بود كه Lsppp رو پيدا كردم و براتون تعريف كردم. آخ وقتي اون پرومپت Dialing… Carrier Detected…Negotiating … Authentication… Connected رو ديدم چقدر خوشحال شدم. ولي قدم بزرگ بعدي، بعد از اون رو، امروز برداشتم. مدتي بود يه سري لايبرري C پيدا كرده بودم كه توانايي ارتباط اينترنتي رو تحت داس فراهم مي‌كرد. لايبرري WATTCP، يه كتابخونه‌ي مفصل هست كه برنامه‌هاي زيادي ( + + + ) تحت داس توانايي ارتباط با اينترنت خودشون رو، وامدار اين لايبرري هستن. فكرش رو بكنين كه براي داس SSH و FTP و مرورگر گرافيكي و حتي وب سرور هم نوشته‌شده…

من هميشه با اينكه ادعاي سي نداشتم ولي خوب، دوستش داشتم و فكر مي‌كردم كه لااقل سي داس رو نسبتاً واردم بهش. منتها اين روزا يه عالمه خط كد سي و اسمبلي دستم بود كه مي‌گفت از من استفاده كن و من نمي‌تونستم! اگر خيال مي‌كنين كه بايد راحت يه فايل رو باز كنين و CTRL+F۹ بزنين و اجرا بشه اشتباه مي‌كنين. بخاطر اينكه اين كدها اول بايد به يه لايبرري تبديل مي‌شدن. اين جور پكيج‌ها يه فايل makefile دارن كه به صورت دسته‌اي تمام كارهايي كه بايد با اون فايل‌ها بشه رو انجام مي‌ده. من به اين فايل‌ها وارد نبودم و با يكي دو تا اروري كه دستور Make.exe روي اين فايل‌ها داد متوقف شدم. بعد دست بكار شدم كه فايلهاي .asm رو با tasm.exe و فايلهاي .c رو با tcc.exe به فايل .obj تبديل كنم. اين‌هم خودش باز كلي ريزه‌كاري داشت و كلي سوئيچ رو مجبور شدم ياد بگيرم. مثلاً براي مورد ما بايد فايل‌ها با مدل حافظه‌ي small كامپايل مي‌شدن. انتخاب مدل حافظه هم يه سري آمادگي‌ها مي‌خواد كه بايد داشته باشين. مثلاً مدل tiny براي كسايي هست كه مي‌خوان فايل .com بسازن. به‌هرروي اين فايل‌هاي .obj رو كنار هم نگه داشتيم. بعد با دستور tlib.exe دونه‌دونه اين فايل‌ها رو به لايبرري‌هايي كه بايد استفاده مي‌شدن اضافه مي‌كرديم. بعدتر وقتي فايل‌هاي makefile رو مي‌خوندم متوجه شدم كه اونها هم سعي داشتن كاري شبيه به همين كار رو بكنن. خلاصه تونستم سه تا لايبرري كه اين پروژه مي‌خواست رو توليد كنم. بعد اين سه تا لايبرري رو توي شاخه ي Lib و هدرهاشون رو هم به شاخه‌ي Include كپي كردم و به IDE توربو سي رفتم. يكي از سمپل‌هاي اين پروژه كه پياده‌سازي عمل Ping بود رو باز كردم و پروژه رو كامپايل كردم. ران شد؟ كور خوندين! نشد.

من تا امروز خيال مي‌كردم كه IDE توربوسي يه قدري از هوش انسان‌دادي(!) بهره برده و فقط لايبرري‌هايي كه لازم هست رو به پروژه اضافه مي‌كنه و از طرفي هر چيزي كه توي فولدر lib هست رو در صورت لزوم به پروژه اضافه مي‌كنه. در حالي كه اين برنامه از هوش انسان‌دادي هيچ بهره‌اي نبرده و فقط مثل احمق‌ها يه سري لايبرري پيشفرض كه بهش گفتن رو به برنامه لينك مي‌كنه كه شايد حتي احتياج هم نباشن! اين يعني اينكه بايد برنامه‌ي من توسط كامپايلر خط فرمان كامپايل بشه و بعد توسط لينكر خط فرمان لينك بشه. گند بزنن به اين همه مراحل. وقتي برنامه هيچ مشكلي نداشته باشه بدون ارور كامپايل مي‌شه و فايل obj رو مي‌ده منتها لينك كردن زياد برو تو گلو نيست. ضمن اينكه بايد توجه مي‌كردم كه آيا توابع اسمبلي‌م با Underscore پيشفرضي كه سي براي معادل قرار دادن توابع extern دنبالش مي‌گرده سازگاره يا نه وگرنه بايد با يه آپشن خاصي لينك بشه. همين‌طور بايد با توجه به مدل حافظه، يكي از فايل‌هاي توي شاخه‌ي Lib رو بعلاوه‌ي يكي از لايبرري‌هايي كه حاصل دست خودم بود، به obj پروژه‌ي پينگ‌مون لينك مي‌كردم. خلاصه اين‌كه اين‌همه كار كه كرديم همه توي خط فرمان بود و همگي يادآور خاطرات دوران راهنمايي و دبيرستان بود كه همه جور پشتك و آفتاب‌مهتابي با خط فرمان مي‌زديم.

لحظه‌ي موعود فرا رسيد و فايل exe ساخته شد. توي خط فرمان جداگونه‌اي زدم Ping yahoo.com تا آي پي ياهو رو بدست بيارم. سه جواب با TTL هاي ۵۱و ۵۰و ۴۹ اومد كه نمونه‌ي بارزي از “امكان طي مسيرهاي مختلف براي رسيدن به يه سيستم ديگه در پروتكل IP” هست و نشون مي‌داد كه آي‌پي ياهو (البته يكيشون) ۲۱۶.۱۰۹.۱۱۲.۱۳۵ هست. برنامه‌ي پينگ ما قدرت resolve كردن دامنه‌ها رو نداره و فقط آي‌پي دريافت مي‌كنه. بعد توي خط فرمان اصلي‌مون كه lsppp هم اينستال شده بود، پينگ رو با آي‌پي بالا براي ۵ بسته (تعداد بسته‌ها رو بعنوان پارامتر مي‌گرفت) تنظيم كردم و Enter رو زدم.

Ping Statistics

Sent ۱

Sent ۲

Sent ۳

Sent ۴

Sent ۵

^C

واي از خوشحالي يه ضربه‌ي تاي چي حواله فضاي بين خودم و مانيتور كردم. (نترسين تاي چي ضربه‌هاش هم بر پايه‌ي تنفس و آرامش هست اصلاً كسي اسمش رو ضربه نمي‌ذاره!) دقت كردين چي شد؟ ۵ بسته‌ي پينگ ارسال شد. فقط ارسال. برنامه‌ي ما بخاطر اين‌كه از آي‌پي خودش خبر نداشت نمي‌دونست كه آدرس برگشت رو چي بذاره و فقط بسته‌هاي پينگ رو ارسال كرد و طبعاًَ قادر به دريافتش نبود. ولي تا همين‌جا هم يعني پروژه به نقطه‌ي مطلوب رسيده و Mile Stone حساسي رو گذرونده. اين اتفاق اينقدر خوشحالم كرد و اينقدر زور زده بودم و خسته بودم كه بعد از اين اصلاً نموندم كه ببينم مي‌تونم recive ش رو هم انجام بدم يا نه و گفتم “من كار خود را كردم” و ديگه داشت ديروقت مي‌شد كه خداحافظي كردم و اومدم خونه.

اضافه:

Biscuit PC ْGSM Modem Working PC

توضيح عكسها:

۱- اين همون بيسكوئيت پي‌سي‌اي هست كه گفتم تو شركت بود. پورت COM به وضوح مشخصه. سيم دو رشته‌اي، سيم برقش هست و سيمي هم كه خارج شده Lan هست. اون دايره هم باتري CMOS هست و بوردي هم كه جدا از اصل پي‌سي، بالاي عكس ديده مي‌شه، هارد فلشي هست. قسمت سياه كنار انگشت هم ISA كارد هست.

۲- اين هم مودم GSM هست كه به پورت RS۲۳۲وصل شده. اون فيش هم كه مي‌بينين تو هوا هست مال برقشه. آنتن مودم هم كه معرف حضور هستن! يه برآمدگي سياه كنار پايه‌ي آنتن، پشت برد ديده مي‌شه كه توش يه باريكه ي زرد پيداست. اين مفلوك هم سيم كارت ايرانسل هست.

۳- پي سي شلوغ پلوغ! واي عشق منه. با يه حركت از تو دل و روده‌ي آويزونش مي‌توني جامپر آپانديسيتش رو دستكاري كني و چرخش قلبش رو ببيني. البته بعيد نيست وقتي مشغول پارتيشن بندي هستي مامانت بياد و هارد رو مجبور به سكته‌ي كامل كنه. خدا رو شكر هنوز گارانتي‌ش مونده بود وگرنه هيچ ماساژي نمي‌تونست ريكاورش كنه! اون كاغذ زردا هم دستور كارهايي هست كه آقاي فتحي مي‌ده. فردا ساعت ده فلان كار؛ فلان روز ساعت فلان جلسه‌ي فلاني… كاغذ مي‌ده، ولي من به اضافه كردن Appointment و Event به Calendar موبايلم بيشتر اعتماد دارم تا اين كاغذا! Reminder ست مي‌كني از غم دنيا فارغ مي‌شي!

نكته‌ي نهايي اينكه كپي رايت انگشت‌ها اكيداً مال خودمه!!

خانم دكتر، آقاي مهندس

دسته بندي (خاطره‌هاي‌آينده‌ي‌من) نويسنده imei در ۰۹-۱۱-۱۳۸۶

برچسب‌ها : ,

۱

- امشبم؟

- آخي… بيدارت كردم؟

- مي‌رسونمت… زود تموم مي‌شه؟

- شايد. شايدم بايد بمونم تا مشكل رفع شه… بخواب تو عزيزم… فردا هم كار داري.

-تو پاركينگ بيمارستان مي‌خوابم… يه آقاي با شخصيت يه خانوم با شخصيت خوابالو رو كه با يه ماشين باشخصيت تنها نمي‌ذاره :P… حالا چي مي‌شه يه وقتايي من در نقش همسر فداكار براي وقتاي نق زدن يه خورده آذوقه جمع كنم…

۲

توي پاركينگ خوابم نمي‌بره. لپ تاپ رو روشن مي‌كنم. از هايبرنيت كه بالا مي‌آد، يه مشت پنجره از برنامه‌هاي مختلف بيرون مي‌ريزه. چند دقيقه بين برنامه‌ها سوئيچ مي‌كنم و توي متن كار قرار مي‌گيرم. ولي زود متوجه مي‌شم كه اين روش خوبي براي خوابيدن نيست. يه EBook داستان نيمه‌خونده رو باز مي‌كنم و شروع مي‌كنم به خوندن. چشمام گرم مي‌شه. صندلي رو مي‌خوابونم و كاورم رو مي‌كشم رو خودم…

۳

- مي‌خواي همين‌جا بخوابيم؟ فوقش سه چار ساعت ديگه بيشتر نمي‌تونيم بخوابيم كه. نگهبان هم ديگه عادت كرده…

- نه خونه‌مونو بيشتر دوس دارم. توش آرامش بيشتري هست…


خاطره‌هاي آينده‌ي من از خونه‌مون. از دردسرهاي خانوم دكتر و شغلش. از لذت زندگي زير يه سقف، سقف ماشين و سقف خونه و سقف آسمون… مي‌دونم كه خيلي از اين خاطره‌ها به حقيقت نمي‌پيوندن ولي ويرچوال ماشيني كه توي ذهن من هست مي‌تونه يه زندگي موازي با اين مصيبت بارون حاضر رو، با زيبايي و غيرقابل پيش‌بيني بودني كه دوستش دارم رنگ كنه و پيش ببره؛ به تريج قباي دنيايي هم كه افتخار به زجر دادن من مي‌كنه بر نمي‌خوره. در ضمن براي اين‌كه شما خوانندگان جان (!) هم بتونين راحت بخونين، داستان رو از تلويزيون ايران پخش كردم كه نه بوس و بغل داشته باشه و نه ۱۸+

آجر انداختن به طبقه‌ي آخر از روي شانه‌هاي بزرگان

دسته بندي (كامپيوتر) نويسنده imei در ۰۷-۱۱-۱۳۸۶

برچسب‌ها :

يعني يه كامپيوتري بايد تر و فرز و با حوصله و با پشتكار باشه؟ اونم وقتي با اين صفات مي‌خوان تحريكت كنن يه كار غول آسا رو انجام بدي اونم چه كاري؛ يه كاري كه نه اختراع هست و نه نوآوري! يه كامپيوتري ياد مي‌گيره كه *”روي شونه‌هاي بزرگان بايسته” و كاري انجام بده، نه اين‌كه كار اونا رو تكرار كنه.
شايد توي جريان باشين كه يه جا براي يه پروژه، ازم پياده‌سازي چند تا پروتكل رو مي‌خواستن. زيرلايه‌اي‌ترين‌شون، پروتكل PPP بود كه قرار بود از روي RS۲۳۲ به مودم GSM وصل بشيم تا با يه ماجولي كه من نمي‌دونم چيش به چيه و چه‌جوري، كار يه موبايل رو مي‌كرد بعلاوه‌ي يه سيم‌كارت ايرانسل به اكسس‌پوينت GPRS وصل بشيم. حالا بايد دستگاهي كه به اين مودم وصل مي‌شه رو طوري برنامه‌ريزي كرد كه بتونه از روي ناقل GPRS يه سري كارها تو اينترنت بكنه كه اصلي‌ترين كارش ارسال گزارش عملكرد اون دستگاه به سرور اينترنتيه. به‌هر‌روي، مسئله اين بود كه ما بايد به اين دستگاه خنگ PPP و IP و UDP رو ياد مي‌داديم. باز خدا رو شكر تونستم اثبات كنم كه از خيرTCP بگذرن كه حجم پياده سازي‌ش خلق‌الله رو معطل خودش كرده.

صاحب كار، آقاي فتحي، يه مرد سخت افزاره. سخت كوش و خوش قلب. بنده‌ي خدا مرتب مي‌گفت يه فريمي مي‌خوام كه اطلاعات رو بذارم روش تا برسه به سرور. اين در حاليه كه اين كار با فريم قابل پياده سازي نيست. حتي اگر از UDP كه مي‌تونه Connectionless باشه و Session Management نداره هم استفاده كنيم، بايد يه Session manager مختصر در نظر بگيريم كه لااقل بدونيم كدوم گزارش‌ها رسيده و كدوم‌ها Retry نياز داره. در كل Agent ما بايد Delivery Report داشته باشه. از اين هم كه بگذريم سختي كار توي لايه‌ي IP و PPP كم نيست. ما تقريباً به هيچ عنوان نمي‌تونيم يه IP هندلر كامل بنويسيم. نمي‌خوايم كل پروژه رو بذاريم رو اين بخش كه!! فقط يه *”خرك رو بديم لنگان برسونه به منزل” كافيه…. ولي براي PPP واقعا نمي‌شد Session Manager ننوشت. PPP از يه پروتكل كمكي به اسم LCP استفاده ميكنه تا به گزينه‌هاي ماشين حالت خودش مقداردهي بكنه. فكرش رو بكنيد وقتي به اينترنت كانكت مي‌شيد باز كردن پورت مودم، دايالينگ، دريافت Carrier و بعد Negotiate اوليه، توافق سر عدد جادويي، توافق سر گزينه‌ي Compression (دو جور توافق هم هست خير سرش) ، توافق سر شكل انتقال رمز (چاپ و پاپ و شيوا پاپ) كه با اينكه بدرد ما نمي‌خورد ولي بايد اجباراً توافق مي‌كرديم سرش و هزار جور رقص و Hand Shaking ديگه بايد انجام بشه تا ماشين PPP به State آماده به انتقال (Network State) برسه. در غير اين‌صورت، لينك مرده بود و بايد به لايه‌ي بالا گزارش ايست داد تا داده‌ها رو كش كنه. يعني كار از فريم كاري و به سر و ته اطلاعات گل و سنبل چسبوندن گذشته بود و بايد واسه هر بيل بيلكي كه مي‌خواستي بفرستي يه پرونده تشكيل مي‌دادي!!

آقا دردسرتون ندم اين وسط كار ما شده بود كه اين پروتكل رو پياده سازي كنيم. يعني آقاي فتحي فقط مي‌خواست الگو رو بگيره و رو سخت افزار پياده سازي كنه ولي خوب من كه مي‌دونستم كار از اين قضيه‌ها گذشته بايد بشينه برنامه‌ي نوشته شده رو Cross Compile كنه وگرنه هيچ شانسي نيست كه كدي كه با سي بزور نوشته شده رو ببره به اسمبلي ۸ بيتي يه دستگاه زبون نفهم! من بيچاره نشستم روزهاي متمادي كار كردم… اول با اسنيف كردن RS۲۳۲ شروع شد. مودم رو وصل كرديم به ويندوز و با شماره‌گيري GPRS به اينترنت وصل شديم (مي‌دونستيد شماره‌ش چيه؟ اينه *۹۹***۱# كه اگر موبايلتون قابليت مودم شدن داره بايد باهاش شماره‌گيري كنين البته فعلاً فقط با سيم كارت ايرانسل) اين وسط براي يه اتصال و يه پينگ فسقلي كلي شر و ور اسنيف شد. فريم PPP دو كاراكتر خاص داره ۰×۷F و ۰×۷e كه يكي دليميتر هست و يكي ديگه اسكيپر. اين اسكيپر هست كه كمك مي‌كنه اطلاعات شما به شكل دستورات مودم در نيان وگرنه ممكن بود متن‌تون حاوي دستورات مودم بود (مي‌دونستين مودم هم دستور داره واسه خودش؟) و وسط ارسال اطلاعات يه دفعه دستور ديسكانكت (ATH) رو مي‌فرستادين و…

خوب ديگه زيادي آب و تاب ندم، كلي زور زديم تا تونستيم اطلاعات اسنيف شده رو پارز كنيم و حاليمون بشه كه كي چي گفته و يعني چي؟! بعد ديديم بابا اينا از يه جا به بعد دارن كمپرس حرف مي‌زنن هر چي هم بهشون گفتيم كه بي خيال كمپرس شدن شين حساب نبردن ازمون! گفتيم بالاخره كه چي؟ ما بايد خودمون وارد عمل بشيم و بسته بسازيم و در قبال توافقات كمپرشن، بگيم “نه كمپرس كردن بلد نيستيم عين آدم حرف بزن”، تا طرف مقابل هم بي خيال كمپرشن بشه و از اون به بعدش رو ادامه بديم. ولي گير بزرگ بعدي خودش رو نشون داد. هر فريم PPP يه Checksum داره كه با CRC حساب مي‌شه. ما فقط مي‌دونستيم كه CRC يه چيزي هست! ولي نمي‌دونستيم چطوري حساب مي‌شه. اطلاعات بيشتر رو از اينور و اونور در آورديم و فهميديم كه CRC۱۶ CCITT اسم شيوه‌ي CRC گرفتنش هست و با چند جمله‌اي x۱۶+x۱۲+x۵+۱ تقسيم‌ها انجام مي‌شه و آخرش هم Not مي‌شه و اگر لازم بود Scape مي‌شه با اسكيپر، و تازه ممكنه از طريق يكي از اين آپشن‌هاي توافقي، CRC۳۲ گرفته بشه. من حداقل چهار تا سورس CRC Calculator گير آوردم. رشته‌هاي اسنيف شده و خام رو، وقتي مي‌ذاشتم توش بايد بهم كد چكسام انتهايي اسنبف شده رو مي‌داد ولي نمي‌داد. با Online Calculatorها محاسبه كردم نشد پارامترها رو چپ و راست كردم نشد به نذر و نياز متوسل شدم نشد و در نهايت الطاف الهي دستشون رو از آستين كفار بيرون آورد و سوالي كه توي يكي از فرومهاي عالي مربوط به يكي از همين Online Calculatorها پرسيده بودم كمي بعد پاسخ داده شد.

ولي من حتي وقت نكردم كه صحت اون پاسخ رو كه به نظر مي‌رسيد كاملا درست و اثبات شده باشه بررسي كنم و حتي نشد كه شعورم رو نشون بدم و تشكري هرچند خشك و خالي در قبال خوش آمد و پاسخ سوالم به طرف كه اسم جالبي هم داشت و منو ياد رگولار اكسپرشن مي‌نداخت تحويل بدم. واقعاً متاسفم كه اينقدر بي فرهنگ شده‌بودم ولي خوشحالي چيز بهتري كه پيدا كرده بودم اجازه نداد متين بازي در بيارم!

قضيه از اين قرار بود كه يه بسته پيدا كردم كه پروتكل PPP رو به زبان اسمبلي و براي داس پياده سازي كرده بود. پرتاب آجر به طبقه آخر آسمانخراش از اين كار راحت تر بود ولي واقعيت داشت و كار مي‌كرد… يعني گذاشتيمش توي WOW (توضيح اينكه اين ويندوز در ويندوز يه امكان بالاي هسته هست كه توي ويندوزهاي سري NT قادره تا حد زيادي محيط سازگار براي برنامه‌هاي DOS فراهم كنه) و ديديم كه يه TSR هست ( توي داس برنامه‌هايي كه پشت صحنه كارشون رو انجام مي‌دادن رو مي‌گفتن. داس از اين شعورا نداشت كه مالتي تسك باشه ولي چون برنامه نويسا باشعورتر بودن بهش حالي كرده بودن اين تريپ رو!) كه وقتي ران مي‌شه يه Vector برمي‌گردونه كه مي‌توني با دنبال كردن اون وكتور هويج هاي IP رو بدي دست اين آب ميوه‌گيري تا ضمن ارسالشون توي اينترنت به نور چشم فتحي هم تبديل بشي…

خلاصه اينكه فتحي مي‌خواست يه برنامه بنويسم كه با تست هزاران حالت ممكن بالاخره به پارامترهاي CRC دست پيدا كنم. ضمن اينكه براي همون يه كار راه ساده‌تري پيدا شد، براي كل پروژه هم سلوشن *انساني‌تري يافت شد كه شيخ زياد گردش نگشته بود.


در اين باره

The Point-to-Point Protocol (PPP) RFC

Point To Point Protocol

PPP Design, Implementation, and Debugging (۲nd Edition)

A painless Guid to CRC error detection algorithms

پي نوشت:

*اگر من فراتر را نگريستم، با ايستادن بر شانه‌هاي غولهاست .(نيوتون)

*آنكس كه نداند و بداند كه نداند، لنگان خرك خويش به منزل برساند (منسوب به امام فخر رازي)

*دي شيخ با چراغ همي گشت گرد شهر، كز ديو و دد ملولم و انسانم آرزوست

گفتيم يافت مي‌نشود گشته‌ايم ما، گفت آن‌چه يافت مي‌نشود آنم آرزوست (مولانا)

دروغ براي اعتماد، حراست از عشق

دسته بندي (اجتماعي, عشق) نويسنده imei در ۰۴-۱۱-۱۳۸۶

برچسب‌ها : , , , , ,

اگر اين وبلاگ وبلاگ من باشه و اگر من من باشم، بيخ گلومو مي‌گيره اگر از اين نگم.

مثل همه، من هم دوستايي دارم كه “دسته‌ي دوتايي”ان. اگر دختر باشن دوست پسري دارن و اگر پسر باشن دوست دختري دارن كه همديگه رو دوست دارن و از بودن با هم لذت مي‌برن. تو اينجور روابط، بعيد نيست كه طرفين مايل به معرفي من به همديگه، به عنوان دوست باشن چرا كه من رو مي‌تونن به عنوان يه دوست كه معتمد دو طرف باشه به هم معرفي كنن. خوب اين تا اينجا…

من توي يه پست مفصلاً در مورد نگرش خودم به رابطه‌ي عاشقانه و رابطه‌ي مالكانه‌ي جنس مخالف توي فرهنگمون نوشتم. توي رابطه‌ي بيرونم هم، جز با اين فكر برخورد نمي‌كنم. درباره‌ي اينكه خودم رو به شكل ديگه‌اي جلوه بدم هم كه اصلاً تو مودش نيستم. اصولاً زياد مايل به رابطه‌اي نيستم كه مجبور باشم جوري توش برخورد كنم كه نيستم و بخاطر همين هم معمولاً از كار تو محيط‌هاي اداري و استخدام‌ها و اين‌جور چيزا پرهيز مي‌كنم. بخاطر همين برام خيلي راحته كه قيد رابطه‌اي كه توش مجبور باشم تظاهر كنم رو بزنم. اينا همه مقدماتن حالا هنوز اون بيخ گلو گيره رو نگفتم!!

من شايد با طرز تلقي‌اي كه خيلي از اين دسته‌هاي دوتايي از من دارن متفاوت باشم. شايد اگر دختري ببينه كه من توي رابطه‌ام با دخترها راحتم و “مثل خودشون” حرمت و اندازه‌ي كسي رو كه دارم رعايت نمي‌كنم و مثلاَ مي‌گم و مي‌خندم و قرار مي‌ذارم و دست مي‌دم، يعني اين‌كه دارم رو مخشون كار مي‌كنم يا اينكه تعهد ندارم يا اينكه به هر شكلي انحراف دارم. قضاوت پسرها كه دسته گله! لطف ميكنن و همه‌ي پسرهاي ديگه جز خودشون (و حتي گاهاً خودشون) رو مي‌ذارن جزو دسته‌ي “من اينا رو مي‌شناسم!” كه چي؟ كه اينكه طرف خانم بايد “تحت الحفظ” با من -كه جزو رسته‌ي جانور شناسي پسرها شناخته مي‌شم- رابطه داشته باشه تا مبادا خانوم رو هاپولي كنم! مهم نيست، من مي‌دونم كه اين فرهنگ غالب جامعه‌مونه و قرارم نيست كه من تحول تزريق كنم توش! آقا يا خانوم نمي‌خوان من با مزدوجشون خارج از دايره‌ي امنيتي ايشون دوست باشم. بسيار خوب!Let it be!

چند وقت پيش، با يكي از اين دوستاي خانوم قرار گذاشتيم براي چند روز پيش. بعد كاشف به عمل اومد كه طرفشون ناراحت شدن كه چرا بي خبر من قرار گذاشتي؟ من براي اين احساسات احترام قائلم و بخاطر اينكه ديدار ما، به نوعي به احساس خيانت تبديل نشه سعي مي‌كنم رابطه‌ام رو با اينجور دوستام محدود كنم. با اينكه شخصاً اينجور رابطه‌ها رو دوست ندارم و فكر مي‌كنم يه ايرادي دارن كه بايد با گذشت زمان بهبود پيدا كنه، ولي برام خاطر عشق عزيزه و “از هر زبان كه ميشنوم” قابل احترامه. منتها چيزي كه حيفم مي‌آد اين وسط اينه كه دوستي‌اي كه براش زحمت كشيده شده و براي طرفين ارزش داره، به يك دشمن فرضي براي عشق تبديل مي‌شه طوري كه يكي از طرفين بايد بين عشق يا دوستي طرف مقابل يكي رو انتخاب كنه… البته هميشه به اين تندي و رك بودن نيست ولي معنا و مفهوم دقيقاً همين‌طوره!

باز چند وقت پيش يكي از دوستان درباره‌ي رابطه‌ي من و فروغ حرفي زد. انگار ديدن اينكه فروغ با اسم يكي از پسرهاي كلاسش با من شوخي‌اي بكنه، براي اين دوستمون زياد جا نيافتاده بود كه با اينكه تاييد ميكرد شوخي هست، ولي به من با جديت مي‌گفت “مواظبش باش”. تلخ ترين حرفهايي كه به اسم نصيحت و خيرخواهي و *”ديدن پيچش مو” به آدم زده مي‌شه. من هم از اين شوخي‌ها مي‌كنم و خود اين دوستمون هم از اين شوخي‌ها مي‌كنه. همه‌ي ما رابطه‌هايي داريم كه در اون احساس خيانت نمي‌كنيم ولي بعضي‌ها مايل به پوشوندنش هستن و بعضي‌ها با اعتماد سازي به سلامت روابطشون افتخار مي‌كنن. من كسي نيستم كه وقتي دوستي در زندگيم دارم، ولي ميخوام خيال “دسته‌ي دوتايي”مو راحت كنم بگم “اين ياروئه” يا با همكلاسي هام دوست باشم ولي حتي خبري هم ازشون توي رابطه‌مون نباشه و درواقع هويتي مخفي باشن! من با اينكه فروغ با دوستاي پسر هم كلاسش مي‌ره و مي‌آد و مي‌گه و مي‌خنده مشكل داشته باشم ولي خودم با هزار تا دختر هم كلاسي يا اينترنتي بگو بخند داشته باشم؟ مگه من نامردي دارم مي‌كنم؟ من مواظب فروغ باشم؟ فروغم مواظب من باشه؟ بهتر نيست جفتمون مواظب خودمون باشيم و بجاي دروغ گفتن يا محدود كردن خودمون و طرفمون، عادي زندگي كنيم؟!

اسم اين پست رو گذاشتم دروغ براي اعتماد. چون معتقدم اينجور رفتارها از صداقت به دوره. خصوصاً صداقتي كه بايد توي عشق باشه. و گذاشتم حراست از عشق! خوب مي‌دونم از عشق بايد نگهداري و مواظبت بشه و بايد خيلي تراش بخوره، شعله‌ي عشق مال اولاش هست و بايد اين آتشكده رو روشن نگه داشت نه گذاشتش به اميد اين‌كه خودش مي‌مونه. ولي بار منفي‌اي كه كلمه‌ي حراست -به لطف نيروهاي حراستي- تداعي مي‌كنه دقيقاً همون بار منفي‌اي هست كه از “مواظب بودن” بعضي‌ها منظورم هست. عشق يعني آزادي…


پي‌نوشت:

* يك قصه بيش نيست قصه‌ي عشق و اين عجب كز هر زبان كه مي‌شنوم نا مكرر است.(حافظ)
* تو مو مي‌بيني و من پيچش مو، تو ابرو، من اشارت‌هاي ابرو (نظامي)