Sadra Codes
هی (Hey) رلیز شد! ✨😎 هی یه ابزار کامندلاینه اوپنسورسه که به ChatGPT ورژنهای (3, 4, 3.5turtbo, davinci) وصل میشه. سرویس پیشنهادیش MindsDB هست که بهتون یه سرویس فری پلن استفاده از ChatGPT میده. فقط کافیه توی MindsDB یه اکانت رایگان بسازید، هی رو نصب کنید،…
بهش گفتم به فانکشنم توی فلان فایل، Type Annotations اضافه کن و.. :)
اگه hey رو نصب کردین، زیر همین پست اسکرین شات بدین. ❤️
اگه hey رو نصب کردین، زیر همین پست اسکرین شات بدین. ❤️
🔥7👍1
دوتا ابزار جالب و کاربردی دواپسی که من (بعنوان بکاند کار) خیلی ازشون خوشم اومد!
- لوکال استک: AWS لوکال
- اَکت: GitHub Actions لوکال
یه تایم میگفتیم چرا رو سیستمت نگه میداری؟ بفرست بالا رو ابرا.. از اینترنت استفاده کن.. حالا همهچی داره لوکال میشه. 😁
- لوکال استک: AWS لوکال
- اَکت: GitHub Actions لوکال
یه تایم میگفتیم چرا رو سیستمت نگه میداری؟ بفرست بالا رو ابرا.. از اینترنت استفاده کن.. حالا همهچی داره لوکال میشه. 😁
GitHub
GitHub - localstack/localstack: 💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline
💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline - localstack/localstack
👍8
اگه شما قرار بود تستهای پروژتون رو بنویسید، از کدوم مدل نامگذاری استفاده میکردید؟ + دلیل
1 -
1 -
main_test.py
2 - test_main.py
✍10
Sadra Codes
اگه شما قرار بود تستهای پروژتون رو بنویسید، از کدوم مدل نامگذاری استفاده میکردید؟ + دلیل 1 - main_test.py 2 - test_main.py
بچهها نظرات جالبی دادن. بنظر خودم، اول که تمام تستها باید توی یه پکیج (یه دایرکتوری حاوی init) مجزا باشن و کلا حسابشون از باقی سیستم جدا باشه. درباره نامگذاری فایل تست، من شخصا مورد اول رو پیشنهاد میدم اونم بیشتر شخصیه تا مربوط به کانونشن یا بست پرکتیس خاصی شه.
اگه اول اسم خاص باشه و بعد کلمه تست، تا اسم رو بنویسم و TAB بزنم سریع به اسم فایل میرسم و این خوبه. :)
اگه اول اسم خاص باشه و بعد کلمه تست، تا اسم رو بنویسم و TAB بزنم سریع به اسم فایل میرسم و این خوبه. :)
👍10
CodeNaline S2E7 - Amin Ali
torham
کدنالین اپیزود هفتم، امین علی ✨
تو این ایپزود با امین علی، یک بکاند کار ۱۹ ساله گپ زدیم که نزدیک ۱ ساله وارد بازار کار ایران شده :). سوالات رو پرسیدیم و درباره سختی و مسیر ورود به بازار کار ایران ازش سوال پرسیدیم.
این اپیزود در کستباکس
امین علی : @AminAlih47
🧠 @CodeNaline
💬 @TorhamDevCH
تو این ایپزود با امین علی، یک بکاند کار ۱۹ ساله گپ زدیم که نزدیک ۱ ساله وارد بازار کار ایران شده :). سوالات رو پرسیدیم و درباره سختی و مسیر ورود به بازار کار ایران ازش سوال پرسیدیم.
این اپیزود در کستباکس
امین علی : @AminAlih47
🧠 @CodeNaline
💬 @TorhamDevCH
❤🔥3🔥1
Forwarded from TorhamDev | تورهام 😳
این شما و این وبسایت تورهام ( دست و جیغ و هورا )
نکته : خودش کامل دارک، پس دارکمودها رو خاموش کنید.
مرسی از محمد دری که در این مسیر من را یاری کرد :).
فرانتش هم خودم و محمد زدیم با html و css خالص 🤝.
هنوز دارم کانفیگش میکنم پس حداکثر از فردا گیر بدید با تشکر
https://torham.tech/
نکته : خودش کامل دارک، پس دارکمودها رو خاموش کنید.
مرسی از محمد دری که در این مسیر من را یاری کرد :).
فرانتش هم خودم و محمد زدیم با html و css خالص 🤝.
هنوز دارم کانفیگش میکنم پس حداکثر از فردا گیر بدید با تشکر
https://torham.tech/
🎉20👎1🥰1
CQS stands for Command Query Separation, a principle introduced by Bertrand Meyer in his book "Object-Oriented Software Construction." It states that..
A method should either be a command that performs an action OR a query that returns data, but not both.
This helps to maintain a clear separation of concerns and makes the code easier to understand and maintain.
A method should either be a command that performs an action OR a query that returns data, but not both.
This helps to maintain a clear separation of concerns and makes the code easier to understand and maintain.
👍8
وقتی سوییچ میکنم روی پروژهای، سعی میکنم یبار
پ.ن: توی تصویر، اولین کامیت مسیج زدهشده روی پروژه Git رو میبینید! (شیرینکاری ستون توروالدز)
git log —reverse
بگیرم ببینم چجوری پروژه شروع شده.. مود توسعهدهنده چجوریا بوده. 😁پ.ن: توی تصویر، اولین کامیت مسیج زدهشده روی پروژه Git رو میبینید! (شیرینکاری ستون توروالدز)
🗿14🤣12👍2⚡1🔥1
از localhost استفاده نکنید!
توی تقریبا تمام سیستمعاملها و اینترفیسهای شبکه، localhost دو آدرس آیپی v4 و v6 برمیگردونه و اکثر ابزارها و فریمورک ها میان اول v6 رو تست میکنن، اگه جواب نداد و fail شد، میرن سراغ v4.
حال چه کنیم..؟!
خیلی راحت، از 127.0.0.1 استفاده کنید. دیگه نه فریمورکی lookup انجام میده (چون آدرس IP هست نه HOSTNAME) نه چیزی Fail میشه.
More: https://youtu.be/98SYTvNw1kw
توی تقریبا تمام سیستمعاملها و اینترفیسهای شبکه، localhost دو آدرس آیپی v4 و v6 برمیگردونه و اکثر ابزارها و فریمورک ها میان اول v6 رو تست میکنن، اگه جواب نداد و fail شد، میرن سراغ v4.
IPv4 -> 127.0.0.1این به این معنیه که یه عملیات lookup این وسط انجام میشه و خب یکم زمانبره. اگه سر چک کردن IPv6 به Failure بخوره، بازم زمانبره. حالا اگه اون فریمورک یا ابزار خاص فقط v6 رو چک کنه و بیخیال v4 بشه چی؟! ممکنه دوباره Failure بخوره و سیستم اونجور که باید، کار نکنه.
IPv6 -> ::1
حال چه کنیم..؟!
خیلی راحت، از 127.0.0.1 استفاده کنید. دیگه نه فریمورکی lookup انجام میده (چون آدرس IP هست نه HOSTNAME) نه چیزی Fail میشه.
More: https://youtu.be/98SYTvNw1kw
YouTube
don't use localhost (intermediate) anthony explains #534
in today's video we're going to go over `localhost` and why you probably don't want to use it (and what to use instead!)
playlist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY
==========
twitch: https://twitch.tv/anthonywritescode…
playlist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY
==========
twitch: https://twitch.tv/anthonywritescode…
👍22🤔6
از یه پکیج استفاده میکنم که داره هرجور که دلش میخواد اکسپشن ریز میکنه. هر اتفاقی در زمان ران کردن یکی از متدهاش رقم خورد داره یه RuntimeError صرفا با message های متفاوت ریز میکنه. مثل چنین چیزی:
/exceptions/runtime.py
/main.py
try:
...
except SomeError:
raise RuntimeError(message)
هیچوقت اینجوری اکسپشن ریز نکنید. حالا من، چجوری این مدل Exception رو هندل کنم؟ بجاش مثل یه دولوپر خوب، از Exception ارثبری کنید و اون تایتل خاص رو raise کنید مثلا:/exceptions/runtime.py
class ModelNeedsRetrain(Exception): ...
——-/main.py
from exceptions.runtime import ModelNeedsRetrain
try:
...
except SomeError:
raise ModelNeedsRetrain(message)
اگه اینجور باشه، من این سمت راحت میتونم متوجه شم درد از کجاست و به خوبی هندلش کنم ولی صرفا با messageی که یه exception داره ریز میکنه چطور متوجه داستان شم؟ :)👍13👌1
Forwarded from Django Expert (Mehran Tarif)
متاسفانه صابر راستیکردار، خالق فونتهای وزیر متن (همون فونت زیبایی که روی تلگرام دسکتاپ و گوگلداکز و... به رایگان ازش استفاده میکنیم) و گندم و شبنم و کلی فونت دیگه، به سرطان مبتلا شده و در وبلاگش در این مورد مطلبی نوشته:
مشاهده مطلب در وبلاگ راستیکردار
اگر از فونتهاش استفاده میکنیم، شاید الان دونیت (حمایت مالی) ما بیشتر از قبل به کارش بیاد.
لینک دونیت:
payping.ir/@saber
🌱 صابر راستی کردار، از جمله بچه های گل روزگار هست که وب فارسی مدیونشه، تنهاش نمیذاریم.
™ @DjangoIR
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx |
مشاهده مطلب در وبلاگ راستیکردار
اگر از فونتهاش استفاده میکنیم، شاید الان دونیت (حمایت مالی) ما بیشتر از قبل به کارش بیاد.
لینک دونیت:
payping.ir/@saber
🌱 صابر راستی کردار، از جمله بچه های گل روزگار هست که وب فارسی مدیونشه، تنهاش نمیذاریم.
™ @DjangoIR
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx |
❤2.42K💔542😁7❤🔥1
Forwarded from Python BackendHub
یک نکته ای که اضافه کنم اینه که اگه انگلیسی بلد نباشین همیشه از دنیا چند پله عقب ترین
یعنی تا داک فست ترجمه نشده نمیتونید بخونید
تا آموزش K8s فارسی نیاد نمیتونید یاد بگیرین
تا آموزش داکر فارسی نیاد نمیتونید یاد بگیرین
تا Mojo داکش فارسی نشه یا اموزش نیاد نمیتونید یاد بگیرین..
هیچوقت doc string رو نمیتونید بخونید.
پس هرچقدر برنامه نویس خوبیم که بشید هرچند احتمالش کم, اما همیشه عقبین از دنیا.
@ManiFoldsPython
یعنی تا داک فست ترجمه نشده نمیتونید بخونید
تا آموزش K8s فارسی نیاد نمیتونید یاد بگیرین
تا آموزش داکر فارسی نیاد نمیتونید یاد بگیرین
تا Mojo داکش فارسی نشه یا اموزش نیاد نمیتونید یاد بگیرین..
هیچوقت doc string رو نمیتونید بخونید.
پس هرچقدر برنامه نویس خوبیم که بشید هرچند احتمالش کم, اما همیشه عقبین از دنیا.
@ManiFoldsPython
👍34👌2🤡2
Forwarded from Compass (Raymond)
This media is not supported in your browser
VIEW IN TELEGRAM
Manual memory management 😂😂😂
#fun
#fun
🤣20👍2
Compass
Manual memory management 😂😂😂 #fun
یه زمان، سیستم توی سی اینجور بود که شما باید از Malloc استفاده میکردید و از CPU درخواست فضا از رم واسه متغیرتون میکردید. بصورت دستی ست میکردید که فلان متغیر، فلان قدر از رم رو (به بایت) بهش اختصاص بده.
- اگه برنامهنویس یادش میرفت فانکشن
- اگه برنامهنویس بلافاصله بعد از تعریف متغیر،
- اگه برنامهنویس دو بار
خلاصه امروز که میبینید خیلی راحت زبانها این Memory Management رو هندل میکنن، همچین دارک هیستوری پشت قضیه بوده.. دلیلشم اینه که سیستمعامل یکم واسش دردسر داره که بتونه منیج کنه مموری رو. واسه همینه که اکثر استراتژیهای فری آپ کردن مموری توسط خود زبانهای برنامهنویسی انجام میشه.
int age = malloc(32670) // 32kb
و باید حتما یادتون میموند وقتی که کارتون با این متغیر (دیتا) تموم شد، حتما این رفرنسش رو پاک کنید تا اون بلاک از مموری هم پاک شه.free(age) // used to free the memory block
حالا این وسط یه سری بدبختیا بود..- اگه برنامهنویس یادش میرفت فانکشن
free
رو ران کنه: خب خیلی طبیعیه که اگه یادش میرفت free-up کنه، به مموری لیک میخوردیم. گاها دیدید RAM Resource پر میشه و سیستم دیتا رو روی Swap نگهداری میکنه؟ دقیقا همون لحظهس.- اگه برنامهنویس بلافاصله بعد از تعریف متغیر،
free
رو کال میکرد: به راحتی اون بلاک از مموری آزاد میشد و شما اگه جلوتر مقدار متغیر رو چاپ کنید ممکنه یه دیتاهایی پرینت شن که خیلی عجیب و غریب باشن..!! (درواقع ممکنه دیتاهایی باشن که توسط دیگر پروسهها دارن توی اون بلاک از رم نگهداری میشن)- اگه برنامهنویس دو بار
free
رو کال کنه: اگه بار اول فری کال شه، بلاک رم آزاد میشه و دیتایی که داخلشه از بین میره. فرض کنید بین free اول و free دوم یه وقفه ایجاد شه و سیستمعامل یا هر پروسه دیگهای بیاد و دقیقا توی اون بلاک از رم یه دیتای حساس قرار بده. بلافاصله بعد از اینکه free دوم ران میشه، اون دیتای حساس هم از بین میره و پروسه عملا به فنا میره و این اصلا خوب نیس!خلاصه امروز که میبینید خیلی راحت زبانها این Memory Management رو هندل میکنن، همچین دارک هیستوری پشت قضیه بوده.. دلیلشم اینه که سیستمعامل یکم واسش دردسر داره که بتونه منیج کنه مموری رو. واسه همینه که اکثر استراتژیهای فری آپ کردن مموری توسط خود زبانهای برنامهنویسی انجام میشه.
👍16👌3👎2