بلاگ

پارسی جو API نقشه بومی‌اش را رایگان به کسب‌وکارها می‌دهد

استارتاپ‌های مکان محور ایرانی چه در قالب اپلکیشن و چه سایت، در سال‌های گذشته تکیه سنگینی به سرویس گوگل مپس زده بودند؛ سرویسی که اکنون سیاست‌های خود را تغییر داده، قیمت‌هایش را تا ۱۴۰۰ درصد افزایش داده و البته دیگر به وب‌سایت‌ها با دامنه IR نیز خدمات نمی‌دهد و آنها را مسدود کرده است.

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

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

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

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

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

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

«در برنامه بلند مدت برای استفاده کسب و کارهای بزرگ طرح درآمدزایی دیده شده است. API نقشه پارسی‌جو با استفاده از ۴ شیوه شامل ارائه دهنده، آدرس یابی، جستجو و مسیریابی در نقشه امکان تبادل اطلاعات بین پلتفرم‌های مختلف را فراهم می‌کند. از طرفی برای درآمدزایی بیشتر به قسمت جانبی نقشه متمرکز شده‌ایم. مانند یک پنل سازمانی که در حال توسعه آن برای جاهای مختلف هستیم.»

زارع همچنین از تهیه صفحه‌ای برای توسعه‌دهندگان وب خبر می‌دهد که در نقش راهنمای انتشار نقشه پارسی‌جو ظاهر شده است؛ صفحه‌ای که در آن به صورت متمرکز سعی شده راهنمای کوتاه و ساده ارائه شود تا توسعه دهندگان بتوانند به راحتی از نقشه های پارسی جو استفاد کنند:

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

نوشته پارسی جو API نقشه بومی‌اش را رایگان به کسب‌وکارها می‌دهد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

برنامه نویس وب شدن(فرانت اند)

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

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

فرانت اند و بک اند.

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

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

اول کار هم باید برنامه نویس فرانت اند شید!

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

چیزی که خیلی واضحه، همه چی تو وب با سه تکنولوژیه HTML, CSS و JavaScript کار میکنه. پس بریم سراغه تکنیک های مورد نیازشون:

  • یادگیری پایه ای HTML و CSS
  • یادگیری کانسپتی به نام Semantic HTML
  • یادگیری CSS Box Model
  • یادگیری CSS Preprecessors
  • یادگیری CSS Media Queries
  • یادگیری Bootstrap
  • یادگیری SASS و LESS
  • یادگیری پایه ای JavaScript
  • یادگیری کار با DOM, JSON و AJAX
  • یادگیری مهم ترین ویژگی های JS مانند: functional composition, prototypical inheritance, closures, event delegation, scope و higher-order functions
  • کار با promises و callbacks در جاوا اسکریپت
  • یادگیری درست کردن ساختار کدتون، چیزایی مثه webpack و gulp.js
  • یادگیری جدیدترین و بهترین فریمورک های فرانت اند مانند: React.js, Angular.js و Vue.js
  • یادگیری jQuery
  • یادگیری ویژگی های ES6

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

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

ببخشید اگه واضح نیستن!

مرسی بابت وقتی که گذاشتین ❤️

اگه کسی سوالی داشت و تو گوگل کردن به انگلیسی مشکل داشت، میتونه بهم ایمیل بزنه و من حتما جوابشو میدم. اینم آدرس ایمیلم : yripila@gmail.com

نوشته برنامه نویس وب شدن(فرانت اند) اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

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

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

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

۱- هیچ کسی یک شبه برنامه نویس نشده

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

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

۲- کپی نکنید منطق را یاد بگیرید

بار ها و بار ها دیدم کسایی که به تازگی وارد این حرفه شدن با کپی کردن کد ها انتظار دارن برنامه نویس بشن که این کار غلطه شما باید اساس و منطق برنامه نویسی رو یاد بگیرید.

۴- کد های مرتبی داشته باشید

پشت سر هم نوشتن و بی نظمی در برنامه نویسی چیزی جز اشتباهات متعدد و سردرگمی به همراه نداره. سعی کنید مرتب باشید و از space و tab برای خوانایی بهتر کد هاتون استفاده کنید. همچنین میتونید از قابلیت کامنت گذاری استفاده کنید که به شما در روند پیاده سازی برنامه خیلی کمک میکنه و باعث گیج شدن شما نمیشه.

۵- مسیر خود را درست انتخاب کنید

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

۶- سورس بخوانید!

سورس برنامه هایی که توسط دیگران نوشته شده که در اینترنت بسیارند رو تهیه کنید و مطالعه کنید این کار به شما کمک میکنه تا ساختار برنامه ها رو بهتر بشناسید و بفهمید مثلا متغیر در برنامه واقعی چه کاربردی داره!

۷- به حرف های کذب دیگران گوش ندهید

دلسرد کردن یه نفر از کاری که داره میکنه خیلی بده ، که ما ایرانیا استادیم!

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

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

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

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

گردآوری توسط ایده طلایی

۷ دلیل رشد نکردن برنامه نویسی در ایران

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

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

۱- مدارس

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

۲- منابع فارسی محدود و قدیمی!

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

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

۳- رعایت نکردن حقوق برنامه نویس

برنامه نویسی در خارج از کشور شغل پر درآمدیه در صورتی که در ایران برنامه نویسان از حقوق کم و … رنج میبرن.

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

۴- کپی برداری در روز روشن!

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

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

دوستان زیادی دارم که این اتفاق براشون افتاده و واقعا ناراحت کنندس که نتیجه ماه ها و یا حتی سال ها تلاش به راحتی از بین بره!

۵- فری لنسری

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

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

پروژه های کوچک و صرف زمان های بسیار زیاد (مثلا ۲ سال!) و شکست های متعدد از معایب فری لنسریه که حتی ممکنه طرف برنامه نویسی رو ول کنه!

۶- ما اوپن سورس و آزاد نیستیم!

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

۷- تحریم

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

خوشحال میشم نظرتون رو در باره این مطلب بدونم 🙂

نوشته ۷ دلیل رشد نکردن برنامه نویسی در ایران اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

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

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

به تازگی یک پروژه‌ی جدید در وبسایت GitHub منتشر شده که نکات جالبی را در بر داشته است. این پروژه توسط فردی با نام کاربری Narkoz منتشر شده و او اعلام کرده که این فایل‌ها مربوط به برنامه‌نویس دیگری است که به تازگی شرکت آنها را ترک کرده است.

Narkoz درباره‌ی این فایل‌ها می‌گوید: “ما برنامه‌نویسی داشتیم که به تازگی شرکت ما را ترک کرده است. او از آن دسته افراد بود که برای هر کاری که بیش از ۹۰ ثانیه از زمانش را اشغال می‌کرد، اسکریپتی برای اتوماتیک کردن آن می‌نوشت.”

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

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

اسکریپت بعدی مربوط به زمانی است که برنامه‌نویس به محل کار نمی‌رفته است و از داخل خانه وارد حساب کاربری شرکتی خود می‌شده است. در این زمان پیامی با مضمون این که در خانه کار خواهد کرد برای مدیر او ارسال می‌شده است. اما جالب‌ترین اسکریپت اتوماتیک‌ ساز این برنامه‌نویس، مربوط به آماده کردن قهوه است. با اجرا شدن این اسکریپت، نرم‌افزار به مدت ۱۷ ثانیه صبر می‌کند و پس از آن ماشین قهوه‌ساز را هک کرده و سفارش یک قهوه می‌دهد. ماشین نیز پس از آماده کردن قهوه ۲۴ ثانیه صبر می‌کند و سپس قهوه را داخل ظرف می‌ریزد. مجموع این زمان‌ها با زمانی که طول می‌کشیده تا او از دفترش تا ماشین قهوه‌ساز برود برابر بوده است!

مصطفی حسینی

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

گردآوری توسط ایده طلایی

تا خوش خط نباشه برنامه ریزی نمیکنم !

میخوام درباره یک تجربه از خودم صحبت کنم به اسم وسواس های عجیب غریب ! مثلا چی ؟ یادمه خیلی وقت پیشا که میخواستم برای تابستونم برنامه ریزی کنم مثلا میرفتم یک خودکار خفن zebra میگرفتم، یک دفترچه باحال و البته یک سری کاغذ آچار و این چیزا. برای چه کاری ؟ برای این که فقط بخوام توش بنویسم ۵ تا هدف مهم تابستون من مثلا تو سال ۱۳۹۰ چیه ! و این شروع بدبختی من بود ….


قیافه من قبل از شروع کارا !

چرا این موضوع باعث پسرفت من تو خیلی زمینه ها شده و چطور این موضوع رو رفع کردم ؟

