Learn with Osman – Telegram
Learn with Osman
187 subscribers
19 photos
2 videos
19 links
ID: @osman_makhtoom
Portfolio: https://osmanmakhtoom.dev
|
My knowledge sharing channel about Software Engineering and Python Development
Download Telegram
Learn with Osman
cubes = [lambda x: x + i for i in range(10)] print(cubes[3](4)) @osmanmakhtoomdev
بنظرتون نتیجه چی میشه؟
سطح سوال: متوسط به بالا
Final Results
25%
7
14%
9
36%
13
21%
Error
4%
None
def get_number(number):
return lambda x: x + number

cubes = [get_number(i) for i in range(10)]

print(cubes[3](4))


@osmanmakhtoomdev
بچه‌ها متاسفانه این یکی دو روزه بخاطر کسالت نتونستم برم سمت ضبط جلسه دوم، ان‌شاءالله سعی میکنم روز شنبه یکشنبه ضبط رو اوکی کنم.
5🕊1
Media is too big
VIEW IN TELEGRAM
تو این ویدیو درمورد ماشین و زبان‌های برنامه‌نویسی صحبت کردیم.
ماشین چطور کار میکنه؟
زبان‌های برنامه‌نویسی اومدن چه دردی رو دوا کنن؟
زبان‌های برنامه‌نویسی چطور کار میکنن؟
چه تقسیم بندی هایی دارن؟
سطح زبان یعنی چی؟


لینک یوتوب:
https://youtu.be/-CWJjLd170Q?feature=shared

باهام همراه باشید... 🌱❤️

@osmanmakhtoomdev
🕊1
دوستانی که قصد دارن دیتا استراکچر و الگوریتم رو خوب متوجه بشن، ی اپلیکیشن هست برای گوشی های اندروید که تازگی آپدیت داده و دیدم خیلی پیشرفت خوبی کرده.
الان میتونید بصورت بصری هر الگوریتم رو بررسی کنید:

https://play.google.com/store/apps/details?id=com.pranitkulkarni.sortingdemo

باهام همراه باشید...❤️🌺

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

پس باهام همراه باشید ❤️🌱

@osmanmakhtoomdev
🕊3👍1
Forwarded from مطالب رایگان و آزاد🎈 ( behrad)
* مفهوم ضربان قلب در علم کامپیوتر چیست؟

اون قدیمترها من وقتی که تازه‌کار بودم و وبسرور راه مینداختم و API مینوشتم، یه کاری رو میکردم که مطمئن بشم سروری که راه انداختم داره بدون اشکال کار میکنه، اونم این بود که با یه برنامه زماندار (کرونجاب/cronjob) هر چند دقیقه سرور رو پینگ میکردم که مطمئن بشم هنوز داره کار میکنه...
اما پبینگ کردن کافی نبود، شما میتونی برنامه‌ای بنویسی که هر چند وقت (زمانش بستگی به شما داره) به سرور بگه که من ادمین هستم، بگو ببینم وضعیتت چطوره؟
* بگو دیسکت چقدر جا داره
* بگو آپتایمت چقدره
* بگو آمپر CPUت روی چند درصده
* بگو چقدر رمت پره و چقدر خالیه

هر چند دقیقه اینارو از سرور بپرسه...

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

این میشه مفهوم ضربان قلب که الان تخصصی‌تر میگم*
=+=+=+=+=+=+=+=

مانیتور کردن سیستم خیلی بحث مهمیه،
فرض کنین یه API ثالث (ثرد-پارتی) که توی سرورتون استفاده کردین بنا به دلایلی داون میشه، سرور ازش ریسپانس نمیگیره و به ارور میخوره... اما به کارش ادامه میده، چون شما زرنگ بودی و ارور هارو با ترای-کچ هندل کردی:
▪️فرق بین ارور و اکسپشن و وارنینگ و نوتیس چیه؟
▪️فلسفه ترای-کچ چیه؟

سیستم به کارش ادامه میده و شروع میکنه به لاگ انداختن که توی ساعت فلان، ثانیه فلان من این ریکوئست روبه API زدم منتهی داون بود و جواب نداد...
1 بار لاگ میندازه 2 بار لاگ میندازه 3 بار لاگ میندازه...
ایــــــــنقدر لاگ میندازه که یهو فایل لاگ میشه 60 گیگ، دیسک ددیکیت‌شده شما پر میشه و سرورتون داون میشه.
این یه مثال عملی بود از اینکه سرورها ممکنه به چه مشکلاتی بخورن...

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

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

