۱۳۸۹ فروردین ۷, شنبه

تصاور لوگوهای نوروزی گوگل تا امروز

گوگل از سال 2004 میلادی تاکنون یعنی هفت سال پیاپی با قرار دادن لوگو به مناسبت عید نوروز این مناسبت را گرامی داشته است.
1389

1388

1387

1386

1385

1384

1383

۱۳۸۹ فروردین ۱, یکشنبه

۱۳۸۸ اسفند ۲۷, پنجشنبه

نرم افزار MATLAB

متلب (MATLAB) نام یکی از نرم‌افزارهای رایانه‌ای برای انجام محاسبات ریاضی است. واژهٔ متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامه‌نویسی مربوطه‌است که از ترکیب دو واژهٔ MATrix و LABoratory ایجاد شده‌است. این نام حاکی از رویکرد ماتریس محور برنامه‌است، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته می‌شوند.

کار کردن با ماتریس‌ها در Matlab بسیار ساده است. در حقیقت تمام داده‌ها در Matlab به شکل یک ماتریس ذخیره می‌شوند. برای مثال یک عدد (اسکالر) به شکل یک ماتریس 1*1 ذخیره می‌شود. یک رشته مانند «Whale is the biggest animal» به شکل ماتریسی با یک سطر و چندین ستون (که تعداد ستون‌ها به تعداد کاراکترهاست) ذخیره می‌شود. حتی یک تصویر به شکل یک ماتریس سه بعدی ذخیره می‌گردد که بُعد اول و دوم آن برای تعیین مختصات نقاط و بُعد سوم آن برای تعیین رنگ نقاط استفاده می‌شود. فایل‌های صوتی نیز در Matlab به شکل ماتریس‌های تک ستون (بردارهای ستونی) ذخیره می‌شوند. بنابراین جای تعجب نیست که Matlab مخفف عبارت Matrix Laboratory باشد.

کامپایلر Compiler

نرم افزار ها توسط زبان های برنامه نویسی ساخته می شوند.زبان های برنامه نویسی انواع مختلفی دارند که برخی از آن ها عبارتند از:
1- زبان ماشین: زبانی که در آن داده ها و دستورالعمل ها به صورت کد های باینری(صفر و یک) نمایش داده می شوند و تنها زبانی است که کامپیوتر درک می کند،هر برنامه باید قبل از اجرا به زبا ماشین ترجمه شود.
2- زبان اسمبلی: زبان اسمبلی به جای کد های باینری از کلمات اختصاری استفاده می کند.خوانایی برنامه های زبان اسمبلی بیشتر از برنامه های زبان ماشین است.برای تبدیل برنامه ی اسمبلی به زبان ماشین از نرم افزار مترجمی به نام اسمبلر استفاده می شود.
3- زبا ن های سطح بالا: زبان های سطح بالا به زبان محاوره ای نزدیک ترند و دارای ساختارها و دستورات بیشتر و قدرتمندتر نسبت به زبان اسمبلی هستند.برنامه های نوشته شده با این زبان ها مستقیما قابل اجرا روی ماشین نیستند.برنامه های زبان های سطح بالا توسط کامپایلر هابه زبان ماشین ترجمه می شوند یا به وسیله ی مفسرها اجرا می شوند.
برنامه های نوشته شده یه زبان های سطح بالا مستقیما روی ماشین اجرا نمی شوند.برای ترجمه و اجرای این برنامه ها دو روش عمده وجود دارد:
1- استفاده از مفسر
2- استفاده از کامپایلر
استفاده از مفسر:
در این روش دستورالعمل های برنامه یک به یک توسط نرم افزاری به نام مفسر خوانده می شده و اجرا می گردد.عملکرد مفسر را می توان به عملکرد یک شخص مترجم که در مصاحبه ها و مذاکرات مسئول ترجمه است تشبیه نمود.این مترجم یک به یک جملات را از گوینده دریافت کرده و هر جمله را جداگانه ترجمه کرده و د راختیار شنونده قرار می دهد و سپس منتظر جمله ی بعدی گوینده می شود.

مزایای استفاده از مفسر:
1- سهولت اشکال زدایی
2- قابلیت انعطاف بالا
3- پیاده سازی آسان
4- قابلیت انعطاف بالا
معایب استفاده از مفسر:
1- تکرار تفسیر
2- سرعت اجرای پایین
3- نیاز به مفسر
4- دسترسی به کد منبع
استفاده از کامپایلر:
در این روش برنامه بوسلیه ی کامپایلر به زبان ماشین ترجمه می شود.کامپایلر نرم افزاری است که برنامه ی نوشته شده به زبان مبدا را به برنامه ی معادلی در زبان مقصد ترجمه می نماید.اگر خطایی در برنامه ی مبدا وجود داشته باشد کامپایلر آن را گزارش می کند.باید توجه کرد که اگر برنامه ی مبدا صحیح نباشد کامپایلر قادر به ترجمه ی آن نخواهد بود.
عملکرد کامپایلرمانند دوبله ی یک فیلم خارجی می باشد.در این روش ابتدا کل فیلم به زبان فارسی ترجمه می شود و سپس در اختیار بینندگان قرار می گیرد.
مزایای استفاده از کامپایلر
1- سرعت اجرای بالا
2- اجرای مستقل برنامه از کامپایلر
3- حفاظت از کد منبع برنامه
4- عدم تکرار کامپایل
معایب استفاده از کامپایلر
1- زمان بر بودن اشکال زدایی
2- قابلیت حمل پایین
3- پیاده سازی پیچیده
فاز های کامپایلر
1- تحلیلگر لغوی(Lexical Analayzer)
2- تحلیلگر نحوی(Syntax analayzer)
3- تحلیلگر معنایی(semantic analyzer)
4- تولید کننده ی کد میانی(Intermediate Code)
5- بهینه ساز کد میانی
6- تولید کننده کد
دانلود پاور پوینت کتاب compilers Principles, Techniques, and Tools

۱۳۸۸ اسفند ۲۶, چهارشنبه

مهندسی نرم افزار Software Engineering

نرم افزار کامپیوتری محصولی است که مهندس نرم افزار طراحی می کند و می سازد.شامل برنامه هایی است در کامپیوتری به هر اندازه و با هر معماری قابل اجرا هستند،مستنداتی دارد که شامل فرم های کپی شده و مجازی می شود و داده های دارد که ترکیبی از ارقام و حروف است و البته می تواند شامل اشکال نمایشی از قبیل اطلاعات تصویری،صوتی و ویدویی باشد.
مهندسی نرم افزار فرآیندی است که طراحی،ساخت و نگه داری یک نرم افزار قابل اطمینان را در بر می گیرد.
مهندسی نرم افزار شامل یک فرایند،تکنیک های مدیریت،روش های فنی و استفاده از ابزار است.
فاز های عمومی مهندسی نرم افزار:
  • فاز تعریف
  • فاز توسعه
  • فاز پشتیبانی
مدل های فرایند نرم افزاری:
1-مدل آبشاری (liner sequensial or waterfall): برای جایی که نیازمندی ها از ابتدا کاملا مشخص است به کار می رود.
2-مدل نمونه سازی(Prototyping): برای موقعی که مشتری نیاز های درستی را مطرح می کند اما کمتر با جزییات سر وکار دارد و توسعه دهنده باید با با سختی های آن همانند توسعه ی یک نمونه سخت به یک محصول کامل مدارا کند.
3-مدل توسعه و کاربرد سریع (RAD): از اجزا و قطعات اماده بیشترین استفاده را می کند و سیکل توسعه ی بسیار کوتاهی دارد.
4-مدل افزایشی(Inceremental): نرم افزار را به قسمت های کوچک اما قابل استفاده ارایه می کند و هر قسمت روی قسمت های قبلی سوار می شود.
5-مدل حلزونی(Spiral): خصوصیت تکراری بودن روش نمونه سازی را با جنبه های سیستماتیک و کنترل شده ی روش آبشاری ترکیب می کند.
6-مدل حلزونی Win-Win:استخراج نیازمندی های نرم افزار از طریق مذاکره بین مشتری و توسعه دهنده حاصل می شود.هر کدام سعی در متعادل کردن محدودیت های تجاری و فنی خود دارد.
7-مدل توسعه ی همزمان(Concurrent Development): شبیه مدل حلزونی است اما اغلب در توسعه ی برنامه های کارگزار-مشتری استفاده می شود.
8-مدل توسعه مبتنی بر اجزاء یا قطعات(Component-Based Development): تغییر یافته ی مدل حلزونی که درآن برنامه ها از قطعات نرم افزاری خاص به نام کلاس ساخته می شوند که از قبل بسته بندی شده اند.
9-مدل روش های فرمال(Formal Methods): نماد هایی کاملا ریاضی وار برا ی مشخص کردن،طراحی و ارزیابی سیستم های کامپیوتری.
10-تکنیک ها ی نسل چهارم 4GT: ابزاری نرم افزاری که کد منبع را برای یک نرم افزار از روی یک تعریف خصوصیات سطح بالا تعریف می کند.
برگرفته شده از کتاب روگر اس پرسمن Pressman