خب خیلی ساده است. بزارین با مثال براتون بگم:

  • همونطور که چند سطر بالاتر گفته بودم من برای برنامه ریزی های فردی خودم خیلی وقت پیش ها این وسواس ها رو داشتم که مثلا خطم خوب باشه، همه چیز صاف و یکسان نوشته بشه، یادمه حتی بعضی مواقع کلی کاغذ پاره میکردم چون که مثلا حس میکردم این چیزی که نوشتم دل نشین نشده ! و کلی تلاش میکردم تا در نهایت مثلا یک نوشته روی کاغذ رو نهایی بکنم و بعد دیگه دیر شده بود و من کلی وقت گذاشته بودم تا فقط همون اهدافی که باید از کلی وقت پیش دنبالشون میرفتم رو، بتونم بیارم رو کاغذ ! درکش شاید سخت باشه ولی همچین چیزی رو خیلی تجربه کردم قبلا و خیلی وسواس و رفتار عجیبی بود …
  • اوایل که برنامه نویسی رو شروع کرده بودم برای یادگیری یک موضوع خاص میرفتم کلی Course آموزشی دانلود میکردم!، دسته بندی میکردم. برام مهم بود مثلا کلی دسته بندی و فایل داشته باشم که انگار یک آرشیو خیلی بزرگ و جذاب دارم، و ذوق میکردم. ولی هدف اصلی این بود که مثلا من برای کارم که git نیاز داشتم سریع یک کورس git میدیدم تا یاد بگیرمش و تو پروژه شخصیم یا محل کارم ازش استفاده کنم. ولی کل وقتم هدر میشد چون میرفتم ۶۰۰ تا فایل آموزشی دیگه هم دانلود میکردم تا آرشیوم کامل بشه و خوشحال بشم ! مثلا دسته بندی میکردم سیستم عامل، شبکه، امنیت، فرانت اند، بک اند و باز هر کدوم از اینا کلی زیرشاخه داشت و الی آخر !
  • من حتی تو سیستم عامل لپ تاپم هم این مشکلو از قبل داشتم و هنوزم رگه هایی ازش هست. مثلا اگر دسکتاپم شلوغ میشد یا مدتی بود که سیستم عاملو عوض نمیکردم فکر میکردم که این سیستم عامل دیگه کثیف شده و تنها راه نجاتش از نو نصب کردن یک سیستم عامل جدیده و البته fresh ! خنده داره نه ؟! :)))
  • یادمه اگر میخواستم غذا درست کنم و مثلا سبزی رو به جای این که فلان قدر ریز کنم، اشتباها یکم بزرگتر ریز میکردم یا مثلا تو سالاد کاهو ها بزرگ ریز میشدن یا گوجه ها صاف تیکه تیکه نمیشدن یا …، اون غذا دیگه به دلم نمی نشست، انگار که یک جای کار تو کل کار میلنگید و تا آخرش همه چیز دل نشین نبود :))
  • یادمه اگر مثلا جزوه تو دبیرستان میخواستم بنویسم، اگر اون متنش مثلا به اخر صفحه میرسید و چند تا کلمه هم بیشتر داشت و مجبور میشدم برم صفحه جدید و فقط یک ذره از صفحه جدید رو به اون چارتا کلمه اختصاص بدم، اعصابم خرد میشد که چرا fix نشده !

از این مثال ها و تجربه ها زیاده ولی خب من تقریبا ۸۰ درصد این اخلاقیات اشتباهمو کنار گذاشتم. الان دیگه میتونم راحت با همه این موضوعات کنار بیام و سخت نگیرم. الان میدونم که ارزش هر کار به اینه که واقعا انجام بشه و به پایان برسه، مثلا امروز برنامه ریزی های تابستونی شرکتمونو تو یک برگه کاهی و خیلی بد خط‌! نوشتم چون مهم بود که سریع بتونیم کلیات کار رو جمع کنیم و کم کم وارد فاز عملیاتی بشیم !‌ (مثلا اگر من امیرحسین قدیم بودم الان تا ۲ هفته فقط درگیر نوشتن همین ۳۰ ۴۰ خط میشدم و احتمالا از اصل ماجرا کلن پرت میشدم !)

قیافه من بعد از کلی برنامه ریزی و کلی کار انجام نشده !

خلاصه این که اگر شما هم مثل من این مشکل رو دارید، تنها راهش اینه که اون بخش از وجودتون که هی میگه: این که کامل نیست، این که خوشگل نشده هنوز، این که کثیفه اونجاش و … رو خفه اش کنید و بکشیدش ! هیچ راه مسالمت آمیز دیگه ای وجود نداره که از شرش خلاص بشید. باید وارد کار بشین و نزارین هی مسائل حاشیه ای، شما رو از متن دور کنه. این با تمرین و یکم سختی حل میشه 🙂

نظر شما چیه ؟ شما هم همچین چیزی رو تجربه کردین ؟ راهکار های شما چی بوده برای رفع مشکلتون ؟

نوشته تا خوش خط نباشه برنامه ریزی نمیکنم ! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

تصادفی ترین عدد دنیا چگونه ساخته می شود؟

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

تولید عدد تصادفی به ابزاری به نام «مولد» یا تولید کننده نیاز دارد که به روش فیزیکی یا محاسباتی این اعداد را تولید می کنند. خروجی این ابزارها در حوزه های مختلف از جمله شبیه سازی رایانه ای (مثلاً شبیه سازی مفاهیم طبیعی)، نمونه برداری (تولید نمونه تصادفی برای توصیف حالت کلی سیستم)، آنالیز عددی (ابداع روش های جدید برای حل مسائل پیچیده)، برنامه نویسی و همچنین تصمیم گیری های احتمالی استفاده می شوند.

عدد تصادفی چیست؟

عدد تصادفی کوانتومی

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

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

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

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

راهکار دانشمندان NIST برای تولید عدد تصادفی

عدد تصادفی کوانتومی

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

آشفتگی مکانیک کوانتوم بهترین نمونه تصادفی را در اختیار دانشمندان می گذارد

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

پیتر بیرهورست از مؤسسه NIST در این رابطه می گوید:

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

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

عدد تصادفی کوانتومی

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

دو ذره در هم تنیده فقط در ارتباط با یکدیگر معنی پیدا می کنند

البته همواره این احتمال وجود دارد که دستگاه مورد استفاده شما برای تولید یا اندازه گیری ذرات، سطحی از پیش بینی پذیری را در نتیجه آزمایش وارد کنند. به همین دلیل تیم مورد بحث از مؤسسه NIST یکی از مفاهیم کاربردی فیزیک کوانتوم به نام «در هم تنیدگی کوانتومی» (Quantum Entanglement) را به خدمت گرفتند.زمانی که دو ذره نور در یک لحظه و به شکل همزمان تولید شوند و با یکدیگر بر هم کنش داشته باشند، به آنها «در هم تنیده» می گوید و طبق اصول مکانیک کوانتومی، شما نمی توانید یکی را بدون دیگری درک کنید. به عبارت دیگر همواره ارتباطی بین این دو ذره وجود خواهد داشت.

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

روش تولید عدد تصادفی کوانتومی

عدد تصادفی کوانتومی

این روش چندان هم ساده نیست. در آزمایش انجام شده توسط مؤسسه NIST از کابل های L شکل فیبر نوری استفاده شده که طول هر یال آنها به ۱۳۰ متر می رسد. در محل تقاطع دو یال (تقاطع L) یک جفت ذره نور با حالت در هم تنیده تولید می شود. برای تولید این ذرات نور، پرتو لیزر را از میان یک کریستال خاص عبور می دهند که قطبش خاص را در آنها ایجاد می کند.

در این روش باید فرض کنیم که هیچ چیزی با سرعت بیشتر از نور حرکت نمی کند

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

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

این [مولد عدد تصادفی] دقیق ترین و ایمن ترین روش برای تولید عدد تصادفی است که تا به امروز ساخته شده، اما هم از نظر ابعاد بسیار بزرگ است و هم برای تولید تعداد محدودی رقم تصادفی به کار و فعالیت زیادی نیاز دارد.

عدد تصادفی کوانتومی

تولید عدد تصادفی در این روش به شناسایی فوتون های در هم تنیده از طریق آزمایش کوانتومی نیاز دارد. در واقع برای تولید ۱۰۲۴ رقم باینری تصادفی از حدود ۵۵ میلیون فوتون استفاده می شود و فرایند آزمایش حدود ۱۰ دقیقه طول می شد. همان طور که می دانید کامپیوترها اطلاعات به دست آمده را به جای مبنای ۱۰ به صورت کُد باینری ذخیره می کنند، بنابراین ۱۰۲۴ رقم باینری تصادفی می تواند از یک تا ۲ به توان ۱۰۲۴ را در بر بگیرد (به عبارتی یک کیلوبیت).

به گفته بیرهورست، با ساده تر شدن این روش، مثلاً از طریق کاهش مقیاس و سرعت عمل، می توان کاربردهای زیادی برای آن در فرایند تولید عدد تصادفی پیدا کرد. مثلاً NIST از ترکیب مولد عدد تصادفی کوانتومی را با بیکن عدد تصادفی سخن می گوید (نسخه اولیه بیکن تصادفی NIST در هر ۶۰ ثانیه یک رشته بیت تصادفی را در بلوک های ۵۱۲ بیتی تولید می کند و بلوک ها به شکل زنجیر وار به یکدیگر متصل هستند.)

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

نوشته تصادفی ترین عدد دنیا چگونه ساخته می شود؟ اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

جک ما: دکتر ماهاتیر محمد الهام بخش من برای تاسیس علی بابا بود

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

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

او که حالا پنجاه و سه سال دارد اخیرا اعلام کرده که برنامه های ماهاتیر محمد برای تبدیل پایتخت مالزی به یک مرکز کسب و کار فناوری او را به راه اندازی یک کسب و کار دیجیتال تشویق کرده با این امید که فناوری را در چین متحول سازد.ماهاتیر محمدوی مدی شده که ایده این کسب و کار حین خواندن مقاله ای درباره احداث یک منطقه اقتصادی ویژه با فناوری پیشرفته به نام Multimedia Super Corridor در کوالالامپور به ذهن وی خطور کرده است:

با خواندن این مقاله به این فکر افتادم که اگر مالزی می تواند چنین ایده نابی را اجرا کند چرا ما چینی ها نتوانیم؟ چرا من اینکار را از آپارتمان خودم شروع نکنم؟

اینطور بود که ایده های دکتر محمد الهام بخش من برای شروع کار شد و به این خاطر از او تشکر می کنم.

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

اگرچه دکتر ماهاتیر محمد اکنون ۹۲ سال سن دارد اما ائتلاف تحت رهبری او با عنوان ائتلاف امید اخیرا در چهاردهمین انتخابات سراسری مالزی با کسب اکثریت ۱۲۲ کرسی در انتخابات مجلس نمایندگان به پیروزی رسید.

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

نوشته جک ما: دکتر ماهاتیر محمد الهام بخش من برای تاسیس علی بابا بود اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

مایکروسافت پلتفرم یادگیری ویدیویی Flipgrid را خریداری می‌کند

به تازگی مایکروسافت اعلام نموده که قصد دارد یک پلتفرم یادگیری ویدیویی به نام Flipgrid را خریداری کند. در حال حاضر این پلتفرم توسط ۲۰ میلیون دانش آموز، مدرس و خانواده در ۱۸۰ کشور جهان مورد استفاده قرار می‌گیرد و یکی از محبوبترین سرویس‌های یادگیری ویدیویی به شمار می‌رود.

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

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

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

Eran Megiddo نایب رییس شرکت مایکروسافت درباره خرید این پلتفرم یادگیری می‌گوید:

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

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

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

نوشته مایکروسافت پلتفرم یادگیری ویدیویی Flipgrid را خریداری می‌کند اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

واقعا Node.js چیه؟!

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

ببینید محیط اجراییه Node.js فضا و تمام اون چیز‌هایی که نیازه که کد‌های نوشته شده جاوااسکریپت اجرا بشه رو داره. مثلا به این شکل نگاه کنید:

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

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

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

همونطور که توی عکس بالا می‌بینید، نشون دادم که موتور اصلی Node.js در واقع V8 هست، توی مرورگر هم همینه،‌ اونجا هم V8 داره کار می‌کنه. این سوال در ذهن همه تداعی میشه که موتور چیه؟

V8 Engine :DV8 Engine 😀

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

چرا Node.js ؟

خود سایت Node.js اینطور بیان می‌کنه که:

محیط Node.js بر اساس موتور V8 کروم ساخته شده.

محیط Node.js از یک مدل رویداد محور و non-blocking I/O استفاده می‌کنه که این Node.js رو سبک و کارآمد می‌کنه.

محیط Node.js اکوسیستمی برای پکیج‌هاش داره به نامه npm که بزرگ‌ترین اکوسیستم کتابخانه‌های متن باز در دنیاست.

در مورد اولی صحبت کرده بودم، بهتره که در مورد دومی که مهمترینش هم هست یکم بیشتر توضیح بدم.

منظور از I/O همون Input/Output هست. می‌تونه هر چیزی باشه، از خوندن/نوشتن توی فایل باشه تا ارسال درخواست‌های HTTP به یک API.

