د آخه…

در یک مراسم بسیار مذهبی، در یک مکان بسیار مذهبی و با حضور بانوان بسیار مذهبی (مراسم روز مادر است) هستم و جلوی خودم را گرفته‌ام تا به مجریّن مراسم بابت ادبشان فحش ندهم!

اگر اینجا هم بانوی مذهبی و باحیا بناست در عذاب باشد (که می‌بینم)، پس… ؟

سيموت أو لا؟

باشد قبول، «الباطِلُ‏ یمُوت‏ بِتَرك‏ ذِكرِه»! اما این طوری که شما ولش کردید و آن‌ها سخت مشغول Streamاند، سکوتتان بیشتر شبیه علامت رضاست! و طولی نمی‌کشد که «كَيْفَ بِكُمْ إِذَا رَأَيْتُمُ اَلْمَعْرُوفَ مُنْكَراً وَ اَلْمُنْكَرَ مَعْرُوفاً؟!»…

 

پ.ن: حالا بماند که این جمله اصلاً حدیث نیست!

کراس کامپایل gcc armhf روی Debian

یکی از مشکلات برنامه‌نویسی پروژه‌ها روی چیپ‌های اقتصادی و نهفته‌ی دستگاه‌ها مانند نانوپای یا Luckfox Pico، این است که کامپایل برنامه‌ها روی آن‌ها بسیار طولانی و زمان‌بر است. در این مواقع امکان کامپایل میان-پردازنده‌ای (Cross-Compile) موجب افزایش سرعت بیلد و توسعه‌ی پروژه می‌گردد.

در این آموزش کوتاه یاد می‌گیریم که چگونه روی Debian (من به صورت WSL روی یک رایانه x64 نصب کرده‌ام)  برنامه‌ی C یا C++‎ را برای لینوکس armhf کامپایل کنیم.

 

1- ایجاد sysroot مخصوص Armhf با افزودن معماری Armhf به دبیان

 

2- نصب برنامه‌ها و کتابخانه‌های موردنیاز روی دبیان (نسخه‌ی مخصوص armhf به کمک علامت «:»)

 

3- تنظیم CMake

حالا CMakeLists.txt را به نحوی تنظیم می‌کنیم تا تنظیمات کلی و بدون مشکل برای معماری‌های مختلف در آن قرار گیرد:

 

و تنظیمات وابسته به بیلد armhf در cmake/Toolchain-armhf.cmake قرار می‌گیرد:

 

4- تنظیم Toolchain، نوع کامپایل، پوشه‌های سورس و خروجی و در نهایت، بیلد

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

‎.gitignore کار نمی‌کند!

آیا اول پروژه‌ی خود را به نسخه رسانده‌اید و سپس تصمیم گرفتید پروژه را Gitدار کنید؟

آیا پرونده‌ی ‎.gitignore در گیت خود گذاشته‌اید اما انگار کار نمی‌کند؟

آیا از دیدن پرونده‌های Cache و Build پروژه که هی کم و زیاد می‌شوند و تغییرات گیت را بیخودی زیاد می‌کنند رنج می‌برید؟

راه حل شما تنها همین دو دستور گیت است تا Cache گیت را پاک کنید:

 

شیعةُ علیٍّ

شیعةُ علیٍّ هم الذین … و هم الذین لایراهم الله حیث نهاهم و لا یفقدهم حیث امرهم …

شیعیان علی(ع) کسانی هستند که … و خداوند آن‌ها را در جایی که نهی کرده، نمی‌بیند و در آن جا كه امر كرده، هميشه حاضر مى‌بيند …

 

امام حسن عسکری(ع)

(بحارالأنوار / ج65 / ص163)

 

جالب بود؛ خداوند آن‌ها را «نمی‌بیند» و «می‌بیند».

اتصال SSH‌ و SCP به WSL2 در شبکه محلی

اگر از یکی از توزیع‌های لینوکس به صورت WSL (Windows Subsystem for Linux) در ویندوز استفاده می‌کنید، شاید لازم داشته باشید تا از دستگاه دیگری در شبکه محلی به آن ssh بزنید.

اگر شبکه‌ی WSL به صورت NAT تنظیم شده باشد، IP لینوکس همان IP شماست؛ اما لینوکس IP خود را چیزی شبیه به ‎172.xxx.xxx.xxx/20 معرفی می‌کند.

پس چگونه باید به آن ssh بزنیم؟

پورت فورواردینگ در ویندوزِ میزبان

