۱۳۹۵/۰۵/۰۳

ارائه انقلاب وب‌کامپوننت‌ها و کارگاه گوگل پلیمر


در آخرین روز‌های تیر ماه ۹۵ نخستین همایش توسعه‌دهندگان وب ایران به مدت دو روز برگزار شد. روز اول این همایش، ۳۰ تیر ماه، به تکنولوژی ‌های مرتبط با CSS و روز دوم آن به تکنولوژی‌های پیرامون JavaScript اختصاص داشت.
در روز دوم این همایش، من ارائه‌ای با عنوان انقلاب وب‌کامپوننت‌ها (Web Components Revolution) و کارگاهی تحت عنوان پیاده سازی یک داشبورد کامل بر پایه Web Components و Polymer داشتم. بازخوردهایی که به صورت حضوری و غیرحضوری (شبکه‌های اجتماعی) دریافت کردم، نشان‌دهنده علاقمند شدن توسعه‌دهندگان به این مباحث بود.

انقلاب وب‌کامپوننت‌ها

صبح روز دوم، ارائه‌ای با موضوع Web Components Revolution برای مدعوین داشتم. این ارائه شامل معرفی وب‌کامپوننت‌ها، تعاریف و نحوه استفاده از آن‌ها بود. در زیر فایل مربوط به ارائه را مشاهده می‌فرمایید:

کارگاه پیاده سازی یک داشبورد کامل بر پایه Polymer

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

همایش بعدی، Coder Conf

اگر برنامه‌نویس ویا علاقمند به یادگیری و دورهمی هستید، بیست هشتم همین ماه (مرداد ۹۵)، همایشی تحت عنوان Coder Conf برگزار خواهد شد. من عضو تیم داوری این همایش هستم. ممکن‌ است در این همایش موضاعات جدیدتری را در زمینه Web Component ها و Google Polymer ارائه کنم. همچنین در صورتیکه محدودیت زمانی نداشته باشیم، کارگاه پلیمر را بار دیگر و با مطالبی متفاوت‌تر برگزار خواهم کرد. برای ثبت‌نام به وب‌سایت Coder Conf مراجعه نمایید.
همایش Coder Conf
همایش Coder Conf

۱۳۹۴/۰۵/۳۱

معرفی Polymer، کتابخانه جدید گوگل

Polymer Logo

مقدمه

در شرکت داتیس پارس پروژه‌ای داریم که مسئولیت بخش Front-end آن به تیم ما سپرده شده است. قبل‌تر بخش Front-end با کتابخانه انگولار (AngularJS) توسعه داده شده بود ولی با ارزیابی‌های صورت گرفته، تشخیص بر آن شد که به جای AngularJS از کتابخانه Polymer استفاده نماییم. من از حامیان اصلی این تغییر بودم و حالا بعد از چندین هفته مطمئن شدم که گزینه درست را انتخاب نموده‌ام. این مطلب به معرفی کتابخانه Polymer می‌پردازد.
با توجه به در دسترس نبودن مستقیم سرویس‌هایی مانند Youtube و پروتکل HTTPS از داخل ایران و نیز تحریم‌های گوگل علیه ایران، ممکن است بخش‌هایی از ادامه مطلب را به صورت صحیح و یا کامل مشاهده نفرمایید.

بروزرسانی (دلیل استفاده از Polymer به جای AngularJS)

