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

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

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 کنید، اونم با این دستور:

موفق باشید.

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

یکی از خوبیای گنو/لینوکس اینه که هر کاری بخوای می‌تونی توش انجام بدی و برای انجامش حتما چندین راه وجود داره.

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

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

طرز کار:

ابتدا یه فایل خالی تو هر کجای کامپیوتر که دلتون خواست ایجاد کنید و اسمشو هرچی می‌خواین بذارین ولی با پسوند .py ذخیره‌ش کنین.( من ترجیح می‌دم تو دسکتاپم باشه و اسمشو گذاشتم subFix.py‌)

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

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

 

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

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

 

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

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

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

Gparted

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

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

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

سلام به روی ماهت، دنیا!

سلام

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

به تمام دست‌اندرکاران تهیه این مجله خسته‌نباشید می‌گم و امیدوارم به خوبی و خوشی بتونن با پشتیبانی جامعه فعال متن‌باز کشور به راهشون ادامه بدن و همچنین امیدوارم پروژه‌هایی این‌چنین باز هم ایجاد و باعث پویایی و رشد متن‌باز بشه.

دانلود نسخه صفر مجله سلام دنیا