TorhamDev | تورهام 😳
اگر یک روزی داشتید روی گیت کار میکرید و اشتباهی انجام دادید. مثلا چیزی رو پاک کردید یا اشتباه rebase کردید میتونید با دستور git reflog تمام هیستوری کارهایی که کردید رو ببینید و برای مثال برید به لحظه قبل از شروع rebase با دستور git reset برای مثال تغییری…
دوستان مراقب باشید اگه hard reset میکنید کد unstage نداشته باشید مگرنه کداتون میپره 😭
💔3❤1
حالم دیگه داره بد میشه انقدر تو هر مزخرفی AI چپوندن. دیگه نمیشه IDE پیدا کرد که بدون AI باشه جز vim و بچههاش!
انگار آدمها مغز ندارن، و جدی یکسریها به این مرحله رسیدن گه دیگه مغز ندارن و همه چیز رو با AI حل میکنن.
AI -> autocomplite on steroids
یکسریها دیگه تصمیمات زندگیشون هم با AI میگیرن. میسه مغز برخی رو برداشت به جاش یک LLM گذاشت.
@TorhamDevCH
انگار آدمها مغز ندارن، و جدی یکسریها به این مرحله رسیدن گه دیگه مغز ندارن و همه چیز رو با AI حل میکنن.
AI -> autocomplite on steroids
یکسریها دیگه تصمیمات زندگیشون هم با AI میگیرن. میسه مغز برخی رو برداشت به جاش یک LLM گذاشت.
@TorhamDevCH
1😭18👍12👎7❤1💔1
TorhamDev | تورهام 😳
حالم دیگه داره بد میشه انقدر تو هر مزخرفی AI چپوندن. دیگه نمیشه IDE پیدا کرد که بدون AI باشه جز vim و بچههاش! انگار آدمها مغز ندارن، و جدی یکسریها به این مرحله رسیدن گه دیگه مغز ندارن و همه چیز رو با AI حل میکنن. AI -> autocomplite on steroids یکسریها…
روش صحیح استفاده از AI از نظر بنده، فرض کنید مشکل داخل کد خوردیم.
۱. ارور رو میخونید و سعی میکنیم با مغز خودمون بفهمیم چی شده
۲. ارور رو گوگل میکنیم و سعی میکنیم بفهمیم چرا این ارور رخ میده و حالا داخل کد چه کار مشابهی کردیم
۳. از Trace ارور میخونیم کجا مشکل بوده و سعی میکنیم دیباگش کنیم با گذاشتن پرینت با ران کردن دیباگر و با نوشتن تست برای اون بخش. مخصوصا نوشتن تست
۴. هیچ ایده ای نداریم چه غلطی باید کنیم. گوگل هم چیزی بهمون ندادن. میریم از سینیورمون میپرسیم.
۴. حتی سینیور هم نمیدونست چه غلطی باید کنه. چتچپت رو باز میکنیم و برای توضیح میدیم. چتجپت شروع میکنه به جنریت کردن متن و با خوندن اون ایده میگیریم
۵. ایده هایی که چت چپت داده رو گوگل میکنیم تا بفهمیم چرت و پرت بهمون نگفته.
اینشکلی به نظرم باید استفاده شه.
گاهی برای خلاصه سازی مقالات هم خوبه ولی هنوز هم داکیومنت خود ابزار و خود مقاله رو خوندن خیلی بهتر تا خلاصه تولید شده توسط LLMs.
نمیگم کلا استفاده نکنید میگم که وابسته نباشید مثل یک ابزار باهاش برخورد کنید.
@TorhamDevCH
۱. ارور رو میخونید و سعی میکنیم با مغز خودمون بفهمیم چی شده
۲. ارور رو گوگل میکنیم و سعی میکنیم بفهمیم چرا این ارور رخ میده و حالا داخل کد چه کار مشابهی کردیم
۳. از Trace ارور میخونیم کجا مشکل بوده و سعی میکنیم دیباگش کنیم با گذاشتن پرینت با ران کردن دیباگر و با نوشتن تست برای اون بخش. مخصوصا نوشتن تست
۴. هیچ ایده ای نداریم چه غلطی باید کنیم. گوگل هم چیزی بهمون ندادن. میریم از سینیورمون میپرسیم.
۴. حتی سینیور هم نمیدونست چه غلطی باید کنه. چتچپت رو باز میکنیم و برای توضیح میدیم. چتجپت شروع میکنه به جنریت کردن متن و با خوندن اون ایده میگیریم
۵. ایده هایی که چت چپت داده رو گوگل میکنیم تا بفهمیم چرت و پرت بهمون نگفته.
اینشکلی به نظرم باید استفاده شه.
گاهی برای خلاصه سازی مقالات هم خوبه ولی هنوز هم داکیومنت خود ابزار و خود مقاله رو خوندن خیلی بهتر تا خلاصه تولید شده توسط LLMs.
نمیگم کلا استفاده نکنید میگم که وابسته نباشید مثل یک ابزار باهاش برخورد کنید.
@TorhamDevCH
👍22👎8
TorhamDev | تورهام 😳
روش صحیح استفاده از AI از نظر بنده، فرض کنید مشکل داخل کد خوردیم. ۱. ارور رو میخونید و سعی میکنیم با مغز خودمون بفهمیم چی شده ۲. ارور رو گوگل میکنیم و سعی میکنیم بفهمیم چرا این ارور رخ میده و حالا داخل کد چه کار مشابهی کردیم ۳. از Trace ارور میخونیم کجا…
و سعی کنید یکسری چت مشخص داشته باشید برای کارهای مشخص. برای مثال دوتا از چتها من داخل چت چپت
یکیش صرفا براب سوالات برنامهنویسی هستش و از اونجایی که تمام چت هایی قبلیم هم درباره موضوعات اونجا وجود داره گاهی رفرنسهایی رو پیدا میکنه که کد قدیمی که بهش دادم وجود داشته که من یادم نبوده. پس سعی کنید هربار چت جدید باز نکنید.
برای چت پایتون بک اند میتونید همچین پرامتی اولین بار بهش بدید تا کمتر مهمل بگه.
Focus on substance over praise. Skip unnecessary compliments or praise that lacks depth. Engage critically with my ideas, question assumptions, identify biases, and offer counterpoints where relevant. Don’t shy away from disagreement when it’s warranted, and ensure that any agreement is grounded in reason and evidence.
and I will ask you python back-end related questions. always be very careful with your answers and always include resources that you used to generate information, including url and etc.
چت دوم هم یک پرامت ساده است که بهش گفتم اگر هر متن انگلیسی برات فرستادم غلط هایی املایی و گرامریاش رو بگیر و فقط متن تصحیح شده رو بفرست. صرفا یک ابزار اصلاح متن ازش در اوردم.
خلاصه نمیرم بگم fix thid bug. یا write x function for me.
@TorhamDevCH
یکیش صرفا براب سوالات برنامهنویسی هستش و از اونجایی که تمام چت هایی قبلیم هم درباره موضوعات اونجا وجود داره گاهی رفرنسهایی رو پیدا میکنه که کد قدیمی که بهش دادم وجود داشته که من یادم نبوده. پس سعی کنید هربار چت جدید باز نکنید.
برای چت پایتون بک اند میتونید همچین پرامتی اولین بار بهش بدید تا کمتر مهمل بگه.
Focus on substance over praise. Skip unnecessary compliments or praise that lacks depth. Engage critically with my ideas, question assumptions, identify biases, and offer counterpoints where relevant. Don’t shy away from disagreement when it’s warranted, and ensure that any agreement is grounded in reason and evidence.
and I will ask you python back-end related questions. always be very careful with your answers and always include resources that you used to generate information, including url and etc.
چت دوم هم یک پرامت ساده است که بهش گفتم اگر هر متن انگلیسی برات فرستادم غلط هایی املایی و گرامریاش رو بگیر و فقط متن تصحیح شده رو بفرست. صرفا یک ابزار اصلاح متن ازش در اوردم.
خلاصه نمیرم بگم fix thid bug. یا write x function for me.
@TorhamDevCH
👍5👎4
ایده ام درباره اونایی که زیر پستا بی دلیل دلقک و دیسلاک و ... میزارن.
در موارد خیلی زیاد وقتی بچهها رزومهاشون رو میزارن برای مثال کانال جنگو اکسپرت یک عالمه دیسلایک میخوره یا ایموجی های به اصطلاح منفی.
خواستم بگم در نهایت دلقک در جامعه ما زیاد اگه نبود وضعمون این نبود.
خیلیا تو جامعه ایران سعی میکنن نشون بدن که آدم خفنی هستن و اینا بهترین برنامهنویس/راننده/دکتر و ... ایران یا حتی جهان هستی هستند، منتها دلقک ان جدی نگیرید.
تکلیدمون یک ایده خیلی خوب درباره همه دار. برای مثال هر وقت ازش بپرسی فلانی سینیور یا جونیور یا هرچی هیچ وقت جوابتون رو نمیده :). به نظرش پرسیدن اینکه یک نفر سطحش چیه اشتباه، دلایل منطقیای هم داره
باعث میشه شما توسط لول اون بایوس و رفتارتون باهاش فرق کنه، باعث میشه انگیزتون از دست بدید، یا انگیزه اون فرد از بین ببرید و بهش آسیب بزنید. خودش هم همیشه به حرفهای بقیه گوش میده و همیشه اگه چیزی میخاد رد کنه با دلیل رد میکنه نه با اینکه ببین من خدام هرچی گفتم همینه که هست :)
حالا ما آدمهای برعکس این ماجرا رو هم داریم که فکر میکنن خدان، مخصوصا بین مردها ایران
ادامه...
@TorhamDevCH
در موارد خیلی زیاد وقتی بچهها رزومهاشون رو میزارن برای مثال کانال جنگو اکسپرت یک عالمه دیسلایک میخوره یا ایموجی های به اصطلاح منفی.
خواستم بگم در نهایت دلقک در جامعه ما زیاد اگه نبود وضعمون این نبود.
خیلیا تو جامعه ایران سعی میکنن نشون بدن که آدم خفنی هستن و اینا بهترین برنامهنویس/راننده/دکتر و ... ایران یا حتی جهان هستی هستند، منتها دلقک ان جدی نگیرید.
تکلیدمون یک ایده خیلی خوب درباره همه دار. برای مثال هر وقت ازش بپرسی فلانی سینیور یا جونیور یا هرچی هیچ وقت جوابتون رو نمیده :). به نظرش پرسیدن اینکه یک نفر سطحش چیه اشتباه، دلایل منطقیای هم داره
باعث میشه شما توسط لول اون بایوس و رفتارتون باهاش فرق کنه، باعث میشه انگیزتون از دست بدید، یا انگیزه اون فرد از بین ببرید و بهش آسیب بزنید. خودش هم همیشه به حرفهای بقیه گوش میده و همیشه اگه چیزی میخاد رد کنه با دلیل رد میکنه نه با اینکه ببین من خدام هرچی گفتم همینه که هست :)
حالا ما آدمهای برعکس این ماجرا رو هم داریم که فکر میکنن خدان، مخصوصا بین مردها ایران
ادامه...
@TorhamDevCH
👍34❤10👎4🤡3🔥1👏1🤣1🍌1
TorhamDev | تورهام 😳
ایده ام درباره اونایی که زیر پستا بی دلیل دلقک و دیسلاک و ... میزارن. در موارد خیلی زیاد وقتی بچهها رزومهاشون رو میزارن برای مثال کانال جنگو اکسپرت یک عالمه دیسلایک میخوره یا ایموجی های به اصطلاح منفی. خواستم بگم در نهایت دلقک در جامعه ما زیاد اگه نبود…
از اونجایی که جامعه ایران مرد پرور و قالب دوستان فکر میکنن کره خاکی هول محور عزیزان میچرخه و هرچی بفرمایند حقیقت داره و اگر هم خطایی کردن تقصیر اونایی نیست کار دشمنه.
نتیجه اش هم به وضوح در دانشگاه سطج پایین کشور داخل اساتید میبینید.
خلاصه خواستم بگم که این آدمها جدی نگیرید و ببینید کی داره چی میگه و اون آدم چی بارشه :)
یک آدم رندوم که تو عمرش نزدیک به مصاحبه هم نرفته قطعا دیسلایک زدنش زیر رزومه شما ارزشی نداره و مهم نیست
@TorhamDevCH
نتیجه اش هم به وضوح در دانشگاه سطج پایین کشور داخل اساتید میبینید.
خلاصه خواستم بگم که این آدمها جدی نگیرید و ببینید کی داره چی میگه و اون آدم چی بارشه :)
یک آدم رندوم که تو عمرش نزدیک به مصاحبه هم نرفته قطعا دیسلایک زدنش زیر رزومه شما ارزشی نداره و مهم نیست
@TorhamDevCH
👍26👎2❤1
خوب تا اینایی که بهشون بر خورد دارن لفت میدن یک پست فنی بنویسم
❤12🤣5👎1
Protocol class
داخل پایتون ما یک مفهمومی داریم به اسم protocol. این مفهوم در پایتون دوتا شده، یک پروتوکل داریم که به نحوه پیاده سازی چیزهایی مثل کانتکس منیجیر و ایتریتور و ... میگن که باید رعایت شه و به اصطلاح پرتوکول هستش.
یک پروتوکل داریم که شما از کتابخونه typing ایمپورت میکنید.
from typing import Protocol
این یکی پروتوکل خیلی جذابه.
شما با این پروتوکل میتونید یک تایپ درست کنید که ازش استفاده کنید بدون ارث بری از چیزی یا جایی. بزارید بیشتر توضیح بدم.
برای مثال من یک فانکشن دارم که ورودی EmailSMTP میگیره و از ایمیل اسامتیپی متد send_mail صدا میزنه.
حالا اگه یک روزی من بخام ساپورت از فلان ایمیل سندر جدید اضافه کنم یک کلاس جدید میسازم مثلا
DogMailClint
حالا بدبختی شروع میشه. فانشکن من فقط و فقط EmailSMTP میخاد هرچی دیگه بهش بدی تایپ ارور میده. میگه این تایپش ایمیل اسامتیپی نیست نوموخام.
اینجاست که شما یک پروتوکل مینویسید به این شکل:
اینطوری شما یک پرتوکول دارید که میگه هرچیزی که فانکشن send_email داشته باشه و ورودی و خروجیش هم مثل اینه باشه در نتیجه تایپش EmailClient هستش.
به قول معروف به این ماجرا میگن داکتایپینگ یا تایپ اردکی.
اگه مثل ارد راه میره، اگر مثل اردک صدا میده حتما یک اردک دیگه!
حالا برای فانشکن شما مهم نیست که تایپ ورودیش EmailSMTP باشه یا DogMailClient باشه یا هرچیز دیگه ای تا وقتی که متد send_mail داره و ورودی و خروجیش ( سیگنچر فانکشن) مثل اینه حتما همینی که من لازم دارم :)
اینطوری شما یک تایپ داریو که در حقیقت یک پروتوکل برای هر کلاسیه که میخاد این شکلی باشه :)
این پست ۳ بار نوشتم هربار مثال بد بود :)))
برای اینکه خیلی بیشتر و بهتر بفهمید میتونید این ویدیو رو ببینید:
https://youtu.be/dryNwWvSd4M?si=ZCdBUYs-xaOjIe2e
@TorhamDevCH
داخل پایتون ما یک مفهمومی داریم به اسم protocol. این مفهوم در پایتون دوتا شده، یک پروتوکل داریم که به نحوه پیاده سازی چیزهایی مثل کانتکس منیجیر و ایتریتور و ... میگن که باید رعایت شه و به اصطلاح پرتوکول هستش.
یک پروتوکل داریم که شما از کتابخونه typing ایمپورت میکنید.
from typing import Protocol
این یکی پروتوکل خیلی جذابه.
شما با این پروتوکل میتونید یک تایپ درست کنید که ازش استفاده کنید بدون ارث بری از چیزی یا جایی. بزارید بیشتر توضیح بدم.
برای مثال من یک فانکشن دارم که ورودی EmailSMTP میگیره و از ایمیل اسامتیپی متد send_mail صدا میزنه.
حالا اگه یک روزی من بخام ساپورت از فلان ایمیل سندر جدید اضافه کنم یک کلاس جدید میسازم مثلا
DogMailClint
حالا بدبختی شروع میشه. فانشکن من فقط و فقط EmailSMTP میخاد هرچی دیگه بهش بدی تایپ ارور میده. میگه این تایپش ایمیل اسامتیپی نیست نوموخام.
اینجاست که شما یک پروتوکل مینویسید به این شکل:
class EmailClient(Protocol):
def send_email(addresses: list[str], content: str, attachments: list[File] | None = None):
...اینطوری شما یک پرتوکول دارید که میگه هرچیزی که فانکشن send_email داشته باشه و ورودی و خروجیش هم مثل اینه باشه در نتیجه تایپش EmailClient هستش.
به قول معروف به این ماجرا میگن داکتایپینگ یا تایپ اردکی.
اگه مثل ارد راه میره، اگر مثل اردک صدا میده حتما یک اردک دیگه!
حالا برای فانشکن شما مهم نیست که تایپ ورودیش EmailSMTP باشه یا DogMailClient باشه یا هرچیز دیگه ای تا وقتی که متد send_mail داره و ورودی و خروجیش ( سیگنچر فانکشن) مثل اینه حتما همینی که من لازم دارم :)
اینطوری شما یک تایپ داریو که در حقیقت یک پروتوکل برای هر کلاسیه که میخاد این شکلی باشه :)
این پست ۳ بار نوشتم هربار مثال بد بود :)))
برای اینکه خیلی بیشتر و بهتر بفهمید میتونید این ویدیو رو ببینید:
https://youtu.be/dryNwWvSd4M?si=ZCdBUYs-xaOjIe2e
@TorhamDevCH
YouTube
Protocols vs ABCs in Python - When to Use Which One?
💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.
In this video, I’m revisiting Protocols and ABCs in Python, essential for creating abstraction layers by defining interfaces. I covered this a while back, but it deserves a…
In this video, I’m revisiting Protocols and ABCs in Python, essential for creating abstraction layers by defining interfaces. I covered this a while back, but it deserves a…
🔥12❤1
یک بار برای همیشه.
auto_now
هر بار که آبجکت اپدیت بشه اپدیت میشه
auto_now_add
فقط زمان ساخت ابجکت پر میشه.
برای اینکه یادمون بمونه فرقشون هم از add اخر auto now add استفاده میکنیم. چون که میگه add یعنی زمان اضافه شدن.
فردا یادم میره دوباره
@TorhamDevCH
auto_now
هر بار که آبجکت اپدیت بشه اپدیت میشه
auto_now_add
فقط زمان ساخت ابجکت پر میشه.
برای اینکه یادمون بمونه فرقشون هم از add اخر auto now add استفاده میکنیم. چون که میگه add یعنی زمان اضافه شدن.
@TorhamDevCH
🤣22🔥1
من تیر خوردم شما ادامه بدید.
ترجمه header به فارسی میشه سرآیند
ترجمه agent به فارسی میشه گماشته
ترجمه header به فارسی میشه سرآیند
ترجمه agent به فارسی میشه گماشته
😁13
TorhamDev | تورهام 😳
من تیر خوردم شما ادامه بدید. ترجمه header به فارسی میشه سرآیند ترجمه agent به فارسی میشه گماشته
meanwhile, in parallel universe, when everybody uses translated versions:
امیر جان سرآیند احراز هویت در تشریفات انتقال ابر متن در گماشته ایکس کار نمیکنه.
امیر جان سرآیند احراز هویت در تشریفات انتقال ابر متن در گماشته ایکس کار نمیکنه.
🤣17
وای، مسافر صندلی جلویی داره با استفاده از گوگل ترنسلیت با دوست دختر AIاش چت میکنه. خودایا ویلم کن😂
🤣36🗿2😭1
سودوئر رو از دست دادیم. امیدوارم خوشحال و خندون باشه در ادامه زندگی :)
💔16