بازی CSS Dinner برای یادگیری Selector ها درCSS یا JavaScript

بازی بعدی که امروز معرفی میکنم CSS Dinner هست، به کمک این بازی ما یاد میگیرم چطور با Selector ها المان های خودمون رو انتخاب کنیم. که هم بکار زبان CSS میاد هم زبان برنامه نویسی جاوااسکریپت. داستان اینطوریه که هر سری بازی از شما میخواد یک چیزی رو روی میز انتخاب کنین. مرحله اول همه ظرف ها و هر مرحله از سلکتور های پیشرفته تری استفاده میکنیم و درک میکنیم کجا ها چطور کاربرد دارن.

CSS Dinner Game

بازی برای یادگیری کدنویسی CSS Flexbox

امروز میخوام یک بازی خیلی جالب برای یادگیری فلکس باکس ها CSS Flexbox معرفی کنم

Flexbox Froggy game

بازی Flexbox Froggy یک بازی جالب و ساده برای درک و یادگیری کار با فلکس باکس ها هست. هر مرحله ما به فراگی و دوستاش کمک میکنیم. پیشنهاد میکنم حتما امتحان کنین.

حذف گواهی یا اعتبار نامه یا همون Credential در گیت در محیط ویندوز

موقعی که خواستم با phpstorm به گیت لب کانکت شم نام کاربریمو اشتباه زدم و مجبور شدم چند تا سایتو ببینم تا به جواب برسم.

اول اینکه تصور میکردم اعتبار نامه ها یا همون Credential در phpstorm ذخیره میشن و بعدا تصور کردم در گیت ولی در هیچ کدوم نبود!

منوی استارت ویندوز رو بزنین و عبارت Credential Manager رو سرچ کنین و اعتبار نامه خودتون رو ویرایش یا حذف کنین.

اینم عکسش

Windows Credential Manager
Credential Manager

Remove credentials from Git
Remove phpstorm git password
Remove git Password

خطای file_put_contents storage\framework/sessions failed to open stream: No such file or directory

این خطا وقتی برای من رخ داد که از اوبونتو به ویندوز مهاجرت کردم. فولدر های اصلی پروژم رو دراپباکس بود بقیه رو با کومپوزر نصب کردم. فولدر های (tests vendor storage bootstrap) رو کپی نکرم. تصور بر این بود که توسط composer نصب بشن. تا یه حدی هم نصب شدن و من دائم خطای خطای file_put_contents storage\framework/sessions failed to open stream: No such file or directory رو میگرفتم. با جستجو هایی که انجام دادم اکثرا نوشته بودن با clear cache کارت درست میشه ولی مشکل من حل نشد. بعد کلی کلنجار رفتن دستور زیر رو تایپ کردم (در ویندوز)

php artisan | findstr clear

 

این دستور همه دستورات مربوط به پاک کردن کش رو میاره که میشه این:

clear-compiled Remove the compiled class file
auth:clear-resets Flush expired password reset tokens
cache:clear Flush the application cache
config:clear Remove the configuration cache file
route:clear Remove the route cache file
view:clear Clear all compiled view files

 

تک به تک همه کش ها رو پاک کردم تا رسیدم به آخری که خطای laravel RuntimeException : View path not found مواجه شدم و با یه جستجوی ساده و سریع به جواب درست رسیدم.

فولدر storage باید زیر مجموعه های app framework و logs رو داشته باشه که برای من فقط logs وجود داشت. چون فولدر storage فقط اطلاعات کش رو ذخیره میکنه و فایل خاصی توش نیست یه لاراول جدید تعریف کردم و فولدر های اونو کپی کردم اینجا و مشکل حل شد.

تو جستجو ها به یه حقه(تریک) باحال برخوردم که کار پاک کردن کش ها رو راحت میکنه. تو رَوت وبتون اینو اضافه کنین:

Route::get('/clear-cache', function() {
    Artisan::call('clear-compiled');
    Artisan::call('auth:clear-resets');
    Artisan::call('config:clear');
    Artisan::call('route:clear');
    Artisan::call('view:clear');
    Artisan::call('cache:clear');
    Artisan::call('config:cache');
    return 'DONE';
});

 

