شاید تا به حال به این نکته توجه نکرده باشید ولی گاهی اوقات لازم است که یک دامنه را بر روی دامنه اصلی پارک کنید. در این صورت اگر دامنه‌‌ی پارک شده را در بروزر باز کنید لاراول لینک‌ها را بر اساس همان دامنه‌ی پارک شده می‌سازد. مثلا اینجا dokaj.ir دامنه اصلی است ولی dokaj.com هم متعلق به من است و می‌خواهم اگر کسی این دامنه را زد به سایت برسد اما دلم نمی‌خواهد که در dokaj.com گردش کند انگار که دامنه اصلی dokaj.com است.

خوشبختانه من تمام لینک‌ها را با توابعی نظیر route() و action() ساخته‌ام و به همین خاطر کار چندان سختی برای حل این مشکل ندارم و فقط باید لاراول را مجبور کنیم که تمام لینک‌هایی را که می‌سازد با دامنه‌ی dokaj.ir بسازد.

در این مطلب کلاس Illuminate\Support\Str و متدهای آن در لاراول را بررسی می‌کنیم. تمام تلاش خود را کرده‌ام تا با طبقه‌بندی متدها و ارائه‌ی توضیحات شفاف و مثال‌های متنوع منبع قابل اتکایی برای مطالعه و مراجعه‌های مکرر علاقمندان فراهم کنم.

"Aprender español

En este post os he preparado más de 4500 frases españolas para practicar y mejorar su nivel de español. Las he extraído de un libro juvenil. Espero que sea útil.

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

"Python rich library

کتابخانه‌ی rich ابزار نیرومندی در زبان پایتون است برای نمایش ویژگی‌های ‌rich در ترمینال! مثلا با آن می‌توان:

  • متن‌ها را رنگ‌بندی کرد.
  • متن‌ها را ‌bold، ‌italic و یا زیر خط دار کرد.
  • متن‌ها را چپ‌چین، راست‌چین و یا وسط‌چین کرد.
  • متن‌ها را به یک آدرس اینترنتی لینک کرد.
  • جدول ساخت و اطلاعات را در جدول نمایش داد.
  • source code ها را بسته به زبان برنامه‌نویسی به صورت syntax highlight شده نمایش داد.
  • کدهای Markdown را به صورت تفسیر شده نمایش داد.
  • صفحه‌ی ترمینال را لایه بندی کرد و در هر لایه چیزی قرار داد.
  • progress bar ساخت و وضعیت پیشرفت یک یا چند عملیات را به صورت بصری به کاربر نشان داد.
  • tree ساخت و اطلاعات را به صورت شاخه شاخه و تو در تو نمایش داد.

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

"بازی با ابزارهای خط فرمان"

بیایید تا از دانسته‌هایمان از دستورات خط فرمان استفاده کنیم و برنامه ننویسیم!

در سال ۱۹۸۴ برایان کرنیگان دانشمند علوم کامپیوتر و نویسنده‌ی محبوب من همراه با Rob Pike کتابی تحت عنوان Unix programming environment نوشتند. جمله‌ای از آن کتاب در خاطرم مانده و آن را با ترجمه‌ای آزاد نقل می‌کنم. گفته بودند: «تا می‌توانید سعی کنید از ابزارهای یونیکس استفاده کنید و برنامه‌ی مستقل ننویسید مگر اینکه مجبور باشید.» نام کتاب نیز واضح بیان می‌کند که محیط یونیکس (و سیستم‌های شبه یونیکس مثل لینوکس)، محیط برنامه‌نویسی است.

"حل سودوکو با پایتون"

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

"راهنمای ادیتور vim"

ادیتور vi با تلفظ /ˈviːˈaɪ/ در سال ۱۹۷۶ توسط آقای Bill Joy نوشته شده است. vi در نگاه اول چیزی فراتر از عجیب و غریب به نظر می‌رسد ولی زمانی که تا حدودی با آن آشنا شدید و از دستورات آن رمزگشایی کردید تصدیق خواهید کرد که یکی از قویترین ادیتورهایی است که تا کنون با آن کار کرده‌اید. پس لطفا فرار نکنید و با ما همراه باشید. قول می‌دهم خیلی سریع راه خود را در دنیای vi باز خواهید کرد.

vi دارای دو مُد command و insert است. در هر حال فقط یک مد فعال است. یعنی یا در مد command هستید یا در مد insert قرار دارید.

"برج هانوی"

برج‌ هانوی یکی از مسایل کلاسیک رشته‌ی کامپیوتر است و برای حل آن از روش «بازگشتی» استفاده می‌شود.

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

در این پست این مساله را با پایتون و کتابخانه‌ی pygame حل می‌کنیم.

"راهنمای دستور find در سیستم‌های شبه یونیکس"

دستور find یکی از مهمترین دستورات یونیکس و سیستم‌های شبه‌یونیکس مانند لینوکس است که دیر یا زود به آن نیاز مبرمی پیدا می‌کنید. با یادگیری دستور find و به کار بردن عملی آن در کارهای روزانه، هر روز می‌توانید کاربرد جدیدی برای آن پیدا کنید، مثلا با اتصال خروجی این دستور به ورودی دستوری دیگر از طریق pipe می‌توانید عملیات گوناگونی را روی فایل‌هایی که پیدا کرده‌اید انجام دهید و یا اینکه مستقیما از سوییچ -exec دستور find استفاده کنید. -exec بر روی تمام فایل‌های یافت شده اجرا خواهد شد و می‌تواند شامل هر دستوری باشد. وقتی که در find خبره شدید احتمالا به خود خواهید گفت: «بدون آن چگونه زندگی می‌کردم؟!»

"حل کردن سودوکو با زبان پرل"

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

"برنامه‌ی مشاهده‌ی عکس feh"

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

شکل کلی دستور feh به صورت زیر است:

SHELL
$ feh [option]  files or directories or URLs

مرده‌ای که نمی‌میرد

مرده‌ای که نمی‌میرد. این بهترین عنوان برای «آبی‌مائل گوثمان» رهبر مخوف‌ترین و درنده‌ترین گروه تروریستی آمریکای لاتین است. این نوشته که برگردان یکی از اپیزودهای رادیو آمبولانته به همین نام است بخشی از زندگی و مرگ او و آنچه بر پرو و مردم پرو گذشت را روایت می‌کند.

خوسه کارلوس آگوئه‌رو

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

"راهنمای pip و نصب پکیج در پایتون"

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

برای اینکه خیلی درگیر جزییات نشویم فرض را بر این می‌گیریم که pip روی سیستم شما نصب است. فقط قبل از شروع توصیه می‌کنم که به صورت زیر یک virtual environment بسازید و وارد آن شوید تا تست‌ها و تمرینات باعث آسیب رساندن به پکیج‌های اصلی پایتون که به صورت سراسری توسط کل سیستم استفاده می‌شود، نشود. ابتدا ترمینال را باز کنید و با استفاده از دستور cd به دایرکتوری دلخواه بروید و سپس با mkdir یک فولدر بسازید و بعد دوباره با دستور cd وارد فولدر تازه ساخت شوید و دستورات زیر را اجرا کنید:

SHELL
$ python -m venv venv
$ source venv/bin/activate

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

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

نمی‌دانم اینجا خواهم نوشت یا مثل خیلی کارهای دیگه‌ای که شروع کرده یا شروع نکرده رهاشون کردم اینجا رو هم بی‌خیال می‌شم. به هر حال این اولین پست من در اینجاست و اگر آخرین پست هم باشد پست اول بودن این پست نفی نمی‌شود!

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