اتصال ssh به صورت پیش‌فرض روی پورت 22 انجام می‌شود (می‌توان از پرونده /etc/ssh/sshd_config  آن را تغییر داد)؛ برای اتصال از دستگاه‌های دیگر در شبکه، باید یکی از پورت‌های دستگاه میزبان (ویندوز خودمان) را به پورت 22 لینوکسمان فوروارد کنیم.

یک ترمینال Powershell با دسترسی Run As Administrator اجرا کرده و از دستور زیر استفاده کنید (نشانی IP را تغییر دهید) تا پورت 2222 ویندوز (یا هر پورت دیگری) به پورت 22 لینوکس فوروارد شود:

 

اجازه دادن به پورت در فایروال ویندوز

حالا با استفاده از همان ترمینال Powershell، دستور زیر را وارد کنید تا پورت 2222 برای استفاده TCP آزاد شود:

 

اتصال

حالا می‌توان با اضافه کردن مقدار پورت به دستورات ssh و scp، به لینوکس روی wsl متصل شد:

 

نصب Microsoft Edit روی Debian

مایکروسافت به تازگی نسخه‌ی بازسازی شده‌ی ویرایشگر معروف و قدیمی تحت خط فرمان خود (edit) را با زبان برنامه‌نویسی راست (Rust) و به صورت متن باز منتشر کرده است.

این ویرایشگر با وجود اینکه به تازگی منتشر شده، نظر بسیاری از کاربران را به خود جلب کرده و نظر شخصی خودم هم این است که این ویرایشگر به زودی مانند Visual Studio Code، جای خود را بین ویرایشگرهای TUI باز کرده و جایگزین آن‌ها می‌شود؛ دلیل آن هم «استاندارد» بودن رابط کاربری این نرم‌افزار است. به طور مثال کاربران می‌دانند که در تمام نرم‌افزارها Ctrl+Q برای خروج، Ctrl+F برای یافتن (Find) و Ctrl+S برای ذخیره‌کردن (Save) است و این استانداردها مورد پذیرش همه قرار گرفته است؛ در حالی که مثلا در vim، برای خروج باید به صورت زیر عمل کرد:

  1. کلید Esc را بزنید تا وارد حالت عادی (Normal Mode) شوید
  2. کلید «:» را بزنید تا وارد حالت خط فرمان (Command Line Mode) شوید
  3. حالا یک «:» ظاهر می‌شود؛ یکی از دستورات زیر را وارد کنید:
  • :q to quit (short for :quit)
  • :q! to quit without saving (short for :quit!)
  • :wq to write and quit
  • :wq! to write and quit, attempting to force the write if the file lacks write permission
  • :x to write and quit; like :wq but writes only if modified (short for :exit)
  • :qa to quit all (short for :quitall)
  • :cq to quit, without saving, with a nonzero exit code to indicate failure (short for :cquit)

موفق باشید!

بگذریم؛ برای نصب این ویرایشگر روی ویندوز، می‌توان به راحتی از طریق WinGet اقدام کرد:

 

در توزیع‌های دبیانی، به دلیل اینکه هنوز Edit وارد بسته‌های apt نشده است، می‌توان از طریق دستورات زیر به صورت مستقیم دانلود و نصب کرد:

ممکن است هنگامی که مطلب را می‌خوانید، نسخه جدیدی به جای 1.2.0 منتشر شده باشد.

این دستور نام عمومی «msedit» را برای اجرا تنظیم می‌کند (ممکن است برنامه دیگری با نام edit وجود داشته باشد، لذا از آن استفاده نشد)

کجاست اون شکلک مرتبط؟!

وقتی بعضی کانال‌های تلگرامی (به خصوص کانال خبرگزاری‌ها) رو می‌خوانم، گاهی سردرگم می‌شوم که چطور نظرم رو در مورد اون مطلب با شکلک‌های پای مطلب ابراز کنم؟

اگر لایک کنم یا قلب بذارم یعنی «موافقم» اگر دیسلایک کنم یا شکلک فحش (🤬) بذارم، ممکنه اینطور برداشت بشه که با موضوع یا فردی که در مطلب ازش یاد شده مخالفم؛ دقیقا با چه شکلکی میشه به نویسنده‌ی مطلب گفت که تو خیلی … چیز یعنی شما در نوشتن مطلب سهل‌انگاری کرده و خطا کرده‌اید که این مطلب را نوشته‌اید؟ 😑

فرمول اکسل تولید شماره موبایل تصادفی

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

در اکسل‌هایی که به جای , از ؛ پشتیبانی می‌کنند: