json از رویدادهای شمسی

رویداد های شمسی

چند وقت پیش به یک فایل json از رویداد های سال ۹۵ نیاز داشتم هرچی تو اینترنت گشتم چیز خوبی پیدا نکردم. در نتیجه تصمیم گرفتم یک اسکریپت ساده برای خواندن رویدادها از سایت time.ir بنویسم.

کد و خروجی :

امیدوارم برای شما نیز مفید باشد.

ایجاد طیف رنگ در Illustrator

blend illustrator

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

Blend Tools چیست؟ یکی از ابزار های کاربردی Illustrator ابزار Blend (ترکیب) می باشد. با استفاده از این ابزار شما میتوانید Object های خود را در یک ساختار (Path) مشخص تکرار یا ترکیب نمایید.
برای اینکه به این ابزار دسترسی داشته باشید از منو Object زیر منو Blend را انتخاب کنید.
مرحله بعد، ایجاد طیف رنگ با استفاده از ابزار Blend:

۱- با استفاده از ابزار  Rectangle Tools دو مربع در صفحه خود رسم کنید. مطابق شکل زیر:

blend tools

۲- دو مربع را با استفاده از نگه داشتن “Shift کیبورد” انتخاب کنید. (دقت کنید که “Selection Tools” را انتخاب کرده باشید.)

blend tools

۳- از منو Object زیر منو Blend و گزینه “…Blend Options”  را انتخاب کنید. در پنجره بازشده با استفاده از گزینه Spacing (فاصله) نوع فاصله ترکیب را مشخص کنید.

blend tools

۴- در مرحله پایانی برای ایجاد طیف رنگ ، از منو Object زیر منو Blend و گزینه “Make” را انتخاب کنید و یا از کلید ترکیبی Alt+Ctrl+B استفاده کنید.

blend tools

به همین سادگی و در چهار مرحله طیف رنگ خود را ایجاد کردیم.

وقت اضافه…

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

VR در وب به کمک A-Frame

chrome-firefox-virtual-reality

واقعیت مجازی چیست[wiki]؟
واقعیت مجازی یا Virtual Reality که به اختصار با حروف VR نمایش داده می‌شوند عبارتند از تلاش بشر برای برداشتن مرزهای بین فضای واقعی و فضای مجازی.
واقعیت مجازی یک تکنولوژی و فناوری نوین است که به کاربر امکان می‌دهد تا با یک محیط شبیه‌سازی رایانه‌ای اندرکنش یا تعامل داشته باشد.
A-Frame چیست؟
A-Frame یک فریم ورک اُپن سورس برای ساخت VR در وب می باشد. شما با استفاده از این فریم ورک می توانید اشکال سه بعدی بسازید و از تصاویر پاناروما در محیط طراحی خود استفاده کنید.
این فریم ورک با تلفیق three.js , برای ساخت اشکال سه بعدی و webGl در مرورگر ها, این امکان را برای استفاده کننده ها فراهم کرده که بدون کار با API های سطح پایین تر به راحتی بتوانند از VR در وب استفاده کنند.
چه دستگاه های پشتیبانی می کنند؟
خوشبختانه تمامی نسخه های جدید مرورگرها از webGl پشتیبانی می کنند در نتیجه شما برای مشاهده تصاویر و آبجکت های سه بعدی مشکلی نخواهید داشت اما برای مشاهده در حالت VR تنها  نسخه Nightly فایرفاکس و کروم Chromium WebVR از آن پشتیبانی می کنند.
Chromium WebVR build
Firefox Nightly

نکته دیگر که باید توجه داشته باشید در صورتی که بخواهید تجربه بهتری از مشاهده تصاویر پاناروما داشته باشید. گوشی شما باید دارای سنسور ژیروسکوپ باشد. تا در هنگام چرخش تصاویر را به درستی مشاهده کنید.

نمونه ساخته شده:

شکست ایـده ها!!

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

محدوده‌ی تعریف متغیر در جاوا اسکریپت (variable scope)

variable-scope

در جاوا اسکریپت دو نوع محدوده‌ی تعریف متغیر وجود دارد:

  1.  global (سراسری) : متغیر های که به صورت سراسری تعریف می شوند و قابل دسترسی در تمام بخش های کد می باشند.
  2. local (محلی) : متغیر های که به صورت محلی تعریف می شوند و فقط قابل دسترسی در محدوده‌ی تعریف شده (scope) می باشند.

scope ها در es5 (جاوا اسکریپت نسخه ۵):

در نسخه ۵ جاوا اسکریپت scope ها توسط توابع (functions) مشخص می شوند. و متغیر های که خارج از تابع (function) تعریف می شوند به صورت متغیر سراسری (global) قابل دسترسی هستند. و متغیر های که در تابع (function) تعریف می شوند به صورت محلی (local) قابل دسترسی هستند.

مثال از انواع مختلف variable scope در es5:

// one: global variable scope
var a=1;
function one() {
  alert(a); //alert 1
}

// two: local variable scope
var a=1;
function two() {
  var a =3;
  alert(a); //alert 3
}

// three: local and global
var x = 5;
(function () {
    alert(x); //alert undefined
    var x = 10;
    alert(x); //alert 10
})();
alert(x);//alert 5

// four: non block scoping in es5
var a = 1;
function four() {
  if (true) {
    var a = 4;
  }
  alert(a); // alert 4 
}

// five: object properties
var a = 1;
function five() {
  this.a = 5;
}

// six: automatically global 
function six() {
	a= 5;
}
alert(a); //alert 5

همانطور که در مثال ۶ مشاهده میکنید در صورتی که متغیر به صورت var name-variable تعریف نشود.در تمام بخش های کد قابل دسترسی است.حتی اگر در داخل تابع (function) تعریف شده باشد.

scope ها در es6 (جاوا اسکریپت نسخه ۶):

برخلاف es5 که scope ها به وسیله توابع مشخص می شدند. در es6 شما می توانید از الگو  block-scope  استفاده کنید. در es6 متغیر ها با let و ثابت ها با const تعریف می شوند.

مثال variable scope در es6:

// one: block scoping
function one() {
	if (true) {
		let tmp = 123;
	}
	alert(tmp); // ReferenceError: tmp is not defined
}