خطای Target … is not instantiable while building در لاراول

اگر به این خطا برخوردید. Target [Module\\Doctor\\Contract\\RepositoryInterface] is not instantiable while building واضحه دلیلش بایند نشدن اینترفیس به کلاس اصلیه اونه.

برای حل این مشکل نیازه پیدا کنید کجای پروژه دارین اینترفیس هاتون رو به هسته لاراول بایند میکنین. فایلی که پراویدر هاتون رو داخلش بایند کردید، در متد رجیستر اینترفیسمون رو به کلاس اصلی بایند میکنیم.

آموزش رفع خطای Elasticsearch BadRequest400Exception cluster_block_exception blocked by TOO_MANY_REQUESTS/12/disk read-only-allow-delete block

سلام، امروز با خطای Elasticsearch BadRequest400Exception cluster_block_exception blocked by TOO_MANY_REQUESTS/12/disk read-only-allow-delete block در الستیک سرچ روبرو شدم و خب با سرچ به این نتیجه رسیدم که بصورت پیش فرض الستیک سرچ با مود read-only نصب میشه و وقتی فضای آزاد هارد شما کمتر از ۵٪ باشه خطاهایی شبیه این میبینید یا میشه این خطا هارو تو آدرس ‍/usr/local/var/log/elasticsearch.log‍ پیدا کرد.

برای رفع این خطا کافیه دستور زیر رو اجرا کنید فقط.

curl -XPUT -H “Content-Type: application/json” http://localhost:9200/_cluster/settings -d ‘{ “transient”: { “cluster.routing.allocation.disk.threshold_enabled”: false } }’

curl -XPUT -H “Content-Type: application/json” http://localhost:9200/_all/_settings -d ‘{“index.blocks.read_only_allow_delete”: null}’

منبع راهنما: https://selleo.com/til/posts/esrgfyxjee-how-to-fix-elasticsearch-forbidden12index-read-only

Elasticsearch\Common\Exceptions\BadRequest400Exception error cluster_block_exception blocked by TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block

چطور وقتی تغییرات ما در gitignore اعمال نمیشه دستی انجامش بدیم؟

امروز اومدم با گیت یه پروژه قدیمی کار کنم. و اون زمان پوشه vendor رو گذاشته بودم تو گیت. خب اومدم gitignore رو تغییر بدم اما متوجه نشدم چرا اعمال نشد! ولی خب با سرچ راه حل خوبی پیدا کردم.

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

git rm -r --cached vendor

git add .
git commit -m ".gitignore"

افزایش حافظه Swap (ارتقا رم) در اوبونتو ۱۸

خیلی وقت بود با مشکل کمبود رم مواجه شده بودم و با اینکه رم سیستمم ۸گیگ بود بازم کم میومد! هنوز نمیدونم چرا! ۲گیگ هم سواپ Swap بود اما فایده ای نداشت. تصمیم بر این گرفتم این حافظه رو ارتقا بدم. اول از همه آیا میدونین Swap چی هست؟

حافظه Swap چیست و چه کاربردی دارد؟

حافظه swap به فایلی تو سیستم اطلاق میشه که کاری مشابه رم سیستم میکنه. به عبارتی خیلی ساده وقتی سیستم عامل حافظه رم کافی نداره، میاد و چیزهایی که نیازه در حافظه موقت و پر سرعت RAM ذخیره بشن رو بر روی هارد دیسک ذخیره میکنه و بعبارتی از فضای هارد بجای رم استفاده میکنه. این کار مزایا و معایبی داره. وقتی رم سیستم کم میاد برنامه ها رو هوا نمیمونن و هنگ نمیکنن یا خطا نمیدن، از طرفی به شدت سرعت سیستم پایین میاد چون در مقابل حافظه های پرسرعت رم، هارد ها مثل فلاپی میمونن. البته هارهای قدیم یعنی HDD و با اومد هارد های SSD کمی این اوضاع بهتر شد و ارزش اینو داره بتونین بیشتر از این فضا استفاده کنین. هاردهای SSD خشک، بدون قطعه متحرک و پرسرعتن. سرعت هارد های معمولی به حدود ۴۰۰ مگابایت بر ثانیه میرسه و هارد های SSD NVMe M.2 به سرعت وحشتناک ۲ گیگابایت بر ثانیه میرسن!

در اوبونتو Swap یه فایله که اطلاعاتی که قرار بود تو رم ذخیره و اجرا بشه، داخل اون ریخته میشه.

چطور حافظه Swap رو در اوبونتو ارتقا بدیم؟

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

۱. سواپ Swap رو خاموش کنین، این دستور چیزایی که تو سواپ هست رو به حافظه اصلی همون Ram منتقل میکنه. ممکنه براتون کمی طول بشه (بسته به سرعت هاردتون)

sudo swapoff -a

۲. یک فایل خالی برای swap ایجاد کنید، در اینجا با این دستور ۸ رم ۱گیگابایتی به سیستم اضافه میکنه. عدد جلوی count باید از نوع صحیح باشه.

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

۳.فایل swap رو به سیستم عامل معرفی کنین و بشناسونیدش.

sudo mkswap /swapfile

۴. حالا سواپ رو روشن کنین.

sudo swapon /swapfile

با دستور top یا htop (اگر نصبش کرده باشین) میتونین ببینین چقدر حافظه ایجاد کردین. یا دستور زیر رو استفاده کنین که راحتتره

grep Swap /proc/meminfo

موفق باشید

حملات سایبری و کمی آینده نگری

راحتی حمله سایبری در مقابل سایر گزینه های روی میز!

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

برای ساخت یک سلاح سایبری، صرفاً به یک رایانه، ارتباط با اینترنت و نیز سطحی از مهارت در برنامه نویسی و دانش شبکه نیاز دارید. همچنین شناسایی مسیر شکل گیری سلاح های سایبری بسیار دشوار است.

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

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

این کتاب (صنایع آینده – الک راس – ترجمه صالح سپهری فر) سال ۲۰۱۵ نوشته شده و سال ۲۰۱۶ چاپ شده. اگر ما کتاب های به روز رو بیشتر هدف مطالعه قرار بدیم؛ آینده بهتری خواهیم داشت. چند مثال میزنم:
اگر سال ۲۰۱۶ یعنی ۴سال پیش بعد خوندن کتاب و کمی تحقیق بیتکوین میخریدیم؛ تو بدترین حالت سرمایتون به دلار بیش از ۳ برابر شده بود و به ریال ۱۲ برابر. یعنی هر ۱میلیون معادل ۱۲ میلیون اونم در پایینترین حالش!
بد نیست حالت معمول و معقول رو هم اشاره کنم. اگر اون زمان میخریدن و الان میفروختین بیش از ۷ برابر سود دلاری و بیش از ۲۸ برابر سود ریالی داشتید.
یعنی ۱۰میلیونتون ظرف ۴سال میشد ۲۸۰ میلیون تومان

فقط بیتکوین نیست؛ میدونین آینده شغلی مال کدوم کسب و کارها و مهارت هاست و اونجا برای خودتون یا فرزندتون سرمایه گذاری میکردین.
رباتیک؛ توالی ژنوم؛ و بیشتر از همه تا اینجا برنامه نویسی و امنیت سایبری بیشترین درخواست و درآمد رو دارن. همین الان برای مهاجرت هم بیشترین امتیاز حساب میشه.

پتانسیل بسیار مخرب فضای سایبری

بریده هایی از کتاب صنایع آینده – نوشته الک راس – ترجمه صالح سپهری فر

۱. وابستگی مخرب

نخستین و اصلی ترین دلیلی که سبب میشود فضای سایبری به صورت بلقوه بسیار مخرب باشد، وابستگی کامل ما به آن برای انجام امور مختلف زندگی است. پی بردن به سودمندی فناوری دیجیتال کار دشواری نیست. در مقابل، درک میزان وابستگی ما به آن و نیز درک پیامدهای ناشی از انکار وابستگی، کار دشواری است که البته این دشواری نیز باز هم به دلیل همان وابستگی باور نکردنی ما به آن است. (جیم گسلر James R. Gosler – کارشناس و مشاور ارشد سیا در حوزه سایبری)

۲. جی.پی.اس هم هک میشود!

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

۳. سرنکونی پهپاد RQ-170 توسط ایران

آذر سال ۱۳۹۰ ایران موفق شد پهپاد ۲۵۰ میلیون دلاری امریکا رو با استفاده از حفره امنیتی در سامانه جهانی جی.پی.اس هک کنه که اتفاقا همون روزها تازه مقالش رو اینترنت منتشر شده بود.
اگر علاقه مند به جزئیات داستان هستین عبارت “تصرف پهپاد آرکیو ۱۷۰ آمریکا در خاک ایران” رو جستجو کنین.

اگه با سرچ عبارت rq 170 iran به نتایج جستجوی عکس توجه کنین تصاویری میبینین که با فلش روی پهپاد اشاره میکنن. این سایت ها تحلیل های اونهاست که چطور ایران موفق شده RQ170 رو رو زمین تا این حد سالم بنشونه. تحلیلاشون جالبه. (لینک جستجو) (لینک تحلیل)

سرچ عبارت rq 170 iran به نتایج جستجوی عکس

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

چکیده ای از امنیت سایبری – فصل چهارم کتاب صنایع آینده ترجمه صالح سپهری فر

بزرگترین حمله های سایبری چینی ها

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

ضرر ناشی از سرقت هکر های چینی

در سال ۲۰۱۳ ضرر سالانه ناشی از سرقت مایملک معنوی از سوی چین به بیش از ۳۰۰ میلیارد دلار ‌رسید. گفتنی است که این میزان با مجموعه کالاهایی که ایالات متحده هر سال به آسیا صادر می کند برابر است. مجموع ارزش مایملک معنوی ایالات متحده ۵ تریلیون دلار است که چین هر سال ۶ درصد از آن را به سرقت می برد.

ورشکستگی بخاطر هک

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

اولین بار که مقاله ای درمورد هک خودندم هک شدم!

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

تجربه داشتن امنیت

یه نگاه به گذشته اینو ثابت میکنه؛ استارتاپ پونیشا تا وقتی که بودم طرف بیش از ۳۴هزار کاربر متخصص بود، این یعنی پر برنامه نویس و هکر و… و بارها تهدید به هک شدیم اما هیچ وقت نشدیم 😊
حتی باعث شد من یه حفره تو درگاه پرداخت بانک پاسارگاد پیدا کنم. کمتر کسی مثل نیما نورمحمدی (هرچند دلم ازش پره) منو درک کرد که؛ زمانی که برای کد زدن میزارم ارزشمنده.

مطالب برای استوری هام بود. گفتم اینجا هم داشته باشیمش. موفق باشید.

پیش بینی بازار آینده از اینترنت اشیا

جان چمبرز (مدیر Cisco Systems) پیش بینی میکند اینترنت اشیا بازاری ۱۹هزار میلیارد دلاری به خود اختصاص خواهد داد. برای مقایسه، کافی است بدانیم تولید ناخالص داخلی همه کشور های دنیا در حال حاظر روی هم رفته کنی بیشتر از ۵ برابر یعنی ۱۰۰هزار میلیارد دلار است.
صنایع آینده – الک راس (ترجمه صالح سپهری فر)

قشنگ معلومه اگر جونین؛ اگر بچه کوچیک داری یا فامیل داره؛ آینده کسب و کارها IT ئه
یعنی در آینده اگر آشنا نباشی با این حوزه رانندگی و نگهبانی و فروشندگی و ترجمه و… تا حد زیادی از بین میره.

در ۵ دقیقه پکیج خودتون رو در فریمورک لاراول بسازید (Laravel 5.8)

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

ایجاد پروژه

اول از همه از کد زیر استفاده کنین و یه پروژه جدید ایجاد کنین، من اینجا از لاراول ۵.۸ استفاده کردم (یا پروژه فعلی خودتون رو انتخاب کنین)

composer create-project --prefer-dist laravel/laravel blog "5.8.*"

۲. ساختار فایل ها

مثل تصویر زیر فولدر هایی رو بصورت تو درتو برای پروژه ایجاد کنین. ساختار به این صورت باید باشه که داخل فولدر پروژه فولدر packages ایجاد میکنیم که همه پکیج های ما داخل این فولدر قرار میگیره. حالا داخل فولدر packages فولدری دیگه که وندور ما هستُ vendor میتونه اسم خودتون، نام کاربریتون در گیت هاب باشه. و در آخر هم فولدری با نام پکیجتون ایجاد کنین. در اینجا من نام پکیجم رو easy-comment گذاشتم و داخل این فولدر هم یک فولدر با نام src که محل قرار گیری همه کد های ماست ایجاد کنید. پس تا اینجا ساختار فولدر های من به این صورته:

larave-blog/packages/hamidreza-mozhdeh/easy-comment/src

ساختار فولدر ها برای ایجاد پکیج در لاراول

۳. راه اندازی کومپوزر

از طریق ترمینال وارد فولدر پکیجتون به آدرس packages/hamidreza-mozhdeh/easy-comment   بشین و دستور composer init   بزنین تا یک فایل کامپوزر جدید ایجاد کنیم. کومپوزر از شما سوالاتی میپرسه که اگر خواستین وارد کنین و اگر نه فقط اینتر بزنین تا آخر. بعدا هم میتونین اطلاعات رو ویرایش و تکمیل کنین. در آخر فایل ما به آدرس زیر ایجاد شده:

سوالاتی که بعد composer init پرسیده میشه

packages/hamidreza-mozhdeh/easy-comment/composer.json

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

{
    "name": "hamidreza-mozhdeh/easy-comment",
    "authors": [
        {
            "name": "Hamidreza Mozhdeh",
            "email": "hamidreza87m@gmail.com"
        }
    ],
    "require": {}
}

حالا برای اینکه مسیر فولدر منبع (که همه کدهامون داخل اونه) رو به کومپوزر معرفی کنیم کد زیر رو واردش میکنیم

{
    "name": "hamidreza-mozhdeh/easy-comment",
    "authors": [
        {
            "name": "Hamidreza Mozhdeh",
            "email": "hamidreza87m@gmail.com"
        }
    ],
    "autoload": {
        "psr-4": {
            "HamidrezaMozhdeh\\EasyComment\\": "src/"
        }
    },
    "require": {}
}

دقت کنین که بعد نام وندور دابل بک اسلش داریم // و همینطور بعد نام پکیجمون هم دابل بک اسلش داریم // شاید متوجه شده باشین نام فولدر وندورم با نام وندوری که اینجا وارد کردم فرق داره! خب من میخواستم نام فولدرم زیبا باشه و با دش از هم جدا کردم. اما چیزی که اینجا وارد میشه namespace پکیج ما هست و نمیتونیم از دش استفاده کنیم. برای اینکار من کمل کبس نوشتم (و استانداری که رعایت میکنند هم همینه). و باز هم دقت کنین که ما هنوز فایل این namespace رو نساختیم و جلوتر میسازیمش. و در نهایت بعد فولدر src هم انتهاش یک فوروادر اسلش اضافه کنین.

ما تا اینجا composer.json پکیجمون رو ویرایش کردیم حالا نیازه composer.json خود لاراول رو ویرایش کنیم قسمت autoload و psr-4 رو داخل اون پیدا کنین و پکیج خودتون رو معرفی کنین، شبیه این:

  "autoload": {
    "classmap": [
      "database/seeds",
      "database/factories"
    ],
    "psr-4": {
      "App\\": "app/",
      "HamidrezaMozhdeh\\EasyComment\\": "packages/hamidreza-mozhdeh/easy-comment/src/"
    }
  },

 

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

۴. ایجاد سرویس پروایدر Service Provider

حالا ما نیاز داریم یک سرویس پروایدر بسازیم که متد ها کلاس ها و فایل ها و… رو از طریق اون فراخونی کنیم. در اینجا ما فقط میخوایم یک روت تعریف کنیم که آیا پکیجمون کار میکنه یانه. برای ایجاد پرواید به دو صورت دستی یا php artisan میشه کار کرد که من دومی رو ترجیح میدم. پس تو ترمینال بزنین:

php artisan make:provider EasyCommentServiceProvider

حالا فایل رو از app/providers   به packages/hamidreza-mozhdeh/easy-comment/src   منتقل کنین. دقت کنین که باید namespace اون رو هم عوض کنین به چیزی که قبلا تعریف کردیم تو کومپوزر تغییر بدیم، من داخل متند boot این فایل روت جدیدی رو لود کردم. برای لود بقیه چیزها اینجا رو نگاه کنین.

<?php

namespace HamidrezaMozhdeh\EasyComment;

use Illuminate\Support\ServiceProvider;

class EasyCommentServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        $this->loadRoutesFrom(__DIR__.'/routes.php');
    }
}

کتار همین فایل EasyCommentServiceProvider یک فایل دیگه با نام routes.php ایجاد کنید و یک روت مثل web.php داخلش تعریف میکنیم که میشه به آدرس packages/hamidreza-mozhdeh/easy-comment/src/routes.php

<?php

Route::get('testing-new-package', function () {
    return '<h1>Hello world</h1>';
});

آخرین کار باقی مونده اینه که داخل فایل config/app.php داخل آرایه providers پروایدر خودمونو تعریف کنیم.

HamidrezaMozhdeh\EasyComment\EasyCommentServiceProvider::class,
۵. آخرین مرحله و پایان

در نهایت دستور composer dump-autoload  رو بزنین تا فایل های جدید لود بشن. اگر تا اینجا اومدین و کارهارو انجام دادین پکیجتون ایجاد شده ولی الان فقط تست مونده که خیالمون راحت بشه.

چیزی که من شخصا خیلی سرش گیر کردم و جایی اشاره ای بهش نکرده بود که یادتون باشه در این مرحله حتما php artisan config:clear  هم بزنین.

php artisan serve رو بزنین و روت http://127.0.0.1:8000/testing-new-package  رو باز کنین. اگر تا اینجا همه چیز رو درست انجام داده باشین نتیجه رو میبینین.

سعی کردم تا اینجا ساده ترین و ابتدایی ترین راه برای شروع رو توضیح بدم، بازهم سعی میکنم این مقاله رو با پچ های جدید بروز رسانی کنم و ارتقاش بدم. تا همینجا اصل کار انجام شده و شما میتونین خیلی راحت و سریع توسعش بدین. کافیه یه فولدر بزنین مایگریشن و https://laravel.com/docs/5.8/packages#migrations  رو به پروایدر اضافه کنین یا فولدر ویو های خودتونو بسازین و اینو به پروایدر اضافه کنین (همونجایی که روت هست) https://laravel.com/docs/5.8/packages#views

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

    $this->publishes([
        __DIR__.'/path/to/views' => resource_path('views/vendor/courier'),
    ]);

 

موفق باشید

منابع:

Laravel 5.8 Package Development

ساخت پکیج‌‌ها در فریم‌ورک لاراول

Build Your Own Laravel Package in 10 Minutes Using Composer

۲ ترفند در محیط ترمینال اوبونتو

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

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

/home/hamidreza/projects-tmp/hello/platforms/android/app/build/outputs/apk/debug

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

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

nautilus .

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

چطور در اوبونتو/لینونکس در محیط ترمینال از میانبر های کپی پیست استفاده کنیم؟

همونطور که میدونین در اوبونتو/لینوکس در محیط های ترمینال نمیتونیم از دکمه و میانبر های Ctrl+C برای کپی و Ctrl+V برای پیست استفاده کنیم چون دستور Ctrl+C میانبریه برای لغو فعالیت جاری و اصطلاحا کنسل کردن پردازش فعلی. اما چطور میتونیم در این محیط راحت کپی پیست کنیم؟

اگر با نرم افزار مایکروسافت ورد کار کرده باشین احتمالا به دکمه Shift+Ctrl+C و Shitf+Ctrl+V آشنایی دارین و میدونین که استایل هارو در اون محیط کپی پیست میکنه. و اینجا در محیط ترمینال لینوکس هم همین اتفاق میافته. ما میتونیم بجای میانبر های عادی از میانبر های ثانویه کمک بگیریم

برای کپی یا رونوشت در محیط ترمینال میانبر Shift+Ctrl+C رو بزنین

برای پیست یا جا گذاری کردن متن در محیط ترمینال میانبر Shift+Ctrl+V رو بزنین