گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

فهرست فایل‌هایی که از یک تاریخ خاص توی Git Repo پروژه تغییر کرده‌اند

نویسنده:
۲۶ تیر ۹۶

اگه برنامه نویس هستین و تا حالا از هیچ Source Control ی استفاده نکردین و همچنان روی کاغذ یا توی فایل‌ها ، وضعیت تغییر فایل‌های پروژه را یادداشت میکنین توصیه میکنم هر چه زودتر برای یادگیری Git که به نظر من بهترین Source Control هست وقت بگذارین و توی چند روز براحتی یاد بگیرینش.

نمیخوام در مورد همه امکانات Git براتون توضیح بدم اما فکر کنین یک هفته هست روی فایل‌های پروژه دارین کار میکنید و حالا میخواین منتقل کنین فایل‌ها را به FTP ، میتونین کل فایل‌ها را Zip کنین و هر بار با مشکلات بروزرسانی کل فایل‌های سایت طرف باشین یا تغییرات را جایی یادداشت کنین و با مشکلاتی مثل فراموش کردن نوشتن تغییر در فایلی روبرو بشین. حالا اگه چند نفری روی این پروژه کار کنین که امکان رخ دادن این مشکلات چندین برابر میشه.

اگه از Git استفاده کنین و تاریخ قبلی بروزرسانی فایل‌های آنلاین هفت روز پیش باشه:(یعنی از ۶ روز پیش را میخوایم)

git log --pretty=format: --name-only --since="6 days ago" | sort | uniq

نکته: برای since– میتونین هر عبارت معادل زمانی معتبری را بگذارین و حتی ساعت و دقیقه هم بدین.

نکته: دستورات sort و uniq و امکان pipe کردن هم فقط توی لینوکس (اگه روی ویندوز محیط Bash نداشته باشین) امکان پذیره و این خودش نشون میده بهتره زودتر مهاجرت کنین به لینوکس.

حل مشکل Resolving Host در اوبونتو

نویسنده:
۱ خرداد ۹۶

یک مدت بود که بعد از کمی کار کردن با سیستم مروگر خطای Resolving Host میداد و گاه و بی گاه رفع و دوباره تکرار میشد. اولش به DNS های ISP شک کردم و توی NetworkManager از DNS های OpenDNS و Google استفاده کردم اما باز هم مشکل تکرار میشد که با بررسی های بیشتر متوجه شدم اصلاً درخواست Resolve به DNS ارسال نمیشه و یه چیزی توی خود سیستم عامل داره مانع میشه.

تا دلتون بخواد جستجو کردم و ساعت‌ها جستجو نتیجه‌ای در بر نداشت ، البته مشکل اینجا بود که دنبال راه حل‌هایی بودم که دوستان تأیید کرده بودن جواب میده و راه حل‌هایی که برای دیگران جواب نداده بود را بررسی نمیکردم. یکی از موارد که اصلاً فکرم بهش خطور نمیکرد این بود که افرادی توصیه کرده بودن dnsmasq که یک DNS Forwarder و DHCP Server هست را غیر فعال کنیم.

خیلی شانسی توی یک وبلاگ کسی توضیح داده بود که dnsmasq که گویا از Ubuntu 16.04 پیش‌فرض نصب و فعال هست میتونه به دلایلی که جاش در این متن نمیگنجه باعث مشکلات Resolve بشه. خوب گفتم کار پیچیده‌ای نیست و کافیه حذفش کنیم و تویetc/NetworkManager/NetworkManager.conf/ هم غیر فعالش کنیم ببینیم چی میشه :

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

[ifupdown]
managed=false

بعدش هم NetworkManager را Restart کنیم :

sudo service network-manager restart

و در نهایت تعجب مشکل حل شد !!!!
به اندازه‌ای اعصابم از این مشکل خورد بود که حوصله کنکاش بیشتر نداشتم اما گفتم تجربش را توی وبلاگ بگذارم و در زمان مقتضی حتماً مفصل بررسیش کنم.

پردازش و نمایش سخت افزاری ویدئو (Hardware Video Acceleration) با کارت گرافیکی اینتل

نویسنده:
۱۴ فروردین ۹۶

اگه اهل فیلم و سریال باشین و به توزیع‌های لینوکسی مهاجرت کنین ، یکی از مواردی که خیلی توی ذوق میزنه کیفیت پایین پخش فایل‌های ویدئویی در لینوکس هست. عموما دوستان دنبال رفع مشکلات نصب کارت گرافیکی خودشون میگردند در صورتی که کارت گرافیک به درستی نصب شده اما فیلم‌ها با کیفیت پایینی نمایش داده میشوند.

البته توجه داشته باشین که کارت گرافیکی شما باید توانایی نمایش سخت افزاری را داشته باشه تا CPU درگیر نمایش ویدئو نشه و بهترین کیفیت ممکن نمایش داده بشه. من توی این پست به خاطر استفاده از کارت گرافیکی Intel فقط در مورد این کارت گرافیکی صحبت میکنم و توی مجال دیگری که بتونم NVIDIA را هم بررسی کنم در مورد اون هم خواهم نوشت.

من توی لینوکس برای نمایش فیلم‌ها از VLC استفاده میکنم. VLC برای پخش سخت افزاری از VDPAU استفاده میکنه که متأسفانه برای Intel به صورت Generic وجود نداره اما یک پکیج به نام libvdpau-va-gl موجود هست که به کمک OpenGL امکان استفاده کارت گرافیکی هایی که VDPAU را پشتیبانی نمیکنند فراهم میکنه. برای نصب این پکیج میتونید دستور زیر را بزنید :

sudo apt-get install  libvdpau-va-gl1 vdpauinfo

اما متأسفانه من نتونستم از طریق این پکیج و با استفاده از کارت گرافیکی Intel خودم و گذاشتن خروجی ویدئوی VLC روی VDPAU جواب بگیرم و VLC میگه که نمیتونه Library مورد نظرش را پیدا کنه و خطاهایی میده که روی نت هم نتونستم پاسخی صریح براش پیدا کنم و نیاز به بررسی خیلی بیشتر داشت.

با این حال در حین جستجو ها متوجه شدم که میشه همین پکیج libvdpau-va-gl را به شکل دیگه‌ای روی VLC پیاده‌سازی کرد. به این صورت که کافیه یک VIDEO ACCELERATION API نصب کنیم و از طریق OpenGL روی VLC نمایش سخت افزاری داشته باشیم.

پس ابتدا با دستور زیر پکیج های مورد نظر را نصب میکنیم :

sudo apt-get install i965-va-driver vainfo

حالا کافیه خروجی ویدئو را توی VLC بگذاریم روی OpenGL GLX Video Output و توی Input/Codecs هم Hardware-Accelerated decoding را بگذرایم روی VA-API Video Decoder via X11 و تمام. حالا اگه یک فیلم یا سریال را باز کنید از نتیجه متحیر میشین.(مخصوصا در مورد فیلم‌های HD)

زمانی که من این موارد را بررسی و گزارش میکردم از توزیع Debian و میزکار Cinnamon بهره میبردم و Tearing نداشتم. اما روی اوبونتو و سایر میز کارها به شرطی که مشکل Tearing را حل کرده باشین مورد خاصی نباید باشه.

Track کردن پوشه های خالی در یک ساختار درختی در Git

نویسنده:
۲ فروردین ۹۶

Git از جمله موضوعاتی هست که من باید خیلی دربار‌ه‌ش بنویسم اما خوب واقعاً نشده اما صد در صد در موردش خواهم نوشت. در مورد این نوشته خاص باید توضیح بدم که اصولاً Git پوشه ها را Track نمیکنه و فایل‌ها را Track میکنه. در نتیجه اگه یک پوشه خالی باشه اصولاً Git بی خیالش میشه و شما هم نمیتونین توی Stage بیارینش.

راه حلی که خیلی مورد استفاده قرار میگیره این هست که یک فایل خالی با عنوان keep. یا gitkeep. توی اون پوشه مورد نظر ایجاد میکنند تا Git اون ها را توی پروسه Track و Stage بیاره. اگه هم پوشه ای باشه که خودش ignore شده باشه توی gitignore. از طریق کد زیر درخواست عدم نادیده گرفتن فایل gitkeep. را میدیم :

!.gitkeep

حالا یکی از سناریو هایی که معمولاً توی ساختار‌های نسبتاً ضعیف دیده میشه یک پوشه و مجموعه فرزندانش توی چند سطح هست که به فایل‌هاشون نیاز نیست و توی gitignore. نادیده گرفته میشن اما پوشه ها باید با همون منطق gitkeep. حفظ بشن مثل نمونه زیر :

folder
 sub1
   sub1-1
   sub1-2
 sub2

توجه: توی همه پوشه ها هم فایل gitkeep. داریم.

توی gitignore. داریم :

folder/*

اما مشکل اینجاست که Git تا نسخه‌ای که در زمان نوشتن این مطلب منتشر شده فقط مجوز Track کردن همون سطح اول پوشه ها را میده (یعنی folder) و باقی را نادیده میگیره (یعنی sub1 و sub2 و همه فرزندانش) و به اصطلاح Recursive عمل نمیکنه.

من راه حلی از طریق Git پیدا نکردم جز اینکه یکی یکی پوشه ها را ignore کنی یا با git-add -f با اعمال قدرت از Git بخوای که فایل‌های gitkeep. را Track کنه! فقط توی این حالت دوم بعد از ساخت فایل‌های gitkeep. دستور زیر کمک میکنه که دستی اون ها را Add نکنیم (دستور را توی root پروژه میزنیم) :

find . -name '.gitkeep' | xargs git add -f

بازیابی لینوکس بعد از نصب ویندوز یا سیستم عامل دیگر

نویسنده:
۷ بهمن ۹۵

میخواستم یکسری Game قدیمی را دوباره بازی کنم و حوصله سر و کله زدن با Patch هاشون توی Windows 7 را نداشتم و برعکس همیشه که لینوکس را بعد از ویندوز بی دردسر نصب میکردم و Grub همه چیز را تر و تمیز Dual Boot میکرد. اینبار باید Windows XP را در حالی که لینوکس نصب بود Setup میکردم.

وقتی ویندوز را بعد از لینوکس نصب میکنید ، چون ویندوز کلاً لینوکس را تشخیص نمیده و Boot Loader خودش را جایگزین Grub توی MBR میکنه در نتیجه به هیچ وجه نمیتونید سیستم را با لینوکس بوت کنید. و سیستم از Dual Boot خارج میشه. اما بازیابی Grub خیلی هم کار سختی نیست.

کافیه Live CD مربوط به توزیع لینوکس را بگذارین و لینوکس را بیارین بالا. حالا با دستور sudo fdisk -l باید ببینید لینوکس روی کدوم پارتیشن نصب شده. مثلاً روی سیستم من sda5 بود. حالا با دستور زیر پارتیشن را mount میکینم:

sudo mount /dev/sda5 /mnt

حالا دستور زیر را برای محکم کاری بزنین تا موارد مورد نظر mound بشن :

for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done

توی این مرحله که پارتیشن مربوطه را mount کردیم باید chroot کنیم :

sudo chroot /mnt

حالا grub را روی دیسک مرتبط با پارتیشن لینوکس نصب میکنیم. دیسک من میشه sda:

grub-install /dev/sda

حالا باید Grub را update کنیم که ویندوز را شناسایی کنه:

update-grub

حالا از chroot خارج میشیم و سیستم را ریست میکنیم و تمام :

exit
sudo reboot

یادتون باشه برای پیشرفت توی لینوکس نباید از ترمینال بترسین و بهتره وقتی میشه کاری را خیلی ساده و سر راست با ترمینال انجام داد نیازی به اسکریپت های آماده نیست.

پشتیبان گیری (Backup) از پایگاه داده MySQL و MariaDB

نویسنده:
۲۷ دی ۹۵

برنامه نویس هایی که با پشتوانه ویندوزی و استفاده از MSSQL به لینوکس و PHP و پایگاه داده محبوب این محیط یعنی MySQL مهاجرت میکنن یا میخوان توی پروژه ای ازش استفاده کنند در زمان انتقال پروژه به سیستم دیگه ، روی وب یا کلاً زمان پشتیبان گیری سعی میکنند مثل MSSQL که یک فایل Database و Log داره و با کپی گرفتن ازش همه چیز حله با MySQL برخورد کنند و با کپی گرفتن از پوشه MySQL و جداول مربوطه خودشون را خلاص میکنند.

اما وقتی زمان بارگزاری مجدد و Restore کردن پروژه میشه تازه متوجه میشن یا اطلاعاتی را کپی نگرفتند یا MySQL فایل‌های پشتیبان را تشخیص نمیده و حواسشون به اینکه MyISAM بوده یا InnoDB نداشتند و حسابی گیر میوفتن.

راستش من از اول وقتی متوجه شدم MySQL ابزاری به نام MySQLDump داره کلاً درگیر کپی کردن فایل‌ها نشدم. خیلی راحت میشه با دستور زیر جداول و کل روال ها و توابع ایجاد شده را تر و تمیز پشتیبان گرفت :

mysqldump -e -R -h [Remote host or 127.0.0.1 or localhost] -u [Your username] --password=[Your password] [Database name] > [Filename to save backup]

توی ویندوز اسمش mysqldump.exe میشه البته. (امیدوارم تا حالا مهاجرت کرده باشین به لینوکس!)

برای بارگزاری مجدد یا Restore هم از دستورخود mysql استفاده کنید (mysql.exe ویندوز):

mysql -h [Remote host or 127.0.0.1 or localhost] -u [Your username] --password=[Your password] --default-character-set=utf8 --database=[Database name] < [Filename to load backup data]

این روش مزایای زیادی داره از جمله اینکه میتونید از پایگاه داده‌های Remote هم پشتیبان بگیرین و Restore کنین یا با یک Cronjob به صورت هفتگی از پایگاه های داده محلی یا Remote (روی وب) پشتیبان بگیرین و …

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

نویسنده:
۲۰ آذر ۹۵

اگه توسعه‌دهنده وب باشین خیلی مواقع پیش میاد که نیاز دارین همه فایل‌های یک وب سایت را دانلود کنین. اگه سایت مورد نظر روی میزبانی واقع باشه که Cpanel یا کلاً یک Filemanager داشته باشه میتونید یک نسخه Zip شده از فایل‌ها بگیرین.

اما این فقط توی سناریو‌هایی جواب میده که حجم سایت خیلی بزرگ نشه. اگه حجم به گیگابایت برسه احتمال داره اصلاً اسکریپت Timeout بشه یا به خاطر عدم پشتیبانی از Resume و عدم وجود حجم کافی برای پشتیبان گیری روی دیسک به مشکل بخورین. سناریو‌هایی هم هست که سایت روی یک VPS قرار داره و پنل مدیریتی هم وجود نداره. یا کلاً جز FTP چاره دیگه‌ای نداریم.

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

wget -r -l 0 --user="username" --password="password" ftp://server.com/

نصب کتابخونه‌های وابسته یا همون Dependency های پکیج های DEB

نویسنده:
۸ آذر ۹۵

برای اینکه از طریق خط فرمان یک پکیج deb را نصب کنیم از دستور زیر استفاده میکنیم :

dpkg -i package.deb

اما گاهی پیش میاد که پکیج ، یکسری وابستگی داره و نصب نمیشه. در این شرایط نیاز نیست پیگیر نصب این وابستگی‌ها بشیم و با دستور زیر پس از بروز خطا همه اون ها نصب میشه و بعد از نصبشون میتونیم راحت پکیج Deb را نصب کنیم.

sudo apt-get -f install

چگونه پس از ۴ سال استفاده از لینوکس ، دیگران را به استفاده و مهاجرت به لینوکس تشویق میکنم ؟

نویسنده:
۱۸ شهریور ۹۵

از اسفند ماه سال ۹۱ که با نصب اوبونتو در کنار ویندوز آروم آروم و در کمتر از چند ماه به کل به لینوکس مهاجرت کردم چهار سال و نیم میگذره و یکی از اتفاقاتی که من را خیلی خوشحال میکنه این هست که ببینم بر اثر تشویق و حمایت و پشتیبانی که برای دوستان خودم در انجمن‌های تخصصی برنامه نویسی انجام میدم ببینم کسی لینوکس را امتحان کرده و نظر مثبت داره و به فکر مهاجرت هم افتاده.

مهاجرت به لینوکس

توی این چند سال که دوستان را به مهاجرت به لینوکس تشویق کردم و بازخورد ها را دیدم متوجه شدم چقدر جامعه کاربری کامپیوتر با هم فرق دارن. مثلاً وقتی لینوکس را به یک نفر که استفاده خیلی خیلی معمولی در حد اینترنت گردی ، فیلم و موسیقی ، چت متنی و ویدئویی ، نوشتن اسناد متنی ساده داره و تعصب خاصی هم روی ویندوز نداره و از ویروسی شدن سیستم و کند شدنش و هزینه‌های نصب و راه‌اندازی چند ماه یکبار عصبانیه معرفی میکنم عین کلمه‌ای که میگه این هست که Wow چه عالی ! چون نیاز های اصلیش برطرف میشه و مشکلاتش هم دیگه وجود نداره.

اما اگه این معرفی به کسی باشه که از کامپیوتر حرفه ‌ای تر استفاده میکنه یکسری موضوعات هستند که سد راه می‌شوند و متقاعد کردن هم نه درسته و نه عملی !!! کلاً در این مواقع باید ببینم طرف چی میخواد. مثلاً همکار های خودم که در زمینه برنامه نویسی وب کار میکنند را میشه تا ۹۵ درصد قانع کرد و اون ۵ درصد هم بر میگرده به اینکه طرف با کامپیوترش بازی میکنه یا حوصله نداره بشینه کمی با Gimp کار کنه تا بفهمه در زمینه وب کارش را حل میکنه یا LibreOffice در حد کاری که ما ازش انتظار داریم کامله.

خلاصه اینکه معرفی لینوکس به متعصبین و کسانی که حاضر نیستند چیزی که توی لینوکس به دست میارن را با چیزی که توی ویندوز از دست میدن جایگزین کنند نتیجه‌ای نمیده. عموم مخالفین مهاجرت که قابل احترام هستند و به نظرم باید بچسبند به همون ویندوز ۳ دسته اند :

۱ – کسانی که اهل Game هستند و Steam هم راضیشون نمیکنه و قصد استفاده از کنسول های بازی و جایگزینیش با کامپیوتر هم ندارند.

۲ – کسانی که حاضر نیستند حتی نیمی از زمانی که صرف یادگیری ویندوز کردند را برای لینوکس صرف کنند و به همینکه نمیتونن کاری را به راحتی ویندوز انجام بدن ازش زده میشن.

۳ – کسانی که از نرم‌افزار های تخصصی منحصر به ویندوز استفاده میکنند و جایگزین مناسبی روی لینوکس براش وجود نداره یا احساس میکنن لینوکس ارزش جایگزینی و یادگیری یک نرم‌افزار معادل را نداره !!!

خیلی از اشخاص روی وب بودن که نوشته هاشون من را علاقه‌مند به استفاده از لینوکس کرد و همیشه ازشون متشکر هستم و خواهم بود. یکی از این دوستان جناب حسین زاده و وبلاگ خوبشون بود که اخیراً یک پست در مورد اینکه چرا دیگه لینوکس را دوست ندارن ! منتشر کردن و من به عنوان یک دنبال کننده وبلاگشون قصد دارم برخی عناوین جهت مراجعه دوباره به ویندوز را نقد کنم:

فقط کار کند !
راستش من متوجه نمیشم ، خود من به عنوان یکی از کاربران کوچک سیستم عامل لینوکس ۴ سال هست به صورت حرفه‌ای و تجاری از لینوکس برای کلیه کار های شخصی و شرکتی استفاده میکنم و تا حالا اتفاق نیفتاده لینوکس مشکل خاصی پیدا کنه. شاید کسی برامون فایل نرم‌افزار منحصر به ویندوز فرستاده باشه که با همون ویندوز کنار لینوکس یا توی VmWare تبدیل شده یا موضوع حل شده رفته و دلیل بزرگی برای بازگشت به ویندوز نبوده.

عدم سازگاری !
من نمیتونم در مورد سازمان ها و اینکه چرا از لینوکس استفاده نمیکنن نظر بدم توی این پست اما قطعاً اینکه گلستان با توجه به اینکه حتی روی ویندوز باید روی نسخه های خاصی از IE نمایش داده بشه دلیل بر عدم سازگاری نیست و کم‌سوادی عده‌ای را میرسونه که با هر هنری که دارن تونستند به صورت انحصاری محصولی که بد ساخته شده را بفروشن !!! خلاصه اینکه بنده هم با اداره ها در ارتباط هستم (البته سالی یکی دو بار و نه بیشتر) و گاهی نیاز میشه از ویندوز کناری سیستمم برای برخی کار‌هاشون استفاده کنم. اما بیش از ۹۰ درصد کار ها با همون لینوکس راه میفته و نیاز به ویندوز نداره ! در مورد نرم‌افزار های وطنی هم راستش مورد نبوده که شخصاً نیاز روزمره بهش داشته باشم و اگه برای کسی چنین نرم افزاری وجود داره خوب این مشکل ایشون میشه و نمیشه تعمیم داده به همه.

مسائل فنی
قطعاً هیچ‌کس این مطلب را رد نمیکنه که لینوکس در زمینه سخت‌افزار مشکلاتی داره که این مشکلات را من خیلی متوجه ذات سیستم‌عامل نمیبینم و متوجه این می‌بینم که شرکت های تولید کننده عموما بازار هدف را ویندوز قرار میدن و در خیلی از موارد از ارائه سورس درایور سخت‌افزار هم ممانعت میکنن و توسعه دهندگان توزیع‌های لینوکسی چاره‌ای جز نوشتن وصله پینه هایی برای حداقل کارکرد این سخت‌افزارها ندارند. اما اگه کاربر لینوکس باشی و علاقه‌مند به استفاده از لینوکس ، توی بازار هستند لپتاپ های خیلی خوبی که سازگاری کامل یا حداکثری با لینوکس دارند و میشه لپ‌تاپ را از این دسته انتخاب کرد تا از تولید کننده ای که فقط برای ویندوز تولید میکنه.

جامعه کاربری (البته با عنوان رفتارهای سخیف آمده است)
در این مورد قصد ساز مخالف زدن ندارم ! بله جامعه کاربری لینوکس چنگی به دل نمیزنه. رفتار های توی انجمن‌های لینوکسی و جوامع دورهمی هم سخیفه هم متوهمانه. اما در مقابل ، بچه‌های خیلی خوب هم هستند که اخلاق ۱۸۰ درجه‌ای با این طیف سخیف دارن که هم من میشناسمشون و هم جنابعالی.

ابطال برخی اعتقادها
راستش اینکه کسی چشم بسته و بی پس و پیش به چیزی اعتقاد داشته باشه به نظرم حماقت میاد. یعنی اینکه چون لینوکس داریم حتماً امنیت ۱۰۰ درصد هست خنده داره. اما لینوکس فلسفه‌اش در اجرای برنامه‌ها و دسترسی ها کلاً با ویندوز متفاوته و به نظرم همین باعث میشه بسیار امن تر از ویندوز باشه. اینکه به خاطر سورس باز بودن حفره های امنیتی کشف و گزارش می‌شوند دلیل نمیشه اعتقاد به امن بودن لینوکس ابطال بشه چون در مقابل کسی از در‌پشتیهای ویندوز و مشکلاتش حتی اگه وجود داشته باشه به دلیل بسته بودن سورس اصلاً آگاه نمیشه. در مقابل ویندوز همچنان بدون آنتی ویروس و فایروال و بدافزار شناس ها بسیار آسیب پذیره و باید متوجه باشین تنظیمات این نرم‌افزار ها هم غالباً به درستی انجام نمیشه و یا آنتی ویروس به روز نمیشه و خیلی موارد دیگه که باز هم امنیت ابتدایی را برای کاربر به وجود نمیاره ولی در مقابل این امنیت ابتدایی (حداقل ترین را میگم) قطعاً توی لینوکس وجود داره.

در پایان توصیه میکنم اگه لینوکس را تا حالا امتحان نکردین حتماً در کنار ویندوز نصب کنید و هر از گاهی وقت بگذارین براش تا بتونین ازش سر در بیارین و شاید یک روز کلاً مهاجرت کردین به لینوکس./

رفع مشکل خط افقی روی ویدئو یا همون Screen Tearing در اوبونتو

نویسنده:
۱۷ مرداد ۹۵

اگه دنبال کننده وبلاگ من باشین قطعاً میدونین که اهل فیلم و سریال هستم و با وجود مشغله زیاد بعضی شب‌ها حتماً سریال‌های مورد علاقه‌ام را دنبال می‌کنم. اما یک مدت بود که روی تصاویر VLC (البته فرق نمیکرد ، روی smplayer و غیره هم همین وضع بود) مخصوصاً در زمانی که تصاویر اکشن و سریع پخش می‌شدن یک خط افقی ، بالا یا پایین می‌رفت و روی اعصاب بود و واقعاً وقت نمی‌کردم بشینم مشکل را بررسی کنم.

Screen Tearing

اما بالاخره چند شب پیش یکی دو ساعتی وقت گذاشتم و از بین انبوه جستجو‌ها و روش‌های ارائه شده بالاخره مشکل را رفع کردم. فقط دو نکته :

– یکی اینکه من چون از کارت گرافیک اینتل لپ تاپ استفاده میکنم (و واقعاً وقت نکردم بشینم NVIDIA را فعال و نصب کنم) توجه داشته باشین راه حل مربوط به اینتل میشه و شاید مشکل شما به روش دیگه‌ای حل بشه.

– دوم اینکه من دقیقاً نمیدونم به فارسی به این مشکل چی میگن اما توی جستجو‌هایی که داشتم به لاتین بهش میگن Screen Tearing که اون را هم قطعاً اطمینان ندارم و مشکل توی مجموعه پاسخ‌های همین Screen Tearing حل شد و امیدوارم کسی که به فارسی دنبال راه حل میگرده بتونه این پست را پیدا کنه.

اما رفع مشکل خیلی خیلی ساده هستش. ابتدا فایل با نام و مسیر زیر را ایجاد کنید :

/usr/share/X11/xorg.conf.d/20-intel.conf

حالا محتوای زیر را توش بنویسین و سیستم را ریست کنین (شاید نیاز به ریست نباشه اما من که انجام دادم) :

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "TearFree"    "true"
EndSection

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