دانلود جزوه ی آموزشی مهندسی نرم افزار

۱۳۸۸ اسفند ۱۷, دوشنبه

ساعت مايكروسافت

بيل گيتس ميميره و ميره تو آسمون پيش فرشته‌ها. فرشته‌ها ميگن ما فعلا وقت نداريم يک 3-4 ساعتي توي اون اتاق منتظرباش تا به کارهات رسيدگي بشه. بيل گيتس ميره تو اتاق و ميبينه در و ديوار اتاق پر از ساعته. زير هر ساعتي هم اسم يک شرکت نوشته شده ساعتها هم همه با هم همزمان کار نميکنن و هر کدومشون سرعت بخصوصي دارن.خلاصه کنجکاو ميشه و ميگرده قسمت شرکتهاي کامپيوتري رو پيدا ميکنه: آي‌بي‌ام، اپل، او‌اس‌2، خلاصه همه شرکتها اونجا ساعت دارن الا ماکروسافت. خيلي بهش بر ميخوره .
وقتي فرشته‌ها بر ميگردن ميگه اول جريان اين ساعتها رو بگين :اونا ميگن در ازاي خرابيهايي که برنامه‌ها و عملکرد شرکتها براي مشتريها بوجود بيارن، ساعت مربوط به شرکت يک ثانيه ميره جلو.
بيل گيتس خوشحال ميشه و با غرور ميگه: پس واقعا جاي تعجب نيست که شرکت من اينجا ساعت نداره.
فرشته‌ها ميخندند و ميگن: آقاي گيتس، ساعت ميكروسافت رو ما 25 ساله تو بهشت به جاي
پنكه ازش استفاده ميکنيم.

لپ‌تاپ شاه عباسي

در نگاه اول شاید فکر کنید با یک جعبه پخش موسیقی عهد شاه عباس روبرو هستید:






ولی داخل این اثر هنری یک لپ‌تاپ hp ZT1000 قرار گرفته که ویندوز ایکس پی و همچنین اوبونتو را اجرا می‌کند!





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








آفرین به اینهمه ذوق و سلیقه استادکارهای اصفهانی.

يک برنامه‌نويس و يک مهندس در يک مسافرت ...

يک برنامه‌نويس و يک مهندس در يک مسافرت طولانى هوائى کنار يکديگر در هواپيما نشسته بودند. برنامه‌نويس رو به مهندس کرد و گفت: مايلى با همديگر بازى کنيم؟ مهندس که را روى خودش کشيد. برنامه‌نويس دوباره گفت: بازى سرگرم‌کننده‌اى است. من از شما يک سوال مي‌پرسم و اگر شما جوابش را نمي‌دانستيد ۵ دلار به من بدهيد. بعد شما از من يک سوال مي‌کنيد و اگر من جوابش را نمي‌دانستم من ۵ دلار به شما مي‌دهم.
مهندس مجدداً معذرت خواست و چشمهايش را روى هم گذاشت تا خوابش ببرد. اين بار، برنامه‌نويس پيشنهاد ديگرى داد. گفت: خوب، اگر شما سوال مرا جواب نداديد ۵ دلار بدهيد ولى اگر من نتوانستم سوال شما را جواب دهم ٥٠ دلار به شما مي‌دهم. اين پيشنهاد چرت مهندس را پاره کرد و رضايت داد که با برنامه‌نويس بازى کند.
برنامه‌نويس نخستين سوال را مطرح کرد: «فاصله زمين تا ماه چقدر است؟» مهندس بدون اينکه کلمه‌اى بر زبان آورد دست در جيبش کرد و ۵ دلار به برنامه‌نويس داد. حالا نوبت خودش بود. مهندس گفت: «آن چيست که وقتى از تپه بالا مي‌رود ۳ پا دارد و وقتى پائين مي‌آيد ۴ پا؟» برنامه‌نويس نگاه تعجب آميزى کرد و سپس به سراغ کامپيوتر قابل حملش رفت و تمام اطلاعات موجود در آن را مورد جستجو قرار داد. آنگاه از طريق مودم بيسيم کامپيوترش به اينترنت وصل شد و اطلاعات موجود در کتابخانه کنگره آمريکا را هم جستجو کرد. باز هم چيز بدرد بخورى پيدا نکرد. سپس براى تمام همکارانش پست الکترونيک فرستاد و سوال را با آنها در ميان گذاشت و با يکى دو نفر هم گپ (chat) زد ولى آنها هم نتوانستند کمکى کنند.
بالاخره بعد از ۳ ساعت، مهندس را از خواب بيدار کرد و ٥٠ دلار به او داد. مهندس مودبانه ٥٠ دلار را گرفت و رويش را برگرداند تا دوباره بخوابد. برنامه‌نويس بعد از کمى مکث، او را تکان داد و گفت: «خوب، جواب سوالت چه بود؟» مهندس دوباره بدون اينکه کلمه‌اى بر زبان آورد دست در جيبش کرد و  مي‌خواست استراحت کند محترمانه عذر خواست و رويش را به طرف پنجره برگرداند و5 دلار به برنامه‌نويس داد و رويش را برگرداند و خوابيد ..

جزيره ي گوگل Googland


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


این جزیره کوچک و بسیار زیبا از دو جهت جذابیت ویژه ای برای گوگل دارد که مهمترین آنها بدون شک ظاهر خاص این جزیره است جائیکه این جزیره در نگاه از بالا کاملا به فرم حرف G آنهم از نوع بزرگ آن است که برای گوگل بسیار اهمیت دارد. جذابیت دوم این جزیره که اتفاقا اهمیت آن از اولی نیز کمتر نیست، دامنه ویژه اختصاص یافته به این منطقه در اینترنت است جائیکه بر سیاق .us در آمریکا و .uk در انگلستان، به Gogooroa علامت اختصاری .go تعلق می گیرد که این نیز برای گوگل موفقیت فوق العاده ای محسوب می گردد و از قرار معلوم صفحه اول این جستجو گر در آینده نزدیک به google.go تغییر خواهد کرد. البته قرار است نام این جزیره پس از نقل مکان گوگل از Mountain View در کالیفرنیا به Googland تغییر یابد.
البته این پایان ماجرا نیست و جالب است بدانید که پس از نقل مکان گوگلی های به این نقطه از دنیا "اریک اشمیت" مدیر عامل گوگل رسما بعنوان رئیس جمهور Googland انتخاب می گردد و "سرگئی برین" و "لاری پیج" که هر دو از موسسان گوگل محسوب می شوند بعنوان نخست وزیر در بخش های تجارت خارجی و تکنولوژِی این کشور مشغول به کار می شوند!! خبر جالب دیگر در این زمینه شنیده شدن نام "بیل گیتس" بعنوان وزیر تحقیقات، توسعه و رقابت است که البته تلویحا توسط جناب گیتس با اعلام آنکه به شنا علاقه ای ندارد و کوهستان را ترجیح می دهد رد شده است.
زیبائی های این جزیره همانند دیگر نمونه های آن در اقیانوس آرام وصف ناشدنی ست و لذتی که کارمندان گوگل از بودن در این جزیره احساس می کنند غیر قابل تصور است اما جذابیت های دیگری که پیرامون این جزیره برای گوگلی ها بوجود خواهد آمد قانونی ست که از هم اکنون به روشنی در رابطه با آن صحبت می شود و آن نیز رویائی به نام نپرداختن مالیات در این جزیره است و گوگلی ها می توانند با درآمد افسانه ای خود تا می توانند زندگی را به کام خود شیرین کرده و یک سنت مالیات نیز نپردازند .
در این جزیره برای هر گوگلی خانه ای رویائی ساخته می شود که گذشته از موارد معمول حتما باید دارای یک آکواریم بزرگ در خانه و یک ماهی گرمسیری بروی میز کار باشد. همچنین هر گوگلی می بایست حداقل 20 درصد از زمان کارکرد روزانه خود را به ماهیگیری اختصاص دهد و حتی قرار است کلکسیونی از ماهی های زیبای صید شده از این منطقه به نمایش گذاشته شود. غذای اصلی ساکنان Googland ماهی خواهد بود که منبع سرشاری از فسفر و امگا 3 بوده و در سر ذوق آوردن اهالی گوگل و افزایش هوش آنها موثر خواهد بود، استراتژی که گوگل در رقابت با سایر رقبا بروی آن حساب ویژه ای باز کرده است و بلاخره گوگلی ها در این منطقه به تمرین رقص های ساکنان محلی این ناحیه نیز خواهند پرداخت.
اما شاید اولین سوالی که پس از خواندن سطور فوق به ذهن خطور می کند چگونگی نگه داری 15000 سرور و دیتا سنتر گوگل در این جزیره ی کاملا مرطوب و خاص است. پاسخ به این سوال بر بهت خوانندگان کاملا می افزاید چرا که گوگل قصد دارد تمامی سرور های خود را در زیر آب و در یک تالاب داخل جزیره قرار دهد امری که گذشته از مسائل فنی دلائل امنیتی فراوانی نیز دارد از جمله آنکه دسترسی به این بخش تنها از طریق غواصی در زیر آب امکان پذیر است. دیگر اخبار بدست آمده از این گزارش حاکی از آن است که گوگل به دنبال خرید پنج جزیره دیگر به شکل های GO O G L E در پنج قاره جهان است که بدین ترتیب و با عملی شدن این رویا نگفته پیداست که چه اتفاقی برای دیگر رقبای گوگل خواهد افتاد.