لیست کردن فایل ها در وب سرور آپاچی

برای لیست کردن فایل ها در وب سرور آپاچی وقتی که لیست کردن فایل ها غیر فعال شده (معمولا به دلایل امنیتی) با درست کردن یک فایل htaccess.  میتونیم فایل ها رو لیست کنیم.

Options +Indexes

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

معرفی چند برنامه های کاربردی برای اوبونتو ۱۸

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

  1. برنامه ClipIt
    برنامه ای برای مدیریت کلیپبوردهاتونه. خفن واجب و اجباریه اصن. شما با این برنامه ۱۰-۲۰ متنی که آخرین بار کپی کرده بودید رو همیشه دارین و میتونین استفاده کنین. برنامه قابلیت تعریف میانبر هم داره و من برای خودم میانبر Ctrl+Alt+C رو انتخاب کردم و میتونم از صفحه ای چندین متن رو کپی کنم و بعد به ویرایشگرم برم و متن هارو پیست کنم بجای اینکه برای هر متن هی بین صفحه ها حرکت کنم! امکانات خوبی هم داره مثلا میتونین تو کیلیپبورد های خیلی گذشتتون سرچ کنین و…
  2. برنامه Kate
    یک ویرایشگر متنی برای زبان های برنامه نویسی هست. حالا چرا اینو معرفی کردم؟من خودم از PHPStrom و Atom استقاده میکنم. اولی که خیلی حرفه ایه و دومی هم خیلی قابلیت هک و شخصی سازی دره اما از اونجایی که کامپیوتر من کمی قدیمیه و سرعتش زیاد نیست موقع باز کردن اتم زمان زیادی از دست میدم و در حالی که میخوام در یک لحظه سریع یک فایل رو ویرایش کنم Kate اینجا بکار میاد. سبک و سریع! برای ویرایش های کوچیک عالیه و امکانات خوبی هم داره. مطمئنم از کار کردن باهاش لذت میبرین. ممکنه بگین خود اوبونتو nano و… داره یا محیط گنوم Text Editor داره. آره درسته. نانو برای محیط ترمینال هست و تکست ادیتور هم دیگه زیادی سادس ولی کیت علاوه بر اینکه سبکه امکانات ابتدایی ویرایش زبان های برنامه نویسی مثل سینتکس و هایلایت کلمات و … رو داره.
  3. برنامه Pinta
    اینم مثل کیت انتخاب کردم. هدفم برنامه های سبک برای کارهای ابتدایی بود. خیلی تو گرافیک نمیرم وگرنه GIMP هست و عالیه. فتوشاپیه برای خودش
  4. برنامه Dropbox
    نیاز به توضیح نداره. از اونجایی که هاردم که روش ویندوز نصب بود سوخت و اطلاعاتم رو از دست دادم اینو برای بکاپ گذاشتم که خودش کار سینک رو انجام میده و من فقط تنظیمات اولیه رو انجام دادم. ۲ گیگ فضا دارین و ازش حداکثر استقاده رو ببرین.
  5. برنامه uGet
    به هر حال میخواین یه چیزایی هم دانلود کنین دیگه! پس به یک دانلود منیجر خوب هم نیاز دارین. من uGet رو پیدا کردم و ازش راضی هستم. سادس. سبکه. راحته. خوش میگذره باهاش 🙂
  6. برنامه VLC
    طبیعتا با اوبونتو فیلم هم نگاه میکنین. خب چه برنامه ای بهتر از VLC برای موزیک و فیلم و… کلا از همه نوع پسوند ها هم پشتیبانی میکنه و خیلی سریع و بی باگ هم هست.
  7. مرورگر های Firefox & Chrome
    شاید براتون سوال بشه که فایرفاکس که از اول هست… چرا دوباره معرفی کردم و چرا با کروم؟ تو معرفی شماره ۷  به جای معرفی برنامه میخوام بهتون توضیه کنم حتما از امکان Sync کردن های مرورگرتون استفاده کنین. من هاردم سوخت و همه اطلاعاتم رفت! تو هزارتا سایت هم عضو هستم و نمیتونم رمز عبورم رو تک تک رو اونها بیاد بیارم. خب اینجا لاگین کردن به مرورگر و سینک اطلاعات منو راحت کرده. روی هر پلتفرم و سیستم عاملی که میرم راحت بعد لاگین همه اطلاعات و رمز عبور و بوکمارک های خودمو دارم. البته این نکته رو هم بگم تا بحال به هیچ وجه روی موبایل کسی یا کامپیوتر کسی یا کافینت از این طریق وارد نشدم به شما هم توصیه میکنم این کارو نکنین. فقط کامپیوتری که خوودتون صبح تا شب بهش دسترسی دارین و باهاش کار میکنین.
  8. برنامه Telegram
    نیاز به معرفی نداره. خب خیلی به کارم میاد و همه دوستان و مشتریان هم از همین طریق ارتباط برقرار میکنن.
  9. برنامه FileZilla
    یک برنامه برای مدیریت فایل ها در بستر ftp هست و اگر برنامه نویس هستین حتما میشناسین.
  10. برنامه یا اکستنشن گنوم Persian Calendar
    همه ما به یک تقویم فارسی شدیدا نیاز داریم و تقویم فارسی که معرفی کردم علاوه بر نمایش تاریخ روز در نوار بالایی صفحه تعطیلات و تاریخ میلادی و هجری رو هم نشون میده و تبدیل تاریخ هم داره.
  11. برنامه GtkHash
    یه برنامه خیلی کم حجم برای گرفتن هش برنامه ها. حالا اگه نمیدونین هش چی هست خیلی سریع بگم هر برنامه ای یه کد منحصر به فرد داره که اگه فایل اون برنامه به هر نحوی دستکاری بشه حتی یک فاصله در کدش باعث میشه هش اون تغییر کنه. حالا این هش به چه درد میخوره؟ میخواستم ویندوز دانلود کنم (بله متاسفانه دوباره ویندوز 😐 برای تدریس تو کلاس ها نیاز دارم) و مایکروسافت اجازه دانلود نمیداد حتی با اینکه کد اورجینال داشتم. مجبور شدم از سایت دیگه ای ویندوزو دانلود کنم برای اینکه مطمئن بشم فایلی که دانلود کردم اصله و بدون دستکاری هش اونو برسی کردم با هش اصلیه مایکروسافت یکی باشه.
  12. برنامه K3b (اسم جالبیم داره میشه خوند کاسبی هاهاها !!! )
    با حجم زیر یک مگابایت واقعا فوق العادست و امکانات کاملی داره. قبلا یک برنامه دیگه دانلود کرده بودم گزینه ای برای پاک کردن دی وی دی های ری رایتبل نداشت. این برنامه هم امکانات خوبی داره هم تنظیمات کافی. خلاصه کارتونو برای کار با سی دی و دی وی دی رام راه میندازه حسابی

 

