TECH STASH – Telegram
TECH STASH
212 subscribers
115 photos
5 videos
15 files
254 links
اینجا هر چی رو که یاد میگیرم، به اشتراک میزارم...
هوش مصنوعی، لینوکس، اوپن سورس، برنامه نویسی و...

Admin: @D3F4U1T_ARS
Download Telegram
یه ویدیو جالب راجب فیکس کردن import loop در پایتون
از اونجایی که به این مشکلات خیلی برمیخوردم تو ساختار دهی به کد ام پیشنهاد میکنم بقیه پایتون کارا هم ببینن

https://youtu.be/UnKa_t-M_kM
چند وقت پیش دقت کردم به این رسیدم که extension پک پایتون مربوط به vscode ماژولار شده و بخش isort و black ازش جدا شده

همینطور jupyter notebook. بنابراین اگر میبینید که isort یا black اتون خوب کار نمیکنه. حواستون باشه که extension اش رو نصب کنید.

در ضمن اگر نمیدونید isort و black چی هستن. برید حتما بخونید و استفاده کنید.
هر دو فرمتر کد هستن که برای تمیز سازی کد استفاده میشن.
اولی که isort هست واسه تمیز سازی import ها
دومی که black هست برای تمیز سازی بدنه کد

https://marketplace.visualstudio.com/items?itemName=ms-python.python

isort:
https://marketplace.visualstudio.com/items?itemName=ms-python.isort

black:
https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter
صحبت راجب اکستنشن ها شد
این دو اکستنشن خیلی بدرد میخورن

Rainbow Indent
https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow
واسه بهتر کردن indent های داخل پایتون و خوانایی بیشتر کد ها بکار میره و خیلی خوبه

Python Indent
https://marketplace.visualstudio.com/items?itemName=KevinRose.vsc-python-indent
هم یه سری مشکلات indenting داخل پایتون رو از بین میبره که قطعا بهش برخوردید ولی نمیدونستید که مشکل محسوب میشه... مثلا وقتی میخواید کد رو به چند خط تقسیم کنید indent های استاندارد PEP8 رو رعایت نمیکنه

استاندارد PEP8 استاندارد هایی هستن که جامعه برنامه نویسی پایتون با مشارکت تنظیم میکنن
PEP8
هم قوانین استایل و زبیا نویسی کد رو نشون میده
https://peps.python.org/pep-0008/
کسایی که تو هوش مصنوعی و data science کار میکنن
این extension رو خیلی بهشون پیشنهاد میدم.

از اونجایی که autocomplete داخل vscode به مراتب خیلی بهتر از jupyter هست خیلی کارو آسون میکنه.
و اینکه dark mode...

https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
ویدیو رسمی از شرکت Modular که راجب Mojo🔥توضیح میده که قراره superset جدیدی از پایتون بشه

با همکاری Chris Lattner که سازنده جدی ترین پروژه های دنیای تکنولوژی از جمله کامپایلر LLVM و زبان Swift هست

پیشنهاد میکنم ببینید

https://www.youtube.com/watch?v=-3Kf2ZZU-dg&t=1543s
این ویدیو هم که یه روز پیش Primeagen منتشر کرد خیلی ویدیو خوبی هست
تو این ویدیو راجب مزیت های پایتون جدا از مشکلات زیاد پایتون (مخصوصا سرعت) صحبت میشه

نظر خودم هم با متن داخل مقاله یکی هست... پایتون زبان بی نقصی نیست
و بله... سرعت خیلی فاکتور مهمی هست

اما زمانی هستش که باید یه چیزی رو سریع بسازید و خیلی موقع ها سرعت ملاک نیست
اون وقت پایتون میدرخشه

این موضوع واسه کالا های تازه خیلی میتونه برقرار باشه از اونجایی که در فاز های اولیه عرضه کالا هستند یا واسه شرکت های تازه تاسیس یا کوچیک

البته هر چقدر هم بگم یه سریا همچنان سر این موضوع افراد رو تحقیر میکنن
که اونم به جواب میگم که صبر کنن Mojo🔥 بیاد

https://www.youtube.com/watch?v=8D7FZoQ-z20
حق یا چی؟ :)
#فان #میم
~> @PinkOrca
برنامه نویس Mojo🔥
Pink Orca | پینک اورکا
حق یا چی؟ :) #فان #میم ~> @PinkOrca
Don't live in the past...

Live in the future

سیستم auto tuning کامپایلر

داشتن قابلیت
Runtime compiled
Statically compiled
هر دو

بک اند کاملا ساخته شده توسط MLIR که از خفن ترین کارایه Chris Lattner تو دنیای LLVM بوده
Forwarded from Currently Nothing (Sohrab)
https://virgool.io/Antiwiki/%D9%88%DB%8C%DA%A9%DB%8C-%D9%BE%D8%AF%DB%8C%D8%A7-%D8%B1%D8%A7-%DA%86%D9%87-%DA%A9%D8%B3%DB%8C-%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF-%D8%AF%D8%A7%D8%AF-w2ou3okkrxcu


لطفا مواد را از دسترس کودکان به دور نگهدارید


مشخصا هرکی اینو نوشته اصلا تو حال عادی نبوده😂
Forwarded from Currently Nothing (Sohrab)
این دوست موادیمون رو یادتونه؟
یک مقاله دیگه نوشته درباره گوگل

فقط جایی که نوشته از نرم افزار های داخلی خودمون استفاده کنید 😂


https://virgool.io/Antigoogle/%D8%B1%D8%A7%D8%A8%D8%B7%D9%87-%DA%AF%D9%88%DA%AF%D9%84-%D9%88-%D9%88%DB%8C%DA%A9%DB%8C-%D9%BE%D8%AF%DB%8C%D8%A7-jen13q8hqui3
#Lua
#Programming
#Part1

تناقض باور های بنده درباره زبان Lua.

تو این مدت زمانی که کد میزنم از اکوسیستم lua و همینطور نبود یک لایبرری استاندارد خوب گله داشتم.

اما با جست و جو و تحقیقات متعددی به نتایج جالبی رسیدم.

زبان Lua زبانی هست که خیلی مورد سو تفاهم واقع میشه.
این زبان زبان noscripting خیلی سریعی هست که برای embed شدن داخل ابزار ها به کار میده که قابلیت noscripting بده و در این زمینه بهترین هستش.

انعطاف پذیری و turing complete بودن این زبان باعث شده که همه اونو به زبان general purpose یعنی برای هر نوع استفاده ای نگاه کنن ولی در واقع اینطور نیست.

شما باید دلیل منطقی داشته باشید که این زبان رو یاد بگیرید. مثلا اگر از neovim استفاده میکنید، یادگیری این زبان به شما امکان شخصی سازی و پلاگین نوشتن برای این برنامه رو میده.

یا اگر از awesomewm استفاده میکنید. میتونید بی نهایت شخصی سازی انجام بدید.

امکانات autocomplete محدود lua هم به خاطر این هستش که embed شده. معمولا embed شدن زبان ها باعث میشه که بخشی از API هاشون داخل خود برنامه باشن و autocomplete امکان دسترسی به اونا رو نداره (ایکاش که اینطوری نبود، ولی به هر حال).
#Lua
#Programming
#Part2

اکوسیستم lua یه زمانی اصلا وجود خارجی نداشت... یعنی یه زمانی هیچ پکیج منیجری برای lua وجود نداشت

اما بسیاری از افراد داخل این کامیونیتی حرکت هایی برای ساخت اکوسیستم lua انجام دادن. برای مثال یه پکیج منیجر مخصوص lua ساختن به اسم luarocks.

https://luarocks.org/

حتی خود این وبسایت هم توسط زبان lua ران میشه. بخش backend این وبسایت از web framework به زبان lua ران میشه به اسم lapis.

https://github.com/luarocks/luarocks-site

و اینکه lapis خودش از Openresty که یه پلتفرم nginx based هست استفاده میکنه و باید بگم که خیلی سریعه...

پلتفرم nginx و openresty ساپورت زبان lua دارن... ولی خب نمیدونم چقدر تو production استفاده میشن.

https://leafo.net/lapis/

بنچمارک وب فریم ورک هارو اینجا میتونید ببینید

https://www.techempower.com/benchmarks/

