راهنمای کامل نصب و پیکربندی proxmox بر روی root server های Hetzner

 

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

بعد از ثبت‌نام و ارسال مدارک و خرید سرور با مشخصات ۸ هسته پردازنده و ۴۸ گیگابایت رم و ۲تا هارد ۲ترابایت و همچنین خرید یه سابنت یا زیرشبکه با رنج /۲۹ از اونا کارم رو شروع کردم.

بد ندیدم تا ریز مسائلی که بهشون برخوردم و راهنمای کامل نصب رو هم اینجا بنویسم تا شاید به درد یکی بخوره 🙂

اگه نمی‌دونین proxmox چیه باید بگم که یه ابزار تحت وب برای ساختن و مدیریت ماشین‌های مجازی روی یه سرور.

قدم اول نصب یه دبیان تر و تمیز

برای اینکار باید به پنل روبات لاگین کنیم و. سرور موردنظر رو انتخاب کنیم و به منوی rescue بریم و اول از dropdown گزینه linux و بعدش هم Radio button عبارت ۶۴bit رو انتخاب کنیم. این کار یه دبیان رو روی شبکه برامون لود میکنه که بتونیم باهاش هرچیزی که میخوایم رو نصب کنیم. بعد از زدن دکمه activate یادتون باشه که یه پسورد برامون generate می‌کنه که بهتره اونو سیو کنیم.

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

مرحله بعدی اینه که بریم به منوی reset و بعدش یه ریست به سرور بدیم.

این ریست باعث میشه که موقع بوت سرور روی مود rescue بوت بشه. البته لازم به ذکر هست که اگه برای اولین بار هست سرور رو میخرین، سرور روی این مود قرار داره.

بعد از اتصال به سرور با کمک ssh یعنی با کمک دستور زیر:

به سرور وصل می‌شیم. مهندس‌های هتزنر یه ابزاری نوشتن به اسم installimage که به کمک اون میشه انواع سیستم‌عامل‌ها رو روی سرور نصب کرد.

قدیم (یعنی حدود دوهفته قبل از نوشتن این مقاله) یه بخشی توی installimage وجود داشت به اسم virtulization که توش هم proxmox بود و هم coreOS اما خب الان رفتن توی زیرشاخه other و یادتون باشه که به‌هیچ‌وجه درست کار نمیکنن و ازشون استفاده نکنین.

بهترین کار انتخاب Debian هست. بعد از انتخاب Debian یه منوی جدید باز میشه که میگه نسخه دبیان رو انتخاب کنید که ما jessie رو انتخاب می‌کنیم.

بعد از اون یه ادیتوری باز میشه که میگه تنظیمات دلخواه‌هت رو انتخاب کن.

ازاونجایی که من دوتا هارد دوترابایت داشتم، موقع نصب زدم که نوع RAID من ۱ باشه.

یعنی که هردوتاهارد میرور باشن تا اگه یکیش پرید، دیتا من نپره :))

به بوتلودر و SWRAIDLEVEL هم دست نزدم. اما HOSTNAME رو هاست‌نیمی که میخوام زدم مثلاً زدم Goodarz-Server.

مرحله بعد نوبت به پارتیشن‌بندی بود.

به صورت زیر من پارتیشن‌بندی کردم:

اما خب این به چه معناست:

این یعنی که اول میاد یه پارتیشن ۴ گیگابایتی غیرLVM می‌سازم و فرمتش رو هم می‌زارم ext4 و روی /boot متصلش می‌کنم.

بعد از اون دوتا ولیوم گروپ LVM با حجم ۴۲۰ گیگ و all که یعنی هرچقدر باقی‌موند می‌سازم.

یه روت ۱۰۰ گیگابایتی با فرمت ext4 و یه سواپ ۲۰ گیگی یه پارتیشن ۳۰۰ گیگابایتی روی /backup برای نگهداری بک‌آپ هام می‌سازم.

بعد ولیوم گروپ دومی که ساختم و تمام فضای باقی‌مونده رو بهش دادم رو هم رو هم روی /var/lib/vz که محل اصلی نگه‌داری ایمیل‌ها و تنظیمات پروکسموکس هست انتخاب می‌کنم و تمام فضای vg1 که ولیوم گروپ دوم ما هست رو هم. بهش اختصاص می‌دم

پس شد یه روت ۱۰۰ گیگی، یه بوت ۴ گیگی، یه بک‌آپ ۳۰۰ گیگی، یه سواپ ۲۰ گیگی و یه پارتیشن هم حدود ۱ گیگ و نیم برای /var/lib/vz

خط آخر یعنی image رو هم دستکاری نمی‌کنیم. کل پیکربندی رو به شکل زیر میشه خلاصه کرد:

با زدن f10 و ذخیره کردن پیکربندی مراحل نصب رو پیش می‌ریم تا نصب تموم شه و بهمون بگه که ریست کنیم.

بعد از ریبوت، به سرور ssh می‌زنیم مجدداً با یوزر روت و پسوردی که موقع rescue برامون درست کرده بود.

وارد که شدیم ترجیح براین هست که ابتدا ipv6 غیرفعال بشه تا فرایند نصب بسته‌ها سریع انجام بشه.

لذا فایل /etc/syctl.conf روباز می‌کنیم و. این دوخط رو تهش اضافه می‌کنیم:

با زدن

تنظیمات رو اعمال می‌کنیم.

حالا لیست مخازن و بعد از اون بسته‌ها رو هم آپدیت می‌کنیم:

تا اینجا ما روت سرور رو به طور کامل کانفیگ کردیم. مرحله بعد نصب proxmox هست.

نصب proxmox

ابتدا باید مخازن proxmox رو به مخازن دبیان اضافه کنیم. پس فایل/etc/apt/sources.list روباز می‌کنیم و این خط رو بهش اضافه می‌کنیم:

بعدش کلید مخازن رو اضافه می‌کنیم:

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

حالا وقت نصب کرنل و کرنل هدرها هست 🙂

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

حالا با دستور reboot سیستم‌عامل رو ری‌استارت می‌کنیم تا با کرنل جدید بوت بشیم.

وقتی فرایند بوت انجام شد با دستور زیر proxmox رو نصب می‌کنیم:

خب بعد از نصب proxmox از طریق آدرس https://ip:8006 در درسترس خواهد بود. با زدن یوزرنیم روت و پسورد روت سرور اصلی لاگین کنین.

پیکربندی شبکه

الان که دارم اینو می‌نویسم، خون داره از انگشتام می‌چکه و یه حسی بهم میگه که امیر بیخیال نوشتن بشو :))

ولی خب می‌نویسم.

قبلاً گفتم که من یه سابنت از هتزنر گرفتم با مشخصات زیر

 

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

پس طبق منطق من ۶ تا دونه آی‌پی دارم که می‌تونم ازشون برای ساخت ۶ تا ماشین مجازی و یا کانتینر استفاده کنم.

قبل از هرچیزی چندتا پیشرفرض رو باید داشته باشیم.

MAIN IP منظور آی‌پی سرور اصلی هست

MAIN NETMASK منظور netmask آی‌پی سرور اصلی هست که از طریق بخش IPs توی پنل روبات قابل پیدا کردن هست

MAIN GATEWAY که منظور گیت‌وی آی‌پی سرور اصلی هست

MAIN NETWORK که اولین آی‌پی سابنت آی‌پی اصلی‌مون هست.

SUBNET’1 IP اولین آی‌پی سابنت

SUBNET’2 IP دومین آی‌پی سابنت

و الی آخر تا

SUBNET”6 IP آخرین آی‌پی سابنت

یادتون باشه که این مقادیر رو با اونی که از روبات گرفتین باید تعویض کنین 😛

برای کانفیگ سرور اصلی اول فایل /etc/network/interfaces روباز کنین.

با محتوای بخش eth0 که کارت شبکه سیستم هست کاری نداریم

یه بخش اضافه می‌کنیم برای کارت شبکه مجازی ما که قراره کار bridge رو روی VM (ماشین مجازی) انجام بده.

کل کانفیگ ما به این شکل درخواهد اومد.

فایل رو ذخیره می‌کنیم و با زدن دستور زیر شبکه سرور رو ری‌استارت می‌کنیم:

اگه ایرادی نشون نداد یعنی که ما همه چیز رو درست رفتیم و اگه نشون داد باید برطرفش کنیم (همچین جوادخیابانی طور گفتم :)))

ساخت اولین ماشین مجازی

قبل از هرکاری لازمه که ما ایزوی توزیع مورد نظرمون که اینجا من از اوبونتو استفاده کردم رو روی proxmox قرار بدیم.

دو راه برای این‌کار وجود داره.

روش اول:

وارد پنل proxmox بشید و از طریق منوی سمت چپ رو بروی Contents روباز کنین. یه بخشی براتون باز میشه آپلود رو بزنین و ایزوی اوبونتو یا دبیان یا سنت‌اواس رو که قبلاً دانلود کرده بودین از اینجا آپلود کنین و منتظر بمونین کلیک کنید.

روش دوم:

توی سرور به دایرکتوری /var/lib/vz/template/iso برید و از طریق لینک مستقیم ایزوی اوبونتو سرور مثل این و ابزار wget ایزو رو روش دانلود کنین.

حالا وقتشه که ماشین مجازی رو بسازیم.

از منوی بالا سمت راست گزینهٔ Create VM رو می‌زنیم.

اسم و ID براش انتخاب می‌کنیم. توی تب OS

توی تب CD/DVD گزینهٔ

مرحله بعدی به اندازه نیاز فضا براش انتخاب می‌کنیم.

بعدش به اندازه کافی CPU و بعد از اون هم رم به اندازه نیاز بهش اختصاص میدیم.

اما اصلی ترین‌بخش شبکه‌ست.

Bridged mode رو انتخاب می‌کنیم و VLAN Tag رو خالی می‌زاریم اما از بخش Bridge vmbr0 رو انتخاب می‌کنیم. Model رو هم VirtIO انتخاب می‌کنیم و میریم مرحله بعدی و finish رو می‌زنیم.

منتظر میشیم تا سرور ساخته بشه. بعد از ساخته شدنش انتخابش می‌کنیم و start رو می‌زنیم و بعد از اون روی دکمه console کلیک می‌کنیم تا یه پنجره VNC برامون باز شه تا بتونیم سیستم‌عامل رو نصب بکنیم.

تمام مراحل نصب رو میریم جلو اما باید یادمون باشه که موقع نصب و در بخش تنظیمات شبکه باید گزینه install without configuring network رو بزنیم. مراحل نصب رو پیش میریم و می‌زاریم که نصب تموم شه.

بعد ریبوت می‌کنیم.

وقتی که سیستم‌عامل اومد بالا فایل /etc/network/interfaces روباز می‌کنیم و محتویات زیر رو داخلش وارد می‌کنیم:

dns-nameserversهایی که میبینین توسط خود هتزنر ارائه شده و برای اینکه شبکه به خوبی کار کنه باید وجود داشته باشن.

ماشین مجازی رو ریبوت می‌کنیم و الان با نصب openssh-server میشه بهش ssh داشت و همه چی اوکی هست.

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

اما اگه نخوایم از ماشین مجازی استفاده کنیم و بخوایم از containerها استفاده کنیم چی؟

اگه نمیدونین فرق بین container با ماشین مجازی چیه بهتره گوگلش کنین.

منم اگه بتونم یه روز در موردش می‌نویسم.

پیکربندی Container

وارد پنل proxmox بشید و از طریق منوی سمت چپ رو بروی Contents روباز کنین. یه بخشی براتون باز میشه templates رو بزنین و براساس نیازتون یه temlpate انتخاب کنین و Download رو بزنین.

بعد از اتمام از منوی سمت راست بالا Create CT رو بزنین.

براش اسم، آی‌دی و پسورد و یا کلید عمومی ssh رو وارد کنین، اگه لازمه و امنیت مهمه براتون تیک Unprivileged container رو بزنین تا دسترسی روت رو ببنده.

تب بعد Template اون تمپلیتی رو که دوست دارین انتخاب کنین، تب بعدی فضای ذخبره سازی تب بعدش میزان سی‌پی‌یو و بعد از اون هم رم رو انتخاب کنین.

توی تب شبکه تنها بخشی که باید تغییر کنه بخش IPv4 هست که یه آی‌پی از سابنت انتخاب کنین و توی IPv4/CIDR بنویسید و تهش یه /۳۲ بزارید. مثلا:

۱۹۲٫۱۶۸٫۱٫۱۰۰/۳۲

توی بخش Gateway هم آی‌پی سرور اصلی رو وارد کنین و. IPv6 رو هم روی DHCP بزارین و در صورت نیاز DNS روکه تب بعدی هست پرکنین و بعدش finish رو بزنین.

container شما بدون هیچ مشکلی بالا میاد.

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

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

 

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

دیدم که یه سری از آی‌پی‌ها بهشون مک آدرس داده شده که خب نباید این‌طور باشه و دقیقاً هم همون آی‌پی‌هایی بودن که باهاشون مشکل داشتم و دیدم که آی‌پی هایی که وصل هستن جلوی HWaddress زده [Incomplete]

سرور رو ریبوت کردم، درست شدن. :))

جشنواره روز آزادی نرم‌افزار ۱۳۹۵

جشنواره روز آزادی نرم‌افزار جزو معدود روزهایی هست که تمام سال من منتظرش هستم.

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

 

امسال هم این جشنواره روز ۸ مهر ۱۳۹۵ در دانشگاه شریف برقرار هست در دو بخش عمومی و کارگاه‌ها.  اگه موضوعی برای ارائه دارین حتماً از طریق سایت اون‌رو ثبت کنین 🙂

راستی اینم از سایت جشنواره

اینم از فرم ارسال مقالات

مقالاتی هم که ارسال شدن ، از اینجا در دسترس‌ هستن

مهلت ارسال موضوع‌ها برای بخش ارائه‌ها یا کارگاه‌ها هم تا روز ۳۱ شهریور هست.

راستی یادتون نره که بخش معیارهای سنجش علمی ارائه‌ها رو هم حتماً مطالعه کنین.

 

به امید دیدار شما در ۸ مهر ۱۳۹۵ در جشنواره روز آزادی نرم‌افزار

با آردوینو شروع به‌کار کنیم

