از وقتی سیستم جدیدمو گرفته بودم به پیشنهاد بهنام اوبونتو ۸.۰۱ را نصب کردم ولی چون خیلی زیاد با سیستم کار نکرده بودم زیاد وقت نکردم باهاش سر و کله بزنم.
تا اینکه از وقتی که روی پروژه جدید کار می کنیم همه بخش سرورمون رو لینوکسی کردیم و اشکان هم برای برنامه نویسی از اوبونتو استفاده می کنه.
توی این پروژه اکثر ابزارهایی که استفاده می کنیم اپن سورسن ولی من نمی دونم چرا تا الآن که چیزی حدود ۲ ماه از شروع پروژه میگذره روی ویندوز داشتم برنامه نویسی می کردم!
دیشب اشکان و بهنام پیش من بودن و یه اوبونتو ۹.۰۴ نصب کردیم و تشویقم کردن که سوییچ کنم اینجا.
دیشب روی اوبونتوم Compiz ریختم و کلی باهاش بازی کردم و حال کردم.
الآن هم در حال نصب جاوا هستم ،چقدر خوبه که از ریپوزیتوری اوبونتو دانلود میکنه و نیازی به وصل شدن به سرور سان نیستش(آخه سان ایران رو تحریم کرده و اجازه دانلود جاوا به ایرانی ها نمیده هر دفعه مجبور بودیم کلی پ-راکسی ست کنیم برای ورود به سایت سان و دانلود جاوا).
نشستم Addons های مورد نیازم برای فایرفاکسم نصب کردم.
کارهایی که باید بکنم ایناس:
نصب PHP , MYSQL, Java, eclipse , subclipse , Tomcat Apache , Hudson
از اینکه دارم کارامو با لینوکس می کنم خیلی حس خوبی دارم.
اگه اتفاق جالبی افتاد یا تجربه جالبی داشتم حتما مینویسم.
( این مطلبو نوشتم تا طنبلی رو کنار بزارم و روی لینوکس بمونم )
مهاجرت به اوبونتو
پریانا سایت برتر جشنواره وبنا شد!

