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

دسته بندي (روزمره, كامپيوتر) نويسنده 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 در ۰۷-۱۱-۱۳۸۶

برچسب‌ها :

يعني يه كامپيوتري بايد تر و فرز و با حوصله و با پشتكار باشه؟ اونم وقتي با اين صفات مي‌خوان تحريكت كنن يه كار غول آسا رو انجام بدي اونم چه كاري؛ يه كاري كه نه اختراع هست و نه نوآوري! يه كامپيوتري ياد مي‌گيره كه *”روي شونه‌هاي بزرگان بايسته” و كاري انجام بده، نه اين‌كه كار اونا رو تكرار كنه.
شايد توي جريان باشين كه يه جا براي يه پروژه، ازم پياده‌سازي چند تا پروتكل رو مي‌خواستن. زيرلايه‌اي‌ترين‌شون، پروتكل 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 در ۲۲-۱۰-۱۳۸۶

برچسب‌ها : , ,

موميايي پيچ هم كني بري بيرون لامصب سرما تا مغز استخونتو هم مي‌سوزونه.شال و دسكش‌و كاپشن و كفش ورزشي! نخير كارگر نمي‌افتد! .. صب مي‌زني مي‌ري بيرون. صبونه كه هيچي! از اين سوسول بازي ها كيلو چنده. يادم مي‌افته مامان گفت تو اين سرما بخواين برين دسشويي چيكار مي‌كنين گفتم مامان ما اينجا فوقش روزي يه بار بريم دسشويي ديگه نصفه شب و اين ادا اصولا نداريم كه! نيم ساعت پياده روي داري تا سر جاده اصلي =)) آخ پيكان قراضه عجب بخاري‌اي داره جان!! باز يه كورس پياده روي تا سر جلال، باز پژو غراضه آخ جان…

خوب خود خل‌تون نوشتين پايين زنگ باشگا! خب منم كه طبقه‌ي دوم كار دارم دوتا زنگم كه بيشترنيس پس چرا وقتي زنگ بالا رو مي‌زنم خانوم با شخصيته از باشگا مي‌آد بيرون مي‌گه شما با ما كار داشتين؟ خب چيزه من؟ چيز نه. من؟ :P

امروز هي برق رفت! بنده خدا سردش بود رفت بخاري برقي گرفت دو ديقه نشد پوپ! بابا من داشتم كلي تست و تريسامو وارسي مي‌كردم! تا سه چار هنوز عملاً هيچ غلطي نكرده بودم. ولي بعد از اون ديگه تونستم، با C تونستم رو پورت مودم جي اس ام بنويسم و بخونم، نوشتنش كه با نوشتن رو فايل يكي بود، ولي خوندنش دهن سرويسي داشت! Thread باز كن بخون بايت به بايت… اوووه! ولي گول نخورين! يه Class بود از اين كارا رو مي‌كرد… ولي بالاخره پيدا كردنش خب سخت كه بود ديگه؟! نبود؟

ديگه مونده بود پيدا كردن روش CRC پروتكلش كه هر چي خوندم و مطابقت دادم و الگوريتم عوض كردم نشد كه نشد! چيزي كه Sniff كرده بوديم فرق ميكرد با اون چيزي كه از الگوريتم مي‌گرفتيم! ديگه مخم مختل شده بود كه زدم بيرون! اومدني هم دو تا كيك درنا گرفته بودم كه ظهري از گشنگي نميرم. هم اكنون هم كه مي‌بينين نمرده‌م بخاطر اينه كه ظهر بين سه تا كامپيوتر سوئيچ مي‌كردم و كيك گاز مي‌زدم. بميرين واسه‌م زودي!

بدترين اتفاق امروز اينه كه برگشتني كلي به خونه نزديك شده بودم تازه سيم كارتم افتاد كه “شارژر لپ لپ رو يادم رفته :(( ” بيچاره لپ لپ نازي… حالا با چي بخوابم با چي بيدار شم با چي حرص در بيارم با چي اينترنت كار كنم با چي كاراي شركت رو ادامه بدم؟لپ لپ گشنه ش بشه از كجا غذاشو جور كنم؟

مشتري‌هاي پشتيباني شبكه زنگ زدن، ميگن بيا :(( به درخت گفتم بره. رفته خير ببينه فقط خبر بد برام ريدايركت كرده! فردا خودمم ميرم… ميل سرور داخلي ميخوان! معععععع ميل سرور؟ سر هم مگه چند تا سيستمن؟ آخه نميدونن وقتي سرورهاي مختلف راه بندازن، هنوز پامو از شركت بيرون نذاشتم بايد دوباره زنگ بزنن ديگه. آخه شما كه اينقدر وابسته به آي تي هستين بايد يه كارمند آي تي داشته باشين. بگين يكي رو معرفي كنيم به نون و نوايي برسه!


ديالوگي از تام هنكس، در نقش كاپتان ميلر در نجات سرباز رايان:

I just know that every man I kill the farther away from home I feel.

Tom Hanks As Captain John H. Miller

من، يك روز ۱

دسته بندي (اطرافيان, روزمره) نويسنده imei در ۱۶-۱۰-۱۳۸۶

برچسب‌ها : , ,

امروز روز خوبي بود در كل… هر چند فكر ميكنم براي درخت اصلا اين‌جور نبوده ولي براي من روز خوبي بود…

امروز رفتيم و بالاخره قرارداد پشتيباني رو نهايي كرديم. قرارداد خوبي شد. فكر مي‌كنم سود خوبي داره و از قبلش مي‌تونيم سودهاي جانبي خوبي هم بكنيم. اميدوارم قدم خيري براي موفقيت‌هاي آينده باشه. ظهر زنگ زدم با منشي شركت هماهنگ كردم قرار شد ساعت چهار بريم براي نهايي كردن. من خيلي خسته بودم از بس پاي سيستم بودم يه جورايي سعي كردم بخوابم ولي وقت خواب نبود. خودمو به خواب زدم. بعد پا شدم پيرهن آبي‌مو كه خيلي دوسش داشتم و گرچه عمري ازش مي‌گذره ولي هنوز قشنگه رو پوشيدم. كلي خودمو دعا كردم كه اون سري اتوش كرده بودم وگرنه كلا يه چيز ديگه بايد مي‌پوشيدم. خلاصه بعدش هم كت و شلوار تنم كردم كلي تو آينه به خودم تلقين كردم كه خوبه! البته خوب هم بود ولي الان يكي بگه بد بود من دفعه‌ي بعد همين مكافاتو دارم. باز يه خورده به سبيلم ور رفتم :D اين يكي دو باري كه ريشمو زدم دست به سبيل نزدم الان باحال شده :)) ديگه گفتم اگه ريشمم بخوام بزنم ميگن ميخواد بره خواستگاري نه پاي قرارداد :D بعد افترشيو هم زدم! چيه بابا چرا مي‌خندين افتر شيو رو كه نگفتن چقدر بعد از آخرين بار ريش زدن بايد زد؟! منم بوشو دوس دارم الان مي‌زنم. حرفيه؟! بعد عطر لبه ي كتم و عطر پشت دستمو زدم و شونه و واكس كه برم بيرون! ديدم شانس رو به ديوارم بارون داره مي‌اد نم نم! چتر نحيفمو برداشتم زدم بيرون. اگه پالتوي بلند معروف (!) رو هم روش مي‌پوشيدم يه جورايي به خيلي ها حق مي‌دادم كاري كنن كه دفعه‌ي بعد مكافات بكشم :D

خلاصه اينكه زدم بيرون. يه دونه اوربيت خريدم تا بوي كوبيده‌ي ظهر تو دماغم نمونه! باد مي‌زد زير اين چتره! سوار BRT شدم سمت چاررا ولي عصر. هي حالا “درخت” زنگ و SMS كه من رسيدم بيا منو بچين :D منم حالا تو راه مواظبم اين خيل جمعيت كت بيچاره رو چرخ گوشت نكنن از يه طرفم SMS ميدم كه Hold on بابا! دم ايسگا كه بايد پياده شيم يهويي عين هويج تو آب ميوه‌گيري تپيدن تو! هي من از اون ته Crawl مي‌كردم آخرش نرسيدم كه نرسيدم! اوتوبوس راه افتاد و پياده شدن به دل من موند! فردوسي پياده شدم با تاكسي برگشتم!! اي كوفتت بشه كه بخاطر اينكه معطل نموني اين از جيب گذشتگي رو كردم!

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

دارم فكر مي‌كنم چطوري سه اينو بپوشونم كه روز من از ظهر شروع شده! ولي خوب آخه من كه خاطره‌ي ديشب تا ۵ بيدار موندنم رو نگفتم كه شما روشن بشين. نه بذارين اونم بگم!! ئه نه چي چي رو بسه؟! باشه بابا اه!

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

پياده از وزراء تا متروي بهشتي اومديم. من مدتهاس كه بخاطر همون خلق و خوي “گل بي رخ يار” و پرهيزاز تنها خوري، فقط به بوي DeliManjoo توي ايسگاه مصلي اكتفا ميكردم گفتم بيا يه سر بريم از اينا بخريم ببينيم چيه كه اينقدر خوش بوئه. ديشب داشتم واسه فروغ تعريف مي‌كردم كه عين راه كرج كه از كنار كارخونه “مينو” مي‌گذره بوش همه جا مي‌پيچه اينم همونجور هوس برانگيزه. خلاصه خريديم و ديديم كه هيچ پخي هم نيست. فقط بدونين كه من از اينا نخورده راهي سينه‌ي قبرستون نمي‌شم!

قرار شد كه “درخت” هفت‌تير پياده شه سوار تاكسي‌ها شه. ولي من بهمراه اون خانومه كه هي باهاش تبادل SMS مي‌كرد دست در دست هم داديم (به صورت مجازي) و حواسش رو پرت كرديم. ولي ديري نپائيد كه ايسگاه بعد پياده شد و برگشت. نامرد گرامي.

خلاصه اينكه روز خوبي بود ولي “درخت” بيچاره‌ي ما مدام پاي تلفن و اس ام اس درگير مسائل خاله زنكي بود و حرص مي‌خورد. كلي از راه رو هم تنهايي اومدم تا آقا با تلفن حرف بزنه…

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

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