واقعیت مجازی (VR) و واقعیت افزوده (AR) دو تکنولوژی نوپا هستند که این روزها حرف‌های زیادی درباره‌ی آن‌ها شنیده می‌شود؛ تجربه‌های جذابی که شاید کمی ترسناک و شاید هم بسیار ماجراجویانه باشند.

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

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

 تخمین مدت زمان مطالعه‌ی مطلب: دو دقیقه

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

چند روز پیش شروع به بررسی SEO در AngularJS 1.x کردم. صورت مسئله‌ی من به این صورت بود که نام تعدادی شهر را با AngularJS در صفحه Render کنم، طوریکه در DOM اولیه که از سرور هدایت می‌شود، نام شهرها موجود نباشند. کد زیر را مشاهده کنید.

<html dir="rtl">
<head>
    <title>وب سایت</title>
    <script src="angular.min.js">
    </script>
</head>
<body ng-app="app">
    <ul ng-controller="ctrl">
        <li ng-repeat="item in list">{{item}}</li>
    </ul>
</body>
    <script>
        var app=angular.module('app',[]);
        app.controller('ctrl',function($scope,$timeout){
            $scope.list=[
                'اردبیل',
                'تهران',
                'شیراز',
                'قزوین',
            ]
        });
    </script>
</html>

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

سپس در وب مستر گوگل، مسیر را تعریف کردم و به crawl گوگل اعلام کردم که این مسیر را index کند. بعد از مدتی متوجه شدم این صفحه با تمام نام‌های شهر‌ها index شده‌اند!

مسئله را سخت‌تر کردم و این بار به صورت مسئله اولیه این مورد را هم اضافه کردم که بعد از اینکه صفحه بارگذاری شد، بعد از 5 ثانیه، نام شهر مشهد هم به لیست DOM‌ها اضافه شود و به کد بالا این کد را هم اضافه کردم (این کار را برای شبیه سازی درخواست AJAX انجام دادم):

$timeout(function(){
     $scope.list.push('مشهد')
},5000);

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

البته نیاز به بررسی دقیقتر این مسئله هست و باید در پروژه‌های واقعی این مورد را بررسی کرد تا safe بودن این قابلیت گوگل مورد تایید قرار بگیرد. در حال حاضر برای SEO در ReactJS و AngualrJS و VueJS از Render سمت Server استفاده میکنم. اگر این قابلیت به طور 100% جوابگوی SEO باشد، دیگر نیازی نیست Developer‌ها سمت سرور و کلاینت، کارهای تکراری برای SEO انجام دهند. 

یکی از بهترین منابع یادگیری و ارجاع برای یادگیری جاوا اسکریپ سایت وابسته به تیم مرورگر Mozilla Firefox هست که به MDN نام گذاری شده است.

در شبکه برنامه نویسان موزیلا (MDN) اطلاعات به روز مربوط به برنامه نویسی در لایه UI یافت میشود.

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

  • Java Script يک زبان برنامه نويسی اسکريپتی است . دستور العمل های زبان های اسکريپتی ، در کامپيوتر کاربر و توسط مرورگر اجرا شده و برای اجرا نيازی به برنامه کمکی خاصی ندارند . به اين زبان ها در اصطلاح طرف مشتری ( Client Side ) می گويند . در مقابل زبان های مثل ASP.NET ابتدا توسط سرور ارسال کننده وب اجرا شده و سپس نتايج خروجی به زبان HTML برای اجرا در مرورگر فرستاده می شود . به اين زبان ها در اصطلاح طرف سرور ( Server Side ) می گويند .
  • زبان های اسکريپتی ، جزء زبان های برنامه نويسی سبک هستند . اين زبان ها در هنگام اجرا فازی به نام کامپايل* را طی نکرده و دستورات آن ها به صورت خط به خط اجرا می شوند .

کامپايل : برنامه های نوشته شده به زبان های برنامه نويسی مثل VB , C یا #C در هنگام اجرا ابتدا توسط کامپايلر به طور کامل خوانده شده و اشکال زدايي می شوند و در صورت عدم وجود اشکال ، اجرا خواهند شد . اما برنامه های نوشته شده به زبان های اسکريپتی ، به صورت خط به خط توسط مرورگر خوانده شده و اجرا می شوند .

برخی از امکانات Java Script :

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

اگر علاقه به برنامه نویسی بازی های پیکسلی دارید این برنامه را توصیه میکنم

این گل‌ها شامل گل یشم، گل عنکبوتی، گل آناناسی، دراسنا و کاکتوس کارییبی می‌شود.
-زیتون خرد شده یک پیمانه 100 گرم / 140 کالری -کالباس ژامبون خرد شده یک پیمانه 100 گرم / 300 کالری -خیار شور یک پیمانه 100 گرم / 12 کالری -هویج خرد شده و پخته شده یک پیمانه 100 گرم / 40 کالری -نخود فرنگی و ذرت پخته شده یک پیمانه 100 گرم / 80 کالری -ماکارونی پیچ به میزان دلخواه 100 گرم / 360 کالری -سرکه و روغن زیتون و آب لیمو به میزان دلخواه 100 گرم / 900 کالری -سس مایونز به مقدار مورد نیاز 100 گرم / 691 کالری -کاهوی سالادی خرد شده یک عدد 100 گرم / 17 کالری -فلفل سیاه به دلخواه 100 گرم / 0 کالری - ماکارونی ها رو میپزید و آبکش میکنید.تا آبشون بره و توی ظرف میریزید. - بعد کاهو ها رو که ریز خرد کردید بهش اضافه میکنید و هم میزنید. - حالا باقی مواد رو بهش اضافه می کنیم و بعد هم سس و در آخر سرکه و آب لیمو و فلفل و روغن زیتون.