یکی از مهمترین مشکلاتی که در برنامه های کابردی تحت وب وجود داره ، خروجی ها و گزارشهای آن است . در حالت عادی وقتی شما یک گزارش رو به صورت HTML برای کاربر آماده می کنید ممکن است این صفحه برای دیدن در مرورگر مناسب باشد ، اما مشکل موقعی به وجود می آید که شما بخواهید آنرا بر روی چاپگر چاپ کنید و یا از آن در برنامه های دیگر استفاده کنید . راه حل خیلی خوب و منطقی برای ایجاد گزارشهای چاپی ، آماده کردن یک یا چند صفحه از نوع PDF برای کاربر است . در اکثر زبانهای برنامه نویسی تحت وب این امکان وجود دارد که شما در برنامه یک PDF فایل را ساخته و برای مشاهده کاربر آنرا ارسال کنید . به این معنی که این PDF از قبل وجود نداشته و در همان لحظه که کاربر آنرا درخواست می کند بنا به اطلاعاتی که درخواست کرده ، خود برنامه آنرا می سازد و ارسال می کند . خوبی PDF این است که برای چاپ دیگر هیچ مشکلی ندارد و به خوبی چاپ می شود و مثلا مشکلاتی از قبیل کوچک بزرگ شدن نوشته ها و یا از صفحه بیرون رفتن آنها که در خروجی های HTML وجود دارد در PDF وجود ندارد و شما از Font ها و امکانات بیشتری برای چاپ می توانید استفاده کنید .
به عنوان مثال در زبان PHP شما می توانید از PDFLib برای ساختن صفحات PDF بر اساس این راهنما استفاده کنید . اما از آنجا که این PDFLib یک برنامه مجانی نیست و نسخه Demo ی آن دارای تبلیغ بر روی صفحات PDF آن می باشد می توانید مثلا از این کلاس مجانی برای تولید PDF استفاده کنید .
البته با یک جستجو در SourceForge می توانید ابزارهای زیادی برای زبانهای مختلف برای تولید PDF پیدا کنید . مثلا اگر یک جستجو به دنبال کلمه PDF در SourceForge بکنید خواهید دید کلاسهای آماده بسیاری برای Java وجود دارند که این کار را انجام می دهند . برای .Net و خیلی زبانهای دیگر هم می توانید کلاسهای آماده پیدا کنید .
خوب بالاخره با تلاش و جدیت تحسین برانگیز مدیر سایت IranPHP نخستین نسخه پایدار وبلاگ فارسی توسط زبان برنامه نویسی PHP به صورت کد باز ( OpenSource ) ارائه شد . خبرش رو می تونید از اینجا ببینید و صفحه مربوط به پروژه و تصاویری از آن را در اینجا . در صورتیکه مایل به استفاده از این برنامه هستید آنرا از اینجا دریافت کنید و بر اساس ساختار پایگاه داده آن که در اینجا آمده آنرا نصب کنید .
از آنجایی که تا آنجا که من خبر دارم این پروژه اولین پروژه کد باز تیمی است که توسط فارسی زبانان بر روی اینترنت ایجاد شده است ، نکته ای که به نظر من در کنار پیشرفت روزافزون این نوع پروژه ها خیلی مهم است تبلیغ خوب و درست دوستداران این پروژه ها بر روی آن است . یعنی اگر کمی در رسانه های عامه پسند ( مانند وبلاگ های شخصی و دسته جمعی ، سایتهای فنی و کامپیوتری و ... ) در مورد این نوع پروژه ها توضیح داده شود و هدف و منظور این نوع پروژه ها مطرح گردد ، به نظر من طرفداران زیادی در بین برنامه نویسان و دوستداران برنامه نویسی در ایران پیدا خواهد کرد و در نهایت باعث به وجود آمدن پروژه های بیشتر و کاملتر از این دست به زبانهای مختلف و در زمینه های مختلف توسط ایرانیان و فارسی زبانان خواهد شد . دوست دارم نظر دیگران رو چه در اینجا و چه در وبلاگ خودتون با فرستادن لینک برایم در این مورد بدانم .
اینکه چطوری میشه یک سایت رو به موتور های جستجو معرفی کرد که وقتی کلمه ای مرتبط با موضوع یا محتوای اون سایت در این موتور های جستجو ، جستجو می کنید سایت شما هم بیاید ، سئوالی است که از خیلی وقت پیش همیشه برای سایت داران مطرح بوده و تا خیلی وقت دیگه هم مطرح خواهد بود :)
وبلاگ سرگردون یه مطلب مفصل در مورد نحوه کار و بروز رسانی این موتور های جستجو تهیه کرده که خیلی بدرد می خوره ! یعنی اصولا همیشه نباید اینطوری فکر کنید که باید برید و خودتون رو به یک موتور جستجو معرفی کنید تا از اون به بعد در لیست های آنها بیایید . اتفاقا راه مشکل همین است که شما این نوع فرمها را برای این موتورهای جستجو پر کنید و بعدا با بررسی تقاضای شما آنها هم اقدام به اضافه کردن اسم شما به لیست های خودشان کنند . چراکه در اینصورت باید اطلاعاتی که شما دادید با اطلاعات سایت شما تطابق داده شود و در دسته های مربوطه قرار گیرد و تا اونجایی که من اطلاع دارم در بعضی از موتور های جستجو اینکار ، کار اپراتوری هم دارد . این در حالی هست که همه موتور های جستجو توسط الگوریتم های مختلف که در همین مطلب مورد اشاره توضیح داده شده ، دنبال به روز کردن لیست های خود هستند . پس بهترین کار این است که شما از این الگوریتم ها سر در بیارید و کاری کنید که شما هم حاصل جواب این الگوریتم ها باشید تا به راحتی در لیست های موتور های جستجو قرار بگیرید .
کاش بر نمی گشتم . هنوز بر نگشته یکی از دوستای قدیمی و خوبم رفت ! خیلی هم مظلومانه و بی سر و صدا رفت . یه مقدار حالم گرفتس ! گفتم بگم و برم .
حامد جان یادت جاویدان است ...
خوب برگشتم . با اینکه ایندفعه سفرم یکم طولانی تر بود اما چند تا پست از اونجا نوشتم ! گویی که نمی نوشتم بهتر بود چون یه نگاه به تقویم از اول ماه تا حالا نشون دهنده رفع تکلیف کردنم بوده . سعی می کنم فرصت باقیمانده تا آخر ماه رو بیشتر بنویسم . فعلا خیلی خستم ! گفتم اینو بگم که بعدا اگه به آرشیو مراجعه کردن بدونم کی از سفر برگشتم :)
گويا اين همايش لينوکس در دانشگاه تهران به همت دوستاني از LinuxIran و ... برگزار شده . JraNil در اينجا يه گزارش مختصري در مورد برنامه ها و کيفيت برگزاري اين مراسم نوشته و يک سري عکس هم اينجا گذاشته . از عکسها به نظر مياد که خيلي خلوت هم نبوده و اين مايه خوشحالي هستش که اين مقدار آدم به يادگيري نصب و اطلاع داشتن در مورد اين سيستم عامل اهميت ميدن . به هر حال با اينکه خيلي از اونجا دورم و همين دليل بر شرکت نکردنم در اين مراسم بودش ، اما اميدوارم اين نوع کارها با مديريت خوب ادامه پيدا کنه . به هر حال بايد از يه جايي شروع بشه ديگه .
الان حدود 8 ساعتي ميشه که بزرگترين سرويس دهنده اينترنت در نروژ کلا قطعه ! قطعيشون در اين حده که حتي BGP هاشون هم کار نمي کنه و مثلا شما taide.net رو ping هم بکنيد unreachable مي ده . اين در حالي هستش که اينا به چندين backbone پرسرعت اروپايي و آمريکايي وصلند . علت رو که ازشون جويا شديم يه دليلي شبيه به دلايل شرکت مخابرات خودمون آوردن !
مي گن يه آقا دزده اومده از يه پمپ بنزين دزدي کنه ، بعد قبل از اينکه کارش رو شروع کنه رفته تمام کابلهايي که به سمت اون پمپ بنزين ميرفته رو قطع کرده و حالا اين فيبرنوري هم از Teleport به سمت جاهاي مختلف مي رفته هم از اونجا مي رفته و خلاصه اونم قطع شده . مشکل هم اينجاس که اونجا الان 1 شنبه هست که روز تعطيلشونه و اون آدمايي که بايد اين فيبر رو تعمير کنند در دسترس نيستند !!!
البته با اينکه اين اولين بار هستش که من از يک سرويس دهنده خارجي يک همچين دليل عجيب غريبي رو مي شنوم ، اما به نظر مياد مشکلشون خيلي اساسي هستش چون سايت خود شرکت مخابرات نروژ (telenor) هم نمياد . اين telenor در حقيقت همان سرويس دهنده اصلي نروژ است که ميشه شبيه شرکت مخابرات خود ما ، با اين تفاوت که اونا تا حالا همچين قطعي نداشتند و خيلي هم آدم هاي دقيقي هستند و تازه 10 برابر مخابرات ما هم به اينور اونور دنيا لينک مي فروشند .
بنابراين بهترين راه حل در اين موارد اينه که شما اينجا لينک backup داشته باشيد و IP هاي خودتون رو خودتون BGP کنيد که در صورت قطعي به اينجا نرسيد که unreachable بشيد :)
به اين نتيجه رسيدم که مشکل اينترنت در ايران کمبود Bandwidth نيست . در حقيقت اين کندي و يکم کاربر ناپسند بودنش زياد بودن Delay هستش . حالا منظور از delay يا تاخير چيه ؟
تاخير همان زماني است که شما بايد منتظر بمانيد تا درخواست شما براي سرور ميزبان درخواست شما ارسال شود و جواب آن سرور به شما برسد . اين فاصله زماني را تاخير يا همان delay مي گويند .
حالا در ايران به دليل اينکه اکثرا لينکهايي که به کاربران اينترنت سرويس دهي مي کنند از طريق ماهواره و کانالهاي ماهواره با سرويس دهنده اينترنت خارجي در ارتباط هستند ، همين ارتباط ماهواره اي باعث مي شود که حدود 500 ميلي ثانيه فقط طول بکشد که يک packet از اين مسير عبور کند و جواب آن برگردد . اين همان زماني است که کاربر احساس مي کند با اينترنت کندي دارد کار مي کند ! اين در حالي است که اصلا ارتباطي با کندي ارتباط ندارد . چون از نظر سرعت هيچ مشکلي وجود ندارد و همه مشکل مربوط به همين تاخير است . براي اينکه اين را متوجه بشويد شروع به ديدن صفحه هاي مختلف کنيد و مي بينيد به ازاي هر کليک شما يه مقداري زمان ميگيرد تا صفحه بيايد . اما وقتي که شروع به آمدن مي کند تند مي آيد ! يا مثلا download خيلي سريع مي آيد . اين دليلش همان delay است .
حالا مخابرات ايران با اتصال از طريق فيبرهاي نوري به اينترنت تا حد زيادي مي تواند اين مشکل را حل کند . چون لينکهاي فيبر نوري ديگر اين مشکل را ندارند و تاخير آنها از لينکهاي ماهواره به مراتب کمتر است . اما مشکل اين است که همه پهناي باند کابران ايراني را گويا نمي توانند در حال حاضر از طريق اين ارتباط فيبر نوري تامين کنند . اميدوارم که در آينده همه کاربران بتوانند از ارتباطهاي با تاخير کمتر که مطمئنا قيمت کمتري هم خواهند داشت (چون کانالهاي ماهواره اي هزينه زيادي دارند ) استفاده کنند .
خوب گفته بودم که ایندفه می تونم از مسافرت بنویسم ! راست گفتم اما فعلا مشکل فارسی نوشتن دارم . اینحا مشکل فارسی نوشتن دارم و خیلی سخته برام فارسی نوشتن . البته اگه کامپیوتر خودم راه بیفه فکر کنم که این مشکل حل میشه .
اجالتا خواستم سلامی کرده باشم و بگم که حال من خوبه و در اولین فرصت بیشتر خواهم نوشت . در ضمن برای اینکه نویسنده این کرم Sobig خیلی حال در نکنه برید و از SpamAssassin استفاده کنید که هم کار درسته و هم خوب محانیه .
چند وقت پیش گفتم یه کرم جدیدی اومده که Send رو به طور چشمگیری اضافه می کنه و برای راه حلش کل ICMP رو گفتم ببندید تا بعدا راه بهتری پیدا کنم . آقای فرخی در وبلاگشون راه بهتر رو برای Cisco پیدا کردن که می تونید از اینجا ببینید .
اما راهش رو برای Linux نگفتند که من بر اساس کاری که برای Cisco کردن ، Linux ش رو می گم :
ببینید همه اون کارایی که گفتن رو می تونید با یک Rule از Iptables در Linux انجام بدید . البته دقت کنید که نسخه Netfilter شما 1.2.7 به بعد باشه تا این Rule روش کار کنه :
iptables -A FORWARD -p icmp --icmp-type echo-request -m length --length 92:92 -j DROP
با این کار همه آن کارهایی که در Cisco نوشته اند را انجام خواهید داد !! حالا باز بگید Cisco از Netfilter در Linux بهتره :)