
وقتی به کاشان رسیدم بابام هم رسیده بود و جاتون خالی با هم رفتیم یه کبابی درجه یک که بابام همیشه ما رو میبرد. اینبارم رفتیم کبابی مذکور هم کباب عالی داشت و هم دوغ و ماستش درجه یک بود خلاصه که یه کباب مشت زدیم و راه افتادیم سمت خونه. توی چشمای بابام میدیدم که چقدر خوشحاله از این که من کار پیدا کردم و همینطور بعد از به خونه رسیدن دیدم که مامنم چقدر از این مسئله خوشحاله، همیشه دوست داشتم خوشحالشون کنم ولی تا به اون روز کم پیش اومده بود بتونم اینقدر خوشحالشون کنم.
از فردا کار شروع شد من هر روز سلام میکردم توی گروه و سعی میکردم سر در بیارم بچهها توی چه مرحلهای هستند و اگر کمکی از دستم بر میاد انجام بدم و خودم رو هم موظف کرده بودم توی ساعت اداری پای کار یزد باشم و کار دیگهای انجام ندم ولی هیچ خبری نبود یعنی یه سکوت خاصی شبیه سکوتی که سر کلاس جبر توی کلاس بود و نشون میداد هیچ کس هیچ کاری نمیکنه برقرار بود. از طرفی کاری هم از دستم بر نمیاومد. چند روزی که گذشت من VTK رو انتخاب کردم برای کار سه بعدی پروژه و از اونجایی که مشاور پروژه بودم کامپایلش کردم و سعی کردم مدل اصلی معدن رو که یک فایل obj بود نشون بدم و موفقیت آمیز هم بود. بعد از نشون دادن سه بعدی مدل معدن شور و شعفی در تیم به پا شد و محسن اومد پای کار که توی بخش سه بعدی کمک کنه و قرار شد حمید ظاهر گرافیکی کار رو بزنه و تحویل بده طبق طرح اولیه ای که کشیده بودیم. من هم نسخه کامپایل شده vtk رو فرستادم برای بچههای شرکت که بتونند روش کار بکنند و بعد فهمیدم مشکلی که هست اینه که نمیشه از VTK توی برنامه اندروید استفده کرد و باید یکبار دیگه با یه فلگ خاص کامپایلش کنم (البته الان گفتنش راحته تا من فهمیدم کلی دردسر کشیدم اون زمان). باز دوباره پروژه رو کامپایل کردم و فرستادم ولی مشکلاتی توی راه اندازیش داشتند و کمکشون کردم تا حلش کردند.
روز ها میگذشت و من مدام بیشتر از پیش نگران میشدم چون میدیدم خبری از حمید نیست و جواب درست درمونی هم بهم نمیده نگران ظاهر اصلی کار بودم و سعی میکردم هم زمان مشکلاتی که محسن با کار سه بعدی داشت رو هم حل کنم. و از طرفی قرار بود دیتای رادار رو که 25 هزار نقطه با 4 مشخصه بهمون میداد رو ذخیره کنیم در هر رفت و برگشت رادار و دیتابیس رو هم قرار بود مدیر شرکت بزنه که اون هم دست کمی از حمید نداشت و پای کار نمیاومد.
بعد چند وقت و پیگیری شدید بالاخره مدیر پای کار اومد و باهام تماس گرفت و گفت
- من یه بررسی کردم با ساختاری که شما گفتی برای ذخیره اطلاعات هر نقطه توی ستون خاص به نتیجه نمیرسیم چون محدودیت دیتابیسهای SQL داشتن 1000 تا ستون هست و پستگرس که بهترینشون هست تا 4000 تا ستون رو پشتیبانی میکنه.
اولش از نظر من این حرف چرت بود باورم نمیشد که همچین محدودیتی باشه تا این که مستندات دیتابیسها رو بررسی کردم و متوجه شدم اینطوری ساختار دادمون رو باید تغییر بدیم و کوئریهامون هم پیچیده تر و سنگین تر میشند. با یکم بررسی رسیدم به دیتابیسهای nosql و دم دست ترینشون برام mongob بود یه پیشنهاد اولیه دادم و مدیر شرکت که دید بازی در این موضوع داشت گفت
- اگر میبینی اون جواب هست بریم سراغ همون
ولی من خودم یه ترس ریز از کار کردن با چیزی که تابحا باهاش کار نکردم اونم توی پروژه واقعی داشتم. کلی بررسی کردم و از همه حرفهایهایی که بودند پرسیدم و همه گفتند استفاده از mongodb کار درستی نیست ولی هیچ کس حاضر نبود توضیح بده که چرا رفتم چت شخصی یکیشون ازش پرسیدم چرا این حرف رو میزنی ؟ گفت
- من تابحال ازش استفاده نکردم برای همین میگم.
البته بعدها منکر این موضوع شد و گفت من همچین حرفی نزدم برای همین هم اسمش رو نمیارم. ولی اون موقع برای من جواب خوبی بود.
اونجا بود که فهمیدم از جامعه کاربری که باهاش کار میکردم جلو زدم توی همین زمان بود که محسن زحمت دیتابیس رو با یه ساختار دیگه با 25 هزار داده کشید و متاسفانه فهمیدیم با استفاده ای که ما کرده بودیم چندین ثانیه ذخیره هر دیتا طول میکشید و میدونستم یه جای کار مشکل داره ولی نمیدونستم کجا سعی کردم یکم کوئریش رو بهینه کنم و راه حل های دیگه بدم ولی انگار این حجم از دیتا برای ذخیره در لحظه زیاد بود از طرفی راهی که برای استفاده از دیتابیس SQL داشتیم اصلا قشنگ نبود و نیاز به توسعه زیاد داشت تا دیتا رو توی چندین جدول پخش کنیم و کوئریهامون رو هم باید خیلی پیچیده میزدیم که بتونیم داده رو از چندین جدول بکشیم بیرون و از اون گذشته من نگران پرفورمنس بوددم چون قرار بود مثلا دیتای یک سال رو کوئری بزنیم و با این ساختاری که داشتیم پیش میاوردیم اصلی ترین مشکلمون با دیتابیس بود و ای چیزی نبود که من میخواستم چون حوزه کاری ما توی اون پروژه سه بعدی بود و قاعدتا انقدر مشکل توی کار سه بعدی داشتیم که نخوایم یه موضوع مشکل دار دیگه رو اضافه کنیم.
من بالاخره دلم رو زدم به دریا و نشستم یه تست با mongocxx نوشتم و نحوه راه اندازیش رو دادم به محسن که تست بزنه و جواب خیلی عجیب بود. محسن تاکید داشت زمان صفر هست برای ذخیره دیتا اول یه ذخیره دیتا شک کردیم و چکش کردیم متوجه شدیم که کاملا دیتا رو ذخیره کرده کلی گشتیم تا کد محسن رو دیدم که داشت زمان رو بر اساس ثانیه حساب میکرد و فهمیدم کوئری زیر ثانیه داره طول میکشه و باورش برامون سخت بود چون اگر اشتباه نکنم توی نسخه SQL ذخیره همین دیتا 4 دقیقه طول میکشید. خلاصه به ساختاری رسیدیم که تونستیم با هر دست و پا زدنی بود مشکل رو حل کنیم.
بعد یک ماه و خوردهای که از پروژه گذشته بود متوجه شدم کار طراحی رابط کاربری اصلا پیش نرفته و حمید دستمون رو گذاشته توی پوست گردو یه دعوای مفصل با مدیر شرکت کردم و گفتم اگر پروژه نرسه مشکل من نیست و اونم با حمید صحبت کرد و تازه فهمیدم حمید اول راه یادگیری هست. و کلی انرژی گذاشتیم تا سریع تر این مسیر رو طی کنه.
قسمت بعدی «کار با اتریش»