ترفندهای برنامه‌نویسی
170 subscribers
27 photos
3 videos
22 files
614 links
Download Telegram
سلام دوستان
میخوام درمورد رفع مشکل فونت نوتو در ابونتو/دبیان توضیح بدم.
از ریپوزیتوری آرچ لینوکس استفاده می‌کنیم برای دانلود نسخه‌ی جدیدتر این بسته‌ی فونت‌ها که لینک‌های زیر رو بگیریم:

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
درلینوکس نحوه‌ی کپی کردن فایل روی USB درایوها با ویندوز مقداری متفاوت هست و معمولا اگر با فایل منیجر کپی رو انجام بدین خیلی سریع پیام اینکه کپی کردن تموم شده رو دریافت می‌کنید ولی اگر بخواین فلش رو umount کنید باید مقدار نسبتا طولانی‌تری از چیزی که فکرش رو می‌کنید منتظر بمونید تا کپی واقعا تموم بشه درحالیکه داره در بک‌گراند انجام میشه و شما هیچ ایده‌ای ندارید چقدر دیگه ازش مونده. البته اگر آدم کم حوصله‌ای باشین و سریعا فلشتون رو از سیستم جدا کنید احتمالا فلشتون رو نیم‌سوز می‌کنید و کلا دیگه از کار میافته و پروسه‌ی اصلاحش هم چندان آسون نیست.
دستور زیر برای کپی کردن فایل به صورت sync هست و از cp یا کپی با فایل منیجر خیلی امن‌تر هست. ضمن اینکه میشه rsync رو با مثلا parallel پایپ کرد تا چند کپی همزمان انجام بشن ولی بنظر می‌رسه چون سرعت USB درایو افت شدیدی خواهد داشت بهتره یکی یکی کپی بشن.

rsync -avhP --include='*.mkv' --exclude='*' --append-verify source-folder/ destination-folder/
مجددا برای لینوکس
به دلیل اینکه خیلی دنبال یه دانلودمنیجر گرافیکی خوب گشتم ولی نبود! (پرسپولیس این روزا خیلی مشکل داره)
فعلا پکیج aria2 رو پیشنهاد میدم و دستور زیر می‌تونه کار رو دربیاره
هرچند این برنامه بسیار آپشن‌های زیادی داره و دستورات بسیار شکیل‌تر و کاربردی‌تر دیگه‌ای هم میشه باهاش نوشت و سعی می‌کنم اگر دستور جالبی نوشتم بازم پست رو آپدیت کنم.

aria2c --max-connection-per-server=16 --split=16 --continue=true --dir="destination/" "download-url"

البته یکی اومده براش یه اینترفیس درست کرده که خب دقیقا شبیه پرسپولیس وقتی که هنوز داشت از aria2 استفاده می‌کرد نیست ولی بازم جالب هست و اگر از کار با ترمینال خوشتون نمیاد می‌تونه مفید باشه.
یه مشکل ریزی هم بود که براش ایشو باز کردم و می‌تونید از لینک زیر هم ایشو و هم خود بسته رو ببینید و استفاده کنید:
https://github.com/mayswind/AriaNg/issues/763
برای افزایش سرعت مرورگر و همین طور کاهش عملیات رایت روی هارد دیسک مطالب دو لینک زیر رو مطالعه کنید خالی از لطف نیست.
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
اگر به هر دلیلی نیاز شد تعدادی اکسپشن رو بجای raise کردن جمع کنید و بعداً یکجا raise کنید، استفاده از یک کانتکست منیجر یک روش خیلی مفید و ساده و بهینه می‌تونه باشه!
برای نمونه توی این پست من در یک پروژه فست‌ای‌پی‌آی همچین چیزی رو لازم داشتم و نوشتم. عکس‌ها هم مثال کوچکی رو نشون میدن
چند روز توی یک کانال دیدم شخصی درمورد استفاده از دیکوریتور برای هندل کردن اکسپشن‌ها نوشته بود، ولی این روش مشکلی که داره در زمان دیباگ کردن یه مقدار دردساز میشه و سخت‌تر میشه.

https://www.linkedin.com/posts/mh-firouzjah_error-handling-using-context-manager-activity-7263610583759929344-6jvs?utm_source=share&utm_medium=member_android