مثلا من یه برنامه داشتم که یه رکوئست HTTP میزد (با پست) و به سرور میگفت من ادمینم اینم توکنم، بهم بگو علائم حیاتیت چیه...؟
سرور جواب میداد که:
* آپتایم 24 روز و 8 ساعت
* سی‌پی‌یو 7 درصد
* رم 1 گیگ
* دیسک 128 گیگ خالی دارم
* سرعت پینگم هم 60 میلی ثانیه‌ست

برنامه اینارو چک میکرد و اگه چیز آنرمالی میدید به من خبر میداد.
شما اگه خیلی خفن بودین میتونستین برنامه رو جوری بنویسین که مثلا بصورت نمایی، اطلاعات چندتا ضربان قلب قبلی سرور رو ذخیره کرده باشه و کنار هم بذاره و رشد خاصی رو برونیابی کنه و اگه حدس میزنه چیزی در حال تغییر غیر عادیه خبر بده...،
مثلا 5 ساعت پیش دیسک 128 گیگ خالی داشته،
4 ساعت پیش 128 گیک خالی داشته،
3 ساعت پیش 120 گیگ خالی داشته،
2 ساعت پیش 89 گیگ،
حالا هم 24 گیگ،

خب این یه تغییر غیر طبیعیه، فرمولهای ساده ریاضیاتی هستن که میتونن نسبت بگیرن و تغییرات ناخواسته‌ای مثل این رو دیتکت کنن، برنامه به شما سریع sms بده که زود باش SSH کن به سرور که یه اتفاقی افتاده دیسک داره پر میشه...
شما سریع میری و مثلا میبینین که یه I/O اکسپشنی رخ داده یه فایل بسته نشده و هی داره توش داده نوشته میشه...،
قبل از اینکه دیسک پر بشه و سرور داون بشه و محاسباتتون دچار مشکل بشه و یا اطلاعات خاصیتون بپره، فیکسش میکنین*-*

اما،
امــــا،...
بعدا که رفتم ارشد، توی یه درسی همینو به ما درس دادن و فهمیدم این حرکت اصلا یه قسمت از علم کامپیوتره که بهش میگن کاندیشن مانیتورینگ
* Condition Monitoring
و اصلا یه پرتکل شبکه‌ای وجود داره به اسم SNMP:
Simple Network Management Protocol
که روی UDP ران میشه و کارش مدیریت کردن خودکار یه دستگاه شبکه‌ای هست و این پرتکل بای دیفالت مثلا روی روترها و سوئیچها پشتیبانی میشه....
اگه میخواین بیشتر بخونین:
https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol
=+=+=+=+=+=+=+=

حالا شما میتونین خودتون یه پرتکل ضربان قلب پیاده کنین...
کتابخونه‌ها و پرتکلهای آماده ای هم براین این موضوع هستن،
اگه سرورتون بزرگ و حساس هم هست میتونین بازه زمانی ضربان قلب گرفتن رو کمتر کنین، مثلا هر 1 دقیقه سیستم رو مانیتور کنین.
اگه میخواین ضربان قلب یا heartbeat رو تخصصی مطالعه کنین:
https://en.wikipedia.org/wiki/Heartbeat_(computing)
1
Forwarded from Django Expert (Boby Cloud)
برنامه‌ نویسی تدافعی (Defensive Programming) در پایتون مساله مهمی هست، متاسفانه بخاطر EAFP در پایتون، خیلی از برنامه نویس‌های پایتون با تکنیک‌های برنامه نویسی تدافعی برای افزایش پایداری و اطمینان نرم افزارها و همچنین کاهش باگ‌ها و اتفاقات غیرمنتظره، آشنا نیستند. اگر به ساخت نرم افزارهای قابل اطمینان و پایدار با پایتون علاقمند هستید این ویدیو رو از دست ندید.

🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/wNiQwj9qKvc?si=MHlWs0iTPn3ddYZH

〰️〰️〰️〰️〰️〰️
@DjangoEx | @BobyDotCloud
1
دوستان میخام وبلاگ شخصی راه بندازم، پیشنهادتون کدومه؟
Final Results
49%
نوشتن پروژه با جنگو و آنگولار (رزومه میشه 😄)
43%
وردپرس ۵ دقیقه‌ای
9%
کامنت میذارم
خب دوستان درمورد نظرسنجی که بالا درمورد انتخاب پلتفرم بلاگ نویسی گذاشتم ی سری پوینت‌ها رو مناسب دیدم بنویسم.

