۲ سال پیش، در همین روز gpt منتشر شد. ۲ سال گذشته و هنوز بعضیا نگرانن جاشون رو GPT ممکنه بگیره تقریبا این سوالو روزی ۱۰ بار میشنوم. اما حقیقت اینه که GPT در حال حاضر یک درصد کاره پروداکت هم نتونسته بکنه بعد از ۲ سال توسعه. توسعه یک پروداکت تو یک تیم پروداکت چطوریه؟
یک تیم دیزان هست، که user research انجام میده. سعی میکنه نیاز کاربر رو متوجه شه و یک راهکار خلاقانه ارائه میده، که تو پروداکت های موفق معمولا راهکار نوین و جدید هست. یک جاهایی تیم دیزاین باید با تیم توسعه صحبت کنه و جلسه بذاره که درک کنه نرم افزار الان چطوری کار میکنه و چه چیزایی ممکنه انجام دادنش. این جلسات توسط تیم دیزاین شکل میگیره.
ایا gpt میتونه ریسرچ کنه؟ نه آیا gpt میتونه یک design problem رو حل کنه؟ نه ایا gpt خلاقیت داره؟ نه ایا gpt میتونه به صورت pro active اون جلسات و ارتباطات رو با تیم توسعه داشته باشه؟ نه
میرسیم به مرحله توسعه،
تیم توسعه دیزاین رو میبینه. دوباره ارزیابی میکنه. ادج کیس هارو بررسی میکنه. ادج کیس ها دو دسته هستن، یا تکنیکال هستن یا بیزنس. با راه حل دادن و پلن توسعه فیچر، تیم توسعه دهنده کارشو شروع میکنه. معمولا ۷۰-۸۰ درصد سختی کار، تو حل کردن مشکلات بیزنسیه که راه حل دقیق و درستی ندارن. راه حل زیاده و بر اساس خلاقیت توسعه دهنده، میتونه گزینه بهتر همیشه وجود داشته باشه
ایا gpt میتونه ادج کیس تکنیکال یا بیزنس رو متوجه نشه؟ نه ایا میتونه خلاقیت داشته باشه تو حل کردن مشکل بیزنسی؟ نه و …
من تا صبح میتونم این رو ادامه بدم… برای همین gpt الان نیم درصد تیم پروداکت هم نیست و یک سری کار های تکراری و حوصله سربر رو اتوماتیک تر کرده. اگه واقعا فکر میکنید gpt الان جاتون رو پرکرده، واقعا باید به مهارتتون شک کنید….
هر کدوم از این استیج های توسعه پروداکت، باید نوشته شه توسط یک شرکتی. تبدیل شه به یک پروداکت، مارکت رو قانع کنه استفادش کنند. و کار کنه. بنظرتون شرکتی تو دنیا هست که تو چند سال بتونه همه این فیچر هارو stable بده بیرون تست شده و فراگیر شده با هزینه معقول؟
@PyBackendHub
یک تیم دیزان هست، که user research انجام میده. سعی میکنه نیاز کاربر رو متوجه شه و یک راهکار خلاقانه ارائه میده، که تو پروداکت های موفق معمولا راهکار نوین و جدید هست. یک جاهایی تیم دیزاین باید با تیم توسعه صحبت کنه و جلسه بذاره که درک کنه نرم افزار الان چطوری کار میکنه و چه چیزایی ممکنه انجام دادنش. این جلسات توسط تیم دیزاین شکل میگیره.
ایا gpt میتونه ریسرچ کنه؟ نه آیا gpt میتونه یک design problem رو حل کنه؟ نه ایا gpt خلاقیت داره؟ نه ایا gpt میتونه به صورت pro active اون جلسات و ارتباطات رو با تیم توسعه داشته باشه؟ نه
میرسیم به مرحله توسعه،
تیم توسعه دیزاین رو میبینه. دوباره ارزیابی میکنه. ادج کیس هارو بررسی میکنه. ادج کیس ها دو دسته هستن، یا تکنیکال هستن یا بیزنس. با راه حل دادن و پلن توسعه فیچر، تیم توسعه دهنده کارشو شروع میکنه. معمولا ۷۰-۸۰ درصد سختی کار، تو حل کردن مشکلات بیزنسیه که راه حل دقیق و درستی ندارن. راه حل زیاده و بر اساس خلاقیت توسعه دهنده، میتونه گزینه بهتر همیشه وجود داشته باشه
ایا gpt میتونه ادج کیس تکنیکال یا بیزنس رو متوجه نشه؟ نه ایا میتونه خلاقیت داشته باشه تو حل کردن مشکل بیزنسی؟ نه و …
من تا صبح میتونم این رو ادامه بدم… برای همین gpt الان نیم درصد تیم پروداکت هم نیست و یک سری کار های تکراری و حوصله سربر رو اتوماتیک تر کرده. اگه واقعا فکر میکنید gpt الان جاتون رو پرکرده، واقعا باید به مهارتتون شک کنید….
هر کدوم از این استیج های توسعه پروداکت، باید نوشته شه توسط یک شرکتی. تبدیل شه به یک پروداکت، مارکت رو قانع کنه استفادش کنند. و کار کنه. بنظرتون شرکتی تو دنیا هست که تو چند سال بتونه همه این فیچر هارو stable بده بیرون تست شده و فراگیر شده با هزینه معقول؟
@PyBackendHub
Forwarded from Sadra Codes
استکی که ابتدای راه انتخاب میکنید خیلی خیلی مهمه و باید حسابی با تحقیق و برنامهریزی انتخابش کنید. آینده رو بسنجید. هدف خودتون رو بسنجید. صرف علاقه یا بدلیل سهولت یا محبوبیت، یک زبان رو انتخاب نکنید.
اینکه میگن یه زبان/فریمورک/ابزار رو که انتخاب کردید، تمام تمرکز رو بذارید روش و حسابی توش دیپ شید کاملا اشتباهه بنظرم.
شاید دیپ شدن در اون استک خاص خوب و مفید باشه، ولی به هیچ وجه تمام تمرکز رو روی اون نذارید. دقیقا مثل همون قضیه تخم مرغ و سبده. همیشه توی ساید داستان، یکی دوتا ابزار یا فریم ورک دیگه که زیاد ارتباطی به استک اصلیتون ندارن رو هم کار کنید و گاها جدی دنبالش کنید. بک اند پایتون کار میکنید؟ هرازگاهی یه دوتا توتوریال از ریکت یا نکست ببینید.
اینطوری اتفاقی که میوفته، هم دید بهتری واسه ادامه مسیر دارین، هم اگه استک اولی زیاد چنگی به دل نزد طی گذر زمان و شما رو به هدفتون نزدیک نکرد، حداقلش اینه که میتونید از ترکیب چند استکی که کار کردید خروجی بهتر و به نتیجه قابل قبولی برسید.
من اوایل که بعد از سالها پایتون کد زدن شروع کردم تایپ اسکریپت یاد گرفتن، بارها میشد که توی پایتون سعی میکردم مکانیزم هایی که سمت ریکت هستن رو پیاده کنم. همینجوری واسه خودم دکوریتورهایی طراحی میکردم تا کمبود typing پایتون رو نسبت به تایپ اسکریپت برطرف کنم. ( صرفا واسه تفریح)
گاها یهو دیدین که همین سیستم، خودش تونست تبدیل به یه ایده شه و روی ریپازیتوری پایتون (یا بلعکس) مرج شه حتی. اگه دقت کرده باشین خیلی از دولوپرهای پایتون اصلا استک اصلیشون پایتون نیس. مثلا طرف راست کد میزنه، میگه فلان چیزو اینجا داریم، شما هم اضافه کنید. (این سیستم واسه فیچر هایی که جدید رلیز میشن روی یه زبان خیلی جواب میده)
اینکه میگن یه زبان/فریمورک/ابزار رو که انتخاب کردید، تمام تمرکز رو بذارید روش و حسابی توش دیپ شید کاملا اشتباهه بنظرم.
شاید دیپ شدن در اون استک خاص خوب و مفید باشه، ولی به هیچ وجه تمام تمرکز رو روی اون نذارید. دقیقا مثل همون قضیه تخم مرغ و سبده. همیشه توی ساید داستان، یکی دوتا ابزار یا فریم ورک دیگه که زیاد ارتباطی به استک اصلیتون ندارن رو هم کار کنید و گاها جدی دنبالش کنید. بک اند پایتون کار میکنید؟ هرازگاهی یه دوتا توتوریال از ریکت یا نکست ببینید.
اینطوری اتفاقی که میوفته، هم دید بهتری واسه ادامه مسیر دارین، هم اگه استک اولی زیاد چنگی به دل نزد طی گذر زمان و شما رو به هدفتون نزدیک نکرد، حداقلش اینه که میتونید از ترکیب چند استکی که کار کردید خروجی بهتر و به نتیجه قابل قبولی برسید.
من اوایل که بعد از سالها پایتون کد زدن شروع کردم تایپ اسکریپت یاد گرفتن، بارها میشد که توی پایتون سعی میکردم مکانیزم هایی که سمت ریکت هستن رو پیاده کنم. همینجوری واسه خودم دکوریتورهایی طراحی میکردم تا کمبود typing پایتون رو نسبت به تایپ اسکریپت برطرف کنم. ( صرفا واسه تفریح)
گاها یهو دیدین که همین سیستم، خودش تونست تبدیل به یه ایده شه و روی ریپازیتوری پایتون (یا بلعکس) مرج شه حتی. اگه دقت کرده باشین خیلی از دولوپرهای پایتون اصلا استک اصلیشون پایتون نیس. مثلا طرف راست کد میزنه، میگه فلان چیزو اینجا داریم، شما هم اضافه کنید. (این سیستم واسه فیچر هایی که جدید رلیز میشن روی یه زبان خیلی جواب میده)
یکی از اشتباهات رایج و خیلی بد تو دیزاین دیتابیس که من دیدم خیلی انجام میدن اینه که سعی میکنن state یک entity رو با چند boolean ست کنند.
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
@PyBackendHub
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
match state:
case State.FAILED:
email_to_user()
case State.SUCCESS | State.FAILED:
pass # do nothing
case _:
assert_never(state)
@PyBackendHub
https://github.com/teamhanko/hanko
ایده pass-key رو خیلی دوست دارم. واقعا یوزرفرندلی و امنیت رو باهم تو یک level دیگه داره! اینم یک سرویس اوپن سورس برای اینکاره.
@PyBackendHub
ایده pass-key رو خیلی دوست دارم. واقعا یوزرفرندلی و امنیت رو باهم تو یک level دیگه داره! اینم یک سرویس اوپن سورس برای اینکاره.
@PyBackendHub
GitHub
GitHub - teamhanko/hanko: The Complete Authentication and User Management Solution for the Passkey Era. Open Source Alternative…
The Complete Authentication and User Management Solution for the Passkey Era. Open Source Alternative to Clerk, Auth0, et al. - teamhanko/hanko
Forwarded from Django Expert (Boby Cloud)
Python BackendHub
🚫 اگه مثل توضیحات بالا عمل میکنید، یک مهندس نرمافزار نیستید. ™️ @DjangoIR 〰️〰️〰️〰️〰️〰️ © @DjangoEx
خیلیا منظور این متن رو متوجه نشدن، قرار نیست شما انجین دیتابیس بنویسی. ولی همین که بدونی چیه و بتونی راجبش ۵ دقیقه حرف بزنی خیلی مهمه چون بیشتر روز باهاش درگیری. یا بهتره خوده raw sql رو یاد بگیری تا اینکه orm django رو بدون یاد گرفتن sql استفاده کنی ازش.
ایا میشه بدون دونستن sql از جنگو استفاده کرد؟ بله. آیا در این صورت شما skilled worker محسوبمیشین؟ نه.
خیلی وقتا ممکنه بخاطر دانش بیشترتون، یک راهکار بهتر به ذهنتون برسه که برد بزرگی رو برای بیزنس رقم بزنه. به خاطر دانش بیشترتون، کدتون ممکنه باگ کمتری داشته باشه که براتون پروموشن خواهد داشت. و …
نقل قول ازنظرر Kurt Guntheroth، با ۴۰ سال سابقه و نویسنده چند کتاب معروف:
Some software jobs you can get after a 2-year Associate’s Degree from a community college, or a 9-month boot camp, just like a blue-collar job.
Some software jobs don’t require much independent thought and analysis. How hard is it to arrange content on a web site? (Yes, I know, as hard as you want to make it. But not always).
Some software jobs are done in assembly-line fashion. Pull the next feature card off the stack and start coding, pull the next bug report off the list and start looking for a fix. Your job has no beginning and no end, just an endless stream of little tasks (called sprints), with no time to rest in between, just like a blue-collar job.
Some bosses of software people are Dickensian horrors, driving their team to work long, uncompensated hours. Never a word of praise, but the sure prospect of getting fired for not toeing the mark, just like a blue-collar job.
But those same bosses will insist software is a white collar job, because if it ever did become a blue-collar job, they would have to pay time-and-a-half for overtime (in the US).
I think what’s true is that the software profession is diverging into two levels of skill, professional software developers, and programmers. Once upon a time it was like this, but the original reason for programmers (typing code onto punch cards and running it on batch terminals) went away. Now we’ve got easy problems solved by programmers with limited education, and really hard problems, solved by highly educated and trained professionals.
@PyBackendHub
ایا میشه بدون دونستن sql از جنگو استفاده کرد؟ بله. آیا در این صورت شما skilled worker محسوبمیشین؟ نه.
خیلی وقتا ممکنه بخاطر دانش بیشترتون، یک راهکار بهتر به ذهنتون برسه که برد بزرگی رو برای بیزنس رقم بزنه. به خاطر دانش بیشترتون، کدتون ممکنه باگ کمتری داشته باشه که براتون پروموشن خواهد داشت. و …
نقل قول ازنظرر Kurt Guntheroth، با ۴۰ سال سابقه و نویسنده چند کتاب معروف:
Some software jobs you can get after a 2-year Associate’s Degree from a community college, or a 9-month boot camp, just like a blue-collar job.
Some software jobs don’t require much independent thought and analysis. How hard is it to arrange content on a web site? (Yes, I know, as hard as you want to make it. But not always).
Some software jobs are done in assembly-line fashion. Pull the next feature card off the stack and start coding, pull the next bug report off the list and start looking for a fix. Your job has no beginning and no end, just an endless stream of little tasks (called sprints), with no time to rest in between, just like a blue-collar job.
Some bosses of software people are Dickensian horrors, driving their team to work long, uncompensated hours. Never a word of praise, but the sure prospect of getting fired for not toeing the mark, just like a blue-collar job.
But those same bosses will insist software is a white collar job, because if it ever did become a blue-collar job, they would have to pay time-and-a-half for overtime (in the US).
I think what’s true is that the software profession is diverging into two levels of skill, professional software developers, and programmers. Once upon a time it was like this, but the original reason for programmers (typing code onto punch cards and running it on batch terminals) went away. Now we’ve got easy problems solved by programmers with limited education, and really hard problems, solved by highly educated and trained professionals.
@PyBackendHub
هیچوقت جنس پیچیدگی که دیزاین پترن به کد شما اضافه میکنه رو عمیقا متوجه نشده بودم (یعنی نمیتونستم توضیحش بدم)، تا اینکه این ویدیو رو دیدم:
https://youtu.be/SEp0NrXWwoo?si=mBy7nitVakta-SNz
پیچیدگی که به برنامه شما اضافه میکنه اسم گذاری هست😄. با دیدن این ویدیو متوجه این جملم میشین. حتما توصیه میکنم ببینید خیلی جالبه.
@PyBackendHub
https://youtu.be/SEp0NrXWwoo?si=mBy7nitVakta-SNz
پیچیدگی که به برنامه شما اضافه میکنه اسم گذاری هست😄. با دیدن این ویدیو متوجه این جملم میشین. حتما توصیه میکنم ببینید خیلی جالبه.
@PyBackendHub
YouTube
Programming - Naming Things Is Easy
This is a talk about naming things in software. The title is a joke - of course naming things is hard. BUT - "If you don't create the thing, you don't need to name the thing".
The easiest way to name something well is to not name it. Ask yourself - "Is this…
The easiest way to name something well is to not name it. Ask yourself - "Is this…
یک باگ خیلی مزخرف تو pylance که هنوز بعد ۳ ماه اصلاح نشده هنوز
وقتی type alias دارین تو پروژتون, دیگه تو یک فایل دیگه وقتی میخواین ایمپورتش کنید suggest بهتون نمیده.
اگه pylanceتون رو به نسخه 2024.9.2 داونگرید کنید درست میشه.
@PyBackendHub
وقتی type alias دارین تو پروژتون, دیگه تو یک فایل دیگه وقتی میخواین ایمپورتش کنید suggest بهتون نمیده.
اگه pylanceتون رو به نسخه 2024.9.2 داونگرید کنید درست میشه.
@PyBackendHub
Python BackendHub
حق @PyBackendHub
یک نقل قول (و حق) دیگه از پرایم
اگه از AI استفاده میکنید toolbox تون باشه، نه boxتون!
به زبون ساده تر، از AI مثل یک جعبه ابزار استفاده کنید. نه اینکه کامل بهش وابسته باشین.
ما به طور کلی دو مشکل داریم وقتی کد میزنیم،
یا داریم به کامپیوتر میگیم چیکار کنه. مثلا اگه رو این دکمه کلیک کردم، یک modal باز شه. فریم ورک و AI و جعبه ابزار هایی که داریم، به ما تو این مسیر کمک میکنن. این کاره خیلی سختی نیست. بالاخره از پسش برمیایم.
یا داریم فکر میکنیم که کامپیوتر باید چیکار کنه. اصل پیچیدگی کار ما همینجاست. و تو این مورد AI اصلا نباید و نمیتونه کمکتون کنه!
@PyBackendHub
اگه از AI استفاده میکنید toolbox تون باشه، نه boxتون!
به زبون ساده تر، از AI مثل یک جعبه ابزار استفاده کنید. نه اینکه کامل بهش وابسته باشین.
ما به طور کلی دو مشکل داریم وقتی کد میزنیم،
یا داریم به کامپیوتر میگیم چیکار کنه. مثلا اگه رو این دکمه کلیک کردم، یک modal باز شه. فریم ورک و AI و جعبه ابزار هایی که داریم، به ما تو این مسیر کمک میکنن. این کاره خیلی سختی نیست. بالاخره از پسش برمیایم.
یا داریم فکر میکنیم که کامپیوتر باید چیکار کنه. اصل پیچیدگی کار ما همینجاست. و تو این مورد AI اصلا نباید و نمیتونه کمکتون کنه!
@PyBackendHub
Forwarded from BenDev
بچه هایی که نگران هوش مصنوعی هستن من حقیقتا نمی خواستم این راهو افشا ولی خب دیگ دلم نیومد به شما نگم
ببینید من یه پلنی دارم که مدت هاست دارم بهش فکر می کنم
فرض کنید یهو یه هوش مصنوعی میآد که میتونه همه برنامه نویسا رو بی کار کنه مثلا همین https://devin.ai/
فرض کنید خیلی پیشرفته تر شه
حالا من یهو میرم ازش میخوام که خودش رو بسازه به اسم
https://beni.ai/
بعد منم میلیونر میشم
همین دیگ
فقط لطفا به کسی نگین
@BenDevelop
ببینید من یه پلنی دارم که مدت هاست دارم بهش فکر می کنم
فرض کنید یهو یه هوش مصنوعی میآد که میتونه همه برنامه نویسا رو بی کار کنه مثلا همین https://devin.ai/
فرض کنید خیلی پیشرفته تر شه
حالا من یهو میرم ازش میخوام که خودش رو بسازه به اسم
https://beni.ai/
بعد منم میلیونر میشم
همین دیگ
فقط لطفا به کسی نگین
@BenDevelop
devin.ai
Devin is a collaborative AI teammate built to help ambitious engineering teams achieve more.
Python BackendHub
۲ سال پیش، در همین روز gpt منتشر شد. ۲ سال گذشته و هنوز بعضیا نگرانن جاشون رو GPT ممکنه بگیره تقریبا این سوالو روزی ۱۰ بار میشنوم. اما حقیقت اینه که GPT در حال حاضر یک درصد کاره پروداکت هم نتونسته بکنه بعد از ۲ سال توسعه. توسعه یک پروداکت تو یک تیم پروداکت…
Please open Telegram to view this post
VIEW IN TELEGRAM
Python BackendHub
در پی این کامنت...
Please open Telegram to view this post
VIEW IN TELEGRAM
شرکتی که توش کار میکنم در حال استخدام Senior frontend engineer هست
https://join.com/companies/noah-labs/13793716-senior-frontend-developer
@PyBackendHub
https://join.com/companies/noah-labs/13793716-senior-frontend-developer
@PyBackendHub
Join
Noah Labs (Berlin): Senior Frontend developer
Noah Labs has a job opening for Senior Frontend developer in Berlin (published: 14.03.2025). Apply now or check the other available jobs.
https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/
اینو حتما بخونید. Datetime is hard. کدی که با دیت تایم سروکار داره، احتمال خیلی زیاد معمولا باگ داره
@PyBackendHub
اینو حتما بخونید. Datetime is hard. کدی که با دیت تایم سروکار داره، احتمال خیلی زیاد معمولا باگ داره
@PyBackendHub
Arie Bovenberg
Ten Python datetime pitfalls, and what libraries are (not) doing about it
It’s no secret that the Python datetime library has its quirks. Not only are there probably more than you think; third-party libraries don’t address most of them! I created a new library to explore what a better datetime library could look like.
Forwarded from Sadra Codes
گشت گرداگرد مهر تابناك، ايران زمين
روز نو آمد و شد شادى برون زندر كمین
اى تو يزدان، اى تو گرداننده مهر و سپهر
برتريناش كن برايم اين زمان و اين زمين
سال خوبی داشته باشن! ❤️
روز نو آمد و شد شادى برون زندر كمین
اى تو يزدان، اى تو گرداننده مهر و سپهر
برتريناش كن برايم اين زمان و اين زمين
سال خوبی داشته باشن! ❤️
شاید باورتون نشه ولی این ته یک جواب به یک سوال بود وقتی داشتم مدل رو تست میکردم 😂😂
نمیدوستم AI هم زده تو کاره قهوه. این روزاست که جای انسانارو بگیره 😂
@PyBackendHub
نمیدوستم AI هم زده تو کاره قهوه. این روزاست که جای انسانارو بگیره 😂
@PyBackendHub