PhiloLearn – Telegram
PhiloLearn
1.49K subscribers
509 photos
70 videos
70 files
533 links
🔵 فیلو یعنی مشتاق و لرن یعنی یادگیری
📘 در نتیجه فیلولرن یعنی مشتاق یادگیری 📘

https://www.youtube.com/@PhiloLearn

donate:
https://www.coffeete.ir/PhiloLearn
Download Telegram
پیشنهاد و انتقاد و درخواستی اگر داشتید، دایرکت کانال @PhiloLearn درش به روی همه ی شما عزیزان بازه 💙💙
1
هر وقت حس بی مصرف بودن کردید، مایکروسافت ایج برای لینوکس رو به خاطرتون بیارید 😂😂😂

#fun@PhiloLearn
🤣11👎21
سوال ساده:
چرا معمولا توی لوپ ها از i استفاده می‌کنن ؟؟

@PhiloLearn
Forwarded from Linuxor ?
آقای Geoffrey Hinton، معروف به پدرخوانده AI، یه هشدار داده که اگه فکر می‌کنین با رشد سریع هوش مصنوعی بهتره رشته‌تون رو عوض کنین، دست نگه دارین. Computer Science فقط کدنویسی نیست، یادگیری سیستم‌ها، ریاضی و حل مسئله مهارت‌هایی هستن که AI هیچ وقت نمی‌تونه کامل جایگزینشون بشه.

حتی اگه AI داره خیلی از کارای برنامه‌نویسی رو انجام می‌ده، داشتن پایه قوی توی CS هنوز ارزش داره و کمک می‌کنه که بتونین نوآوری کنین و مهارت‌هاتون رو به سطح بعدی برسونین. Hinton حتی توصیه کرده کدنویسی رو یاد بگیرین؛ مثل خوندن لاتین، شاید مستقیم استفاده نکنین ولی مغزتون رو قوی می‌کنه.

@Linuxor
1
۱۱. چطور یک پروژه بزرگ Django رو ساختاردهی کنم؟

جواب کوتاه:
بر اساس ویژگی (Feature) ساختار بده، نه بر اساس لایه (models/views/serializers).


ساختار بد (بر اساس لایه)

myproject/
├── models/
│ ├── user.py
│ ├── post.py
│ └── comment.py
├── views/
│ ├── user_views.py
│ ├── post_views.py
│ └── comment_views.py
├── serializers/
│ ├── user_serializers.py
│ ├── post_serializers.py
│ └── comment_serializers.py
└── ...


مشکل:
برای فهمیدن یه فیچر باید بین ۵ تا فایل بپری. سرعتت افتضاح می‌شه.

ساختار خوب (بر اساس فیچر)

myproject/
├── users/
│ ├── models.py
│ ├── views.py
│ ├── serializers.py
│ ├── urls.py
│ └── tests.py
├── posts/
│ ├── models.py
│ ├── views.py
│ ├── serializers.py
│ ├── urls.py
│ └── tests.py
└── core/
├── utils.py
├── middleware.py
└── base_models.py


اینجوری هر فیچر همه فایل‌های مربوط به خودش رو داره.
خوانایی بالا می‌ره و نگهداری راحت‌تر می‌شه.


🟦 برای پروژه‌های خیلی بزرگ

وقتی هر app خیلی گنده شد، می‌تونی داخلش فولدرهای لایه‌ای بسازی:

myproject/
├── users/
│ ├── models/
│ │ ├── user.py
│ │ ├── profile.py
│ │ └── permissions.py
│ ├── views/
│ │ ├── auth.py
│ │ ├── profile.py
│ │ └── admin.py
│ ├── serializers/
│ ├── tests/
│ └── urls.py
└── ...


این ساختار برای تیم‌های بزرگ یا پروژه‌های enterprise عالیه.


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

پ.ن: یادتون نره پستا رو با دوستاتون به اشتراک بذارید ❤️❤️

پارت اول ۲۰ سوال جنگو
پارت دوم ۲۰ سوال جنگو
پارت سوم ۲۰ سوال جنگو
پارت چهارم ۲۰ سوال جنگو
پارت پنجم ۲۰ سوال جنگو
پارت ششم ۲۰ سوال جنگو
پارت هفتم ۲۰ سوال جنگو
پارت هشتم ۲۰ سوال جنگو
پارت نهم ۲۰ سوال جنگو
پارت دهم ۲۰ سوال جنگو

