آشنايی با زبان RSS و نحوه دريافت و مشاهده فايلهای آن در رايانه شخصی

آشنايی با زبان RSS و نحوه دريافت و مشاهده فايلهای آن در رايانه شخصی
شايد بتوان به جرات گفت که يکی از فرزندان خلف استاندارد XML، زبان RSS می باشد. RSS مخفف کلمات Really Simple Syndication بوده و در حال حاضر يکی از پرطرفدارترين زبان ها در بين طراحان و برنامه نويسان تحت وب می باشد. بسيار علاقه مند هستم که آموزش هايی را در رابطه با استاندارد XML به زبان ساده شروع نمايم و در رابطه با زبان RSS و نحوه ايجاد و بکارگيری آن در سايت ها، مقالاتی را به رشته تحرير درآورم، ولی چون فی المجلس تمايل دارم که به صورت يک حمله گازنبری! برای خوانندگان علاقه مند نحوه دريافت و مشاهده فايلهای RSS را بر روی رايانه شخصی، عنوان نمايم، اقدام به نوشتن اين مقاله کردم.

RSS به زبان ساده:

RSS يک زبان مبتنی بر استاندارد XML می باشد. اين زبان نيز مانند تمامی زبانهای Markup Language دارای استانداردهای نگارشی مشخصی می باشد که به مرور زمان از نسخه های قديمی به آخرين نسخه قابل اعتماد، يعنی نسخه 2.0 متحول شده است. در سالهايی نه چندان دور، يکی از مشکلات اساسی طراحان و برنامه نويسان صفحات وب، عدم وجود استانداردهايی برای استفاده از محتوای طبقه بندی شده ديگر سايتها و درج آنها در سايت های مربوطه بوده است. پس از بکارگيری اين زبان در سايتهای مختلف و فراگير شدن آن، به مرور زمان اکثر سايتها مطالب خود را به صورت طبقه بندی شده، نه تنها در داخل سايت خود، بلکه به صورت فايل هايی با استاندارد XML برای استفاده مجدد آنها در ديگر سايت ها، در دسترس عموم قرار می دادند. اين مساله نه تنها از دوباره کاری مسوولين سايتها در زمينه جمع آوری و ورود اطلاعات اجتناب می کرد، بلکه برای بالا بردن Rank سايتها در Search Engine ها نيز بسيار مناسب بود. برای اثبات اين ادعا در صورتی که برای مدت کوتاهی در سايتهای مختلف ايرانی و خارجی گشت و گذار نماييد، با تصاوير کوچکی مانند ، مواجه خواهيد شد، اين تصاوير در واقع لينک هايی به همان فايلهای RSS می باشند. در صورتی که بر روی آنها Click نماييد، يک متن که با استاندارد XML نوشته شده است را مشاهده خواهيد نمود. دقت کنيد که اين فايل و محتوای آن، چندان برای کاربرانی چون شما که هميشه به دنبال زيبايی و خوانايی صفحات می باشيد، باب طبع نخواهد بود!، ولی برای ديگر سايت ها، برای استفاده مجدد از محتوای موجود در آنها، بسيار حائز اهميت می باشد.

با گذشت زمان، علاقه کاربران خانگی نيز به محتوای طبقه بندی شده اين سايت ها افزايش يافت و نياز به برنامه هايی که بتوانند به طور خودکار به اين سايت ها متصل شده و اين فايلها را بر روی رايانه شخصی منتقل نمايند، بوجود آمد. اين برنامه ها متن اينگونه فايل ها را خوانده (Parse) و به شکلی مناسب برای خواننده قابل مشاهده می نمايند.

به عنوان نمونه، آدرس دو سايت را برای شما ذکر می کنم که می توانيد برنامه های مربوطه را به طور کاملا رايگان! دريافت کرده و بر روی رايانه شخصی خود نصب نماييد. لازم به ذکر است که در آدرس اول، سورس برنامه مربوطه نيز به زبان Net. قابل بارگزاری (Download) می باشد:

http://www.RssBandit.org
http://www.RssReader.com



در انتها برای عزيزانی که علاقه مند مطالعه در زمينه استاندارد (زبان) RSS بوده و تمايل دارند که آشنايی بيشتری با تاريخچه و آخرين استانداردهای اين زبان پيدا کنند، آدرس هايی را در ذيل مطلب تقديم می نمايم:

http://blogs.law.harvard.edu/tech/rss
http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html
http://www.webreference.com/authoring/languages/xml/rss/intro




نويسنده : داريوش تصديقی

نبرد بعدی تکنولوژی

نبرد بعدی تکنولوژی
ماههای اخیر اصرار شرکت های بزرگ جستجوی اینترنتی به منظور یافتن آنچه کاربران به محض روشن کردن گوشی تلفن خود مشاهده می کنند، باعث سرعت بخشی فعالیت های شرکت های گوگل، یاهو و مایکروسافت در این زمینه شده است. این شرکت ها با تامین کنندگان سرویس های اینترنت و دیگر دست اندرکاران صنعت موبایل آغاز به همکاری کرده اند تا راه جدیدی برای ارائه خدمات و کسب درآمد پیدا کنند.


Nokia 770 Internet

در واقع این غول های تکنولوژی در پی آنند که موتورهای جستجو و آرم های شرکتشان بر روی صفحات گوشی های موبایل ظاهر شوند، بعلاوه کاربران این امکان را داشته باشند که ازطریق تلفن های همراه - مانند کامپیوترها - بتوانند از سرویس های دیگر این شرکت ها از قبیل دانلود کردن نقشه ها و فرستادن ایمیل یا پیام های فوری، استفاده کنند.

این شرکت ها معتقدند هر چند در حال حاضر تنها تعداد اندکی از مردم از تلفن موبایل برای جستجوی اطلاعات آنلاین استفاده می کنند، اما با پیشرفت نحوه عملکرد موتورهای جستجو در این زمینه، جستجو با موبایل در اینترنت برای کاربران جذاب تر شده و رواج می یابد.

جبهه جدید نبرد مایکروسافت و گوگل
استیو بالمر مدیر اجرایی مایکروسافت در این باره می گوید: "نبردی که بین شرکت ما و گوگل برای روش های جستجوی اینترنتی در گرفته ، مطمئنا در آینده به تلفن های همراه کشیده خواهد شد."

آنچه مسلم است موفقیت جستجوهای تلفنی می تواند سهم بازار سرویس های اینترنتی که از طریق کامپیوتر مورد استفاده قرار می گیرند را کاهش دهد.

در حال حاضر، مجموعه ای از این سرویس ها در Yahoo Go Mobile بر روی تلفن ها نصب شده و به فروش می رسد. گوگل نیز قراردادی با Vodafone Group - بزرگترین شرکت سرویس دهنده تلفن های همراه – امضا کرده که طی آن Vodafone یک لینک گوگل را بر روی صفحه نمایش تلفن ها قرار دهد.

Deutsche Telekom نیز در سرویس تلفن های همراه خود ترتیبی داده که اولین چیزی که کاربران به محض روشن کردن تلفن همراه خود مشاهده می کنند، یک لینک به گوگل باشد.

امکان جستجوی اینترنتی تنها یکی از مواردی است که شرکت های فوق تصمیم به انتقال آن به تلفن های همراه دارند، برای مثال گوگل اخیرا یک نسخه بتا از نقشه های موجود در سایت، که ترکیبی از نقشه، جهت ها و تصاویر ماهواره ای است را برای نصب در تلفن های همراه عرضه کرده است. مایکروسافت نیز تلاش هایش را شدت بخشیده و در حال راه اندازی شرکت کوچکی است که تنها بر سرویس های جستجوهای تلفنی متمرکز شود.

چندین سال است که شرکت های اینترنتی و ارائه دهندگان خدمات موبایل، امکانات چستجوی تلفنی را در حد ابتدایی در اختیار کاربران قرار داده اند، کاربری که از این جستجو استفاده می کند، تنها تعداد محدودی از صفحات وب را به فرمتی که برای صفحات نمایش موبایل ها مناسب است، به عنوان نتیجه جستجو مشاهده می کند. اما با رواج ارتباطات بی سیم اینترنتی و بالا رفتن سرعت آنها و نیز بزرگتر و رنگی شدن صفحات نمایش گوشی های موبایل، امکانات بیشتری در اختیار کاربران قرار خواهد گرفت.

گسترش اطلاعات اینترنتی قابل مشاهده روی موبایل
توسعه و گسترش صنعت نرم افزار نیز عامل موثری برای آسان شدن تبدیل صفحات اینترنت به فرمتی قابل ارائه بر روی گوشی های تلفن است، به طور مثال می توان از تصاویر بزرگ و منوها صرفنظر کرد و فقط بر روی متن تاکید کرد. در عین حال شرکت ها وب سایت هایشان یا حداقل قسمتهایی را بصورت جداگانه مخصوص موبایلها بصورت mobile-friendly طوری طراحی می کنند.

گوگل که در حال حاضر در کشور آمریکا هیچگونه تبلیغی روی جستجوهای موبایل ندارد، طرحی برای تبلیغات روی صفحه نمایش گوشی های موبایل درکشور ژاپن دارد، هنگامی که کاربران ژاپنی از طریق تلفن خود وارد سایت گوگل شوند، آگهی های تبلیغاتی به صورت متن، در بالا و پایین صفحات ظاهرمی شود و کاربران با کلیک بر روی آگهی مربوطه می توانند به سایت آگهی دهندگان دسترسی یابند.


online.wsj.com

10 تا از بدترين محصولات ‌ تاريخ كامپيوتر

10 تا از بدترين محصولات ‌ تاريخ كامپيوتر

هميشه رسم بر اين بوده است كه بهترين محصولات را به صورت درجه‌بندي شده در گروه‌هاي ده‌تايي و يا بيست‌تايي و يا ... طبقه‌بندي كرده و براي كاربران مشتاق ارائه مي‌كردند اما ما تصميم به شكستن اين سنت گرفته و ليست ده عدد از بدترين‌ محصولات دنيای انفورماتيك را براي شما تهيه كرده‌ايم .ناموفقيتهاي بسياري در جهان كامپيوتر وجود داشته و دارد كه هر كدام جايگاه خاص خود را دارند اما ده مورد گزيده شده جزو بدترين آنها مي‌باشند.
اين محصولات هنوز هم در بازار موجود مي باشند كه اين خود يكي از اصلي‌ترين سياستهاي سيستم سرمايه‌گذاري مي‌‌باشد به اين طريق كه اشتباهات و نقصهاي محصول را پنهان كرده و آن را بي‌نقص معرفی مي‌كنند و كسي قادر به متوف كردن اين سياست نيست. و اما ليست طلايي 10 تا از بدترين محصولا كامپيوتر:
1-‌Microsoft Bob اين محصول در ابتدا فكر خوبي به نظر مي‌رسيد.Bob در حالتي متولد شد كه يكي از محصولات مايكروسافت براي اصلاح program manager ويندوز 1/3 در نظر گرفته شده بود که اين طرح به هيچ وجه موفق نبوده است. شايد Bob عموما نرم‌افزار بدي نبوده است ولي هرگز فردي كمبود اين نرم‌افزار را احساس نكرده و شكايتي بابت نبود اين نرم‌افزار نداشته است. اين پروژه به وسيله مليندا فرنچ طراحي شده بود كه بعد از اين نرم‌افزار محصول ديگري از طريق وي براي مايكروسافت طراحي نشده است.
2-“cue cat" اين نرم‌افزار در ابتدا بسيار نرم‌افزار جالبي به نظر مي‌رسيد همچنين بايد ذكر كرد كه در حال حاضر هم در برخي از كتابخانه‌ها از اين نرم‌افزار استفاده مي‌شود. اما يكي از بزرگترين مشكلات اين نرم‌افزار به اين صورت است كه در زمان پرينت شما قادر به بزرگ كردن شكل نمي‌باشيد. به سختي پيش مي‌ايد كه فردي از كد‌هاي خاص استفاده كند و همچنين به سختي اتفاق مي‌افتد كه نشريه‌ايي cue cat به به عنوان نرم ‌افزار مورد نظر خود برگزيند.
3-DigiScent iSmell
در روزهايي كه dot-com غوغا به پا كرد Scent تهديد به مسلط شدن برد كل اينترنت كرده بود.
تصور كنيد كه شما فقط مورد تجاوز فايلهاي مهيب MIDI و pop-up نيستيد همچنين سبك و شيوه وب نيز شما را آزار خواهد داد. اگر شما آشنايي كامل با وب داشته باشيد درخواهيد يافت كه اين پروژه نمود خطرناكي براي وب مي‌باشد.
اين موضوع قابليت توضيح علت بيزاري و مخالفت كاربران با اين نرم‌افزار را براي كامپيوترهاي خانگي داراست.
به علاوه كاربران ismall را به عنوان لغزش و اشتباه بازار به حساب مي‌آورند.
4- “packet Mail" اين محصول كه درليست ما جايگاه چهارم را به خود اختصاص داده است هنوز هم خواهاني را در سطح جهان دارا مي‌باشد. اين نرم‌افزار به شما اجازه مي‌دهد تا e-mail خود را به هر نقطه‌اي از جهان ارسال كنيد، شما فقط e-mail خود را آماده كرده سپس آن را به تلفن ارسال مي‌كنید و e-mail خود را به وسيله تكنولوژي space-age ارسال و دريافت مي‌كنيد و يا مي‌توانيد فقط از wifi يا كافي‌نت‌ها براي اين كار استفاده كنيد.
1- “Furby" هنگام تهيه اين ليست‌ها متوجه اين نرم‌افزار نيز شديم البته سخن ما با نسخه قبلي اين محصول مي‌باشد. اين محصول به صورت فرضي زبان شما را فرا مي‌گيرد ولي اين نرم‌افزار جزء تفريحي بيش براي هكرها كاربرد ديگري نداشت.
6- “windows Me" داستان ويندوزMe تا حدودي نامشخص و مبهم بود این محصول داراي ويژگي‌هاي خاص و كمي بود و نسبت به ويندوز 98 ويژگي‌هاي كمي براي ارائه داشت.
اين محصول دچار سقوط ناگهاني شد و اين شكست بي ارتباط با ارائه ويندوز 2000 به بازار نبود.
اين محصول فقط براي كاربراني قابل استفاده بود كه خواستار يك سيستم خانگي ثابت بودند تا از آن براي يادگيري بهره ببرند.
7- Xenote and the similar sony E- marker در اينجا با نرم‌افزار جالب ديگري آشنا مي‌شويم كه مخاطبي نداشته است و مورد استفاده قرار نگرفته است. شما آهنگي را از راديو مي‌شنويد اما مجري راديو نام خواننده آهنگ را اعلام نمي‌كند. مشكلي نيست شما آهنگ را به خاطر مي‌سپاريد و آن را در وب وارد میكنيد مطمئنا اهنگ مورد نظر شما در وب ليست قبلي آن ايستگاه راديويي موجود خواهد بود و شما مي‌توانيد آهنگ مورد نظر را با ليست تطبيق داده و به اطلاعات مورد نظر دست پيدا كنيد.
8- “Flex play " DVD هايي كه با اين نام به بازار ارائه شده‌اند چندان موفق نبوده‌اند اين DVD ها داراي ايراد فني بوده اند به صورتي كه سياه‌رنگ شده و غير قابل استفاده مي‌شوند.
9-"Audrey web-surfing machine" روزي كه 3comمرگ Audrey را اعلام كرد روز بسياري بدي بود. من گمان مي‌كنم كه در سال 2001 مردم منتظر جعبه پلاستيكي 500 دلاري نبودند كه فقط قابليت web-surfiay را دارا است. اين نظريه بسيار عجيب است كه ما فكر كنيم كه Apple اين طرز فكر را با ارائه جعبه‌هاي 500 دلاري كه Mac mini نام دارند و هيچ صفحه نمايشي نداشته ولي قابليت‌هايي بيش از Surfing را دارا است را تغيير دهد.
10- VKB Bluetooth Virtual Keyboard من هنوز بر اين نظريه هستم كه اين موضوع به طرز جالبي داراي جذابيت خاصي است.
پروژه به اين صورت بوده است كه شما مي‌توانيد اين كيبوردهاي نوري را در هر سطح صافي داشته باشيد.
متاسفانه، وقتي آن را مورد تست قرار داديم، در كل زمان نصب با اين پيغام رو به رو شديم "سرويس‌هاي دستگاه قابل استفاده نمي‌باشند لطفا سرويس ديگري را انتخاب كنيد."
نمره منفي اين دستگاه فقط براي اين مشكل نبود، مسئله ديگر اين كه اين محصول از اديتورهاي CNET امتياز 9/4 را دريافت كرده بود. همه اين مسائل دست به دست هم دادند تا اين محصول نمره ده را در ليست ما به خود اختصاص دهد.

نویسنده : انیس حسینی

منبع : ictnews.ir

فلسفه اپن سورس - در گفتگو با اريك ريموند

فلسفه اپن سورس - در گفتگو با اريك ريموند
ترجمه : مسعود سعيدي
ماهنامه شبکه
اشاره :
موضوع اپن‌سورس (Open Source) و موضوع نرم‌افزار آزاد رايگان (Free)، موضوعات پيچيده‌اي نيستند. اما هرچه بيشتر در اين مورد مطالعه مي‌كنيم متوجه وجود لايه‌هاي عميق‌تري مي‌شويم و هرچه پايين‌تر مي‌رويم، موضوع، رنگ و بوي فلسفي بيشتري به‌خود مي‌گيرد. مصاحبه‌اي كه با اريك ريموند ترتيب داده شده است و ترجمه آن را در ادامه مي‌خوانيد، به‌خوبي عمق بحث فلسفه منبع‌باز (اپن‌سورس) را نمايان مي‌سازد. در اين مصاحبه علاوه‌‌‌بر بررسي چند و چون فلسفه منبع‌باز، به جريانات تجاري كه حول و حوش اپن‌سورس شدن تكنولوژي جاوا ميان شركت‌هاي سان و IBM برقرار است، اشاره مي‌شود و موارد ديگري مانند جريان SCO و موضوع مذاكرات بين سان و مايكروسافت نيز مورد نظر قرار مي‌گيرند. بسياري از كاربران و خصوصاً برنامه‌نويسان و علاقمندان به نرم‌افزارهاي منبع‌باز، Eric Raymond را مي‌شناسند. اما اگر بخواهيم او را براي آن گروهي از خوانندگان كه تا اين لحظه نام او را نشنيده‌اند معرفي كنيم، مي‌توانيم او را بنيانگذار جنبش منبع باز و يا حداقل يكي از پيشروترين افراد فعال در اين جنبش نرم‌افزاري بناميم. در اين ارتباط در متن مصاحبه‌ موارد دقيق‌تري را خواهيد خواند. اما به‌جهت معرفي اريك ريموند از زاويه ديگر، مي‌توانيم به بخشي از اتوبيوگرافي او به‌نقل از سايت شخصي وي به‌نشاني /www.catb.org/esr كمك بگيريم. اريك ريموند ضمن فعاليت و تحقيق در روابط انساني جامعه و فرهنگ هكر اينترنتي، به‌عنوان يك فرد ناظر در اجتماع هكرهاي اينترنتي شناخته شده است. تحقيقات او روشنگر موفقيت‌هاي چشمگير مدل توسعه نرم‌افزار منبع‌باز بوده است. در فهرست پروژه‌هاي نرم‌افزاري ريموند، علاوه بر كار بر روي سيستم‌عامل يونيكس، نام يكي از پركاربردترين نرم‌افزارهاي انتقال اطلاعات از طريق پست‌الكترونيك نيز ديده مي‌شود. ريموند علاوه بر فعاليت در حوزه‌هاي نرم‌افزارهاي منبع‌باز، علاقمندي‌هاي ديگري نيز دارد و يكي از طرفداران پروپا قرص ادبيات علمي تخيلي نيز هست. ريموند ضمن داشتن درجه و عنوان كمر‌بند مشكي در ورزش رزمي تكواندو، يك نوازنده ماهر و موسيقي‌دان نيز هست. اما واقعيت آن است كه هيچ يك از موارد فوق در زندگي اريك ريموند به اندازه نقش او در به جريان انداختن جنبش منبع‌باز اهميت نمي‌يابند و افراد بسياري به‌درستي او را يك انسان‌شناس سرگردان و فيلسوف درد‌سرساز مي‌دانند كه بر حسب تصادف، در زمان مناسب در موقعيت درستي قرار گرفته است. مصاحبه‌كننده يعني خانم Terri Wells نيز يكي از آشنايان ريموند است كه سابقه آشنايي آن‌ها به سال‌ها قبل از آن‌كه اريك به شهرت برسد باز مي‌گردد. ضمناً لا‌زم به ذكر است كه در كلا‌م ريموند، هكر نه به معناي متداول آن بلكه به متخصصان خبره كامپيوتر اطلا‌ق مي‌گردد.

‌• از آن دوران و روزگاري كه به عنوان يك برنامه‌ساز چيره دست (geek) كار مي‌كرديد صحبت كنيد. چطور شد كه در اين مسير قرار گرفتيد؟
‌‌‌• تقريباً همه چيز از زماني آغاز شد كه من سعي مي‌كردم برنامه‌نويسي ميني‌كامپيوترهاي اواسط دهه 70 را بياموزم. واقعيت آن است كه من قبل از آن‌كه برنامه‌نويس بشوم، به سيستم‌عامل يونيكس علاقه زيادي داشتم. من مطالعه مقالات اوليه تامپسون و ريچي كه در نشريه Communication of the ACM چاپ مي‌شد و پدرم مشترك آن بود، را خيلي زود شروع كرده بودم. اين موضوع كه من چطور بدون آن‌كه برنامه‌نويسي بدانم، شروع به مطالعه اين جور مقالات كرده بودم، روحيات من را بهتر نمايان مي‌سازد. من هنوز هم همين جوري هستم و يك جانور همه‌چيز خور(Omnivorous) محسوب مي‌شوم.
تقريباً يك سال بعد از اين جريان، من شروع به يادگيري برنامه‌نويسي كردم. سال 1976 را تاريخي مي‌دانم كه مي‌توانم از آن به عنوان تاريخ پيوستن به جامعه هكر‌ها ياد كنم. اين سال، سالي بود كه من با Jargon File آشنا شدم .
(Jargon File عنوان مجموعه‌اي از اصطلاحاً هكر‌ها و برنامه‌نويسان است كه در ابتدا شكل و صورت كتبي داشته است و بعدها بر روي شبكه‌هاي كامپيوتري دانشگاهي و نهايتاً اينترنت قرار گرفت - مترجم). جالب است كه يادآوري كنم كه درهمان سال اول، من بيش از 60 مورد در اين مجموعه ثبت كرده بودم!

‌• در چه زماني متوجه شديد كه شما مسيري فراتر از يك خبره برنامه‌نويس را طي كرده‌ايد و در جايگاه چيزي شبيه يك انسان‌شناس جامعه هكر و فرهنگ‌ آنها قرار گرفته‌ايد؟ و اين موقعيت بر زندگي شما به عنوان يك هكر چه تاثيري داشته است؟
‌• واقعيتش را بخواهيد، من اين وضعيت را از مدت‌ها پيش احساس مي‌كردم. در واقع در سال 1990 يعني زماني كه واژه‌نامه New Hackers Dictionary براي نخستين بار منتشر شد، من چنين احساسي داشتم. در آن زمان چه كسي مي‌‌توانست حدس بزند كه اين كتاب سرآغازي بر كل جريان منبع‌باز محسوب خواهد شد و در حقيقت چرخ‌هاي جنبش منبع‌باز را به‌حركت در خواهد آورد؟

‌• در مورد پيشرفت‌ها و موفقيت‌هاي خود بگوييد، به كداميك از آنها به عنوان يك افتخار ياد مي‌كنيد؟
‌• خوب، من به‌نوعي موجبات بيداري جامعه هكرها را فراهم آوردم و كمك كردم تا اين اجتماع ضمن شناختن خود، جهان را از نو اختراع كند. من اين‌كار را دو‌بار انجام دادم. يك‌بار با انتشار <واژه‌نامه جديد هكر> و يك‌بار با انتشار كتاب ديگرThe Cathedral and the Bazaar. من به اين موارد افتخار مي‌كنم. من نيازي به تشريح بيشتر آنكه چرا به اين موارد افتخار مي‌كنم، نمي‌بينم.

اپن‌سورس
‌• چطور شد كه شما اصطلاح Open source را مطرح كرديد؟ چرا تنها به اصطلاحي مانند Free software اكتفا نكرديد؟
‌• بهترين پاسخ به اين پرسش را مي‌توانيد با رجوع به يكي از نخستين كارهاي من كه در سال 1998 به‌نگارش درآمد، بيابيد. اين نوشته را مي‌توانيد در نشاني زير ببينيد:
http://www.catb.org/esr/open-source.html

‌• به نظر شما بزرگ‌ترين تفاوت‌ نرم‌افزارOpen source و نرم‌افزارهاي موسوم به Free Software در چيست؟
‌• تفاوتي در كار نيست. در واقع نرم‌افزارهاي اين دو گروه تفاوتي با يكديگر ندارند. كاربران، مجوز‌ها و ابزارها در هر دو مورد مشابه هستند.
اگر قرار باشد بين نرم‌افزار open source و نرم‌افزارهاي Free Software تفاوتي وجود داشته باشد، چنين تفاوتي در روش تبليغ و گرايش‌هاي عرضه‌كنندگان آن‌ها نهفته است. در واقع كاركرد شما به عنوان عرضه كننده نرم‌افزار تفاوتي نمي‌كند، تفاوت در روش بيان شما نهفته است.

‌• احساس شما نسبت به مجوز‌هاي نرم‌افزاري از نوع BSD چيست؟ ليسانس‌هايي كه به كاربر اجازه مي‌دهد تا از حاصل كار ديگران استفاده كرده، آن‌را به هر صورت دلخواهي تغيير داده و مجدداً عرضه كند، بدون آن‌كه هيچ‌گاه ناگزير به بازپرداخت باشد؟
‌• اعتقاد من آن است كه چنين كاربري در بلند‌مدت، سودي نصيبش نخواهد شد. زماني‌كه شما از چنين روشي استفاده كنيد، هيچ‌گاه نخواهيد توانست با گرد هم آوردن گروه كوچكي از برنامه‌نويسان با تعداد بسيار بيشتري از برنامه‌نويسان جامعه منبع‌باز رقابت كنيد.
ممكن در كوتاه مدت تصور شود كه چنين مكانيسمي جواب مي‌دهد. اما همان‌طور كه گفتم، اين روش پاسخگو نيست. به اين صورت كه ممكن است چنين شركتي موفق شود با سرمايه‌گذاري و با خرج كردن پول زيادي در راه تبليغات و بازاريابي و پرداختن دستمزد و موارد ديگر، موفق به جا انداختن محصول خود شود، اما در همين زمان سيستم جهاني منبع‌باز به‌صورت يك بازخورد طبيعي نسخه منبع‌باز همان محصول را عرضه خواهد كرد كه توسط هزاران برنامه‌نويس داوطلب از سراسر دنيا تهيه شده است. چنين محصولي با قيمت بسيار پايين‌تر، كيفيت و قابليت‌هاي بيشتري خواهد داشت.
من تصور مي‌كنم كه اهميت مجوز‌هاي نرم‌افزاري نوع GNU copyleft ، بيش از آن‌كه به تأثير بر اقتصاد و روابط رقابتي بازار مربوط باشد، به‌جهت نمايش جلوه‌اي از انتظارات جامعه برنامه‌نويسان اهميت مي‌يابد.

‌• تعداد قابل توجهي از تكنولوژي‌هاي نرم‌افزاري بر پايه محصولات منبع‌باز شكل گرفته‌اند (خواه به‌دليل قيمت و هزينه‌ها، و خواه به‌دليل كيفيت يا چيزهاي ديگر). زماني ريچارد استالن گفته بود كه اگر بهترين نرم‌افزار را توليد كنيم اما كسي علت و چرايي آن را نداند، آن‌گاه بازنده‌ايم. از طرف ديگر درصورتي‌كه نرم‌افزار ما فراموش شده باشد، اما ايده‌هاي نهفته در آن هنوز زنده باشند، آن‌گاه برنده محسوب مي‌شويم. آيا شما تصور نمي‌كنيد كه ايده‌هاي آزادي نهفته در نرم‌افزارهاي‌ منبع‌باز در پشت انواع محصولاتي كه مي‌توان از اين روش توسعه به‌دست آورد، گم شده باشند؟
‌• خير. من در اين مورد با ريچارد موافق نيستم. زماني كه او مي‌گويد: <بياييد درباره آزادي صحبت كنيم>، من پاسخ مي‌دهم : <بس است. به‌جاي اين‌كار سورس كد را نشان بدهيد>.
هميشه عمل بهتر از حرف و تبليغات بوده است. روش كار ما بيانگر پيام ما است. من فكر مي‌كنم ايده آزادي و رايحه شيرين اختيار، همواره بيشتر از آن‌كه نتيجه حرف‌هاي زيبا در ارتباط با ايده‌ال‌ها و مجردات باشند، از آنچه در عمل انجام مي‌دهيم، ايجاد مي‌شوند.
ما نيازي به ژست گرفتن نداريم، اتكا به آنچه هستيم بسيار بيشتر از اداي ديگري را درآوردن اهميت دارد.

‌• به اعتقاد شما، سيستم‌عامل‌ها و ديگر نرم‌افزارهاي منبع‌باز بايد در انتظار چه تغيير و تحولي باشند تا بتوانند در بين كاربران غير حرفه‌اي، جايگاه خود را بيابند؟
‌‌• ما بايد در مورد طراحي رابط‌هاي كاربر دقت و توجه بيشتري داشته باشيم. در اين مورد اخيراً در مقاله‌اي تحت عنوان The Luxury of Ignorance اظهارنظر كرده‌ام.
راه و رسم يونيكس در همه موارد بسيار مستحكم و غني است، اما در مورد ارتباط با رابط كاربر با مشكل اساسي مواجه هستيم. تا زماني از مواردي مانند امنيت و پايداري و كارايي و سرعت و نظاير آن صحبت مي‌كنيم، ما با يونيكس حكومت مي‌كنيم، اما وقتي كه از رابط كاربر و سهولت كاربر سخن به ميان مي‌آيد، نااميد و وحشت‌زده مي‌شويم. از همه بدتر آن است كه بسياري از ما حتي حساسيت و عمق ناتواني خود را در اين زمينه نمي‌شناسيم.
من اعتقاد دارم كه ما مي‌توانيم در اين زمينه بهتر عمل كنيم. اگرچه اين مسأله نيازمند به اعمال تغييرات بنيادي است و احتمالاً منجر به ايجاد برخورد‌ها و تناقض‌هاي جدي خواهد شد، اما كاملاً عملي خواهد بود و اين‌كار براي ما بسيار سهل‌تر از كسي است كه گرفتار باتلاق ويندوز شده است و سعي در رفع مشكلات اين سيستم‌عامل دارد.

‌• آيا تصور نمي‌كنيد كه شركت‌هايي كه از منبع‌باز سود مي‌برند، بايد ملزم به بازپرداخت به جامعه منبع‌باز بشوند؟
‌•(با خنده مي‌گويد) منظورتان شركت‌هايي مانند ردهت، IBM و ناول است كه در محيطي خارج از جامعه منبع‌باز
به كار توسعه نرم‌افزار مشغول هستند؟ واقعيت آن است كه در پرسش شما دو سؤال نهفته بود كه كوچك‌ترين اشتباه در تعبير و درك آن‌ها مي‌تواند بسيار خطرآفرين باشد.
بله، من تصور مي‌كنم كه شركت‌هايي كه از منبع‌باز تجارت سودآوري دارند، اخلاقاً مديون جامعه منبع‌باز هستند. اما مخالف اين مسئله هستم كه هر كسي به‌خود اجازه دهد تا چنين شركت‌هايي را وادار به پرداخت كند. اعتقاد و شرم اجتماعي در اين مورد مي‌تواند مؤثر باشد، اما اعمال فشار در اين مورد صحيح نيست.
سال‌ها پيش در يك گردهمايي گفته بودم كه در ذهن بسياري از مردم چنين برداشتي وجود دارد و من آن‌را در آن زمان <اصل فشار> يا Pressure Principle ناميدم. بر اساس اين اصل، بسياري از مردم معتقدند كه <مديون بودن شخص X نسبت به شخص Y > به صورت طبيعي به معني آن است كه <گروهي از مردم به‌نام Z به‌درستي بر X فشار خواهند آورد تا حق Y را بپردازد.>
نكته‌اي كه بايد به آن توجه شود آن است كه پذيرش اصل فشار، راه و مسير كوتاهي است كه مستقيماً به جهنم ختم مي‌شود. به اين ترتيب در جهاني زندگي خواهيم كرد كه در آن مردم به‌طور پيوسته در حال اختراع <وظايف اخلاقي> جديدي هستند كه چيزي بيشتر از حكم اعمال فشار و زور براي پيشبرد اهداف نيست.
من به هيچ وجه نمي خواهم در چنين دنيايي زندگي كنم و به همين جهت مخالف اعمال فشار در هر زمينه‌اي به‌جز دفاع شخصي هستم!

پارادايم‌ها
‌•‌ شما از يك سو يك آزاديخواه هستيد و از طرف ديگر يك آنارشيست محسوب مي‌شويد. اين دو ديدگاه بر نگاه شما نسبت به مقوله نرم‌افزار رايگان در برابر منبع‌باز چه تأثيري دارند؟
‌•‌ بينش من، تغذيه‌كننده اصلي بدگماني من نسبت به مقوله نرم‌افزار Free است. معتقدم دلايل تجربي بسياري براي بدگمان بودن نسبت به نرم‌افزار رايگان دارم. اما آنارشيست بودن من به يافتن اشكالات عملي در اين زمينه كمك كرده است.

‌• چه مدتي است كه خود را يك آزاديخواه مي‌دانيد؟ آيا اين تفكرات منجر به شكل‌گيري روش كار شما در برنامه‌نويسي و توسعه نرم‌افزار گرديد و يا به‌طور معكوس، مشاهدات شما در مدل‌هاي توسعه نرم‌افزار شكل‌دهنده ديدگاه‌هاي شما در ارتباط با آزادي افراد بوده است؟
‌• اين موضوع را دقيقاً به‌خاطر دارم. من از سال 1980 به بعد عملاً يك آزاديخواه بودم. اما در آن زمان بيشتر از آن‌كه يك آنارشيست باشم، به Minarchism فكر مي‌كردم و اين وضع سه تا چهار سال ادامه داشت. (مي‌توانيد به مقاله اريك ريموند در نشاني www.catb.org/esr/writings/anarchist.html مراجعه نماييد.)
اعتقادات من بر اقتصاد ارزش آزاد (Value-free) متكي است. بازارهاي اقتصادي و آزادي فردي از يكديگر تفكيك ناپذيرند و دو روي يك سكه محسوب مي‌شوند. در اين شرايط كسي از زور استفاده نمي‌كند. بر اساس چنين ديدگاهي، راه‌حل‌ها و الگوهاي غيرمتمركز اقتصادي كه در آن‌ها هيچ فرد مشخصي سيستم را به تنهايي در كنترل و اختيار خود ندارد بهتر قابل درك خواهند بود.
وضع مدل توسعه نرم‌افزار منبع‌باز(Open source) براي حاميان آزاديخواه كار دشوار‌تري از وضع مفهوم بازار براي آنان نيست. هر دوي اين پديده‌ها بازخورد طبيعي رفتار خودسرانه هستند. اما مي‌پذيرم كه تنها يك فرد آزاديخواه مي‌توانست مدل‌منبع‌باز را همان طور كه من آن را تعريف كردم، تعريف كند.

‌• در صورتي‌كه شما فرهنگ هكر را در يك چهارچوب انسان‌شناسي مطالعه نمي‌كرديد، آيا تصور مي‌كرديد كه در ارتباط با فرايند توسعه نرم‌افزار به همين نتايج مي‌رسيديد؟
‌• شايد. اما دراين‌صورت زبان نتيجه‌گيري‌هاي من حتماً تفاوت مي‌كرد و احتمالاً اين مسئله منجر به دشوار شدن درك اين مفاهيم براي افراد غير متخصص مي‌گشت.

‌• در مورد آنچه الهام‌بخش شما در نوشتن كتاب The Cathedral and the bazzar بوده است، صحبت كنيد. چه بخش‌هاي از اين كتاب براي شما و خوانندگان جالب‌تر بوده است؟ كدام بخش‌ها بيشترين جر و بحث‌ها را برانگيخته است؟ آيا قسمت‌هايي وجود دارند كه خوانندگان از درك آن غافل باشند و شما آن را جالب توجه بدانيد؟
‌‌• من قبلاً در نوشته بسيار مفصلي در سايت شخصي‌ام موضوع چگونگي نوشتن اين كتاب را تشريح كرده‌ام.
آن بخش‌هايي از كتاب كه براي خوانندگان بيشترين جذابيت را دارد، تا حد زيادي به مخاطب بستگي دارد. بسياري از خوانندگان بخش‌هايي را بيشتر مي‌پسندند كه مستقيماً به نرم‌افزار ارتباط دارند. اما من نامه‌هايي از نويسندگان حرفه‌اي دريافت كرده‌ام كه از نثر و ايده‌اليسم اجتماعيِ اثر، تعريف و تمجيد كرده‌اند. گروه ديگري هم از مدل جديد تعاون اجتماعيِ مطرح‌شده در اين كتاب خوششان آمده است و از من تعريف مي‌كنند. اما جالب است كه بدانيد اين گروه اخير با دريافتن آن‌كه من يك فردگراي آنارشيست هستم كه پاسخ طبيعي او به عقايد اوتوپياي اجتماعي، جستجوي يك هفت‌تير است، چندان بر عقيده قبلي‌شان پافشاري نمي‌كنند.
حقيقتش را بخواهيد، كم كم دارم به اين نتيجه مي‌رسم كه ويژگي اصلي اين كتاب در آن است كه به خواننده اجازه مي‌دهد تا تفكرات خود را در آن بيابد. يكي از مهم‌ترين مسائلي كه خوانندگان زيادي آن را ناديده گرفته‌اند، پيش‌بيني من در ارتباط با نقش نرم‌افزارهاي منبع‌باز در بازارها و تجارت نرم‌افزار در زماني است كه صنايع به سمت نرخ‌هاي بازگشتي پايين‌تر در صنايع خدماتي گام برمي‌دارند.

در شركت سان
‌•‌ باز گرديم به فوريه 2004. شما نامه‌هاي سرگشاده متعددي به شركت سان مايكروسيستمز ارسال كرده‌ايد كه در آن‌ها به ادعا‌هاي اين شركت در ارتباط با <دوستي با منبع‌باز> پرداخته‌ايد و به‌طور خاص موضوع نسخه منبع‌باز جاواي شركت سان را مورد بحث قرار داده‌ايد. آيا مي‌توانيد موضوع را به اختصار در اين‌جا تشريح كنيد؟ آيا پيشرفت‌هايي حاصل شده است؟
‌•‌ من مذاكرات متعددي با يكي از مقامات رده بالاي اين شركت در ارتباط با كمك به تدوين يك استراتژي منبع‌باز داشته‌ام. در ارتباط با اين موضوع، جناح‌هاي موافق و مخالف متعددي درون شركت سان وجود دارند و هنوز بر كسي مشخص نيست كه كداميك از اين جناح‌ها پيروز خواهند شد.
به من گفته شده كه يكي از منابع اعمال فشار قوي بر سان در ارتباط با ارائه نسخه منبع‌باز جاوا، از جانب سياست‌هاي جديد خود JCP يا Java Community Process است. بدين ترتيب تقريباً با اطمينان مي‌توان گفت كه نسخه كاملاً باز زبان جاوا به همراه مجموعه‌ كتابخانه‌هاي كلاس به‌زودي از طرف يكي از اعضاي فعال درJCP عرضه خواهد شد. بله همان‌طور كه حدس مي‌زنيد در اين بين نام IBM بر سر زبان‌ها است. سان بايد تصميم خود را بگيرد. يا در برابر اين فشار‌ها مقاومت كند و يا آن‌كه هرچه سريع‌تر رهبري اين پروژه را بر عهده گيرد.
من هرچه در توان داشته باشم در حمايت از جناح منبع‌باز در درون سان به‌كار خواهم بست.

‌• نظر شما در مورد توافق‌نامه جديد 10 ساله ميان سان و مايكروسافت چيست؟ اين موضوع چه تأثيري بر نرم‌افزارهاي منبع‌باز و توسعه‌دهندگان آن خواهد داشت؟
‌• تا اين لحظه مشخص نشده است كه آيا اصولاً تأثيري در كار خواهد بود يا خير. آنچه مرا نگران مي‌كند، تسليم شدن احتمالي سان در مورد توقف پشتيباني اين شركت از پروژه OpenOffice (تحت فشار مايكروسافت) است. هرچند كه كاملاً واضح است كه حتي در اين صورت شركت‌هاي IBM و ناول آماده‌اند تا در اين مسير گام بردارند و جاي خالي سان را پر كنند.
مهم‌ترين مسأله‌اي كه در بلند مدت مشخص خواهد شد، احتمال آن است كه در اين توافق‌نامه مايكروسافت موفق شده باشد تا رضايت سان را در توسعه سيستم‌عامل Blackthorn بر روي هسته سولاريس جلب كرده باشد. (Blackthorn نام رمزي سيستم‌عاملي‌ بعد از سيستم‌عامل آينده مايكروسافت است. اين‌كه آيا اين سيستم‌عامل نسخه‌اي غير از لا‌نگ‌هورن است يا خير و يا آيا در اين مورد كنايه‌اي ‌در كار است يا نه، بر مترجم مشخص نشد.) اين موضوع امري كاملاً محتمل است و شبيه همان مانوري است كه خيلي‌ها مانند اپل با سيستم‌عامل Mac OSX انجام داده‌اند كه امكان اجراي ويندوز را به‌صورت مجموعه‌اي از كتابخانه‌ها و يا روي يك لايه شبيه‌سازي شده، بر روي هسته يونيكس فراهم مي‌كند.
در مورد آن‌كه سياست‌گذاران استراتژيك و ارشد مايكروسافت ناجوانمرد هستند يا نه بحث‌هاي زيادي در جريان است. اما در آن‌كه آن‌ها احمق هستند، كسي شك ندارد. همان‌طور كه كرم‌هاي نرم‌افزاري مانند Sasser يا Netsky به‌ما يادآوري مي‌كنند، معماري و CodeBase ويندوز يك فاجعه است. مايكروسافت بايد راهي براي خلاصي از اين مسير بيابد. مايكروسافت مي‌تواند در حالي كه هنوز ويندوز را به‌صورت Closed-source نگاه دارد، به يونيكس بپيوندد. اين راه هوشمندانه‌ترين راه‌حلي است كه من مي‌توانم با توجه به محدوديت‌ها و نيازمندي‌هاي آنان تصور كنم.

‌• اخيراً مديرعامل شركت JBOSS ، مارك فلوئري، از سان در بسته نگاه داشتن جاوا پشتيباني كرده و بر خلاف نظرات شما در مورد آن‌كه سان بايد جاوا را منبع‌باز كند، از موقعيت سان دفاع كرده است. در اين مورد توضيح ‌دهيد.
‌• برداشت من چنين است كه مارك تصور مي‌كند كه جاوا به‌صورت فعلي (يعني بسته) او را كمتر در معرض رقابت قرار مي‌دهد. البته اين موضوع براي او يك مزيت است، اما براي مشتريان مناسب نخواهد بود. اين مورد مسأله مهمي است كه مشتريان بايد به آن توجه داشته باشند.

‌• از ديدگاه منبع‌باز (و بر خلاف زاويه ديد نرم‌افزارFree) اصولاً چرا به يك سكوي كامل جاوا نياز داريم؟
‌• اين مسأله از اين جهت مهم است كه مانع از انجام حجم زيادي از كارهاي تكراري در مواجهه اجباري با پياده‌سازي‌هاي متعدد و ناسازگار خواهد شد. ما كارهاي بسيار مهم‌تري پيش‌رو داريم كه زمان و انرژي خود را معطوف آن‌ها كنيم.

‌• آيا در اختيار داشتن يك نسخه GPL شده از ماشين مجازي جاوا JVM مانند Kaffe به بحث منبع‌بازشدن جاوا كمك مي‌كند و يا آنكه اين مسأله را تضعيف مي‌سازد؟
‌• تصور مي‌كنم كه اين موضوع كمي فشارها را بر سان براي باز كردن جاوا بيشتر خواهد كرد. اما اين مقدار به اندازه‌اي نيست كه بعضي از جناح‌هاي ايده‌آل گراي ما دوست دارند. آنچه ما بدان نياز داريم چند نسخه ماشين مجازي جاوا يا كتابخانه در رقابت با يكديگر نيست، ما در انتظار يك نسخه ماشين مجازي جاوا هستيم كه قابل انتقال به سكوهاي گوناگون باشد.

‌• آيا بحث منبع‌باز شدن جاوا كاري معقول و مفيد است و يا آن‌كه اين مسأله بايد به‌خاطر جنبش منبع‌باز انجام شود؟
‌• من تصور مي‌كنم كه اگر سان اين كار را با ميل و رغبت كامل و به‌صورت داوطلبانه و در زمان مناسب انجام ندهد، حتماً شركت ديگري مانند IBM پيدا خواهد شد كه پا به ميدان خواهد گذاشت و اين كار را خواهد كرد. بدين ترتيب اختيار و كنترل زبان جاوا از دستان سان خارج خواهد شد و اين مسأله به موقعيت رهبري سان در حوزه جاوا و نتيجتاً بر بازار سان تأثير منفي برجاي خواهد گذاشت. جاسوسان من گزارش مي‌دهند كه پيشرفت‌هاي اخير در جامعه جاواكاران JCP اين مسأله را به امري اجتناب ناپذير مبدل ساخته است كه حداكثر مي‌تواند يك‌سال به‌درازا بكشد.
در نتيجه در پاسخ شما بايد عنوان كنم كه بله، براي منبع‌باز ساختن جاوا از سوي سان دلايل عقلاني كافي وجود دارد.

‌• سان در پاسخ به نامه نخست شما چنين نوشته بود: <ما منبع‌باز را بهتر از هر كس ديگري درك مي‌كنيم. IBM فقط تظاهر به آمادگي به حركت در اين مسير مي‌كند. اما هنوز مانند يك شركت سنتي رفتار مي‌كند.> آيا شما پاسخي براي سان داريد و يا آنكه در اين مورد حق را به سان مي‌دهيد؟
‌• سان اكثراً بيشتر از آن كه عمل كند، حرف مي‌زند. اخيراً حتي حرف‌هاي متقاعد كننده‌اي هم نمي‌زند. مديريت جديد آن‌ها، جاناتان شوارتز به‌تازگي با ادعا‌هاي عجيب و غريب و احمقانه در مورد اختصاصي شدن ردهت خود را به‌خوبي معرفي كرده است.

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

‌• سان براي آن‌كه اثبات كند كه نهايتاً به منبع‌باز خواهد پيوست، چه‌كار مي‌تواند بكند؟
‌• كافي است كه JRE و كتابخانه‌هاي كلاس جاوا را باز كند.

رويدادهاي ديگر

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

‌• شما نقش و تأثير انفجار دات كام و همچنين بحران آن‌را در افزايش و كاهش تعداد هكرها براي مشاركت در توسعه پروژه‌هاي نرم‌افزاري منبع‌باز، چگونه ارزيابي مي‌كنيد؟
‌• برخلا‌ف انتظار، من تأثير اين موضوع را بسيار كم مي‌دانم. توجه به آمار فراخوان‌هاي سايت Freshmeat (سايت پشتيبان پروژه‌هاي نرم‌افزاري منبع باز به نشاني www.freshmeat.net) نشان‌دهنده اين واقعيت است كه منحني رشد در قبل و بعد از چنين فراز و نشيب‌هاي اينترنتي تقريباً همان نرخ را نشان مي‌دهند.
من علت چنين پديده‌اي را در آن مي‌دانم كه نيروهاي اقتصادي سوق‌دهنده جهان به سمت نرم‌افزارهاي منبع‌باز، به اندازه‌اي عميق، ساخت‌يافته و درون‌زا هستند كه تحت تاثير پديده‌هاي سطحي نظير بالا و پايين رفتن ارزش سهام واقع نمي‌شوند.

درباره با لينوكس
‌• شما چگونه با لينوس توروالدز آشنا شديد؟ او چه شخصيتي دارد؟
‌• در سال 1996 در اولين و آخرين كنفرانس نرم‌افزارهاي قابل توزيع مجدد و آزاد با هم آشنا شديم. ما قبل از اين تاريخ با پست‌الكترونيك مكاتبه داشتيم. در نخستين ملاقات قرار گذاشته بوديم تا يك نسخه از كتاب فرهنگ هكر را با يك CD معاوضه كنيم. اولين كلماتي كه در آن ديدار به‌زبان آوردم چنين بود: <متاسفم لينوس، من فراموش كردم كتاب را بياورم.> او نيز در پاسخ چنين گفت: <مشكلي نيست، من هم فراموش كردم CD را بياورم.>

‌• شما مشخصاً به كدام بخش‌هاي لينوكس مي‌توانيد اشاره كنيد و بگوييد كه: <من در اينجا تغييرات بنيادي ايجاد كرده‌ام؟>
‌• بخش‌هاي بسيار زيادي ازEmacs . در واقع بسياري از كاربران اين موضوع را نمي‌دانند. اما من هم CVS اين برنامه را طراحي كرده‌ام و هم رابط‌هاي اشكال‌زدايي GNU آن‌را نوشته‌ام. من فكر مي‌كنم كه سهم كد‌هاي من در كتابخانه‌هاي نرم‌افزاري اين برنامه، به‌جز خود RMS بيشتر از هر كس ديگري است. Fecthmail نرم‌افزار ديگري كه است نوشته‌ام و در مجموعه‌هاي لينوكس گنجانده مي‌شود. كتابخانه courses بخش ديگري است كه من پنج سال نگهدارنده (Maintainer) آن بوده‌ام و در حال حاضرlibungif ناميده مي‌شود. بخش قابل توجهي از يك كتابخانه PNG هم وجود دارد كه كار من ‌بوده است و موارد خرده ريز ديگر. از اين به بعد در هر بار كار با CVS و يا در هر جلسه GDB با Emacs ، به‌ياد من باشيد.

‌• شخصاً كداميك از توزيع‌هاي لينوكس را بيشتر ترجيح مي دهيد و از آن استفاه مي‌كنيد.
‌• لينوكس فدورا

‌• با گسترش كاربرد لينوكس، آيا ممكن است روزي اين سيستم‌عامل هدف ويروس‌ها واقع شود؟
‌• شايد. اما معماري امنيتي يونيكس اين مسأله را بسيار دشوار كرده است. من شخصاً نگراني از اين بابت ندارم.

براي سرگرمي
‌• بسياري از خوانندگان مايلند بدانند سيستم مورد استفاده در منزل شما چه شكلي است؟
‌• براي دانستن اين موضوع مي‌توانيد به نشاني /www.catb.org/esr/writings/ultimate-linux-box مراجعه نماييد.

‌• تاكنون دشوار‌ترين و پيچيده‌ترين پروژه كد‌نويسي شما چه بوده است؟
‌• احتمالاً دشوار‌ترين يا پيچيده‌ترين پروژه چند سال اخير من، نرم‌افزارdoclifter بوده است. اين نرم‌افزار برنامه‌اي است كه با استفاده از تركيبي از تكنولوژي كامپايلر و دانش شهودي (Heuristies) براي ترجمه متن صفحات راهنماي يونيكس (unix man pages) و همچنين ماكروهاي troff ، به فايل‌هاي ساخت‌يافته XML به‌كار برده مي‌شود. اين‌كار تا مدت‌ها امري غيرممكن انگاشته مي‌شد و تصور مي‌رفت كه براي اين‌كار و تفكيك آيتم‌ها، به توانايي و شعور انساني نياز خواهد بود، كه من موفق به انجام آن شدم.
‌• هيچ طرحي براي آغاز كتاب ديگري در آينده نزديك، در سر مي‌پرورانيد؟
‌• به فكر كار بر روي كتابي هستم كه در آن به بحث مهندسي قابليت استفاده براي برنامه‌نويسان يونيكس بپردازم. همچنين خود را براي ويرايش چهارم كتاب فرهنگ هكر آماده مي‌كنم.

‌• Vi را ترجيح مي‌دهيد يا Emacs را؟
Emacs را، اگرچه با Vi هم بسيار راحت هستم و هر از چندي در زمان‌هايي كه پشت سيستم‌خود قرار نگرفته‌ام، از آن براي كارهاي كوچك استفاده مي‌كنم.
‌• چه شباهتي بين در اختيار داشتن يك جواز استفاده از اسلحه شكاري و جواز ازدواج وجود دارد؟

‌• آها، شما به‌دنبال آن جريان هستيد؟ (خواننده محترم، مصاحبه‌كننده بر اساس سابقه آشنايي كه با من دارد، اين سؤال را به اين شكل طرح كرده است.)
در سال 1996 من و همسرم Cathy ، براي دريافت جواز ازدواج به دادگستري مراجعه كرديم. در مدتي كه آنجا بوديم و همين‌طور فرم‌ها را يكي بعد از ديگري پر مي‌كرديم. دست آخر زماني كه داشتيم از دادگستري خارج مي‌شديم، متوجه شديم كه علاوه‌بر جواز ازدواج، هر يك از ما يك جواز حمل اسلحه گرم نيز در دست داريم!
مأموري كه جلوي در ايستاده بود، بلافاصله فرم‌هاي حمل اسلحه را در دستمان تشخيص داد و در حالي كه به نوبت به فرم‌ها ، من و كتي و مجدداً به فرم‌ها، من و كتي نگاه مي‌كرد، با لحن دلسوزانه‌اي گفت: <حواستان را جمع كنيد، براي پشيماني هيچ وقت دير نيست!>

پي‌نوشت‌
آزاديخواهي فلسفه‌اي است كه طرفدار دولت محدود و حامي حقوق شهروندان است. طرفداران اين فلسفه بر اين باورند كه افراد بايد آزاد و مختار به انجام هر آنچه تمايل دارند باشند. محدوده آزادي تعريف شده در اين فلسفه تا جايي است كه آزادي فردي منجر به نقض آزادي فرد ديگري در همان جامعه نباشد. تا اينجا اين فلسفه با بسياري از ديگر عقايد امروزي همخواني دارد. اما تفاوت‌هاي اين فلسفه با فلسفه‌هاي ديگر زماني آشكار مي‌شود كه تعريف دقيق‌تري از <حق> ارائه شود. از ديدگاه اين فلسفه، چيزي به‌نام حقوق مثبت (Positive Rights) مانند غذا، سلامتي يا سرپناه وجود ندارد. تنها حقوق منفي (Negative Rights) مانند تعدي نكردن يا دزدي نكردن، در اين فلسفه معني مي‌يابد. حاميان اين فلسفه بر اين باورند كه استفاده از زور و فشار براي حفظ چنين حقوقي در سطح فردي و احتماعي معني دارد و مشروعيت مي‌يابد.
- آنارشيستم اصطلاح متداولي است كه براي توصيف بسياري از فلسفه‌ها و جنبش‌هاي اجتماعي به‌كار برده مي‌شود كه حامي حذف سلسله مراتب اجتماعي هستند. اين دسته از فلسفه‌ها از اصطلاح آنارشي براي توصيف اجتماعي مبتني بر همكاري داوطلبانه شهروندان آزاد، استفاده مي‌كنند. تفكر آنارشيست فلسفي به هيچ وجه مدافع آشوب و بي‌نظمي نيست، بلكه از اين اصطلاح براي ارجاع به يك رابطه انساني كه به‌طور عمدي گزينش شده است، بهره مي‌برد.
- Minarchism، اشاره به تفكري دارد كه بر اساس آن دولت‌ بايد تا حد امكان كوچك باشد. بسياري از حاميان اين فلسفه خود را بخشي از تفكر Liberatarian مي‌دانند و ادعا مي‌كنند كه مينارشي ادامه فلسفه ليبرال كلا‌سيك است. مينارشيسم از اين ديدگاه در برابر آنارشيسم قرار مي‌گيرد و بر سادگي امور تأكيد دارد.

استانداردهای وب چیست و چرا باید از آنها استفاده کنیم ؟

استانداردهای وب چیست و چرا باید از آنها استفاده کنیم ؟

مقدمه
رویای تیم برنرز لی برای اختراعش ، شبکه جهانی وب ، یک فضای عمومی است . جائیکه کاربران میتوانند اطلاعات خود را به اشتراک بگذارند ، کنار هم کار کنند ، بازی کنند و روابط اجتماعی داشته باشند ( شبکه جهانی ب ، یک تاریخچه مختصر شخصی ). ما به عنوان توسعه دهندگان وب ، با ایجاد سایتهای آموزشی ، اجتماعی و تجاری ، این رویا را به واقعیت تبدیل میکنیم.

در این دوره از رشد وحشتناک ، وب نیاز به راهنمایی دارد تا از پتانسیل کاملش آگاهی یابد. استانداردهای وب این راهنمایی هستند. استانداردها کمک میکنند تا مطمئن شویم که تمام افراد به اطلاعاتی که ما تامین میکنیم دسترسی دارند و همواره توسعه وب را سزیعتر و لذت بخشترمیکند.

مطابقت با استانداردها استفاده از وب را برای افرادی با نیازهای خاص ساده تر میکند. افراد نابینا ممکن است سیستمهایی برای خواندن صفحات وب داشته باشند. افرادی با بینایی ضعیف ممکن است صفحاتی بخواهند صفحاتی دوباره مرتب شده و بزرگ شده برای خواندن راحتتر داشته باشند و افرادی که از دستگاههای جیبی استفاده میکنند میتوانند به راحتی زمانی که از سیستمهای خود استفاده میکردند از وب استفاده کنند.

چنانکه شرح خواهیم داد ، همواره دلایل مفیدی برای توسعه دهندگان وب وجود دارد که با استانداردهای وب هماهنگ باشند. برای نمونه موتورهای جستجو میتوانند کار فهرست کردن سایتها را بهتر انجام دهند. استفاده از کدهای مختص یک مرورگر اغلب کار طراحی یک صفحه را دوبرابر یا سه برابر میکند. و زمانی که رسانه جدیدی مطرح میشود برای مطلوب شدن سایت کار زیادی باقی میگذارد. این وضعیت بدون مفهوم هدایت استانداردهای وب فقط وخیم تر خواهد شد.

بعضی از مردم ترس از این دارند که استانداردها در حال محدود کردن هستند. در حقیقت ، آنها مقدار زیادی از کار خسته کننده مورد بحث در توسعه وب را حذف میکنند و به توسعه دهندگان وقت و اتعطاف پذیری بیشتری میدهند تا به درستی خلاق باشند. که هر دو به آینده بهبود یافته و متفکری نسبت به گذشته راه می-یابند.

بسایری از کاربردهای وب ، از جمله بعضی ها که امروزه فقط در رویاهای ما هستند بدون گسترده شدن مطابقت با استانداردها ممکن نخواهد بود و یا مشکلتر خواهد بود. در حال حاضر ، سیستمها و نرم افزارهایی وجود دارند که بسیار عمومی و ظاهرا فراگیر هستند ، اما چی کسی میداند فردا چه اتفاقی میافتد ؟ مقید کردن خودمان با کنترل هر شرکت منفردی به این معنی است که آینده خودمان را به خوش اقبالی یا بداقبالی اینکه یک شرکت میتواند یا میخواهد که ما را تامین کند محدود میکنیم. حمایت کردن از فراگیری استانداردها به وب اجازه میدهد که تا زمانیکه مشوق نوآوری است زنده بماند و در همین مسیر ادامه دهد.

استانداردها چیزهای زیادی برای عرضه کردن دارند که ما در پروژه استانداردهای وب به آن در حد لازم رسیدگی میکنیم تا به شما کمک کنیم که بیشتر درباره آنها یاد بگیرید. این متن تنها نقطه آغاز است ، به شما از اینکه چه استانداردهای موجود است ، چه کاری انجام میدهند و چرا شما باید به آنها توجه داشته باشید ، یک درک قوی خواهد داد. هر بار که ما یکتکه ار وب را میسازیم به فضای عمومی اطلاعات که همان وب است کمک میکنیم. میتوانیم آنرا هر چه بهتر بسازیم و یا آنرا سنگین تر کنیم که از هم گسیخته میشود. این انتخاب متعلق به ماست ؛ نتیحه آن متعلق به همه.

2. استانداردهای وب چه چیزهایی هستند ؟
2.1 استانداردهای کنسرسیوم جهانی وب (W3C)
2.1.1 W3C چیست ؟

کنسرسیوم شبکه جهانی وب (W3C) یک کنسرسیوم از صنعت بین المللی است که به "هدایت وب به سوی استعدادهای نهان آن" اختصاص داده شده است. توسط تیم برنرز لی ، مخترع وب ، رهبری شده است. در سال 1994 تاسسیس شده است ، W3C بیش از 450 عضو سازمانی دارد که شامل Microsoft ، America Online ( کمپانی مادرNetscape Communications ) ، Apple Computer، Adobe ، Macromedia، Sun Microsystemsو مجموعه ای متنوع از دیگر تولید کنندگان نرم افزار و سخت افزار ، تامین کننده محتوا ، نهادهای علمی و شرکتهای ارتباط از راه دور. کنسرسیوم توسط سه سازمان تحقیقاتی میزبانی میشود : MIT در آمریکا ، INRIA در اروپا و Keio University در ژاپن.

2.1.2 چه کاری انجام میدهد ؟

W3C خصوصیات آزاد (استانداردهای عملی) را گسترش میدهد تا قابلیت همکاری محصولات مربوط به وب را بهبود بخشد. نظریه های W3C توسط گروههای کاری شامل اعضای کنسرسیوم و کارشناسان دعوت شده گسترش می یابد. گروههای کاری موافقت عمومی از شرکتهای و سازمانهای درگیرایجاد نرم افزارهایی برای وب هستند را به دست آورند. و پیش نویسهایی عملی و نظریه های پیشنهادی ایجاد کنند. اینها در مرحله بعد به عضویت و مدیریت W3C برای تصویب رسمی به عنوان نظریه های W3C فرستاده خواهند شد. اطلاعات اضافی در مورد این فرآیند در وب سایت W3C قابل دسترسی است.

2.1.3 استانداردهای W3C چه چیزهایی هستند ؟!
2.1.3.1 زبان نشانه گذاری ابرمتن HTML 4.0

زبان نشانه گذاری ابرمتن (HTML) به صورت گسترده ای در وب برای اضافه کردن ساختار به اسناد متنی استفاده شده است.مرورگرها این اسناد را تفسیر کرده و در شکل مختص هر رسانه به کاربر نمایش میدهند. برای مثال ، مرورگرهای بصری نوعا عنصر strong ( ... ) را به عنوان یک متن توپر نمایش میدهند. درحالیکه مرورگرهای تبدیل متن به گفتار باید هنگام تلفظ آن ، متن را با قدرت بیشتری بخوانند.

با کمک شیوه نامه آبشاری (CSS) ، برنامه نویس ممکن است تعیین کند که یک عنصر ساختاری بدون توجه به پیش فرضهای مرورگر چگونه نمایش داده میشود.

2.1.3.2 زبان نشانه گذاری قابل گسترش XML 1.0

زبان نشانه گذاری قابل گسترش (XML) یک زبان نشانه گذاری شبیه HTML است ، اما به جای داشتن یک مجموعه از عناصر واحد و ثابت به شما اجازه میدهد که مجموعه خود را تعین کنید یا از مجموعه های دیگران استفاده کنید. همچنین به شما امکان میدهد که مجموعه های متعددی را با استفاده از XML namespaces در یک سند واحد استفاده کنید.

بعضی از برنامه های XML نظیر XHTML و MathML هم اکنون نظریه های W3C شده اند. سایرین هنوز به صورت پیش نویسهای کاری W3C هستند.

استانداردهای شیوه نامه نظیر CSS و XSL انتخابهای گوناگونی عرضه میکنند که یک عنصر XML چگونه نمایش داده شود. پشتیبانی مطابق با استاندارد برای نمایش مستقیم XML در مرورگرها هماهنگ نیست ، بنابراین برای ارائه اطلاعات به انسانها ، HTML (یا XHTML) با یک ظاهر طراحی شده با CSS یکی از راهها است. XML امروزه بیشتر در ارتباطات بین ماشینها ( یا ماشین به ماشین ) استفاده میشود.

XML اصولا به خاطر توانایی اضافه کردن عناصر دلخواه شما و ساختن سیستم ساختاری متعلق به شما انعطاف پذیرتر از HTML است. واین XML را یک فرمت ایده آل برای سازماندهی مقادیر زیاد از داده میسازد. که هم اکنون در بسیاری از بانکهای اطلاعاتی و موتورهای جستجو مورد استفاده قرار گرفته است.

2.1.3.3 XHTML 1.0, 1.1, and Modularization

XHTML 1.0 یک فرمولبندی تازه از HTML بر پایه XML است. به XHTML 1.0 میتوان به عنوان یک گذار ایدئولوژیک از HTML 4.0 نگاه کرد که به خاطر تاثیر XML از لحاظ فنی سختگیرانه تر است.

XHTML در مرورگر شما عینا مشابه HTML نمایش داده میشود. اگر هر احتمالی مبنی بر نیاز یا قصد شما به پردازش مجدد محتوا وجود دارد ممکن است ترجیح دهید از XHTML استفاده کنید. به عنوان مثال برای ارسال آن به یک PDA قواعد ترکیب سختگیرانه تر XML پردازش خودکار XHTML را بسیار ساده تر و ارزانتر از HTML معمولی میکند.

از لحاظ ایدئولوژیک XHTML مفاهیم کلی زیر را از HTML به ارث میبرد :

اینکه نمایش و قالب بندی سند باید توسط شیوه نامه از هم جدا شوند.
اینکه اسناد باید قابل دسترسی شده باشد.
اینکه اسناد باید بین المللی شده باشد.

همچنین XHTML 1.0 از سه الگوی DTD استفاده میکند : Strict (سختگیرانه) ، Transitional (انتقالی) و Frameset. این الگودر اصل از HTML 4.0 پدیدار شد و در HTML 4.0.1 دنبال شد.

بعضی از شیوه های فی مهم XML در XHTML عبارنند از :

اینکه تمامی انواع سند توسط اعلام DOCTYPE صحیح شناسایی شده هستند.
اینکه ساختار یک سند در حال مطابقتی که حاوی اعلام DOCTYPE است، یک عنصر HTML با یک اعلام XHTML ، یک عنصر head که در برگیرنده عنصر title است و یک عنصر body .
اینکه تمامی عناصر و نامهای ویژگی ها با حروف کوچک نوشته میشوند و اینکه تمامی مقادیر به صورت نقل قول باشند. (درون یک جفت " قرار گیرند)
اینکه تمامی عناصر غیر تهی (p، li و...) به درستی با یک برچسب بسته پایان یافته اند.
اینکه تمام عناصر تهی (br، hr، img و ...) به درستی با یک ممیزدنباله پایان یافته اند.
اینکه اسناد در مقابل DTD که اعلام شده تعیین اعتبار گردند.
اگر شما میخواهید که یک سند با XHTML 1.1 بنویسید ، میتوانید از دو راه این کار را انجام دهید. اولی استفاده از DTD عمومی XHTML 1.1 است. با انجام دادن این ، کار شما به شدت ساخت یافته خواهد شد زیرا در واقع هیچ خاصیت نمایشی در XHTML 1.1 وجود ندارد. جدایی ساختار و نمایش در اینجا کامل است. و تمامی کار نمایشی شما در یک شیوه نامه جای میگیرد.

وسیله دیگر برای نوشتن اسناد با XHTML 1.1 بهره برداری از XHTML Modularization است. این تفکیک اجزاء آشنای HTML و XHTML (مانند Text ،tables و ...) در قطعات مجزا است. شما پس از آن میتوانید DTD متعلق به خودتان را بنویسید و فقط از آن دسته از اجزا که لازم هستند استفاده کنید. این توسعه پذیری عملی است. در اصل به شما، برنامه نویس وب، فرصت تغییر ودلخواه کردن نشانه گذاریتان را میدهد.

The Ruby Annotation یک وسیله خاص برای سر و کار داشتن با تفسیرهای کاراکترهای معین آسیایی است. Ruby در مقابل کاری که با بین المللی سازی انجام شده باشد تنزل میکند.

2.1.3.4 شیوه نامه آبشاری (CSS)

شیوه نامه آبشاری (CSS) یک طرز کار و مکانیزم برای تغییر ظاهر عناصر HTML یا XML به وسیله اختصاص سبکها و شیوه ها به انواع عناصر ، دسته های خودتعریف از عناصر یا نمونه های شخصی است.

شیوه نامه ها میتوانند برای تعیین بدون تناقض ظاهر تمام یک سایت استفاده شوند. در ادامه مقدمه ای از CSS ، W3C توصیه کرده است که خصوصیات مختص طرحبندی در HTML به عنوان فاز جداگانه ای خارج شود و با شیوه نامه ها تعویض شود تا یک شبکه جهانی وب ساده تر و ساخت یافته تر ایجاد کنیم.

2.1.3.5 الگوی شیئی سند سطح 1 (DOM Level 1)

DOM اجازه میدهد که قدرت کامل و تعاملی یک زبان برنامه نویسی (مانند ECMAScript ، نسخه استاندارد شده جاوا) در یک صفحه وب به کار برده شود. (در ظوابط بزنامه نویسی ، الگوی سیئی سند (DOM) سطح 1 یک رابط کاربردی برنامه نویسی (API) است برای تعامل با صفحات وب) که آن برای زبان برنامه نویسی دسترسی ساده ای به ساختار، محتوا و نمایش یک سند که در زبانهایی مانند HTML و CSS نوشته شده اند محیا میکند.

DOM با پیشرفتهای آینده فناوری سازگار است. و به هر زبان برنامه نویسی اجازه میدهد که با هر زبانی که در یک سند به کار رفته تعامل کند. این استاندارد تنها برنامه نویسی پویای HTML را ساده نمیکند بلکه درد و رنج تطبیق با فناوری های آینده اینترنت را بسیار کمتر میکند.

2.2 استانداردهای ECMA
2.2.1 ECMA چیست ؟


انجمن سازندگان اروپایی رایانه (ECMA) یک سازمان است که رسما در سال 1961 تاسیس شده تا نیازهای استانداردسازی قالبهای عملیاتی رایانه از جمله زبانهای برنامه نیسی و کدهای ورودی/خروجی را برآورده کند.

ECMA در ژنو سوئیس و در نزدیکی اداره مرکزی سازمان بین المللی استانداردسازی (ISO) و کمیسیون علوم الکترونیکی بین المللی (IEC) مستقر شده است. در 1994 نام سازمان ECMA به "انجمن اروپایی برای استانداردسازی اطلاعات و سیستمهای ارتباطی" تغییر یافت به این منظور که بازتاب گسترده تری از حوزه فعالیتهایش داشته باشد.

2.2.2 چه کاری انجام میدهد ؟

وظیفه اصلی ECMA گسترش استانداردها و گزارشهای فنی در زمینه اطلاعات و فناوری های ارتباطی است. از آنجایی که ECMA یک انجمن از شرکتهاست و نه یک موسسه استانداردسازی رسمی ، اغلب با نهادها و موسسه های ملی یا بین المللی همکاری میکند.

استانداردهای ECMA به عنوان یک اساس و بنیاد برای استانداردهای بین المللی و اروپایی پذیرفته شده اند. تا جایی که بیش از 270 استاندارد ECMA و70 گزارش فنی منتشر شده است.

از این استانداردها 85 مورد به عنوان استاندارد بین المللی توسط سازمان بین المللی استانداردسازی (ISO) پذیرفته شده اند. علاوه بر اینکه 25 مورد به عنوان استاندارد اروپا توسط موسسه اروپایی استانداردهای ارتباط از راه دور (ETSI) پذیرفته شده است.

2.2.3 استانداردهای ECMA چیستند ؟
2.2.3.1 ECMA Script (جاوا اسکریپت استاندارد شده)

ECMA Script یک زبان برنامه نویسی استاندارد شده است که تا حد زیادی بر مبنای JavaScript از Netscape و JScript از Microsoft است. ECMA Script توسط هیئت فنی 39 از ECMA تعریف شده است.

کاربرد اصلی ECMA Script ، که یک زبان مبتنی بر شیئی است ، اداره اشیائی است که در صفحات وب توسط الگوی شیئی سند (DOM) مشخص شده اند. این اشیاء (به طور موثر، عناصری که صفحات وب یا صفحات کامل وب را میسازند) میتوانند اضافه شده، حذف شده، جابجا شده و یا از لحاظ خصوصیات تغییر کنند. این به توسعه دهندگان وب اجازه میدهد اثراتی مانند متن متحرک، کلیدهای گرافیکی و صفحاتی که بر اساس ورودی کابر بدون نیاز به بارگذاری مجدد تغییر میکنند، ایجاد کنند.

خصوصیات متداول ECMA Script ، استاندارد ECMA – ECMA262 خصوصیات زبان برنامه نویسی ECMA ، نگارش دوم است.
3. مزایای استفاده از استانداردها چیست ؟

3.1 قابل دسترس بودن
3.1.1 برای نرم افزار/ دستگاه :

اجرای استانداردهای وب میتواند به صفحات وب شما وضوح بیشتری در جستجوهای وب بدهد. ارائه اطلاعات ساختاری در اسناد مقبول (از لحاظ استاندارد) دسترسی و ارزیابی اطلاعات در آن اسناد را برای موتورهای جستجو ساده میکند و آنها با دقت و درستی بیشتری فهرست میشوند.

به خاطر استفاده از استانداردهای وب درک ساختار سند شما به خوبی برنامه های سمت سرویس گیرنده برای برنامه های سمت سرویس دهنده راحت میشود. و اضافه کردن یک موتور جستجو برای سایت شما ساده تر میشود و نتایج بهتری میدهد.

استانداردها چنان نوشته شده اند که مرورگرهای قدیمی بازهم مبانی ساختار سند شما را درک میکنند. حتی اگر آنها نتوانند جدیدترین و جالبترین ضمیمه ها به استانداردها را درک کنند ، انها قادر خواهند بود محتوای سند شما را نمایش دهند. این البته به همان اندازه در مورد سیستمهای رباتی که اطلاعات سایت شما را از طرف موتورهای جستجو و فهرستی جمع میکنند، اعمال میشود.

کدهای مطابق استاندارد به شما فرصت معتبر سازی صفحاتتان را توسط یک سیستم تعیین اعتبار میدهند. تعیین اعتبار کننده ها اسناد شما را پردازش میکنند و لیستی از خطاها را به شما ارائه میکنند، این پیدا کردن و اصلاح خطاها را بسیار ساده تر میکند و میتواند برای شما زمان زیادی صرفه جویی کند.

اسناد مطابق استاندارد به راحتی میتوانند به قالبهای دیگر چون بانکهای اطلاعاتی و اسناد Word تبدیل شوند. این به ما اجازه میدهد استفاده تطبیق پذیرتری از اطلاعات داخل اسناد در شبکه جهانی وب بکنیم و مهاجرت ساده شده ای به سیستم های جدید (سخت افزار به خوبی نرم افزار) شامل دستگاههایی مانند TV و PDAها داشته باشیم.

3.1.2 برای مردم :

قابل دسترسی بودن یک ایده مهم پشت سر تعداد زیادی از استانداردهای وب، خصوصا HTML است.

این تنها به این منظور نیست که به وب اجازه دهد توسط مردم ناتوان و معلول مورد استفاده قرار گیرد، بلکه به صفحات وب اجازه میدهد که توسط مردمی که از مرورگرهایی غیر از مرورگرهای معمول استفاده میکنند مورد استفاده قرار گیرد. این مرورگرها شامل مرورگرهای صوتی که صفحات وب را با صدای بلند برای افرادی با اختلالات بینایی میخوانند، مرورگرهای خط نابینایان (Brail) که متن را به خطوط برجسته قابل فهم نابینایان ترجمه میکنند، مرورگرهای دستی و جیبی که فضای نمایشگر بسیار کوچکی دارند، نمایشگرهای Teletext و سایر دستگاههای خروجی غیر معمول.

همانطور که روشهای گوناگون دسترسی به وب افزایش پیدا میکند، سازگارکردن و تکثیر کردن وب سایتها برای برآورده کردن احتیاجات به طور روز افزونی مشکل خواهد شد (درواقع عده ای معتقدند که این کار حتی امروز هم غیر ممکن است!). پیروی از استانداردها یک قدم بزرگ به سوی حل این مشکل است. تطبیق سایتهای شما با استاندارد کمک میکند که اطمینان داشته باشید نه تنها مرورگرهای سنتی، قدیمی و جدید، قادر خواهند بود که سایتها را به درستی نمایش دهند، همچنین سایتها با مرورگرها و رسانه های غیر معمول هم کار خواهند کرد.

بعضی از نتایج منطقی چشم پوشی کردن از استانداردها بدیهی هستند : یکی از اساسی ترین نتایج این است که شما دسترسی با سایت خود را محدود میکنید. محدود کردن مخاطبین تنها به یک بخش کوچک از آنها که میخواهند سهمی از آن داشته باشند چقدر از نظر تجاری معقول به نظر میرسد ؟ برای یک سایت تجاری، مسدود کردن دسترسی یک بخش کوچک از مخاطبهای مورد نظر میتواند یک اختلاف بزرگ در ما به التفاوت سود شما ایجاد کند. برای یک سایت آموزشی، عاقلانه به نظر میرسد که نه تنها به بچه مدرسه ای های ثروتمند و نیرومند جسمی با مرورگرهای گرافیکی اجازه دسترسی بدهیم، بلکه به کودکانی در کشورهای جهان سوم آنهاییکه فقط مرورگرهای مبتین بر متن دارند یا دانش آموزان ناتوانی که از مرورگرهای خاصی استفاده میکنند، اجازه دسترسی بدهیم.

همان اصول اخلاقی به تمام انواع سایتها اعمال میشود. د حالیکه گمراه شدن از استانداردها و استفاده از خصوصیات مختص مرورگری خاص ممکن است وسوسه انگیز باشد. قابلیت دسترسی بیشتر که با انطباق با استانداردها به دست می آید به پاداشهای بزرگتری در دراز مدت منجر میشود.

3.2 پایداری

اغلب استانداردهای وب معمولا با در نظر گرفتن پیش سازگاری و پس سازگاری طراحی شده اند. بنابراین آن داده ای که از نسخه های قدیمی استاندارد استفاده میکند ، کماکان در مرورگرهای جدید کار میکند. و داده ای که از نسخه های جدید استاندارد استفاده میکند به صورت موقرانه ای تنزل نیکند تا نتایج قابل قبولی در مرورگرهای قدیمی تر ارائه دهد.

برای اینکه وب سایت ممکن است در زمان حیاتش توسط تیمهای متعدد طراحی کار شود، بسیار مهم است که آنها بتوانند به سادگی کدها را درک کنند و آنها را ویرایش کنند. استانداردهای وب یک مجموقه قواعد پیشنهاد میکند که هر توسعه دهنده وبی میتواند آنرا دنبال کند، بفهمد و با آن آشنا شود. زمانیکه یک توسعه دهنده یک سایت را با استانداردها طراحی میکند، دیگری قادر خواهد بود بفهمد که عنصر شکل دهنده کجا گذاشته شده است.

4 نتیجه گیری

به عنوان توسعه دهندگان وبب، ما دائما سعی میکنیم که مشکل ناسازگاری و تناقض بین تفاسیر صفحات با مرورگرهای مختلف و نسخه های مختلف مرورگر را مشخص کنیم. که این ما را ناگزیر میکند که یک کدنویسی دوباره یا سه باره وقت گیر انجام دهیم و یا برای یک مرورگر واحد کد نویسی کنیم که اگر برای بعضی مردم استفاده از سایت را غیر ممکن نکند، مشکلتر میکند. این وضعیت با ورود یا ظهور یک نرم افزار یا سخت افزار جدید که قادر به مرور صفحات وب میباشد، مانند تلفنها، پیجرهاو PDAها وخیم تر میشود.

استانداردهای وب قوانین محرمانه ای که توسط سازمانهای مجلل حکم شوند نیستند. همانطور که شرح دادیم بخش زیادی از استانداردها توسط نماینگان همان مردمی که از آن استفاده میکنند ایجاد میشوند : سازندگان مرورگرها، توسعه دهندگان وب، تامین کنندگان محتوا و سازمانهای دیگر.

نوشتن صفحات وب در مطابقت با استانداردها رمان توسعه را کوتاه تر و نگه داری صفحات را آسانتر میکند. عیب یابی و رفع اشکال ساده تر میشود زیرا کد از یک استاندارد پیروی میکند. شما نباید دیگر درباره کد نویسی و نگه داری از چندین نسخه از کد که فرض شده ظاهر یکسانی نمایش میدهند نگران باشید. یک نسخه از سایت شما، همین و بس !

پذیرش همگانی استانداردهای وب در آینده برترین اعتبار خواهد شد. ماموریت پروژه استانداردهای وب بهبود و ارتقای وب با تشویق سازندگان مرورگرها و صفحات وب به پیروی از استانداردها در برنامه هایشان برای توسعه دهندگان و کاربران نهایی است. این کوشش البته زمانی به طور زیاد یاری داده خواهد شد که توسعه دهندگان وب از استانداردها به عنوان یک موضوع با اهمیت استفاده کنند . بر اینکه مولدها و ارائه دهندگان کد آنها مطابق با استانداردهای وب باشند پافشاری کنند.

دلایلی که ما ارائه کردیم باید به شما، توسعه دهنده وب، انگیزه زیادی برای استاندارد بودن، استفاده از استاندارد و همچینین مهمات زیادی برای تقویت موقعیت تجاری شما داده باشد.

سازمان آموزش و پرورش استان هرمزگان

UML زبان استاندارد جهانی برای مدل سازی

UML زبان استاندارد جهانی برای مدل سازی
با كمی اغماض میتوان ادعا كرد كه در ميان شاخههای مختلف مهندسی در هركدام كه دارای قدمت بيشتری است، همگرايی بيشتری در اتخاذ روش و ابزار برای انجام اعمال نسبتاً مشابه از ميان متخصصان و متوليان آن رشته وجود دارد. به طور مثال در حال حاضر برای اجرای يك سازه در هر نقطه از دنيا، مهندسين عمران از يك روند همسان با توالی مشابه شامل: الف)توليد طرح عمرانی ب)پيادهسازی نقشه ج)محاسبات سازهای د)اجرا استفاده میكنند. ولی در رشته نوپايی چون مهندسی نرمافزار، گاه چنان روشها متفاوت است كه از ديد يك ناظر خارجی، دو تيم نرمافزاری مختلف كه هر دو قصد توليد محصولی مشابه را دارند، دو تيم در رشتههای متفاوت به نظر بيايند. يكی از علل وجود تمايز در توليد نرمافزار ميزان تخصص نيرو و زمان به پيادهسازی میباشد.بدين معنا كه در نزد بسياری از برنامهنويسان توليد نرمافزار معادل است با توليد كد. ولی از نظر بعضی ديگر توليد كد تنها بخشی از توليد نرمافزار است كه در بسياری از موارد حتی منابع و زمان. اختصاص داده شده به آن در طول پروسه.توليد نرمافزار كمتر از50% میباشد.

از يك ديدگاه كلی، پروسه توليد نرمافزار را میتوان به دو بخش كلی شامل:
الف)تحليل و طراحی ب)پيادهسازی تقسيم كرد. از ديدگاه دسته اول، برنامهسازان، تحليل و طراحی صرفاً فهم ذهنی مساله میباشد كه دقيقا پس از آن بايستی اقدام به پيادهسازی كرد. در حاليكه در نظر دسته دوم، فاز تحليل و طراحی پر اهميتتر از فاز دوم میباشد كه بايستی برای انجام آن از متدولوژیها و روشهای استاندارد استفاده كرد. UML يك زبان مدلسازی میباشد كه در فاز تحليل و طراحی مورد استفاده قرار میگيرد.

مدلسازی (Modelling) چيست؟

مدلسازی يكی از تكنيكهای ذهنی بشر میباشد كه نه تنها برای اهداف علمی، بلكه برای انجام امور روزمره بشر به دفعات مورد استفاده قرار میگيرد. مدلسازی به طور كلی يعنی شبيهسازی يك محيط با اندازههای متفاوت و از محيط واقعی و احتمالا مواد و مصالحی متمايز از جنس مواد و مصالح محيط مدل شده. در مدلسازی ابتدا اجزای محيط واقعی انتخاب شده و متناسب با هدف مورد نظر از مدلسازی خصوصياتی از هريك از اجزای واقعی انتزاع میشود، يعنی به ازای هزيك از اجزای محيط واقعی يك موجوديت تجريدی ساخته میشود و با برقراری ارتباطی مشابه با ارتباط اجزای واقعی، در ميان موجوديتهای تجريدی، محيط واقعی مدل میشود. برای روشن شدن مثالی میزنيم:

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

ولی متخصصان برای انجام چنين آزمايشی به مدل روی میآورند. يعنی يك جسم فيزيكی كوچك با خصوصيات آئروديناميكی لحاظ شده در طراحی اتومبيل، ساخته میشود و با قرار دادن آن در يك تونل باد، حركت اتومبيل در فضای واقعی را شبيه سازی میكنند و بدين طريق ميزان مقاومت هوا را میسنجند.

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

مثال بالاتنها يك جنبه از مدلسازی را بيان میكند و آن جنبه شناختExploration میباشد. يعنی در مدلسازیهای مشابه مدلسازی فوقالذكر، هدف از مدلسازی تنها شناخت محيط مورد مدل میباشد. يك جنبه ديگر از مدلسازی تبيين (specitication) میباشد. يعنی گاه برای معرفی و ارائه خصوصيات يك موجوديت واقعی يك مدل از آن ارائه میشود. نقشه جغرافيايی مثال خوبی است كه اين جنبه از مدلسازی را مورد نظر دارد.

پس میتوان گفت كه هدف از مدلسازی دو چيز میباشد:
الف)شناخت(exploration)
ب)تبيين(specification)


كه بر اساس تعريف مسئله، مدلسازی يكی يا هردو هدف را در نظر میگيرد.

نكته ديگری كه بايستی در مدلسازی توجه كرد، روش (methodo logy) ساخت يك مدل میباشد. در بعضی موارد مدل چيز بسيار سادهای است و به راحتی ساخته میشود. ولی در بعضی از موارد مدل خود بسيار پيچيده میباشد هر چند از نظر منطقی غيرممكن مینمايد ولی میتوان ادعا كرد كه در بعضی موارد مدل پيچيدهتر از موجوديت واقعی است. زمينهای كه اين ادعا را در آن مصداق فراوان دارد، نرمافزار میباشد. بنابراين در شاخهای از مهندسی كه مدلسازی حائز اهميت فراوان میباشد قطعا روشهای استانداردی برای ساختن مدل وجود دارد. در نرمافزار، روشهای توليد نرمافزار مانند SSAPM ,RUP,USDP, در واقع روشهای مدلسازی میباشند. هر روش مدلسازی طبيعتا نيازمند مصالحی برای ساخت مدل میباشد كه در روشهای مدلسازی نرمافزاری مصالح لازم برای توليد مدل، زبانهای مدلسازی میباشند.

UML چيست؟

Unified Modelling Language يك زبان مدلسازی است كه درسال 1995 به وسيله شركت Rational معرفی شد. UML يك زبان شیگراست يعنی اجزا اين زبان متناسب با مفاهيم به كاررفته و پارادايم شیگرائی طراحی شدهاند.

پس از ارائه مفاهيم شیگرائی در ابتدای دهه 80 ميلادی به تدريج روشهای شیگرائی توليد نرمافزار به وسيله افراد و سازمانهای مختلف ارائه گرديد. اين روشها در برگيرنده يك مجموعه علائم برای بيان مفاهيم و ايدهها از يك سو و يك طرح كاری برای توليد نرمافزار از سوی ديگر بود كه از مهمترين اين روشها میتوان به OMT,BOOCH,OOSE…. اشاره كرد.

اگرچه داشتن يك روش استاندارد امری مطلوب است ولی تفاوت روشها امريست طبيعی و با توجه به تفاوت فراوان در نوع مسائل میتوان گفت كه حتی وجود روشهای مختلف الزامی است چرا كه مثلا در يك پروژه بسيار بزرگ نمیتوان همان روشی را به كار برد كه در يك پروژه كوچك. ولی زبان و مجموعه علائم از چنين قاعدهای پيروی نمیكند و داشتن يك زبان استاندارد امری بسيار مطلوب و از بعضی ديدگاهها حتی الزامی میباشد. يكی از الزامات مهم در داشتن يك زبان استاندارد همگانی ناشی از نقشی است كه زبان در ارتباطات به عهده دارد. البته چندگونهبودن زبان خود مولد مشكلات متعددی است.
با هدف ارائه يك زبان استاندارد فراگير شركت Rational با گردآوری سه نفر از ارائهكنندگان معتبرترين روشهای شیگرا يعنی Irar jacobson مبدع روش OOSE ,BOOCH مبدع روشی با همين نام، Rambaugh مبدع روش OMT و با اخذ نقاط قدرت سه روش فوقالذكر، يك زبان استاندارد به نامUML ارائه كرد. اين زبان پس از ارائه از سوی (Object Mamgement Group) كه يكی از معتبرترين سازمان جهانی در زمينه شیگرائی میباشد بعنوان يك استاندارد پذيرفته شد. پس از ارائه اين زبان و پذيرفته شدن آن به عنوان يك استاندارد جهانی در زمينه نرمافزار، علاوه پروسه اين زبان و ارائه متولوژیهای مبتنی بر آن مانند usop و rup از سوی افراد و سازمانهای مختلف، متخصصين در پی يافتن كاربرد اين زبان در زمينههای ديگر فنی و مخصوصی بر آمدند. برآيند اين تلاشها در حال حاضر uml را به عنوان قدرتمندترين زبان مدلسازی در دنيای نرمافزار مطرح ساخته است.

CCW Magazine

برآورد اندازه‌ی پروژه‌های نرم‌افزاری

صنعت نرم‌افزار در سال‌های اخیر شکوفایی قابل توجهی داشته و به سمت "دست‌یابی" روش‌مند به اهداف و "مهندسی" در حرکت بوده است. مدیریت پروژه‌های نرم‌افزاری و محیطی که این پروژه‌ها در آن اجرا می‌شوند، نیازمند دانش مجرد است؛ حقایقی که از طریق مشاهده و اندازه‌گیری به دست می‌آیند.Tom DeMarco در این باره می‌گوید: "آن‌چه را که قابل اندازه‌گیری نیست، نمی‌توان کنترل و مدیریت کرد."

برآورد اندازه‌ی پروژه به 3 دلیل عمده، ضروری به نظر می‌رسد:

1- به منظور تعدیل پروژه: مقایسه‌ی هزینه و سود پروژه و ارزیابی‌های "اگر –آن‌گاهی" برای انتخاب بین گزینه‌های کارکردی، محیطی و تکنیکی مختلف.

2- به عنوان بخش جدا نشدنی نظم مهندسی نرم‌افزار. در پروژه‌های تولید نرم‌افزار بر خلاف سایر پروژه‌ها (برای مثال پروژه‌های ساختمانی) در هر زمان از کار ممکن است که اجزای بنیادین پروژه تغییر کند، در نتیجه باید روشی برای کنترل این تغییرات و اثرات آن‌ها وجود داشته باشد. به گونه‌ای که در نهایت این تغییرات به شکست پروژه منجر نشوند.

3- بهبود فرآیندهای تولید نرم‌افزار و ارزیابی تاثیرهای بهبود فرآیند بر کیفیت محصول.

آیا پروژه‌های نرم‌افزاری، مشابه سایر پروژه‌ها قابل تخمین هستند؟

مطابق نظر [1]Paul Coombs دوازده قانون کور ولی بدیهی در تخمین وجود دارد، اولین و مهم‌ترین این قانون‌ها، به شرح زیر است:

قانون 1: تخمین‌های شما اشتباه خواهند بود.

چه‌گونه می‌تواند غیر از این باشد وقتی شما قرار است آینده را پیش‌گویی کنید! به ویژه در پروژه‌های نرم‌افزاری که عوامل تاثیرگذار بر آن‌ها بسیار زیاد است. بنابراین مدیران، مشتریان یا کارفرمایان هرگز نباید انتظار داشته باشند که تمام برآوردها دقیق و بی‌نقص باشند.

اما می‌توان با واقع‌بینی در کار احتمال اشتباه در برآوردها را به حداقل رساند. هرگز نباید در برآوردها بسیار بدبین یا بسیار خوش‌بین بود. یادآوری این نکته ضروری است که هر دونوع تخمین خوش‌بینانه (Under Estimation) و بدبینانه (Over Estimation) معایبی مانند دست‌ نیافتن به بازار (در حالت بدبینانه) و از دست دادن بازار (در حالت خوش بینانه) را به همراه دارند که در در بازار رقابتی پذیرفته نیست.

چه کسی باید تخمین را انجام دهد؟

در بهترین حالت کسی باید تخمین فعالیت‌های پروژه را انجام دهد که خود مجری آن‌هاست. به عبارت دیگر بهترین برآورد را کسی انجام می‌دهد که درباره‌ی چه‌گونگی انجام کار اطلاعات کامل و یا در انجام کار مشابه سابقه داشته باشد، بنابراین تعیین و آموزش شخصی به عنوان تخمین‌زننده‌ی حرفه‌ای در بلند مدت موثر نخواهد بود؛ زیرا این شخص به تدریج با دور شدن از روند اجرای کار، قابلیت‌های فنی خود را در تخمین از دست خواهد داد.

از این رو بهترین تخمین‌زننده‌ی فعالیت‌های یک پروژه‌ی نرم‌افزاری مدیر یا مدیر فنی پروژه خواهد بود. از سوی دیگر، یک مسوول تمام‌وقت برای ارزیابی تخمین‌ها و تعدیل آن‌ها لازم است. تا از یک سو با کنترل برآوردهای کنونی پروژه را در مسیر درست خود هدایت کند و از سوی دیگر با مستند سازی و نگه‌داری برآوردها، اطلاعات تاریخچه‌ای معتبری برای تخمین‌های بعدی فراهم کند. مسوولیت این شخص کنترل اعتبار تخمین‌های انجام شده، کنترل یکپارچگی و هماهنگی این تخمین‌ها با تخمین‌های بعدی و قبلی و تامین اطلاعات تاریخچه‌ای معتبر برای تخمین‌های بعدی است.

بهترین زمان برای تخمین پروژه چه موقعی است؟

دومین قانون تخمین به این سوال پاسخ خواهد داد:

قانون 2: اندازه‌ی پروژه در هر زمان قابل تخمین است.

درست است که در ابتدای پروژه بسیاری مسایل مانند هدف پروژه، نیازمندی‌های غیر کارکردی مورد نظر، Platform مورد نظر، روش مورد استفاده، زبان برنامه نویسی ،تعداد آزمایش‌های لازم و ... مشخص و شفاف نیستند اما همواره عددی قابل ارایه است و به تدریج به دقت این عدد اضافه خواهد شد.


تکنیک‌های تخمین:

به چهار روش می‌توان تخمین را انجام داد:

1- قضاوت افراد با تجربه: استفاده از افراد خبره در ارایه‌ی تخمین فعالیت‌ها.

2- مقایسه: مقایسه پروژه‌ی مورد نظر با سایر پروژه‌های مشابه.

3- پایین به بالا: شکستن کار به اجزای کوچک‌تر، تخمین هریک از اجزا و سپس جمع زدن تخمین‌ها با هم.

4- محاسبه ریاضی: استفاده از مدل‌های محاسباتی برای به دست آوردن برآورد اندازه‌ی کار. در این روش مقادیری که نشان دهنده‌ی ویژگی‌های پروژه هستند، در معادلاتی وارد می‌شوند که نتیجه‌ی این معادلات تخمین اندازه پروژه در قالب زمان یا هزینه است.

نکته مهم استفاده از ضرایب تعدیل در تخمین‌هاست. هر تخمینی از دو بخش تشکیل شده است؛ عدد پایه و ضریب تعدیل. برای مثال تخمین پایه‌ی 20 روز و ضریب تعدیل 50% برای یک فعالیت؛ به این معناست که این فعالیت دست پایین (در بهترین حالت) در مدت 20 روز انجام خواهد شد و بیش‌ترین زمان لازم برای انجام آن 30 روز خواهد بود. مقوله‌ی "ریسک" در ضریب تعدیل لحاظ خواهد شد، نه در عدد پایه. به عبارت دیگر یکی از عوامل موثر در تعریف ضریب تعدیل، ریسک‌های اجراست.

قانون 3: هر تخمینی باید ضریب تعدیل داشته باشد.

به طور منطقی در هر تخمین باید گام‌های زیر پیموده شود:

1- تهیه فهرستی از فعالیت‌هایی که باید تخمین زده شوند.

2- تخمین هر یک از فعالیت‌های فهرست‌بندی شده.

3- جمع کردن تمام آن تخمین‌ها.

4- اضافه کردن ضریب تعدیل.

برای انجام تخمین درست ابتدا باید مواردی که نیازمند تخمین هستند مشخص و تعریف شوند. ریسک تخمین نه فقط اشکال در محاسبه تخمین است بلکه در اکثر مواقع اشکال در تخمین به علت فراموش کردن تخمین بعضی فعالیت ها یا ریسک هاست. بنابراین:

قانون 4: تهیه‌ی فهرستی از اقلام نیازمند تخمین به مراتب مشکل‌تر از تخمین آن‌هاست.

اقلام نیازمند تخمین می‌توانند نرم‌افزار، مدیریت پروژه، مدیریت فنی، سخت‌افزار، گواهی‌نامه‌ها و پیمان‌کاران یا به عبارت دیگر تمام عوامل هزینه‌ی سیستم باشند. بنابراین آشنایی با پروژه اهمیت زیادی دارد.


قانون 5:کیفیت تخمین به آشنایی با پروژه مورد نظر وابستگی زیادی دارد.


قانون6: هر چه‌قدر جزییات اقلام نیازمند تخمین را بیش‌تر کنید، دیرتر به عدد مشخص تخمین می‌رسید.

اقلام نیازمند تخمین باید تا سطح معناداری شکسته شوند. نه آن‌قدر جزیی باشند که برای تخمین به زمان زیادی نیاز داشته باشند و نه آن‌قدر کلی که دقت تخمین را کاهش دهند.

بعضی فعالیت‌های پشتیبانی که به طور مستقیم در تولید وارد نمی‌شوند، در حالت عادی فراموش می‌شوند و باید در این باره بسیار دقت کرد.

پس از تهیه‌ی فهرست اقلام نیازمند تخمین نوبت انجام تخمین است. برای انجام عمل تخمین ابتدا:


قانون 7: مفروضات خود را ثبت کنید.

با نوشتن مفروضات لحاظ شده، دقت و شرایط تخمین معلوم می‌شود. مفروضات می‌توانند به دسته‌ای خاص از فعالیت‌ها مربوط و یا در کل پروژه حاکم باشند، مانند دست‌رسی به منابع در زمان‌های مشخص یا ثبات نیازمندی‌های مورد نظر پروژه.

حال باید ریسک‌های پروژه هم تعریف شوند تا بتوان ضریب تعدیل را تعریف کرد.


قانون 8: ضریب تخمین به صورت نسبتی با استفاده از ریسک‌ها تعریف می‌شود.

اکنون تخمین اقلامی که به همراه مفروضات و ریسک‌ها به دقت شناسایی و فهرست شده‌اند، امکان‌پذیر است. به خاطر داشتن این نکته بسیار ضروری است که:


قانون 9: هیچ روش کامل و جامعی وجود ندارد.

اگر روش کاملی وجود داشت، همه از آن استفاده می‌کردند، همه‌ی پروژه‌ها به موقع انجام می‌شدند و به مباحث پیچیده نیازی نبود. تمام روش‌های موجود، به تخمین زننده‌ها کمک می‌کنند تا نسبت به تخمین‌های خود اعتماد بیش‌تری داشته باشند.

یک روش متداول، تخمین براساس احساس تخمین‌زننده است. در این حالت از هیچ مدل ریاضی استفاده نمی‌شود و تخمین‌زننده براساس فاکتورهایی مانند اندازه‌ی فعالیت، پیچیدگی فعالیت، میزان آشنایی با فعالیت مورد نظر و کل پروژه، مهارت‌ها و دانش تیم انجام دهنده‌ی کار و ... عمل تخمین را انجام می‌دهد.

تخمین براساس یک فعالیت پایه‌ی روش دیگر تخمین است. در این روش زمانی مشخص برای نوع خاصی از فعالیت در نظر گرفته می‌شود و تخمین اندازه‌ی سایر فعالیت‌ها در مقایسه با آن فعالیت تعریف می‌شود.

برای تخمین اندازه‌ی پروژه می‌توان از مدل‌های محاسباتی مانند Function Point Analysis ,COCOMO و ابزارهایی که بر پایه‌ی این روش‌ها تهیه شده‌اند، استفاده کرد.

مرحله‌ی بعدی تخمین مدت زمان یا طول پروژه و به عبارت دیگر برنامه‌ریزی پروژه است.


قانون 10: طول پروژه به ماه باید بزرگ‌تر از متوسط تعداد افراد تیم باشد.

براساس تخمین هر یک از فعالیت‌ها و به همراه سایر تکنیک‌های برنامه‌ریزی، پروژه‌ی زمان‌بندی پروژه تهیه می‌شود.

قبل از ارسال تخمین‌ها برای مرور، باید یکپارچگی و هم‌خوانی آن‌ها با یکدیگر دوباره کنترل و از درستی آن‌ها اطمینان حاصل شود.


قانون 11: کسی غیر از تخمین‌زننده‌ی اول باید تخمین‌ها را مرور کند.

اگر برای مرور شخص دیگری با مسوولیت مستقل وجود ندارد، باید ریسکی به سایر ریسک‌ها اضافه شود.

در نهایت پس از اجرای پروژه باید تخمین‌ها نگه‌داری شوند تا در تحلیل‌های بعدی مورد استفاده قرار گیرند.


قانون 12: اطلاعات پروژه‌ی خاتمه یافته باید نگه‌داری شوند.

به عبارت دیگر گزارش انجام یک پروژه می‌تواند راه‌گشای اجرای پروژه‌های بعدی باشد.

این مقاله به طور عمده از کتاب - IT Project Estimation-A Practical Guide to the Costing of Software اقتباس شده است و سعی بر ارائه کلیاتی از تجربه و توصیه یک برآورد کننده حرفه ای، دارد.

منبع

نحوه محاسبه قیمت نرم افزار بر اساس نظام مهندسی

نحوه محاسبه قیمت نرم افزار بر اساس نظام مهندسی
بر اساس سال 1387

1- فرمول محاسبه :


2- جدول ضریب های شغلی


3- جدول هزینه ها
http://s3.tinypic.com/2emkhp1.jpg

4- فرمول نرمال سازی قیمت بر اساس کارفرما
http://s3.tinypic.com/nvvbfc.jpg

تخمین هزینه و زمان در پروژه‌های نرم‌افزاری

تخمین هزینه و زمان در پروژه‌های نرم‌افزاری
نمی‌توان طرحی داشت اگر نتوان آن را به درستی اندازه‌گیری کرد و آغاز پروژه بدون وجود طرح مانند آن است که شکست پروژه طراحی شده باشد.
پروژه‌ي نرم‌افزاری موفق، پروژه‌ای است که در قالب هزینه و زمانی معین و از پیش تعیین شده به انجام برسد. نرم‌افزار کاری تولیدی به شمار می‌رود که هزینه‌ي عمده‌ي آن نیروی کارآزموده ومتخصص است. بنابراین مهم‌ترین ابزار یک پروژه نرم‌افزاری و به طور تقريبي بخش اعظم هزینه‌های آن به نیروی کار متخصص درگیر در آن مرتبط است. سوال این است که چه‌گونه می‌توان زمان و هزینه‌ي یک پروژه نرم‌افزاری را تخمین زد. ماهیت خلاق پروژه‌های نرم‌افزاری و انتزاعی بودن آن تخمین هزینه و زمان انجام آن‌ها را بي‌نهايت مشکل می‌کند. روش‌های متداول تخمین زمان و هزینه خود اساسا انتزاعی است با این همه هنوز هم تخمین پروژه امری لازم و ضروری محسوب می‌شود.


روش‌های مختلفی در تخمین و برآورد حجم فعالیت‌های لازم در انجام یک پروژه نرم‌افزاری در جامعه نرم‌افزار ارايه شده است. فارغ از این‌که از چه روشی در تخمین زمان و هزینه یک پروژه نرم‌افزاری استفاده می‌شود، مهم آن است که بدون وجود اطلاعات کافی در زمینه حوزه و دامنه سیستم و قابلیت‌ها و توانایی‌های آن و هم‌چنین شرایط محیطی و فرهنگی تیم تولید نرم‌افزار و پیچیدگی‌های تکنیکی آن، برآورد واقع‌بینانه پروژه کاری دور از دست‌رس می‌نماید.



پس نخست باید اطلاعات ضروری آماده شود. نگارنده این اطلاعات را در سه دسته تقسیم کرده است:
  • اطلاعات مربوط به حوزه سیستم و نیازهای کارکردی و غیر کارکردی آن
  • اطلاعات مربوط به محیطی که سیستم در آن عملیاتی خواهد شد.
  • اطلاعات مربوط به محیط تولید و توسعه سیستم
از این سه دسته اطلاعات گروه اول مهم‌ترین است. عدم تشخیص درست نیازها و قابلیت‌های کارکردی و غیر کارکردی سیستم، عموما و به‌غایت ما را از تخمین درست هزینه و زمان مورد نیاز دور می‌کند. به همین دلیل لازمه یک برآورد مناسب، تشخیص و تعیین اولیه نیازهای سیستم در فرآیندی سازمان‌یافته است. در روش‌های سنتی ساخت‌یافته به طور معمول بخشی از فعالیت‌های مرحله‌ي امکان‌سنجی به این امر اختصاص دارد. در فرآیندهای مدرن مهندسی نرم‌افزار مانند RUP نیز یکی از فعالیت‌های مهم مرحله اول آن یعنی Inception به تعیین و تخمین نیازهای سیستم و انتظارات اولیه برمی‌گردد؛ یعنی همان اطلاعات لازم جهت برآورد هزینه و زمان پروژه نرم‌افزاری.

نکته‌ي مهم آن است که در کشور ما ایران، به طور معمول قبل از انجام چنین مرحله‌ای و صرفا بر اساس شرح مشخصات بسیار کلی سیستم؛ یعنی بدون داشتن سه بخش اطلاعات كه در بالا به آن اشاره شد، زمان و هزینه پروژه‌ استعلام و برآورد و حتا تعیین می‌شود. چنین کاری در عمل به شکست پروژه‌های نرم‌افزاری منجر می‌شود. چرا که در مسیر تولید سیستم به دلیل اختلاف فزاینده‌ای که بین برآوردهای اولیه و هزینه‌های واقعی پروژه‌ای به وجود می‌آید دو نتیجه مشخص را غیر قابل اجتناب می‌کند:
- یا هزینه تولید سیستم افزایش می‌یابد که این یعنی ضرر تولیدکننده نرم‌افزار
- و یا سیستم با قابلیت‌ها و انتظارات ناکافی و در کیفیتی نامناسب ارايه می‌شود و این یعنی ضرر کارفرما یا مشتری

پس چه باید کرد؟ چه‌گونه می‌توان اطلاعات لازم سه گانه فوق را به دست آورد؟ آیا استفاه از RFP گروه اطلاعات اول را فراهم می‌سازد؟ به این سئوال به سختی می‌توان پاسخ داد؛ چرا که بر حسب آن که RFP را چه گروهی و با چه فرمت و استانداردی تهیه کرده باشد، جواب می‌تواند متفاوت باشد.

در این میان حلقه‌ي گمشده‌ی دیگری نیز به نظر می‌آید. اجرای مرحله اول فرآیند برای تعیین و برآورد واقعی‌تر پروژه ضروری است، با این همه مشکل در آن است که مشخص نیست هزینه‌ي اجرای این مرحله بر عهده کارفرما خواهد بود یا مجری؟ در صورتی که پروژه طی قراردادی قبل از اجرای این مرحله واگذار شود، پس برآوردها تفاوت فراوانی با واقعیت خواهد داشت و در صورتی که قرارداد پس از مرحله‌ي اول و جمع‌آوری اطلاعات بسته شود، در آن صورت هزینه‌ي اجرای مرحله اول بر عهده چه کسی خواهد بود؟ به همین دلیل بسیاری از پروژه‌های نرم‌افزاری در نیمه‌ي راه به دلیل برآوردهای غلط به شکست می‌انجامند یا در واقع نمی‌توانند نیازهای کاربران را برآورده نمایند.

همان طور که گفته شد روش‌های مختلفی برای تخمین و برآورد حجم فعالیت‌های لازم برای انجام یک پروژه نرم‌افزاری معرفی شده است. معروف‌ترین آن‌ها روش COCOMO است. از آن‌جا که قصد این نوشته تشریح این روش نیست فقط به بيان این نكته بسنده می‌شود که در این روش اساسا میزان خطوط کد لازم برای تولید برنامه بر اساس مفهوم Function point تخمین زده شده و بر اساس آن حجم فعالیت‌های لازم برای پروژه تخمین زده می‌شود.

