- مثلا در مورد زبان پایتون میتوانید فریمورک جنگو Django را انتخاب کنید یا Flask و ..
- ممکن است شما با زبان php کار کرده باشید لذا مثلا انتخاب بین فریمورک های Laravel، Zend، Symphony و … خواهید داشت.
- یا با زبان java کار کرده باشید که در اینصورت مثلا بین فریمورک های Spring یا Hibernate و …
- همچنین اگر علاقه به دات نت دارید با فریمورک های MVC و ASP.NET CORE و…
- برای زبان Ruby هم فریمورکی مثل Ruby on Rail و …
- و البته برای Node.JS (که زبانی سمت سرور برای جاوا اسکریپت است) هم فریمورک هایی مثل Express.js و Socket.io و …
نویسنده: admin
الگوریتم های پیشنهاد دهنده ویدیوها برای معتاد کردن ما طراحی شده اند
وقتی در یک جمع صحبت از آینده تکنولوژی ها میشود، افراد بدبین به آینده فناوری ها معمولا آینده را اینگونه میبینند که هوشمندی روبات ها به حدی رسیده که از کنترل انسان ها خارج شده و روبات ها دیگر از ما فرمانبرداری نمی کنند. حرف هایی که آنها را در بسیاری از رمان ها، سریال ها و فیلم هایی که به پیش بینی آینده پرداخته اند میتوانیم ببینیم. البته این نگرانی های حاصل از پیشرفت های فوق سریع هوش مصنوعی، اغلب همگی از جهاتی شبیه به هم هستند. گوته (Johann Wolfgang von Goethe) نویسنده و شاعر آلمانی در شعری به نام شاگرد جادوگر ( The Sorcerer’s Apprentice ) در سال ۱۷۹۷ میلادی داستان جالبی نوشته است:
شاگرد یک جادوگر که هر روز مجبور به انجام برخی تمیزکاری های خانه است در غیاب جادوگر، وردی میخواند و جارو را به آوردن آب از چاه و ریختن و تمیز کردن کف اتاق شعبده میکند. همه چیز عالی پیش میرود و جارو با سرعت زیاد سطل ها را می آورد و روی زمین خالی میکرد. اما پس از اتمام نظافت وقتی شاگرد خواست جارو را متوقف کند دید وردی که میشناسد کار نمیکند و جارو مدام در حال خالی کردن آب کف اتاق است. تصمیم گرفت با یک تبر جارو را بشکند اما هر کدام از تکه های شکسته از جارو مانند یک جاروی کامل به آوردن آب ادامه دادند. طولی نکشید تمام خانه غرق در آب شود که در این لحظه جادوگر به خانه برگشت و طلسم را باطل کرد…
این داستان، مثال کلاسیک و الهام بخش بسیاری از داستان ها، فیلم ها و کارتون هایی است که در آنها انسان یک تکنولوژی را شروع میکند اما خیلی زود کنترل اوضاع از دستش خارج میشود و دیگر راهی هم برای توقف یا جبران باقی نمی ماند. ( مانند داستان و فیلم فرانکشتاین)
اگر نتوانیم برای یک الگوریتم هوش مصنوعی که از روش های یادگیری ماشین استفاده میکند هدف را به درستی مشخص کنیم و محدودیت هایی (Constraints) که لازمست تا الگوریتم آنها را متوجه باشد به طور کاملا دقیق و صحیح بیان نشده باشند، الگوریتم ها میتوانند مسیر یا روش هایی غیرموجه و غیرمنتظره از دید ما انسان ها برای رسیدن به اهدافشان پیدا کنند ( تصور کنید رباتی که موظف به ماهیگیری است پس از اینکه موفق نشده از یک استخر ماهی بگیرد تمام آب استخر را خالی کند تا ماهی را بدست آورد!). به مرور الگوریتم های یادگیرنده روش هایی برای تقلب کردن را یاد میگیرند که شاید اصلا یک انسان به آن ها فکر هم نمیکند. ( مانند تقلب کشف شده توسط الگوریتم در انجام بازی Q*bert آتاری )
مشابه همین مورد، الگوریتم پیشنهاد دهنده ویدیوی سایت یوتیوب است که روزانه تماشای میلیاردها ویدیو را به افراد توصیه میکند. این الگوریتم شاید در ابتدا هدفش تنها این بود که به شما ویدیویی با بیشتری احتمال دوست داشتنتان را پیشنهاد دهد و اینکه در کل بتواند مدت زمان بیشتری شما را به تماشا مشغول نگه دارد. در این صورت هدف اصلی تر این الگوریتم ( و الگوریتم های مشابه در سایت ها و اپلیکیشن های دیگر مانند اینستاگرام ) بیشینه کردن نمایش تبلیغات و درامد حاصل از آن برای شرکت مادر خود یعنی شرکت Alphabet است. جالب است که در آمار منتشر شده، کاربران ۷۰% زمان ها در حال مشاهده ویدیوهایی هستند که الگوریتم یوتیوب به آنها پیشنهاد داده است.
به نقل از یک توسعه دهنده الگوریتم یوتیوب:
“مسئله اینست که هوش مصنوعی یوتیوب ساخته نشده که انسان ها آنچه میخواهند را دریافت کنند، بلکه طوری ساخته شده که آنها را به یوتیوب معتاد کند!”
(شاید بتوان گفت که ویدیوهایی توصیه میشوند که بهتر میتوانند وقت افراد را هدر دهند! )
یکی از جذاب ترین و پر بازدیدترین موضوعات ویدیوهایی که در یوتیوب هر لحظه در حال دیده شدن است محتواهایی است که بحث های مرتبط با تئوری های توطئه را دنبال میکنند. ( هنوز افرادی هستند که کروی بودن زمین را یک دروغ میدانند و به زمین صاف (Flat Earth) باور دارند! یا هنوز هم روی نشستن انسان روی ماه توسط ناسا شک میکنند! و یا گرم شدن کره زمین را غیرواقعی میپندارند!). چون انسان ها روی این ویدیوها کلیک میکنند، مسیر شبکه عصبی (neural net) الگوریتم یادگیری ماشین یوتیوب، برای اینکه این گونه ویدیوها را نیز به سایر افراد توصیه کند بیشتر تقویت میشود. این یعنی شما با جستجو از یک موضوع بی ضرر یا شاید علمی شروع می کنید اما پس از چند بار دنبال کردن ویدیوهای توصیه شده توسط یوتیوب، خود را در حال تماشای ویدیوهایی با محتوای خرافی، شبه علم و انواع تئوری های توطئه میبینید. هستند ویدیوهایی که مثلا با عنوان: “۲۰۰ مدرک از اینکه چرا زمین گرد نیست؟!” که پر است از استدلال هایی که برای فردی با مدل ذهنی کمتر توسعه یافته میتواند واقعا شک برانگیز و پذیرفتی به نظر برسند. اینترنت بطور عام و پلتفرم هایی مانند یوتیوب و اینستاگرام بطور خاص پر است از misinformation هایی که برای افرادی بدون تفکر انتقادی، میتواند درک نادرستی از مسائل ایجاد کند. تا جایی که حتی اعتماد این افراد را نسبت به برخی سازمان ها (مثلا حرف هایی که ناسا از آسمان و زمین میگوید، یا گفته های سازمان هواشناسی از اوضاع آب و هوا و …) از بین ببرد که این بی اعتمادی افراد ناآگاه به نهادهای علمی جامعه تبعات خوبی به دنبال ندارد.
اما طرف دیگر، کسانی که مثلا مسطح بودن زمین را خنده دار میدانند اغلب نیازی نمیبینند محتواهایی تولید کنند تا دلایل پیروان صاف بودن زمین را رد کنند و اشتباه آنها را در بیان این تئوری های توطئه گوشزد کنند. لذا اغلب نسبتا ویدیوهای جذاب بیشتری در اینترنت از پیروان این تئوری های توطئه یافت میشود تا ویدیوهایی بر علیه آنها. به همین خاطر است که تعداد زیاد این محتواها و استدلال های سطحی و دم دستی مطرح شده در آنها برای یک فرد ناآگاه میتواند توهم آگاهی ایجاد نماید. شاید با افراد کمی هم تابحال برخورد داشته اید که حتی با دلایل و استدلال های علمی هم قانع نمیشوند! ( برای این افراد واقعا کار زیادی نمیشود کرد!). لذا بهترین کار شاید تولید ویدیوهایی با اطلاعات بهتر در یوتیوب باشد.
در کنفرانس Flat Earth نظرسنجی ای از ۳۰ نفر انجام شد که ۲۹ نفر از آنها اذعان کردند که از طریق یوتیوب با دیدگاه زمین مسطح آشنا شده اند و ۲ سال قبل حتی اسم آن را هم نشنیده بودند. آن نفر دیگر هم بطور غیرمستقیم با شنیدن صحبت های اعضای خانواده خود که آنها ویدیوهایی در یوتیوب دیده بودند با این دیدگاه آشنا شده بود.
این سیستم توصیه گر همچنین ویدیوهایی از زندگی خصوصی کودکان را به افراد پیشنهاد میکند که میتواند برای افرادی با اختلال پدوفیلی، مسیر یافتن و احیانا آزار این کودکان را تسهیل کند. لذا پلتفرم هایی با ابعادی اینچنین گسترده میتواند توسط افرادی که مسئولیتی برای رفتارهای اجتماعی خود پذیرا نیستند به هدف اذیت و آزار و سوء استفاده از دیگران استفاده شود.
همه اینها بخاطر اینست که الگوریتم های یادگیرنده ای مثل یوتیوب هر لحظه در حال یادگیری از چگونگی رفتار ما در انتخاب ویدیو ها ( و در واقع درونیات روان ما انسان ها ) هستند. این الگوریتم ها نمیخواهند شما فقط یک ویدیوی علمی مثلا درباره نجوم ببینید و سایت را ببندید بلکه میخواهند کاری کنند که شما هر چه بیشتر و بیشتر مانند دیگر افراد به دیدن ویدیوهایی ترغیب شوید که جذاب است و دیدن آن ها تا حد زیادی اعتیاد آور، مثل همین تئوری توطئه ای مثل زمین صاف.
متخصصان هوش مصنوعی در جواب همیشه به لزوم تغییر و بهبود و تکامل پیوسته هوش مصنوعی (Better AI) تاکید دارند. مانند بهبود الگوریتم یوتیوب که دیگر به قدیمی یا جدید بودن ویدیوها هم توجه میکند و ویدیوهایی که محتوایی تاریخ گذشته دارند را با اولویت کمتر توصیه می کند. یا مثلا اخباری از منابع قابل اعتمادتر را با اولویتی بالاتر پیشنهاد می دهد.
زمانی که در این سایت ها با پیشنهاد دیدن ویدیوهایی مواجه میشویم، ناخودآگاه در کرمچاله (Wormhole) ای از محتواهای درگیر کننده و معتادکننده می افتیم که از نقطه نظر هدف آن الگوریتم، مشاهده این ویدیوها و دنبال کردن این خط سیر پر سود و منفعت است. اما از نقطه نظر ما انسان ها، گذشته از مدت زمانی که گه گاه در مشاهده این ویدیوها تلف میشود، نکته مهم دیگر فدا شدن برخی اصول و مسائل اخلاقی است. چطور میتوان الگوریتم هایی با این عظمت را که علایق و سلایق روانی کاربران اینترنت را بسیار خوب شناخته اند مسئولیت پذیر کنیم؟ چه تغییری در این الگوریتم ها میتواند اخلاق دنیای تکنولوژی را بهبود دهد؟ ما چه کمکی میتوانیم در بهبود پیامدهای ناخواسته این الگوریتم ها داشته باشیم؟
معرفی دوره آموزش عملی دیتابیس SQLite
سیستم های مدیریت پایگاه داده رابطه ای (RDBMS) مثل SQL Server، Oracle، MySQL، PostgreSQL همگی با مدل کلاینت/سروری کار میکنند. یعنی لازمست این دیتابیس ها روی یک Server، نصب و پیکربندی شوند و پس از آن، Client ها با اتصال به این سرورها بتوانند پرس و جوهای خود را انجام دهند. برخلاف این دیتابیس ها، SQLite نیاز به سرور ندارد (Server-less) و کل دیتابیس (جداول، اندیس ها، داده ها و … ) درون یک فایل جای دارد.
در واقع دلیل ایجاد و توسعه این دیتابیس هم همین عدم نیاز به نصب سرور دیتابیس و نیاز نداشتن به پیکربندی های ابتدایی (Zero-Conf) است.
SQLite به دلیل استفاده در انواع اپلیکیشن ها، مرورگرهای وب، سیستم عامل ها و همچنین دستگاه هایی مانند تلفن های هوشمند، بردهای سخت افزاری و … بیشترین تعداد دیتابیس نصب شده فعال در دنیاست.
برنامه نویسان با هر زبان برنامه نویسی از جمله (Visual Basic، C، C++، C#، Go، JavaScript، Matlab، Pascal، Delphi، Perl، PHP، Python، R، Ruby، Rust و … میتوانند به راحتی با کمک کتابخانه SQLite موجود در آن زبان، به این دیتابیس متصل شوند.
این دیتابیس با پشتیبانی از تراکنش ها (Transaction)، سرعت بالا و حجم کم کتابخانه آن و همچنین رایگان و open source بودن آن، به برنامه نویسان کلیه پلتفرم ها (Cross-Platform) از جمله windows، mac، linux، Android، IOS و … کمک میکند.
در این دوره آموزشی پس از دانلود و اجرای SQLite، مقدمات به همراه روش ساخت دیتابیس و جداول بیان شده است. سپس دستورات SQL مربوط به Insert، Update و Delete نشان داده شده و همچنین چگونگی نوشتن Query های Select با مثال توضیح داده شده است. مبحث مهم Join کردن جداول، ایجاد Trigger برای جداول و کار با Index ها به منظور بهبود Performance فراخوانی داده ها بصورت عملی شرح داده شده است. سپس به ایجاد Transaction، SubQuery و تعدادی از دستورات مختص SQLite پرداخته شده و در انتها نیز با چگونگی اتصال زبان برنامه نویسی python به دیتابیس SQLite و ایجاد جدول و درج و ویرایش و حذف و فراخوانی داده ها، آموزش خاتمه می یابد.
این آموزش میتواند به مهندسین کامپیوتر، فناوری اطلاعات و متخصصین پایگاه داده، برای ایجاد درکی عمیق تر از مفهوم دیتابیس های رابطه ای Embedded و شناخت بانک اطلاعاتی SQLite کمک نماید.
تهیه و دانلود دوره آموزشی بانک اطلاعاتی SQLite عملی و کاربردی
معرفی دوره آموزشی روند تغییرات مشاغل در دنیای هوش مصنوعی
ما انسان ها هم در دنیای کسب و کار و هم در فعالیت های روزمره، سال هاست رقیب (همکار) جدیدی در کنار خود می بینیم. کامپیوتر ها و روبات هایی که امروزه در بسیاری از فعالیت ها، کنار انسان ها کار میکنند. انقلاب بزرگی رخ داده که همه ابعاد زندگی را تحت تاثیر قرار داده است. دستگاه های هوشمندی که درون همه چیز و همه جا هستند و با هم در ارتباط اند. حجم بزرگی از داده ها را در اختیار دارند و می توانند یاد بگیرند، فکر کنند و تصمیم بگیرند.
با حضور هوش مصنوعی و ربات های هوشمند، شکل مشاغل در حال چه تغییراتی است؟ آیا میتوانیم درک درستی از روند این تغییرات داشته باشیم؟ فرزندان ما در آینده چه نوع مشاغلی خواهند داشت؟ آیا میتوانیم بدون آگاهی از این تغییرات، در انتخاب رشته و یا مسیر شغلی خود و دیگران موثر باشیم؟
در این آموزش نقاشی ها، شعرها و قطعات موسیقی تولید شده توسط کامپیوتر و هوش مصنوعی، روند مشاغل آینده، ربات های هوشمند و مهارت های مورد نیاز دنیای آینده توضیح داده شده است.
من، احسان جوانمرد، کارشناس ارشد فناوری اطلاعات، در این ویدیو از مشاغل و تغییراتی صحبت می کنم که میتواند دید بهتری برای شناخت و درک بهتر روند تغییرات مشاغل آینده برایمان ایجاد کند.
معرفی دوره آموزشی بهبود نظم ذهنی با کمک ابزارهای دیجیتال
چقدر با مفهوم هوش دیجیتالی آشنا هستید؟ آیا همه انسان ها در مواجهه با ابزارها و دنیای دیجیتال به یک اندازه موفق هستند؟ آیا این ابزارها به نظم ذهنی ما کمک کرده اند یا خود باعث افزایش عدم تمرکز و توجه ما شده اند؟
نظم ذهنی به عملکردهای شناختی ما مانند تفکر، استدلال، حافظه، ادراک، توجه، یادگیری، زبان، خلاقیت و … کمک میکند. اما دنیای دیجیتال چه کمکی به این نظم ذهنی میکند؟
امروزه انواع دستیارهای دیجیتال هوشمند درست مانند یک دستیار انسانی و حتی دقیق تر و منظم تر از یک انسان، به ما در انجام کارها کمک میکنند. این دستیارها چگونه زندگی ما را تغییر میدهند؟ چگونه با کمک نرم افزارها و اپلیکیشن ها میتوان بهره وری بالاتری داشته باشیم؟
شما برای یادگیری زبان، تحلیل متن، مدیریت زمان، ایجاد نقشه ذهنی، پیش پردازش و نمایش داده ها از چه ابزارهایی استفاده میکنید؟ همچنین برای یادداشت برداری ها، مدیریت وظایف، ذخیره اشتراکی فایل ها، دنبال کردن وبسایت ها و … ؟
افراد کتابخوان، متخصص و هنرمند از چه شبکه های اجتماعی استفاده میکنند؟
من، احسان جوانمرد، کارشناس ارشد فناوری اطلاعات، در این ویدیو از نرم افزارها و اپلیکیشن هایی صحبت می کنم که میتواند دید بهتری در استفاده از فناوری های جدید در زندگی دیجیتال بوجود آورد.
حاصل این دوره شناخت هوش دیجیتال و ابزارهای دیجیتالی بهبود نظم ذهنی (اپلیکیشن های موبایل و دسکتاپ آموزش زبان، تحلیل و پاکسازی متن، بهره وری زمان، ترسیم نقشه ذهنی، هوش تجاری، نمایش داده، یادداشت برداری، مدیریت تسک، ذخیره اشتراکی پروژه و فیدخوان ها) است.
تهیه و دانلود دوره آموزشی بهبود نظم ذهنی با کمک ابزارهای دیجیتال
معرفی دوره آموزشی رویدادها و روندها در دنیای هوش مصنوعی
برای درک بهتر مسائل امروز، شناخت و تمایز ۲ مفهوم رویداد (Event) و روند (Trend) بسیار مهم است. در این درس که هدف آن مرور روندهای فناوری است با مثال های متعدد مورد بحث قرار میگیرد. همچنین مفهوم ابر روندها (Mega-Trends) در درک این تغییرات میتواند بسیار مفید باشد.
روندهای دنیای امروز مانند هوش مصنوعی، اقتصاد مشارکتی، آموزش دیجیتال، رمز ارزها، ماشین های برقی (بدون راننده)، دستیارهای دیجیتال و مهندسی ژنتیک بخشی از این روند ها میباشد.
آنچه نسل های بشر را امروزه از هم متمایز میکند پیشرفت هایی است که در فناوری ها بوجود می آید و موجب میشود هر نسل ویژگی ها، تعاملات، نیازمندی ها و مدل های ذهنی مختلفی داشته باشند. در این درس انواع نسل ها و ویژگی های هرکدام بیان شده است.
ضمنا با مرور روند هوشمند شدن ماشین ها، به انواع ماشین ها و ابزارهایی اشاره شده که امروزه توانسته اند بهتر از انسان عمل کرده و انسان را شکست دهند.
همچنین مفهوم سن تور (Centaur)، سایبورگ (Cyborg) و پیدایش گونه جدیدی به نام انسان-ابزار مورد بحث قرار گرفته است.
حاصل این دوره شناخت روندهای هوشمند شدن ماشین ها و همینطور چگونگی پیدایش انسان-ابزارها است.
تهیه و دانلود دوره آموزشی رویدادها و روندهای دنیای هوش مصنوعی
آموزش نرم افزار صف بندی پیام RabbitMQ (کارگزار پیام Message broker)
یکی از مشکلات سازمان هایی که اپلیکیشن هایی با فناوری ها و سیستم عامل های متفاوت دارند اینست که چطور میتوان این سرورها را به هم متصل کرد؟ یک راه اینست که اپلیکیشن ها بتوانند با هم پیام رد و بدل کنند. اما اگر سرعت تولیدکننده (producer) پیام و مصرف کننده (consumer) پیام با هم یکسان نباشد ( برای مثال گیرنده برای ارسال ایمیل، فکس، پردازش فایل ها، تولید گزارش خروجی و … نیاز به زمان پردازش نسبتا زیادی داشته باشد) و یا اگر گیرنده به هر دلیل آماده دریافت و پردازش پیام نباشد، در اینصورت برای اینکه پیام ها دور ریخته نشود، مجبوریم برای سرور گیرنده از یک صف استفاده کنیم. این صف باید بتواند پیام ها را از تولید کننده تحویل بگیرد و هنگام آمادگی مصرف کننده، به ترتیب پیام ها را به آن تحویل دهد.
RabbitMQ یکی از نرم افزارهای شناخته شده برای صف بندی پیام (Message Queueing) است که به آن Message Broker ( کارگزار پیام ) نیز گفته میشود. این نرم افزار پروتکل AMQP را بطور کامل پیاده سازی کرده و بدین ترتیب فرمت مشترکی برای پیام رسانی بین سیستم های مختلف بوجود آورده است.
نرم افزار RabbitMQ نرم افزاری Open Source است که با زبان Erlang نوشته شده و امکان اتصال به آن از تمام زبان های برنامه نویسی مانند: java، php، python، .net، javascript، Go و … وجود دارد.
در این آموزش پس از نصب نرم افزار RabbitMQ، با کمک زبان برنامه نویسی python به ربیت ام کیو متصل میشویم و صف هایی را به کمک آن ایجاد و مدیریت میکنیم. با شروع از مثال های مقدماتی، به بحث هایی مثل work queues، Pub/Sup Pattern و RPC Pattern خواهیم پرداخت. در ادامه به توضیح Exchange و کارکرد آن پرداخته و انواع آن مثل Fanout، Direct و Topic را بطور عملی بررسی خواهیم کرد. در انتها با اشاره به چگونگی فعال کردن افزونه ها، Management Plugin را فعال خواهیم کرد و با کمک آن به کنترل و پایش سرور RabbitMQ اقدام میکنیم.
این آموزش برای متخصصان ITو کامپیوتر، بویژه علاقه مندان به برنامه نویسی میتواند دید مناسبی در استفاده از نرم افزارهای ایجاد و مدیریت صف ها (کارگزار پیام) ایجاد نماید.
دوره یادگیری فریمورک وب جنگو Django – قسمت ۳ (آموزش مراحل Deploy جنگو)
این دوره آموزشی، قسمت سوم و آخر از مجموعه آموزش های پروژه محور فریمورک وب جنگو است. در این دوره با ادامه بحث قسمت ۱ و ۲، در حال تکمیل یادگیری جنگو در قالب پیاده سازی و Deploy کردن پروژه ساخت یک اتاق گفتگو (Forum) به همراه کلیه بخش ها و امکانات مورد نیاز آن هستیم.
در قسمت ۱ این دوره آموزشی، از نصب و آماده سازی محیط توسعه جنگو با کدنویسی در محیط VSCode شروع کردیم و به معماری MVT (Model، View، Template) و مبحث URL Routing پرداختیم. همچنین با ایجاد فرم ها و پردازش و اعتبارسنجی آنها و نوشتن همزمان Test های مورد نیاز، با نحوه توسعه اصولی پروژه ها آشنا شدیم.
در قسمت ۲، به ادامه قسمت ۱ و ایجاد سیستم احراز هویت (Authentication) که شامل صفحه SignUp، Login، Logout، Forgot/Reset Password و Change Password است پرداختیم. همچنین چگونگی محدود کردن کاربران از دسترسی به برخی view ها (Login Required) به تفصیل بیان شد.
در طول پروژه، برای زیبایی ظاهری صفحات نیز از کتابخانه bootstrap استفاده نمودیم.
در این قسمت (قسمت ۳) که قسمت پایانی این مجموعه آموزش است برای تکمیل نهایی پروژه از Class-Based View ها استفاده خواهیم کرد تا بتوانیم سادگی و قابلیت استفاده مجدد را فراهم کنیم. سپس به GCBV (Generic Class-Based View) ها خواهیم پرداخت و با کمک آنها view های قبلی را Refactor میکنیم.
در ادامه با decorator ها در GCBV ها کار میکنیم و همچنین برای صفحاتی که نیاز به صفحه بندی دارند Pagination قرار میدهیم. افزودن یک Markdown Editor و استفاده از پکیج Humanize و نیز کار با Session ها تکمیل کننده نهایی قابلیت های سایت خواهد بود.
بخش قابل توجهی از این قسمت به موضوع مهم Deploy کردن اپلیکیشن روی سرور پرداخته شده است. برای این کار با مرور اهمیت و کاربرد Git و Github بطور عملی با این سیستم های کنترل ورژن (Version Control System) کار خواهیم کرد تا با کمک مخزن (Repository) گیت هاب، کدهای پروژه را مدیریت کرده و پروژه را از کامپیوتر شخصی به سرور منتقل کنیم.
پس از آن به انتقال Setting های پروژه، مبحث Dependency ها و انتقال کتابخانه های مورد نیاز خواهیم پرداخت.
سپس با Nginx، Gunicorn و Supervisor و همچنین دیتابیس PostgrSQL آشنا خواهیم شد و بطور عملی آنها را روی سرور Linux Ubuntu به همراه Python3 و VirtualEnv نصب خواهیم کرد.
در انتها با پیکربندی gunicorn، Supervisor و Nginx روی سرور لینوکس اوبونتو و همچنین تنظیمات سرویس ارسال Email، کار Deployment پروژه را به اتمام میرسانیم.
این دوره میتواند برای برنامه نویسان وب به ویژه علاقه مندان به زبان پایتون برای استفاده از این فریمورک در توسعه وبسایت های داینامیک و Deploy کردن آن روی سرور دید مناسبی ایجاد نماید.
دوره یادگیری فریمورک وب جنگو Django – قسمت ۲
این دوره آموزشی قسمت دوم از مجموعه آموزش پروژه محور فریمورک وب جنگو است. در این دوره با ادامه بحث قسمت ۱، در حال یادگیری جنگو در قالب پیاده سازی پروژه ساخت یک اتاق گفتگو (Forum) به همراه کلیه بخش ها و امکانات مورد نیاز آن هستیم.
در قسمت پیشین این دوره آموزشی (قسمت ۱)، از نصب و آماده سازی محیط توسعه جنگو شروع کردیم و با کدنویسی در محیط VSCode به تعریف و ایجاد Model ها، View ها، Template ها و URL ها پرداختیم. نمایش Topic ها، ایجاد Topic جدید، کار با پنل Admin، ایجاد مدل، view و تمپلیت ها، ایجاد فرم ها و پردازش و اعتبارسنجی آنها مواردی بود که در قسمت ۱ به آنها پرداختیم. همچنین با نوشتن Test های مورد نیاز، نحوه نوشتن اصولی و توسعه پروژه ها را بطور عملی و واقعی نمایش دادیم.
در این دوره آموزشی (قسمت ۲)، به تکمیل بحث و ایجاد سیستم احراز هویت (Authentication) که شامل صفحه SignUp، Login، Logout، Forgot/Reset Password و Change Password است میپردازیم.
در ادامه مباحث اعتبارسنجی فرم ها به تفصیل بیان شده و چگونگی محدود کردن کاربران از دسترسی به برخی view ها (Login Required) ها آموزش داده شده است.
در انتها به تکمیل و زیباتر ساختن صفحات وبسایت با استفاده از کتابخانه bootstrap خواهیم پرداخت.
در دوره آتی (قسمت ۳) که دوره پایانی این مجموعه آموزش است به تکمیل نهایی پروژه و ایجاد فرم Edit Post، ایجاد صفحه ویرایش پروفایل کاربر، ایجاد Pagination برای لیست تاپیک ها و پست ها خواهیم پرداخت. همچنین از Class-Based View ها استفاده خواهیم کرد تا بتوانیم سادگی و قابلیت استفاده مجدد را فراهم کنیم. و در آخر چگونگی Deploy کردن اپلیکیشن به یک Web Server را خواهیم آموخت.
این دوره میتواند برای برنامه نویسان وب به ویژه علاقه مندان به زبان پایتون برای استفاده از این فریمورک در توسعه وبسایت های داینامیک دید مناسبی ایجاد نماید.