آموزش نصب اسکالا در اوبونتو ۱۴٫۰۴

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

Scala را به چند روش میشه نصب کرد که من تو این آموزش روش نصب به وسیله فایل‌های کامپایل‌ شده (باینری) رو میخوام توضیح بدم. برای نصب ابتدا به این آدرس رفته و فایل فشرده حاوی فایل های زبان برنامه‌نویسی اسکالا رو دانلود می‌کنیم: به شکل زیر:

download scala lang bineries

 

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

حالا با برای استفاده از حالت مفسر اسکالا دستور زیر رو وارد کنید:

 

ساخت تصاویر بند انگشتی به وسیله لاراول

سلام

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

یه راه حل دیگه اینه که بیاییم به صورت اتوماتیک تصاویرمونو به وسیله اسکریپت resize کنیم. که این خودش نیازمند برنامه‌نویسی و محاسباته(هر چند اندک). با زبان PHP به راحتی میتونیم این مهم رو پیاده سازی کنیم.

کاری که تو این مطلب می‌خوام به شرحش بپردازم نوشتن تابعی برای resize کردن تصاویر در لحظه به وسیله فریمورک محبوب لاراول و پکیج دوست‌داشتنی intervention/image ـه. خب شروع کنیم به کار:

نصب پکیج intervention/image:

خب نیازمندی‌های این پکیج به این ترتیبه:

  • php >= 5.3
  • Fileinfo extension
  • GD lib >= 2.0 یا Imagic PHP extension >= 6.5.7

ابتدا نام پکیج و نسخه مورد نیازمونو در فایل composer.json در قسمت require اضافه می‌کنیم:

سپس به وسیله ترمینال دستور زیر را در دایرکتوری فایل composer.json اجرا می‌کنیم تا پکیج نصب شود:

بعد از اون فایل config/app.php را باز کرده و خطوط زیر را به ترتیب در آرایه‌های providers  و aliases  اضافه می‌کنیم:

و

ایجاد کنترلر کار با تصاویر و متد‌ تغییر سایز تصاویر:

 کد زیر دربردارنده کنترلر و متد ایجاد تصاویر بندانگشتی با سایز‌های دلخواهه که توضیحات به صورت کامنت در کد قرار داره:

 

تعریف  Route برای دسترسی به متد:

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

 ایجاد تصاویر بندانگشتی:

در مرحله آخر می‌رسیم به استفاده از اسکریپتمون. برای این کار فرض کنیم ما تصویری داریم با این آدرس: http://site.com/images/image1.png که دارای سایز ۱۳۶۰x768ـه و ما میخواهیم تصویری با پهنای ۲۰۰ بسازیم و میخواهیم که ارتفاع تصویر هم به نسبت پهنا تغییر کنه. پس فقط کافیه آدرس زیر رو تو هر جای اپلیکیشن( چه کنترلرها و چه داخل کدهای html) صدا بزنیم:

که در صورت عدم وجود تصویر اصلی، تصویری با رنگ خاکستری روشن و به سایز ۲۰۰x200 ایجاد میشه و در صورت وجود تصویر اصلی، تصویری بندانگشتی به سایز ۲۰۰x113 پیکسل ایجاد میشه. در صورتی که بخواهیم با  ارتفاع دلخواه خودمون تصویر ساخته بشه کافیه پارامتر h را به تابع route بدیم.

راهنمایی:

برای نصب اکستنشن در php کافیه در اوبونتو دستور زیر رو بزنیم:

 

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

فقط یادتون باشه که بعد از اینکار باید apache را restart یا  reload کنید، اونم با این دستور:

موفق باشید.

تنظیمات دیتابیس برای تست در لاراول

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

خب برای این کار تو لاراول باید یه سری تنظیمات انجام بدیم که خیلی راحته. اگر دایرکتوری config رو توی پروژه‌تون نگاه کنید میبینید که شامل چند تا زیر دایرکتوریه که یکیش به نام testing ـه. تو این فولدر ما تنظیماتی رو قرار میدیم که در هنگام اجرای تست‌ها به کمکمون میاد و محیط تست این تنظیمات رو در اولویت استفاده قرار میده. به طور پیشفرض یک فایل app.php و یک فایل database.php قرار داره توش.

من برای تست از دیتابیس sqlite استفاده می‌کنم. پس محتویات فایل دیتابیس رو به این شکل تغییر میدیم:

 

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

خب این شد تنظیمات دیتابیسمون. حالا برای انجام هر تست باید دو تا متد رو توی کلاس تستتون override کنید به این صورت:

 

متد setUp در هنگام اجرای تست فراخوانی میشه و توش میایم و به وسیله کلاس Artisan دستور migrate رو اجرا می‌کنیم تا جداول دیتابیسمون ساخته بشن.

متد tearDown هم پس از پایان تست‌ها فراخوانی میشه و ما میاییم همه چیو تو دیبابیس به حالت اولش برمی‌گردونیم توسط دستور migrate:rollback.

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

تذکر

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

بعد از این دستور sqlite برای php5 نصب شده و فعال می‌شود.

 

دردسرهای گرفتن بک‌آپ از سیستم‌عامل

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

 

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

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

بعد از این کار، فایل ایمیجی که برنامه systemback تولید کرده بود رو روی یه فلش ۸ گیگ رایت کردم و رفتم برای شروع عملیات اصلی. سیستمو ری‌استارت کردم و با فلش سیستمو بوت کردم و خیلی قشنگ از رو فلش بالا اومد و از سالم بودن فایل‌هام اطمینان پیدا کردم. رفتم با Gparted تمام هاردو از اول پارتیشن بندی کردم و بعدش با همون systemback ابونتوی خودمو رو پارتیشن‌های جدید نصب کردم و پارتیشن‌ /home رو هم جدا کردم و بعدش ری‌استارت کردم سیستمو. اینم پارتیشن بندی جدید هارم:

Gparted

فاجعه وقتی رخ داد که بعد ری‌استارت دیگه هیچ چیز بالا نمیومد و bios قادر به شناسایی سیستم عامل روی هارد نبود. رفتم یه خورده جستجو کردم و چند تا راه رو امتحان کردم برای تعمیر گراب که فکر می‌کردم مشکل از اون باشه. با نرم‌افزار boot-repairو به وسیله terminal هر کاری کردم گراب درست نشد که نشد. دیگه ناامید شده بودم و تنها راه پیش روم نصب دوباره اوبونتو بود، CD اوبونتو لایو رو هم گذاشتم رفتم برای نصب دوباره اوبونتو. اعصابم خورد شده بود حتی فکر اینکه دوباره بخوام این همه تنظیمات و دانلود و نصب پکیج‌ها رو از اول اعمال کنم، دیوونه‌م می‌کرد.

در اوج ناامیدی یه بار دیگه سعی کردم گرابو درست کنم و دوباره مجبور شدم تو همین حالت لایو boot-repair رو دانلود کردم و دوباره تست کردم و سیستمو ری‌استارت کردم و بازم در اوج ناامیدی گراب درست شده بود و سیستم بالا اومد. انگار خون تازه‌ای تو رگ‌هام جریان پیدا کرده بود.

نتیجه اخلاقی: اگر ۴ بار یه راهو رفتید و به نتیجه نرسیدید، دوباره همون راهو برید، شاید اشتباه رفتار می کردید که به نتیجه نرسیدید.

اطلاع از دمای قطعات کامپیوتر در اوبونتو

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

خیلی‌ها از جمله خودم از کارکردن با ترمینال لذت می برن و خیلی از برنامه‌هاشون شاید فقط تحت ترمینال اجرا می‌ن خب اینم دلایل خاص خودش مثل سرعت بالای اجرای کارا داره. مثلا من خیلی از کارامو از جمله ویرایش فایل‌های متنی یا مدیریت سرویس‌ها و یا دانلود فایلو… از طریق ترمینال انجام می‌دهم اونم به لطف نرم‌افزار‌های خوب و سریع و با کیفیت.
از بحث دور نشویم برای اینکه بخواهیم از دمای قطعات درونی کامپیوترمون اطلاع داشته باشیم و اونم تحت ترمینال یه نرم‌افزار وجود داره به نام lm-sensors که اطلاعات جامعی در مورد دمای پردازنده‌ها به تفیکیک هسته، مادربورد و … میده بهمون.

برای نصبش در توزیع‌های بر پایه دبیان کافیست دستور زیر را در ترمینال وارد کنیم:

 

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

 

اینم خروجی دستور بالا تو لپ‌تاپ من:
راه دیگه نمایش دمای قطعات استفاده از نرم‌افزارهایی است که دارای رابط کاربری گرافیکی هستند. یکی از معروف‌ترین نرم افزار‌ها نرم‌افزار Psensor هست که همین کارهای نرم‌افزار بالا را در نموادرهای‌گرافیکی نمایش می‌دهد که برای نصبش می‌تونید از Ubuntu Software Center و از طریق جستجوی کلمه psensor نرم‌افزار را پیدا کرده و با یک کلیک نصب کنید.
خروجی نرم‌افزار Psensor هم به شکل زیر می‌باشد: