سجاد ایوبی | برنامه نویسی، بلاک چین و دفاع از آزادی بیان

Menu

بروزرسانی زیرپوستی با code-push

پیشگفتار:

مشکلی که برای بروزرسانی اپ های موبایل وجود داره اینه که ما باید هر سری یک نسخه apk یا ipa رو بسازیم و بعد یک ورژن جدید تعریف کنیم و در نهایت بعد از یه مدت کوتاه نسخه بروز شده اپ ما در اختیار کاربران قرار میگیره. مشکل اینجا اینه که باید کلی زمان بگذره تا نسخه جدید منتشر بشه و به دست کاربر برسه.

ولی خب وقتی که اپ موبایلی که با react-native نوشته شده، میتونه با code-push ترکیب بشه و مراحل بروز رسانی اپ موبایلتون رو خیلی سریعتر کنید، بدون نیاز به قرار دادن نسخه جدید در فروشگاه اپ موبایل.

روش کار code-push

این ابزار که ساخت مایکروسافت هست کدهای جاوا اسکریپت و عکس های اپ شما رو توی سرورهای خودش ذخیره میکنه و هربار که اپ موبایل اجرا میشه با سرور چک میشه که تغییری اگه ایجاد شده فایل های جدید و دانلود میکنه و بعد توی اجرای بعدی اپ آپدیت جدید اعمال شده.
توجه داشته باشید که تغییرات عمده و اضافه کردن پلاگین های جدید به AppDelegate.m/MainActivity.java باید نسخه آپدیت شده اش رو انتشار بدید و از این طریق امکانپذیر نیست.

نصب code-push-cli

۱- ثبت نام

 

۲- اضافه کردن اپ به اکانت

 

** توجه کنید که بعد از این دستورات یک deployment key بهتون میده که باید به هم تیمی هاتون بدید (من هنوز نفهمیدم که چطوری میشه دوباره این کد رو چک کرد)

اضافه کردن code-push به اپ

۱- نصب ابزار

۲- لینک کردن

** در این مرحله از شما deployment key پرسیده میشه که توی مرحله قبلی باید اون ها رو داشته باشید و اینجا وارد کنید.

۳- اضافه کردن به اپ

** باید شما یک نسخه apk یا ipa از اپ منتشر کنید تا بتونید از code-push استفاده کنید.

۴- ایجاد تغییرات و ارسال کد جدید
** شما میتونید یه تغییر کوچیک توی دکمه یا متنی یا فرمی ایجاد کنید و بعد دستور زیر رو وارد کنید.

۵- دیباگ کردن

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

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

یک برنامه نویس خلاق و خوب چه شکلیه؟

مقدمه

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

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

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

 

برنامه نویس معمولی

کسایی که کدهای توی گیتهاب، stackoverflow و غیره رو با تغییراتی در پروژه خودشون قرار می دن و در آخر کاری رو که بهشون واگذار شده بود رو سر وقت تحویل می دند.

 

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


برنامه نویس خلاق

 

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

 

خلاق ها توی ساعت کاری:

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

هیچ وقت بیکار نیستند و همیشه کاری هست برای انجام دادن، برای مثال اونها درصورت نداشتن کار، مشغول Code refactoring یا افزایش Code coverage هستند.

 

خلاق ها موقع وقت آزادشون:

 

دائم مشغول یادگیری زبان، تکنولوژی و یا سرویس های جدیدی هستند که میتونه به پروژه شون کمک کنه و کارها رو ساده تر کنه.

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

حرف آخر

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

من آدم با استعدادی نیستم، من فقط بسیار کنجکاو هستم – انشتین

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

نظر شما چیه در مورد برنامه نویس خلاق؟

Flake8 چی هست و چرا باید استفاده کرد؟

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

linting دقیقا یعنی چه؟

به برنامه ای که کد ما رو آنالیز میکنه و خطاهای احتمالی رو پیدا میکنه، Linting نامیده میشه.

اولین برنامه ای که این کار رو کرد Lint بود و توی زبان C کار میکرد.

Linting آیا جزو واجبات هست؟

خب تقریبا میشه گفت آره، استفاده از اونا باعث میشه که

  • می تونیم syntax error، بد بون شکل ظاهری، غلط املایی ها و غیره رو بفهمیم
  • صرفه جویی در وقت
  • باعث میشه بازبینی کدهامون (review) راحت تر باشه برای هم تیمی هامون (بخاطر یک شکل بودن کدها)
  • سادگی استفاده
  • سادگی در راه اندازی اولیه