#پارت_یازدهم #جنگو #django #پایتون #برنامه_نویسی

@PhiloLearn
6
PhiloLearn
def validate_file_extension(value):
allowed = ['.pdf', '.doc', '.docx']
ext = os.path.splitext(value.name)[1]
if ext.lower() not in allowed:
raise ValidationError('Unsupported file type')
دوستان توی کامنت ها اشاره کردن که این روش درستی نیست و خب حق با ایشان است. اینکار میتونه خطرات خیلی زیادی هم به همراه داشته باشه.
اگر خواستید نوع فایل رو چک کنید راه های به نسبت امن تر و بهینه تر زیادی هست.
مثلا شما میتونید خودتون Head فایل رو چک کنید یا از libmagic و لایبری پایتون python-magic استفاده کنید که استفاده ازش هم خیلی راحته.

مثال:
>>> import magic
>>> magic.from_file("testdata/test.pdf")
'PDF document, version 1.2'
# recommend using at least the first 2048 bytes, as less can produce incorrect identification
>>> magic.from_buffer(open("testdata/test.pdf", "rb").read(2048))
'PDF document, version 1.2'
>>> magic.from_file("testdata/test.pdf", mime=True)
'application/pdf'


لینک pypi

#نکتک@PhiloLearn
5
لازم نیست ساعت‌ها گوگل کنی برای پیدا کردن APIهای رایگان!

یه ریپازیتوری که هر دولوپری باید تو بوکمارک‌هاش داشته باشه:
https://github.com/public-apis/public-apis

لیست کاملاً مرتب‌شده و به‌روز از صدها API عمومی و رایگان در همه حوزه‌ها: Weather - Finance - Music - Animals - Jokes - Crypto Maps و صدها مورد دیگه.

@DevTwitter | <POURYA/>
3
اولین واکنش دولوپرا به لینوکس 😂💙

#fun@PhiloLearn
🤣82
Forwarded from Programming Hobby
This media is not supported in your browser
VIEW IN TELEGRAM
چطور وایب کدر ها رو گول بزنیم تا برنامه نویسی واقعی یاد بگیرن:


🔥 @Programming_Hobby 🔥
🤣9
۱۲. از سیگنال‌های Django استفاده کنم یا مستقیم متد را صدا بزنم؟

جواب کوتاه:
۹۰٪ مواقع مستقیم متد رو صدا بزن. سیگنال فقط وقتی لازم شد.


✔️ کی از سیگنال استفاده کنیم؟

فقط وقتی:
- می‌خوای اپ‌ها از هم جدا باشن (app A نباید app B رو import کنه)
- با مدل‌های داخلی Django کار داری (مثل User، Group)
- می‌خوای اپ‌های سوم‌شخص بتونن به eventهای تو واکنش نشون بدن


کی از سیگنال استفاده نکنیم؟

وقتی:
- کدها در یک اپ هستن
- می‌خوای جریان کد واضح و قابل‌ردگیری باشه
- دیباگ کردن مهمه

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

مثال:

مثال بد – سیگنال بی‌دلیل

from django.db.models.signals import post_save
from django.dispatch import receiver

class Order(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
total = models.DecimalField(max_digits=10, decimal_places=2)

@receiver(post_save, sender=Order)
def send_order_confirmation(sender, instance, created, **kwargs):
if created:
send_email(instance.user.email, 'Order confirmed')


مشکل:
اصلاً معلوم نیست ایمیل کجا ارسال می‌شه! پاکِ پنهانی.


مثال خوب – مستقیم و واضح

class Order(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
total = models.DecimalField(max_digits=10, decimal_places=2)

def send_confirmation_email(self):
send_email(self.user.email, 'Order confirmed')

# In view
order = Order.objects.create(user=user, total=100)
order.send_confirmation_email()


واضح، قابل‌فهم، ساده برای دیباگ.


مثال خوب – وقتی سیگنال واقعاً لازم است (برای decoupling)

در اپ analytics که نباید از اپ orders ایمپورت مستقیم داشته باشه:

from django.dispatch import receiver
from orders.signals import order_created # Custom signal

@receiver(order_created)
def track_order_analytics(sender, order, **kwargs):
AnalyticsEvent.objects.create(
event_type='order_created',
order_id=order.id
)


این‌جا سیگنال کاملاً منطقیه.


قانون من:

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


ذپ.ن: یادتون نره پستا رو با دوستاتون به اشتراک بذارید ❤️❤️

پارت اول ۲۰ سوال جنگو
پارت دوم ۲۰ سوال جنگو
پارت سوم ۲۰ سوال جنگو
پارت چهارم ۲۰ سوال جنگو
پارت پنجم ۲۰ سوال جنگو
پارت ششم ۲۰ سوال جنگو
پارت هفتم ۲۰ سوال جنگو
پارت هشتم ۲۰ سوال جنگو
پارت نهم ۲۰ سوال جنگو
پارت دهم ۲۰ سوال جنگو
پارت یازدهم ۲۰ سوال جنگو

#پارت_دوازدهم #جنگو #django #پایتون #برنامه_نویسی

@PhiloLearn
4
رقیبمون با یه محصول "زشت" بازار رو گرفت؛ در حالی که ما درگیر خوشگل کردن دکمه‌ها بودیم!

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

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

نتیجه؟ یه فاجعه‌ی تمام‌عیار.

۶ ماه گذشت و ما هنوز داشتیم دکمه‌ها رو پولیش میکردیم. یه روز صبح بیدار شدیم و دیدیم رقیبمون با یه محصول "نصفه و نیمه"، "زشت" و "باگ‌دار" اومد بالا.

ما خندیدیم: "این چیه؟ آبروریزیه!" ولی بازار نخندید. بازار خرید.

چرا؟ چون وقتی ما داشتیم توی آزمایشگاه روی "کمال‌گرایی" کار میکردیم، اونا داشتن توی "بازار" فیدبک میگرفتن. اونا باگ‌هاشون رو با مشتری حل کردن، ما باگ‌هامون رو با تخیلاتمون.

به این پدیده میگن: Feature Creep (خزش ویژگی). این قاتلیه که با لباس شیک کیفیت میاد تو شرکتت و استارتاپت رو خفه میکنه.

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

محصول کامل، محصولیه که مرده. محصول زنده، ناقصه ولی داره کار میکنه.

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

@DevTwitter | <Hossein Moradi/>
👍41🤣1
دوستان
میشه بگید که بالایی به نظرتون بهتره یا پایینی

غزل 102
دوش آگهی ز یارِ سفر کرده داد باد
من نیز دل به باد دهم، هر چه باد باد
کارم بدان رسید که همرازِ خود کنم
هر شام برق لامِع و هر بامداد باد
در چینِ طرهٔ تو دل بی حِفاظِ من
هرگز نگفت مسکنِ مألوف یاد باد
امروز قدرِ پندِ عزیزان شناختم
یا رب روانِ ناصحِ ما از تو شاد باد
خون شد دلم به یادِ تو هر گَه که در چمن
بندِ قبایِ غنچهٔ گل می‌گشاد باد
از دست رفته بود وجودِ ضعیفِ من
صبحم به بویِ وصلِ تو جان باز داد، باد
حافظ نهادِ نیکِ تو کامت بر آورد
جان‌ها فدایِ مردمِ نیکو نهاد باد



غزل 102
دوش آگهی ز یارِ سفر کرده داد باد
من نیز دل به باد دهم، هر چه باد باد
کارم بدان رسید که همرازِ خود کنم
هر شام برق لامِع و هر بامداد باد
در چینِ طرهٔ تو دل بی حِفاظِ من
هرگز نگفت مسکنِ مألوف یاد باد
امروز قدرِ پندِ عزیزان شناختم
یا رب روانِ ناصحِ ما از تو شاد باد
خون شد دلم به یادِ تو هر گَه که در چمن
بندِ قبایِ غنچهٔ گل می‌گشاد باد
از دست رفته بود وجودِ ضعیفِ من
صبحم به بویِ وصلِ تو جان باز داد، باد
حافظ نهادِ نیکِ تو کامت بر آورد
جان‌ها فدایِ مردمِ نیکو نهاد باد
Forwarded from دیوان حافظ
🍉🍉 @this_hafez_bot 🍉🍉
2
ربات فال حافظ رو یادتونه؟

https://news.1rj.ru/str/this_hafez_bot

آپدیتش کردم ❤️❤️ (طبق معمولا از AI برای نوشتن کامنت ها و ReadMe استفاده کردم)

https://github.com/Hr-ArshA/this_hafez_bot

پ.ن: یه سری آپشن ریز دیگه هم قراره بهش اضافه کنم. امیدوارم قبل از یلدا برسونمشون 😁.
گروهی داشتیم... انجمن ونداد
و البته داریم اما پرایوت شده
(اون قبلیه هم که عمومی بود تعطیله مدتیه)

دوستانی که تمایل دارن عضو بشن می‌تونن پیوی لینکش رو دریافت کنن یا این زیر کامنت کنن
@Pink0rca

جمع خوبیه، تلاش بر اینه که دوستانه و فنی باشه...
#موقت
PhiloLearn
ربات فال حافظ رو یادتونه؟ https://news.1rj.ru/str/this_hafez_bot آپدیتش کردم ❤️❤️ (طبق معمولا از AI برای نوشتن کامنت ها و ReadMe استفاده کردم) https://github.com/Hr-ArshA/this_hafez_bot پ.ن: یه سری آپشن ریز دیگه هم قراره بهش اضافه کنم. امیدوارم قبل از یلدا برسونمشون…
خب اون آپشنی که میخواستم اضافه کنم هم اضافه شد.
کافیه آیدی کانال رو بنویسید و اسم اونی که میخواید براش فال بگیرید رو در ادامش و کمی صبر کنید و روی گزینه ای که بهتون نشون میده کلیک کنید. اینطوری:

@this_hafez_bot arsha

و بعد فال رو میفرسته توی چت مورد نظر 😂.
نتیجه مثل پست پایینی میشه
1
❤️❤️ فال برای @sohrabcontents ❤️❤️

- غزل ۱۲۱

هر آن کو خاطرِ مجموع و یارِ نازنین دارد

سعادت همدم او گشت و دولتْ همنشین دارد

حریمِ عشق را درگَه، بسی بالاتر از عقل است

کسی آن آستان بوسد، که جان در آستین دارد

دهانِ تَنگِ شیرینش، مگر مُلکِ سلیمان است

که نقشِ خاتمِ لعلش، جهان زیرِ نگین دارد

لبِ لعل و خطِ مشکین، چو آنش هست و اینش هست

بنازم دلبرِ خود را، که حُسنش آن و این دارد

به خواری منگر ای مُنعِم، ضعیفان و نحیفان را

که صدرِ مجلسِ عشرت، گدای رهنشین دارد

چو بر رویِ زمین باشی، توانایی غنیمت دان

که دورانْ ناتوانی‌ها، بسی زیرِ زمین دارد

بلاگردانِ جان و تن، دعایِ مستمندان است

که بیند خیر از آن خرمن که ننگ از خوشه چین دارد؟

صبا از عشقِ من رمزی، بگو با آن شهِ خوبان

که صد جمشید و کیخسرو، غلامِ کمترین دارد

و گر گوید نمی‌خواهم، چو حافظ عاشقِ مفلس

بگوییدش که سلطانی، گدایی همنشین دارد


🍉🍉 @this_hafez_bot 🍉🍉
2
Forwarded from 🪷 My Safe Aquarium  ( Mahi)
Media is too big
VIEW IN TELEGRAM
The law of the instrument:
To a man with a hammer, everything looks like a nail.
👍13
حقیری یه چیزی ساخته بود که خیلی ازش خوشم اومده بود: لینک ویدیو یوتیوب رو میدادی بهش و بهت یه خلاصه ای از اون ویدیو رو میفرستاد
ولی خب مثل باقی چیزایی که حقیری میسازه بعد از یک مدت از دسترس عموم خارج شد متاسفانه و خب من هم گشتم تا چیزی مشابهش رو پیدا کنم...
و خب موفق شدم چیزی پیدا کنم.

https://notegpt.io/youtube-video-summarizer

این سایت به شکل رایگان متن ویدیو و خلاصش رو بهتون میده
باقی آپشن هاشن رو فکر کنم باید خرید و همین دوتایی که گفتم هم فکر کنم محدودیت داشته باشه، خودم هیچ وقت بیشتر از ۳-۴ بار در روز نشده ازش استفاده کنم

@PhiloLearn
2