من این لیست رو به مرور زمان به روز میکنم و برنامه های جدیدو معرفی میکنم. Atom و PhpStorm و Docker و Xampp و ….

آموزش مقدماتی داکر Docker انجام نصب و اجرای سلام دنیا – قسمت اول

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

خب بریم سر اصل مطلب. بعد اینکه داکر رو نصب کردید. با دستور `docker –version` میتونیم ورژن داکر خودمون رو ببینیم و با دستور `sudo docker info` اطلاعات کاملی از سیستم و تعداد کانتینر های موجود و ران شده و استاپ شده بدست میاریم.

$ docker --version
Docker version 18.06.1-ce, build e68fc7a

$ sudo docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0

اگه توجه کرده باشین برای گرفتن ورژن از sudo استفاده نکردم ولی برای info از sudo (دسترسی کاربر ارشد) استفاده کردم. برای اجرای دستورات داکر (که پروسه ای رو در پس زمینه ران میکنند) شما باید دسترسی کاربر ارشد رو داشته باشین. توضیح کاملترش میشه اینکه پروسه بکگراند داکر از سوکت یونیکس پورت tcp استفاده میکنه در حالت پیش فرض سوکت یونیکس مالکیتش با کاربر root هست و بقیه کاربرا تنها با استفاده از sudo به اون دسترسی دارن. بنابرین پروسه بکگراند داکر همیشه باید با sudo اجرا بشه. برای این کار یک گروه docker ایجاد میکنیم و کاربر فعلی رو به اون اضافه میکنیم و برای نتیجه حتما یکبار از محیط دستکتاپ خارج میشیم و دوباره وارد میشیم.

$ sudo groupadd docker
$ sudo usermod -aG docker $USER

قدم بعدی اجرای دستور سلام دنیا! یا همون hello-world معروف خودمونه

docker run hello-world

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

  1. کلاینت داکر وصل شد به پردازش اصلی داکر (دیمون پردازش هایی که برنامه هارو در پس زمینه زنده نگه میداره… یه جورایی مثل اینکه وقتی تو گوشیتون یه اپ رو میبندین ولی وقتی پیام میاد براتون برنامه پیام رو دریافت میکنه و براتون نوتیفیکیشن میفرسته)
  2. پردازش دیمون داکر ایمیج سلام دنیا رو از داکر هاب گرفت (فکر کنم منظورش اینه یه نسخه از ایمیج رو ایجاد کرده. شبیه همونی که تو برنامه نویسی از یک کلاس یه آبجکت درست میکردیم)
  3. پردازش اصلی کانتینر جدیدی از فایل ایمیج (فایل خام مادر) ایجاد کرده که منجر به پردازشی شده که خروجیش رو این پایین میبینید (منظورش اینه فقط متن رو تولید کرده و هنوز نفرستاده به کلاینت).
  4. پردازش اصلی یا همون دیمون خروجی رو به داکر کلاینت فرستاده که تو عکس زیر میبینید.

در ادامه ۴ دستور ابتدایی اما پرکاربرد رو خلاصه توضیح میدم

docker image ls => لیست همه ایمیج های دریافت شده

docker container ls => لیست همه کانتینتر های در حال اجرا

docker container ls --all => لیست همه کانتینتر ها چه در حال اجرا و چه غیر فعال

docker container ls -aq => فقط آی دی کانتینر ها رو به لیست میکنه (بدرد انجام کارهای گروهی مثل پاک کردن میخوره)

خیلی ساده SOAP چیست و چطور در php نصب و فعال کنیم

SOAP مخفف کلمات Simple Object Access Protocol هست و همونطور که از ترجمش مشخصه (پروتکل ساده دسترسی به شی – ترجمش خیلی عجیب شد!) یک پروتکل ساده برای ارتباط (پیام رسان) بین اشیا یا بهتر بگم بین برنامه ها هست که مبتنی بر XML طراحی شده و از بستر پروتکل های مختلف مثل HTTP و SMTP و… پیام ها رو منتقل میکنه.

تو یه جمله یه چی شبیه جیسان JSON هست ولی مبتنی بر XML برای ردوبدل کردن اطلاعات بین برنامه ها در بستر های مختلف که از پروتکل های مختلف هم پشتیبانی میکنه (HTTP SMTP و …).

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

برای فعال کردنش در php داخل ویندوز به فایل php.ini روجوع کنید و سیمیکالون جلوی extension=php_soap.dll رو بردارین و آپاچی رو رستارت کنین. حلله!
در اوبونتو و کلا سیستم های لینوکس اگه زمپ (لمپ xampp lampp) نصب کرده باشید بخودیه خود فعاله ولی برای اینکه مطمئن بشین دستور php -m | grep soap رو تایپ کنین. اگر نبود یا php  بصورت مجزا نصب کردید برای php7 دستور زیر رو تایپ کنین

PHP-7
sudo apt install php7.0-soap
sudo systemctl restart apache2

PHP-5
apt-get install php-soap
sudo systemctl restart apache2

 

 

روش بالا برای وقتی که سرور رو خودتون کانفیگ کرده باشید جواب میده، من برای اوبنتوی خودم از زمپ استفاده کردم؛ برای نصب soap بر روی سیستم عامل ubutntu که وب سرویش رو با xampp را انداختید از روش زیر استفاده کنید:

cd /opt/lampp/bin
sudo ./pear install soap
In PHP code, require_once("SOAP/Client.php");

تکته اینکه من از require_once(“SOAP/Client.php”) استفاده نکردم و فقط تو کد لاراول خودم (اگه از namespace استفاده میکنید)  خط زیر رو نوشتم

$client = new \SoapClient($this->url);

منبع جواب Pear SOAP and XAMPP on Ubuntu

دور زدن تحریم ها در اوبونتو

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

sudo apt install sshuttle

 

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

sudo sshuttle -r username@sshserver 0.0.0.0/0

 

گزینه `r-` برای مشخص کردن سرور ریموت هست و بعد نام کاربری و آی پی سرور رو وارد کنین. آی پی صفر رو همونطور که هست قرار بدین. برای پورت خاصی برای ssh از port: استقاده کنین و برای اینکه از dns سرور استفاده کنین هم از dns–  که دستورتون شبیه زیر میشه

sudo sshuttle --dns -r username@sshserver:port 0.0.0.0/0

به روز رسانی: اگر با خطای زیر مواجه شدین:

packet_write_wait: Connection to xxx.xxx.xxx.xxx port YYY: Broken pipe
client: fatal: server died with error code 255

راه حلش اینه که پورت سرورتونو استثنا بگیرید. برای اینکار به دستور قبلی آی پی سرور رو هم اضافه میکنیم:

sshuttle --dns -x XXX.XXX.XX.XXX -r username@XXX.XXX.XX.XXX:YYY 0.0.0.0/0

 

اگه سطح دسترسی روت نباشین بعد اجرای دستور بالا اول میخواد که رمز بزنین و به سطح روت برسین و بعد رمز ssh  رو میپرسه. حالا ترافیک کل سیستم عامل از طریق سرور و آی پی خارج ردوبدل میشه (البته اگر سرورتون خارج باشه). اگرم نه نیاز داشتید مثلا فقط وارد ساید لنوو یا اینتل بشین و یه چی دانلود کنین و نمیخواستین پکیج نصب کنین و یه تونل سریع کارو راه میندازه… بجای نصب پکیج بالا تو ترمینال تایپ کنین:

ssh -D 3003 -f -C -q -N username@server -p 1234

 

اینجا با گزینه D به ssh میگه که ما یه تونل SOCKS رو پورت مشخص شده میخوایم (عددی که بعدش میاد). این عدد چیزی بین ۱۰۲۵-۶۵۶۳۵ باید باشه.
گزینه f دستور رو در بکگراند اجرا میکنه و شما میتونین ترمینال رو ببندین
گزینه C دیتا ها رو قبل فرستادن فشرده میکنه
گزینه q  از مود quiet استفاده میکنه (بدون خروجی)
گزینه N هم به ssh میگه که وقتی تونل فعاله هیچ دستوری قرار نیست قرستاده بشه
با این دستور یه تونل میزنین به سرور و رو برنامه کلایننتون لازمه ساکس ۵ رو فعال کنین.

نکته اینکه ۳۰۰۳ پورت لوکالتونه و ۱۲۳۴ پورت ssh سرور.
برای بستن ssh هم یه دستور ps aux | grep ssh تایپ کنین و پراسس آی دی اونو کیل کنین.

اینم تنظیمات فایرفاکس برای تونل (راه حل دوم)
firefox proxy socks

(اونقدری مشغول این موضوع بودم یادم رفت میخواستم با داکر کار کنم و داکر ایرانو تحریم کرده… الان اومدم سراغ داکر یادم اومد کلا این آموزش ها برای چی بود. هاهاهاها)

موفق باشید

Filezilla custom editor یا ویرایشگر پیشفرض فایلزیلا

چیز پیچیده ای نیست ولی خب وقتی سرچ میکردم به جواب های درست نمیرسیدم. من از اوبونتو ۱۸  اتسفاده میکنم و وقتی سرچ میکردم ubuntu filezilla open with atom (در اصل دنبال محل باینری ویرایشگر اتم بودم) برام usr/bin/atom یا usr/local/bin/atom میاورد که حقیقتا تو سیستم من وجود نداشت ممکنه نسخه های قبل باشه! خلاصه با دستور sudo find / -name atom محل باینری اتم رو پیدا کردم که میشه این:

/snap/bin/atom

و مثل عکس زیر تنظیمات رو انجام میدیم و تمام.

atom filezilla custom editor setting