این پست بخشی از داکیومنت پکیج attrs هست که داره درمورد اینکه چرا از attrs استفاده کنیم و چرا از سایر ابزارهای موجود مثل pydantic, namedtuples, dataclass و ... بهجای attrs استفاده نکنیم توضیح میده.
بنظرم خوندن نظراتشون و دیدگاهشون خالی از لطف نیست:
https://www.attrs.org/en/stable/why.html#pydantic
عضویت:
https://t.me/programming_tricks
بنظرم خوندن نظراتشون و دیدگاهشون خالی از لطف نیست:
https://www.attrs.org/en/stable/why.html#pydantic
عضویت:
https://t.me/programming_tricks
apify/crawlee-python: Crawlee—A web scraping and browser automation library for Python to build reliable crawlers. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with BeautifulSoup, Playwright, and raw HTTP. Both headful and headless mode. With proxy rotation.
https://github.com/apify/crawlee-python
https://github.com/apify/crawlee-python
GitHub
GitHub - apify/crawlee-python: Crawlee—A web scraping and browser automation library for Python to build reliable crawlers. Extract…
Crawlee—A web scraping and browser automation library for Python to build reliable crawlers. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Wo...
DJP: A plugin system for Django
https://simonwillison.net/2024/Sep/25/djp-a-plugin-system-for-django/
https://simonwillison.net/2024/Sep/25/djp-a-plugin-system-for-django/
simonwillison.net
DJP: A plugin system for Django
DJP is a new plugin mechanism for Django, built on top of Pluggy. I announced the first version of DJP during my talk yesterday at DjangoCon US 2024, How to …
https://www.obeythetestinggoat.com/pages/book.html#toc
It's an excellent book teaching you many things at once - Django, test-driven development, git usage, and web scraping as well. I was fortunate to find its reference from a friend on Facebook group.
https://t.me/programming_tricks
It's an excellent book teaching you many things at once - Django, test-driven development, git usage, and web scraping as well. I was fortunate to find its reference from a friend on Facebook group.
https://t.me/programming_tricks
https://www.cosmicpython.com/book/preface.html
Domain modeling and DDD (Chapters 1, 2 and 7)
Repository, Service Layer, and Unit of Work patterns (Chapters 2, 4, and 5)
Some thoughts on testing and abstractions (Chapter 3 and 5)
Event-driven architecture (Chapters 8-11)
Command-query responsibility segregation ([chapter_12_cqrs])
Dependency injection ([chapter_13_dependency_injection])
https://t.me/programming_tricks
Domain modeling and DDD (Chapters 1, 2 and 7)
Repository, Service Layer, and Unit of Work patterns (Chapters 2, 4, and 5)
Some thoughts on testing and abstractions (Chapter 3 and 5)
Event-driven architecture (Chapters 8-11)
Command-query responsibility segregation ([chapter_12_cqrs])
Dependency injection ([chapter_13_dependency_injection])
https://t.me/programming_tricks
ibraheemdev/modern-unix: A collection of modern/faster/saner alternatives to common unix commands.
https://github.com/ibraheemdev/modern-unix
https://github.com/ibraheemdev/modern-unix
GitHub
GitHub - ibraheemdev/modern-unix: A collection of modern/faster/saner alternatives to common unix commands.
A collection of modern/faster/saner alternatives to common unix commands. - ibraheemdev/modern-unix
سلام دوستان
میخوام درمورد رفع مشکل فونت نوتو در ابونتو/دبیان توضیح بدم.
از ریپوزیتوری آرچ لینوکس استفاده میکنیم برای دانلود نسخهی جدیدتر این بستهی فونتها که لینکهای زیر رو بگیریم:
https://mirror.sunred.org/archlinux/extra/os/x86_64/noto-fonts-emoji-1:2.047-1-any.pkg.tar.zst
https://mirror.sunred.org/archlinux/extra/os/x86_64/noto-fonts-1:24.9.1-1-any.pkg.tar.zst
این دوتا بسته برای استفاده روزمره و عادی کافی و حتی میشه گفت زیادی هم هستن.
اینا که دانلود شدن بعد از استخراج باید محتوای مسیرهای زیر رو با فونتهایی که از قبل روی سیستم نصب هستن عوض کنیم برای مثال همچین چیزی میشه:
با اینکار فونتهایی که قبلا روی سیستم بودن با فونتهای جدید جایگزین میشن و حالا باید دستور زیر رو بزنید (یبارم با سودو بزنید) تا کل فرايند شناسایی فونتهای جدید انجام بشه:
- چرا اینکار رو انجام بدیم؟ راستش یه مشکل خیلی تومخی فونت نوتو تو دبیان و ابونتو اینه که برای حروف پ و چ شکل نوشتن نقطههاشون درست نیست و به طور کلی ورژن مورد استفاده از فونت نوتو تو دبیان بیسها روی ۲۰۲۰ فریز شده و آپدیتی ندارن؛ برای بروزرسانی و رفع مشکل این روش رو استفاده کردم.
- من از کوبونتو ۲۴.۰۴ استفاده میکنم و توزیع پیشنهادی من هست. دوستانی که از اسنپ یا برنامههای پیشفرض نصب شده روی کوبونتو خوششون نمیاد در زمان نصب تیک گزینه نصب مینیمال رو بزنید *طبعا انتظار داشته باشید سیستم برخی پکیجهای دیگه به جز اسنپ هم نداشته باشه.
- پلاسما ۶ هنوز کلی باگ داره برای مثال درگ کردن سابتایتل توی ویدئو پلیر باعث هنگ کردن و کرش dolphin میشه! و کلی باگ دیگه.
میخوام درمورد رفع مشکل فونت نوتو در ابونتو/دبیان توضیح بدم.
از ریپوزیتوری آرچ لینوکس استفاده میکنیم برای دانلود نسخهی جدیدتر این بستهی فونتها که لینکهای زیر رو بگیریم:
https://mirror.sunred.org/archlinux/extra/os/x86_64/noto-fonts-emoji-1:2.047-1-any.pkg.tar.zst
https://mirror.sunred.org/archlinux/extra/os/x86_64/noto-fonts-1:24.9.1-1-any.pkg.tar.zst
این دوتا بسته برای استفاده روزمره و عادی کافی و حتی میشه گفت زیادی هم هستن.
اینا که دانلود شدن بعد از استخراج باید محتوای مسیرهای زیر رو با فونتهایی که از قبل روی سیستم نصب هستن عوض کنیم برای مثال همچین چیزی میشه:
sudo cp extraction-path-of-noto-fonts/noto-fonts-1_24.9.1-1-any.pkg/usr/share/fonts/noto/* /usr/share/fonts/truetype/noto
sudo cp extraction-path-of-noto-fonts/noto-fonts-emoji-1_2.047-1-any.pkg/usr/share/fonts/noto/* /usr/share/fonts/truetype/noto
با اینکار فونتهایی که قبلا روی سیستم بودن با فونتهای جدید جایگزین میشن و حالا باید دستور زیر رو بزنید (یبارم با سودو بزنید) تا کل فرايند شناسایی فونتهای جدید انجام بشه:
fc-cache -fv
sudo fc-cache -fv
- چرا اینکار رو انجام بدیم؟ راستش یه مشکل خیلی تومخی فونت نوتو تو دبیان و ابونتو اینه که برای حروف پ و چ شکل نوشتن نقطههاشون درست نیست و به طور کلی ورژن مورد استفاده از فونت نوتو تو دبیان بیسها روی ۲۰۲۰ فریز شده و آپدیتی ندارن؛ برای بروزرسانی و رفع مشکل این روش رو استفاده کردم.
- من از کوبونتو ۲۴.۰۴ استفاده میکنم و توزیع پیشنهادی من هست. دوستانی که از اسنپ یا برنامههای پیشفرض نصب شده روی کوبونتو خوششون نمیاد در زمان نصب تیک گزینه نصب مینیمال رو بزنید *طبعا انتظار داشته باشید سیستم برخی پکیجهای دیگه به جز اسنپ هم نداشته باشه.
- پلاسما ۶ هنوز کلی باگ داره برای مثال درگ کردن سابتایتل توی ویدئو پلیر باعث هنگ کردن و کرش dolphin میشه! و کلی باگ دیگه.
از اونجا که روی سیستمهای دبیان بیس دسترسی به آخرین نسخه تور و همین طور کلاینتهای وبتانل و اسنوفلیک و ... نداریم. تصمیم گرفتم روش درست و درمونی برای استفاده از تور بنویسم که در لینک زیر قرار دادم.
متاسفانه به دلیل فیلترینگ لینکهای دانلود از پروژه تور قابل دسترس نیستن و اگر الان فیلترشکنی دارید که میتونه این مشکل رو حل کنه فایل باندل تور زودتر دانلود کنید. اگر هم دسترسی ندارید لینک رو اینجا قرار میدم تا بتونید از توی تلگرام دانلودش کنید.
https://archive.torproject.org/tor-package-archive/torbrowser/13.5.7/tor-expert-bundle-linux-x86_64-13.5.7.tar.gz
https://gist.github.com/mh-firouzjah/8b3ef681a337ff7b3432f15e05079bc1
متاسفانه به دلیل فیلترینگ لینکهای دانلود از پروژه تور قابل دسترس نیستن و اگر الان فیلترشکنی دارید که میتونه این مشکل رو حل کنه فایل باندل تور زودتر دانلود کنید. اگر هم دسترسی ندارید لینک رو اینجا قرار میدم تا بتونید از توی تلگرام دانلودش کنید.
https://archive.torproject.org/tor-package-archive/torbrowser/13.5.7/tor-expert-bundle-linux-x86_64-13.5.7.tar.gz
https://gist.github.com/mh-firouzjah/8b3ef681a337ff7b3432f15e05079bc1
درلینوکس نحوهی کپی کردن فایل روی USB درایوها با ویندوز مقداری متفاوت هست و معمولا اگر با فایل منیجر کپی رو انجام بدین خیلی سریع پیام اینکه کپی کردن تموم شده رو دریافت میکنید ولی اگر بخواین فلش رو umount کنید باید مقدار نسبتا طولانیتری از چیزی که فکرش رو میکنید منتظر بمونید تا کپی واقعا تموم بشه درحالیکه داره در بکگراند انجام میشه و شما هیچ ایدهای ندارید چقدر دیگه ازش مونده. البته اگر آدم کم حوصلهای باشین و سریعا فلشتون رو از سیستم جدا کنید احتمالا فلشتون رو نیمسوز میکنید و کلا دیگه از کار میافته و پروسهی اصلاحش هم چندان آسون نیست.
دستور زیر برای کپی کردن فایل به صورت sync هست و از cp یا کپی با فایل منیجر خیلی امنتر هست. ضمن اینکه میشه rsync رو با مثلا parallel پایپ کرد تا چند کپی همزمان انجام بشن ولی بنظر میرسه چون سرعت USB درایو افت شدیدی خواهد داشت بهتره یکی یکی کپی بشن.
دستور زیر برای کپی کردن فایل به صورت sync هست و از cp یا کپی با فایل منیجر خیلی امنتر هست. ضمن اینکه میشه rsync رو با مثلا parallel پایپ کرد تا چند کپی همزمان انجام بشن ولی بنظر میرسه چون سرعت USB درایو افت شدیدی خواهد داشت بهتره یکی یکی کپی بشن.
rsync -avhP --include='*.mkv' --exclude='*' --append-verify source-folder/ destination-folder/
مجددا برای لینوکس
به دلیل اینکه خیلی دنبال یه دانلودمنیجر گرافیکی خوب گشتم ولی نبود! (پرسپولیس این روزا خیلی مشکل داره)
فعلا پکیج
هرچند این برنامه بسیار آپشنهای زیادی داره و دستورات بسیار شکیلتر و کاربردیتر دیگهای هم میشه باهاش نوشت و سعی میکنم اگر دستور جالبی نوشتم بازم پست رو آپدیت کنم.
یه مشکل ریزی هم بود که براش ایشو باز کردم و میتونید از لینک زیر هم ایشو و هم خود بسته رو ببینید و استفاده کنید:
https://github.com/mayswind/AriaNg/issues/763
به دلیل اینکه خیلی دنبال یه دانلودمنیجر گرافیکی خوب گشتم ولی نبود! (پرسپولیس این روزا خیلی مشکل داره)
فعلا پکیج
aria2
رو پیشنهاد میدم و دستور زیر میتونه کار رو دربیارههرچند این برنامه بسیار آپشنهای زیادی داره و دستورات بسیار شکیلتر و کاربردیتر دیگهای هم میشه باهاش نوشت و سعی میکنم اگر دستور جالبی نوشتم بازم پست رو آپدیت کنم.
aria2c --max-connection-per-server=16 --split=16 --continue=true --dir="destination/" "download-url"
البته یکی اومده براش یه اینترفیس درست کرده که خب دقیقا شبیه پرسپولیس وقتی که هنوز داشت از aria2 استفاده میکرد نیست ولی بازم جالب هست و اگر از کار با ترمینال خوشتون نمیاد میتونه مفید باشه.یه مشکل ریزی هم بود که براش ایشو باز کردم و میتونید از لینک زیر هم ایشو و هم خود بسته رو ببینید و استفاده کنید:
https://github.com/mayswind/AriaNg/issues/763
GitHub
Proposal for Enhancing User Experience for AriaNG with Aria2 Integration · Issue #763 · mayswind/AriaNg
Hi there, I wanted to take a moment to express my admiration for the incredible work done on AriaNG. I’m excited to try it out, but I found that there wasn't a detailed manual on how to connect...
برای افزایش سرعت مرورگر و همین طور کاهش عملیات رایت روی هارد دیسک مطالب دو لینک زیر رو مطالعه کنید خالی از لطف نیست.
https://wiki.archlinux.org/title/Profile-sync-daemon
https://wiki.archlinux.org/title/Chromium#Cache_in_tmpfs
https://wiki.archlinux.org/title/Profile-sync-daemon
https://wiki.archlinux.org/title/Chromium#Cache_in_tmpfs
دو پلاگین کاربردی و سبک ویاسکد رو معرفی کنم:
پلاگین زیر برای دوستانی که از گیت استفاده میکنن مخصوصا به صورت تیمی ابزار مفیدی میتونه باشه، هم قابلیت نشون blame روی خط رو داره و هم نمایش هیستوری چه برای یک خط و چه برای کل فایل، همین طور برای کل ورک اسپیس.
درکل بنظرم این پلاگین به همراه گیتگراف که اونم بعدش اضافه میکنم ترکیت خوبی هستن که میتونه بجای گیتلنز که بیشتر از ۱۵ مگ هست و درضمن فیچرهاش پولی هست، استفاده بشه.
گیتگراف با وجود پلاگین اول یهجورایی کاور میشه ولی چون کمتر از یک مگ هست و زیبایی خوبی هم داره بازم اضافهش کردم.
لطفا بهشون استار بدین تا برای دولوپرهاشون انگیزه بشه و توسعهشون ادامهدار باشه.
https://marketplace.visualstudio.com/items?itemName=huizhou.githd&ssr=false#review-details
https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph
بجای گیتهیستوری یا همون پلاگین اولی خیلیا دارن از پلاگین زیر استفاده میکنن ولی بنظرم گیتهیستوری کاملتره و فقط یکم به نسبت این زیبا نیست.
https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory
پلاگین زیر برای دوستانی که از گیت استفاده میکنن مخصوصا به صورت تیمی ابزار مفیدی میتونه باشه، هم قابلیت نشون blame روی خط رو داره و هم نمایش هیستوری چه برای یک خط و چه برای کل فایل، همین طور برای کل ورک اسپیس.
درکل بنظرم این پلاگین به همراه گیتگراف که اونم بعدش اضافه میکنم ترکیت خوبی هستن که میتونه بجای گیتلنز که بیشتر از ۱۵ مگ هست و درضمن فیچرهاش پولی هست، استفاده بشه.
گیتگراف با وجود پلاگین اول یهجورایی کاور میشه ولی چون کمتر از یک مگ هست و زیبایی خوبی هم داره بازم اضافهش کردم.
لطفا بهشون استار بدین تا برای دولوپرهاشون انگیزه بشه و توسعهشون ادامهدار باشه.
https://marketplace.visualstudio.com/items?itemName=huizhou.githd&ssr=false#review-details
https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph
بجای گیتهیستوری یا همون پلاگین اولی خیلیا دارن از پلاگین زیر استفاده میکنن ولی بنظرم گیتهیستوری کاملتره و فقط یکم به نسبت این زیبا نیست.
https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory
Visualstudio
Git History Diff - Visual Studio Marketplace
Extension for Visual Studio Code - View git history. View diff of committed files. View git blame info. View stash details.
اگر به هر دلیلی نیاز شد تعدادی اکسپشن رو بجای raise کردن جمع کنید و بعداً یکجا raise کنید، استفاده از یک کانتکست منیجر یک روش خیلی مفید و ساده و بهینه میتونه باشه!
برای نمونه توی این پست من در یک پروژه فستایپیآی همچین چیزی رو لازم داشتم و نوشتم. عکسها هم مثال کوچکی رو نشون میدن
چند روز توی یک کانال دیدم شخصی درمورد استفاده از دیکوریتور برای هندل کردن اکسپشنها نوشته بود، ولی این روش مشکلی که داره در زمان دیباگ کردن یه مقدار دردساز میشه و سختتر میشه.
https://www.linkedin.com/posts/mh-firouzjah_error-handling-using-context-manager-activity-7263610583759929344-6jvs?utm_source=share&utm_medium=member_android
برای نمونه توی این پست من در یک پروژه فستایپیآی همچین چیزی رو لازم داشتم و نوشتم. عکسها هم مثال کوچکی رو نشون میدن
چند روز توی یک کانال دیدم شخصی درمورد استفاده از دیکوریتور برای هندل کردن اکسپشنها نوشته بود، ولی این روش مشکلی که داره در زمان دیباگ کردن یه مقدار دردساز میشه و سختتر میشه.
https://www.linkedin.com/posts/mh-firouzjah_error-handling-using-context-manager-activity-7263610583759929344-6jvs?utm_source=share&utm_medium=member_android
Linkedin
Mahdi firouzjah on LinkedIn: 🎯 Error Handling Using Context Manager!
When designing APIs…
When designing APIs…
🎯 Error Handling Using Context Manager!
When designing APIs, user-friendly error responses can make a world of difference for developers integrating with…
When designing APIs, user-friendly error responses can make a world of difference for developers integrating with…
Writing a Dockerfile: Beginners to Advanced - DEV Community
https://dev.to/prodevopsguytech/writing-a-dockerfile-beginners-to-advanced-31ie
https://dev.to/prodevopsguytech/writing-a-dockerfile-beginners-to-advanced-31ie
DEV Community
Writing a Dockerfile: Beginners to Advanced
Introduction A Dockerfile is a key component in containerization, enabling developers and...
10 Git Commands You’ll Wish You Knew Earlier - DEV Community
https://dev.to/balrajola/10-git-commands-youll-wish-you-knew-earlier-eha
https://dev.to/balrajola/10-git-commands-youll-wish-you-knew-earlier-eha
DEV Community
10 Git Commands You’ll Wish You Knew Earlier
Git can feel intimidating when you’re starting out. Most of us stick to the basics: git add, git...