امروز ، دوست خیلی دوست‌داشتنی و خوبم (با اینکه تاحالا حضوری ندیدمش :)) ) بهم گفت که می‌خواد با آردوینو شروع به کار کنه و ازم کمک خواست تا بهش راه نشون بدم تا با آردوینو شروع به کار بکنه

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

قبل از هرچیزی باید به این نکته توجه کنیم :

آردوینو چیه ؟

آردوینو یک برد آزاد/متن‌باز با میکروکنترلر AVR هست.به غیر از معماری داخلی میکروکنترلر و خود میکروکنترلر AVR که شرکت سازنده‌ش یعنی Atmel اون رو آزاد (اگه نمی‌دونین آزاد یعنی چی باید بگم که آزاد اینجا یعنی شرکت سازنده شماتیک، دیاگرام ، نقشه‌ها و سورس‌کد‌های این میکروکنترلر رو با یه مجوزی مثل GPL در اختیار بقیه قرار بده) نکرده ، بقیه‌ی قسمت‌های برد مثل شماتیک و نقشه‌ی برد و … به صورت آزاد موجود هست. ، این برد برای راحتی کار با این میکروکنترلر و تعامل راحت باهاش ساخته شده .این مجموعه برد در اکثر نسخه‌هاش یه رابط یو‌اس‌بی یا مینی‌یو‌اس‌بی تعبیه شده(به جز نسخه‌ی mini pro و Lily Pad) تا راحت بهش برنامه بدیم و دردسر program کردنش رو با استفاده از این programmerها نداشته باشیم ( هوراااااااااااااااااااااااا)

برای نوشتن کد توی آردوینو دوتا نکته رو باید توجه داشت.

اول اینکه باید از نرم‌افزار خودش یعنی Arduino IDE استفاده کرد .

دوم اینکه یکم هم لازمه که زبون سی بلد باشیم .(البته بعد از چندبار مرور سورس‌کدهای سمپل‌ش میشه ساختارش رو فهمید)

مزایا و معایب آردوینو

مزایا :

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

مزیت‌دیگه‌ش قیمت پایین‌ش هست.به نظر من اگه یه برد طراحی کنیم و ببریم برای چاپ و … هزینه‌ش بیشتر از آردوینو میشه

مزیت بعدی‌ش منابع آموزشی و مستندات زیادی هست که براش درست شده (یه نمونه‌ش این سایت باحال)

 

اما معایب:

زبونی که باهاش باید بنویسین یه زبون شبه سی هست و خب یه سری جاها اذیت می‌کنه

محدودیت نسخه‌های میکروکنترلر (روی اکثر مدل‌های آردوینو AVR ATmega328p هست .سر یه کاری من لازم بود از Atmega64 استفاده کنم که این محدودیت آردوینو اذیتم می‌کرد)

 

از کجا آردوینو بخرم ؟

اگه در شهری غیر تهران زندگی می‌کنین دو راه دارین ، اول اینکه از یکی از فروشگاه‌های آفتاب‌رایانه ، جهان کیت و یا این استفاده کنین و یا اینکه برید و توی شهرتون اون مرکزی رو که این جور برد‌ها رو می‌فروشه رو تهیه کنین.البته خرید از این فروشگاه‌ها ممکنه چند روز هم طول بکشه.

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

این رو هم اضافه کنم که اونجا دوتا پاساژ نسبتا مطرح می‌بینین، پاساژ امجد و پاساژ عباسیان.

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

(یه تجربه‌ی بد من خرید چند تا قطعه و ابزار از چند فروشگاه مختلف توی امجد بود که متاسفانه خراب بودن و فروشنده‌ها حتی حاضر به تست و پس‌گرفتن اجناس‌شون نبودن ، چه برسه به اینکه قبول کنن خراب هست و… )

آردوینو قیمت‌ش چقدره ؟

این بستگی به مدل آردوینویی که خریداری می‌کنین داره .

دو – سه مدل نسبتاً پرطرفدار توی ایران ، مدل‌های Uno (که عکس رو بالای صفحه می‌بینین) و Micro pro و Mini Pro هست .

 

در مورد مزایا‌ی و معایب این سه برد جلوتر توضیح میدم .

مدل Uno که مدل مورد‌علاقه‌ی من هست ،‌قیمتش از ۱۷ هزار تومن هست تا ۳۴ هزار تومن

۱۷ هزارتومنی‌ش ، نوع میکروکنترلر‌ش SMD هست .درنتیجه اگه میکروکنترلر ایراد پیدا بکنه باید برد رو بندازیم دور (یا اینکه با بدبختی بیشتر :)) بریم و میکروکنترلر‌ش رو عوض بکنیم )

 

نسخه‌ی Arduino

نسخه‌ی Arduino

مدل‌۳۰-۳۴ هزار تومنی‌ش میکرو‌کنترلر‌ش خیلی راحت عوض میشه و بدون دغدغه اگه میکروکنترلر ایراد پیدا کرد ، عوض‌ش میشه کرد

مدل مینی پرو هم قیمتش ۱۷-۱۸ هزار تومن هست.مزایای این نسخه سایز خیلی کوچیک‌ش ( در حد دو بند انگشت) هست.این رو باید در نظر داشت که برای پروگرم کردن این نسخه باید یه تبدیل USB to TTL هم به قیمت ۱۰-۱۲ هزار تومن بخرید

مبدل USB به TTL

مبدل USB به TTL

مینی‌پرو

مینی‌پرو

پرو میکرو

پرو میکرو

 

مدل میکرو پرو هم قیمتش حدود ۲۰ هزار تومن هست.اندازه‌ی کوچیکی داره و از رابط مینی‌یو‌اس‌بی استفاده می‌کنه

من خودم به شخصه آردوینو Uno  رو بیشتر دوست دارم. چرا؟

چون:

کدوم نسخه‌ی آردوینو مناسب من هست ؟

من خودم طرفدار پر و پا قرص Uno هستم.رابط یو‌اس‌بی داره .خروجی‌هاش مشخص هستن و راحت می‌تونم ازش هرجا دلم بخواد استفاده کنم.برد‌های توسعه و شیلد‌های نسبتا خوب و ارزونی داره (مثلا شیلد ال‌سی‌دی کارکتری ۲*۱۶ قیمتش ۱۰-۱۲ هزار تومن هست که اگه بخوام ال‌سی‌دی رو جداگونه بخرم همین قیمت رو باید پول یه ال‌سی‌دی بدم.تازه کلی هم باید بیام یه برد درست کنم تا ال‌سی‌دی که خریدم رو باهاش کار کنم .هلو برو تو گلو .همه‌چی نسبتا خوب و آماده در دسترس هست برام

شیلد ال‌سی‌دی و کیبورد

شیلد ال‌سی‌دی و کیبورد

بدی که Uno داره اینه که سایزش نسبت به میکرو و مینی‌پرو یکم بزرگ هست (اندازه یه کارت اعتباری )

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

مزیت میکرو نسبت به مینی‌پرو داشتن یه پورت یو‌اس‌بی برای پروگرم کردن هست

نرم‌افزارArduino IDE

برای پروگرم کردن آردوینو ، لازم هست که از نرم‌افزار Arduino IDE استفاده کنین.این نرم افزار یه محیط کاملاً بدرنگ داره :))

توی منوی file  و منوی examples می‌تونین کلی سمپل کد ببینین .

برای آپلود کدتون روی آردوینو هم بعد از اینکه کد رو نوشتین و آردوینو رو به کامپیوتر وصل کردین و درایور (البته اگه ویندوز استفاده می‌کنین باید درایور نصب کنین :)) ) رو نصب کنین و دکمه‌ی فلش رو بزنین و منتظر باشید تا فرآیند تموم بشه.

 

Arduino_1.0_IDE,_Ubuntu_11.10

منابع آموزشی

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

سه تا کتاب یعنی کتاب Beginning C for Arduino و Getting Started with Arduino و Arduino Workshop هم هستن که من این کتاب‌هارو خیلی دوست دارم .می‌تونین لینکی که به کتابا دادم رو دنبال کنین تا دانلودشون کنین

مورد بعدی هم یه کورس آموزشی هست که از این لینک می‌تونین اونو از تورنت دانلود کنین .

 

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

🙂

git logo

راه‌حل همگام سازی دو مخزن در گیت

سلام

 

اخیراً داریم به همراه دوستای خوبم یه پروژه‌ای رو ران می‌کنیم که تا حالا اسمش کادوپیچ رو گذاشتیم روش (که صد البته قراره عوض بشه اسمش )

 

توی این پروژه ، لازم بود که روی دوتا ریپوزیتوری یا مخزن گیت هم‌زمان sync (همگام سازی) باشیم(اگه نمی‌دونین گیت چی هست ویکی‌پدیا بهترین جاست برای اینکه بفهمین گیت چی هست و VCS ها چیا هستن ).یه مخزن برای دیپلوی کردن روی Heroku و مخزن دیگه روی گیت‌لب برای مدیریت دسته‌جمعی کدهای پروژه و کدهایی که اعضای تیم‌ می‌نویسن و …

کاری که باید می‌کردم من این بود که با هربار push کردن ، روی هردوتا سرور اطلاعات push می‌شد.(اگه کارکردن با گیت رو بلد نیستین پیشنهاد می‌کنم حتما یکی دوروز روش وقت بزارین تا یادش بگیرین.خیلی خیلی باحاله 🙂 )

با یکم سرچ به این وب‌لاگ رسیدم که مطلب خوبی در این مورد نوشته بود که منم بد ندیدم بیام و اون مطلب رو با زبون فارسی دوباره منتشرش کنم 🙂

قبل از هرکاری باید بگم که اسم مخزن رو با عبارت PROJECT تعویض کردم.موقع استفاده یادتون باشه که اسم‌ها رو درست کنین 🙂

اول از همه توی دایرکتوری پروژه کافیه عبارت زیر رو وارد کنین و خروجی‌ش رو ببینین.

که خط اول دستوری هست که من توی Terminal وارد کردم و دو خط بعدی خروجی دستور هست

دایرکتوری PROJECT/.git/config هم اطلاعات مشابهی رو نشونم میداد

 

حالا با زدن دستور زیر به راحتی می‌تونم مخزن گیت‌لب رو اضافه کنم و دیتام رو به راحتی هم به heroku  و هم به گیت‌لب  push کنم

 

خروجی این دستور رو هم می‌بینیم

 

همم همه چیز به نظر اوکی هست منتها یه ایرادی هست

نمی‌تونم چیزی رو از گیت‌لب بگیرم 🙁

یعنی نمی‌تونم pull کنم

خب حالا باید چیکار کنم ؟

همم باید اطلاعات هردوتا ریموت سرور رو اضافه کنم

چجوری ؟

این‌جوری :

با بررسی خروجی دستور زیر باید دید همه‌چیز درست شده یا نه

 

به نظر همه چیز درسته 🙂

بهتره فایل config توی PROJECT/.git/config رو هم بررسی کنیم :

 

خب این فایل هم درست داره کار می‌کنه

بعد از pull کردن هم به هیچ مشکلی برنخوردم

خداروشکر همه چیز درسته 🙂

 

همین:)

laptop and notebook and coffee

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

آخرین پستی که من اینجا نوشتم ،‌مربوط به آبان ماه میشه .یعنی ۴ ماه پیش

خیلی خجالت آوره که کسی که نوشتن رو دوست داره ۴ ماه چیزی ننویسه .۴ ماه !!!!!

داشتم با خودم فکر می‌کردم که چه دلایلی باعث شده که من ۴ ماه چیزی ننویسم و خب بهترین جا برای اینکه این دلایل رو بررسی کنم همین‌جا بود 🙂

اما این دلایل ( که به صورت سوال برای خودم مطرح کردم )چی بود :

 

۱) سرم شلوغ بود؟ :

حالا که با دقت می‌بینم این مدت سرم بسیار شلوغ بود ، اما این شلوغ بودن یعنی که هیچ وقتی نداشتم ؟؟؟؟

خب معلومه که نه !  اگه روزی نیم ساعت از زمان‌هایی که هدر میدم رو کنار بزارم ، می‌تونستم حداقل هر دو الی سه روز یک پست بزارم!!!

پس مشکل از کجا بود ؟ مشکل از این بود که برنامه‌ی مشخصی برای نوشتن نداشتم .پس ازین به بعد باید برنامه مشخص  داشته باشم که بنویسم  🙂

 

۲) هدف داشتی ؟

قبلاً شاید نه .همین‌جوری می‌نوشتم .اما باید هدف مشخص پیدا کنم برای نوشتن‌م

مثلاً برای ارتباط دیگران با طرز تفکر‌م و یا اینکه اصلاً برای دل خودم بنویسم .

قبلاً شاید هدفی برای موضوعاتی که می‌نوشتم نداشتم .اما خب الان باید تغییر کنم .

هدف داشتن و هدف‌دار نوشتن رو هم باید بزارم تو برنامه‌م

 

۳) توی سوشال نتورک‌ها فعال هستی ؟

 

خب آره .از توییتر و فیس‌بوک بگیر تا اینستاگرام و غیره فعال‌ هستم .

عموماً میکروبلاگ‌هایی مثل توییتر رو بیشتر از بقیه استفاده می‌کنم.توی توییتر هر ایده‌ای رو که به ذهنم میرسه رو خیلی سریع توییت می‌کنم .

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

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

 

۴) تنبلی چطور ؟

خب آره :))

تنبلی هم بی‌تاثیر نبوده .عموماً برای نوشتن هر پست کم کم ۱ ساعت وقت صرف می‌کنم .و خب کی حال داره یک‌ساعت بشینه و بنویسه ؟:))

بیایم یه‌کاری بکنیم .تنبلی رو بزاریم کنار و بیشتر بنویسیم .

 

۵) انگیزه چی ؟

آره بی‌انگیزه هم شده بودم .اوایل سوال می‌پرسیدم از خودم که برای کی بنویسم ؟ چرا بنویسم ؟

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

 

۶) دیگه چی ؟

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

 

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

پس باید سعی کنم هرروز بیشتر از این بنویسم .

اینا نظرات من بود .نظر شما در این مورد چیه ؟

 

 

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

وقتی که سانسور …

خیلی وقت هست که از دو فونت Droid Arabic Naskh  و Droid Arabic Kufi  برای پروژه‌های خودم و پروژه‌هایی که با گروه فسفر همکاری دارم استفاده می‌کنم.(نمونه‌ی این فونت‌ها ،فونت همین بلاگ هست که از نسخ برای متن‌ها و برای تایتل‌ها (!) از کوفی استفاده کردم)