با فرض این‌که نیازهای سیستم در قالب یوزکیس‌ها شناسایی شده اند، متخصصین RUP نیز روش‌های گوناگونی را برای تخمین هزینه و برآوردهای واقع بینانه پروژه ارايه کرده‌اند. روش دیگری که در میانه‌ي دهه‌ي 1990 ارايه شد روش Use Case Point است. در این روش با تعریف Use Case Point های سیستم و تخصیص نفر ساعت لازم برای پیاده‌سازی آن‌ها حجم فعالیت لازم تخمین زده می‌شود. هر یوزکیس شامل سناریو یا سناریوهایی است. علاوه بر UseCaseهای سیستم واسطه‌های ارتباطی یوزکیس با دنیای بیرون ازجمله برای مثال پنجره‌های ویندوز و یا صفحات وب نیز وجود دارند که طراحی و پیاده‌سازی آن خود حجم کار قابل توجهی را می‌طلبد. بنابر این قدم اول تشخیص یوزکیس‌ها و تشريح سناريوهای آن‌هاست. فرآیند تشخیص و تشریح یوزکیس‌های سیستم هر چه با دقت بیش‌تری انجام شود، برآوردهای واقعی‌تری را منتج خواهد بود. اما همان‌طور که کارشناسان RUP به خوبی می‌دانند، یوزکیس‌ها به عنوان مدلی از فعالیت‌های سیستم به طور كامل انتزاعی بوده و بسته به آن‌که چه کسی و از چه زاویه‌ای آن‌ را می‌نویسد سطوح و پیچیدگی‌های مختلفی می‌توانند داشته باشند. برای مثال می‌توان صدور چک را یک یوزکیس تلقی کرد و هم‌زمان می‌توان صدور چک را زیرسیستمی معرفی نمود که خود شامل تعداد مشخصی یوزکیس است. نتیجه آن که سطوح یوزکیس‌ها می‌توانند مختلف باشند و بنابراین در تعیین تعداد یوزکیس پوینت‌ها باید دقت بیش‌تری مبذول نمود. به هرحال بهتر است که سطوح انتزاع در تمامی سیستم از یک روال ثابتی پیروی کند، در غیر این صورت باید ضریب سطح انتزاع نیز در معادلات مربوط به Use Case Point در نظر گرفته شود


یوزکیس پوینت روشی در ارزیابی و تخمین هزینه و زمان پروژه های نرم‌افزاری

قبل از تشریح دقیق‌تر این روش اصطلاحات خاص این روش را بهتر بشناسیم:

آن‌چه خواننده باید بداند:



1. خواننده باید اطلاعات پایه را در مورد نوشتن یوزکیس داشته باشد. این مقاله توصیفی در مورد یوزکیس‌ها ارايه نداده و تنها نحوه تخمین زمان انجام را معرفی می‌کند. بنابراین اگر این نوشته را بدون اطلاع مکفی در مورد مفهوم بازیگر، نقش ، سناریو می‌خوانيد از آن استفاده‌ي زیادی نخواهید برد.

2. ساختار یوزکیس‌ها از سازمان به سازمان و از پروژه به پروژه متفاوت است. چیزی که اساسا در تخمین و ارزیابی موثر است. این نوشته بر مبنای ساختار ارايه شده توسط Allister Mac Lin در کتاب How To Write Effective Use Case نوشته شده است. مطالعه این کتاب را به خواننده توصیف می‌کنیم.


محدوده:
این مقاله صرفا در مورد درکUse Case Point بوده و اطلاعاتی درمورد نحوه نوشتن یوزکیس‌ها به خواننده نمی‌دهد. نوشته‌ها و مقالات بسیاری در این باب نوشته شده و در اینترنت نیز قابل دسترس است.
تاریخچه:

روش Use Case Point مبتنی بر کارustav karner که در سال 1993 به عنوان تز دانشگاهی ارايه شد. این روش امروزه به عنوان روش تخمین زمان و هزینه در برخی از ابزارهای مهندسی نرم‌افزار که از UML برای مدل‌سازی استفاده می‌کنند، پیش‌بینی شده است که از آن جمله می‌توان به ابزار نرم‌افزاری خوش‌دست Sparx System Enterprise Architect اشاره کرد.


مراحل روش یوزکیس پروینت برای تخمین


1. تعیین UAW) Unadjusted Actor Weight ): اولین قدم دسته‌بندی همه بازیگران سیستم است. در جدول زیر دسته‌بندی بازیگران آمده است. ستون دوم راهنمای تصمیم گیری در مورد نوع بازیگر بوده و نشان میدهد که بازیگر باید در کدام دسته قرار می‌شود. آخرین ستون نیز عامل پیچیدگی آن را نشان می‌دهد.




2. تعیین UUCW ( Unadjusted Use Case Point ). مرحله دوم شمارش یوزکیس‌ها و تعیین وزن آن‌ها بر حسب تعداد سناریوها و تعداد تراکنش‌های آن‌هاست.




3. تعیین مجموع UUCP (Unadjusted Use Case Point ): برای محاسبه این مقدار از فرمول روبه‌رو استفاده می‌شود: مجموع UAW + مجموع UUCW = UUCP

4. محاسبه عوامل تکنیکی و محیطی: آخرین قدم برای محاسبه پیچیدگی، تعیین و اندازه‌گیری عوامل تکنیکی و محیطی سیستم است. عوامل تکنیکی 13 مورد شناخته شده دارند هر چند می‌توان عوامل دیگری را نیز به آن اضافه نمود. به هر یک عوامل تکنیکی مقادیر 0 تا 5 نسبت داده می‌شود. مجموع عوامل تکنیکی فاکتور پیچیدگی تکنیکی پروژه را تعیین کرده و با ضرب آن در ضریب پیچیدگی، میزان پیچیدگی پروژه محاسبه می‌شود. هر عامل تکنیکی وزنی نیز دارد که میزان تاثیر آن را مشخص می‌کند.





1. محاسبه فاکتور تکنیکی

برای محاسبه فاکتور تکنیکی پروژه از معادله Tfactor =T1 +T2 + …….T12+T13 استفاده می‌گردد.

2. محاسبه ميزان پيچيدگي تكنيكي پروژه:

میزان پیچیدگی تکنیکی پروژه با فرمول TCF= 0.6 +(0.01* Tfactor)محاسبه می‌شود.


3. عامل محیطی:

عوامل دیگری نیز هستند که باید در نظر گرفته شوند از جمله عوامل محیط تولید نرم‌افزار که اثر مستقیم بر روی زمان و هزینه‌ي پروژه خواهد داشت.






4.مجموع عوامل محیطی از جمع مقادیر بالا محاسبه می‌شود:

یعنی:Efactor=SUM(e1….e8)

5.برای محاسبه ضریب عامل محیطی از معادله EF=1.4+(-0.03 * Efactor)استفاده می‌شود.

6. د رنهایت مقدارAUCP (Adjusted Use Case Points ) با استفاده از فرمول زیر محاسبه می‌شود؛ یعنی AUCP=UUCP * TCF * EF

با ضرب مقدار به دست آمده در نفر ساعت لازم برای انجام هر یوزکیس پوینت نفر ساعت کل لازم برای انجام پروژه به دست می‌آید. برای میزان نفر ساعت لازم برای هر Use Case Point مقادیر متفاوتی پیشنهاد شده از جمله 10، 15 و 20 و حتا 30 تا 40 نفر ساعت برای هرUse Case Point در نظر گرفته شده است. با این همه بعضی از متخصصان بیان کرده‌اند که این عدد خود به فاکتورهای محیطی مرتبط است. تجربه عملی نگارنده نشان داده که میزان 10 تا 15 نفر ساعت در محیط‌های کاری ما مناسب است.


مثال عملی برای تخمین زمان یک پروژه

برای نشان دادن چگونگی تخمین هزینه یک پروژه از یک مثال ساده استفاده می‌کنیم. ابتدا حوزه مساله:

شرکت راپیران در حال حاضر از روش دستی برای ثبت و ویرایش اطلاعات مشتریان خود و میزان اعتبار آن‌ها استفاده می‌کند. اطلاعات مشتریان به همراه اطلاعات کارت‌های اعتباری آنها در دفاتری ثبت میگردد و سپس اطلاعات کارت اعتباری آن‌ها از طریق سیستم کارت خوان که توسط بانک در اختیار شرکت گذاشته شده کنترل می‌گردد. اطلاعات مشتریان عبارت است از:

- کد مشتری

- نام مشتری

- آدرس مشتری

- تلفن مشتری

- اطلاعات معتبر کارت اعتباری مشتری

کد مشتری برای هر مشتری یکتا بوده بنا بر این کارمند پذیرش مشتریان بصورت دستی اطلاعات را کنترل و در دفتر ثبت مینماید . راپیران میخواهد فعالیتها و کنترلهای زیر در ثبت و ویرایش اطلاعات مشتریانش بصورت مکانیزه انجام شود:

- کنترل یکتایی کد مشتری

- کد مشتری نباید از 8 حرف و عدد بیشتر باشد

- کنترل کارت اعتباری مشتری باید از طریق ارتباط سیستم با سیستم کارت خوان بانک بصورت اتوماتیک انجام شود

- طول شماره کارت اعتباری نباید بیش از 10 حرف یا عدد باشد

- اپراتور باید بتواند اطلاعات مشتری جدیدی را اضافه کرده و اطلاعات مشتری موجود را تغییر داده ویا آنرا حذف کند

- بانک اطلاعاتی در دفتر اطلاعات شرکت نصب شده و تنها ورود و ویرایش و حذف اطلاعات توسط اپراتور سیستم انجام میشود

- نرم افزار در میحیط ویندوز اجرا خواهد شد و سیستم عامل ویندوز XP به اینمظور استنفاده خواهد شد

یوزکیس ورود اطلاعات مشتری در سیستم مشتریان شرکت راپیران

الگوی تشریح و توصیف یوزکیس از شخص به شخص و از پروژه به پروژه و از سازمان به سازمان متفاوت است . موضوع اصلی در ترتیب و مراحلی است که در سناریو می‌آید.



تراکنش یوزکیس:تراکنش یوزکیس، واحد مجموعه فعالیت‌هایی است که به طور کامل انجام می‌شود. برای تشخیص تراکنش یوزکیس باید دید که آیا تراکنش ارزشی تولید می‌کند. در صورتی که یک فعالیت ارزشی را تولید نمی‌کند نباید آن را به عنوان تراکنش یوزکیس در نظر گرفت؛ برای مثال این‌که کاربر کامپیوتر خود را روشن می‌کند و یا این‌ که کاربر روی کلید ایجاد مشتری و یا هر کلید دیگری در پنجره ارتباطی خود کلیک می‌کند تراکنش محسوب نمی‌شود، اما کارت اعتباری مشتری توسط یک تراکنش کنترل اعتبار بررسی می‌گردد. تعدادUse Case Point ها به طور كامل بستگی به چگونگی تعریف بازیگران و تراکنش‌های تعریف شده دارد . بنا براین تشریح وتوصیف یوزکیس ها باید ازطریق الگوها و سرخطهای مشخصی انجام شود . بهترین راه برگزاری جلسه با تمامی اعضای تیم مسئول انجام پروژه قبل از نوشتن شرح یوزکیس است. عمق تشریح یوزکیس می‌تواند تا 40 درصد روی تخمین انجام شده تاثیر گذار باشد. روش و الگویی که در این‌جا ارايه می‌شود، تنها الگو نبوده و تنها برای تشریح مساله‌ي بالا ارايه شده است.



 
نويسنده : حميد مشرف (كارشناس مهندسي نرم‌افزار h_moshref@yahoo.com)
ناشر : همكاران سيستم

همه چيز درباره Ajax‌

همه چيز درباره Ajax‌
واژه Ajax سرنام عبارت Asynchronous JavaScript and XML و به معني <جاوا اسكريپت و XML آسنكرون يا نامتقارن> است. اي‌جكس فناوري جديدي است كه به كمك آن مي‌توان اينترفيس يك برنامه تحت وب را طوري ساخت كه وقتي كاربر روي دكمه يا لينكي كليك مي‌كند، كليه عمليات ارسال اطلاعات و دريافت نتايج در پشت صحنه انجام ‌شود و فقط آن قسمت از اينترفيس كه قرار است اطلاعات جديد را به نمايش درآورد تغيير ‌كند بدون اينكه تمام صفحه از نو بارگذاري شود. در اين مقاله مي‌خواهيم اين فناوري نوين و تحول آفرين را از جنبه‌هاي مختلف مورد بررسي قرار دهيم و با مباني فني آن آشنا شويم.


كمربندها را ببنديد

آيا از دنياي كلاسيك وب خسته شده‌ايد؟ آيا مايليد با چهره جديد وب آشنا شويد؟ آيا مي‌خواهيد با جديدترين فناوري دنياي برنامه‌نويسي وب آشنا شويد؟ براي پرواز آماده باشيد! مقصد ما يكي از استان‌هاي كشور جديد التاسيس Web 2.0 است. مي‌خواهيم با هم به دنياي هيجان انگيز Ajax سفر كنيم.

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

تصور كنيد به صورت آنلاين در حال خواندن نامه‌هاي الكترونيكي خود در يكي از سايت‌هاي ياهو يا جي‌ميل هستيد. فورا يادتان مي‌افتد كه بايد به كسي نامه‌اي بفرستيد. لازم نيست صفحه‌اي كه در حال مطالعه آن هستيد را ترك كنيد و يا با استفاده از ترفندهايي مانند رايت كليك و فرمان Open in New window يك پنجره جديد بازكنيد و منتظر بارگذاري مجدد صفحه شويد. شما فقط مي‌خواهيد يك پنجره جديد باز كنيد كه داخلش نامه خود را تايپ كنيد.

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

همه دكمه‌هاي مورد نياز داخل اينترفيس سايت موجود است. برخلاف جهان Web 1.0، در دنياي اي‌جكس گشت و گذار در وب لزوما خطي نيست. اگر مي‌خواهيد از يك فروشگاه الكترونيكي خريد كنيد، مي‌توانيد محصول مورد نظرتان را به روش drag&drop داخل سبد بيندازيد و با فشردن دكمه نهايي، خريد خود را ثبت كنيد. پيغام ثبت موفقيت آميز سفارش براي شما نمايش داده مي‌شود و كار تمام است. لازم نيست از صفحه الف به صفحه ب و سپس از آنجا به صفحه ج برويد.


اي‌جكس چيست؟
اين واژه را اولين بار جسي جيمز گرت (Jesse James Garrett)، برنامه‌نويسي از شركت Adaptive Path در مقاله‌اي با عنوان <اي‌جكس: رهيافت جديدي در برنامه‌هاي تحت وب> به‌كار برد. اي‌جكس سرنام عبارت Asynchronous JavaScript and XML و به معني تركيب نامتقارن جاوا اسكپريپت و ‌XML است.

چرا نامتقارن؟ چون تركيب اين دو فناوري به شما كمك مي‌كند قسمتي از يك صفحه وب را بروز كنيد بدون اينكه لازم باشد <همزمان يا متقارن> با اين عمل، كل آن صفحه از نو بارگذاري شود. اين عمليات توسط شيء و فرماني به نام XMLHttpRequest انجام مي‌شود كه سال‌ها پيش، هنگام معرفي نسخه 4 مرورگر اينترنت اكسپلورر وارد اين نرم‌افزار شده و به دليل قابليت‌هاي جالبي كه دارد، اين روزها تمام مرورگرهاي معروف و قدرتمند وب مانند فايرفاكس و اپرا از آن پشتيباني مي‌كنند. به كمك اين شي‌ء مي‌توانيد برنامه‌هايي به زبان جاوا اسكريپت بنويسيد كه در پشت صحنه يك صفحه وب اطلاعاتي را به سرور بفرستند و داده‌هايي را دريافت كنند.

اي‌جكس اساسا رهاوردي از دنياي جاوا است و بار ديگر فناوري جاوا و زبان اسكريپت‌نويسي وابسته به آن را در كانون توجه برنامه‌نويسان قرار داده است. اما خبر خوب اينست كه چون همه پلتفرم‌هاي برنامه‌نويسي وب از قبيلPHP ،ASP.NET و JSP از جاوا اسكريپت و ‌XML پشتيباني مي‌كنند، فناوري اي‌جكس در همه اين پلاتفرم‌ها پياده‌سازي شده و حتي جالب است بدانيد كه تعداد ماژول‌هاي اي‌جكس نوشته شده براي دات نت و ‌PHP بيشتر از انواع جاوايي آن است.

مايكروسافت كه سال‌ها پيش از شيء XMLHttpRequest در نرم‌افزار Outlook Web Access استفاده كرد و جزو اولين ترويج‌دهندگان اين تكنيك به شمار مي‌رود اخيرا نرم‌افزاري به نام Atlas معرفي كرده كه مخصوص برنامه‌نويسي مبتني بر اي‌جكس است. اما چون اي‌جكس بر اساس جاوا كار مي‌كند بديهي است كه جنبش اپن سورس و خيل عظيم برنامه‌نويسان جاوا نيز بيكار نمانده‌ و مي‌كوشند تا دير نشده Ajax را به قلب دنياي نرم‌افزارهاي آزاد بياورند و از انحصاري شدن آن جلوگيري كنند تا اين فناوري به استاندارد جديد وب تبديل شود. به نظر مي‌رسد كه آنها موفق بوده‌اند زيرا حتي پياده‌سازي‌هاي دات نتي اي‌جكس نيز اغلب به صورت اپن سورس است.


مكانيزم Ajax
جسي جيمز گرت در مقاله معروف خود شيوه عمل اي‌جكس را چنين توضيح مي‌دهد: هر عمل از سوي كاربر كه به طور معمول موجب توليد يك تقاضاي HTTP شود به جاي ارسال مستقيم به وب، موجب فراخواني يك فرمان جاوا اسكريپتي و هدايت آن به موتور اي‌جكس مي‌شود. هر نوع پاسخي به كاربر از سوي سرور (مانند كنترل صحت داده‌هاي وارد شده در يك فرم ورود اطلاعات، ويرايش اطلاعات در حافظه و حتي برخي از انواع هدايت كاربر در سايت) نيازي به ارسال يك صفحه جديد به سمت كاربر ندارد و تنها همان قسمتي كه بايد تغيير كند بروز مي‌شود.

به طور سنتي وقتي كاربر فرمي را پرمي‌كند و به سايت ارسال مي‌كند، وب سرور با بارگذاري مجدد يا تازه‌سازي صفحه (refresh) و نمايش يك پيغام و يا نتيجه پردازش اطلاعات، به او پاسخ مي‌دهد و به همين دليل هم وقت سرور براي ارسال كل محتواي آن صفحه گرفته مي‌شود و هم كاربر بايد براي دريافت كامل آن صفحه منتظر بماند؛ كه نتيجه آن كاهش بازده سرور، مصرف پهناي باند و تلف شدن وقت و هزينه است. اما به‌كارگيري تكنيك اي‌جكس اين مشكلات را به طرز قابل‌ملاحظه‌اي كاهش مي‌دهد.



گوگل باز هم پيشتار





همانطور كه جسي جيمز گرت مي‌نويسد، گوگل در ميان سايت‌هاي اينترنتي از نظر ميزان به‌كارگيري فناوري اي‌جكس پيشتاز است و اين تكنيك را در نرم‌افزار سايت‌هاي Orkut ،Gmail ،Google Groups، سيستم Google Suggest و سرويس Google Maps به كار برده است. همچنين به گفته گرت بسياري از قابليت‌هاي دوست داشتني Flickr، سايت به اشتراك‌گذاري عكس ياهو، و نيز موتور جستجوي A9 در سايت آمازون بر اساس اي‌جكس كار مي‌كنند.


گرت مي‌نويسد: اگر موتور اي‌جكس براي پاسخ دادن به كاربر نيازمند گرفتن اطلاعاتي از سمت سرور است، اگر قرار است داده‌ها براي پردازش به سرور ارسال شوند، اگر لازم است كدهاي اضافي براي نمايش تغييرات اينترفيس بارگذاري شوند، اگر نياز به بازيابي و بيرون كشيدن اطلاعات از بانك اطلاعاتي باشد، همه اين كارها به‌طور آسنكرون و با استفاده از XML، بدون اينكه وقفه‌اي در تماس ميان كاربر و اينترفيس نرم‌افزار به‌وجود آيد توسط موتور اي‌جكس انجام خواهد شد.

شكل 1




شكل 2




شكل‌هاي 1 و 2 تصاويري هستند كه گرت در مقاله خود استفاده كرده است. شكل 1 مقايسه‌اي است كه نشان مي‌دهد كه برنامه‌هاي تحت وب سنتي چگونه كنش‌هاي كاربر را مديريت مي‌كنند و اي‌جكس چگونه همين عمليات را كنترل مي‌كند.

شكل 2 مقايسه ديگري است كه نشان مي‌دهد اگر تعامل كاربر با يك سايت را در محور زمان ترسيم كنيم، چه تفاوتي ميان فرآيند ارسال و دريافت داده‌ها در نرم‌افزارهاي سنتي و نرم‌افزارهاي مبتني بر فناوري اي‌جكس وجود دارد.

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



مزايا و معايب Ajax

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

نگاهي به سير تحولات مربوط به زبان‌هاي برنامه‌نويسي وب مانند PHP و ASP از يك‌سو و كاهش اقبال برنامه‌نويسان به فناوري‌هايي همچون ActiveX و Java Applet در سمت كلاينت از سوي ديگر، مويد اين نكته است.

در واقع يكي از دلايل مهم توجه دنياي نرم‌افزار به فناوري اي‌جكس همين است. اين دستاورد برخلاف فناوري‌هايي مانند Macromedia Flash نيازمند نصب هيچ نرم‌افزار الحاقي و اضافي روي مرورگر نيست و همين حالا بستر لازم براي پياده‌سازي اي‌جكس روي ميليون‌ها سايت و مرورگر وب وجود دارد. در اين ميان، اتكاي اي‌جكس بر فناوري XMLاز اهميت ويژه‌اي برخوردار است.

زيرا XML ماهيتا يك فناوري باز است كه انعطاف‌پذيري زيادي دارد و هم‌اكنون در مقياس گسترده‌اي در نرم‌افزارهاي تحت وب، از سيستم‌هاي تجارت‌الكترونيك گرفته تا نرم‌افزارهاي مديريت محتواي سايت‌هاي وب و فناوري‌هايي همچون وب‌سرويس، ‌RSS و حتي پادكستينگ مورد استفاده قرار مي‌گيرد.

ظهور اي‌جكس نشان مي‌دهد كه فناوري XML هنوز قابليت‌هاي كشف‌نشده‌‌اي دارد كه همچنان بكر مانده‌اند و مي‌توانند منشا تحولات بزرگ در سيستم‌هاي اطلاعاتي و ارتباطي باشند.




طعم كد Ajax چگونه است؟




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

كد1



كد 2 نمونه‌اي از اعلان شي‌ء ‌XMLHttpRequest را در مرورگرهاي مايكروسافتي نشان مي‌دهد:
كد 2






كد 3 نمونه‌اي از كد‌نويسي جاوا اسكريپت را نشان مي‌دهد. در اي‌جكس به وفور از متدولوژي DOM در جاوا اسكريپت و DHTML استفاده مي‌كنيم:
كد 3






كد 4 نيز نمونه‌‌اي از روش ارسال يك تقاضا به وسيله Ajax را نشان مي‌دهد:
كد 4






اين تقاضا مي‌تواند مثلا از قسمتي از يك صفحه وب به صورت كد 5 باشد:
كد 5






نهايتا پاسخ دريافت شده از سمت سرور را نيز مي‌توان به وسيله كدي شبيه به كد 6 مورد استفاده قرار داد:
كد 6






در همين ارتباط، رويكرد اي‌جكس به سمت فناوري وب‌سرويس قابل توجه است. از آنجا كه ‌Ajax تا حد زيادي به معماري XMLHttpRequest وابسته است، اين قابليت را دارد كه فرامين ارسال و دريافت اطلاعات را نه فقط از طريق سايت اصلي نمايش‌ دهنده يك صفحه وب، بلكه از طريق سايت‌هاي ديگري كه احتمالا اطلاعات خود را بر بستر وب سرويس و ‌XML قرار داده‌اند نيز دريافت كند. بنابراين اي‌جكس بالقوه يك فناوري سازگار با وب سرويس نيز هستد.
مزيت مهم ديگر Ajax بهره‌گيري آن از استاندارد CSS است.

استانداردي كه به تنهايي منشا تحولات ديگري در زمينه اينترفيس نرم‌افزارهاي وب است و در آينده بسيار نزديك به وجه غالب صفحه‌آرايي و اينترفيس سايت‌هاي وب تبديل خواهد شد. توجه اي‌جكس به CSS شان مي‌دهد كه اين فناوري همزمان با به‌كارگيري جاوا اسكريپت و ‌XML براي مديريت داده‌ها، از استاندارد پيشرفته‌اي براي اينترفيس وب استفاده مي‌كند و مي‌توان حقيقتا آن را يك فناوري مرتبط با اينترفيس ( و نه فقط تعامل ميان كلاينت و سرور) تلقي كرد.

با اين وجود، اي‌جكس معايبي نيز دارد و اين معايب موضوع بحث بسياري در محافل برنامه‌نويسي روي اينترنت است. يكي از مسائلي كه به عنوان ايراد مطرح شده، دشواري تغيير عادت كاربران در استفاده از كليدهاي Back وForward و Refresh در مرورگرهاي وب است. يكي از مشكلات برنامه‌نويسان وب همواره اين است كه يا بايد كاربر را عادت دهند كه هرچه كمتر از اين دكمه‌ها استفاده كند و يا نرم‌افزار خود را طوري بنويسند كه اگر كاربر سهوا يا عمدا از اين دكمه‌ها استفاده كرد، نرم‌افزار دچار اشتباه و خطا در تفسير عمل كاربر نشود.

به عنوان مثال هنوز بسياري از سايت‌هاي تجارت الكترونيكي كه به كار فروش محصولات مشغولند هنگام طي شدن مراحل نهايي خريد آنلاين به كاربر هشدار مي‌دهند كه حين پردازش يك سفارش (يعني درست در لحظه‌اي كه فرمان نهايي از سوي كاربر ارسال شده است و هنوز صفحه نمايش پيغام ثبت موفقيت‌آميز سفارش يا عدم ثبت آن براي وي نمايش داده نشده) از فشردن كليد Refresh جدا پرهيز كنند وگرنه ممكن است از كارت اعتبار آنها دوبار پول كسر شود. همچنين استفاده از دكمه‌هاي Back و Forward در عملياتي كه به آساني برگشت‌پذير نيستند ممكن است باعث گيج شدن كاربر است.

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

در واقع با حضور Ajax، كاركرد سيستم History مرورگر به مساله‌اي بغرنج تبديل مي‌شود. زيرا برنامه‌نويس يا بايد با گنجاندن دكمه‌ها و فرامين اضافي، مكانيزم ‌Undo را بازسازي كند و يا موتور اي‌جكس را طوري بنويسد كه فشردن دكمه ‌Back خود به خود موجب احظار فرمان Undo شود.

در هر دو صورت كار برنامه‌نويس آسان نخواهد بود. البته در اين زمينه ترفندها و تكنيك‌هايي هم ابداع شده است. از جمله، استفاده از تگ ‌IFRAME مخفي در اينترفيس صفحه كه موتور اي‌جكس بتواند در صورت فشرده شدن دكمهBack از سوي كاربر، نسخه‌هاي پيشين نمايش داده شده از اينترفيس را از انباره ‌History مرورگر بيرون بكشد و دوباره در چرخه عمليات موتور اي‌جكس وارد كند. اين ترفند هم‌اكنون در سرويس Google Maps استفاده مي‌شود.
مشكل ديگري كه در رابطه با اي‌جكس وجود دارد، بي معني شدن مفهوم Bookmark است.

بازهم مكانيزم غيرخطي اي‌جكس مشكل ساز مي‌شود. آيا شما مي‌توانيد در نرم‌افزارهاي معمولي دسكتاپ يك لحظه مشخص را Bookmark كنيد و دوباره به آن برگرديد؟ بعضي از نرم‌افزارها مانند فتوشاپ
(سيستم Action history) اين‌كار را انجام مي‌دهند، ولي اغلب نرم‌افزارها چنين نيستند. در واقع به سختي مي‌توان از لحظات مختلف يك نرم‌افزار عكس گرفت و snapshot تهيه كرد.

اين‌كار به يك انباره پيچيده نياز دارد كه هم حالت‌هاي مختلف اينترفيس و هم وضعيت‌هاي متفاوت داده‌ها را قبل و پس از تغييرات در خود نگه دارد. البته درمورد Ajax راهكارهايي در اين زمينه پيشنهاد شده است. از جمله استفاده از anchor در HTML كه پس از علا‌مت َ‌ در يك URL ‌ظاهر مي‌شود. از آنجايي كه جاوا اسكريپت امكان به روزرساني دايناميك آنكورها را دارد، بعضي برنامه‌نويسان پيشنهاد كرده‌اند كه از اين ترفند براي نگهداري حالات مختلف يك برنامه مبتني بر اي‌جكس استفاده شود. تكنيكي كه ممكن است در زمينه حل مشكل دكمه‌هاي Back و Forward نيز سودمند واقع شود.

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

البته براي غلبه بر اين مشكل راه‌حل‌هايي هم پيشنهاد شده است، از جمله اين‌كه شي ‌ءXMLHttpRequest مي‌تواند تقاضاي ديالوگ با سايت‌هاي ديگر را به يك وب سرويس روي سايتي كه صفحه وب از آنجا آمده است بفرستد و اين وب‌سرويس (كه روي ميزبان سايت قرار دارد و با تمام اينترنت در ارتباط است) به صورت يك واسطه عمل كند و تقاضاهاي مورد نظر را براي سايت مقصد ارسال كند. اين وب سرويس‌هاي واسطه اصطلاحا Application Proxy ناميده مي‌شوند.

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

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



جنبش Open Ajax هم از راه رسيد




در كنار همه تحولاتي كه به دنبال ظهور پديده اي‌جكس در صنعت نرم‌افزار پديد آمده است، يك خبر مهم نيز قابل توجه است. شركت IBM كه خود از پيشگامان فناوري XML است، در ابتداي ماه فوريه 2006 اعلام كرد يك ائتلاف بزرگ صنعتي متشكل از شركت‌‌هاي بورلند، BEA Systems ،Zend، ناول، ياهو، موزيلا، ردهت، اوراكل و بنياد اكليپس ايجاد كرده است كه در نظر دارد براي توسعه يك پياده‌سازي فراگير و اپن سورس از اي‌جكس تلاش كند. پيش بيني مي‌شود كه اين پياده‌سازي به يكي از استانداردهاي اصلي اي‌جكس در صنعت نرم‌افزار تبديل شود. آي‌بي‌ام در نظر دارد مجموعه Toolkit ‌پيشنهادي خود را از طريق بنيادهاي موزيلا و اكليپس در دسترس جامعه اپن سورس قراردهد. در همين رابطه شركت Zimbra، يك سازنده نرم‌افزارهاي مبتني بر اي‌جكس درنظردارد مجموعه Toolkit خود را تحت ليسانس موزيلا و Apache در اختيار برنامه‌نويسان قرار دهد.


در عين حال وقتي حجم جاوا اسكريپت بارگذاري شده روي كلاينت افزايش مي‌يابد سرعت پردازش كامپيوتري كه كاربر استفاده مي‌كند نيز به يك مسئله تبديل مي‌شود. به بيان ديگر، اي‌جكس‌ شديدا منابع و resource ‌هاي سيستم را به‌كارمي‌گيرد، چنانكه به جرات مي‌توان گفت نرم‌افزارهاي مبتني‌بر Ajax براي كاربراني كه از كامپيوترهاي ضعيف و قديمي استفاده مي‌كنند قابل استفاده نيست.

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


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

برنامه‌نويسان ASP.NET در صورتي كه از نسخه دات نت 1.1 استفاده مي‌كنند مي‌توان از ماژولAjax.NET استفاده كنند كه اولين پياده‌سازي دات‌نتي اي‌جكس و رايگان است. مايكروسافت در ASP.NET 2.0 اين فناوري را با نام Atlas وارد پلتفرم كرده است كه علاقه‌مندان مي‌توانند يكراست سراغ آن بروند.

براي پلتفرم جاوا نيز چندين پياده‌سازي مختلف، اغلب اپن سورس، وجود دارد. از جمله AjaxAnywhere و AjaxTagsرا ببينيد. همچنين چندين پياده‌سازي مخصوصPHP مي‌توانيد پيدا كنيد. ماژول‌هاي CPAINT و xajax از آن جمله‌اند. ماژول CPAINT براي ASP نيز قابل استفاده است. چند ماژول ديگر هم مانند GeneXus وجود دارند كه مالتي پلتفرم هستند. براي هريك از پلتفرم‌هاي Perl ،ColdFusion و Python نيز دست‌كم يك پياده‌سازي معروف وجود دارد. فهرست كامل همه اين پياده‌سازي‌ها را به همراه آدرس سايت و لينك دانلود آنها را مي‌توانيد در ضميمه آنلاين همين مقاله كه همزمان با انتشار اين شماره در بخش دانلود سايت ماهنامه شبكه قرار مي‌گيرد، پيدا كنيد.

بهروز نوعي‌پور‌
ماهنامه شبکه - شماره 62

PageRank گوگل چگونه محاسبه مي شود

PageRank گوگل چگونه محاسبه مي شود
  • اين مقاله با كمي تغييرات ، ترجمه اي از مقاله The Google Pagerank Algorithm and How It Works‌ نوشته Ian Rogers است.
  • لازم به ذكر است كه كليه تصاوير و لينكهاي مربوط به اجراء برنامه ها در سايت http://www.iprcom.com ميباشد و مترجم هيچگونه دخالتي در آنها نداشته است.
كاربرد PageRank

PageRank يكي از روشهائي است كه  Google‌ از آن براي تعيين ارتباط يك صفحه با موضوع و اهميت آن استفاده مي كند. PageRank تنها يكي از مقوله هائي است كه مربوط به ليست شدن سايتها در گوگل مي باشند.

PageRank هر صفحه در نوار ابزار ( Toolbar ) گوگل نمايش داده ميشود. اگر بخواهيد ميتوانيد آنرا از آدرس http://toolbar.google.com  دريافت نمائيد. PageRank عددي بين 0 و 10 است و به نظر ميرسد كه از يك مقياس لگاريتمي پيروي مي نمايد.

Toolbar PageRank
(log base 10)

Real PageRank

0

0 - 10

1

100 - 1,000

2

1,000 - 10,000

3

10,000 - 100,000

4

and so on...

جزئيات دقيق اين مقياس مشخص نيست ، چرا كه PageRank صفحات هر ماه و در زماني كه گوگل رتبه بندي خود را انجام ميدهد عوض ميشود . اگر فرض كنيم كه مقياس به صورت لگاريتمي است ، پس گوگل مي تواند به بالاترين PageRank  عدد 10 را نسبت دهد و بقيه را  نسبت به آن رتبه بندي نمايد. همچنين خود نوار ابزار گوگل بعضي مواقع PageRank  را حدس ميزند به خاطر اينكه به صفحاتي كه تازه Upload شده اند نيز PageRank  تعلق ميگيرد.
اينطور به نظر ميرسد كه نوار ابزار به URL نگاه ميكند و از روي آن صفحه مادر ( اشاره كننده ) را تشخيص ميدهد و اگر صفحه مادر داراي PageRank  باشد ، نوار ابزار عدد 1 را از آن كم ميكند و به به صفحه مذكور PageRank نسبت ميدهد. و اگر از اين راه نتواند PageRank را حدس بزند آنگاه عبارت PageRank  بروي نوار ابزار خاكستري ميشود و عبارت No PageRank Information available پس از قرار گرفتن موس بروي آن نمايش داده ميشود.

PageRank چيست؟

به طور مختصر ميتوان گفت كه : PageRank يك "راي" به اهميت يك صفحه خاص است كه توسط تمامي صفحات ديگر وب به آن اختصاص داده مي شود. هر link به صفحه يك راي مثبت به PageRank آن مي باشد و اگر لينكي وجود نداشته باشد راي ممتنع ميگردد (دقت كنيد كه راي منفي نمي شود).
خود گوگل PageRank  را به شرح زير تعريف مي نمايد.

"فرض كنيم كه صفحه A داراي صفحات T1 تا Tn است كه به آن اشاره مي كنند. d هم يك فاكتور كند كننده ( damping factor ) است كه مقداري بين 0 تا 1 دارد. معمولا براي  d مقداري معادل 0.85 انتخاب ميشود. همچنين C(A)  تعداد لينكهائي كه اين صفحه به صفحات ديگر داده است.  در اين صورت PageRank صفحه A مساوي است با :

PR(A) = (1-d) + d(PR(T1)/C(T1)+...+PR(Tn)/C(Tn))

بايد توجه داشت كه PageRank  به صورت يك احتمال پراكندگي ( probability distribution) بوجود مي آيد و از يك الگوريتم تكرار شونده استفاده ميكند."

اجازه دهيد كه نحوه عملكرد اين فرمول را با تقسيم وظايف اجزاي آن توضيح دهيم  :

  1. PR(Tn) : هر صفحه PageRank خود را دارد. كه PR(T1) براي  صفحه اول سايت است و PR(Tn) براي nامين صفحه اي كه در سايت به آن مي رسيم.
  2.  C(Tn)  : هر صفحه راي خود را به صورت مساوي بين صفحاتي كه به آنها لينك داده است تقسيم ميكند. تعداد لينكهاي خارج شده از صفحه 1 را با  C(1) و براي صفحه nام را با C(n) نشان داده ايم.
  3. PR(Tn)/C(Tn)  : اگر صفحه A‌ از صفحه n يك لينك داشته باشد آنگاه سهم راي صفحه A برابر ميشود با PR(Tn)/C(Tn)
  4. d(... : تمامي آراء با هم جمع ميشود و براي اينكه از افزايش بي رويه وزن برخي از صفحات جلوگيري شود اين مجموع در  عدد 0.85 ضرب مي شود.
  5. (1-d) : براي اينكه ميانگين PageRank ها همواره يك باشد.
نحوه محاسبه PageRank

فهميديم كه PageRank صفحه به PageRank صفحاتي كه به آن لينك داده اند بستگي دارد. بنابر اين اين طور به نظر مياد كه ما نميتوانيم PageRank يك صفحه را بدست بياوريم مگر آنكه PageRank صفحات اشاره كننده به آن را محاسبه كنيم. و همچنين اگر يك صفحه داراي لينك به خودش باشد و يا اينكه صفحات از يك شكل دايره اي لينك دادن استفاده كرده باشند تكليف چيست؟
اما حقيقت امر به اين بدي نيست . يعني ما ميتوانيم PageRank صفحه را بدون دانستن PageRank صفحات ديگر بدست آوريم. اين عجيب به نظر ميرسد ولي اساسا هر بار كه ما محاسبه را تكرار ميكنيم يك رقم به رقم نهائي نزديك تر ميشويم. پس تنها چيزي كه بايد به خاطر داشت مقدار بدست آمده در هر بار محاسبه فرمول ميباشد و آنرا بايد تكرار كرد تا آنكه ديگر عدد بدست آمده آنچنان تغييري نكند. در اين زمان به عدد PageRank واقعي رسيده ايم.
يك مثال ساده : دوصفحه كه هر كدام به يكديگر اشاره ميكنند.

هر كدام از اين صفحات تنها يك لينك خروجي دارد . پس C(A) = 1 , C(B) = 1

نميدانيم كه براي شروع  PageRank اين صفحات چيست . پس حدس مي زنيم.

حدس 1 :
حدس  مي زنيم كه  PageRank صفحات 1 است و محاسبه را انجام مي دهيم.

d=0.85
PR(A) = (1-d) + d(PR(B)/1)
PR(B) = (1-d) + d(PR(A)/1)

كه مي شود

PR(A) = 0.15 + 0.85 * 1 = 1
PR(B)= 0.15 + 0.85 * 1 = 1

اعداد اصلا تغيير نميكند ، پس به اين نتيجه مي رسيم كه حدس اول بسيار حدس خوبي بوده است.

حدس 2 :
حدس اول خيلي ساده ما را به نتيجه رساند ، پس ممكن است كه درست نباشد. اجازه دهيد حدس را به عدد صفر تغيير دهيم و محاسبات را تكرار كنيم.

PR(A) = 0.15 + 0.85 * 0 = 0.15
PR(B) = 0.15 + 0.85 * 0.15 = 0.2775

و دوباره تكرار ميكنيم :

PR(A) = 0.15 + 0.85 * 0.2775 = 0.385875
PR(B) = 0.15 + 0.85 * 0.385875 = 0.47799375

و دوباره تكرار ميكنيم :

 

PR(A) = 0.15 + 0.85 * 0.47799375 = 0.5562946875
PR(B) = 0.15 + 0.85 *  0.5562946875 = 0.622850484375

به همين ترتيب اعداد بزرگتر مي شوند ولي آيا اعداد از يك هم بيشتر ميشوند؟ و اگر عددي از يك بيشتر شود چه بايد كرد؟

حدس 3 :
حالا فرض كنيم كه عدد شروع 40 است. يعني PageRank صفحات A و B عدد 40 است. پس خواهيم داشت:

PR(A) = 0.15 + 0.85 * 40 = 34.15
PR(B) = 0.15 + 0.85 * 34.15 = 29.1775

و دوباره تكرار ميكنيم :

PR(A) = 0.15 + 0.85 * 29.1775 = 24.950875
PR(B) = 0.15 + 0.85 * 24.950875 = 21.35824375

خوب، همان طور كه پيداست اعداد به سمت عدد 1 كم مي شوند و زماني كه به عدد يك برسند ديگر تغيير نخواهند كرد.
كد اجرائي و همچنين برنامه مورد نظر اين محاسبات كه با حدس صفر شروع شده : Show the code | Run the program

اصل مهم : بنابر اين مهم نيست كه حدس را چه عددي قرار دهيم ، محاسبه نهائي به عدد يك ختم خواهد شد.

به جواب سريعتر برسيم

براي رسيدن به جواب در شبكه هاي بزرگ به چه تعداد محاسبه نياز است؟ مثلا براي شبكه اي به گستردگي اينترنت احتياج به ميليونها محاسبه خواهد بود. انتخاب ترتيب  محاسبه مي تونه مفيد باشه. با اينكه جواب نهائي يكسان است ، اما انتخاب ترتيب مراحل محاسبات ميتونه به سرعت انجام آن كمك كنه.

حال به يك سري مثال مي پردازيم كه توسط برنامه اي كه لينك آن در انتهاي هر مثال موجود است و در 20 تا 40 مرحله محاسبات انجام شده است.

مثال 1 :
به شكل زير دقت كنيد

پس از محاسبات PageRank صفحات به صورت زير است. Show the code | Run the program

و ميانگين PageRank عدد 1 شده است .
توجه كنيد كه صفحه D با اينكه هيچ لينك ورودي ندارد اما بازهم PageRank آن صفر نيست . پس هر صفحه در ابتدا داراي PageRank معدل 0.15 خواهد بود.

مثال 2 :
يك نمونه سلسله مراتبي ( hierarchy ) به همراه تعدادي لينك خروجي.

Show the code | Run the program

همانطور كه ميتوان تصور كرد Home Page بيشترين PageRank را دارد . چرا كه بيشترين لينك ورودي را دارا مي باشد. اما چرا متوسط عدد 0.378 شده است؟ به نظر مي آيد كه يك جاي كار اشتباه است!

اما اشتباهي رخ نداده است. به صفحات External Site ها توجه كنيد. اين صفحات به هيچ صفحه ديگري لينك نداده اند و بنابراين PageRank خود را هدر مي دهند . براي توضيحات بيشتر به اين thread مراجعه كنيد.

مثال 3 :
اجازه دهيد كه در مثال قبلي External Site ها به Home Page لينك دهيم. ببينيد كه مقدار ميانگين چه تغييري مي كند.

Show the code | Run the program

بهتر شد. نه؟ ضمنا PageRank تمام صفحات هم زياد شده است . بالاخص Home Page.

مثال 4 :
چه اتفاقي براي PageRank مي افتد اگر ما page review داشته باشيم؟

Show the code | Run the program

مثال 5 :
يك سلسله ساده

Show the code | Run the program

دقت كنيد كه PageRank صفحه Home دو نيم برابر صفحات داخلي ميباشد. بنابراين حالت سلسله اي راي ها را براي PageRank در يك صفحه متمركز ميكند.

مثال 6 :
حالت چرخشي ( Looping )

Show the code | Run the program

اين حالت چيزي است كه ما انتظار آنرا داشتيم. تمامي صفحات تعداد لينكهاي مساوي دارند و تمامي صفحات هم PageRank يكسان.

مثال 7 :
حالت Internal linking به صورت گسترده و يا Fully Meshed

Show the code | Run the program

به همون دليل مثال 6 ، اينجا هم همگي داراي PageRank مساوي هستند.

مثال 8 :
 
سلسله مراتبي - اما با يك لينك ورودي و يك لينك خروجي

فرض كنيد كه يك External Site وجود دارد كه داراي صفحات و لينكهاي زياد است و در نتيجه يكي از صفحات آن داراي PageRank متوسط 1.0 است . همچنين فرض كنيد كه وب مستر آن سايت تنها يك لينك به صفحه Home سايت شما داده است.

Show the code | Run the program

در مثال 5 صفحه Home سايت شما داراي PageRank معادل 1.92 بود . اما در اينجا PageRank به عدد 3.31 ارتقاء پيدا كرده. خيلي عالي است نه؟
ضمنا نه تنها سايت مذكور معادل 0.85 به ما PageRank داده است ، بلكه صفحات ديگر سايت ما هم كه ارتقاء پيدا كرده اند و به ارتقاء صفحه home كمك كرده اند.

اصل مهم:  ساختاري منظم براي يك سايت به ارتقاء PageRank آن كمك زيادي ميكند.

مثال 9:
حالت چرخشي - داراي يك لينك ورودي و يك لينك خروجي

Show the code | Run the program

همانطور كه ديده ميشه ، PageRank صفحه Home بالا رفته اما چرا PageRank صفحه More پائين آمده است؟
علت آن است كه ، راي صفحه Product بين صفحه More و سايت B به صورت مساوي تقسيم شده است و در حقيقت اين براي سايت B خوب است و براي ما بد.

مثال 10:
Fully meshed - داراي يك لينك ورودي و يك لينك خروجي

Show the code | Run the program

بهتر شد.  مي بينيم كه صفحه Product ميزان 3/4 راي خود را در سايت ما نگه داشته است. همچنين نگهداري اين ميزان راي در سايت ، نتيجه خوبي را براي صفحه Home‌ داشته است.
پس ميتوان گفت كه : بيشتر كردن تعداد لينكهاي داخلي ( Internal Links ) در صفحات از هدر رفتن آراء جلوگيري ميكند و طبيعتا PageRank  صفحات سايت ما را افزايش ميدهد .

3 اصل مهم :

  1. اگر صفحه اي داراي اهميت بالائي مي باشد ، آنرا در بالاي مدل سلسله مراتبي قرار دهيد.
  2. اگر صفحات سايت شما داراي لينكهاي خروجي زيادي هستند ، سعي كنيد لينكهاي داخلي سايت را افزايش دهيد تا PageRank صفحات را ثابت نگه داريد .
  3. اگر صفحاتي از سايت شما داراي لينك خروجي نيست ، افزايش تعداد لينكهاي داخلي هيچ تائيري بر PageRank ندارد. پس دقت كنيد كه سايت خود را از حالت قابل استفاده خارج نكنيد.
اهميت داشتن Site Map

داشتن Site Map به دودليل مهم است

  1. اگر كاربر URL اشتباه وارد كند ، اكثر سايتها يك صفحه غير مفيد به عنوان "404 Page not found" نمايش ميدهند. اين براي كاربر مايوس كننده ميباشد. بهتر است كه صفحه اين خطا به حالتي تغيير كند كه  اولا علت خطا را نمايش دهد و ثانيا Site Map را هم نمايش دهد .
  2. لينك دادن به Site Map در هر صفحه تعداد لينكهاي داخلي را افزايش ميدهد و در نتيجه از هدر رفتن آراء بر اي ارتقاء PageRank جلوگيري ميكند.

مثال 11:
اجازه دهيد سايت خود را به نحوي نمايش دهيم كه PageRank به طور مصنوعي در صفحه Home متمركز شود.

به نظر مدل خوبي است و تمام آراء به سمت صفحه Home مي رود. بايد PageRank خوبي بدست آوريم. حال برنامه را اجراء ميكنيم تا نتيجه را ببينيم.

Show the code | Run the program

مي بينيد كه نتيجه بر خلاف انتظار ما ، چندان هم خوب نيست. علت اين است كه لينكهاي ورودي صفحات D و C بسيار ضعيف هستند و كمك زيادي به صفحه A نمي كنند.

سعي در سوء استفاده و تقلب در محاسبات PageRank از آنچه كه فكر ميكنيد مشكل تر است.

مثال 12:
يك layout خوب براي صفحات وب كه شامل document طولاني مي باشد اين است كه ، آن document را به چند صفحه تقسيم كنيم و بروي صفحات يك Navigator براي رفتن به صفحات بعد و قبل قرار دهيم و همچنيم در تمام صفحات هم به صفحه Home يك لينك دهيم.

Show the code | Run the program

در اين مثال كه تنها يك document وجود دارد ، صفحه اول از document يعني صفحه B داراي PageRank بيشتري نسبت به صفحه Home يعني A است. به اين خاطر كه صفحه B‌ تمامي راي صفحه A را به خود اختصاص داده است ولي صفحه A تنها بخشي از آراء صفحات B و C و D را به خود اختصاص داده است.

خوب اگر بخواهيد كه سايت قابل استفاده و مفيدي داشته باشيد ممكن است كه PageRank در سايت شما قرباني شود. اما نگران نباشيد ، چونكه اگر سايت شما مفيد باشد webmaster سايتهاي ديگر به سايت شما لينك خواهند داد و PageRank سايت شما احيا خواهد شد.

 

پس ميتوان گفت كه : با اضافه كردن تعداد لينكهاي داخلي به سايت خود ، مي توانيد PageRank را به طور مساوي بين صفحات سايت تقسيم كنيد.

مثال 13:
در اين مثال مي بينيم كه چگونه ميتوان به PageRank بالائي از روشهاي غلط و تقلب دست يافت.

براي نمونه ببينيم اگر كه 1000 صفحه خارجي به سايت ما لينك دهند و ما تنها يك لينك خروجي داشته باشيم چه مي شود؟

Show the code | Run the program

بله ، صفحات Spam با اينكه بي ارزش هستند اما از PageRank بالائي برخوردارند.

 

پس ميتوان گفت كه : بهترين متوسط PageRank صفحات سايت شما عدد 1 است و داشتن تعداد صفحات زياد اصلا اهميت ندارد. ولي در مدل سلسله مراتبي ميتوان راي ها را به سمت صفحه Home‌متمركز كرد و PageRank آنرا بالا برد.

از اين روش برخي از سايتها براي بالا بردن PageRank استفاده مي كنند كه اگر رباتهاي گوگل  ( Google's robots‌)  متوجه آن شوند به احتمال زياد از حضور آن سايتها در فهرستهاي گوگل جلوگيري ميكنند.

بنابراين ، پيشنهاد ميكنم كه از دو روش صحيح زير براي بالا بردن PageRank سايت خود در گوگل استفاده كنيد.

1 - يك سايت بزرگ داشته باشيد

سايتهاي بزرگ مانند http://news.bbc.co.uk داراي دهها و شايد صدها نويسنده و ويراستار خبري ميباشد. هر كدام از صفحات اين سايت داراي مطالب جهاني و مهم هستند و تمامي آنها نيز به صفحه Home سايت لينك داده اند. بنابراين مي بينيم كه PageRank صفحه Home آن 9 از 10 است.

پس هيچ جايگزيني براي محتواي خوب وجود ندارد!

2 - يك چيز مفيد براي ارائه به ديگران داشته باشيد

مي بينيم كه http://www.phpbb.com داراي PageRank معادل 8 از 10 است. با اينكه سرمايه گذاري و بازاريابي قوي پشتيبان آن نبوده است. چه طور اين اتفاق افتاده است؟

علت آن است كه بسياري از افراد كه داراي سايتهاي bulletin board هستند از سيستم مديريت phpbb استفاده كرده اند . در تمام صفحات سايت آنان عبارت زير مشاهده ميشود.

Powered by phpBB

پس ميليونها صفحه راي خود را با قرار دادن اين لينك در خود به سمت سايت http://www.phpbb.com ارسال ميكنند. علت اين است!

دو  اصل مهم:

  1. ابزارهاي مفيد رايگان در اختيار ديگران قرار دهيد تا مديران سايتها پس از استفاده از آن با رقبت به سايت شما لينك دهند.
  2. بهتر است كه لينكهاي ورودي از سايتها ي زيادي (‌حتي سايتهائي با PageRank كم ) به سايت شما وجود داشته باشد تا اينكه تنها چند لينك محدود (‌ولو از سايتهائي با PageRank بالا )‌ به سايت خود داشته باشيد.
نتيجه گيري نهائي

PageRank  ساده است (‌به جز يك فرمول ترسناك ) ولي وقتي يك محاسبه ساده ميليونها بار تكرار مي شود نتايج ممكن است پيچيده به نظر آيد.

PageRank تنها قسمتي از مسائل تعيين كننده رتبه در ليستهاي گوگل است. به طور مثال شواهد نشان داده است كه گوگل اين روزها به متن موجود در يك href براي تگ اهميت بيشتري قائل است تا PageRank .

PageRank جزئي از داستان ليست شدن در فهرست گوگل است ولي ارزش آنرا دارد كه با آن به عنوان يك طرح خوب در اينترنت بيشتر آشنا شويد.

منابع :

منبع : http://www.w3schoolsir.com

ترفندهای مرورگر گوگل کروم

ترفندهای مرورگر گوگل کروم

پیش‌ترها در مورد مرورگر گوگل صحبت کردیم، این‌بار چند ترفند مخفی از این مرورگر تازه به دوران رسیده گوگل را با هم بررسی می‌کنیم.

گوگل کروم

بدین منظور:

ابتدا Google Chrome را اجرا نمایید.

سپس عبارات زیر را در نوار آدرس مرورگر وارد نمایید و Enter بزنید تا هر صفحه مخفی برایتان باز شود.

 

about:internets

یکی از قدیمی‌ترین اسکرین سیورهای ویندوز ، در دل کروم!

دقت کنید این اسکرین سیور به شرطی اجرا می‌شود که فایل sspipes.scr در پوشه Windows\System32 موجود باشد.

about:memory

فضای اشغال شده رم توسط مرورگرهای در حال اجرا.

اگر به فرض شما مرورگر فایرفاکس را هم همزمان اجرا کرده باشید میزان فضای استفاده شده از رم توسط این برنامه را نیز مشاهده خواهید کرد.

احتمالأ مسئولان گوگل جهت به رخ کشیدن میزان فضای کم استفاده شده کروم این صفحه را قرار داده‌اند.

همچنین میزان رم اشغالی توسط تب‌های مرورگر نیز موجود است.

about:stats

هیـــــــــــس! این صفحه محرمانه است!

عبارت فوق در بالای این صفحه مخفی به چشم می‌خورد.

کلیه فرآیندهای داخلی کروم با ریز اطلاعات هر یک در این صفحه قابل مشاهده است.

about:network

این صفحه جهت عملیات به اصطلاح I/O Tracking به کار میرود.

در مرورگر فایرفاکس این کار به وسیله افزونه‌ای به نام Live HTTP Headers امکان پذیر است که کروم آن را در خود جای داده است.

جهت استفاده از آن بر روی دکمه Start I/O tracking کلیک کنید.

سپس در یک تب جدید ، یک سایت را باز کنید و مجدد به همین تب برگردید تا شاهد نتیجه کار باشید.

لیست کلیه عکس‌ها ، اسکریپت‌ها و آبجکت‌های لود شده در آن صفحه را به شکل زنده مشاهده خواهید کرد! واقعأ قابلیت جالبی است.

about:histograms

لیست کلیه فرآیندهای داخلی اجرا شده در مرورگر به شکل نمودارهای هیستوگرام یا متراژی.

about:dns

لیست 10 DNS که بیشترین مشاهده را توسط کروم داشته اند در این صفحه مخفی قابل مشاهده است.

جهت غیر فعال کردن آن به Options و تب Under the Hood رفته و تیک گزینه Use DNS pre-fetching to improve page load performance را بردارید.

about:cache

لیست کلیه صفحات و فایل‌های کش شده توسط مرورگر در این صفحه قابل مشاهده است.

در کروم امکان محدود سازی کش وجود ندارد ، در نتیجه هر از چند گاهی کش مرورگر را خالی کنید.

view-cache:stats

آمار مربوط به فایل‌های کش شده توسط مرورگر.

about:plugins

کلیه پلاگین‌های نصب شده بر روی کروم در این صفحه لیست شده‌اند.

پلاگین‌های نظیر Shockwave Flash ، Real Player و ... .

about:crash

پیغام مربوط به زمانی که کروم در هنگام باز کردن یک صفحه Crash می‌کند، با ظاهری جالب قابل روئیت است.

about:hang

این دستور پیش از این که خود یک صفحه باشد یک خراب کننده صفحه است! اگر به هنگام مرور یک صفحه وب این عبارت را وارد کنید ، صفحه مورد نظر عملأ یخ می‌بندد و هیچ کاری نمی‌توان در آن کرد.

about:version

ورژن دقیق مرورگر کروم با وارد کردن عبارت فوق قابل مشاهده است.

 

مطالب مرتبط:

مقایسه مرورگرهای کروم و فایرفاکس

گوگل کروم نهایی شد

 

منبع: سایت ترفندستان

تنظیم برای تبیان: هاجر ناظمی

چرا بعضي از آدرسهاي اينترنتي داراي www هستند و بعضي نه.

چرا بعضي از آدرسهاي اينترنتي داراي www هستند و بعضي نه.
چرا بعضي از آدرسهاي اينترنتي داراي www هستند و بعضي نه.


يك وب سايت عادي يك آدرس اينترنتي مانند http://www.rasekhoon.net دارد. اگر توجه كرده باشيد در بعضي از وب سايتها به قسمت www آدرس اينترنتي احتياجي نيست و شما به سادگي مي توانيد مثلاً تايپ كنيد http:// rasekhoon.com تا به وب سايت rasekhoon.com برسيد.
براي توضيح مطلب بايد كمي با شماره IP، سرورهاي وب و سرور نام دامنه آشنايي داشته باشيد. يك سرور نام دامنه نام را به يك آدرس IP (شماره IP) ترجمه مي كند. وقتي كه شما آدرسي مانند http://www. rasekhoon.com را در مرورگر خود تايپ مي كنيد. مرورگر شما (مثلاً اينترنت اكسپلور) با سرور نام دامنه اي كه از قبل براي آن تعريف شده است ارتباط برقرار مي كند. اگر سرور نام دامنه شما قبلاً با اين نام برخورد نكرده باشد به سرور نام دامنه com. متصل مي شود و پيغامي براي شناسايي rasekhoon.com مي فرستد. در صورت شناسايي اين نام سرور نام دامنه به سرور نام rasekhoon.com متصل مي شود و اين بار پيغامي براي شناسايي www. rasekhoon.com مي فرستد. اگر سرور نام rasekhoon داراي فهرستي براي پيشوند www بود.شماره IP براي www. rasekhoon.com به مرورگر شما ارسال ميكند. و مرورگر شما به اين IP متصل مي شود.
در وب سايتهاي بزرگ براي آدرسهاي IP مختلف ماشينهاي مختلف را مشخص ميكنند مثلاً براي Ftp يك شماره IP داريم و براي www يك شماره IP و براي Telnet يك شماره IP كه هر كدام ترافيك خاص خود را دارد بنابراين يك وب سايت بزرگ كه ترافيك بالايي دارد هر شماره IP را به يك ماشين اختصاص مي دهند و براي وب سايتهاي كوچك همه شماره IP ها به يك ماشين اختصاص مي يابند.
البته همه اين كارها را مدير شبكه آن وب سايت انجام مي دهد كه براي وب سايتهاي معمولي صاحب يك وب سايت حتي مدير شبكه خود را نمي شناسد و نمي داند كه او چگونه اين كار را انجام داده است.
در مواردي كه يك وب سايت بدون www كار مي كند اين بدان معناست كه مدير شبكه آن وب سايت تصميم گرفته است، كه براي اين نام دامنه پيشوندي قرار ندهد.
منبع:www.yadbegir.com

مزایای فایر فکس برای توسعه دهندگان وب

مزایای فایر فکس برای توسعه دهندگان وب
مزایای فایر فکس برای توسعه دهندگان وب


فایرفاکس اینروزها بواسطه افرونه هایش قوی و قوی تر از قبل میشود که در مقابل مرورگرهای دیگر امتیاز مثبت است. یکی از ارادتمندان واقعی این افزونه ها طراحان و توسعه دهندگان وب هستند که بدست افزونه های فراوانی که برای کمک به آنها ایجاد شده است میبتوانند خطاهای موجود در صفحات وب را پیدا کرده و آنها را به بهترین شکل ممکن بهنیه کنند.
در زیر فهرستی از 11 افزونه را معرفی خواهیم کرد که در زمینه طراحی وب بهترین نوع خودشان هستند.
Web developer`s toolbar: از افروزنه هایست که نظیر آن را هیچ کجا ندیده اید. این افزونه یک تولبار به مرورگر شما اضافه میکند که شامل ابزارهایی برای تحلیل ، معتبر و بهینه سازی صفحات وب است.
Firebug: فایرباگ نیاز به معرفی ندارد. این افزونه نیز شبیه قبلی است ولی ازبزارای قدرتمند متفاوتی دارد که شما با آن خواهید توانست css ، html و javascript صفحات وب را ببینید ، ویراش و اشکال زدایی کنید.
ColorZilla: این افزونه توانایی قدرتمندی در تشخیص و پیدا کردن رنگ های موجود در صفخات به شما میدهد.
MeasureIt: یک خط کش در اختیارتان میگذراد که میتوانید اندازه هر جز از صفحه و طول و عرض آن را براحتی بیابید.
HTML Validator: تعداد خطاهای موجود در صفحه ای را که در حال مشاهده آن هستید نشان میدهد.
YSlow: یکی از تولیدات شرکت یاهو است که صفحات وب را تحلیل میکند و علت کند بودن آنها را اطلاع میدهد.YSlow بصورت افزونه اضافه شونده به Firebug کار میکند.
FireFTP: یک مدیریت FTP ساده و قدرتنمد است که به آسانی میتوانید دورن فایرفاکس از آن استفاده کنید.
SEO for Firefox: افزونه ای فوق العاده که اطلاعات زیادی از رتبه سایت مورد نظر در موتورهای جستجو ، تعداد لینکهای برگشتی و … در اخیتارتان قرار میدهد.
CSSViewer: مشخصات CSS مربوط به هر جز صفحه را به شما نشان میدهد.
EditCSS: با داشتن این افزونه میتوانید تغییرات ایجاد شده در css را همان لحظه مشاهده کنید.
Font Finder: اسمش گویای همه چیز است، تنها کافیست که عبارت مورد نظر را انتخاب کنید تا با یک راست کلیک کلیه اطلاعات مربوط به font-size, font-family, color, line-height, letter-spacing و در به شما نشان دهد.
منبع: www.soket .mihanblog.com

آشنایی بیشتر با دستورات اختصاصی Internet Explorer

آشنایی بیشتر با دستورات اختصاصی Internet Explorer
آشنایی بیشتر با دستورات اختصاصی Internet Explorer


زمانی که هنوز مرورگر های مدرنی چون فایرفاکس و اپرا ارائه نشده بودند ، IE یکه تاز بازار مرورگر ها بود و وجود آن به صورت پیش فرض بر روی ویندوز نیز باعث شده بود که بسیاری از کاربران با شنیدن کلمه اینترنت ، لوگوی آبی رنگ e اینترنت اکسپلورر در ذهنشان نقش ببندد! اما دیگر آن روزگار گذشته است و وجود مرورگر های چون فایرفاکس و اپرا و اخیرا کروم ، رویایِ مایکروسافت و تیم IE را حسابی تیره و تار کرده است.
طی خبر های منتشر شده مایکروسافت IE8 در راه است و نسخه های Beta این مرورگر در دسترس کاربران قرار گرفته است. به نظر می رسد که تغییرات زیادی را در این نسخه از IE مشاهده خواهیم کرد. شاید اگر مرورگر های مدرن دیگری وجود نداشتند ، هیچ وقت مایکروسافت فکر تغییر و افزاریش کیفیت مرورگر خود نمی بود.
با وجود بازار داغ مرورگر ها در این روزها ، کار برای طراحان وب هر روز سخت تر از دیروز می شود! چرا که شاید در نگاه اول یک طرح استاندارد در برخی از این مرورگر ها صحیح نمایش داده شوند ، اما اگر کمی ریزبین شوید و دقت بیشتری کنید ، خواهید دید که تفاوت ها گاه آنقدر زیاد می شوند که قید تصحیح آنها را در بعضی مواقع بزنید بهتر از آن است که وقت بسیار زیادی را صرف تصحیح آنها کنید!
در این نوشتار می خواهیم به بحث روی دستورات اختصاصی IE بپردازیم و با استفاده از آنها طرح خود را در نسخه های مختلف IE صحیح و بدون نقص نمایش دهیم.
بر خلاف مرورگر های دیگر که دستورات اختصاصی آنها به صورت مجزا و در بخش CSS تعریف می شود ، IE هم از خاصیت شناسایی دستورات در داخل html صفحات پیروی می کند و هم از دستورات اختصاصی CSS (البته یک سری از این دستورات باعث می شوند که فایل CSS شما از حالت Valid خارج شود ، که ما کاری با آنها نداریم و توصیه هم نمیشه ، مگر در موارد خیلی خاص).
دستوراتی که می توانید در درون html صفحات استفاده کنید به شکل زیر است:












وقتی این دستورات را در یک ویرایشگر مثل Dreamwaver قرار می دهید به رنگ طوسی نشان داده می شوند و به معنای آن است که مرورگر های مختلف این دستوارت را به صورت comment شناسایی می کنند و عملا آنها را اجرا نمی کنند. اما فقط IE است که comment هایی که به این شکل باشند را شناسایی و دستورات درون آنها را اجرا می کند.
اکنون می توانید نسخه مرورگر IE کاربرانی که از صفحه شما بازدید می کنند را شناسایی و برای هر نسخه یک فایل css را در صورت نیاز اجرا کنید ، مثلا برای نسخه IE6 دستور مورد نظر می تواند چیزی شبیه این باشد:


A

منبع: www.ipooya.com

فناوری جدیدی که از مرورگر گوگل هم سریع‌تر عمل می‌کند!

فناوری جدیدی که از مرورگر گوگل هم سریع‌تر عمل می‌کند!

 فناوری جدیدی که از مرورگر گوگل هم سریع‌تر عمل می‌کند!

امروزه همه تولیدکنندگان مرورگرهای اینترنتی می‌کوشند با افزایش سرعت اجرای کدهای JavaScript، گوی سبقت را از رقبای خود بربایند. JavaScript در اصل یک زبان برنامه‌نویسی است که امکان تولید و گسترش انواع ابزارهای اینترنتی را فراهم می‌کند. آخرین اتفاقی که در این حوزه افتاده است، از جانب برنامه نویسان پشت صحنهء مرورگر اپل با نام Safari می باشد.
به گزارش بخش خبر تراشه از همکاران سیستم، شرکت موزیلا در اوایل ماه جاری میلادی اعلام کرده بود که موتور JavaScript جدیدی را با نام TraceMonkey راه‌اندازی کرده که در مرورگر Firefox 3.1، تا اواخر سال ۲۰۰۸ میلادی در اختیار کاربران قرار می‌گیرد. اتفاق مهم دیگر در این حوزه مربوط به مرورگر تازه‌وارد گوگل با نام Chrome می‌شود که یکی از وجوه ممتازش موتور V8 JavaScript آن است.
برنامه‌نویسان WebKit که کدهای متن‌باز آن‌ها در مرورگر Safari اپل و مرورگر Konqueror با رابط کاربریKDE برای سیستم‌های مبتنی بر لینوکس مورد استفاده قرار می‌گیرد، موفق به تولید نسخه جدیدی از فناوری JavaScript شده‌اند.
این برنامه جدید Squirrelfish Extreme نامیده می‌شود و برنامه‌نویسان مرکز WebKit با انتشار مطلبی در وبلاگ رسمی خود اعلام کردند که این برنامه از نخستین نسخه Squirrelfish که در ماه ژوئن عرضه شد، دو برابر و از نسخه WebKit 3.1 سه برابر سریع‌تر عمل می‌کند. این افراد نتایج یاد شده را بر اساس معیار SunSpider سنجیده و اعلام کردند.
این برنامه‌نویسان اعلام کردند:‌‌ «برنامهSquirrelFish Extreme از تکنیک‌های پیشرفته‌تری استفاده می‌کند و کدهای بومی سریعی را شامل می‌شود تا بتواند بهتر و سریع‌تر کدهایJavaScript را اجرا کند».
“چارلز یینگ”(Charles Ying) علاوه بر این‌، خاطرنشان کرد که آزمایش‌های انجام شده بر روی SunSpider نشان داده است که Squirrelfish از فناوری V8 گوگل و Tracemonkey موزیلا روی یک کامپیوتر iMac با توان ۴/۲ گیگاهرتز سریع‌تر عمل می‌کند.
منبع:www.imarata.net

مکعب سه بعدی نمایش دهنده ی نتایج گوگل

مکعب سه بعدی نمایش دهنده ی نتایج گوگل

 مکعب سه بعدی نمایش دهنده ی نتایج گوگل

این موتور جستجو یک موتور مجازی میباشد که نتایج جستجوی شما را به صورت یک مکعب ٣ ضلعی نمایش میدهد، که شامل ٩٦ وبسایت،عکس و ویدئو است.برای استفاده از این موتور جستجو شما میبایست Flash Player version 9 و یا ورژن بالاتر را در مرورگر خود نصب کرده باشید.از اینجا(http://www.search-cube.com) خودتان نیز امتحان کنید.این موتور جستجوی جالب کار شرکت Symmetri می باشد.

آموزش نکات Html پیشرفته – تگ Doctype

آموزش نکات Html پیشرفته – تگ Doctype


آیا تا کنون دقت کرده اید که برنامه های ویرایشگر اچتمل مانند دریم ویور و فرانت پیج در ابتدای صفحات ، یک تگ DOCTYPE قبل از تگ html مینویسند که برداشتن آن نیز تاثیر خاصی در صفحه ندارد ؟



اما کار این تگ چیست ؟ این خط به برنامه مرورگر می فهماند که شما قصد استفاده از HTML نسخه 4 را برای طراحی صفحه وب خود دارید . در صورتی که بخواهید از XHTML جهت طراحی صفحه وب خود استفاده کنید باید کد فوق را کمی تغییر دهید . پس چرا حذف آن تاثیری در صفحه وب ما ندارد ؟ این کد در ایجاد صفحات HTML اختیاری و در صفحات XHTML اجباری است . اگر این تگ را به همراه یک URL در بالای صفحه وب خود اعلان کنید ، سبب میشود که برنامه های مرورگر فعلی ، هنگام باز کردن صفحه شما در مد standards کنار کنند . بدین صورت میتوانید کدهای خود را مطابق استاندارد نوشته و کنترل بیشتری بر چگونگی نمایش این صفحه در برنامه های مرورگر مختلف داشته باشید. در صورت نگذاشتن این کد ، مرورگر از روش های قدیمی تر برای نمایش صفحه شما استفاده می کند . یک مثال عملی :در هنگام تعیین رنگ با شماره های هگزادسیمال ، یک علامت شارپ (#) در ابتدای شماره رنگ قرار میگیرد که حذف آن باعث نادیده گرفتن این رنگ در زمان نمایش صفحه میشود . اما اگر کد DOCTYPE را از ابتدای صفحه پاک کنید ،مرورگرتان از این مورد ایراد نمی گیرد و آن رنگ را نشان میدهد . برای تست این مثال از مرورگر فایرفاکس استفاده کنید . چون مرورگر Internet Explorer بطور معمولی هم از حذف علامت # ایراد نمی گیرد و ممکن است شما فکر کنید علامت # اختیاری است

متاتگ چیست ؟

متاتگ چیست ؟


متاتگ ها راهی برای شناساندن وب سایت شما به جهان خارج است . عنوان تگ هایی که برای صفحات سایت خود تعریف میکنید موتور های جستجوگر را در شناختن مطالب داخل سایت شما یاری میکند .



دو نوع اصلی متاتگ وجود دارد :
این متاتگ باعث میشود که اطلاعات اضافی ای همراه صفحه وب درخواستی شما در http header به مرورگر ارسال شود . مثلا میتوانید تاریخ انقضای اطلاعات را تعیین کنید یا میتوانید صفحه وب را با یک متا تگ خاص پس از چند ثانیه به صفحه دیگری بفرستید بدون دخالت کاربر !
HTTP-EQUIV

این نوع از متاتگ برای تعیین اطلاعات داخل صفحه وب استفاده میشود که باعث میشود صفحه وب شما با راحتی بیشتری برای موتورهای جستجوگر شناخته شود ... مثلا زبان این صفحه ، نام طراح ، کلمات کلیدی این صفحه و ...
NAME




متاتگ ها کجای صفحه وب نوشته میشوند ؟

متاتگ ها را باید داخل تگ head نوشت . در صفحه هایی که از چند فریم درست شده باید در تمام صفحات متاتگ را نوشت.

به مثال های زیر دقت کنید : content در متاتگ کارش معرفی مقداری هست که متاتگ با یکی از دو صفت name و HTTP-EQUIV در خود دارد .



مثال : NAME="keywords" CONTENT=" persian macromediax dreamweaver">

تگ بالا را یه نگاه کنید . از نوع name است . مقدار name مساوی با keywords است . یعنی این متاتگ کارش شناساندن کلمات کلیدی سایت به موتور های جستجوگر است ... اگر میخواهید موتور های جستجو مانند گوگل سایت شما را بهتر بشناسند این تگ را به قالب سایت یا وبلاگ خود بیفزایید و در جلوی content کلمات کلیدی سایت خود را بنویسید .




مثال : NAME="description" CONTENT=" persian web design center">

تگ بالا کارش افزودن توضیحات سایت شما به موتور های جستجوگر است . اگر این تگ را به وب سایت یا وبلاگ خود اضافه کنید از ماه آینده اگر کسی بصورت تصادفی در گوگل به سایت شما بر بخورد توضیحات داخل این متا تگ را بجای توضیحات میبیند . یعنی گوگل دقیقا از این متاتگ برای ذخیره اطلاعات درباره سایت شما استفاده میکند . پس بکاربردن این متا تگ ها خیلی مهمه !



مثال :

تگ بالا تاریخ انقضای این صفحه وب را تعیین میکند . یعنی اگر کسی این صفحه وب را یکبار دیده باشد وقتی این زمان فرا برسد و او دوباره آدرس این سایت را در مرورگرش بزند این صفحه از داخل cache لود نمیشود بلکه از سرور دانلود میشود .

كدنويسي براي پيكربندي PHP - اموزش php

كدنويسي براي پيكربندي PHP - اموزش php
در PHP توابعي در نظر گرفته شده است تا برنامه نويسان به راحتي با توجه به نياز خود در كدها، تنظيمات فايل PHP.ini را تغيير دهند و آنها را با كدهاي ارتباط دهند. يكي از توابعي كه مي توان براي انجام پيكربندي بوسيله كدها استفاده كرد، تابعini_set() مي باشد و در PHP نسخه هاي 4.0 و 5.0 قايل اجراست.
صورت كلي اين تابع بصورت زير است:
کد:

ini_set($varname, $newvalue)
متغيري است كه بايد مقدار آن تغيير نمايد.
String $newvalue مقدار جديدي است كه بايد به متغير varname داده شود.
اين مقادير، مقدار قبلي را بصورتFalse تبديل مي نمايد. توجه داشته باشيد پارامترهاي اين متغير فقط در زمان اجراي اسكريپت عما مي كنند و در غير اينصورت اجرا نخواهند نمود و سپس به حالت ابتدائي بر خواهند گشت.
توجه داشته باشيد كه همه متغيرها بوسيله تابع ini_set() قابل تغيير نمي باشند. در زير جدولي با ليستي از تمامي متغيرهاي پيكربندي PHP (در PHP 4.2.0) مي بنيد.
مشابه اين تابع، تابع ini_alter() مي باشد كه همانند تابع بالا عمل مي نمايد.
مثال:
مثلا براي تغيير مقدار \'magic_quotes_gpc\' مي توانيد از كد زير استفاده نماييد:

کد PHP:

$option magic_quotes_gpc;

echo 
"Value of $option => "ini_get($option);ini_set($option,0);

echo 
"New value of $option => "ini_get($option);?>
ولي اگر بخواهيد كد بالا را براي ini_alter() بنويسيد فقط بايد جاي ini_set را با ini_alter تعويض نماييد.
براي نمايش متغيرهاي پيكربندي فايل PHP.ini مي توانيد از تابع ini_get_all()استفاده نماييد.

دیگر انواع cms ها:

دیگر انواع cms ها:

  1. - e-Learning eFront
  2. - e-Learning Moodle
  3. - e-Learning ATutor
  4. - e-Learning Claroline
  5. - e-Learning Dokeos
  6. - e-Learning SyndeoCMS
  7. - e-Learning Docebo suite
  8. - e-Learning DrupalEd
  9. - e-Learning Interact


  1. - Image Galleries Coppermine
  2. - Image Galleries Gallery
  3. - Image Galleries Gallery 2
  4. - Image Galleries Zenphoto
  5. - Image Galleries Plogger
  6. - Image Galleries LinPHA
  7. - Image Galleries 4Images
  8. - Image Galleries PhpWebGallery
  9. - Image Galleries nzFotolog
  10. - Image Galleries Pixelpost 4.03
  11. - Image Galleries TinyWebGallery
  12. - Image Galleries WEBalbum
  13. - Image Galleries Zoph


  1. - Wiki DokuWiki 4.63
  2. - Wiki PmWiki 4.37
  3. - Wiki MediaWiki
  4. - Wiki BoltWire 3.86
  5. - Wiki WikkaWiki


  1. - Lite sNews
  2. - Lite Webmedia Explorer
  3. - Lite SkyBlueCanvas
  4. - Lite Pivot
  5. - Lite Pluck
  6. - Lite LightNEasy
  7. - Lite EyeOS
  8. - Lite GuppY
  9. - Lite Triton CMS
  10. - Lite transLucid
  11. - Lite Leap
  12. - Lite LokiCMS
  13. - Lite CuteNews
  14. - Lite RazorCMS
  15. - Lite NanoCMS
  16. - Lite phpCMS
  17. - Lite FlatnuX
  18. - Lite CMME


  1. - Miscellaneous SugarCRM
  2. - Miscellaneous PhpGedView
  3. - Miscellaneous Webcalendar
  4. - Miscellaneous phpFreeChat
  5. - Miscellaneous Stash
  6. - Miscellaneous osDate
  7. - Miscellaneous Open-Realty




  1. - Groupware Collabtive
  2. - Groupware eGroupWare
  3. - Groupware dotProject
  4. - Groupware ProjectPier
  5. - Groupware Streber
  6. - Groupware Flyspray
  7. - Groupware Group-Office
  8. - Groupware WebCollab
  9. - Groupware Achievo
  10. - Groupware PHProjekt
  11. - Groupware phpGroupWare
  12. - Groupware OmCollab
  13. - Groupware ACollab

منبع:
opensourcecms.com

انجمن ساز ها:


  1. Forums SMF
  2. - Forums PunBB
  3. - Forums QuickSilver
  4. - Forums AEF Board
  5. - Forums Hei***
  6. - Forums phpBB
  7. - Forums Vanilla
  8. - Forums UseBB
  9. - Forums MyTopix
  10. - Forums Phorum
  11. - Forums IceBB
  12. - Forums XMB
  13. - Forums MyLittleForum
  14. - Forums DeluxeBB
  15. - Forums MyBB
  16. - Forums miniBB
  17. - Forums NextBBS
  18. - Forums Beehive
  19. - Forums bbPress

بلاگ ها و e-commerce ها:

  1. - Blogs Textpattern
  2. - Blogs Nucleus CMS
  3. - Blogs Serendipity
  4. - Blogs SimplePHPBlog
  5. - Blogs Dotclear
  6. - Blogs FlatPress
  7. - Blogs Globber
  8. - Blogs Loudblog
  9. - Blogs WordPress
  10. - Blogs LifeType
  11. - Blogs Zomplog
  12. - Blogs WikyBlog
  13. - Blogs Habari
  14. - Blogs Eggblog
  15. - Blogs Pritlog


  1. - e-Commerce PrestaShop
  2. - e-Commerce Opencart
  3. - e-Commerce Zen Cart
  4. - e-Commerce Magento
  5. - e-Commerce osCommerce
  6. - e-Commerce Freeway
  7. - e-Commerce cpCommerce

رتبه بندی cms های open source جهان

این رتبه بندی بر اساس رأی کاربران هست:
گروه اول رتبه بندی پرتالها:

  1. - Portals (CMS) Jaws
  2. - Portals (CMS) Joomla
  3. - Portals (CMS) BigAce
  4. - Portals (CMS) e107
  5. - Portals (CMS) MODx
  6. - Portals (CMS) Typolight
  7. - Portals (CMS) CMS Made Simple
  8. - Portals (CMS) glFusion
  9. - Portals (CMS) PHP-Fusion
  10. - Portals (CMS) Website Baker
  11. - Portals (CMS) MiaCMS
  12. - Portals (CMS) Etomite
  13. - Portals (CMS) YACS
  14. - Portals (CMS) SilverStripe
  15. - Portals (CMS) Drupal
  16. - Portals (CMS) Icy Phoenix
  17. - Portals (CMS) eazyPortal
  18. - Portals (CMS) Concrete5
  19. - Portals (CMS) Diferior
  20. - Portals (CMS) Elxis
  21. - Portals (CMS) Typo3
  22. - Portals (CMS) Kajona
  23. - Portals (CMS) XOOPS
  24. - Portals (CMS) phpwcms
  25. - Portals (CMS) Frog
  26. - Portals (CMS) Exponent
  27. - Portals (CMS) TikiWiki CMS
  28. - Portals (CMS) RunCMS
  29. - Portals (CMS) eZ Publish
  30. - Portals (CMS) DBHcms
  31. - Portals (CMS) ImpressCMS
  32. - Portals (CMS) NexPro
  33. - Portals (CMS) Xaraya
  34. - Portals (CMS) phpWebSite
  35. - Portals (CMS) Geeklog
  36. - Portals (CMS) Mambo
  37. - Portals (CMS) PHP-Nuke
  38. - Portals (CMS) bitweaver
  39. - Portals (CMS) toendaCMS
  40. - Portals (CMS) 1024
  41. - Portals (CMS) CompactCMS
  42. - Portals (CMS) Enano CMS
  43. - Portals (CMS) OneCMS
  44. - Portals (CMS) bloofoxCMS
  45. - Portals (CMS) Lemon CMS
  46. - Portals (CMS) MDPro
  47. - Portals (CMS) Glorilla
  48. - Portals (CMS) iGaming CMS
  49. - Portals (CMS) CMScout
  50. - Portals (CMS) EasyHP
  51. - Portals (CMS) AIOCP
  52. - Portals (CMS) LoveCMS
  53. - Portals (CMS) PLUME CMS
  54. - Portals (CMS) Zikula
  55. - Portals (CMS) AssoCIateD
  56. - Portals (CMS) Plus News
  57. - Portals (CMS) MemHT
  58. - Portals (CMS) FuzzyLime
  59. - Portals (CMS) ViennaCMS
  60. - Portals (CMS) Falt4
  61. - Portals (CMS) Monkey CMS
  62. - Portals (CMS) Seagull
  63. - Portals (CMS) ExV2
  64. - Portals (CMS) Limeware CMS
  65. - Portals (CMS) Pheap
  66. - Portals (CMS) TGS CMS
  67. - Portals (CMS) Zimplit
  68. - Portals (CMS) Fundanemt
  69. - Portals (CMS) Atarone
  70. - Portals (CMS) CMS-Bandits
  71. - Portals (CMS) ConstructrCMS
  72. - Portals (CMS) ChiCoMaS

ده مسئوليت اصلي مدير فناوري اطلا‌عات


مسووليت‌هاي اصلي CIO ‌كدامند؟
اين مسووليت‌ها از يك سو به مهارت‌هاي عمومي مديريتي وي و از سوي ديگر به مهارت‌هاي تخصصي او مرتبط هستند. اين مسووليت‌ها را از ديدگاه ديگري نيز مي‌توان تقسيم‌بندي كرد. اگر خوب دقت كنيم متوجه مي‌شويم كه برخي از وظايف يك <مدير ارشد اطلاعات> در حقيقت مديريت مقولات نرم‌افزاري مانند خود اطلاعات و نيروي انساني مرتبط با آن و نيز جنبه‌هاي راهبردي مديريت است و برخي ديگر از وظايف او با مقولاتي سخت‌افزاري مانند دستگاه‌ها و سيستم‌هاي كامپيوتري گره خورده است. ايده اصلي و كلي مديريت اطلاعات در سازمان اين است كه يك نفر به نام CIO بايد علاوه بر فراهم ساختن بستر سخت‌افزاري و نرم‌افزاري جريان اطلاعات در سازمان، زمينه گردش صحيح و بهره‌برداري مناسب از اين اطلاعات و اندوخته‌هاي معنوي را در سازمان فراهم سازد.
به يك تعبير مي‌توان نقش مدير فناوري اطلاعات در سازمان را به سيستم گردش وكنترل سوخت، آب و روغن در يك اتومبيل تشبيه كرد. چنين سيستمي علاوه بر فراهم ساختن بستر گردش اين سه ماده حياتي در اتومبيل، به‌طور مرتب بر روند حركت آنها در سراسر سيستم نظارت مي‌كند. اما بديهي است كه يك سازمان چيزي بيش از يك ماشين است و نقش انساني و تدبير يك CIO در مجموعه وظايف و اختيارات او از اهميت فوق‌العاده‌اي برخوردار است. بنابراين، مقولاتي نظير بودجه بندي، مديريت پروژه و مديريت استراتژيك فناوري اطلاعات در سازمان نيز جزو مسووليت‌هاي اصلي اوست.

1- مديريت خدمات و ابزارهاي دپارتمانIT
به طور طبيعي اولين انتظاري كه سازمان از يك مدير ارشد اطلاعات دارد، مديريت روزمره خدمات و ابزارهاي واحد IT سازمان است. اين واحد، بستر لازم براي فعاليت‌هاي اطلاعاتي روزمره ساير واحدهاي سازمان مانند دبيرخانه، واحد ارتباط با ارباب رجوع، حسابداري و بخش‌هاي ديگر را فراهم ‌مي‌كند. مدير فناوري اطلاعات در سازمان بايد بر حُسن اجراي وظايف اين بخش از سازمان نظارت دائمي داشته باشد. همچنين بسيار محتمل است كه واحد IT، خدمات ويژه‌اي نيز به كارمندان سازمان ارائه دهد (مثل اتصال اينترنت يا سرويس ذخيره‌سازي فايل در شبكه). در اين‌صورت، مدير اطلاعات بايد بر نحوه ارائه اين خدمات نيز نظارت داشته باشد.

2- مديريت كارشناسان IT
بديهي است كه تا دو يا چند نفر به عنوان كارشناس كامپيوتر و فناوري اطلاعات در يك سازمان مشغول به كار نباشند، صحبت از مديريت فناوري اطلاعات در آن سازمان معنايي نخواهد داشت. چنانكه پيشتر هم گفتيم، چگونگي تعامل با اين كارمندان و به اصطلاح سروكله زدن با كارشناسان IT سازمان، يكي از دغدغه‌ها و مسووليت‌هاي اصلي يك CIO است.

3- مديريت ارتباطات
يكي از بخش‌هاي مديريت اطلاعات در سازمان، تسهيل روند آن‌دسته از ارتباطات درون و برون سازماني است كه به واسطه ابزارهاي ارتباطي الكترونيكي و كامپيوتري ميان كارمندان شركت از يك سو و نيز ميان كارمندان و مخاطبان فعاليت‌هاي سازمان از سوي ديگر صورت مي‌گيرد. نحوه دخالت مدير ارشد اطلاعات در اين زمينه بيشتر فني و تكنيكي است. نگاه CIO به روند ارتباطات سازمان، نگاه ساختاري است. وظيفه مدير فناوري اطلاعات در اين زمينه آن‌ است كه با شناسايي نقاط ضعف و قوت شريان‌هاي اطلاعاتي درون سازمان و نحوه اتصال آنها به بيرون از سازمان، به طور مداوم در فكر اصلاح و بهبود آن باشد به گونه اي كه كارمندان سازمان براي ارتباط گيري ميان خود و مراجعان و مشتريان سازمان با كمترين مانعي روبرو شوند.

4- فراهم ساختن امنيت اطلاعات و ارتباطات
وقتي صحبت از زيرساخت ارتباطي و اطلاعاتي سازمان به ميان مي‌آيد، بي‌درنگ مهمترين موضوعي كه به ذهن خطور مي‌كند مساله چگونگي امنيت اطلاعات و ارتباطات سازمان است. يك ساختار ارتباطي هرچقدر هم كه پيشرفته باشد، اگر امن نباشد، فلسفه اصلي به‌كارگيري فناوري اطلاعات در سازمان را زير سوال مي‌برد و همه كاركردهاي مثبت آن را به خطر مي‌اندازد. مدير فناوري اطلاعات در سازمان بايد متوجه باشد كه اگر به موازات تسهيل روند گردش اطلاعات در سازمان فكري به حال افزايش امنيت بستر اطلاعاتي نكند، افزايش ميزان تبادل اطلاعات عملا به معني به خطرانداختنِ هرچه بيشتر دانش، تجربه، سرمايه معنوي و از همه مهمتر اسرار محرمانه سازمان است كه گاه ارزش اقتصادي يا راهبردي فراوان دارد.

5- مديريت دانش
از آنجا كه امروزه اطلاعات، يكي از اَشكال اصلي و مهم سرمايه در سازمان‌هاي مترقي محسوب مي‌شود، مي‌توان پيش‌بيني كرد كه آن‌دسته از سازمان‌ها كه خود را نيازمند بهره‌گيري از توان يك مدير ارشد اطلاعات در مجموعه كادر مديريت سازمان مي‌بينند، لابد به سطحي از پيشرفت در استفاده از فناوري اطلاعات رسيده‌اند كه دانش و اطلاعات ذخيره‌شده در سازمان، به كالايي گرانبها در ميان انواع سرمايه ها و داشته‌هاي سازمان تبديل شده است. مديريت دانش يا Knowledge Management در واقع يك مديريت استراتژيك است. همان‌طور كه كنترل سرمايه‌هاي مالي سازمان يكي از حساسترين و راهبردي‌ترين پايه‌هاي مديريت آن است، براي سازماني كه از روش‌هاي دانش‌بر در كسب‌وكار خود استفاده مي‌كند نيز كنترل سرمايه‌هاي اطلاعاتي سازمان بسيار مهم و كليدي است. بدون شك اين مورد يك از مهمترين مسووليت‌هاي يك CIO است.

6- مديريت محتوا
يكي ديگر از وظايف مهم CIO كه ارتباط تنگاتنگي با امور اطلاعاتي روزمره سازمان دارد، نحوه مديريت محتوا يا Content Management است. در اينجا منظور از محتوا چيزي جز همان داده‌ها و اطلاعات با ارزشي كه بر بستر ارتباطي سازمان جاري است نمي‌باشد. بهترين تعبيري كه از مفهوم مديريت محتوا در يك سازمان مي‌توان ارائه كرد همان است كه اصطلاحا Digital Workflow يا چرخه ديجيتالي امور اطلاعاتي سازمان ناميده مي‌شود. اين چرخه ممكن است فقط محدود به آن‌دسته از اطلاعات كه در كالبد سيستم‌هاي كامپيوتري توليد و پردازش مي‌شوند باشد، يا به تدريج تمام چرخه‌هاي غير ديجيتالي بروكراسي سازمان را نيز دربرگيرد و آنها را هم شامل شود.

7- بودجه ‌بندي
مديريت اطلاعات و فناوري اطلاعات در يك سازمان كار بسيار حساس و ظريفي است.CIO بايد همواره به خاطر داشته باشد كه فناوري اطلاعات آمده است كه تا چرخه امور در كسب‌وكار سازمان را تسهيل كند. اگر قرار باشد به‌كارگيري فناوري اطلاعات هزينه‌هاي سازمان را افزايش دهد و بهره‌وري اندكي ايجاد كند، با توجه به پيچيدگي‌هاي فنيIT و نياز مبرم آن به نيروي متخصص ماهر، در مجموع كسب‌وكار سازمان به جاي حركت به سمت چابكي و كارآمدي، به سمت كاهش بازده و پيچيدگي بيشتر حركت خواهد كرد. در چنين شرايطي ممكن است مديريت سازمان از پياده‌سازي فناوري اطلاعات در مقياس عمده صرف‌نظر كند. هنرCIO اين‌است كه يك برنامه زماني قابل دفاع از نحوه هزينه شدن بودجه اختصاص يافته به توسعه كاربري فناوري اطلاعات در سازمان ارائه نمايد. به گونه‌اي كه ديگر مديران سازمان به تدريج آثار مثبت به‌كارگيري فناوري اطلاعات را احساس كنند.

8- مديريت پروژه
گاهي اوقات انجام ماموريت‌هاي محوله به واحد IT سازمان مستلزم به انجام‌رساندن پروژه‌هاي ويژه كوچك و بزرگي است كه فراتر از امور روزمره و عادي اين واحد هستند. در چنين مواقعي كنترل روند آغاز و پايان پروژه بسيار حياتي است. پروژه‌هاي مرتبط با فناوري اطلاعات، حتي پروژه‌هاي كوچك، نوعاً داراي سطحي از پيچيدگي و ظرافت هستند كه اگر پيش‌بيني نشوند، انجام اين پروژه‌ها نهايتا حاصلي جز صرف هزينه‌هاي زياد و بازده اندك نخواهند داشت. زمان‌بندي انجام پروژه‌هاي مشابه نيز از يك سازمان به سازمان ديگر تفاوت دارد. زيرا سيستم كسب‌وكار، زيرساخت اطلاعاتي و ميزان تخصص و دانش نيروي انساني در سازمان‌ها متفاوتند. مديران باتجربه‌تر مي‌توانند با توجه به وضعيت كنوني سازمان و نوع ماموريت و كسب‌وكار سازمان، پيش‌بيني كنند كه يك پروژه مشخص چقدر زمان‌ مي‌برد و به چه پيش‌نيازهايي وابسته است. در واقع هنگامي كه پاي اجراي يكي از اين پروژه‌ها به ميان مي‌آيد، هيچ‌كس بهتر از CIO ‌قادر به تصميم‌گيري صحيح در اين زمينه نيست و از همين رو مديريت و كنترل پروژه هايIT بر عهده اوست.

9- ارتباط با ساير مديران CEO) ، CTO و ...)
واحدIT سازمان يك واحد مجزا نيست. فعاليت روزانه آن با اوضاع و احوال و نيازها و مشكلات ساير بخش‌هاي سازمان گره خورده است. در چنين شرايطي كاملا بديهي به نظر مي‌رسد كه تعامل با مديران ساير بخش‌هاي سازمان را جزو وظايف روزمره CIO بدانيم. حتي گاهي اوقات اين تعامل نقش استراتژيك و حساسي پيدا مي‌كند. مثلا در برخي سازمان‌هاي بسيار بزرگ (مانند شركت‌هاي خودرو سازي) مديران ديگري نيز وجود دارند كه بر حسن به‌كارگيري و مديريت ديگر فناوري‌هاي مورد نياز سازمان نظارت كنند. گاهي اوقات از اصطلاح CTO يا مدير ارشد فناوري براي اين منظور استفاده مي‌شود. در اين گونه موارد، استفاده از فناوري پيشرفته فقط محدود به فناوري اطلاعات نيست بلكه فناوري‌هاي ديگري را نيز دربرمي‌گيرد. حتي در بعضي سازمان‌هاي ممكن است CIO تحت مديريت CTO كه به نوبه خود بر عملكرد تمام جنبه‌هاي فناورانه در سازمان نظارت مي‌كند، عمل نمايد. به هرحال ساختار مديريتي سازمان هرچه كه باشد، مدير ارشد اطلاعات معمولا يكي از آن‌دسته مديراني است كه بنا به ماهيت كار و مسووليتش نياز فراواني به تعامل با ديگر مسوولين سازمان دارد. اين تعامل آنقدر مهم است كه فراتر از يك نياز بلكه جزو مسووليت‌هاي اصلي او به شمار مي‌رود.

10- مديريت استراتژيك
نهايتاً بايد بر اين نكته مهم تاكيد كرد كه مديريت فناوري اطلاعات يا به تعبير ديگر، مديريت اطلاعات سازمان يك مديريت استراتژيك است. معناي اين حرف آن است كه ممكن است موقعيت‌هاي حساس و سرنوشت‌سازي براي راهبري فناوري اطلاعات در سازمان پديد آيد كه نيازمند تصميم‌‌سازي‌ها و تصميم‌گيري‌هاي به موقع و موثر باشد. اين ويژگي ناشي از ماهيت پويا و سيال فناوري اطلاعات و صنعت كامپيوتر است. اين صنعت خيلي سريع تغيير مي‌كند و مديريت مسائل مرتبط با آن، حتي در گستره كوچكي مثل يك سازمان (در مقايسه با گستره كلان جامعه) كندي و رخوت را برنمي‌تابد. تصميمات بايد سريع و موثر اتخاذ شوند. تصميم‌هاي ديرهنگام و يا اشتباه ممكن است عواقب جبران‌ناپذيري درپي‌داشته باشد. متاسفانه هيچ‌كس نمي‌تواند در چنين مواقعي به مدير ارشد اطلاعات بگويد كه كدام تصميم درست خواهد بود. اين وظيفه اوست كه با شناختي كه از واقعيت‌هاي صنعت فناوري اطلاعات و مختصات كسب‌وكار سازمان مطبوعش دارد، تصميم درست و به هنگام را اتخاذ كند و برانجام آن پافشاري نمايد.

پي‌نوشت:
(1) كليه اين عناوين و مفاهيم را در شماره‌هاي قبلي ماهنامه شبكه و تحت همين عنوان " الفباي مديريت فناوري اطلا‌عات " توضيح داده‌ايم.
(2) بد نيست در پايان اين مقاله يادآوري كنم كه معناي دقيق كلمه CIO (برگرفته ازعبارت
Chief information Officer)، مدير ارشد اطلاعات است كه ما در اين مقاله سه قسمتي با نام مديرفناوري اطلاعات از آن ياد كرديم. به‌نظرم‌معادل اخير بيش از معني تحت الفظي كلمه گوياي مسووليت و موضوع اين شغل است

كوتاه در مورد وب 3 يا وب معنايي

كوتاه در مورد وب 3 يا وب معنايي


وب 3 يا وب معنايي گسترش جدیدی بر وب فعلی است که به ‌وسیله مخترع وب آقای برنرز‌لی و همکارانش در کنسرسیوم جهانی وب (w3c)پیشنهاد شده است.
هدف از آن هوشمندسازی وب به گونه‌ای است که اطلاعات نه تنها برای انسان‌ها بلکه برای ماشین‌ها نیز قابل فهم و پردازش باشد.
برای نیل به این ایده‌آل تحقیقات دانشگاهی و توسعه‌های صنعتی زیادی در چند سال اخیر انجام شده و در حال گسترش است.
در این تحقيق جديد وب معنایی معرفی و مورد بررسی قرار می‌گیرد و برای مشخص کردن جایگاه و اهمیت آن در ابتدا به مروری اجمالی بر محدودیت‌های وب متداول پرداخته خواهد شد و سپس اهداف مورد انتظار از وب معنایی مشخص شده و معماری پیشنهادی کنسرسیوم جهانی وب معرفی خواهد شد.
وب 3 اصطلاحی است که برای اشاره به وب آینده به کار میرود. پس از آنکه اصطلاح وب 2برای تکامل اخیر وب رواج یافت، بسیاری از متخصصین ،روزنامه نگاران و رهبران فن، اصطلاحوب 3 را بکار بردند تا فرضیاتی درباره موج آینده تغییرات اینترنت مطرح کنند.
نظرات پیرامون مرحله بعدی سیر تکاملی وب، بسیار متفاوت است، برخی معتقدند؛ پدیدار شدن تکنولوژی وب مفهومی راه وب را تغییر خواهد داد و آنرا به سوی هوش مصنوعی خواهد برد. دیگر نظریه پردازان اظهار میکنند که وب3افزایش سرعت اینترنت، اپلیکیشن های تحت وب، یا پیشرفت گرافیکی رایانه، نقش کلیدی را در سیر تکاملی وب بازی خواهد کرد.
جست‌وجو یکی از پرکاربردترین استفاده از وب است و به ‌عنوان یکی از اهداف مهم وب معنایی موتورهای جست‌وجوی معنایی معرفی شده‌اند که در این تحقيق نیز مورد بررسی قرار می‌گیرند.
یکی دیگر از عناصر مهم وب معنایی وب سرویس‌های معنایی هستن كه تحقیقاتی که در این زمینه انجام شده و اين به معناي هوشمند كردن سرويس هاي مختلف است.

نظرات بزرگان IT در مورد وب3:
تیم برنزلیـ مخترع وب ـ در ماه می سال 2006 گفت:
مردم مدام میپرسندوب 3 چیست؟ من فکر میکنم وقتی شما تعداد زیادی کاغذ کالک را روی هم میگذارید همه چیز ناهموار و چین خورده شده، مبهم به نظر میرسد. وب 2 و دسترسی به وب مفهومی، سراسر حجم عظیم اطلاعات را یکپارچه میکند، شما دسترسی غیر قابل باوری به منابع اطلاعاتی خواهید داشت.
در ماه می سال 2006 از اریک اسمیت ـ مدیر گوگل ـ خواسته شد تا وب3 را تعریف کند. او پاسخ داد:
... اگر بخواهید که حدس بزنم که چه خواهد بود، خواهم گفت که «وب 3» راهی متفاوت در ساخت اپلیکیشن ها است. پیش بینی من این است که «وب 3» در نهایت در قالب اپلیکیشن هایی تحقق می یابد که تکه ای از یکدیگرند. شماری از ویژگی های آنها از این قرار است: اپلیکیشن ها نسبتا کوچک ، اطلاعات توده ای ، اپلیکیشن ها روی هر وسیله ای اعم از پی سی یا تلفن همراه قابل اجرا، اپلیکیشن ها بسیار سریع و بسیار قابل کاستومایز و اپلیکیشن ها توزیعی خواهند بود، بصورت لفظ به لفظ؛ با شبکه های اجتماع، با ایمیل. شما به فروشگاه نمیروید تا آنها را بخرید... آنها نوع بسیار متفاوتی از اپلیکیشن ها خواهند بود که ما هرگز در محاسباتمان ندیده ایم.
در نوامبر سال 2006، جری یانگ ـ بنیانگذار و رئیس یاهو ـ گفت:
وب 2 خوب مستند شده و درباره آن سخن گفته اند، نیروی اینترنت با امکاناتی که در مرحله شبکه میتوان انجام داد به نقطه بحرانی رسیده است، ما همچنین از چهار سال قبل شاهد ابزارهای قدرتمند هستیم، همچنین راه های قدرتمند تعامل با شبکه را نه تنها در سخت افزار مانند کنسول های بازی و ابزارهای همراه، بلکه حتی در شاخه نرم افزار مشاهده میکنیم، شما لازم نیست که متخصص کامپیوتر باشید تا یک برنامه ایجاد کنید. ما میبینیم که توسعه بزرگ در وب 2 و وب 3، توسط مانیفست صورت میگیرد، یک اشتراک حقیقی میانی ... تمایز میان حرفه ای، نیمه حرفه ای، و مصرف کننده گان محو میشود. ایجاد یک شبکه، تجارت و اپلیکیشن ها را نتیجه میدهد.

نقشه شهرهای ايران برای گوگل مپ اضافه شد !!!

نقشه شهرهای ايران برای گوگل مپ اضافه شد !!!


با سلام خدمت دوستان محترم

به اطلاع میرسانم که نقشه شهرهای ایران با جزئیات نسبت کامل برای اکثر شهرها اضافه شده !

همین الان میتونید چک بکنید !

این خبر خوبی هست مخصوصا برای کسانی که گوشی های سونی اریکسون جاوا دارند که جی پی اس داره ولی تا الان نمیتونستن جی پی اس رو راه بندازن !

همین الان میتونید این مساله رو اینجا چک بکنید :

http://www.google.com/mapmaker
__________________

9 دیکشنری آنلاین انگلیسی به فارسی

9 دیکشنری آنلاین انگلیسی به فارسی


۱- دیکشنری آنلاین انگلیسی و فارسی: این سرویس به شما امکان ترجمه لغات از انگلیسی به
فارسی و از فارسی به انگلیسی را میدهد و میتوانید لغات مرتبط با واژه مورد جستجوتان را نیز در نتایج بینید.

۲- دیکشنری آنلاین انگلیسی به فارسی و فارسی به انگلیسی: این سرویس همچون سرویس قبل بوده و نیز امکان ترجمه متن را هم برای شما فراهم نموده است.

۳- دیکشنری آنلاین انگلیسی به فارسی نارسیس: اگر با نرم افزار نارسیس کار کرده باشید حتما از قدرت آن باخبر هستید. سرویس آنلاین این نرم افزار نیز به همان قدرت عمل مینماید.

۴- دیکشنری آنلاین سریع: یک دیکشنری آنلاین و سریع با محیط ساده و سبک اما با قابلیتهای بالا

۵- دیکشنری آنلاین آریا: دیکشنری آنلاین فارسی به انگلیسی، انگلیسی به فارسی و انگلیسی به انگلیسی که کیبردی هم در خود برای تایپ مستقیم دارد.

۶- لغتنامه انگلیسی به فارسی: با قابلیت جستجو کلمات مشابه بصورت همزمان و سرعت بیشتر جستجو با فن آوری Ajax همراه مناسبی برای شما در صفحات انگلیسی وب

۷- دیکشنری رایگانی انگلیسی به فارسی: این دیکشنری علاوه بر ترجمه لغات شما به صورت آنلاین، کدی هم برای درج دیکشنری در قالب وبلاگ شما را در اختیارتان قرار میدهد.

۸- دیکفا: این دیکشنری هم همچون دیکشنری آنلاین قبلی کدی را هم برای درج دیکشنری در قالب وبلاگتان در خود دارد.

۹- فارس دیکشنری: یک فرهنگ لغت آنلاین و قدرتمند دیگر


منبع :

فید، فید ریدر، گوگل ریدر و خوراک چیست؟

فید، فید ریدر، گوگل ریدر و خوراک چیست؟


سلام به همه دوستان

اصولا فید در کشور ما کمتر مورد توجه قرار گرفته ولی اونایی که ازش استفاده می کنن طرفدارهای پر و پا قرصش هستن ! یکیشون هم من هستم و جزو اون دسته هستم!

حالا می خوام به شما هم یاد بدم تا شما هم از این موهبت اینترنتی استفاده کنید

مواد لازم برای کار:
1. اگر از گوگل ریدر استفاده می کنید (جلوتر توضیح می دم) یک اینترنت پر سرعت در غیر این صورت نیازی نیست، اینترنت دیال آپ هم کار شما رو راه می اندازه.
2. تعدادی فید!
3. انگیزه...

معرفی:
امروز اینترنت و وبلاگها سرعت بالاتری می طلبند. استفاده سریع از وبلاگهایی که هر روز پیشرفته تر می شوند به آرزویی بدل شده است. امروز ، روز سرعت است ولی وبگردی سریع یک توهم پنهان است اگر شما مطالب وبلاگها را بخوانید، اما بدون فید.

در این مقاله به معرفی فید و نحوه شروع به استفاده از فید صحبت می کنیم. اگر شما بخواهید در وقت خود ساعتها صرفه جویی کنید باید فید را بشناسید. این مقاله با زبانی ساده و غیرفنی یکی از مفیدترین ابزارهای وب را به شما معرفی می کند.

فید (یا همان خوراک) یک آدرس است که شما با رفتن به آن آدرس مطالب وبلاگ را با قالب سفید بخوانید. خواندن در قالب سفید در حقیقت یعنی شما مطالب وبلاگ را بدون استفاده از امکانات قالب و ظواهر قالب بخوانید. برای همین طبیعی است که شما مطالب را سریعتر بخوانید. این سریعتر خواندن گاهی با توجه به سرعت اینترنت شما تا چند دقیقه هم طول می کشد. ولی فید یک قابلیت دیگر هم دارد و آن چیزی جز استفاده از قالب سفید است. در حقیقت شما با استفاده از فید می توانید مطالب را در فیدخوان خود بخوانید.

خواندن در فیدخوان چه فوایدی دارد؟

1.اگر یک وبلاگ یا سایتی به روز شود شما از طریق فید خوان متوجه می شوید. لازم نیست شال و کلاه کنید و تا دم در وبلاگ بروید و ببینید خبری نیست.

2. شما مطالب را در یک جا می خوانید. برای خواندن مطالب لازم نیست آدرس 2200 سایت و 14785 تا وبلاگ را حفظ کنید. فقط کافی است تا یکبار فیدشان را به فیدخوان اضافه کنید و خلاص. آنچه همه خوبان دارند این فیدخوان همه را یکجا دارد!

3. مسلم است که مطالب را بسیار سریعتر می خوانید. این دلیل برتری فیدخوان در ایران عزیز است. شما که نمی خواهید این همه وبلاگ را از خود وبلاگ بخوانید. اصلا خسته نمی شوید این همه راه می روید به این همه وبلاگ سر می زنید؟

4. خوبی فید این است که اگر شما از فیدبرنر یک وبلاگ استفاده می کنید ( بعدا توضیح خواهم داد این فیدبرنر چیه ) اگر وبلاگ مورد عنایت مسئولین مخابرات قرار گرفت شما باز هم وبلاگ را از دست نمی دهید. این تنها راه قطعی دور زدن این مسئله است. شما هم که ماشالله از هر 10 وبلاگی که می خوانید 11 تا مسدود است!

5. اگر شما از فیدخوانهایی مانند گوگل ریدر ( چقدر عجله دارید! آخر مطلب این رو هم معرفی می کنم ) استفاده کنید می توانید با دوستانتان مطالب را به اشتراک بگذارید. (خود من از گوگل ریدر استفاده می کنم! و حتما اشتراک هم می کنم!!)

6. شما می توانید انواع اقسام شکلک های ممکن را مانند علامت گذاری به هزار و یک مدل و دسته بندی های خاص خودتان را همه در فیدخوانتان اعمال کنید.

دلایل دیگری هم هست ولی فکر می کنم هر آدمی با این دلایل حتما به سراغ یک فیدخوان درست و حسابی می رود. البته نمی دانم تاج سرها هم می توانند از فیدخوان استفاده کنند یا نه ولی اگر توانستند حتما خبر می دهم شما هم استفاده کنید.

کدام فیدخوان را توصیه می کنید؟
فیدخوانها به دو صورت است. فیدخوان ( از این به بعد ممکن است فیدریدر صدایش کنیم ) یا آنلاین هستند یا آفلاین. هر کدام هم مزایای خودشان را دارند. ولی به شخصه گوگل ریدر را توصیه میکنم. چرا گوگل ریدر؟
گوگل ریدر بسیار ساده و روان اجرا می شود. امکانات زیادی دارد که جدیدا امکان گوگل ریدر شیرینگ آن که به عنوان گوگل ریدر اشتراکی هم نام می برند بورس بازار وبلاگستان شده است. محصول گوگل است که خودش نشان از امنیت و پایداری سیستم در اکثر مواقع می دهد. با حسابهای گوگل شما مانند جیمیل کاملا سازگار است. و خیلی هم ساده است. برای شروع به نظر من بهترین انتخاب است.

روش کار چیست؟

وارد اینترنت بشوید!!

به سایت گوگل ریدر رفته (http://reader.google.com) و در حساب خود وارد شوید. این حساب همان حساب Gmail شماست. اگر چنین حسابی ندارید از طریق سایت گوگل می توانید بسازید. در صورت نداشتن این حساب از بسیاری از امکانات سایت گوگل محروم شده اید (ساختن چنین حسابی بسیار ساده است ولی اگر مشکلی داشتید می توانید همین جا بپرسید تا شخصا جواب بدهم )

حالا باید یک فید داشته باشید. ما از فید این سایت (http://www.iran-far.ir/external.php?type=RSS2) استفاده می کنیم ولی شما برای پیدا کردن فید یک وبلاگ باید دنبال لوگوهای فید بگردید. یا دنبال جملاتی مانند در فید ما مشترک شوید یا خوراک یا چیزی شبیه به این باشید. کلماتی مانند RSS یا Atom هم عبارات دیگری هستند که شما را در رسیدن به فید یک وبلاگ یا سایت راهنمایی می کنند. کار ساده ای است. در آخر هر مطلب این وبلاگ هم نمونه ای از این علامات فید را می بینید. لوگوها منظور چیزهایی شبیه () است. اگر می خواهید خودتان را امتحان کنید سعی کنید فید همین انجمن را پیدا کنید. اگر پیدا نکردید حتما بپرسید تا به شما توضیح کاملتری بدهم. اگر نتوانید در یک وبلاگ فید را پیدا کنید کل این آموزش بدون نتیجه است. ( بشنوید ولی باور نکنید )

فیدبرنر هم یک فید که از روی فید وبلاگ ساخته شده است. سعی کنید همیشه از فید فیدبرنر استفاده کنید. مهمترین دلیل آن است که اگر وبلاگ مسدود شد و شما مشترک آن بودید اگر وبلاگ نویس به جای دیگر نقل مکان کرد شما سریعا متوجه خواهید شد. برای این که بفهمید یک فید برای فید برنر است یا نه به اول فید نگاه کنید. اگر با آدرس http://feeds.feedburner.com شروع شده بود، حتما برای فیدبرنر است.

خوب پس حالا شما یک فید دارید.

در گوگل ریدرتان ( قبلا وارد شدید. یادتان نیست؟ ) به دنبال عبارت Add subscription بگردید. اگر بر روی آن کلیک کنید شکلی مانند شکل زیر ظاهر می شود.



در قسمتی که مشخص شده است آدرس فید ( اگر ادرس فید را ندارید از آدرس خود وبلاگ هم در گوگل ریدر می شود استفاده کرد) را بنویسید ( مطابق شکل زیر ) و بر روی دکمه Add کلیک کنید.



اگر همه کارها را درست انجام داده باشید بعد از چند ثانیه باکسی مانند شکل زیر برای شما باز می شود که اگر بر روی هر کدام از تیترها کلیک کنید مطلب برای شما باز می شود و شما می توانید به راحتی بخوانید.

8 ترفند برای افزایش سرعت دسترسی به ایمیل در Gmail !

یکی از مشکلاتی که کاربران ایرانی به دلیل سرعت پایین اینترنت خود زیاد با آن برخورد میکنند استفاده از سیستم ایمیل Gmail است؛ به طوریکه به دلیل تکنولوژی های به کار رفته در Gmail لود صفحات آن با سرعت بسیار کندی صورت میگیرد و یا اصلأ گاهی پیغام های خطایی نظیر 502 (temporary) نمایش داده میشود. اما شما برای دسترسی به Inbox خود در Gmail راه های دیگری نیز دارید! راه هایی که به وسیله آنها میتوانید به Gmail با سرعتی بسیار بالاتر دسترسی پیدا کنید. در این ترفند به معرفی 8 راه غیر متعارف برای دسترسی به سرویس Gmail میپردازیم.

 

بدین منظور شما میتوانید از هر یک از 8 آدرس مخصوص زیر به دلخواه استفاده نمایید.

هر صفحه دارای ویژگی های خاص خود است:

 

حالت پایه:

http://mail.google.com/mail/?ui=html

 

ورژن قدیمی:

http://mail.google.com/mail/?ui=1

 

حالت Secure یا امن:

https://mail.google.com

 

حالت Safe یا ایمن:

http://mail.google.com/mail/?labs=0

 

حالت موبایل:

http://mail.google.com/mail/?ui=mobile

http://m.gmail.com

 

حالت آیفون:

http://mail.google.com/mail/x/gdlakb-/gp

 

حالت  : iGoogle gadget

http://www.google.com/ig/gmailmax

 

حالت عدم چک نمودن نوع مرورگر:

http://mail.google.com/mail?nocheckbrowser

(این حالت مخصوص زمانی است که نمیخواهید Gmail اتوماتیک نوع ورودی شما را تشخیص دهد و خود را با آن تطابق دهد).

 

دسته بندي اتوماتيك ايميل ها در Gmail

در صورتی که شما نیز همانند بسیاری از کاربران دیگر اینترنت برای بهره گیری از سرویس ایمیل ، Gmail را انتخاب کرده باشید ، ممکن است دوست داشته باشید تا از این پس ایمیل هایی که از جانب فرد یا سایت خاصی که معمولأ به طور روزانه برای شما ایمیل ارسال میکند را برای حفظ نظم سرویس ایمیل خود دسته بندی کنید. بدین شکل که ایمیل از جانب فرد یا سایت به طور اتوماتیک در یک دسته خاص قرار گیرد. در این ترفند قصد داریم به معرفی این روش به طور ساده در Gmail بپردازیم.

 

براي اين كار كافي است وارد محيط Gmail شويد .

حال در كنار كادر جستجو ، بر روي گزينه Create a filter كليك كنيد و يا به بخش Setting رفته و سپس بر روي زبانه Filters كليك كرده و سپس عبارت Create a new filter را برگزينيد.

حال در صفحه اي كه به چشم مي خورد ، مي توانيد عبارتي كه مد نظر شماست را با توجه به ايميلهاي خود در كادر هاي مختلف وارد كنيد .

در كادر From مي توانيد مشخص كنيد ايميلهايي كه از طرف شخص يا شركت خاصي ارسال شود . (مثلا Tarfand30T@yahoo.com برای ایمیل های ترفند سی تی (

در كادر To ايميلهايي كه به آدرس مشخصي ارسال شده اند . مثلا فرض كنيد تمامي ايميلهاي يك اكونت ديگر شما در سايتهاي ديگر يا يك اكانت ديگر گوگل به اكانت فعلي Forward مي شود . حال مي توانيد براي ايميلهاي خود دسته بندي هاي مختلف تعريف كنيد .

در كادر Subject هم مي توانيد مشخص كنيد اگر كلمه خاصي در موضوع ايميل شما قرار داشت شامل دسته بندي (filter) شود

در كادر Has the words نيز مي توانيد جمله يا كلمه خاصي كه در متن ايميل وجود داشت را تايپ كنيد

در صورت وارد كردن كلمه اي در كادر Doesn’t have ، چنانچه در متن ايميل شما آن كلمه وجود نداشته باشد آن ايميل شامل دسته بندي واقع مي شود . (ترفند سی تی.بلاگفا)

با كليك بر روي دكمه Test Search مي توانيد نتايج را بلافاصله مشاهده كنيد .

شما مي توانيد تنها يكي از كادرهاي فوق و يا چندين كادر مختلف را پر كنيد .

حال با كليك بر روي دكمه Next Steps به مرحله بعد برويد .

حال در پنجره موجود مي توانيد نتايج را بنا به دلخواه خود تنظيم كنيد .

Skip the Inbox = ايميلهايي كه داراي خصوصيات تعريف شده باشند را درInbox ايميل شما نمايش نخواهد داد و تنها در دسته بندي كه تعيين مي كنيد جمع اوري خواهد شد (Labels)

Star it = ايمليهاي تعريف شده را ستاره دار خواهد كرد .

Apply the label = ايمليهايي كه داراي خصوصيات تعريف شده باشند را در يك Label خاص قرار خواهد داد .

Forward it to = ايميلهاي فوق را به يك آدرس ايميل ديگر Forward مي كند .

Delete it = نيز ايميلهاي ذكر شده را به صورت اتوماتيك حذف مي كند .

همچنين با انتخاب گزينه Also apply filter to نيز نتايجي كه در مرحله قبل يافت شده اند نيز شامل اين اعمال قرار خواهند گرفت ؛ در غير اين صورت تنها ايميلهايي كه از اين به بعد داراي خصوصيات فوق باشند شامل عمل Filter قرار خواهد گرفت .

از آنجايي كه قصد ما تنها جمع آوري يكسري ايميل خاص بود لذا گزينه Apply the Lable را انتخاب كرده و يك Label تعيين مي كنيم .

حال در صفحه اصلي Gmail ، در كادري كه در سمت چپ به چشم مي خورد با كليك بر روي Label خودتان مي توانيد ايميلهاي مربوطه را مشاهده كنيد . همچنين در صورت وجود ايميل خوانده نشده اي در هر Label عددي در مقابل label به چشم خواهد خوvد كه نشان دهنده تعداد ايميلهاي خوانده نشده است.

 

کلیه کلیدهای میانبر در محیط Gmail

کلیه کلیدهای میانبر در محیط Gmail


یکی از ویژگی های جالبی که گوگل برای سرویس میل خود ، Gmail ، در نظر گرفته است ، امکان استفاده از کلیدهای تک و کلیدهای ترکیبی میانبر توسط کیبورد برای سهولت در دسترسی به قسمتهای مختلف این سرویس میل است. به ویژه پس از آنکه امکان ثبت نام در Gmail بدون دعوت نامه نیز امکان پذیر شد کاربران آن بسیار بیشتر شدند. در این ترفند قصد داریم لیست کامل کلیه کلیدهای تکی و ترکیبی میانبر قابل استفاده در Gmail را به زبان فارسی برای شما معرفی کنیم.


عملکرد
کلیدهای تک
جستجو در ایمیل در جعبه‌ی جستجو با نوشتن کلمه‌ای که می‌خواهید جستجو کنید
/
ایجاد Compose
در صورتی که کلید Shift+C را بزنید، پنجره‌ی Compose در پنجره‌ای جدید باز می‌شود
C
رفتن به قسمت Conversation جدید
K
رفتن به قسمت Conversation قدیم
J
ایمیل (پیام) بعدی
N
ایمیل (پیام) قبلی
P
Conversationهای شما را باز می‌کند. حال چه در حالت Expands یا Collapses باشد
O یا Enter
بازگشت به لیست Conversation
U
آرشیو. آنچه را که در حال دیدن آن هستید را به قسمت آرشیو ایمیل شما می‌فرستد
Y
انتخاب Conversation. برای آنکه آن را بخواهید پاک، آرشیو و کارهای از این نوع کنید
X
ستاره‌دار کردن پیام یا Conversation
S
جواب دادن (Reply) به پیام.
در صورتی که کلید Shift+R را بزنید، پنجره‌ی جواب دادن در پنجره‌ای جدید باز می‌شود (ترفند سی تی.بلاگفا)
R
جواب دادن به همه (Reply All). در صورتی که از کلیدهای Shift+A استفاده کنید، پنجره‌ی Reply All در پنجره‌ای جدید باز می‌شود
A
فوروارد کردن.
اگراز کلیدهای Shift+F استفاده کنید، پنجره‌ی فوروارد در پنجره‌ای جدید باز می‌شود.

F
خارج شدن
Esc
گزارش دادن اسپم بودن یک پیام یا Conversation
!

عملکرد
کلیدهای ترکیبی
فرستادن پیام
Tab + Enter
آرشیو کردن Conversation و رفتن به Conversation بعدی
Y + O
رفتن به قسمت All Mail
G + A
رفتن به قسمت Starred
G + S
رفتن به قسمت Contacts
G + C
رفتن به قسمت Draft
G + D
رفتن به قسمت Inbox
G + I
__________________
قرن21،قرن فناوري

GMail خود را سریعتر چک کنید

GMail خود را سریعتر چک کنید


مدت زمان زیادی از بازگشایی سیستم ایمیل گوگل Gmail میگذرد. این سرویس به مرور تکمیل یافت و در حال حاضر یکی از ارائه دهندگان پر طرفدار خدمات ایمیل در جهان میباشد. به ویژه پس از آن که عضویت در آن دیگر نیازی به دعوت نامه ندارد. اما کاربران ایرانی که از خطوط اینترنتی با سرعت پایین استفاده میکنند ، همواره از مشکل دیر باز شدن اولیه صفحه Gmail گله داشته و دارند. در این ترفند قصد داریم روشی را معرفی کنیم که با بهره گیری از آن میتوانید به نوعی میانبر زده و به صفحه Gmail خود به شکلی سریع وارد شوید.

بدین منظور:
کافی است به جای وارد کردن صفحه مربوط به لوگین کردن به Gmail ، از آدرس http://m.gmail.com مراجعه کنید.
اکنون میل شما با سرعتی بالاتر و البته بدون نمایش متعلقات اضافی باز خواهد شد.

10 ترفند gmail

10 ترفند gmail
به جرأت میتوان گفت پس از سرویس ایمیل یاهو ، اکنون Gmail پرطرفدارترین صندوق پستی الکترونیکی محبوب کاربران است. Gmail با داشتن ظرفیتی تقریبأ نامحدود و نوآوری های مختلف توانسته است امکانات سودمندی را برای استفاده کنندگان فراهم کند. اما Gmail هم بمانند تمامی نرم افزارها و سرویس های اینترنتی دیگر ، قابلیتهای تقریبأ مخفی ای دارد. در این ترفند قصد داریم به معرفی 10 کار جالب که احتمالأ تاکنون با Gmail خود انجام نمیداد بپردازیم!

1- سازمان‌دهی جلسات و قرارها در جی‌میل
البته این ویژگی به درد کسانی می‌خورد که خیلی از سیستم تقویم گوگل استفاده می‌کنند و کارهایشان را با استفاده از آن سازمان‌دهی می‌کنند.
وقتی یک میل برای شخصی می‌فرستید و قراری با او می‌گذارید ، می‌توانید در خود جی‌میل قرار را با کلیک بر روی Add event info سازمان‌دهی کنید ، به این ترتیب قرار به صورت خودکار وارد تقویم گوگل شما می‌شودو شخص دریافت‌کننده میل هم می‌تواند به سادگی قرار را وارد تقویم خود کند.

2- چت آفلاین
تقریبا مثل یاهو مسنجر می‌شود در جی‌میل هم برای یک شخص آفلاین گذاشت.

3- جستجوی پیشرفته
بسیاری از کاربران جی‌میل برای پیدا کردن یک میل خاص از قسمت جستجوی جی‌میل استفاده می‌کنند. اما کاربران بسیار کمتری از جستجوی پیشرفته جی‌میل استفاده می‌کنند. جستجوی پبیشرفته می‌تواند پیدا کردن میل‌ها را بسیار آسان کند ، چرا که می‌شود برای مثال جستجو را محدود به میل‌های ارسالی فقط یک نفر ، یک بازه زمانی مشخص یا میل‌های حاوی پیوست کرد.

4- تذکر به روز شدن گفتگو
فرض کنید میل‌های زیادی را با فردی رد و بدل کرده‌اید و مرتب میل نوشته‌اید و پاسخ گرفته‌اید ، جی‌میل در این طور مواقع میل‌ها را در قالب یک گفتگو یا Conversation مرتب می‌کند. گاهی وقتی دارید پاسخی برای یک گفتگو می‌نویسید ، مخاطب شما میل می‌فرستد. در این طور مواقع یک تذکر به روز شدن گفتگو Conversation update notification ظاهر می‌شود:

5- لینک‌های هوشمند سمت راست
جی‌میل به صورت خودکار متن میل‌ها را پردازش می‌کند ، اگر در متن میل به جای خاص و یا به قراری در وقت معینی اشاره شده باشد ، در سمت راست لینک‌هایی ظاهر می‌شود که کاربر را به سرویس گوگل مپ راهنمایی می‌کند تا مکان مورد نظر را ببنید و یا به کار پیشنهاد می‌شود که قرار مورد نظر را وارد سرویس تقویم گوگل کند تا فراموش نکند.

6- از جی‌میل برای موبایل استفاده کنید
البته اگر موبایلتان امکان دسترسی به اینترنت را دارد.

7- چرا با چت جواب نمی‌دهید؟!
برای من بارها پیش آمده که میلی برای یکی از دوستان فرستاده‌ام و چون دوستم آنلاین بوده ، بلافاصله پاسخ میل را گرفته‌ام. این طور وقت‌ها آدم متوجه می‌شود که گیرنده میل ، در همان لحظه آنلاین است.
در این طور مواقع اگر مجددا با شخص مورد نظر مجددا کار داشتیم بهتر است به جای رد و بدل کردن میل به صورت عادی در قالب چت به گفتگو با وی بپردازیم : replying by chat

8- ابزار یا گجت جی‌میل را به صفحه شخصی گوگل اضافه کنید
صفحه شخصی گوگل ، صفحه‌ای است که شما می توانید با اضافه کردن آدرس خروجی فید سایت‌های مختلف ، تقویم و یک سری ابزار یا gadget به آن ، صفحه بسیار جالبی به میل خود درست کنید که که حاوی چکیده‌ای از اطلاعات و خبرهای روز باشد : از وضعیت آب و هوا گرفته تا آخرین اخبار روز و از عکس‌های زیبای نشنال جئوگرافیک گرفته تا مناسبت‌های تاریخی روز.
بهتر است به صفحه شخصی خودتان ، گجت جی‌میل را هم اضافه کنید.

9- اسناد ضمیمه میل را در Google Docs & Spreadsheets ببینید
فرض کنید میلی برای شما فرستاده شده که یک فایل word یا Excel دارد و شما برنامه word یا Excel را به هر علت در سیستمتان ندارید. چه می‌کنید؟
- شما می‌توانید با کلیک روی open as a Google Docs & Spreadsheets در پایین فایل‌های پیوست‌شده ، فایل‌ها را با استفاده از سرویس آنلاین گوگل ببیند و حتی انها را ویرایش کنید!
- شما می‌توانید فایل word را با فرمت HTML ببنید.
- شما می‌توانید فایل PowerPoint را به صورت یک اسلایدشوی فلش ببینید.

پس میِ‌بینید که در یک سیستم بدون برنامه ، تنها با یک مرورگر هیچ وقت در هنگام چک کردن میل‌هایی با این فایل‌ها دچار مشکل نخواهید شد.

10- اضافه کردن آدرس میل‌های دیگر در قسمت مبدأ میل :
فرض کنید شما میل‌های دیگری مثلا در شرکتی که کار می‌کنید و یا دانشگاهی که تحصیل می‌کنید ، دارید و مسئولان شرکت و دانشگاه ، فقط با همان میل به شما جواب می‌دهند. در عین حال نمی‌خواهید برای فرستادن میل به صورت مرتب ، وارد دیگر حساب‌های میل خودتان بشوید.
جی‌میل چنین کاری را ممکن می‌کند:
- وارد حساب کاربری خود در جی‌میل شوید.
- روی settnig در گوشه شمال شرقی صفحه میل! کلیک کنید و بعد برگه Accounts را باز کنید.
- در قسمت Send mail as روی Add another email address کلیک کنید.
- نام و آدرس میل دیگرتان را بنویسید.
- روی Next Step کلیک کنید. جی‌میل برای اینکه تشخیص دهد آدرس میل دیگر واقعا متعلق به ماست یک ایمیل تأییدی می‌فرستد ، شما باید آن میل را باز کند و روی لینکش کلیک کنید تا این مرحله هم انجام شود.
- کار تمام است و از این به بعد می‌توانید وقتی در جی‌میل هستید ، ایمیل‌هایی با آدرس میل‌های دگرتان بفرستید. شخص دریافت‌کننده میل چنین چیزی را می‌بیند:
"From customaddress@domain.com on behalf of yourusername@gmail.com."
__________________
قرن21،قرن فناوري

ترفند اينترنت

ترفند اينترنت


یکی از مشکلاتی که برای بسیاری از کاربران پیش میاید، مشکل ایمیل های دریافتی زیاد در طول روز است. به طوریکه اگر به دلیلی چند روز ایمیل چک نشود و پیام ها خوانده نشود مقداری زیادی ایمیل خوانده نشده در Inbox جای میگیرد و حتی گاهی تا چندین صفحه ایمیل خوانده نشده خواهید داشت. طبعأ باز نمودن تک تک ایمیلها کاری وقت گیر است به ویژه اینکه محتوای تعداد زیادی از ایمیل ها مشابه هم هستند. در این زمان اگر از سرویس Gmail برای ارسال و دریافت ایمیل استفاده میکنید مشکل شما در چند ثانیه حل خواهد شد! شما میتوانید به سادگی کلیه ایمیل های خوانده نشده خود در Gmail را انتخاب کنید و با یک کلیک آنها را به عنوان ایمیل های "خوانده شده" تنظیم کنید. با اینکار ایمیل های جدید شما در Inbox به همان عدد صفر تغییر میکند.

بدین منظور:
به Gmail خود از طریق سایت www.gmail.com وارد شوید.
دقت کنید در حالت Standard صفحه Gmail را مشاهده کنید، نه در حالت basic HTML یا Older version.
حال در قسمت جستجوی ایمیل، عبارت label:unread را وارد کرده و دکمه Search Mail را بزنید.
خواهید دید که کلیه ایمیل های خوانده نشده شما لیست میشود.
اکنون به قسمت بالای ایمیل ها دقت کنید، قسمتی با عنوان Select: All, None, Read, Unread, Starred, Unstarred قابل مشاهده است.
در این قسمت بر روی All کلیک کنید.
بلافاصله پس از کلیک، در زیر آن نوار جدیدی ایجاد شده و عبارت All 20 conversations on this page are selected. Select all conversations that match this search در آن درج میشود.
شما بایستی بر روی Select all conversations that match this search کلیک کنید.
جمله به Select all conversations that match this search تغییر میکند.
اکنون در نوارد بالایی و در منوی کشویی که با عبارت More Action مشخص شده است کلیک کرده و Mark as Unread را انتخاب کنید.
سوالی از شما پرسیده خواهد شد که با انتخاب OK، کلیه ایمیل های خوانده نشده شما به عنوان ایمیل "خوانده شده" تغییر حالت میدهد.

از این ترفند میتوانید استفاده های مختلف دیگری نیز بکنید. به عنوان مثال به عکس این عمل یعنی تبدیل تمام ایمیل ها به عنوان "خوانده نشده"، پاک نمودن کلیه ایمیل ها و... میتوان اشاره نمود.
__________________
قرن21،قرن فناوري

تعدادی مرجع آموزشی برای طراحان وب

تعدادی مرجع آموزشی برای طراحان وب


در این مطلب قصد دارم تا برای دوستانی که تازه قصد یادگیری مباحث ابتدایی مربوط به طراحی وب سایت را دارند چند منبع با ارزش و بسیار سودمند معرفی کنم.

برای اینکه بخواهید یک طراح وب باشید ابتدای ساکن می بایست با کدها و تگهای html و نحوه کد نویسی آن آشنا شوید. بواقع اسکلت یک وب سایت را همین html تشکیل می دهد و نما و شکل و ظاهر آن را css. بدین ترتیب اگر به مفهوم خوبی از این دو دست پیدا کنید با کمی مطالعه و تمرین بقیه چیزها را نیز فرا می‌گیرید.


  • اولین معرفی ما سایت معتبر و مطرح w3school است به جرات می‌توان این سایت را یکی از بزرگترین مرجع آموزشی برای فراگیری مقدماتی تا حرفه ای طراحی وب دانست. مثالهای خوب این سایت باعث تسریع در یادگیری برای کارآموزان می شود و کدنویسی را به صورت استاندارد و تمیز فرا می‌گیرید. این سایت با داشتن مقالات بسیار خوبی در رابطه با طراحی باعث آشنا شدن شما با یک طراحی استاندرد و ایده آل می گیردد و روش ها و تکنیک هایی برای بهبود طراحی وب بیان شده که بسیار برای کاربران مثمر ثمر خواهد بود. شما در این سایت مقالات آموزشی و مطالب مفیدی از html و css و جاوا اسکریپت و php و asp.net می‌آموزیید.

  • دومین معرفی ما سایت htmldog است. در این سایت شما آموزشهای خوبی در رابطه با html , css ‌ می‌آموزید. این سایت گنجینه فوق العاده‌ای برای مبتدیان علاقمند به یادگیری ‌httm , css می‌باشد.
  • منبع آموزشی ِدیگری که دررابطه با طراحی وب پیشنهاد می‌کنیم، سایت how-to-build-websites است. این سایت خود را این چنین معرفی کرده که پایگاهی آموزشی است برای تمام مبتدیان و کسانی که برای طراحی از برنامه هایی چون فرانت پیج و دری میر و غیره استفاده می کنند… و به این نکته بسیار مهم اشاره داشته که “اگر می خواهید واقعاً یک طراح وب شوید باید در بدو شروع زبان کد نویسی html را به صورت مفهومی یاد بگیرید. یادگیری این زبان(کدنویسی دستی) نیز ساده تر ازاون چیزی هست که به‌اش فکر می‌کنید.

    برای مشاهده این عکس در ابعاد واقعی اینجا را کلیک کنید


    در این سایت ویدیوهای آموزشی ِ خوبی در رابطه با طراحی وب سایت نیز قرار داده شده که کاربران می‌توانند از آنها نیز استفاده کنند.

  • در سایت htmlcodetutorial همانطور که از نامش پیداست مرجعی آموزشی برای یادگیری زبان html برای مبتدیان می‌باشد. این سایت فروم خوب و قوی هم دارد که اگر به زبان انگلیسی کمی آشنا باشید می‌توانید جواب اشکالات خود را از آنجا بیابید. ضمن اینکه در رابطه با سی اس اس نیز آموزش های خوبی دارد که اگر از پایه و با برنامه جلو بروید آشنا شدن با این مبحث برای شما از این سایت چندان کار سختی نیست.

  • سایت tizag نیز از لحاظ محتوای آموزشی دست کمی از سایت‌های بالا که معرفی شدند ندارد و مرجع کاملی برای آموزش html , css , php‌ است. علاقمندان به یادگیری این زبان‌ها می‌توانند مباحث آموزشی مورد نیاز خود را از این سایت مطالعه کنند.

  • به سایت w3c که در زمینه توسعه استاندارهای وب فعالیت می‌کند می‌رسیم. به قول دوستان این کاره بچه‌های طراح کار خودشان را با کمک این سایت valid ‌ می‌کنند. در این سایت شما از اینجا و اینجا و اینجا در رابطه با html ,css و نحوه کد نویسی آن‌ها به صورت حرفه‌ای و اصولی و مطابق با کنسرسیوم جهانی w3 اطلاعات خوبی کسب می‌کنید.
امیدوارم این سایت‌ها که به شما علاقمندان طراحی وب معرفی شد کاربردی و مفید واقع شود. کار سختی نمی‌آید. پس شروع کنید از همین الان.


منبع: نشرینه اینترنتی پریانا

چگونه ويروسها گسترش مي‌يابند؟

چگونه ويروسها گسترش مي‌يابند؟
چگونه ويروسها گسترش مي‌يابند؟

زماني كه يك كد برنامه آلوده به ويروس را اجرا مي‌كنيد، كد ويروس هم پس از اجرا به همراه كد برنامه اصلي، در وهله اول تلاش مي‌كند برنامه‌هاي ديگر را آلوده كند. اين برنامه ممكن است روي همان كامپيوتر ميزان یا برنامه‌اي بر روي كامپيوتر ديگر واقع در يك شبكه باشد. حال برنامه تازه آلوده شده نيز پس از اجرا دقيقاً عمليات مشابه قبل را به اجرا درمي‌آورد. هنگامیکه بصورت اشتراکی یک کپی از فایل آلوده را در دسترس کاربران دیگر کامپیوترها قرار می دهید، با اجراي فايل كامپيوترهاي ديگر نيز آلوده خواهند شد. همچنين طبيعي است با اجراي هرچه بيشتر فايلهاي آلوده فايلهاي بيشتري آلوده خواهند شد.
اگر كامپيوتري آلوده به يك ويروس بوت سكتور باشد، ويروس تلاش مي‌كند در فضاهاي سيستمي فلاپي ديسكها و هارد ديسك از خود کپی هایی بجا بگذارد. سپس فلاپي آلوده مي‌تواند كامپيوترهايي را كه از روي‌آن بوت مي‌شوند و نيز يك نسخه از ويروسي كه قبلاً روي فضاي بوت يك هارد ديسك نوشته شده نيز مي‌تواند فلاپي‌هاي جديد ديگري را آلوده نمايد.
به ويروسهايي كه هم قادر به آلوده كردن فايلها و هم آلوده نمودن فضاهاي بوت مي‌باشند اصطلاحاً ويروسهاي چند جزئي (multipartite) می گویند.
فايلهايي كه به توزيع ويروسها كمك مي‌كنند حاوي يك نوع عامل بالقوه مي‌باشند كه می توانند هر نوع كد اجرائي را آلوده ‌كنند. براي مثال بعضي ويروسها كدهايي را آلوده مي‌كنند كه در بوت سكتور فلاپي ديسكها و فضای سيستمي هارد ديسكها وجود دارند.
نوع ديگر این ويروس ها كه به ويروسهاي ماكرو شناخته می شوند، مي‌توانند عمليات پردازش كلمه‌اي (word processing) يا صفحه‌هاي حاوي متن را كه از این ماكروها استفاده مي‌كنند، آلوده کنند. اين امر براي صفحه‌هايي با فرمت HTML نيز صادق است.
از آنجائيكه يك كد ويروس بايد حتماً قابل اجرا شدن باشد تا اثري از خود به جاي بگذارد از اينرو فايلهايي كه كامپيوتر به عنوان داده‌هاي خالص و تميز با آنها سر و كار دارد امن هستند.
فايلهاي گرافيكي و صدا مانند فايلهايي با پسوند gif . ، jpg ، mp3، wav،…هستند .
براي مثال زماني كه يك فايل با فرمت picture را تماشا مي‌كنيد كامپيوتر شما آلوده نخواهد شد.
يك كد ويروس مجبور است كه در قالب يك فرم خاص مانند يك فايل برنامه‌اي .exe يا يك فايل متني doc كه كامپيوتر واقعاً آن را اجرا مي‌كند، قرار گیرد
منبع: www.ostadonline.com

ورود به هر سايتي که گوگل به آن وارد مي شود!

ورود به هر سايتي که گوگل به آن وارد مي شود!

روز به روز تعداد سايتهايي (بخصوص سايت نشريات خارجي) که براي مشاهده از شما شناسنامه کاربري و رمز عبور مي خواهند افزوده مي شود . براي ديدن اينگونه سايتها شما بايد اول در سايت مذکور ثبت نام کنيد و بعد مطلب يا خبر مورد علاقه تان را مشاهده کنيد . با اين حال معمولاً محتويات اين سايتها در Database گوگل ثبت شده است .


بر خلاف مشترکين “معمولي” گوگل احتياج به شناسنامه کاربري و رمز عبور و ثبت نام ندارد . خيلي از سايتهايي که ديدن آنها احتياج به ثبت نام و يا اشتراک و هزينه دارند معمولاً دريچه‌اي را باز نگه مي دارند تا موتورهاي جستجوي گوگل بتوانند وارد آنها شوند ، چون اين جستجوگرها براي آنها نوعي تبليغ مجاني است و بينندگان بيشتري را با سايتشان آشنا مي‌کند . ولي به محض اينکه شما بعنوان يک کاربر “معمولي” بخواهيد مقاله و يا خبر مورد علاقه خود را که از طريق گوگل پيدا کرده‌ايد ببينيد از شما رمز عبور و شناسنامه کاربري و گاهي پول درخواست مي شود ...

وقتي گوگل بتواند وارد يک سايت بشود مشترکين ديگر هم مي توانند وارد آن سايت شوند . ترفند اين کار بسيار ساده است ، تنها کافيست با ما همراه باشيد …


اگر شما از مرورگر فايرفاکس استفاده مي کنيد از اين آدرس User Agent را ، که يکي از Plugin هاي مجاني فايرفاکس است ، ذخيره کنيد . بعد از ذخيره ، نصب و باز کردن مرورگر وارد User Agent Switcher Options شويد . از طريق مسير :


Tools > User Agent Switcher > Options


بعد از وارد شدن به U.A.S.O بر يکي از User Agentها کليک کرده و بعد بر گزينه Edit کليک کنيد تا پنجره زير باز شود .



در قسمت User Agent کد زير را بنويسيد و بعد از تائيد تغييرات پنجره ها را ببنديد .



توجه مهم : در اين مثال ما گزينه Internet Explorer 6 را تغيير داديم و آنرا به مانند روبات گوگل شبيه سازي کرديم . بنابراين بايد در فايرفاکس نيز در قسمت User Agent Switcher بجاي عبارت Default عبارت Internet Explorer 6 انتخاب شود .


کساني که مرورگر فايرفاکس ندارند و فقط از اينترنت اکسپلورر استفاده مي کنند مي توانند براي تغيير User Agent خود از جمله از برنامه WinGuides Tweak Manager استفاده کنند که براي مدت يک ماه مي توان از آن رايگان استفاده کرد .


بعد از تغيير User Agent ديگر احتياج به ثبت نام نداريد تا براي مثال از سايتهايي مثل Washingtonpost.com و Nature.com ديدن کنيد . و مي توانيد تقريباً وارد هر سايتي شويد که موتورهاي جستجوگر گوگول مي توانند وارد آنها شوند .


منبع خبر: وين بتا

گوگل وب مسترز

گوگل وب مسترز

شرکت گوگل روز جمعه از راه اندازي سرويس جديدي خبر داد که به اين شرکت امکان مي دهد تعامل بهتري با وب مسترها در سراسر جهان داشته باشد.



اين سايت حاوي ابزار مختلفي است که همگي با موتور جستجوي گوگل در ارتباطند. از جمله اين ابزار مي توان به قابليتي اشاره کرد که به وب مسترها نشان مي دهد آيا گوگل به درستي يک URL خاص را ايندکس مي کند يا نه...

اين سايت در آدرس http://www.google.com/webmasters حاوي يک وبلاگ هم هست که به کاربران نشان مي دهد گوگل چگونه در وب مي خزد و اطلاعات جمع آوري مي کند.


کاربران اين سايت مي توانند آدرس يک سايت را به حساب کاربري گوگل خود اضافه کنند و از نحوه ايندکس شدن صفحات آن مطلع شوند.

آموزش استایلها 1

آموزش استایلها 1

استايل (CSS) چيست؟
 - CSS مخفف کلمه Cascading Style Sheets ميباشند.
 - اولين ورژن استايلها در سال ۱۹۹۶ ساخته شد. که اولين ورژن آن CSS1 بود.
 - ديگر وژن آن CSS2 مي باشد که در سال ۱۹۹۸ ساخته شد که بيشتر براي ويرايش صفحات، نحوه نمايشها تگها و ... کاربرد دارد.
 - فايل استايلها با فرمت CSS ذخيره ميشوند.
 
انواع استايلها:

  ۱. Inline Style: اين نوع استايل در داخل تگهاي HTML به كار گرفته ميشوند، و اين استايل فقط بروي همان تگ به خصوص تاثير خواهد گذاشت و به صورت زير نوشته خواهد شد. 
 


Example:

This is a paragraph

 در مثال بالا با استفاده از حالتهاي مختلف در استايلها نوع فونت آنرا تغيير داديم و همانطوري که در تعريف اين نوع استايل نوشتم اين استايل فقط و فقط تغييرات را بروي همين پاراگراف اعمال خواهد کرد.
۲. Embedded or Global Style: در اين نوع، استايل نوشته شده در تمامي صفحه تاثير خواهد گذاشت، اينرا بين دو تگ () به صورت زير نوشته خواهد شد. 




Example:


 

اين نوع حالت از تغييرات تعريف شده بروي تمامي تگها پاراگراف اعمال خواهد شد که رنگ متن: قرمز، جهت متن: چپ، و اندازه فونت ۸ پوينت خواهد بود. توجه داشته باشيد در اين مثال سه حالت مختلف يک استايل را براي تگ پاراگراف تعريف کرديم که با استفاده از (;) حالتهاي مختلف آن از هم جدا شدند.
اگر بخواهيد اين حالت نوشته شده را براي چند تگ ديگر اعمال کنيد مي توانيد تگها را بااستفاده از کاما (,) از هم جدا کنيد براي مثال:

 h1, h2, h3, h4 { color: gold; font-family: sans-serif }
۳.  Linked or External style sheet: نوع آخر هم معروف به استايلهاي خارجي هستند كه به صورت لينك فايل استايل را به صفحات خود لينك ميدهيد. فايلهاي استايل با فرمت CSS ذخيره ميشوند و به صورت زير به صفحات لينك داده ميشود.

 



Example:



در اين نوع از استايلها بعد از اينکه فايل استايل خود را آماده کرديد آنرا با فرمت CSS ذخيره کرده و آنرا همانند بالا فايل استايل را به قالب لينک مي کنيم. براي راحت بود در کار مي توانيد ابتدا استايلها را به صورت Internal استفاده کرده و بعد از اينکه کارتان تمام شد کدهاي نوشته شده بين دو تگ () را در نت پد کپي کرده و آنرا با فرمت CSS دخيره کرده و سپس با استفاده از فرمول بالا آن فايل را به قالب لينک دهيد.
يکي از مزيتهاي اين نوع استايل اين ميباشد که مي توانيد با داشتن يک فايل استايل براي چندين صفحه استفاده کنيد و از ديگر مزيت هاي آن با اين کار کدهاي قالب را به چند فايل تقسيم کرده و قالب را منظم تر ميشود.
 منبع : http://tools.bolghan.com/archives/000173.html

رنگي کردن اسکرول بار با استايلها

 scrollbar-colours.gifبراي تغيير رنگ اسکرول بار کدهاي زير را بين قرار دهيد:

شما ميتوانيد با تغيير دادند رنگهاي سکرول بار رو به طرح دلخواه خود بسازيد.

فونتها و خواص آنها

فونتها و خواص آنها:
۱. خانواده فونتها (Font-families)
خواص font-family اين ميباشد که مي توانيد فونت صفحه خود را انتخاب کنيد. استايلها با دو نوع فونت کار خواهند کرد:
- فونتهاي خاص (Specific): اين فونتهاي عبارتند از: Arial, Garamond, Times New Roman. اين فونتها در واقع بروي کامپيوتر اشخاص به صورت پيش فرض موجود ميباشد.
- فونتهاي عام (Generic): اين فونتها عبارتند از: Serif, Sans-serif, monospace, cursive, & fantasy که اين فونتها توسط استايلها ساپورت ميشوند.
براي تعريف صورت (اشکال) فونتها در استايلها از فرمول زير استفاده ميشوند:
 


font-family: font_name1, font_name2, ...
براي اينکه در نحوه نمايش فونتهاي بروي نمايشگرهاي متفاوت مشکل نداشته باشيد مي توانيد چند فونت دلخواه خود را بنويسيد تا اگر يکي از آنها توسط مرورگر ساپورت نشد به فونت بعدي برود، براي اينکار مي توانيد فونتها را با کاما از هم جدا کنيد. براي مثال:
 
font-family: tahoma, times new roman, arial, serif

۲. اندازه فونتها (Font Size)
در حالت استاندارد براي کنترل اندازه فونتها در HTML، با استفاده از SIZE دز تگ ميباشد. در استايلهاي براي تعريف اندازه فونتها بايد از فرمول زير استفاده کنيد:

font-size: size
 براي تعريف واحد در فونتهاي به چهار روش استفاده ميشوند:
- واحدهاي طول(Unit of length): اين واحدها عبارتند از: mm, cm, in, pt, pc, em, ex
-  توضيحات کليدي (Keyword Description): اين واحدها عبارتند از: xx-small, x-small, small, large, x-large, xx-large
- واحد به صورت درصد (٪)
- نوع آخر بيان کردن حالتهاي کليدي در آن همانند: larger, smaller
حال اين اندازه ها به دو حالت منطقي (Absolute) و نسبي (Relative) تقسيم ميشوند. تفاوت اين دو نوع در اين ميباشد که در حالت منطقي اندازهاي را برحسب واحدهاي استاندارد اندازه گيري ميباشد اين اندازه مي اندازه را به صورت عدد و يا اعشاري تعيين کرد و واحدها در اين نوع عبارتند از: mm(millimeter), cm(centimeter), in(inch), pt(point), pc(pica) در حالت نسبي اندازه فونتها برحسب نوع کارکترها (حروف) ميباشد. براي اين حالت تنها دو واحد em, ex ميباشند. که اندازه em معادل حرف بزرگ M و ex معادل حرف کوچک x ميباشند.
بهترين نوع واحدها در اندازه گيري فونتها px ميباشد که برحسب تعداد پيکسلهاي مانيتور ميباشد.

۳. فاصله در بين کلمات، حروف و خطها
با استفاده از فومولهاي زير مي توانيد سه حالت بالايي رو مشخص کنيد:
 

word-spacing: size
letter-spacing: size
line-height: size
 
در حالتهاي بالا به ترتيب فاصله بين دو کلمه، فاصله بين دو حرف، فاصله بين دو خط را مشخص مي کنيد.

۴. جهتهاي افقي و عمودي متنها:
 

text-align: alignment
vertical-align: alignment

در حالت اولي (حالت افقي) جهتها عبارتند از: left, center, right و در حالت دومي (حالت عمودي) جهتها عبارتند از: baseline, bottom, middle, sub, super, text-top, text-bottom, top

۵. حالتهاي خاص
 
1. text-decoration: decoration
decoration: blink, line-throught, overline, underline, none

2. text-transform: transform
transform: capitalize, lowercase, uppercase, none

3. font-variant: variant
variant: small-caps, none

۶. خواص فونتهاي
خواص فونتها در حالت کلي به صورت زير ميباشد:


font:font-style; font-variant; font-weight; font-size/line-height; font-family

براي مثال اينرا مي توانيد به حالت زير بنويسيد:


h2 {
 font-style: italic;
 font-variant: small-caps;
 font-weight: bold;
 font-size: 3em;
 line-height: 0.5em;
 font-family: Times New Roman, Serif
 }

h2 { font: italic small-caps bold 3em/0.5em Times New Roman, serif }
منبع : http://tools.bolghan.com/archives/000175.html

CAPTCHA چطور کار می‌کند؟

CAPTCHA چطور کار می‌کند؟
CAPTCHA چطور کار می‌کند؟

اگر به دنبال باز کردن ایمیل جدید یا خرید آنلاین هستید؛ حتماً به کلمات کج و معوجی که برای تست کردن شما روی صفحه پدیدار می‌شوند برخورده‌اید.

مطمئن باشید این کار برای تست کردن هوش و استعداد شما نیست! کامپیوتر‌ها و سایت‌ها از شما می‌خواهند که این تست را بگذرانید تا معلوم شود شما کامپیوتر هستید یا نه. پس اگر این تست را با موفقیت پشت سر گذاشتید به ماشین نبودن خودتان شک نکنید!
این تست CAPTCHA نام دارد. CAPTCHA یعنی:
Completely Automated Public Turing Test ToTell Computers And Humans Apart یا به عبارتی “تست عمومی کاملاً خودکار Turing برای تشخیص انسان از کامپیوتر”
این تست را در سایت‌های زیادی دیده‌اید. رایج‌ترین نوع آن کلماتی بهم ریخته است و شما باید ترتیب درست کلمات را وارد کنید تا وب سایت شما را تأیید کند.
راستی چرا سایت‌‌ها نیاز دارند؛ انسان‌ها را از کامپیوتر‌ها تشخیص دهند؟ این دقیقاً و تنها به این دلیل است که بعضی‌ها با استفاده از نقاط ضعف کامپیوتر‌ها؛ کمی شیطنت به خرج می‌دهند و همین کار می‌تواند خسارت‌ها زیادی به سایت‌ها و شرکت‌ها و حتی باقی کاربران بزند.
برای مثال سرویس‌های رایگان ایمیل، خود را با میلیون‌ها درخواست کاذب روبرو می‌بینند و کار آن‌ها برای ساعت‌ها مختل می‌شود. این درخواست‌ها می‌توانند قسمتی از یک برنامه خودکار باشد.

اگر تا اینجا کمی به فکر فرو رفته‌اید بهتر است این را هم بدانید که نرم‌افزار‌هایی که این تست‌ها را تولید می‌کنند نیز نمی‌توانند جواب آن را تشخیص دهند چه برسد به برنامه‌های دیگر.
CAPTCHA ریشه در یک آزمایش بنام Turning Test دارد. آلن تورینگ AlanTuring که بعضی او را پدر علوم کامپیوتر جدید می‌خوانند، این تست را برای این طراحی کرد که بفهمد آیا کامپیوترها می‌توانند مثل انسان‌ها فکر کنند یا خیر. این تست به این صورت است که فردی یک سری سوال را از یک کامپیوتر و از یک انسان می‌پرسد بدون اینکه بداند کدام کامپیوتر است و کدام انسان.
اگر پرسش کننده بتواند با توجه به پاسخ‌های انسان و کامپیوتر تشخیص دهد که کدام یک کامپیوتر است، کامپیوتر تست Tuning را پشت سر گذاشته است.
هدف CAPTCHA این است که تستی را بسازد که انسان بتواند آن را بگذراند و ماشین نتواند و همچنین برای هر کاربر یک سوال مشابه نسازد و تمام سوال‌ها متفاوت باشند.
CAPTCHA بر این واقعیت تکیه می‌کند که ذهن ما توانایی تشخیص دیداری را دارد. ذهن انسان این توانایی را دارد که از روی تصاویر ، ترتیب و ریتمی که در آن وجود دارد را تشخیص دهد. حتی می‌تواند برای تصویری که هیچ ترتیبی ندارد، یک ترتیب فرضی ایجاد کند. آیا تا به حال در ابر‌ها تصاویر عجیب و غریب پیدا کرده‌اید؟ این قابلیت مدل سازی و ترتیب سازی به تصاویر همان قابلیت ذهن ما انسان‌هاست.
ولی با این حال جایگزین دیگری برای معلولین نیز وجود دارد. بعضی از CAPTCHAها سری از کلمات به صورت صداهای تغییر یافته و با صداهای اضافی را تولید و پخش می‌کنند.
یکی از کاربرد‌های مهم CAPTCHA در آمار گیری‌های آنلاین است. در ۱۹۹۹ آمارگیری با طرح سوال اینکه بهترین رشته کامپیوتر متعلق به کدام دانشگاه است انجام شد.
دانشگاه‌های کارنگی ملون (Carnegie Mellon) و MIT با ساختن برنامه‌ای کامپیوتری که به طور خودکار به آن‌ها رای می‌داد؛ بیشترین نتایج را کسب کردند در صورتی که دانشگا‌ه‌های دیگر تنها چند صد رای کسب کرده بودند.
از کاربرد‌های دیگر CAPTCHA می‌توان به سرویس‌دهنده‌های ایمیل اشاره کرد و یا سایت‌های خرید آنلاین.
افرادی که برای نفوذ به CAPTCHA تلاش می‌کنند معمولاً بر روی تغییر تصاویر و شناسایی انکه چطور کامپیوتر‌ها فکر می‌کنند، متمرکز می‌شوند.
برای اینکار نیاز به انجام چند کار است. اول اینکه برنامه‌ای بنویسیم که تصویر را از قسمت‌های مزاحم پاک کند. سپس به سراغ مقایسه حروف با حروف بانک اطلاعاتی خود کند. و اگر ترتیبی در بین کلمات پیدا کرد که با کلمه‌ای در لغت نامه یکی است از همان ترتیب استفاده کند. البته بسیاری از سایت‌ها از کلمات واقعی استفاده نمی‌کنند و کلماتی که CAPTCHA آن‌ها نشان می‌دهد معنی خاصی ندارد.
CAPTCHAهای دیگری مثل Gimpy هستند که چهار حرف را نشان می‌دهد و شما تنها ۳نای آن‌ها را باید تشخیص دهید. به این ترتیب رقابت بین هکر‌ها و برنامه نویسان و مسئولان امنیتی سایت‌ها ادامه پیدا می‌کند.

یکی از اساتید دانشگاه کارنگی ملون (CarnegieMellon) به نام لویس ون آن که یکی از خالقان CAPTCHA نیز است در سخنرانی در سال ۲۰۰۶ به این نکته اشاره کرد که CAPTCHA دروازه‌ای به درک بهتر هوش مصنوعی است. در حقیقت هکر‌ها هر بار که سعی می‌کنند کامپیوتری بسازند که از موانعی مانند CAPTCHA گذر کند؛ قدمی دیگر در شناخت و تحقیق روی هوش مصنوعی بر می‌دارند. در حقیقت یک قدم عقب نشینی برای CAPTCHA؛ یک قدم به جلو برای هوش مصنوعی می‌تواند باشد.
منبع:

صفحه دسکتاپ،معرف شخصیت افراد

صفحه دسکتاپ،معرف شخصیت افراد

بر پایه پژوهشی كه با بودجه مایكروسافت انجام شده، اعلام شد كه طرح پس‌زمینه نمایشگر و چیدمان اجزا روی آن نمایانگر، شخصیت، عادات و رفتار كاربر است. ‌

به گزارش جام جم‌، دونا داوسون، متخصص روان‌شناس در زمینه رفتارشناسی و شخصیت‌شناسی، برای نمونه مطالعاتی از صفحه نمایشگرهای كارمندان یك اداره استفاده كرده است.

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

دسکتاپ

وی همچنین گفت: «میزكارهای ما فضای شخصی ما هستند و اطلاعات دقیقی از خود ما منتقل می‌كنند.» داوسون همچنین به دیلی‌تلگراف اعلام كرد كه شیوه چیدمان آیكن‌ها در صفحه نمایشگر، نمایانگر برخی از ویژگی‌های شخصیتی است:

– آیكن‌هایی كه در صفحه ‌پخش هستند، نشان می‌دهند كه صاحب آن از عدم تمركز رنج می‌برد.

– آیكن‌های جفت شده در دو طرف صفحه نمایش و به‌تعداد مساوی نشان می‌دهد صاحب آن دارای قدرت خوبی در تصمیم‌گیری در شرایط سخت است. ‌ ‌

– صفحه‌های شلوغ و پر از آیكن نشان می‌دهد كه شخص همه چیز را دم دست نیاز دارد و دوست دارد در زندگی همه‌چیز تحت كنترلش باشد، اما ممكن است این موضوع به عدم‌سازماندهی امور وی نیز برگردد. ‌ ‌

– صفحه پس‌زمینه شخصی نشانگر اولویت و دغدغه ذهنی فرد است. معمولا والدین تصویر كودكان را می‌گذارند یا مسافران تصویر محل‌های بدیع را در بك‌گراند خود خواهند داشت. تصویر دوستان، نشان‌دهنده محبوبیت فرد است. ‌ ‌

– صفحه آبی ساده نشان دهنده این است كه صاحب كامپیوتر علاقه چندانی به نشان دادن زندگی شخصی خودش ندارد. ‌

 

تنظیم برای تبیان: ناظمی

ذخيره‌سازي کامل يک سايت

ذخيره‌سازي کامل يک سايت

اين سايت خيلي خوبه، همه‌شو مي‌خوام!

downloading

پيش از اين نحوه دانلود سايت توسط نرم افزار Teleport Pro را در 2 قسمت آموزش داديم. اين‌بار به کمک HTTrack، روش ديگري را بکار مي‌گيريم.

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

اين نرم‌افزار لينك‌هايي كه با هم رابطه دارند را دوباره مي‌سازد و شما مي‌توانيد سايت‌هاي دانلود شده را بطور آفلاين بخوانيد. لازم به ذكر است كه اين نرم‌افزار مي‌تواند روي هر مرورگري كار كند.

شما مي‌توانيد سايت‌هاي مختلف را پشتيبان ‌(Mirror)‌ همديگر كنيد تا بتوانيد از يكي از سايت‌ها به‌راحتي به سايت ديگر برويد. همچنين مي‌توانيد سايت پشتيان را به‌روز كنيد يا فرآيندهاي متوقف شده انتقال را ادامه دهيد. از آنجا كه اين نرم‌افزار منبع‌باز است، انتظار مي‌رود روبوت اين برنامه با گزينه‌ها و قابليت‌هاي بيشتري به‌زودي قابل دسترس باشد.

اين نرم‌افزار داراي چهار منوي اصلي است، كه سر و كار شما حتما به آنها خواهد افتاد. اين منوهاي كشويي شامل فايل، ترجيحات، پشتيبان و تنظيمات هستند. بقيه توابع مورد نياز كاربر در اين منوهاي اصلي جاسازي شده‌اند. مثلا در منوي فايل شما مي‌توانيد با انتخاب يكي از منوهاي فرعي، با وارد كردن URL موردنظر وب‌سايت‌ها و صفحه‌ها را دانلود كنيد. يا در منوي ترجيحات، مي‌توانيد انتخاب كنيد سايت موردنظر با چه فرمتي ذخيره شود (مثلا HTML كه فقط كد آن ذخيره مي‌شود يا MHTML كه همه صفحه را يك‌جا در يك فايل ذخيره مي‌كند.) در منوي پشتيبان شما مي‌توانيد هر زماني كه مي‌خواهيد، دريافت خود را متوقف كنيد. البته زماني مي‌توانيد آن را انتخاب كنيد كه عملياتي در حال انجام باشد.

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

computer

يكي از گزينه‌هاي بسيار عالي اين برنامه در منوي تنظيمات قرار داده شده ‌است كه به‌شما اجازه مي‌دهد تا از Http عبور كنيد و مستقيما از Ftp دانلود كنيد. اين روش بسيار سريع‌تر است ولي نيازمند كمي اطلاعات اوليه از Ftp است تا بتوانيد به‌درستي از آن استفاده كنيد. اين گزينه همچنين به‌شما امكان مي‌دهد كه صفحه‌هايي از وب را كه لازم نداريد، رد كنيد؛ قابليتي كه تقريبا هميشه (مگر در مواقع پشتيبان‌گيري) از آن استفاده خواهيد كرد. ‌ ‌

جالب است بدانيد كه مي‌توانيد تعيين كنيد وب‌سايت تا چه عمقي بايد ذخيره شود. براي مثال آيا شما قصد داريد تمام وب‌سايت‌هاي خارجي‌اي كه در اين سايت لينك دارند، را هم ذخيره كنيد يا فقط قصد ذخيره همين سايت را داريد؟ اگر شما گزينه «همه‌چيز» را انتخاب كنيد، احتمالا مجبور خواهيد شد زمان بسيار زيادي را منتظر winHTTrack بمانيد تا تمام سايت‌هاي مرتبط با هم را دانلود كند. حتي شايد مجبور شويد تا دانلود كل وب‌سايت‌هاي اينترنت هم منتظر باشيد! البته شما مي‌توانيد محدوديت زماني تعيين كنيد تا بعد از مدت زماني مشخص، دانلود تمام شود و كل روز را منتظر نمانيد.

يكي ديگر از گزينه‌هاي كاربردي اين نرم‌افزار اين است كه مي‌توانيد انتخاب كنيد تا زماني‌كه دانلود يك وب‌سايت تمام شد، كامپيوتر خاموش شود. دانلود برخي از سايت‌ها زمانبر است و اگر اين گزينه را انتخاب كرده باشيد، مي‌توانيد كامپيوتر خود را روشن بگذاريد و ديگر نگران اين نباشيد كه دستگاه شما تا زمان بازگشت‌تان روشن خواهد ماند.

مطمئن باشيد اين نرم‌افزار براي دريافت وب‌سايت‌ها بسيار عالي است. اما اگر بخواهيم به نقطه ضعف اين برنامه نيز اشاره كنيم بايد بگوييم در برخي موارد، اين برنامه هيچ عكس‌العملي نشان نمي‌دهد! اگر دانلود خود را شروع كنيد، متوقف كردن آن بسيار سخت است؛ حتي اگر آن را لغو كنيد. برنامه به‌سرعت كنترل سايت‌هاي درحال دانلود را از دست مي‌دهد و كاربر مجبور مي‌شود براي توقف برنامه، از مديريت وظيفه‌هاي ويندوز ‌(Task Manager)‌ استفاده كنيد.

براي دريافت نسخه‌اي از اين نرم‌افزار رايگان مي‌توانيد به نشاني زير برويد:

http://www.httrack.com

 

دانلود سايت با Teleport Pro -قسمت اول

دانلود سايت با Teleport Pro- قسمت دوم

منبع: جام جم آنلاين

تنظيم براي تبيان: ناظمي

ترفندهای مخفی در درون کروم

در حال حاضر چند روزی از عرضه مرورگر گوگل معروف به Chrome (کروم) میگذرد. این مرورگر که در میان رقابت غول هایی همچون فایرفاکس و اپرا عرضه شده است بحث های زیادی را در محافل IT به راه انداخته است. به عقیده کارشناسان این مرورگر در حال حاضر پرسرعت ترین مرورگر صفحات وب است اما به دلیل اینکه اولین نسخه عرضه شده آن است هنوز آنچنان که باید و شاید کامل نیست. با این حال شرکت گوگل گویا زمان زیادی را صرف قرار دادن ترفندهای مخفی در درون کروم کرده است!
در این ترفند قصد داریم کلیه صفحات مخفی این مرورگر را بررسی کنیم.


بدین منظور:
ابتدا Google Chrome را اجرا نمایید.
سپس عبارات زیر را در نوار آدرس مرورگر وارد نمایید و Enter بزنید تا هر صفحه مخفی برایتان باز شود.

about:internets
یکی از قدیمی ترین اسکرین سیورهای ویندوز ، در دل کروم!
دقت کنید این اسکرین سیور به شرطی اجرا میشود که فایل sspipes.scr در پوشه WindowsSystem32 موجود باشد.

about:memory
فضای اشغال شده رم توسط مرورگرهای در حال اجرا.
اگر به فرض شما مرورگر فایرفاکس را هم همزمان اجرا کرده باشید میزان فضای استفاده شده از رم توسط این برنامه را نیز مشاهده خواهید کرد.
احتمالأ مسئولان گوگل جهت به رخ کشیدن میزان فضای کم استفاده شده کروم این صفحه را قرار داده اند.
همچنین میزان رم اشغالی توسط تب های مرورگر نیز موجود است.



about:stats
هیـــــــــــس! این صفحه محرمانه است!
عبارت فوق در بالای این صفحه مخفی به چشم میخورد.
کلیه فرآیندهای داخلی کروم با ریز اطلاعات هر یک در این صفحه قابل مشاهده است.

about:network
این صفحه جهت عملیات به اصطلاح I/O Tracking به کار میرود.
در مرورگر فایرفاکس این کار به وسیله افزونه ای به نام Live HTTP Headers امکان پذیر است که کروم آن را در خود جای داده است.
جهت استفاده از آن بر روی دکمه Start I/O tracking کلیک کنید.
سپس در یک تب جدید ، یک سایت رو باز کنید و مجدد به همین تب برگردید تا شاهد نتیجه کار باشید.
لیست کلیه عکس ها ، اسکریپتها و آبجکت های لود شده در آن صفحه را به شکل زنده مشاهده خواهید کرد! واقعأ قابلیت جالبی است.

about:histograms
لیست کلیه فرآیندهای داخلی اجرا شده در مرورگر به شکل نمودارهای هیستوگرام یا متراژی.

about:dns
لیست 10 DNS که بیشترین مشاهده را توسط کروم داشته اند در این صفحه مخفی قابل مشاهده است.
جهت غیر فعال کردن آن به Options و تب Under the Hood رفته و تیک گزینه Use DNS pre-fetching to improve page load performance را بردارید.

about:cache
لیست کلیه صفحات و فایل های کش شده توسط مرورگر در این صفحه قابل مشاهده است.
در کروم امکان محدود سازی کش وجود ندارد ، در نتیجه هر از چند گاهی کش مرورگر را خالی کنید.

view-cache:stats
آمار مربوط به فایل های کش شده توسط مرورگر.

aboutlugins
کلیه پلاگین های نصب شده بر روی کروم در این صفحه لیست شده اند.
پلاگین های نظیر Shockwave Flash ، Real Player و ... .

about:crash
پیغام مربوط به زمانی که کروم در هنگام باز کردن یک صفحه Crash میکند ، با ظاهری جالب قابل روئیت است.

about:hang
این دستور پیش از این که خود یک صفحه باشد یک خراب کننده صفحه است! اگر به هنگام مرور یک صفحه وب این عبارت را وارد کنید ، صفحه مورد نظر عملأ یخ میبندد و هیچ کاری نمیتوان در آن کرد.

about:version
ورژن دقیق مرورگر کروم با وارد کردن عبارت فوق قابل مشاهده است.

منبع : ترفندستان

مقایسه 10 فریم ورک ‏PHP‏ برتر دنیا‏

مقایسه 10 فریم ورک ‏PHP‏ برتر دنیا‏

سلام

امروزه استفاده از وریم ورک های آماده برای برنامه نویسی صفحات وب یکی از ساده ترین و مطمئن ترین روش ها می باشد. فریم ورک ها مجموعه ای از کلاس های آماده و هماهنگ نوشته شده به زبان PHP هستند که کار برنامه نویسی را ساده می کنند.

 

10 فریم ورک برتر دنیا عبارتند از:

Zend Framework

CakePHP

Symfony Project

Seagull Framework

WACT

Prado

PHP on TRAX

ZooP Framework

eZ Components

CodeIgniter

 

هر کدام از این فریم ورک ها روش نصب و اصول استفاده ی مختلفی دارند. هر کدام دارای معایب و مزایایی هستند. ما در اینجا این ده فریم ورک را از جنبه های مختلف مقایسه کرده ایم و برای شما انتخاب را آسان نموده ایم. تا با توجه به نیاز خود یکی از آن ها را انتخاب کرده و از آن استفاده کنید.

منبع : http://hojjatmr.blogfa.com

روش های اجرای دستورات سیستم با استفاده از ‏PHP

روش های اجرای دستورات سیستم با استفاده از ‏PHP

روش اول: استفاده از علامت ‏‎`‎
برای اجرای دستورات سیستم با این روش کافی است دستور سیستم را بین دو علامت ‏‎`‎‏ قرار داده و در صورت نیاز ‏خروجی آن در یک متغیر ذخیره و یا خروجی آن را با ‏echo‏ نمابش دهید.‏
مثال:‏
‎$result = `dir c:\php`;‎
Echo $result;‎

روش دوم: استفاده از تابع ‏system‏:‏
در این روش دستور اجرا شده و خروجی آن نمایش داده می شود و آخرین خط خروجی برگردانده می شود، مثال:‏
‎$result = system(‎‏"‏ir c:\php‏"‏‎);‎

با این دستور، خروجی نمایش داده می شود، حال اگر آن را ‏echo‏ کنید خروجی دیگری به صورت زیر خواهید دید:‏
‎11 Dir(s) 566,263,808 bytes free‎

روش سوم: استفاده از تابع ‏exec‏:‏
در این روش دستور اجرا می شود ولی خروجی آن نمایش داده نمی شود. خروجی به صورت خط به خط درون یک ‏آرایه ذخیره می شود و برگردانده می شود. برای ذخیره ی آرایه باید آرگومان دوم را نیز مشخص کنید.‏
مثال:‏
‎$result = exec(‎‏"‏ir c:\php‏"‏‎);‎

دستور اجرا می شود ولی اگر آن را ‏echo‏ کنید تنها خط آخر آرایه نمایش داده می شود:‏
‎11 Dir(s) 566,263,808 bytes free‎

برای مشاهده ی کلیه ی خطوط آرایه می توانید از ‏foreach‏ استفاده کنید، اما قبل از آن باید خروجی ‏exec‏ را در ‏یک متغیر ذخیره کنید و برای این کار نام متغیر را به عنوان آرگومان دوم تابع بنویسید:‏
‎$result = exec(‎‏"‏dir c:\php‏"‏‎,$dirout);‎

دستور فوق خط آخر آرایه را در ‏result‏ ذخیره می کند. کل خروجی را به صورت یک آرایه در ‏dirout‏ ذخیره می کند. ‏دستور را اجرا می کند ولی خروجی را نشان نمی دهد.برای مشاهده ی کلیه ی خطوط خروجی به صورت زیر عمل می ‏شود:‏
foreach($dirout as $line)‎
‎{‎
echo ‎‏"‏‎$line\n‏"‏‎;‎
‎}‎
روش چهارم: استفاده ازتابع ‏passthru‏:‏
با این تابع، دستور اجرا شده و کل خروجی نشان داده می شود. مثال:‏
passthru(‎‏"‏dir c:\php‏"‏‎);‎
 

13 مهارتی که هر برنامه نویس PHP باید بداند

13 مهارتی که هر برنامه نویس PHP باید بداند

1. اصول PHP
2. برنامه نویسی شی گرا (OOP) در PHP
3. تمپلیت انجین ها PHP (PHP Template Engines
4. ارسال و مدیریت ایمیل با استفاده از PHP
5. نحوه استفاده از فریم ورک ها
6. نحوه استفاده از پرداخت های الکترونیکی (در خارج از کشور مثل PayPal و در داخل مثل سامان)
7. پایگاه های داده به خصوص MySQL
8. عبارات منطقی Regular Expression
9. کار بر روی تصاویر مانند GD2 و ImageMagick
10. امنیت
11. XML و سرویس های وب
12. شناسایی و کنترل دسترسی
13. کش کردن (Caching) در PHP

» برای دریافت اطلاعات بیشتر در این زمینه ها و یادگیری هر یک از موارد فوق به آدرس منبع مراجعه فرمائید.
 

ترفندها و نکاتی مفید از گوگل کروم

ترفندها و نکاتی مفید از گوگل کروم

موارد زیر را از یک وبلاگ امریکایی و کامنت‌های کاربرانش خلاصه کرده ایم. مسلما کاربران بسیار باهوش ایرانی بسیار زودتر (و وسیعتر از این توضیحات) به این شورت کات ها دست یافته اند. این نوشتار صرفا مروریست بی ادعا، بر بعضی از آن‌ها که در آن وبلاگ آمده، شاید بعضی‌هایش برایتان جالب باشد.

1) با راست کلیک بر کلیدهای Back و یا Forward بالای مرورگر، میتوان صفحات ویزیت شده اخیر را مشاهده کرد.

2) با انجام Ctrl + Shift + T میتوانید Tab هایی را که بسته اید دوباره باز کنید.

3) هنگام انجام جستجو در آدرس بار گوگل کروم، اگر قبل از نوشتن کلمه یا جمله تان، یک علامت سوال ? بگذارید، جستجوی‌تان با تمرکز بیشتری انجام خواهد شد. (با کلیدهای Ctrl + K هم می‌توان اینکار را کرد)

4) برای انجام اعمال ریاضی و یا تبدیل اوزان، مقیاس‌ها، ارزها و استفاده از ماشین حساب گوگل؛ کافیست که آن را در Address bar مرورگر گوگل کروم تایپ کنید.

5) اگر نیاز به فضای بیشتری برای تایپ متن دارید، ماوس را به گوشه پایین سمت راست محیط برده و به داخل یا بیرون بکشید تا فضای متن را کوچکتر یا بزرگتر کند.

6) برای ملاحظه و بررسی میزان استفاده هر صفحه از امکانات/منابع کامپیوترتان؛ در داخل آن صفحه راست کلیک کرده و سپس گزینه Inspect element و سپس Resources را انتخاب و نهایتا آن صفحه را ریفرش (بارگذاری دوباره) نمایید تا لیستی از تمام اسکریپت ها، تصاویر و تمام آنچه در آن صفحه بارگزاری شده را ببینید و اگر خواستید میتوانید آن‌ها را بر اساس اندازه و یا loading time هم منظم کنید.

7) برای جداسازی یک تب و نمایش آن در یک پنجره جدید؛ کافیست که آنرا با ماوس به بیرون پنجره فعلی بکشانید (درگ کنید) و برای بازگرداندنش به پنجره اولی برعکس عمل کنید (درگ اند دروپ).

8) بعد از دانلود یک فایل برای کپی کردنش به صفحه دسکتاپ و یا به یک پوشه دلخواه، کافیست که با ماوس آن فایل را به آنجا حرکت دهید (یعنی باز هم با استفاده از درگ اند دروپ).

9) اگر جستجوگر یک سایت میتواند OpenSearch را ساپورت کند، فقط کافی است که یکبار آن سایت را (مثلا سایت فرضی example.com) در جعبه جستجوی مرورگر گوگل کروم تایپ کنید تا آن سایت در آنجا باز شود. همین عمل کافیست تا برای همیشه، آدرس آن سایت در حافظه جستجوگر گوگل کروم باقی بماند و تبدیل به کلیدواژه شود. بعدا هرگاه بخواهید آن سایت را از طریق گوگل کروم باز کنید، فقط کافیست تا چند حرف اول آن سایت را در آدرس بار گوگل کروم تایپ کنید تا بلافاصله پیامی به اینصورت ببینید؛ "press ab to search example.com" در اینجاست که شما Tab را کلیک کرده و جستجوی تان را انجام می دهید.
همچنین میتوانید با راست کلیک بر آدرس بار گوگل کروم و انتخاب گزینه Edit search engines موتور های جستجو را بصورت دستی (غیر اتوماتیک) به لیست گوگل کروم اضافه کنید. (آدرس URL موتور های جستجو را تبدیل به s٪ کنید) مثلا برای یافتن Wikipedia فقط کافیست که در ادرس بار گوگل کروم بنویسید wiki تا این عبارت را به شما نشان دهد:
http://en.wikipedia.org/wiki/Special:Search?search=%s
و یا میتوانید برای ترجمه یا به حافظه سپردن آدرس‌های وب سایت‌ها بصورت آنلاین یا غیره استفاده کنید، مثلا برای ترجمه فقط بنویسید trans تا این عبارت را به شما نشان دهد:
http://translate.google.com/translate?u=%s

- برای Bookmark کردن (بخاطر سپردن آدرس‌های مورد علاقه شما در گوگل کروم) راه‌های مختلفی هست. مثلا ساده ترینش این است که از داخل Favorite مرورگر IE و یا فایرفکس، آن آدرس‌ها را در یک فولدر جدید در هارد درایو ذخیره کنید و هروقت لازم داشتید آیکن آن سایت را با ماوس از آن فولدر به ادرس بار گوگل کروم بکشید. البته کاربران امریکایی معتقدند که Bookmark کردن آدرس‌ها در مرورگرها دیگه یک امری کهنه و بی استفاده شده و مربوط به ده سال پیش است و امروزه کمتر کسی این کار را می کند چون مگه شما چند بار به سراغ آن آدرس هایی که مثلا ماه ها یا سال های پیش در حافظه مرورگرتان ذخیره کرده‌اید، می روید؟

- مرورگر گوگل کروم فعلا با دانلود کردن فایل های ویدیویی و فلش کمی مشکل دارد و دیر دانلودشان می کند و حافظه/امکانات خیلی زیادی از هارد درایو میگیرد و ظاهرا هنوز امکاناتی همچون تولبار گوگل و تایپ اتوماتیک (Auto Fill) را ندارد و ظاهرا بعضی وقت‌ها هنگام باز کردن فایل های PDF، کامپیوتر هنگ می کند و عملکرد اتوماتیک صرفه جویی در مصرف برق کامپیوتر را هم (یعنی Sleep یا هایبرنت شدن) دچار اخلال می کند. بهرحال این مرورگر فعلا در مرحله آزمایشی و بتاست و این مشکلات بعدا باید اصلاح شود.

- گوگل دسک‌تاپ و فایرفاکس 3 هر دو از امکان Safe Browsing (یعنی ضد بدافزار/ویروس و ضد فیشینگ) برخوردارند و گوگل کروم تقریبا هر نیم ساعت یک بار سایت‌های بلک لیست را از طریق سرورهای گوگل آپدیت می کند تا شما کمتر نگران باشید. این اطلاعات را در فایل Safe Browsing می‌توان دید.

- گوگل کروم با دانلود فایل‌های کم حجم مشکلی ندارد اما فایلهای بزرگ با اندازه 30 یا 50 مگابایت را با مشکل انجام میدهد.

منبع: Google Chrome Tips
مترجم: اکبر شيخ زاده (تورنتو)