flake8 چی هست؟

خب یکی از ابزارهای linting در پایتون هست و توی کاروانرو ما از اون استفاده میکنیم.

نصب flake8 و روش استفاده

برای نصب کافیه با توجه به ورژن پایتونی که دارید نصب رو انجام بدید

برای استفاده از اون هم کافیه فقط توی ترمینالتون دستور زیر رو وارد کنید

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

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

تنظیمات flake8 برای ادیتورها:
ترکیب flake8 و git

فرض کنید که پروژه ای دارید فایل های زیادی داره و وقت و حوصله ویرایش فایلهای قدیمی رو ندارید ولی تصمیم دارید از این ابزار برای فایل های جدید استفاده کنید و یا شاید شما دوست داشته باشید که flake8 رو به Continuous integration اضافه کنید و از این به بعد همه باید از این ابزار استفاده کنند.

این کد کاری که انجام میده اینه که اول که فایل های جدید یا تغییر پیدا کرده رو از گیت میگیره و linting رو روی اونا انجام میده و اگه خطا داشته باشه نمایش میده.
شما کافیه این دستور shell رو هر بار قبل از کامیت کردن یا قبل از deploy کردن کدتون اجرا کنید.

شمارش در مدل

چطوری میشه تعداد سطرهای مدلمون رو شمرد؟

خب خیلی ساده با استفاده از:

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

برای تست من جدول customers رو با همین دستور اجرا کردم و زمان زیر رو بدست آوردم

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

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

منبع

معرفی سرویس جستجوی Aloglia

جستجو هوشمند و سریع با  Aloglia

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

روش کار Algolia:

روش کارکرد Algolia به این صورت هست که شما باید اطلاعاتی رو که مایل هستید در اون جستجو بشه باید  با استفاده از  RESTful JSON API به اکانت Algolia خودتون ارسال کنید. بعد از ارسال اطلاعات کافیه در سایت یا اپ خودتون با api ها اطلاعات رو با سرعتی بسیار عالی جستجو کنید.

یکی از علت های سریع بودن Algolia در استفاده از CDN های مختلفی هست که در مکان های مختلف دنیا قرار داده است.

مزیت Algolia به نسبت Elastic Search:

در وبلاگ Algolia  می‌تونید مقایسه این دو سیستم جستجو رو بخونید، من چند تا از نتیجه های تست رو برای شما قرار دادم .

algolia-performance

 

برای چه زبان‌هایی API Client داره:

algolia-apis

 

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

سایت مستندات Algolia

استفاده Algolia در لاراول:

کافیه که شما پکیج رسمی رو با composer نصب کنید

بعد از نصب به service provider اضافه ش کنید:

و بعد دستور زیر رو با php artisan اجرا کنید که فایل های این پکیج کپی بشه در کانفیگ‌هامون:

حالا config/algolia.php رو باز کنید و تنظیمات api key رو انجام بدید.

 

تا اینجا پکیج لاراول Algolia نصب شده و آماده به کار هست کافیه که Algolia رو در مدلی که می خواهید اطلاعات اون مدل قابل جستجو باشه استفاده کنید. توی مثال زیر مدل Contact رو برای جستجوی Algolia آماده کردیم

 

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

این پکیج بطور خودکار اسم مدل رو به عنوان اندیس یا index در نظر می گیره و در اکانت شما، اطلاعات مدل رو ارسال میکنه.

algolia-index-recds

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

عملکرد algolia در ۲۴ ساعت گذشته (سرویس Starter )و زمان های پاسخ :

algolia-data-reports

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

استثنا در middleware لاراول

استثنا در middleware لاراول:

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

کاری که قرار بود انجام بشه این بود که، یک بخش از سایت رو برای کاربران مهمان نمایش باز باشه و نیازی به لاگین بشه، به زبان ساده تر، من باید کاری کنم که وقتی متد ‘showToGuest’ اجرا شد بتونه middleware auth رو دور بزنه و مجوز عبور داشته باشه.

برای ایجاد این چنین استثناهایی کافیه شما در کنترلرتون از روش زیر، در construct استفاده کنید:

در این مثال ما توی تابع construct مشخص می کنیم که یک استثنا در این کنترلر داریم متد middleware دو تا ورودی گرفته، که اولین ورودی مربوط به نام middleware هست که قرار ما از اون عبور کنیم و ورودی دوم متدهایی هست که مجوز عبور دارند، که می تونه بیش از یک متد باشه، توجه داشته باشید که باید نام متد وارد بشه نه URL [ کاری که من در ابتدا کرده بودم 😐 ].

حالا هربار showToGuest فراخوانی بشه بدون هیچ مشکلی از middleware عبور می کنه.

 

you_shall_not_pass_by_entroz-d5gjs4j

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

یکی از کارهای این هفته من نوشتن ماژول ارسال ایمیل به ۳۰۰۰ تا ۵۰۰۰ کاربر می‌شد، برای همین تصمیم گرفتم که مراحل این کار ساده رو بصورت یک پست در وبلاگم قرار بدم.

برای حل مساله از queue لاراول استفاده کردم، حالا اگه سوال براتون پیش اومده صف چی هست با یک مثال براتون می گم:

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

Queue هم همین طور کار می کنه که شما یکسری وظایف بهش می دید و صف تک تک کارها رو انجام می ده.

برای تنظیم صفی که می خواهید استفاده کنید باید در فایل env در مقابل متغیر QUEUE_DRIVER یا در فایل config/queue.php مشخص کنید.
بطور پیش فرض لاراول از sync استفاده میکنه که یعنی بصورت همزمان کارها انجام می شه و صفی نیست و بیشتر برای سیستم های لوکال کاربرد داره و در حالت واقعی باید یکی از سیستم های زیر رو استفاده کنید.

 

پکیج مورد نیاز

نام صف

استفاده از دیتابیس بعنوان صف

DataBase

aws/aws-sdk-php 3.0

Amazon SQS

pda/pheanstalk ~3.0

Beanstalkd

iron-io/iron_mq ~2.0|~4.0

IronMQ

predis/predis 1.0

Redis

من از سرویس SQS آمازون استفاده کردم که یکی از بهترین سرویس‌های آمازون هست، ولی در نهایت همه این سیستم‌ها یک کار مشابه برای ما انجام می‌دهند.

در این بخش من فرض می‌کنم که لیست ایمیلی از کاربران به طول ۳۰۰۰ ایمیل آدرس از دیتابیس دریافت کردید و برای کم کردن خطاها و مشکلات باید این لیست به لیست های کوچکتر ۱۰۰ تایی تقسیم کرد تا به خطای time out بر نخوریم.

در فایل route.php برای تست کدهامون، آدرس زیر رو وارد می کنیم:

فایل کنترلر

در خط‌های ۱۵ تا ۱۸ آرایه خودمون رو ۱۰۰ تایی تقسیم کردیم هر چند راه های زیادی برای تقسیم آرایه هست که می تونید به stackoverflow مراجعه کنید و راه‌های پیشنهادی دیگه رو ببینید.
در خط ۲۳ متد queue رو استفاده کردیم، در ورودی اول فایل view رو مشخص میکنیم که در اینجا emails.template رو وارد کردیم و یک متغیر به نام text که در فایل view میتونیم به text$ از اون استفاده کنیم، در مرحله بعد باید فرستنده و گیرنده ایمیل مشخص بشه که در یک تابع closure قرار می‌دیم.
برای مشخص کردن فرستنده ایمیل از متد message->from$ استفاده کردیم و همون طور که مشخصه subject برای عنوان ایمیل و در نهایت من از bcc استفاده کردم جهت احترام به مشتری ها!

خب حالا وارد آدرس http://example.com/email/sendemail بشید با این کار ایمیل ها وارد صف می شن، ولی خب باید به لاراول دستور اجرای صف رو بدیم، یعنی تا اینجا ما سفارش پیتزا رو دادیم و نیاز داریم که دستور پخت پیتزا رو به آشپز بدیم، برای اجرای دستور شروع پخت چند کار میشه کرد.

راه ساده استفاده از دستور

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

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

در فایل app/Console/Kernel.php کد زیر رو وارد کنید

این دستور هر روز ساعت ۹:۴۵ دستور queue:listen رو اجرا می کنه.شما می‌تونید از cronjob هم استفاده کنید به این صورت که

Cron یک سرویس زمانبندی است که وظیفه اجرای روتین‌های خاصی را در زمان مشخص بر عهده دارد.

درباره cronjob بیشتر بدونید

برای راحتی کار می تونید از سرویس‌های ایمیلی مثل mailgun یا ‌mail chimp استفاده کنید که هر دو سرویس‌های رایگان در اختیار شما قرار میده و می‌تونید آمار خوبی از ایمیل‌هاتون داشته باشید که هر دو این سرویس‌ها توسط لاراول پشتیبانی میشه.

ساخت منوی داینامیک در لاراول با کمک service provider

یکی از راه های ساخت منو داینامیک (یا منوی ناوبری) در لاراول استفاده از View composer در Service providerهاست.
آشنایی بیشتر با، به زبان فارسی Service Provider
سایت رسمی لاراول Service Provider

برای ساخت منو ما باید اول Service provider خودمون رو با php artisan بسازیم:

فایل جدید در مسیر app/Providers ساخته شده، که نمونه فایل ما به این شکله:

حالا در متد boot دستورات زیر رو وارد می‌کنیم:

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

محتویات فایل header.blade.php ما به این صورت هست:

حالا برای اطمینان از لود شدن Service providerمون بهتره که دستور زیر رو توی ترمینال وارد کنیم:

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

با این کار هر بار که فایل header فراخوانی بشه به طور خودکار لاراول منوی سایتمون رو به فایل header.blade.php ارسال می‌کنه و دیگه نیازی نیست که توی کنترلر خودمون هر بار متغیری به header خودمون ارسال کنیم.

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

اگر شما مایل به استفاده از (CRUD (Create/Read/Update/Delete در پروژه خودتون هستید، پکیج rapyd می تونه بهترین گزینه برای شما باشه.

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

نصب Rapyd از طریق Composer :

بعد از نصب باید شما در فایل config/app.php به providers این خط رو اضافه کنید:

 

 

برای لاراول ورژن پایین تر از۵٫۱

 

 

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

تا اینجا پکیج rapyd برای لاراول نصب شد، حالا بریم سراغ چند مثال از چگونگی استفاده از rapyd .

پکیج rapyd برای نمایش دیتاها از DataGrid استفاده می کنه که برای نمونه، کدهای زیر قرار گرفته:

نمونه فایل show-grid.blade.php برای نمایش اطلاعات:

در نهایت خروجی کدهای ما به این صورت میشه:

DataGrid-ouput

همان‌ طور که مشاهده کردید برای نمایش یک لیست از فایل ها کافیه سه خط به فایل view خودتون اضافه کنید و بقیه کارها توسط پکیج Rapyd انجام میشه.

جهت ایجاد، ویرایش و حذف اطلاعات هم می‌شه از DataEdit استفاده کرد:

 

فایل view جهت نمایش فرم ویرایش:

در نهایت نتیجه کار:

DataForm-output

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

سایت دمو پکیج : rapyd.com/rapyd-demo
گیت هاب : github.com/zofe/rapyd-laravel

چطور با اوپن شیفت شروع به کار کنیم

اپن شیفت چیست؟

اپن شیفت، سرویس‌های بستر ابری (PaaS) هست بر پایه ردهت (Red Hat) که به برنامه نویسان این امکان رو میده کدهاشون رو سریع‌تر و راحت‌تر بروی سیستم‌های پردازش ابری گسترش بدهند.

اوپن‌شیفت برای چه کسانی مناسب هست؟

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

خلاصه امکاناتی که برای سرویس های رایگان قرار گرفته:

  1. امکان ساخت تا سه برنامه ( ماشین یا سرور مجازی)
  2. اختصاص ۱GB فضا برای هر برنامه
  3. قابلیت ssh به هر برنامه

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

چه سرویس هایی اپن‌شیفت ارایه میکنه؟

تقریبا همه چیز!

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

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

شروع کار با اپن شیفت:

ثبت نام  در سایت و ورود به کنسول کاربری

Openshift-signup

ساخت اولین نرم‌افزار در کنسول  که من Laravel 5.0 رو انتخاب کردم.

Openshift-services

در صفحه بعدی شما باید نام برنامه تون و آدرس سورس کد و در نهایت منطقه جغرافیایی برنامه تون رو مشخص کنید.

Openshift-setting

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

Openshift-apps

برای اتصال از طریق ssh به برنامه تون شما باید public key خودتون رو از طریق تنظیمات کنسول سایت وارد کنید.
برای ساخت یک  public key در لینوکس و مک می تونید دستورات زیر رو در ترمینال خودتون اجرا کنید:

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

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

 

در این مرحله ما باید کلید public خودمون رو وارد اپن شیفت کنیم، برای همین کار ابتدا وارد تنظیمات شده و سپس بروی دکمه Add a new key کلیک کنید.

Openshift-setting

در صفحه باز شده کلیدی که قبلا کپی کردید رو وارد و یک نام دلخواه وارد کنید.

Openshift-publickey-add

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

 

با کلیک بروی Want to log in to your application آدرس اتصال از طریق ssh برنامه تون رو مشاهده کنید.

Openshift-ssh-address

Openshift-ssh-sample