فونت‌های زیبا و عالی و بدون نقصی هستند که برای وب بسیار عالی بهینه‌شدن.

این دو سری فونت برای زبان فارسی و عربی ساخته‌شدن و از این پیوند در دسترس هستند.

 

داستان ازین‌جا شروع شد که ما برای استفاده ازین فونت‌ها از CDN خود گوگل استفاده می‌کردیم که هم بار دانلود و فراخوانی این فایل‌های استاتیک روی سرور ما نباشه و هم اینکه مطمئن باشیم حتی اگه فونت پاک شد باز هم ظاهر به هم نمی‌ریزه و زشت نمی‌شه . ما با فراخوانی عبارت زیر توی فایل css پروژه‌ها ازشون استفاده می‌کردیم.

 

همه چیز خوب و عالی بود تا اینکه دیروز تمام پروژه‌ها فونت‌شون رفت 😐

ما هم هاج و واج (!) مونده بودیم که چیکار کنیم .

فایل cssئی که به واسطه‌ی @import به فایل css خودم وارد کرده بودم رو باز کردم

عبارت‌ش این بود :

هیچ مشکلی تو این فایل نیست .پس مشکل از کجاست ؟

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

بامب !!!!!!!!!!!!!!!

 

با نهایت تاثر و تاسف ، آدرس فیلتر شده بود !!!!!!!و دلیل اصلی که نمی‌شد فونت‌ها رو دید فیلتر شدن دامنه بوده . 😐 😐 😐

تمام زیردامنه‌های مرتبط به gstatic.com که دامنه‌ی فایل‌های استاتیک گوگل‌(CDN) هست ، فیلتر شده .

یه مثال می‌زنم.نیک صالحی از نظر من یه سایت چرت و زرد و مزخرفه و نباید که باشه . اما از نظر یکی دیگه سایتی خوب و عالی و بدون مشکل و با محتوای خوب (!) و عالی (!)‌ هست. دو نفر مختلف با دو نظر مختلف و دو سلیقه‌ی مختلف …

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

به هر حال امیدوارم این یه امر سهوی باشه و اتفاقی و اشتباهی رخ داده باشه وگرنه باید تاسف خورد به حال اون کسی که تشخیص داده که CDN گوگل باید فیلتر شه و دسترسی کاربران ایرانی (!)‌باید ازش مسدود بشه .

 

همین !

 

پ.ن۱ : گویا الان مشکل حل شده و این دامنه فیلتر نیست 🙂 خدا رو شکر

دوست داشتم یک ربات بودم…

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

یه رباتی که بهش دستور می‌دادن و اون انجام میداد.

یه رباتی که هیچ حس و احساساتی نداشت .

یه رباتی که صفر و یک ازش میخواستی و صفر و یک بهت تحویل می‌داد.

یه رباتی که کارشو می‌کرد و بقیه رو اذیت نمی‌کرد.

بقیه رو تحت فشار نمی‌زاشت.

حداقل چیزی از دوستی حالیش نبود و پشت دوستش رو خالی نمی‌کرد.

حداقل بویی از انسانیت نبرده بود و ادعای انسانیت و خوبی نداره و کسی ازش چنین انتظاری نداره.

یه ربات که بدون دغدغه و دردسر برای خودش بره و بیاد

و از اونجایی که رباته ، رابطه بین بقیه رو به هم نمی‌زنه ، بقیه رو آزار نمی‌ده ، بقیه رو تو فشار روحی نمی‌زاره، بقیه رو ….

 

 

دوست داشتم یک ربات بودم.

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

 

 

 

پ.ن۱: وای بر ما انسان‌ها…

پ.ن۲: یکم باید تو رفتارامون تجدید نظر کنیم

همین

معرفی دوره AngularJS در CodeAcademy

کدآکادمی,انگولارجی‌اس,angularJS,codeAcademy,یادگیری,جاوا اسکریپتسایت کدآکادمی یکی از سایت‌های خوب برای یادگیری رایگان  برنامه نویسی (به خصوص برنامه‌نویسی وب)هست و من چندتا از کورس‌هاشو گذروندم و به شدت خوب و عالی هست.

 

از html/css و جاوا اسکریپت داره تا روبی و پایتون  🙂

 

شیوه‌ی آموزش‌ش هم به صورت تعاملی یا اینترکتیو هست .

این‌جوری که یه چیزی بهت میگه و ازت میخواد که به صورت آنلاین و آنی براش یه تمرین انجام بدی و در صورتی که تمرین‌ت درست باشه میری مرحله بعد.

 

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

اگه به یادگیری AngularJS علاقه دارید میتونین از طریق این‌ لینک اقدام به گذروندن این دوره بکنین.

 

من که خیلی خوشحالم که این دوره رو گذاشتن 🙂

 

این دوره رایگان هست .:)

 

حتمن توی این دوره شرکت کنین 🙂

من از چه اپلیکیشن‌هایی استفاده میکنم؟

به ذهنم رسید که لیست +یه کم توضیح در مورد اپلیکیشن هایی که استفاده میکنم رُ بنویسم.

مارکت:
من از مارکت‌های f-droid، که یه مارکت آزاد با نرم‌افزار‌های تمامن آزاد اوپن سورس هست،aptoideکه یه مارکت Third partyهست،  و گاهن از خود Google play استفاده میکنم.

چندرسانه‌ای:

برای پخش موسیقی از Apollo که یه پخش‌کننده موسیقی همه فن حریف آزاد هست و پخش کننده‌ی پیش‌فرض ساینوژن مود هست استفده میکنم.
Apollo از طریق مارکت‌های مختلف مثل f-droid قابل دریافت هست.

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

برای مدیریت فایل‌هام هم از CM file manager که فایل منیجر ساینوژن مود هست و همچنین از Ghost commander استفاده میکنم که از قضا جفتشون آزاد هست 😀

از focal هم برای عکاسی استفاده میکنم.

گاهی اوقات هم از VLC استفاده میکنم

اینترنت

برای مرور اینترنت از مرورگر فایرفاکس استفاده میکنم که کل گوشی رو میندازم پشت تور که به شکل درست‌ترش orbot هست(البته اگه وصل باشه) برای حفظ حریم شخصی‌م :دی

برای دریافت و ارسال ایمیل هم از اونجایی که من ۳ تا اکانت جی‌میل یک اکانت riseup.net(یه سرویس دهنده‌ی ایمیل که میگه ایمیل‌ها رو به کسی و شرکتی و سازمانی و دولتی نمیده) و یک اکانت با همین دامین دارم ،مجبورم که تمام ایمیل‌هام یه جا باشه تا برای مدیریتشون مجبور نباشم هی بین اپلیکیشن‌ها سوییچ کنم

گزینه‌ی مورد استفاده‌ی من k-9 mail هست که یه نرم‌افزار آزاد هست .

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

برای توییت کردن و همچنین استفاده از کوییتر از And Status استفاده میکنم که اینم میدونین که از طریق f-droid بزرگ قابل دریافته:)))

راستی از GigaGet هم به عنوان دانلود منیجر استفاده میکنم.

کتاب و کتاب‌خوانی
کتاب بخش اعظمی از زندگی منو تشکیل میده به خصوص E-Bookها درنتیجه لازمه که یه مدیریتی روی کتاب خوندنم داشته باشم.

برای کتاب خوندن من از moon+ reader استفاده میکنم که متاسفانه آزاد نیست و من هم نسخه‌ی پرو ی این نرم‌افزار رو پایریت‌طور استفاده میکنم 😀
برای مدیریت حساب goodreadsم هم از اپ آفیشیال خودشون استقاده میکنم.
همچنین برای مدیریت کتاب‌های خودمم هم از اپلیکیشن bookworm که به سادگی از f-droid قابل دریافت هست استفاده میکنم

Productivity

از اپلیکیشن A time tracker برای مدیریت زمان کارها و پروژه‌هایی که انجام میدم استفاده میکنم (یه جایگزین برای toggle هست اما متاسفانه قابلیت کلودبیس بودن تاگل رو نداره و کاملن لوکال هست)

برای مدیریت هزینه‌ها و خریدهام از اپلیکیشن budget استفاده میکنم.

از DroidWeight برای دنبال کردن تغییرات وزنم استفاده میکنم(چند وقتیه که جدی کاهش وزن رو شروع کردم)

از No stranger SMS هم برای بلاک کردن اس‌ام‌اس‌های ناشناس(همراه اول و ایرانسل مزخرف که هی اسپم می‌فرستن.بعدن در مورد این دوتا حرف خواهم زد) استفاده میکنم.

یه سری ابزار دیگه

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

این گوشه ها برای مدیریت رم و … از clean master و برای بهبود باتری از greenify استفاده میکنم

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

شما چی؟شما از چیا استفاده میکنین؟
آیا استفاده از نرم‌افزارهای آزاد استفاده کنیم در تلفن همراه و تبلتمون ایده خوبیه؟
منتظرم نظر شما رو هم بشنوم

Posted from WordPress for Android

دوره‌ی آموزشی یادگیری ماشین در Coursera

چند روز پیش میثم بهم لینک یه دوره آموزش یادگیری ماشین یا ماشین لرنینگ داد که Coursera گذاشته

بد ندیدم که اینجا هم منتشرش کنم با شما هم استفاده کنین.

لینک دوره

دوره هیچ محدودیت زمانی نداره

اگه سرعت coursera براتون کم بود میتونین از طریق این لینک ، از پایریت‌بی عزیز تورنت اون رُ دانلود کنین: لینک پایریت‌بی

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