چرا وبلاگ داشتن برای ی برنامه‌نویس مهمه؟
تو کتاب Soft skills نوشته Sonmez چند فصل و چندین صفحه درمورد ضرورت داشتن ی وبلاگ برای برنامه‌نویس ها صحبت کرده و یکی از دلایل خوبی که آورده اینه:
رزومه شما فقط ی صفحه است و باید بصورت خیلی خلاصه فقط نکات مهم رو اونجا درج کنید و شما برای جلب توجه ریکروتر نهایت نهایتش فقط ۶ ثانیه فرصت دارید و این زمان خیلی کمیه.
در اینترویو هم طرف نمیتونه با ی برخورد درمورد عمق تخصص یا شخصیت شما مطمئن بشه، پس شما باید از طریق دیگه‌ای مهارتهای خودتونو به نمایش بذارید تا شخصی که میخاد شما رو استخدام کنه بتونه بهش مراجعه کنه و نسبت به شما شناخت کافی پیدا کنه و این محل میتونه وبلاگ شخصی شما باشه.

چه پلتفرم‌هایی برای شروع بلاگ نویسی وجود دارن؟
طبق چیزی که من تحقیق کردم میشه گفت ۳ نوع پلتفرم برای بلاگ نویسی وجود داره:
۱- سایتهای اشتراک مقاله مثل مدیوم یا نسخه وطنی اون ویرگول.
اینا خوبن، شناخته شده هستن، کاربر زیاد دارن و افراد متعددی میتونن مقالات شما رو دنبال کنن.
اما اون کاربرها در واقع کاربر شما نیستن بلکه برای همون پلتفرم هستن.
شما نمیتونید اونجا اقدام به تبلیغ یا اتصال درگاه پرداخت برای فروش محصولات کنید.
و اگه روزی اون پلتفرم تصمیم بگیره اکانت شما رو ببنده یا پست‌های شما رو پاک کنه کاری از دست شما برنمیاد و این اتفاقیه که به کرات افتاده.
۲- اپ اختصاصی:
ی برنامه‌نویس میتونه خودش برای خودش ی پروژه شروع کنه و ی اپ وبلاگ بنویسه.
اینکار میتونه باعث بشه شخص کد خودش رو تو گیتهابش منتشر کنه و ی پوینت اضافه کنه به خودش.
حتی میتونه مراحل ایجادش رو ضبط و بعنوان آموزش پروژه محور منتشر کنه.
اما خودش باید تمام موارد از جمله تکنولوژی هایی که لازمه برای پیاده‌سازی و دیپلوی پروژه رو بلد باشه یا یاد بگیره، سئو و بهینه‌سازی برای موتورهای جستجو رو باید بلد باشه، بحث امنیت رو باید بلد باشه و رعایت کنه، اگه فیچری نیاز داشت باید خودش بشینه کد بنویسه و اضافه کنه، کلی باگ و دیباگ و... و به این ترتیب با اینکه اینجا دستش بازه و هر کاری خاست میتونه بکنه اما از اونطرف هم کلی زمان از دست میده و فکر نکنم بعدش برای بلاگ نویسی انگیزه‌ای براش بمونه(چون دائم در حال دیباگه 😂)
۳- اپ‌های آماده مثل وردپرس و جوملا و...
و در آخر اگه هدف شخص تنها شروع بلاگ نویسیه میتونه از اپ‌های رایگان آماده مثل وردپرس استفاده کنه که مثلا در بحث سئو رو دست نداره، تست شده است و کامیونیتی فعال و قوی داره، هر فیچر یا تمی خاست اضافه کنه براحتی میتونه با نصب ی پلاگین در ی لحظه انجامش بده و کلی کار خفن دیگه.

چه موضوعی بنویسم؟
برای شروع جواب اینه که فقط شروع کن به نوشتن و پیش برو، ممکنه از بعضی مقالاتی که نوشتی خودت خوشت نیاد ولی تجربه شده که همون مقالات بارها و بارها خونده شدن و حتی اشتراک گذاری انجام شده 😊
به مرور غلق کار دستت میاد و شروع میکنی به دسته بندی و ترتیب بندی مطالب.
اما برای انتشار مقالات حتما ی برنامه داشته باش، مثلا برای خودت کلندر ست کن که هفته‌ای ی مقاله منتشر کنی و این تبدیل به ی عادت بشه تا فالوورها بدونن دقیقا چه تایمی مقاله‌ات منتشر میشه.

این نکات رو تو این چند روز کلی مقاله و ویدیو مرور کردم و بدست آوردم و خوشحالم تو اشتراک گذاریش کمکم کنی، دمت گرم 🫠

@osmanmakhtoomdev
1
Forwarded from Sadra Codes
یه نکته اضافه کنم، همونطور که عثمان اشاره کرده، حتما کلندر ست کنید. اگه دنبال impression و فالوور و دیده‌شدن هستین، نیازه که یه روتین رو واسه نوشتن دنبال کنید. مثلا هر n روز یه مقاله پابلیش کنید. (کیفیت و حجم مقاله بسیار مهمه)

یه مورد دیگه، همیشه حداقل ۱۰ تا مقاله درفت داشته باشین. (یعنی مقاله‌ای که صرفا تایتل و چندتا سکشن داره و تکمیل نشده)

واسه خواننده مهم نیست چندتا مقاله راجع به تستینگ خونده. دوست داره نظر تورو هم بدونه. اگه نویسنده خوبی باشین، خود خالق pytest هم می‌تونه از مقالتون متوجه بینش‌های متفاوت و خاصی راجع به unit testing بشه و ارزش مقاله نوشتن اینجاست که خودش رو نشون می‌ده.

اگرم دوست دارید چیزی رو یاد بگیرید، بنظرم از ابزارهای نوت‌برداری آنلاین استفاده نکنید و سعی کنید بصورت فیزیکی، روی کاغذ یادداشت کنید. نوشتن با دست کمک می‌کنه تا راحت‌تر به خاطر بیارید و موقع بازخوانیش، حداقل میزان حواس‌پرتی (distraction) رو خواهید داشت. واسه یادگیری، (تاجایی که ممکنه) از اینترنت و دیوایس‌های هوشمند دوری کنید و سعی کنید آفلاین یادبگیرید. همین که ذهن شما عادت کنه که الان دسترسی به اینترنت نداری، کلی از دغدغه‌های ناخود‌‌آگاهت برطرف میشه و مغز می‌دونه راه چاره‌ای برای رسیدن به اون دوپامین حاصل از اسکرول کردن اکسپلور اینستا وجود نداره، پس سعی می‌کنه با یادگرفتن اون حس رو واسه خودش شبیه‌سازی کنه.
👍2
ی بار برام پیش اومد که تو ی branch گیت ی فایل ایجاد کردم و کامیت هم زدم ولی بعدش متوجه شدم که اون فایل رو نباید رو این برنچ میساختم.
یا برام پیش اومده بود کلی چنج رو ی برنچ داشتم که فقط چند تا فایل و پوشه از اون برنچ رو فقط نیاز داشتم و چنج‌های دیگه رو اصلا نمیتونستم مرج کنم.
راه حلی که برای همچین مواقعی وجود داره باز هم دستور checkout گیت هست که به این صورته:

git checkout destination_branch_name -- destination_file_or_directory

مثلا فرض کنیم برنچی به اسم feature/new_wizard داریم که پوشه‌ای به آدرس apps/ipg رو تو اون داریم.
حالا دستور ما تو برنچی که میخایم این پوشه رو بهش منتقل کنیم به این صورت خواهد بود:

git checkout feature/new_wizard -- apps/ipg

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

@osmanmakhtoomdev
🔥1
Yusuf Dikec 😁
🔥4🤔1
Learn with Osman
Yusuf Dikec 😁
عکسی که وایرال شده Yusuf Dikeç تیرانداز ۵۱ ساله ترکیه است که مدال نقره المپیک رو بدون استفاده از تجهیزات تیراندازی و دقیقا با همین حالت برده
1
Forwarded from جنگولرن
علی شریفی زارچی: دانشگاه شریف سال گذشته دوره‌ی «برنامه‌نویسی پایتون و خلاقیت الگوریتمی» را برای هزاران دانش‌آموز متوسطه‌ی سراسر کشور برگزار کرد.
تمام محتوای این دوره شامل ویدئوی کلاس‌ها، تمرین‌های نظری و عملی «به صورت رایگان» به همه‌ی دانش‌آموزان ایران تقدیم می‌شود:
https://learn-python.ir

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

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

https://play.google.com/store/apps/details?id=com.substack.app

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

https://play.google.com/store/apps/details?id=com.burockgames.timeclocker

@osmanmakhtoomdev