تا حالا فکر کردين چه طور می شه بيل گيتس رو برشکست کرد؟؟؟

تا حالا فكر كردين كه چطور ميشه بيل گتيس (مالك ثروتمند شركت مايكروسافت) رو ورشكست كرد؟؟؟!!!


بيل گتيس در هر ثانيه يك دلار آمريكا درآمد داره، يعني 20ميليون دلار در روز و 7/8 ميليارد دلار در سال! اگر 1000دلار از دست وي بر زمين بيفته به خودش اين دردسر رو نميده كه برش داره، چون در 4ثانيه اي كه برداشتنش طول ميكشه،اين پول عايدش شده! امريكا در حدود 5/62هزار دلار بدهي داره و بيل گتيس به تنهايي ميتونه ظرف 10سال تمام بدهي آمريكا را بازپرداخت كنه! اون ميتونه نفري 15دلاربه همه جمعيت جهان بده و باز هم 5ميليون دلاردر جيبش باقي بمونه ! اگر مايكل جردن يعني گرانترين ورزشكار آمريكايي هيچ غذا و آبي نخورده و همه 30ميليون دلار درآمد سالانه اش رو پس انداز كنه، 227سال طول خواهد كشيد تا به ثروتمندي بيل گتيس بشه! اگر بيل گتيس رو به صورت يك كشور تصور كنيم ، سي و هفتمين كشور ثروتمند جهان مي شه! يا به تنهايي درآمدي برابر سيزدهمين كمپاني عظيم آمريكايي خواهد داشت، حتي بيشتر از آي بي ام! اگر همه ثروت بيل گتيس رو تبديل به يك دلاري كنيم، مي شه جادهاي از ماه تا زمين باهاش كشيد كه 14 بار رفته و برگشته! ولي ساخت اين جاده، 1400سال طول خواهد كشيد و 713 بوئينگ 747 بايد براي جابجايي اين پول ها پرواز كنند. ...اما!!!... اگر كاربران ويندوزهاي مايكروسافت بتونن بابت هر باري كه كامپيوترشون هنگ ميكنه، يك دلار از بيل گتيس خسارت بگيرن، وي تنها در مدت 3سال ورشكست خواهد شد!!!






زبان برنامه نويسي روبي Ruby

روبی ( Ruby) یک زبان برنامه نویسی انعطافپذیر، پویا و شی‌گرا است. روبی سینتکس پرل و شی گرایی اسمال‌تاک را ترکیب می‌کند و در برخی امکانات با پایتون و لیسپ و Dylan و CLU مشترک است. روبی یک زبان مفسر single-pass است. پیاده سازی اصلی آن یک نرم افزار آزاد منتشر شده تحت یک مجوز متن‌باز(GPL) است.

تاریخچه

این زبان توسط یوکیهیرو ماتز ماتسوموتو ایجاد شد که کار بر روی روبی را در ۲۴ فوریه سال ۱۹۹۴ آغاز کرد و در سال ۱۹۹۵ آنرا بصورت عمومی منتشر کرد. روبی نام جواهر منتسب به ماه جولای است که ماه تأسیس یک کالج است. در اکتبر ۲۰۰۶ آخرین نسخه پایدار ۱٫۸٫۵ است. روبی نسخه ۱٫۹ (با یکسری تغییرات اساسی) نیز در حال توسعه است. در حال حاضر موج بحرانی در جامعه روبی بوجود آمده که دلیل آن وجود چند مشکل در پیاده سازی فعلی روبی است که راه حل مشخصی برای آنها مدنظر نیست. تیم اصلی توسعه روبی تلاشهای خود را بر روی پروژه YARV متمرکز کرده اند، اما پیشرفت آن کند است. در این اثنا چند پیاده سازی رقیب از روبی بوجود آمده اند، بخصوص جی روبی ( JRuby) که یک تلاش برای اتصال روبی به پلتفرم جاوا است و رابینیوس (Rabinius) که یک مفسر است که به‌عنوان یک زیر پروژه توسط ایوان فونیکس (Evan Phoenix) ایجاد شده توجه زیادی را در هفته های اخیر به خود جلب کرده است. با عرضه نسخه ۲٫۰ روبی و YARV در آینده باید دید که چه سرنوشت در انتظار روبی است.

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

گفته می‌شود روبی از اصل کمتر غافلگیر کردن (POLS) پیروی می‌کند، به این معنی که زبان اصولا قابل پیش بینی رفتار می‌کند و مانند همان چیزی که برنامه نویس انتظارش را دارد. جمله قبل از ماتز سرچشمه نگرفته است، و روبی بیشتر از الگویی پیروی می‌کند که عبارت “اصل عدم غافلگیری ماتز” میتواند آنرا بهتر بیان کند، و برنامه نویسان زیادی آنرا بسیار نزدیک به طرز تفکر خود یافتند.

معنی شناسی

روبی شی گرا است: هر بیت از داده یک شی است، حتی کلاسها و typeها که در بسیاری از زبانها به‌عنوان داده اصلی در نظر گرفته شده اند (مانندboolean، integer و “nil”). هر تابع یک متد ست. مقادیر نامگذاری شده (متغیرها) بهنوان یک ارجاع (reference) به اشیا در نظر گرفته می‌شوند، نه خود اشیا. روبی از ارث بری با مقدار دهی پویا (dynamic dispatch)، میکسین (mixin) و singleton methods (مربوط به و تعریف شده برای یک نمونه شی منحصر بفرد بجای تعریف شدن در داخل کلاس) پشتیبانی می‌کند. با این وجود روبی از ارث بری چندگانه پشتیبانی نمیکند، کلاسها میتوانند ماژولها را به‌عنوان mixinها وارد کنند. برنامه نویسی رویه ای (procedural) پشتیبانی می‌شود ولی هر چیزی که بصورت رویه ای در روبی (که خارج از محدوده یک شی خاص است) انجام شود در واقع در داخل یک نمنه شی بنام main انجام میگیرد. از آنجایی که این کلاس والد تمام کلاسهای دیگر است، تغییرات آن در تمام کلاسها قابل مشاهده است. روبی به‌عنوان یک زبان برنامه نویسی چند الگویی مطرح است: روبی به شما اجازه می‌دهد تا رویه ای برنامه نویسی کنید (تعریف توابع/متغیرها خارج از کلاسها آنها را جزئی از شی ریشه ’self’ قرار می‌دهد)، یا شی گرا (هر چیزی یک شی است) برنامه نویسی کنید، یا تابعی رفتار کنید. روبی از introspection و reflection و meta-programming و همچنین از نخها (threads) پشتیبانی بعمل میاورد. روبی دارای امکان dynamic typing است و از parametric polymorphism پشتیبانی بعمل میاورد. بر طبق لیست سئوالات متداول روبی “اگر شما پرل را دوست دارید، روبی را دوست خواهید داشت و با سینتکس آن خود را در خانه خود حس خواهید کرد. اگر شما اسمال تاک را دوست دارید، روبی را دوست خواهید داشت و با روال روبی خود را در خانه حس خواهید کرد. اگر شما پایتون را دوست دارید، شما ممکن است از اختلافات عظیم موجود مابین فلسفه طراحی روبی و پایتون بهانه گیری کنید و البته ممکن است اینطور نباشد.”

