ترفندهای برنامه‌نویسی
164 subscribers
27 photos
3 videos
22 files
615 links
Download Telegram
دوستانی که ویندوز دارین استفاده میکنید یه سری تنظمیات هستن میتونید انجام بدین و یکمی پاورشل رو بهتر کنید.
ویدئو اخر دوره‌ی وب‌سایت چند زبانه با جنگو، خودم ویندوز داشتم و ترمینالم پاورشل بود که این تنظمیات رو داشته:
اون فونت رو نصب میکنید، تا شکلک‌های powerline چه تو لینوکس چه تو ویندوز براتون درست نمایش داده بشن.
بعد هم پاورشل رو تنظیم میکنیم.

https://devblogs.microsoft.com/powershell/announcing-psreadline-2-1-with-predictive-intellisense/

https://docs.microsoft.com/en-us/windows/terminal/tutorials/powerline-setup


خلاصه‌ی مهم این دوتا لینک این میشه:

Set-ExecutionPolicy RemoteSigned

Register-PSRepository -Default

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck

notepad $PROFILE
نت‌پد که باز شد، این متن پایین رو بریزید داخلش و سیو کنید.

Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme Powerlevel10k_Classic
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineKeyHandler -Chord "End" -Function AcceptSuggestion
Set-PSReadlineKeyHandler -Key "Tab" -Function MenuComplete
Set-PSReadlineKeyHandler -Key "UpArrow" -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key "DownArrow" -Function HistorySearchForward
Set-PSReadLineOption -Colors @{ InlinePrediction = '#898c5b'}
Set-PSReadlineOption -HistorySearchCursorMovesToEnd

آی‌دی کانال👇:
programming_tricks
Discreet Log #2: Qwtch to Flwtch: Porting Cwtch's Go/Qt Frontend to Go/Flutter | Open Privacy Research Society
https://openprivacy.ca/discreet-log/02-porting-qwtch-to-flwtch/

دوستانی که قصد دارن یه زبان و فریم‌ورک دیگه رو تجربه کنن
پیشنهاد میکنم درباره‌ی دارت و فلاتر هم یه تحقیقی داشته باشن
فلاتر فریم‌ورک توسعه اپ‌های موبایل بود که برای طراحی gui خوب بود، و نسبت به مثلا ری‌اکت نیتیو خیلی بهینه‌تر هست چون دارت یه زبان کامپایلری هست و خب همین یه برتری بهش میده
اما فلاتر واقعا در طراحی gui خوب هست.
از همون موقع که معروف شد، خیلیا گفتن خب چرا برای دسکتاپ اپ‌ها استفاده نشه؟ و الان دیگه به صورت رسمی میشه باهاش برنامه‌ی دسکتاپ نوشت، و اوبونتو هم ازش استفاده کرده و بهش بطور جدی بها داده
همین‌طور برای توسعه وب‌پیج‌ها هم خیلی وقته داره نسخه‌ای رو آماده میکنه، ولی هنوز ریلیز استیبل(به صورت رسمی نسخه‌ای که پایدار باشه) نداده ولی خب امسال احتمالا اون هم میاد.
بنظر میخواد یک تنه بره و gui رو قبضه کنه.
بعضیا با اینکه فقط یک زبان باشه مخالفن بعضیام موافق، ولی خب مثلا جاوااسکریپت تو بحث فرانت‌اند وب رو درنظر بگیریم، تک زبان بودن فایده‌هاش به معایبش میارزه که اینجوری مونده.
ولی دارت و فلاتر خیلی از جاوااسکریپت جدیدتر هست و بسیاری ایرادات ذاتی جی‌اس رو نباید توی دارت که کامپایلری و static typed و... .
یا مقلب القلوب و الابصار یا مدبرالیل و النهار
یا محول الحول و الاحوال حول حالنا الی احسن الحال

موی زمین سبز گشت، حین سپر انداخت بحر
باد صبا باره‌اش تاخت به هر کوی و شهر
باد مبارک تو را سال نو و سال‌ ها
وفق مرادت رود گردش ایام و دهر…
سال نو مبارک
سلام دوستان
تنظیمات vscode‌ برای برنامه‌نویسی پایتون رو توی این لینک نوشتم
البته با توضیح هرقسمت.
پلاگین‌هاش فقط همونی که برای پایتون هست لازمه و بقیه رو میتونید نصب نکنید.
لینک عضویت👇:
@programming_tricks

https://gist.github.com/mh-firouzjaah/66592098404030b29faef612ccad0e1d
حکایت «دست بالای دست بسیار است»
اگر فکر کردین جنگو خیلی تو پیاده‌سازی سریع هست، حتما این فیلم رو ببینید!
https://www.youtube.com/watch?v=MZvmYaFkNJI
نه تنها سریع پروژه رو ران کرد(مدل رو توی ترمینال هندل کرد)، بلکه بهینه‌سازی‌ها و تمپلیت نویسی بدون دست زدن به جاوااسکریپت رو هم مدنظرتون باشه.
سلام دوستان
تنظیمات vscode‌ برای برنامه‌نویسی جنگو رو توی این لینک نوشتم
پلاگین‌ فقط همونی که برای جنگو هست لازمه و بقیه رو میتونید نصب نکنید.
لینک عضویت👇:
@programming_tricks

https://gist.github.com/mh-firouzjaah/c672ff97722c4327c0816750d4afdfef
دوستان یک چیز باحال پیدا کردم شاید بکار بیاد.
توی مثلا گوگل کروم اگر پلاگین idm رو فعال کنید و مثلا از یوتیوب بازدید کنید گاهی یک پاپ‌آپ کوچیک از idm میاد که download this video و خب دانلود هم میکنه. اما اگر اونجا این پاپ‌آپ باز نشد چی؟
روی فیلم راست کلیک کنید. گزینه‌ی چهارم کپی کردن کد جداسازی رو بزنید و لینک رو کپی میکنه.
یک تب جدید و خالی توی کروم باز کنید و راست کلیک کنید توی صفحه و inspect view رو بزنید روی المنت body راست کلیک کنید و گزینه‌ی Edit as HTML رو بزنید و داخل تگ بادی لینکی که کپی دارین رو قرار بدین. فایل ویدئو میاد توی صفحه و با idm هر نسخه‌ای که مدنظر بود دانلود کنید.

لینک عضویت👇:
@programming_tricks
حجم نهایی 600 مگابایت
وی‌اس‌کد کانفیگ، برای کدنویسی پایتون - گو - دارت(فلاتر) و فرانت‌اند.
میتونید بعد از نصب پلاگین‌ها توضیحات مربوط بهشون رو بخونید تا با جزئیات هرکدوم آشنا بشین.
سعی کردم از نظر حجم کمترین ها رو جمع کنم. و البته تا حد امکان اون هایی که روی لود شدن وی‌اس‌کد تاثیر منفی نذارن

لینک عضویت👇:
@programming_tricks


https://gist.github.com/mh-firouzjaah/56bd7683936112c52131aae637815df3
این هم یک پلاگین باحال و جالب
پایتون لایو!
مخصوصا برای دوستانی که مدرس هستن یا دوستانی که تازه میخوان پایتون یادبگیرن، میتونه مفید باشه

آی‌دی کانال👇:
programming_tricks


https://marketplace.visualstudio.com/items?itemName=almenon.arepl
سلام دوستان
برای کسانیکه میخوان وارد دنیای لینوکس بشن ولی نمیدونن یا مردد هستن چه توزیعی رو انتخاب کنن و همین طور برای افرادی که میخوان توزیع جدیدی تست کنن، توزیع ارکو لینوکس رو پیشنهاد میدم.
کانال یوتیوب داره و اصلا فلسفه‌ش و هدفش آموزش لینوکس برای همه هست، برای بیشتر جزئیات آقای اریک دبایوس که یکی از افراد فعال در توسعه همون توزیع آرکو هست ویدئو ضبط کرده و توی سایت آرکولینوکس دات کام و یوتیوب هستن.
آرکو لینوکس سه تا نسخه میزنه. اولی و main با دسکتاپ ایکس‌اف‌سی‌ای و وی ام‌ های i3, openbox هست. نسخه B داره که فقط یه دسکتاپ یا وی‌ام داره ولی کانفیگ شده هستن و آماده استفاده توسط افرادی که نمیخوان کانفیگ کنن. و نسخه‌ی D که کلا یه نصاب برای آرچ هست و نصابش اینجوریه که تو مراحل نصب شما انتخاب میکنی چیل برات نصب بشه و نصب میشه ولی کانفیگ هیچی نداره همه چیز با کانفیگ پیش‌فرض نصب میشه، عین اینکه روی آرچ بخوای چیزی نصب کنی بعدش باید خودت کانفیگ کنی.

ضمن اینکه نسخه‌ی B‌ این توزیع کلی دسکتاپ و window-manager کانفیگ شده رو دراختیار شما قرار میده و البته هرکدومش رو هم نصب کنید، با استفاده از ابزار arco-tweak که داخل برنامه‌ی این توزیع نصب هست میتونید با یک کلیک دسکتاپ یا وی‌ام دیگه‌ای رو هم نصب و از کانفیگ زیبایی که براش انجام میشه لذت ببرید. برنامه‌های کاربردی و جالبی به صورت پیش فرض نصب هستن و به راحتی میشه در صورت لزوم حذفشون کرد، برای نصب کردن هم pacman و pamac و yay و trizen رو دراختیار دارین.

آی‌دی کانال👇 :
programming_tricks
خب، میدونم که همه از وی‌اس‌کد خوششون نمیاد، ولی اون دسته از دوستانی که مثل من با این برنامه راحت هستن، می‌تونید برای اینکه تجربه‌ی بهتری از این برنامه داشته باشین، زمان‌هایی که پروژه خاصی دارین و بعضی از اکستنشن های نصب شده استفاده‌ای ندارن رو disable کنید! اینکار باعث میشه که هم لودینگ تایم اولیه وی‌اس‌کد کم بشه هم مصرف رم و منابع سیستمی این برنامه کمتر بشه و خیلی سریع بشه.
دستور running extensions هم نشون میده که الان کدوم اکستنشن ها درحال اجرا هستن و چقدر طول کشیده تا اجرا بشن.
این لینک پایین هم بد نبود.

آی‌دی کانال👇 :
programming_tricks


https://www.google.com/amp/s/www.freecodecamp.org/news/optimize-vscode-performance-best-extensions/amp/
چند مثال جالب درمورد async/await و کلا «همزمانی(concurrency)» و «موازی‌کاری(parallelism)» در این لینک نوشته‌شده که خوندنش خالی از لطف نیست:

آی‌دی کانال👇:
programming_tricks


https://fastapi.tiangolo.com/async/#in-a-hurry
#جنگو_و_فایلهای_استاتیک
فرقی نداره شما فایل استاتیک رو توی کدوم اپ بذارین، توی یکیش باشه برای بقیه هم قابل دسترسی هست!
همین طور برای تمپلیت‌ها همین شکلیه و تمپلیت داخل یه پوشه‌ی تمپلیت برای بقیه اپ هم قابل دسترسی هست.
میتونید البته بیان و یه پوشه‌ی خاص رو به عنوان محل فایلهای استاتیک قرار بدین و باید توی ستینگز به صورت
STATICFILES_DRIS = [ BASE_DIR / 'path/to/static' ]
آدرس دهیش کنید. دقت کنید که STATICFILES_DRIS با یه S تموم میشه و یه لیست هست!.

دستور collectstatics برای زمانی که میخواین پروژه رو دپلوی کنید کاربرد داره و برای اینکه:
هر اپ توی جنگو چه اپ‌هایی مثل auth, admin و ... و چه اپ‌هایی که شما میسازین برای خودشون استاتیک فایلهایی دارن که هرکدوم تو آدرس خاصی هستن!.
در زمان دپلوی کردن جنگو وظیفه‌ی لودکردن فایلهای استاتیک رو به وب-سرور واگذار میکنه و وب‌سرور هم به یه دایرکتوری خاص باید اشاره کنه برای سرو کردن فایلهای استاتیک، برای همین دستور collectstatics میاد از همه‌ی اپ‌ها فایلهای استاتیک رو جمع میکنه و در دایرکتوری‌ای که شما با STATIC_ROOT تعریف میکنید قرار میده.


آی‌دی کانال👇:
programming_tricks
خب سلام دوستان
امیدورام حالتون خوب باشه
اول اینکه اون تم که برای وی‌اس‌کد نوشتم رو کلی دستکاریش کردم و البته یه تم دیگه هم بهش اضافه شد!

دوم اینکه اگر روی ویندوز هستین و wsl هم نصب کردین، برای اینکه بتونید بعضی از کدهاتون رو با یه کامپایلر یا مفسری که روی wsl دارین اجرا کنید البته با پلاگین code-runner وی‌اس‌کد بخواین اجراش کنید! یه تنظیم مثل این یکی لازمتون میشه:
"code-runner.executorMap": {
"lua": "wsl lua $('/mnt/' + $fullFileName.Replace(':','').Replace('\\', '/'))"
}

توی این مثال من خودم مفسر Lua‌ رو توی wsl نصبش کردم چون ساده‌تر نصب شد. (sudo apt install lua5.4)
و الان میخواستم یه فایل که به زبان lua بود رو ران کنم.
* راستی این تنظیم هم شاید بدرد بخوره:
"code-runner.runInTerminal": true,

با این تنظیم، کدرانر بجای اینکه توی تب output کد رو ران کنه، میره توی ترمینال رانش میکنه خیلی هم شیک.

