گیک فارسی

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

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

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

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

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

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

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

ابد و یک روز

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

وقتی توی جشنواره فجر پارسال «ابد و یک روز» ۷ تا جایزه و شاخص ترین ها را هم برد به دنبال اکران و دیدن فیلم توی سینِما بودم اما متأسفانه به خاطر مشکلات زیاد زندگی توی سال جاری نتونستم فیلم را توی سینِما ببینم و ناچار منتظر نسخه DVD بودم که هفته پیش بالاخره فیلم را همون شب پخش دیدم.

ابد و یک روز

عجب فیلم خوبی ، به جرأت میتونم بگم در کنار و حتی بهتر از «جدایی نادر از سیمین» و «درباره الی» بود. فیلمنامه که محشر بود و با اجرای منحصر به فرد دیالوگ هاش خیلی راحت سیمرغ جشنواره را مال خودش کرد و جای تبریک داره به «سعید روستایی» که نشون داد خیلی توی چنتش داره و باید حتماً پیگیر کارهاش بود.

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

اگه اصلاً سینمای ایران را دنبال نمیکنید توصیه میکنم حتماً «ابد و یک روز» را ببینید که قطعاً در آینده از این فیلم در تاریخ سینمای ایران بیشتر خواهید شنید.

درس آدم‌شناسی

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

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

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

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

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

باز هم تکرار میکنم که قرار نیست یکنفر صددرصد کامل و بی‌عیب باشه اما شعور ، ادب و درک شرایط و مسئولیت‌پذیری موضوعاتی نیستند که بشه قربانی هوس ،‌ ظاهر ، وضعیت مالی ، وضعیت فنی و … در شروع یک رابطه انسانی کرد.

اما مهمترین نکته در زمانی که احساس میکنید یک رابطه آینده نداره این هست که فوراً در نطفه خفش کنین و خودتون را گول نزنین که طرف را تغییر میدین یا آدمش میکنین و از این حرفا ، با‌ گذشت زمان و دست و پا زدنتون شما بیشتر توی باتلاق روابطتتون فرو میرین. پس زود تمومش کنین و یادتون باشه شما فقط یکبار زندگی میکنید.

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

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

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

dpkg -i package.deb

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

sudo apt-get -f install

وضعیت نابسامان بیمارستان‌ها در ایران

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

امیدوارم هیچ‌ زمانی نیازمند مراجعه به بیمارستان‌ها برای مداوا نباشین ،‌ متأسفانه به خاطر مشکل پدرم مجبور شدم یک هفته توی یکی از بیمارستان‌ها رفت و آمد داشته باشم و از وضعیت رسیدگی و کیفیت خدمات بیمارستان شکه شدم ! جالبه بدونید بیمارستان مورد نظر Grade 1 در بین بیمارستان های دولتی داره و زیر نظر علوم پزشکی هم هست. نیاز به نام بردن نیست و دردی هم با گفتنش دوا نمیشه.

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

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

نظر دهید
دیدگاه‌ها برای وضعیت نابسامان بیمارستان‌ها در ایران بسته هستند

معرفی وبلاگ مینیموم

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

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

وقتی برنامه نود خودش را درگیر موضوعی میکنه که اشراف کامل روش نداره !!!

نویسنده:
۳۰ شهریور ۹۵

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

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

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

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

تناظر کد ملی با بلیت وقتی ایراد میشه که نرم‌افزار اجازه نده کسی با یک کد ملی بیش از یک یا چند تا بلیت بگیره چون ممکنه کسی کد ملی مثل من را بدونه و بره حداکثر بلیت ممکن را بگیره و من نتونم با کد ملی خودم دیگه بلیت تهیه کنم. نه اینکه استدلالت این باشه که چرا میشه با کد ملی خانم هم بلیت گرفت! بعدش جناب فردوسی پور سایت باشگاه بارسلونا را نشون میدن و میگن با هر IP میشه ۶ تا بلیت خرید و شما هم بهتر بود همون IP را معیار قرار میدادین. ایشون توجه نمیکنن که IP هم مشکلات خودش را داره و مثلاً توی خود صدا و سیما اگه ۳۰ نفر بخوان از اینترنت اونجا اقدام کنند برای خرید بلیت از همین بارسلونا ، حداکثر همون ۶ تا بلیت را میتونن بخرند. در صورتی که افراد کاملاً متفاوتی هستند که دارند از یک IP استفاده میکنند.

موضوع بعدی که در مورد اشاره به بارسلونا جالب بود سخیف شمردن پروسه خرید بلیت پیمان کار ایرانی در مقابل بارسلونا بود که به نظر من ، هم شماتیک سایت پیمان کار ایرانی بهتر بود هم پروسه را Ajax ی پیاده‌سازی کرده بودند که خیلی مدرن تر از Page To Page باشگاه بارسلونا بود و کلاً نیشخند جناب فردوسی پور نشون از عدم آگاهی ایشون از Web و توهین به متخصصین وطنی داره.

اما بحث بعدی این بود که چرا اون شرکت به عنوان پیمانکار انتخاب شده و مناقصه صورت نگرفته !؟ این مورد هیچ ربطی به پیمان کار نداره و اگه سازمان لیگ تحت نفوذ هر شخصی (حتی مسئولین همین پیمانکار) بدون مناقصه چنین واگذاری را انجام داده باشه باید ازش سؤال بشه نه پیمانکار که حالا جناب فردوسی علاقه‌مند هم هستند بدونن دریافتیشون از خرید هر بلیت هم چقدره !!!! من احساس کردم جناب فردوسی پور توی ایران زندگی نمیکنند و نمیدونن توی ایران چطوری کار ها به پیمان کار ها واگذار میشه که حالا باید قشر IT مملکت پاسخگوی این وضعیت باشه‌!؟

کمی بحث طولانی شد اما واقعاً از برنامه نود با این سابقه انتظار نمیره بدون مشاوره با یکی از هم صنفی های این پیمانکار چنین نقد غیر کارشناسانه ای داشته باشه !!!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مشکل در نمایش اطلاعات فارسی به صورت علامت سوال از پایگاه داده MySQL در PHP

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

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

مشکل نمایش متون فارسی به صورت علامت سوال

از اونجا که غالباً هر کسی در بخشی از پروسه انجام کار مشکل داره من به ترتیب مراحل اطمینان از درستی انجام کار را در چند شماره توضیح میدم :

۱ – زمانی که پایگاه داده را روی سیستم خودتون نصب میکنید اطمینان حاصل کنید که در مراحل نصب ، پشتیبانی از utf8 را در تنظیمات mysql انجام میدین. روی هاست ها میشه ۹۹ درصد مطمئن بود که از utf8 روی mysql پشتیبانی میشه.

۲ – زمانی که جدول را ایجاد میکنید بهتره برای جلوگیری از مشکلات آتی و فارغ از اینکه Charset پیش‌فرض و Colltation پیش‌فرض در زمان نصب MySQL چی بوده خودتون جداول را با Charset از نوع utf8 و Collation از نوع utf8_persian_ci ایجاد کنید.

توجه: اگه این دو مورد خیلی براتون ملموس نیست اهمیتی نداره ! اگه توی phpmyadmin یا هر برنامه مدیریت پایگاه داده‌ای که استفاده میکنید میتونید فارسی بنویسین و ذخیره کنین و نمایش بگیرین پس کلاً با utf8 مشکل ندارین مگه جاهای خاص که ربطی به موضوع این پست نداره و اگه مشکل دارین با پشتیبانی شرکت میزبان وب خودتون تماس بگیرین.

۳ – حتماً اطمینان حاصل کنید که charset صفحه html را توی تگ meta برابر با utf8 قرار بدین :
در html4 و xhtml

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

در html5

<meta charset="UTF-8">

۴ – اگه از کتابخونه mysql توی php استفاده میکنید حتماً بعد از mysql_connect (دقیقاً بعدش نه اینکه بعد از select گرفتن این کار را انجام بدین !!!) mysql_set_charset را اجرا کنین :

$link = mysql_connect("server_ip_address","mysql_user_name","mysql_pass",true);
mysql_set_charset('utf8',$link);

توجه: ممکنه خیلی جاها ببینید گفته باشن این دو query را بعد از connect اجرا کنین :

mysql_query("SET NAMES 'utf8'",$link);
mysql_query("SET character_set_connection = 'utf8'",$link);

اما تابع mysql_set_charset بهتر و بهینه تره چون باعث میشه زمان استفاده از تابع mysql_real_escape_string که برای جلوگیری از حملات SQL Injection خیلی مهم هست کاراکتر های یونیکد به درستی escape بشن که در حالت پیشنهادی دوم این اتفاق نمیفته و شما در مقابل برخی حملات SQL Injection در خطر قرار میگیرین !

۵ – اگه از کتابخونه mysqli استفاده میکنید بعد از connect متد set_charset را صدا بزنید :

$db = new mysqli('server_ip_address', 'db-user', 'db-pass', 'db-name');
$db->set_charset("utf8");

۶ – اگه از کتابخونه pdo استفاده میکنید زمان connect باید charset را توی dsn مشخص کنید:

$link = new PDO("mysql:host=localhost;dbname=DB;charset=utf8");

توجه: کلاً بهتره کتابخونه mysql را بی‌خیال بشین چون دیگه توی نسخه های جدید php پشتیبانی نمیشه و کلاً حذف شده. اما در مورد mysqli و pdo خیلی سلیقه‌ای هست که توصیه میکنم اگه از mysql استفاده میکنید و قصد جایگزینیش با mssql و پایگاه های دیگه را ندارید حتماً از mysqli استفاده کنید چون سریعتر از PDO هست و برای پایگاه داده mysql بهینه شده.

اگه همه موارد را درست رعایت کرده باشین هیچ مشکلی در نمایش و درج فارسی با پایگاه داده MySQL توی PHP نخواهید داشت. من در پایان هم یک نمونه کد جهت تست قرار میدم :

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>نمایش محتوای جدول</title>
<style>
  body{
      font-family:tahoma;
      font-size:12px;
  }
</style>
</head>

<body>
<?php
  $db = new mysqli('localhost', 'db-user', 'db-pass', 'db-name');
  if($db->connect_errno > 0){
      die('خطا در زمان اتصال به پایگاه داده [' . $db->connect_error . ']');
  }else{
      $db->set_charset("utf8");
      $result = $db->query("select * from tbl_names");
      echo "<table border='1' style='direction:rtl'>";
      echo "<tr style='font-weight:bold;background-color:#ccc'>";
      echo "<td>نام</td>";
      echo "<td>نام خانوادگی</td>";
      echo "<td>کد ملی</td>";
      echo "</tr>";
      while($row = $result->fetch_assoc()){
        echo "<tr>";
        echo "<td>{$row['fld_name']}</td>";
        echo "<td>{$row['fld_family']}</td>";
        echo "<td>{$row['fld_idnumber']}</td>";
        echo "</tr>";
      }
      echo "</table>";
      $result->free();
      $db->close();
  }
?>
</body>

</html>

موفق باشین.

رفع مشکل خط افقی روی ویدئو یا همون 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

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