تعدادی از بازدیدکنندگان وبلاگ از طریق ایمیل و یا در بخش نظرات این مطلب، دلیل کنار گذاشتن انگولار و استفاده پلیمر را چندین بار از من پرسیدند و من جداگانه پاسخ هر یک را ارسال نمودم. حال قصد دارم تا مهم‌ترین دلایل این تغییر را برای تمامی بازدیدکنندگان فهرست کنم. ما برای تغییر فریم‌ورک از انگولار به پلیمر پارامترهای مختلفی رو در نظر گرفتیم:
  1. سادگی پلیمر (از نظر آموزش و توسعه)
  2. ارائه مدل وب کامپوننتی
  3. محدودیت زمانی
  4. سازگاری ساده‌تر با کتابخانه‌های مختلف
  5. در دسترس بودن Element های آماده برای تمامی نیازهای مد نظر ما
  6. تسریع در توسعه نرم‌افزار
  7. در حال حاضر ما از فریم ورک MVC در بخش فرانت اند استفاده نمی‌کنیم. مدل پلیمر متفاوت از پیاده‌سازی MVC است.
  8. انگولار نسخه ۱ از پلیمر پیشتیبانی نمی‌کند. طبق گفته تیم انگولار، پشتیبانی از وب‌کامپوننت‌ها از نسخه ۲ به آن اضافه خواهد شد.

معرفی Polymer (پلیمر)

پلیمر کتابخانه‌ی جاوا اسکریپت برای توسعه سایت‌ها و نرم‌افزارهای تحت وب است. به زبان ساده‌تر پلیمر مجموعه‌ای از وب‌کامپوننت‌ها (Web Component‌) آماده استفاده را در اختیار توسعه‌دهندگان قرار می‌دهند. مشابه راه‌کارهایی که کتابخانه‌‌های X-Tag و Bosonic فراهم می‌کنند.
وب‌کامپوننت به معنی ایجاد تگ‌های شخصی و خصوصی سازی شده برای استفاده در وب اپلیکیشن‌ها است.
مهم‌ترین هدف پلیمر تغریف زیرساختی برای شکستن کامپوننت‌ها بزرگ به بخش‌های کوچک‌تر است. این کار مزایای از جمله موارد زیر را برای توسعه‌دهدگان نرم‌افزارها به همراه دارد:
  1. کامپوننت‌ها مستقل از یکدیگر خواهند بود. در صورت طراحی صحیح معماری، تغییر در یک کامپوننت، منجر به ایجاد مشکل در سایر کامپوننت‌ها نمی‌شود.
  2. از نوشتن کدهای تکراری جلوگیری می‌شود. شما می‌توانید یک کامپوننت مشترک را در چندین کامپوننت دیگر براحتی استفاده نمایید.
  3. پلیمر (و به صورت کلی‌تر وب کامپوننت) سرعت توسعه نرم‌افزار را شتاب می‌بخشد.
  4. نگهداری (Maintenance) نرم‌افزار در بلندمدت کم هزینه‌تر خواهد بود.


پیش‌نیازها

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

نمونه کاربردی Polymer و Web Component

اگر از ابزارهای گوگل و یا سیستم‌عامل اندروید استفاده کرده باشید، مطمناً چشمتان به کامپوننت‌های پلیمر خورده است. به عنوان مثال بخش ظاهری (Front-end) نرم‌افزارهای Google Translate و اپلیکیشن Youtube بر روی گوشی تلفن همراه با استفاده از کتابخانه پلیمر پیاده‌سازی شده است.
در زیر با استفاده از کامپوننت paper-button دو دکمه و با استفاده از کامپوننت paper-toast دو نوتیفیکیشن ایجاد کرده ایم. با کلیک کردن بر روی هر دکمه نوتیفیکیشن مربوط به آن را مشاهده خواهد نمود:

از کجا یاد بگیریم؟

بهترین منبع برای یادگیری پلیمر وب‌سایت پلیمر به آدرس polymer-project.org است. این وب‌سایت و بخش عناصر (elements.polymer-project.org) به سرعت در حال تغییر و توسعه هستند. برای شروع پیشنهاد می‌کنم ویدئو معرفی Polymer 1.0 در همایش Google I/O 2015 را در ادامه مشاهده فرمایید:


منابع و اطلاعات بیشتر

پی‌نوشت: فرصت‌های شغلی

برنامه‌نویس جاوا اسکریپت

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

طراح رابط کاربری (UX/UI)

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

برنامه‌نویس جاوا

در صورتیکه علاقمند به کار در بخش Back-end پروژه هستید، شرکت ما در حال جذب نیرو برای این بخش نیز است. آشنایی کافی با جاوا و داشتن تجربه کار تیمی مهم‌ترین معیار‌های جذب نیرو در شرکت ما است.

روزمه خود را ارسال کنید!

لطفا رزومه خود را به آدرس saeid.zebardast@gmail.com یا jobs@datispars.com ارسال نمایید. از ارسال رزومه برای کار پاره‌وقت و یا پروژه‌ای پرهیز کنید. در حال حاضر فقط نیروی تمام‌وقت جذب می‌کنیم.

۱۳۹۴/۰۳/۰۳

همایش نرم‌افزارهای متن‌باز و جشن انتشار اوبونتو ۱۵.۰۴

هفدهمین همایش لینوکس و جشن انتشار اوبونتو ۱۵.۰۴

سلام دوستان،
مانند گذشته، با انتشار نسخه جدیدی از اوبونتو، قرار است هفدهمین همایش گنو/لینوکس شامل معرفی اوبونتو ۱۵.۰۴ و ابزارهای مرتبط با نرم‌افزارهای آزاد و متن‌باز را برگزار کنیم. آخرین همایش حدود آذر ماه ۱۳۹۳ برگزار شد که من در آن کارگاهی با عنوان شروع کار با Java و MySQL داشتم.
این‌بار قرار با همکاری بچه‌های بسیار خوب شاخه دانشجویی ACM (انجمن علمی کامپیوتر دانشگاه تهران) و همت و کمک شما دوستان یک همایش پر محتوا برگزار کنیم.

برنامه های همایش

همایش شامل دو بخش کارگاه‌ها و ارائه‌ها است. تاکنون برگزاری ۹ کارگاه، ۴ ارائه، یک سخنرانی و بخش اخبار  قطعی شده است. کارگاه‌ها به صورت همزمان برگزار خواهند شد. در نتیجه امکان ثبت‌نام و حضور در دو کارگاه وجود ندارد. در زیر فهرست برنامه‌های این دوره از همایش را مشاهده می‌فرمایید.

هفدهمین همایش لینوکس و جشن انتشار اوبونتو ۱۵.۰۴
هفدهمین همایش لینوکس و جشن انتشار اوبونتو ۱۵.۰۴

کارگاه‌ها

  1. کارگاه golnag -  فرود غفوری
  2. کارگاه رزبری‌پای - امیرحسین گودرزی
  3. کارگاه فایروال - ایمان همایونی و محمد ورمزیار
  4. کارگاه صفر تا صد اوبونتو - دانیال بهزادی
  5. کارگاه لاراول - گروه کاربران لاراول تهران
  6. کارگاه روبی آن ریلز - سمیر رحمانی و بهنام احمدخان بیگی
  7. کارگاه node.js - مهدی دهقانی
  8. کارگاه map reduce - دکتر بشیر سجاد
  9. کارگاه شروع سریع با VyOS - مهدی سرمدی

ارائه‌ها و سخنرانی‌ها

  1. سخنرانی عمومی - محمد تشکری
  2. داده انبوه (Big Data) - امیر صدیقی
  3. راه اندازی کسب و کار - دکتر بهراد غیاث الدین
  4. ده سال اوبونتو - ایریکس اسماعیلی
  5. اخبار - جادی
  6. اوبونتو تاچ - دانیال بهزادی

چطور در همایش حضور پیدا کنیم؟

شرکت در این همایش برای عموم علاقه‌مندان آزاد و رایگان است! تنها کاری که باید انجام بدهید ثبت‌نام جهت حضور در جشن است. برای ثبت‌نام به سایت همایش لینوکس و نرم‌افزارهای متن‌باز مراجعه کنید.
زمان: پنج‌شنبه، ۷ خرداد ۱۳۹۴ از ساعت ۸:۳۰ صبح
مکان: تهران - خیابان کارگر شمالی - بالاتر از خیابان جلال آل احمد - دانشکده‌ی فنی دانشگاه تهران

اطلاعات بیشتر

برای اطلاعات بیشتر می‌توانید به پیوندهای زیر مراجعه نمایید:

به امید دیدار شما در همایش :)

۱۳۹۴/۰۲/۲۰

راهنمای تکمیلی گیت (Git)

Git - گیت

مقدمه

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

مهم‌ترین کارها بعد از نصب گیت

قبل از هر چیز اگر راهنمای کاربردی git را تاکنون مطالعه نکرده‌اید، مطالعه نمایید!

ثبت مشخصات فردی

قبل از شروع به فعالیت و کامیت کردن کدها لازم است تا مشخصات فردی خود را در گیت لوکال خود ثبت نمایید. برای ذخیره نمودن نام و ایمیل خود از دستورات زیر استفاده نمایید. فراموش نکنید که مقادیر صحیح را جایگزین مقادیر پیش‌فرض نمایید:
$ git config --global user.name "YOUR NAME"
$ git config --global user.email YOUR_EMAIL

این مقادیر در فایلی با نام .gitconfig در پوشه خانگی شما ذخیره می‌شوند.

تغییر ویرایشگر متن پیش‌فرض

ویرایشگر پیش‌فرض متن برای ثبت پیام‌های commit در محیط اوبونتو، ویرایشگر nano است. شما می‌توانید هر ویرایشگر متنی را جایگزین ویرایشگر پیش‌فرض نمایید. دستور زیر، ویرایشگر قدرتمند vim به عنوان ویرایشگر پیش‌فرض پیام‌های گیت ذخیره میکند:
$ git config --global core.editor vim

تنظیم عمومی برای عدم کامیت کردن فایل‌های متفرقه

فایل‌هایی وجود دارند که شما هرگز نیاز به کامیت کردن آن‌ها ندارید. به عنوان مثال فایل .DS_Store که توسط سیستم‌عامل Mac OS به صورت خودکار بعد از مشاهده هر دایرکتوری ایجاد می‌شود. یا فایل‌های نسخه پیشتیبان که معمولا به کاراکتر ~ ختم می‌شوند. برای جلوگیری از کامیت شدن اینگونه فایل‌ها، ابتدا باید یک فایل .gitignore عمومی ایجاد نموده و نام فایل‌ها (یا قالب نام) را در آن ذخیره نموده و در نهایت آدرس آن را با دستور git config در تنضیمات گیت ذخیره نمایید.
$ touch ~/.gitignore_global
$ echo ".DS_Store" > ~/.gitignore_global
$ echo "*~" > ~/.gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global

فعال کردن امکان نمایش رنگی خروجی‌های گیت

دستور زیر را برای فعال کردن نمایش رنگی و خواناتر خروجی های گیت (مانند دستور git log) در محیط خط فرمان اجرا نمایید:
$ git config --global color.ui true

در نهایت و بعد از انجام تنظیمات مورد نظر خود، می‌توانید با استفاده از دستور زیر فهرست تمامی تنظیمات ذخیره شده را مشاهده نمایید:
$ git config --list

معرفی چند مخزن رایگان برای آپلود پروژه‌ها

پیشنهاد می‌کنم تا جای ممکن پروژه‌های خود را (به صورت خصوصی یا عمومی) بر روی مخازن در وب آپلود نمایید. این مخازن می‌توانند بر روی سرور شخصی شما بوده و یا از سرویس های همگانی استفاده نمایید. شخصا پروژه‌های خصوصی خود را بر روی سایت bitbucket.org آپلود می‌نمایم. در زیر تعدادی از محبوب‌ترین سایت‌هایی را که سرویس همگانی برای git دارند را فهرست کرده‌ام:

ابزارهای گرافیکی برای کار با git

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

منابع