برای اون دسته از عزیزانی که درجستجوی اینن که کجا باید این دستورات رو بنویسن:
ctrl + shift + p
رو بزنید(طبعا توی محیط وی‌اس‌کد هستین).
بعد تایپ کنید:
Open Settings (JSON)
و گزینه‌ای که همین شکلی نوشته شده رو انتخاب کنید، فایلی که باز میشه همون محل نوشتن این تنظیماتی هست که همیشه میام پست میکنم.
موفق باشید.

آی‌دی کانال👇:
programming_tricks
Did you know?
ccbv.co.uk/ClassName/ will take you straight to the class you're looking for.

سلام خدمت دوستان
عزیزانی که به جنگو علاقه دارین ولی هنوز سراغ کلاس‌بیس‌ویو ها نرفتین و دنبال یک مرجع هستین برای این نوع کلاس‌ها، پیشنهاد میکنم یه نگاهی به این سایت بندازین:
https://ccbv.co.uk

برای جنگو رست فریم ورک هم با تشکر از مهندس شکیبا میتونید به آدرس زیر مراجعه کنید:
https://www.cdrf.co

آی‌دی کانال👇:
programming_tricks
از پیوستن شما به این کانال خرسند می‌شویم
Forwarded from Jadoo | جادو
یه افزونه برای تست api هاتون و بدون نیاز به postman می تونید توی code به راحتی باهاش کار کنید محیطش هم شبیه postman و بقیه نرم افزار های این شکلی هست
https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client
ضمن عرض سلام خدمت همراهان عزیز
درباره‌ی یکی از اوپراتورهای کمتر دیده شده‌ی پایتون که البته کاربرد جالبی هم داره یه مطلبی رو میخوندم و گفتم شاید بد نباشه ترجمه‌ش کنم.

اوپراتور =: که اسمش assignment expression هست ولی به walrus operator معروف شده.
و تلفظش به خاطر حرف w شبیه 'وُآل روس اوپِرِیتِر' هست.
از پایتون ۳.۸ دیگه استفاده ازش پذیرفته شده.

خب این کارش چیه؟
این علامت میشه گفت از ریاضیات وام گرفته شده و خب توی پایتون همه‌ی معنایی که تو ریاضیات داره رو شاید نداشته باشه، ولی خیلی از اصلش دور نشده.
در پایتون این اوپراتور میاد و وسط یه expression یه متغیر تعریف میکنه، احتمالا با مثال ساده‌تر میشه کارش رو دید:
بسیار پیش آمده که ما میخواستیم یه عملیات List Comprehension انجام بدیم که البته پای یه تابعی هم وسط باشه:
data = [1,2,3,4]
f_data = [f(x) for x in data if f(x) is not 4]
خب همین طور که واضحه الان تابع f برای هر آیتم توی لیست data داره دوبار محاسبه میشه
اما با استفاده از این اوپراتور میشه به این صورت نوشت:
f_data = [y for x in data if (y := f(x)) is not 4]
میبینید که توی if expression اومده و مقدار f رو برای آیتم پیمایش فعلی حساب کرده و ریخته تو متغیری به اسم y و این حرکت باعث شده تابع f فقط یبار محاسبه بشه! و این متغیری که استفاده کرده هم دیگه در بلوک فعلی و زیربلوک‌ها برای خط های بعدی وجود خواهد‌داشت.

* میتوان از =: حتی در زمانیکه یک عبارت درحال محاسبه شدن هست برای نسبت دادن استفاده کرد!
var := expr

البته از این اوپراتور هرجایی نمیشه استفاده کرد برای مثال:
a := 3 #must be done with a=3.
a = b := 4 #must be done with a=b=4
a = (b := 4) #legal, but not recommended
y := f(x) # INVALID
(y := f(x)) # Valid, though not recommended
درواقع این اوپراتور فقط میتونه تو دل یه expressions دیگه استفاده بشه، و خب توی خط آخر پرانتزها باعث شدن که اون عبارت خودش یه expressions محسوب بشه!.
خلاصه که اوپراتور کاربردی‌ای میتونه باشه هم بخاطر اینکه میتونه از خط‌های کدمون کم کنه، هم مثل اونجا که باعث شد یه تابع یبار محاسبه شد، میتونه باعث بهینه‌تر شدن اجرای برنامه هم باشه.
اینم لینک pep‌ برای مطالعه‌ی بیشتر.

*راستی walrus‌ میشه گراز دریایی، همینی که عکسش هم زیر پیام دیده میشه. بخاطر شباهت این اوپراتور با این گرازهای دریایی تنبل که همیشه درازکشیدن همچین لقبی بهش دادن.

آی‌دی کانال👇:
programming_tricks
از پیوستن شما به این کانال خرسند می‌شویم.