هیات داوران دومین جشنواره آنلاین وب سایت های ایران رای نهایی خود را در خصوص سایت های برتر اعلام کرد.
هیات داوران دومین جشنواره آنلاین وب سایت های ایران، مجلیه اینترنتی پریانا www.pariyana.com را به دلیل نوآوری در موضوع و راه اندازی اولین مجله اینترنتی در حوزه اینترنت، و همچنین طراحی کاربرپسند و ارائه نسخه PDF در گروه نشریات آنلاین شایسته ی دریافت رتبه نخست دانست.
برای من افتخاری است که به عنوان همکار با مجله اینترنتی پریانا فعالیت داشتم.
از زحمات همه دوستان تشکر می کنم.
به امید موفقیت بیشتر همه فعالان وب فارسی
پیاده سازی کامیت ( comet ) با استفاده از Google Web Toolkit
این دو جزو تکنولوژی های نو در اینترنت هستند:
- Google Web Toolkit
- Comet
با استفاده از GWT شما می توانید اپلیکیشن های جاوا اسکریپت با استفاده از از جاوا بنویسید،که دارای پشتیبانی قوی از سیستم مدیریت رخدادها و موتور رندر گیری که باعث ایجاد محیط وب زنده ای می شود.
البته برای استفاده از این تکنولوژی باید سروری داشته باشید که به شما اجازه اجرا کردن Servlet ها رو بدهد.که در صورتی که در وبسایت خود از زبان دیگری به جز جاوا برای پیاده سازی سایت خود استفاده می کنید ، بهترین گزینه برای استفاده از این تکنولوژی استفاده از کامیت Off-board می باشد که در مقالات قبلی راجع به آن توضیح اندکی داده شد.
در واقع قسمتی از GWT به پیاده سازی تکنولوژی کامیت می پردازد که همین باعث شد که من دنبال کسب اطلاعات راجع به این ابزار قدرت مند گوگل برم.
Luca Masini در وبلاگ خود مثال جالبی از پیاده سازی GWT و Comet میزند که در صورتی که علاقه مند هستید می تونید از این مقاله برای شروع استفاده کنید.در این مقاله یک اپلیکیشن چت نوشته شده است.
لینک این مقاله : A Comet implementation for Google Web
Bayeux چیست؟
Bayeux چیست؟
پروتوکلی است بر روی HTTP برای جابجایی پیغام های asynchronous ( نا هماهنگ ) با زمان عکس العمل کم. ( سرعت بالا و ترافیک کم ).پیغام ها از طریق کانال های نامگذاری شده مسیریابی می شوند و می توانند از سرور به کلاینت ، کلاینت به سرور و کلاینت به کلاینت ( از طریق سرور ) منتقل شوند.
هدف اصلی این پروتوکل پیاده سازی تراکنش سریع کاربر از طریق وب با استفاده از آژاکس و تکنولوژی Server- Push که Comet نامیده می شود ، است.
Bayeux به دنبال کاهش پیچیدگی های توسعه اپلیکیشن های کامیتی(Comet-driven) برای برنامه نویسان است.
این پروتوکل باعث شده تا مشکلات مسیریابی پیغام ها و هماهنگی با سایر قسمت ها به سادگی حل شده و باعث ایجاد مکانیسم پیشرفت و بسط دادن سیستم می شود.
پیغام های Bayeux برای سادگی در خواندن و اجرا شدن به زبان JSON نوشته می شود.
این پروتوکل برای اولین بار از طرف بنیاد DOJO جزو سردمداران تکنولوژی آژاکس مطرح شد.از این پروتوکل در فریم ورک های مختلف مثل CometD به کار رفته است.از جمله فعالان در این پروژه می توان به Alex Russell جزو فعالان و بوجود آورندگان آژاکس و کامیت اشاره کرد.
برای خواندن این پروتکل از این لینک استفاده کنید.
*نکته: خواندن کلمه Bayeux به صورت آوایی بین بایا و بایو است و x آخر آن تلفظ نمی شود.
مقایسه کامیت On-Board و Off-Board
![]()
تعاریف:
Off-Board Comet : به حالتی گویند که سرور های ارائه دهنده کامیت و سرور ارائه دهند سایر داده ها از یکدیگر جدا شوند.
On-Board Comet : به حالتی گویند که همان سروری که داده ها را ارائه می دهد ، کامیت را هم ارائه دهد.
چه تفاوتی دارند؟
بیش از چیزی که شما فکر کنید.به خاطر جدا شدن منابع، تاثیر زیادی روی سیستم می گذارد.به صورت کلی بسته به معماری شما دارد.
مزایای Off-Board Comet:
- باعث بهبود قطعی های سیستم می شود ( قطعی ها کمتر می شود).
- هماهنگی بهتر با سیستم های چند زبانه.
- توسعه و تغییرات راحت تر است.
مزایای On-Board Comet :
- راه اندازی ساده و آسان.
- مدیریت ساده در صورت استفاده از داده های نرمال.
- توسعه و برنامه نویسی سیستم بسیار ساده تر و راحت تر انجام می شود.
از چه FrameWork هایی برای پیاده سازیOff-Board یا On-Board استفاده کنم؟
Cometd, Lightstreamer, Caplin Liberator و Orbited مثال های از فریم ورک ها برای پیاده سازی Off-Board Comet هستند.
DWR و وب سرور هایی که به صورت داخلی از کامیت پشتیبانی می کنند مانند, Grizzy Jetty و TomCat مثال هایی از پیاده سازی On-board Comet هستند.
به طور کلی در پروژه های بزرگ از فرم ورک ها و معماری Off-Board استفاده کنید و برای پروژه های کوچک از On-Board.
چگونه انتخاب کنیم؟
چند فاکتور که به شما استفاده از Off-board را نشان می دهد به شرح زیر است :
- شما به دنبال توسعه سیستم هایی در مقیاس Google یا FaceBook هستید.
- شما از زبان های برنامه نویسی مثل PHP استفاده می کنید که به صورت کامل Comet را پشتیبانی نمی کنند.
- شما سیستم بزرگ فعالی دارید که کاری که کامیت می کند با کاری که کل سیستم می کند متفاوت است.
چند فاکتور که به شما استفاده از On-board را نشان می دهد به شرح زیر است :
- احتیاجات کامیتی شما با فعالیت اصلی سیستم شما در یک راستا است.
- شما به دنبال حل مسائل ساده و کارایی های کوچکی هستید.
- شما کامیت را بدون ایجاد تغییرات زیادی در سرور می خواهید.
جاوا اوج آرزوهای یک برنامه نویس
توی یکی دو سال اخیر چندین بار تلاش کرده بودم جاوا یاد بگیرم ولی همیشه به نظرم سخت می اومد و یاد گرفتن مفاهیم آن برام خیلی سخت شده بود،تا این دفعه آخر که با تشویق دوستم آرش ، خودمو مجبور کردم بشینم جاوا یاد بگیرم.
بعد از اینکه با جاوا آشنا شدم دید جدیدی نسبت به تولید نرم افزار پیدا کردم.
به همه پیشنهاد می کنم در حال یاد گرفتن هر زبانی هستند دست نگه دارند و جاوا یاد بگیرند.
جاوا دنیای زیبایی دارد و برنامه نویسی با آن لذت زیادی به برنامه نویس می دهد.
تکنولوژی کامیت
نکته : این مقاله رو برای پروژه کلاب نوشتم که متاسفانه پروژه مسکوت ماند. در حال حاضر کامیت پیشرفت زیادی کرده و من فعالیت خودم در مورد تحقیق راجع به این تکنولوژی شروع کردم.این مقاله رو دوباره برای آشنایی این جا می گذارم.
کامیت یک تکنولوژی تحت وب است که در آن وب سرور ، اطلاعات را به صورت نا متقارن به سمت کلاینت ( معمولاّ مرورگر وب ) می فرستد بدون آنکه کلاینت صریحاً درخواستی کرده باشد.کامیت به شما این امکان را می دهد که بر اساس رخداد ها عمل کنید ، به صورت زنده با مرورگر تراکنش داشته باشید که در حالت های دیگر ( سایر معماری ها ) امکان پذیر نیست.
واژه کامیت از سال 2006 مطرح شد ولی از سال ها قبل تحت نام های Server push, HTTP push, HTTP Streaming, Pushlets, Reverse Ajax و…. به کار می رفته است.اپلیکیشن های کامیت ارتباط های طولانی مدت HTTP بین وب سرور و کلاینت دارند (Long-Lived) که به سرور اجازه میدهد با وقفه به درخواست ها پاسخ دهد ، و هر موقع اطلاعات جدیدی بوجود آمد آن ها را به سمت کلاینت Push کنند.این مغایر با تعریفی که از ابتدا در مورد وب شده است می باشد که در آن مرورگر صفحه ی کامل وبی را در قبال فرستادن درخواست می گیرد.همچنین با مدلی که از آژاکس نیز ارائه شده است هم متغایر است که در آن مرور گر با درخواست خود قطعه ای از اطلاعات را برای بروز رسانی صفحه ی کنونی به کار می برد.اثری که کامیت می گذارد بسیار شبیه اپلیکیشن هایی است که به طور سنتی از آژاکس به همراه Polling برای چک کردن وجود اطاعات جدید و بروز رسانی صفحه استفاده میکنند.
ولی عملکرد بسیار بهینه شده و تاخیر و Server load بسیار کم شده است.اپلیکیشن های وب همیشه به خاطر وجود محدودیت های دسترسی به منابع محلی و شبکه ای و همچنین محدودیت هایی که برنامه های درون مرورگری نسبت به اپلیکیشن های دسکتاپ کم توانا تر و کم انعطاف پذیر تر بودند،با پیشرفت مرورگر ها بسیاری از این محدودیت ها برداشته شد و همین باعث بوجود آمدن اپلیکیشن های توانای اینترنت شد.(Rich Internet Applications ) و اپلیکیشن های وب به اپلیکیشن های دسکتاپ شبیه تر و شبیه تر شدند.
یکی از این مشکلات آن بود که هر قطعه ای از اطلاعات که از سمت سرور به سمت کاربر می رفت باید از طرف کاربر صراحتاّ درخواست می شد. که این مشکل با بوجود آمدن کامیت برداشته شد.کامیت به سرور اجازه می داد به صورت زنده به رخ داد ها پاسخ دهد مانند به روز شدن منابع اطلاعات یا تغییر در آن ( شما شاهد تغییر آنی آن خواهید بود ) یا فرستادن پیغامی از طرف کاربر.کامیت بهترین راه حل برای حل این محدودیت می باشد.
فرض کنید شما نشستید و آخرین تغییرات قیمت طلا را مشاهده می کنید برای اینکه قیمت جدید را ببینید احتیاجی نیست از جاوا ، فلش یا … استفاده کنید. شما با کامیت فقط احتیاج به یک مرورگر دارید.به محض تغییر در سرور در مرورگر شما اطلاعات بروز می شوند بدون اینکه از شما درخواستی برای بروز شدن فرستاده شده باشد.
مثال هایی از کامیت
این مثال ها مربوط به Light Streamer نام فریم ورکی تجاری برای Comet و Ajax می باشد.
توجه داشته باشید که در آن واحد فقط یک اپلیکیشن را باز کنید و چند تا با هم باز نکنید.
برای سرعت بیشتر از مرورگر فایر فاکس استفاده کنید.1- نمودار زنده :
http://app.lightstreamer.com/ChartDemo/
2- لیست زنده قیمت های بازار بورس :
http://app.lightstreamer.com/StockLi…x.html?fade=ON
Rss خوان زنده :
http://app.lightstreamer.com/RSSDemo
مونیتوریگ زنده سرور ( برای پهنای باند ، رم ، CPU …)
http://app.lightstreamer.com/MonitorConsole/
اندازه گیری از راه دور مسابقات فرمول 1 :
http://app.lightstreamer.com/WebTelemetryDemo/
*نکته : طرز تلفظ درست Comet ،کامیت می باشد و نه کامت ، در تالار های گفتگوی فارسی دیدم که به اشتباه از کامت استفاده می کنند.
Varags in PHP
سوال : PHP دارای Varags :variable- lenght Arguments می باشد یا باید با آرایه پیاده سازی شود؟
جواب : بله : http://ir.php.net/func_get_arg
مثال :
function my_sprintf($format, $arg1) {
$args = func_get_args();
return call_user_func_array(’sprintf’, $args);
}
پی نوشت: این سوال در اثر خواندن کتاب جاوا به ذهنم رسید.
ممنون از سیاوش