۱۳۸۸ اسفند ۱۶, یکشنبه

مکعب روبیک

مکعب روبیک (Rubik’s Cube) یک پازل مکانیکی که در سال ۱۹۷۴ توسط ارنو روبیک مجسمه ساز و پرفسور معماری در کشور مجارستان اختراع شد.

مکعب روبیک در چهار نوع مختلف وجود دارد: ۲×۲×۲ که به مکعب جیبی معروف است، ۳×۳×۳ رایجترین مکعب روبیک، ۴×۴×۴ که به انتقام روبیک معروف است، و در آخر نوع ۵×۵×۵ یا مکعب حرفه‌ای. نوع ۳×۳×۳ آن که رایجترین آنهاست نه سطح مربع شکل در هر طرف دارد، در مجموع پنجاه و چهار سطح می‌شوند که به اندازه بیست و هفت مکعب کوچک به هم چسبیده فضا را اشغال می‌کند. سطح مکعب روبیک را شش رنگ پوشانده‌است، هر وجه یک رنگ. مخترع آن نام مکعب جادویی را برای آن انتخاب کرد که در سال ۱۹۸۰ با نام مکعب روبیک در جهان پخش شد و می‌توان گفت که پرفروش ترین اسباب بازی جهان است.



دانلود نرم افزار حل مکعب روبیک



۱۳۸۸ اسفند ۱۳, پنجشنبه

دانلود سوالات ارشد علوم كامپيوتر 88

Ajax چيست؟

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




Ajax چيست؟

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



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



جادوي اي‌جاكس چيزي نيست جز يك فكر بكر و آن هم تركيب كردن جاوا اسكريپت و XML در قالب يك موجود ‌نرم‌افزاري جديد.



اصطلاح Ajax را اولين بار كارشناسي از شركت Adaptive Path به نام جسي جيمزگرت در مقاله‌اي با عنوان <اي‌جكس؛ رهيافت جديدي در برنامه‌هاي تحت وب> مطرح كرد و خيلي سريع مورد استقبال گسترده برنامه نويسان وب در سراسر جهان قرارگرفت. اعتقاد عمومي اين است كه تاريخچه به‌كارگيري تكنيك مذكور به پيدايش نرم‌افزار Outlook WebAccess و استفاده از فرمان XMLHttpRequest كه مايكروسافت ابداع كرده و در نرم‌افزار اينترنت اكسپلور به‌كار رفته است، برمي‌گردد. اما امروزه اغلب مرورگرهاي مهم و شناخته‌شده (از جمله فايرفاكس) از آن پشتيباني مي‌كنند و ديگر يك فناوري محدود به اينترنت اكسپلورر نيست.

چرا Ajax اين قدر اهميت‌دارد؟

فناوري اي‌جكس جديد است و شگفت‌انگيز به‌نظر مي‌رسد. ولي در حقيقت كل اين شعبده بر اساس فناوري‌هايي بنا شده است كه هم‌اكنون موجودند: جاوا اسكريپت و XML. هر دوي اين فناوري‌ها تا حد زيادي باز هستند و منحصر به شركت خاصي نيستند. به همين دليل اين روزها تمام محافل دنياي برنامه نويسي مملو از مقالات و تحليل‌هايي درباره Ajax است. به عنوان نمونه مي‌توانيد صفحه نخست سايت موسوم به <كانال شبكه برنامه نويسان سان> را بازكنيد.



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

O' Reilly و xml.com نيز در اين باره مطلب دارند.



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



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



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



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

كدام سايت‌ها از اي‌جكس استفاده كرده‌اند؟

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