و openresty در جایگاه 112 ام قرار داره
با توجه به اینکه fastapi در جایگاه 279 ام قرار داره... باید بگم که واقعا نتایج خیلی سورپرایز کننده ای هست

همینطور که میبینید یه زبان superset ای هم برای lua ساخته شده به اسم Moonnoscript که خیلی از ویژگی های مدرن زبان های دیگه رو به زبان lua آورده.

https://moonnoscript.org/

جالب اینه که فقط این یه مورد نیست. مورد های دیگه ای هم داریم. مثل Teal که ورژن استاتیک تایپ Lua هست و به Lua ترجمه میشه...
#Lua
#Programming
#Part3

من خودم کمی تو اکوسیستم lua گشتم و لایبرری هارو و وضعیتشون رو دیدم... همه چه پخش و پلا هست.

luarocks

کار رو واسه گیر آوردن لایبرری ها آسون کرده. اما لایبرری ها توسعه داده نمیشن. یه سریاشون هم دراپ شدن توسط توسعه دهنده اصلی و توسط lunarmodules و openresty توسعه داده میشن

لایبرری های خیلی خوبی هم واسه lua داریم ولی بیشتر این لایبرری ها تو حالت freeze قرار دارن. یعنی کار میکنن ولی توسعه داده نمیشن.

شایدم به خاطر اینه که چون روی یه C API قدیمی توسعه داده شدن و چون C API عه آپدیت نشده بنابراین دیگه نیازی به توسعه نداشته.



ولی خب چاره ای هم نیست. چون ماهیت Lua زبان مینیمال و embed-able هست هیچ کسی نمیاد باهاش کار general purpose انجام بده...

و سرمایه بزرگی هم پشتش نیست مثل JS یا Python.

به یکی از نمونه از شکاف داخل کامیونیتی lua اشاره میکنم:
https://luvit.io/
اینم یه نوع از توزیع های lua که واسه کارایه وب استفاده میکنن. و واسه نصب این باید از خود وبسایتش دانلود و نصب کنید. و همینطور پکیج منیجر خودش رو داره.

نباید بیشتر از یه پکیج منیجر داشتیم... اما ماهیت این زبان حکم میکنه که اوضاع به همین قرار میمونه.
#Lua
#Programming
#Part4

زبان Lua زبان خیلی سریعی هست اگر با LuaJIT اجرا بشه. اونقدر سریع که از یه سری از زبان های کامپایل شده هم میتونه سریع تر باشه.
چون که مستقیم به C کامپایل میشه قبل اجرا.
همین یکی از دلایلی هست که این زبان تحسین میشه


اما قطعا کار سختی هستش که این زبان رو تبدیل کرد به زبانی که براش ساخته نشده و باهاش کارایی کرد که براش ساخته نشده.

استفاده این زبان فقط embed-able هست و متاسفانه برخلاف امید من تا ابد هم همینطور خواهد ماند.
اما در میان زبان های embed-able این بهترین زبان ساخته شده هست.

از Game Engine ها تا ابزار های معروفی مثل nmap, conky, mpv و حتی freebsd kernel ازش استفاده میکنن برای ساخت noscripting API و استفاده از اون.


پس خلاصه بخوام بگم. زبان Lua برای general-purpose programming ساخته نشده. برای embed شدن و noscripting ساخته شده.

اکوسیستم خیلی پر کیفیتی نداره.

به مشکلات autocomplete برمیخورید چون که توسعه دهنده ها lua api خوبی برای ماژول های C اشون ننوشتن. تو برنامه هایی هم که embed دارنش هم همینطور.
خب
طبق معمول به مشکلات keyserver داخل distrobox arch linux ام خوردم
ولی خب این یکی با نصب archlinux-keyring فیکس نشد
پشمام
راه حلم همین الان کار کرد
اگر با
sudo pacman -Syy archlinux-keyring
فیکس نشد اینو بزنید
sudo pacman-key --refresh-keys
واسه من یکم این پروسه طولانی بود. ولی فیکس کرد


شاید مشکل از سرور میرور هم باشه که reflector میتونه کمک کنه بهتراشو انتخاب کنید
sudo reflector -c gb,fr,de -f 10 -p http,https -l 10 --sort rate --save /etc/pacman.d/mirrorlist