این یعنی I/O برای اجرا زمان می‌بره و این یعنی بقیهء کارها الافش می‌شن، یجورایی بقیه رو نگه می‌داره تا کار خودش انجام بشه.

خیلی کوتاه توضیح بدم، جاوااسکریپت ساختار non-blocking I/O داره و برای انجام کارهایی که به زمان نیاز داره، الباقی کارها رو الاف خودش نمی‌کنه، به طبع Node.js هم این خاصیت رو داره پس دیگه نیاز شما رو به داشتن multi-threading از بین می‌بره، چون دیگه سرور شما این توانایی رو داره که درخواست‌های زیادی رو همزمان جواب بده.

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

چرخه رویدادهای جاوااسکریپتچرخه رویدادهای جاوااسکریپت

مرحله به مرحله می‌خوام توضیح بدم که قشنگ متوجه بشید داستان چیه:

  1. تابع main به استک اضافه میشه.
  2. تابع console.log('Starting app') به استک اضافه میشه. اجرا میشه و از استک میاد بیرون.
  3. تابع setTimeout(2000) به استک اضافه میشه. setTimeout(2000) از API های Node.js هست. زمانی که صداش می‌زنیم تا اجراش کنیم در واقع اون رو توی لیست Node APIs ثبت می‌کنیم. اون صبر می‌کنه به اندازه زمانی که بهش دادیم که اینجا ۲۰۰۰ میلی ثانیه هست و بعد تابع callback خودش رو به صف اضافه می‌کنه.
  4. بعد از اینکه توی Node APIs ثبت شد، خود setTimeout(2000) از استک میاد بیرون.
  5. حالا می‌رسیم به setTimeout(0) که اون هم مثل دوست اولیش باهاش برخورد میشه. در لیست Node APIs ثبت می‌کنیم و از استک میاد بیرون.
  6. این دو عزیز صبر می‌کنن که زمانشون تمام بشه، بعد هر کدوم تابع‌های callback مربوط به خودشون رو توی صف قرار می‌دن. طبیعی هست که هر کسی زودتر، تابع callback اون هم توی صف جلوتره، اینجا setTimeout دومی چون زمانش صفر بود، callback ش میره توی صف و ۲۰۰۰ میلی ثانیه یا به عبارتی ۲ ثانیه بعد setTimeout دومی callback ش رو می‌فرسته توی صف.
  7. اینجا event loop مراقب هست که اول استک خالی بشه و بعد به ترتیب توابع داخل صف رو اجرا کنه.
  8. آخرین تابع یعنی console.log('Finishing up') هم به استک اضافه میشه، اجرا میشه و از استک خارج میشه و بعد اون هم main خارج میشه.
  9. حالا استک خالیه و event loop صف رو تک به تک شروع به اجرا می‌کنه. اولی تابع console.log('Second setTimeout') و بعدش هم console.log('Inside of callback') و تمام.
  10. اینطوری میشه که شما خروجی کدی که توی عکس هست رو اینطوری می‌بینید:

 

در مورد مساله سومی هم باید بگم که کتابخانه‌های زیاد و عالی‌ای در npm یا همون Node Package Manager وجود داره که خیلی‌ از گره‌ها رو باز کرده و از این به بعد هم می‌کنه و سرعت و کارآمدی برنامه نویسی شما رو بیشتر می‌کنه.

چطوری یه کد ساده توی Node.js بزنیم؟

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

این از اولش. بعدش هرجا که دلتون خواست، یه فایل بسازید مثلا example.js و توش یه کد خیلی خیلی ساده جاوااسکریپت بنویسید. مثلا بنویسید:

خوب حالا محیط کامندیتون رو باز کنید، توی ویندوز مثلا cmd یا power shell و توی لینوکس و مک هم terminal و با اون به مکانی برید که فایل example.js داخلش وجود داره. حالا تایپ کنید:

و خروجی رو همونجا می‌تونید ببینید. دیدید؟ خیلی ساده، همین الآن شما یه Node.js کار شدید. البته که راه زیادی در پیش دارید. برای نوشتن یه برنامه کامل با زلم زیمبوهای خاص خودش خیلی چیز‌ها نیازه. آشنایی با API ها و فریمورک‌ها و هزار‌ان چیز دیگه که من پیشنهاد می‌کنم به منابع انگلیسی زبان مراجعه کنید. برای شروع پیشنهاد من کورس زیر هست:

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

نوشته واقعا Node.js چیه؟! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی