۶۵ مطلب با کلمه‌ی کلیدی «آموزش» ثبت شده است

آموزش قدم به قدم دپلوی کردن یک وب اپلیکیشن پایتونی با nginx و uwsgi در دبیان

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

  • از فریم‌ورک فلسک استفاده می‌کنید.در مورد جنگو هم البته داستان کمابیش همین هست.در مورد چری‌پای میتونید با همچین راهنمایی پیش برید یا از کارساز(سرور) وب خود چری‌پای به اسم چروت(cheroot) استفاده کنید.
  • از دبیان(یا توزیع‌هایی که بر پایه دبیان ساخته شدن مثل اوبونتو) و systemd استفاده می‌کنید.
  • میخواهید از انجین‌ایکس(nginx) به عنوان کارساز وب یا وب‌سرور استفاده کنید.
  • تنها از HTTP می‌خواهید استفاده کنید و برای سادگی کار فعلا HTTPS را کنار میگزارید.
  • قرار هست وب اپلیکیشن شما در ریشه قرار بگیرد.یعنی از طریق آدرسی مثل https://example.com/ قابل دسترسی باشد نه مثلا https://example.com/somepage

ادامه مطلب...
مجوز مطالب و محتوا ۱۷ شهریور ۰۰ ، ۱۱:۰۰ ۱ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

نظرات (۱)

محمد صادق عبداللهی

تنظیمات خاص برای هر نوع فایل در ویم(یا نئوویم)

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

ادامه مطلب...
مجوز مطالب و محتوا ۲۷ ارديبهشت ۰۰ ، ۰۹:۰۳ ۰ نظر موافقین ۲ مخالفین ۰
فاروق کریمی زاده

الگوریتم وارشال برای بدست آوردن بستار متعدی در زبان راست و پایتون

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

ادامه مطلب...
مجوز مطالب و محتوا ۲۴ ارديبهشت ۰۰ ، ۱۴:۲۸ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

آموزش مقدماتی git

گیت چیست؟

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

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

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

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

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

ادامه مطلب...
مجوز مطالب و محتوا ۰۱ ارديبهشت ۰۰ ، ۲۲:۲۰ ۰ نظر موافقین ۳ مخالفین ۰
بهنام سیم جو

کامن لیسپ: یک زبان با تعیین نوع پویا یا ایستا؟

داستان از جایی شروع شد که در مقاله چطور کاری کنیم لیسپ سریع‌تر از سی اجرا شود؟ خواندم که کامن لیسپ بنا به خواست برنامه‌نویس می‌تواند «زبانی با تعیین نوع پویا(dynamic) ویا ایستا(static) باشد» که کنجکاوی بنده برانگیخته شد(بخوانید فضولی‌ام گل کرد!) و در کانال #clschool روی شبکه‌ی آی‌آر‌سی فری‌نود پرسیدم که در ادامه نتیجه بحث خدمتتون عرض خواهد شد.

ادامه مطلب...
مجوز مطالب و محتوا ۱۴ دی ۹۹ ، ۲۳:۳۴ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

سیستم‌عامل کای‌او‌اس(KaiOS) و توسعه نرم‌افزار و هک آن

لوگوی کای‌او‌اس

اول از همه خدمت دوستانی که تا به الآن از کلمه «هک» در عنوان مطلب اشتباه برداشت کردند عرض کنم که معنی این کلمه در اینجا با معنی رایجش در عصر ما فرق میکنه.اینجا منظور از هک کردن پیدا کردن نقاط پنهان و فضولی و کنجکاوی و بهبود نرم‌افزار هست و نه نفوذ بهش و بعدش هم نابود کردنش!

داستان از کجا شروع شد؟

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

کتاب‌خوانی که نهایتا گرفتم Onyx Boox Poke Pro بود با مشخصات زیر:

  • ۱۶ گیگابایت حافظه داخلی
  • ۲ گیگابایت رم داره
  • پردازنده اون ۴ هسته‌ای با فرکانس ۱.۶ گیگاهرتز
  • سیستم‌عاملش اندروید ۶
  • وای‌فای
  • بلوتوث
  • چراغ مطالعه گرم و سرد قابل تنظیم که البته میتونه خاموش هم باشه کلا
  • صفحه لمسی خازنی ۶ اینچ

و علاوه بر این سخت‌افزار بسیار خوب(مخصوصا برای کتاب‌خوان) نرم‌افزار خوبی هم داره:

جدای از اینکه اندرویدش «خام» نیست و برای صفحه نمایش جوهر الکترونیکی،طراحی و بهینه‌سازی شده،نرم‌افزارش هم برای مطالعه بسیار بسیار خوب هست.ساده‌ترین امکانی که داره حذف خودکار حاشیه‌ها هست!

بگذریم چون دارم از موضوع اصلی خارج میشم.اون زمان بعد از یک مقدار جستجو،گوشی موزی(Nokia 8110 4G) رو پیدا کردم که با سیستم‌عامل کای‌او‌اس اون امکاناتی که من نیاز داشتم رو داشت.اگر بخوام دقیق‌تر از امکاناتش صحبت کنم،میتونم اینطور لیست کنم:

  • ۵۱۲ مگابایت رم
  • ۴ گیگابایت حافظه داخلی که البته میتونید با حافظه جانبی(microSD) افزایشش هم بدید
  • پردازنده ۲ هسته‌ای اسنپ‌دراگون
  • سیستم‌عامل کای‌او‌اس(KaiOS)
  • یک عدد صفحه ۲.۴ اینچی خیلی معمولی
  • بدنه‌انحنادار
  • اینترنت 4G
  • اشتراک اینترنت از طریق وای‌فای(هات‌اسپات) و کابل USB
  • دوربین ۲ مگاپیکسلی خیلی معمولی به همراه فلش
  • یک عدد کی‌پد بسیار مزخرف. شنیدم کی‌پد نوکیا فلیپ ۲۷۲۰ این مشکل رو نداره.
  • A-GPS
  • یک کشو که باز و بسته میشه و باهاش میتونید یکسری کار‌ها رو انجام بدید مثلا جواب دادن یا پایان تماس

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

ادامه مطلب...
مجوز مطالب و محتوا ۲۱ آبان ۹۹ ، ۲۱:۳۰ ۶ نظر موافقین ۳ مخالفین ۰
فاروق کریمی زاده

با پایتون یک ربات سخنگو بنویسید!

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

ادامه مطلب...
مجوز مطالب و محتوا ۱۰ مهر ۹۹ ، ۱۰:۵۲ ۴ نظر موافقین ۲ مخالفین ۰
فاروق کریمی زاده

نظرات (۴)

علیرضا آهنی
علیرضا آهنی
حمیدرضا اسمعلی

به اشتراک گذاشتن خط فرمان در لینوکس با استفاده از GNU Screen

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

ادامه مطلب...
مجوز مطالب و محتوا ۰۶ مهر ۹۹ ، ۰۹:۳۷ ۰ نظر موافقین ۳ مخالفین ۰
فاروق کریمی زاده

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

تکه کد زیر که به زبان سی‌پلاس‌پلاس را در نظر بگیرید:

#include <iostream>
using namespace std;

int main() {
    char *s;
    s = NULL;
    cout << "Hello";
    *s = 'H';
    return 0;
}

انتظار داریم که اول Hello چاپ شود و سپس با توجه به اینکه میخواهیم قسمتی از حافظه که نامربوط به برنامه‌ی ماست دسترسی پیدا کنیم،باید خطای Segmentation fault داده شود و برنامه خاتمه پیدا کند.اما وقتی کد را کامپایل و اجرا می‌کنیم می‌بینیم که اینطور نیست

ادامه مطلب...
مجوز مطالب و محتوا ۱۳ مرداد ۹۹ ، ۱۱:۳۹ ۱ نظر موافقین ۳ مخالفین ۰
فاروق کریمی زاده

نظرات (۱)

علیرضا آهنی

چطور کاری کنیم لیسپ سریع‌تر از سی اجرا شود؟

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

دریافت با حجم ۹۰ کیلوبایت از بیتکوین‌شل

دریافت از وب‌سایت فاروق

دریافت از «سیب‌زمینی تخم‌مرغ» فاروق

مجوز مطالب و محتوا ۰۶ مرداد ۹۹ ، ۱۶:۵۰ ۰ نظر موافقین ۳ مخالفین ۰
فاروق کریمی زاده